You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
951 B
30 lines
951 B
// RUN: %clang_cc1 %s -I%S -triple=x86_64-apple-darwin10 -emit-llvm -o %t
|
|
// RUN: FileCheck --check-prefix=CHECK-TEST1 %s < %t
|
|
// RUN: FileCheck --check-prefix=CHECK-TEST2 %s < %t
|
|
|
|
#include <typeinfo>
|
|
|
|
namespace Test1 {
|
|
// A is explicitly marked hidden, so all RTTI data should also be marked hidden.
|
|
// CHECK-TEST1: @_ZTSN5Test11AE = linkonce_odr hidden constant
|
|
// CHECK-TEST1: @_ZTIN5Test11AE = linkonce_odr hidden constant
|
|
// CHECK-TEST1: @_ZTSPN5Test11AE = linkonce_odr hidden constant
|
|
// CHECK-TEST1: @_ZTIPN5Test11AE = linkonce_odr hidden constant
|
|
struct __attribute__((visibility("hidden"))) A { };
|
|
|
|
void f() {
|
|
(void)typeid(A);
|
|
(void)typeid(A *);
|
|
}
|
|
}
|
|
|
|
namespace Test2 {
|
|
// A is weak, so its linkage should be linkoce_odr, but not marked hidden.
|
|
// CHECK-TEST2: @_ZTSN5Test21AE = linkonce_odr constant
|
|
// CHECK-TEST2: @_ZTIN5Test21AE = linkonce_odr constant
|
|
struct A { };
|
|
void f() {
|
|
(void)typeid(A);
|
|
}
|
|
}
|