1*6a867303SDavid Tenty // RUN: %clang_cc1 -triple powerpc-ibm-aix %s -mdefault-visibility-export-mapping=none -mconstructor-aliases -S -emit-llvm -o - | \ 2*6a867303SDavid Tenty // RUN: FileCheck -check-prefixes=UNSPECIFIED-DEF,EXPLICIT-DEF %s 3*6a867303SDavid Tenty // RUN: %clang_cc1 -triple powerpc-ibm-aix %s -mdefault-visibility-export-mapping=explicit -mconstructor-aliases -S -emit-llvm -o - | \ 4*6a867303SDavid Tenty // RUN: FileCheck -check-prefixes=UNSPECIFIED-DEF,EXPLICIT-EXP %s 5*6a867303SDavid Tenty // RUN: %clang_cc1 -triple powerpc-ibm-aix %s -mdefault-visibility-export-mapping=all -mconstructor-aliases -S -emit-llvm -o - | \ 6*6a867303SDavid Tenty // RUN: FileCheck -check-prefixes=UNSPECIFIED-EXP,EXPLICIT-EXP %s 7*6a867303SDavid Tenty 8*6a867303SDavid Tenty class A { 9*6a867303SDavid Tenty public: 10*6a867303SDavid Tenty ~A(); 11*6a867303SDavid Tenty }; 12*6a867303SDavid Tenty ~A()13*6a867303SDavid TentyA::~A() {} 14*6a867303SDavid Tenty 15*6a867303SDavid Tenty class __attribute__((visibility("default"))) B { 16*6a867303SDavid Tenty public: 17*6a867303SDavid Tenty ~B(); 18*6a867303SDavid Tenty }; 19*6a867303SDavid Tenty ~B()20*6a867303SDavid TentyB::~B() {} 21*6a867303SDavid Tenty func()22*6a867303SDavid Tentyvoid func() { 23*6a867303SDavid Tenty A x; 24*6a867303SDavid Tenty B y; 25*6a867303SDavid Tenty } 26*6a867303SDavid Tenty 27*6a867303SDavid Tenty // A::~A() (complete object destructor) 28*6a867303SDavid Tenty // UNSPECIFIED-DEF: @_ZN1AD1Ev = unnamed_addr alias 29*6a867303SDavid Tenty // UNSPECIFIED-EXP: @_ZN1AD1Ev = dllexport unnamed_addr alias 30*6a867303SDavid Tenty 31*6a867303SDavid Tenty // B::~B() (complete object destructor) 32*6a867303SDavid Tenty // EXPLICIT-DEF: @_ZN1BD1Ev = unnamed_addr alias 33*6a867303SDavid Tenty // EXPLICIT-EXP: @_ZN1BD1Ev = dllexport unnamed_addr alias 34*6a867303SDavid Tenty 35*6a867303SDavid Tenty // A::~A() (base object destructor) 36*6a867303SDavid Tenty // UNSPECIFIED-DEF: define void @_ZN1AD2Ev( 37*6a867303SDavid Tenty // UNSPECIFIED-EXP: define dllexport void @_ZN1AD2Ev( 38*6a867303SDavid Tenty 39*6a867303SDavid Tenty // B::~B() (base object destructor) 40*6a867303SDavid Tenty // EXPLICIT-DEF: define void @_ZN1BD2Ev( 41*6a867303SDavid Tenty // EXPLICIT-EXP: define dllexport void @_ZN1BD2Ev( 42