| // RUN: %clang_cc1 -emit-llvm %s -triple x86_64-windows-msvc -gcodeview -debug-info-kind=limited -o - | FileCheck %s | |
| struct b { | |
| b(char *); | |
| ~b(); | |
| }; | |
| struct a { | |
| ~a(); | |
| }; | |
| struct { | |
| b c; | |
| const a &d; | |
| } e[]{nullptr, {}}; | |
| // CHECK: define internal void @__cxx_global_array_dtor(i8* %0) | |
| // CHECK-SAME: !dbg ![[SUBPROGRAM:[0-9]+]] { | |
| // CHECK: arraydestroy.body | |
| // CHECK: %arraydestroy.elementPast = | |
| // CHECK-SAME: !dbg ![[LOCATION:[0-9]+]] | |
| // CHECK: call void @"??1<unnamed-type-e>@@QEAA@XZ"(%struct.anon* {{[^,]*}} %arraydestroy.element) | |
| // CHECK-SAME: !dbg ![[LOCATION]] | |
| // CHECK: ![[SUBPROGRAM]] = distinct !DISubprogram(name: "__cxx_global_array_dtor" | |
| // CHECK-SAME: flags: DIFlagArtificial | |
| // CHECK: ![[LOCATION]] = !DILocation(line: 0, |