xref: /llvm-project/clang/test/CodeGenCXX/visibility-global-new-delete.cpp (revision 27ce26b06655cfece3d54b30e442ef93d3e78ac7)
1 // RUN: %clang_cc1 %s -std=c++11 -triple x86_64-unknown-unknown -fvisibility=hidden -emit-llvm -o - | FileCheck %s -DLINKAGE=dso_local
2 // RUN: %clang_cc1 %s -std=c++11 -triple x86_64-unknown-unknown -fvisibility=default -fvisibility-global-new-delete=force-hidden -emit-llvm -o - | FileCheck %s -DLINKAGE=hidden
3 // RUN: %clang_cc1 %s -std=c++11 -triple x86_64-unknown-unknown -fvisibility=hidden -fvisibility-global-new-delete=force-protected -emit-llvm -o - | FileCheck %s -DLINKAGE=protected
4 // RUN: %clang_cc1 %s -std=c++11 -triple x86_64-unknown-unknown -fvisibility=hidden -fvisibility-global-new-delete=force-default -emit-llvm -o - | FileCheck %s -DLINKAGE=dso_local
5 // RUN: %clang_cc1 %s -std=c++11 -triple x86_64-unknown-unknown -fvisibility=hidden -fvisibility-global-new-delete=source -emit-llvm -o - | FileCheck %s -DLINKAGE=hidden
6 
7 namespace std {
8   typedef __typeof__(sizeof(0)) size_t;
9   struct nothrow_t {};
10 }
11 
12 // Definition which inherits visibility from the implicit compiler generated declaration.
operator delete(void *)13 void operator delete(void*) throw() {}
14 // CHECK: define [[LINKAGE]] void @_ZdlPv
15