xref: /llvm-project/clang/test/CodeGenCXX/mangle-std-externc.cpp (revision c9bd88e6811fb622cde644a82eac41c0b02c00ee)
1*c9bd88e6SHans Wennborg // RUN: %clang_cc1 %s -DNS=std -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s --check-prefix=CHECK-STD
2*c9bd88e6SHans Wennborg // RUN: %clang_cc1 %s -DNS=n -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s --check-prefix=CHECK-N
37583ccdcSJames Molloy 
47583ccdcSJames Molloy // _ZNSt1DISt1CE1iE = std::D<std::C>::i
57583ccdcSJames Molloy // CHECK-STD: @_ZNSt1DISt1CE1iE =
67583ccdcSJames Molloy 
77583ccdcSJames Molloy // _ZN1n1DINS_1CEE1iE == n::D<n::C>::i
87583ccdcSJames Molloy // CHECK-N: @_ZN1n1DINS_1CEE1iE =
97583ccdcSJames Molloy 
107583ccdcSJames Molloy namespace NS {
117583ccdcSJames Molloy   extern "C" {
127583ccdcSJames Molloy     class C {
137583ccdcSJames Molloy     };
147583ccdcSJames Molloy   }
157583ccdcSJames Molloy 
167583ccdcSJames Molloy   template <class T>
177583ccdcSJames Molloy   class D {
187583ccdcSJames Molloy   public:
197583ccdcSJames Molloy     static int i;
207583ccdcSJames Molloy   };
217583ccdcSJames Molloy 
227583ccdcSJames Molloy }
237583ccdcSJames Molloy 
247583ccdcSJames Molloy 
f()257583ccdcSJames Molloy int f() {
267583ccdcSJames Molloy   return NS::D<NS::C>::i;
277583ccdcSJames Molloy }
28