brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 8c948d1 Raw
47 lines · cpp
1// RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s2 3#define WEAK __attribute__ ((weak)) 4 5class WEAK A {6  virtual void foo();7};8 9class B : public A {10  virtual void foo();11};12void A::foo() { }13void B::foo() { }14 15class T {};16class T1 {};17 18class C : public T1, public B, public T {19  virtual void foo();20};21void C::foo() { }22 23class V1 : public virtual A {24  virtual void foo();25};26 27class V2 : public virtual V1 {28  virtual void foo();29};30void V1::foo() { }31void V2::foo() { }32 33// CHECK: @_ZTI1A = weak_odr {{(dso_local |hidden )?}}constant34// CHECK: @_ZTS1A = weak_odr {{(dso_local |hidden )?}}constant35// CHECK: @_ZTI1B = weak_odr {{(dso_local |hidden )?}}constant36// CHECK: @_ZTS1B = weak_odr {{(dso_local |hidden )?}}constant37// CHECK: @_ZTI1C = weak_odr {{(dso_local |hidden )?}}constant38// CHECK: @_ZTS1C = weak_odr {{(dso_local |hidden )?}}constant39// CHECK: @_ZTI2T1 = linkonce_odr {{(dso_local |hidden )?}}constant40// CHECK: @_ZTS2T1 = linkonce_odr {{(dso_local |hidden )?}}constant41// CHECK: @_ZTI1T = linkonce_odr {{(dso_local |hidden )?}}constant42// CHECK: @_ZTS1T = linkonce_odr {{(dso_local |hidden )?}}constant43// CHECK: @_ZTI2V1 = weak_odr {{(dso_local |hidden )?}}constant44// CHECK: @_ZTS2V1 = weak_odr {{(dso_local |hidden )?}}constant45// CHECK: @_ZTI2V2 = weak_odr {{(dso_local |hidden )?}}constant46// CHECK: @_ZTS2V2 = weak_odr {{(dso_local |hidden )?}}constant47