1 // RUN: %clang_cc1 -emit-llvm %s -triple x86_64-windows-msvc -gcodeview -debug-info-kind=limited -o - | FileCheck %s 2 3 struct b { 4 b(char *); 5 ~b(); 6 }; 7 struct a { 8 ~a(); 9 }; 10 struct { 11 b c; 12 const a &d; 13 } e[]{nullptr, {}}; 14 15 // CHECK: define internal void @__cxx_global_array_dtor(i8* %0) 16 // CHECK-SAME: !dbg ![[SUBPROGRAM:[0-9]+]] { 17 // CHECK: arraydestroy.body 18 // CHECK: %arraydestroy.elementPast = 19 // CHECK-SAME: !dbg ![[LOCATION:[0-9]+]] 20 // CHECK: call void @"??1<unnamed-type-e>@@QEAA@XZ"(%struct.anon* {{[^,]*}} %arraydestroy.element) 21 // CHECK-SAME: !dbg ![[LOCATION]] 22 // CHECK: ![[SUBPROGRAM]] = distinct !DISubprogram(name: "__cxx_global_array_dtor" 23 // CHECK-SAME: flags: DIFlagArtificial 24 // CHECK: ![[LOCATION]] = !DILocation(line: 0, 25