Skip to content

Commit 8356bb7

Browse files
[DebugInfo] Add symbol for debugger with VTable information.
Address comments from reviewers: - Remove the LLVM tests, as they do not add any coverage. - Rework the test case that use individual .cpp/h files to use just a single file. The checks are the same.
1 parent dc84180 commit 8356bb7

8 files changed

+79
-639
lines changed

clang/test/CodeGenCXX/Inputs/vtable-debug-info-inheritance-simple-base.cpp

Lines changed: 0 additions & 14 deletions
This file was deleted.

clang/test/CodeGenCXX/Inputs/vtable-debug-info-inheritance-simple-base.h

Lines changed: 0 additions & 15 deletions
This file was deleted.

clang/test/CodeGenCXX/Inputs/vtable-debug-info-inheritance-simple-derived.cpp

Lines changed: 0 additions & 13 deletions
This file was deleted.

clang/test/CodeGenCXX/Inputs/vtable-debug-info-inheritance-simple-derived.h

Lines changed: 0 additions & 14 deletions
This file was deleted.

clang/test/CodeGenCXX/vtable-debug-info-inheritance-simple-main.cpp

Lines changed: 79 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,73 @@
66
// - Generation of their '_vtable$' data members:
77
// * Correct scope and attributes
88

9-
#include "Inputs/vtable-debug-info-inheritance-simple-base.h"
10-
#include "Inputs/vtable-debug-info-inheritance-simple-derived.h"
9+
#ifdef BASE_CODE
10+
#define BASE_DEF
11+
#endif
12+
13+
#ifdef DERIVED_CODE
14+
#define BASE_DEF
15+
#define DERIVED_DEF
16+
#endif
17+
18+
#ifdef MAIN_CODE
19+
#define BASE_DEF
20+
#define DERIVED_DEF
21+
#endif
22+
23+
#ifdef BASE_DEF
24+
namespace NSP {
25+
struct CBase {
26+
unsigned B = 1;
27+
virtual void zero();
28+
virtual int one();
29+
virtual int two();
30+
virtual int three();
31+
};
32+
}
33+
extern void fooBase();
34+
#endif
35+
36+
#ifdef BASE_CODE
37+
void NSP::CBase::zero() {}
38+
int NSP::CBase::one() { return 1; }
39+
int NSP::CBase::two() { return 2; };
40+
int NSP::CBase::three() { return 3; }
1141

