42 lines · cpp
1// RUN: %clang_cc1 -triple powerpc-ibm-aix %s -mdefault-visibility-export-mapping=none -mconstructor-aliases -emit-llvm -o - | \2// RUN: FileCheck -check-prefixes=UNSPECIFIED-DEF,EXPLICIT-DEF %s3// RUN: %clang_cc1 -triple powerpc-ibm-aix %s -mdefault-visibility-export-mapping=explicit -mconstructor-aliases -emit-llvm -o - | \4// RUN: FileCheck -check-prefixes=UNSPECIFIED-DEF,EXPLICIT-EXP %s5// RUN: %clang_cc1 -triple powerpc-ibm-aix %s -mdefault-visibility-export-mapping=all -mconstructor-aliases -emit-llvm -o - | \6// RUN: FileCheck -check-prefixes=UNSPECIFIED-EXP,EXPLICIT-EXP %s7 8class A {9public:10 ~A();11};12 13A::~A() {}14 15class __attribute__((visibility("default"))) B {16public:17 ~B();18};19 20B::~B() {}21 22void func() {23 A x;24 B y;25}26 27// A::~A() (complete object destructor)28// UNSPECIFIED-DEF: @_ZN1AD1Ev = unnamed_addr alias29// UNSPECIFIED-EXP: @_ZN1AD1Ev = dllexport unnamed_addr alias30 31// B::~B() (complete object destructor)32// EXPLICIT-DEF: @_ZN1BD1Ev = unnamed_addr alias33// EXPLICIT-EXP: @_ZN1BD1Ev = dllexport unnamed_addr alias34 35// A::~A() (base object destructor)36// UNSPECIFIED-DEF: define void @_ZN1AD2Ev(37// UNSPECIFIED-EXP: define dllexport void @_ZN1AD2Ev(38 39// B::~B() (base object destructor)40// EXPLICIT-DEF: define void @_ZN1BD2Ev(41// EXPLICIT-EXP: define dllexport void @_ZN1BD2Ev(42