
This patch works towards consolidating all Clang debug-info into the `clang/test/DebugInfo` directory (https://discourse.llvm.org/t/clang-test-location-of-clang-debug-info-tests/87958). Here we move only the `clang/test/CodeGenCXX` tests. I created a `CXX` subdirectory for now because many of the tests I checked actually did seem C++-specific. There is probably overlap between the `Generic` and `CXX` subdirectory, but I haven't gone through and audited them all. The list of files i came up with is: 1. searched for anything with `*debug-info*` in the filename 2. searched for occurrences of `debug-info-kind` in the tests There's a couple of tests in `clang/test/CodeGenCXX` that still set `-debug-info-kind`. They probably don't need to do that, but I'm not changing that as part of this PR.
46 lines
1.4 KiB
C++
46 lines
1.4 KiB
C++
// RUN: %clang_cc1 -debug-info-kind=limited -gno-column-info -triple=x86_64-pc-linux -emit-llvm %s -o - | FileCheck %s
|
|
|
|
// The important thing is that the compare and the conditional branch have
|
|
// locs with the same scope (the lexical block for the 'if'). By turning off
|
|
// column info, they end up with the same !dbg record, which halves the number
|
|
// of checks to verify the scope.
|
|
|
|
int c = 2;
|
|
|
|
int f() {
|
|
#line 100
|
|
if (int a = 5; a > c)
|
|
return 1;
|
|
return 0;
|
|
}
|
|
// CHECK-LABEL: define {{.*}} @_Z1fv()
|
|
// CHECK: = icmp {{.*}} !dbg [[F_CMP:![0-9]+]]
|
|
// CHECK-NEXT: br i1 {{.*}} !dbg [[F_CMP]]
|
|
|
|
int g() {
|
|
#line 200
|
|
if (int a = f())
|
|
return 2;
|
|
return 3;
|
|
}
|
|
// CHECK-LABEL: define {{.*}} @_Z1gv()
|
|
// CHECK: = icmp {{.*}} !dbg [[G_CMP:![0-9]+]]
|
|
// CHECK-NEXT: br i1 {{.*}} !dbg [[G_CMP]]
|
|
|
|
int h() {
|
|
#line 300
|
|
if (c > 3)
|
|
return 4;
|
|
return 5;
|
|
}
|
|
// CHECK-LABEL: define {{.*}} @_Z1hv()
|
|
// CHECK: = icmp {{.*}} !dbg [[H_CMP:![0-9]+]]
|
|
// CHECK-NEXT: br i1 {{.*}} !dbg [[H_CMP]]
|
|
|
|
// CHECK-DAG: [[F_CMP]] = !DILocation(line: 100, scope: [[F_SCOPE:![0-9]+]]
|
|
// CHECK-DAG: [[F_SCOPE]] = distinct !DILexicalBlock({{.*}} line: 100)
|
|
// CHECK-DAG: [[G_CMP]] = !DILocation(line: 200, scope: [[G_SCOPE:![0-9]+]]
|
|
// CHECK-DAG: [[G_SCOPE]] = distinct !DILexicalBlock({{.*}} line: 200)
|
|
// CHECK-DAG: [[H_CMP]] = !DILocation(line: 300, scope: [[H_SCOPE:![0-9]+]]
|
|
// CHECK-DAG: [[H_SCOPE]] = distinct !DILexicalBlock({{.*}} line: 300)
|