42+
#ifdef SYMBOL_AT_FILE_SCOPE
43+
static NSP::CBase Base;
44+
#else
45+
void fooBase() {
46+
NSP::CBase Base;
47+
}
48+
#endif
49+
#endif
50+
51+
#ifdef DERIVED_DEF
52+
struct CDerived : NSP::CBase {
53+
unsigned D = 2;
54+
void zero() override;
55+
int two() override;
56+
int three() override;
57+
};
58+
extern void fooDerived();
59+
#endif
60+
61+
#ifdef DERIVED_CODE
62+
void CDerived::zero() {}
63+
int CDerived::two() { return 22; };
64+
int CDerived::three() { return 33; }
65+
66+
#ifdef SYMBOL_AT_FILE_SCOPE
67+
static CDerived Derived;
68+
#else
69+
void fooDerived() {
70+
CDerived Derived;
71+
}
72+
#endif
73+
#endif
74+
75+
#ifdef MAIN_CODE
1276
int main() {
1377
#ifdef SYMBOL_AT_FILE_SCOPE
1478
NSP::CBase Base;
@@ -20,28 +84,29 @@ int main() {
2084

2185
return 0;
2286
}
87+
#endif
2388

24-
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g %S/Inputs/vtable-debug-info-inheritance-simple-base.cpp -o %t.simple-base.bc
25-
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g %S/Inputs/vtable-debug-info-inheritance-simple-derived.cpp -o %t.simple-derived.bc
26-
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g %s -o %t.simple-main.bc
89+
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g %s -o %t.simple-base.bc -DBASE_CODE
90+
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g %s -o %t.simple-derived.bc -DDERIVED_CODE
91+
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g %s -o %t.simple-main.bc -DMAIN_CODE
2792
// RUN: llvm-link %t.simple-base.bc %t.simple-derived.bc %t.simple-main.bc -S -o %t.simple-combined.ll
2893
// RUN: FileCheck --input-file=%t.simple-combined.ll -check-prefix=CHECK-ONE %s
2994

30-
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g -flto %S/Inputs/vtable-debug-info-inheritance-simple-base.cpp -o %t.simple-base.bc
31-
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g -flto %S/Inputs/vtable-debug-info-inheritance-simple-derived.cpp -o %t.simple-derived.bc
32-
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g -flto %s -o %t.simple-main.bc
95+
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g -flto %s -o %t.simple-base.bc -DBASE_CODE
96+
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g -flto %s -o %t.simple-derived.bc -DDERIVED_CODE
97+
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g -flto %s -o %t.simple-main.bc -DMAIN_CODE
3398
// RUN: llvm-link %t.simple-base.bc %t.simple-derived.bc %t.simple-main.bc -S -o %t.simple-combined.ll
3499
// RUN: FileCheck --input-file=%t.simple-combined.ll -check-prefix=CHECK-ONE %s
35100

36-
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g %S/Inputs/vtable-debug-info-inheritance-simple-base.cpp -o %t.simple-base.bc -DSYMBOL_AT_FILE_SCOPE
37-
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g %S/Inputs/vtable-debug-info-inheritance-simple-derived.cpp -o %t.simple-derived.bc -DSYMBOL_AT_FILE_SCOPE
38-
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g %s -o %t.simple-main.bc -DSYMBOL_AT_FILE_SCOPE
101+
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g %s -o %t.simple-base.bc -DBASE_CODE -DSYMBOL_AT_FILE_SCOPE
102+
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g %s -o %t.simple-derived.bc -DDERIVED_CODE -DSYMBOL_AT_FILE_SCOPE
103+
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g %s -o %t.simple-main.bc -DMAIN_CODE -DSYMBOL_AT_FILE_SCOPE
39104
// RUN: llvm-link %t.simple-base.bc %t.simple-derived.bc %t.simple-main.bc -S -o %t.simple-combined.ll
40105
// RUN: FileCheck --input-file=%t.simple-combined.ll -check-prefix=CHECK-TWO %s
41106

42-
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g -flto %S/Inputs/vtable-debug-info-inheritance-simple-base.cpp -o %t.simple-base.bc -DSYMBOL_AT_FILE_SCOPE
43-
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g -flto %S/Inputs/vtable-debug-info-inheritance-simple-derived.cpp -o %t.simple-derived.bc -DSYMBOL_AT_FILE_SCOPE
44-
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g -flto %s -o %t.simple-main.bc -DSYMBOL_AT_FILE_SCOPE
107+
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g -flto %s -o %t.simple-base.bc -DBASE_CODE -DSYMBOL_AT_FILE_SCOPE
108+
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g -flto %s -o %t.simple-derived.bc -DDERIVED_CODE -DSYMBOL_AT_FILE_SCOPE
109+
// RUN: %clang --target=x86_64-linux -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -emit-llvm -c -g -flto %s -o %t.simple-main.bc -DMAIN_CODE -DSYMBOL_AT_FILE_SCOPE
45110
// RUN: llvm-link %t.simple-base.bc %t.simple-derived.bc %t.simple-main.bc -S -o %t.simple-combined.ll
46111
// RUN: FileCheck --input-file=%t.simple-combined.ll -check-prefix=CHECK-TWO %s
47112

llvm/test/DebugInfo/X86/vtable-debug-info-base-global-derived-local.ll

Lines changed: 0 additions & 180 deletions
This file was deleted.

0 commit comments

Comments
 (0)