1 // RUN: %clang_cc1 %s -debug-info-kind=limited -triple %itanium_abi_triple -fno-use-cxa-atexit -S -emit-llvm -o - \
2 // RUN:     | FileCheck %s --check-prefix=CHECK-NOKEXT
3 // RUN: %clang_cc1 %s -debug-info-kind=limited -triple %itanium_abi_triple -fno-use-cxa-atexit -fapple-kext -S -emit-llvm -o - \
4 // RUN:     | FileCheck %s --check-prefix=CHECK-KEXT
5 
6 class A {
7  public:
8   A() {}
9   virtual ~A() {}
10 };
11 
12 A glob;
13 A array[2];
14 
15 void foo() {
16   static A stat;
17 }
18 
19 // CHECK-NOKEXT: !DISubprogram(name: "__cxx_global_var_init",{{.*}} line: 12,{{.*}} isLocal: true, isDefinition: true
20 // CHECK-NOKEXT: !DISubprogram(name: "__dtor_glob",{{.*}} line: 12,{{.*}} isLocal: true, isDefinition: true
21 // CHECK-NOKEXT: !DISubprogram(name: "__cxx_global_var_init.1",{{.*}} line: 13,{{.*}} isLocal: true, isDefinition: true
22 // CHECK-NOKEXT: !DISubprogram(name: "__cxx_global_array_dtor",{{.*}} line: 13,{{.*}} isLocal: true, isDefinition: true
23 // CHECK-NOKEXT: !DISubprogram(name: "__dtor_array",{{.*}} line: 13,{{.*}} isLocal: true, isDefinition: true
24 // CHECK-NOKEXT: !DISubprogram(name: "__dtor__ZZ3foovE4stat",{{.*}} line: 16,{{.*}} isLocal: true, isDefinition: true
25 // CHECK-NOKEXT: !DISubprogram({{.*}} isLocal: true, isDefinition: true
26 
27 // CHECK-KEXT: !DISubprogram({{.*}} isLocal: true, isDefinition: true
28