| // RUN: %clang_cc1 %s -gcodeview -debug-info-kind=line-tables-only -S \ |
| // RUN: -emit-llvm -o - | FileCheck %s |
| // Checks that clang with "-gline-tables-only" with CodeView emits some debug |
| // info for variables and types when they appear in function scopes. |
| |
| namespace NS { |
| struct C { |
| void m() {} |
| }; |
| void f() {} |
| } |
| |
| NS::C c; |
| |
| void test() { |
| // CHECK: !DISubprogram(name: "f", scope: ![[NS:[0-9]+]], |
| // CHECK-SAME: type: ![[F:[0-9]+]] |
| // CHECK: ![[NS]] = !DINamespace(name: "NS", scope: null) |
| // CHECK: ![[F]] = !DISubroutineType(types: ![[FTYPE:[0-9]+]]) |
| // CHECK: ![[FTYPE]] = !{null} |
| NS::f(); |
| |
| // CHECK: ![[M:[0-9]+]] = distinct !DISubprogram(name: "m", scope: ![[C:[0-9]+]], |
| // CHECK-SAME: type: ![[MTYPE:[0-9]+]] |
| // CHECK: ![[C]] = !DICompositeType(tag: DW_TAG_structure_type, name: "C", |
| // CHECK-SAME: flags: DIFlagFwdDecl |
| // CHECK-NOT: identifier |
| // CHECK: ![[MTYPE]] = !DISubroutineType({{.*}}types: !{{.*}}) |
| c.m(); |
| } |