Skip to content

Commit b6f922f

Browse files
committed
Revert "[CloneFunction][DebugInfo] Avoid cloning DILocalVariables of inlined functions (#75385)"
This reverts commit fc6faa1.
1 parent c3f96ac commit b6f922f

31 files changed

+199
-1266
lines changed

clang/test/CodeGen/debug-info-codeview-unnamed.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,23 @@ int main(int argc, char* argv[], char* arge[]) {
88
//
99
struct { int bar; } one = {42};
1010
//
11-
// LINUX: [[TYPE_OF_ONE:![0-9]+]] = distinct !DICompositeType(
11+
// LINUX: !{{[0-9]+}} = !DILocalVariable(name: "one"
12+
// LINUX-SAME: type: [[TYPE_OF_ONE:![0-9]+]]
13+
// LINUX-SAME: )
14+
// LINUX: [[TYPE_OF_ONE]] = distinct !DICompositeType(
1215
// LINUX-SAME: tag: DW_TAG_structure_type
1316
// LINUX-NOT: name:
1417
// LINUX-NOT: identifier:
1518
// LINUX-SAME: )
16-
// LINUX: !{{[0-9]+}} = !DILocalVariable(name: "one"
17-
// LINUX-SAME: type: [[TYPE_OF_ONE]]
18-
// LINUX-SAME: )
1919
//
20-
// MSVC: [[TYPE_OF_ONE:![0-9]+]] = distinct !DICompositeType
20+
// MSVC: !{{[0-9]+}} = !DILocalVariable(name: "one"
21+
// MSVC-SAME: type: [[TYPE_OF_ONE:![0-9]+]]
22+
// MSVC-SAME: )
23+
// MSVC: [[TYPE_OF_ONE]] = distinct !DICompositeType
2124
// MSVC-SAME: tag: DW_TAG_structure_type
2225
// MSVC-NOT: name:
2326
// MSVC-NOT: identifier:
2427
// MSVC-SAME: )
25-
// MSVC: !{{[0-9]+}} = !DILocalVariable(name: "one"
26-
// MSVC-SAME: type: [[TYPE_OF_ONE]]
27-
// MSVC-SAME: )
2828

2929
return 0;
3030
}

clang/test/CodeGen/debug-info-unused-types.c

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,13 @@ void quux(void) {
1818
// CHECK: !DICompileUnit{{.+}}retainedTypes: [[RETTYPES:![0-9]+]]
1919
// CHECK: [[TYPE0:![0-9]+]] = !DICompositeType(tag: DW_TAG_enumeration_type, name: "bar"
2020
// CHECK: [[TYPE1:![0-9]+]] = !DIEnumerator(name: "BAR"
21-
// CHECK: [[RETTYPES]] = !{[[TYPE2:![0-9]+]], [[TYPE3:![0-9]+]], [[TYPE0]], [[TYPE4:![0-9]+]], {{![0-9]+}}}
22-
// CHECK: [[TYPE2]] = !DIDerivedType(tag: DW_TAG_typedef, name: "my_int"
23-
// CHECK: [[TYPE3]] = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "foo"
24-
// CHECK: [[TYPE4]] = distinct !DICompositeType(tag: DW_TAG_union_type, name: "baz"
25-
// CHECK: [[SP:![0-9]+]] = distinct !DISubprogram(name: "quux", {{.*}}, retainedNodes: [[SPRETNODES:![0-9]+]]
26-
// CHECK: [[SPRETNODES]] = !{[[TYPE5:![0-9]+]], [[TYPE6:![0-9]+]], [[TYPE8:![0-9]+]]}
27-
// CHECK: [[TYPE5]] = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "y"
28-
// CHECK: [[TYPE6]] = !DICompositeType(tag: DW_TAG_enumeration_type, name: "z"
29-
// CHECK: [[TYPE7:![0-9]+]] = !DIEnumerator(name: "Z"
21+
// CHECK: [[TYPE2:![0-9]+]] = !DICompositeType(tag: DW_TAG_enumeration_type, name: "z"
22+
// CHECK: [[TYPE3:![0-9]+]] = !DIEnumerator(name: "Z"
23+
// CHECK: [[RETTYPES]] = !{[[TYPE4:![0-9]+]], [[TYPE5:![0-9]+]], [[TYPE0]], [[TYPE6:![0-9]+]], {{![0-9]+}}, [[TYPE7:![0-9]+]], [[TYPE2]], [[TYPE8:![0-9]+]]}
24+
// CHECK: [[TYPE4]] = !DIDerivedType(tag: DW_TAG_typedef, name: "my_int"
25+
// CHECK: [[TYPE5]] = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "foo"
26+
// CHECK: [[TYPE6]] = distinct !DICompositeType(tag: DW_TAG_union_type, name: "baz"
27+
// CHECK: [[TYPE7]] = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "y"
3028
// CHECK: [[TYPE8]] = distinct !DICompositeType(tag: DW_TAG_union_type, name: "w"
3129

3230
// Check that debug info is not emitted for the typedef, struct, enum, and

clang/test/CodeGen/debug-info-unused-types.cpp

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,12 @@ void quux() {
1313
// CHECK: !DICompileUnit{{.+}}retainedTypes: [[RETTYPES:![0-9]+]]
1414
// CHECK: [[TYPE0:![0-9]+]] = !DICompositeType(tag: DW_TAG_enumeration_type, name: "baz"
1515
// CHECK: [[TYPE1:![0-9]+]] = !DIEnumerator(name: "BAZ"
16-
// CHECK: [[RETTYPES]] = !{[[TYPE2:![0-9]+]], [[TYPE3:![0-9]+]], [[TYPE0]], {{![0-9]+}}}
17-
// CHECK: [[TYPE2]] = !DIDerivedType(tag: DW_TAG_typedef, name: "foo"
18-
// CHECK: [[TYPE3]] = distinct !DICompositeType(tag: DW_TAG_class_type, name: "bar"
19-
// CHECK: [[SP:![0-9]+]] = distinct !DISubprogram(name: "quux", {{.*}}, retainedNodes: [[SPRETNODES:![0-9]+]]
20-
// CHECK: [[SPRETNODES]] = !{[[TYPE4:![0-9]+]], [[TYPE5:![0-9]+]]}
21-
// CHECK: [[TYPE4]] = distinct !DICompositeType(tag: DW_TAG_class_type, name: "y", scope: [[SP]]
22-
// CHECK: [[TYPE5]] = !DICompositeType(tag: DW_TAG_enumeration_type, name: "z", scope: [[SP]]
23-
// CHECK: [[TYPE6:![0-9]+]] = !DIEnumerator(name: "Z"
16+
// CHECK: [[TYPE2:![0-9]+]] = !DICompositeType(tag: DW_TAG_enumeration_type, name: "z"
17+
// CHECK: [[TYPE3:![0-9]+]] = !DIEnumerator(name: "Z"
18+
// CHECK: [[RETTYPES]] = !{[[TYPE4:![0-9]+]], [[TYPE5:![0-9]+]], [[TYPE0]], {{![0-9]+}}, [[TYPE6:![0-9]+]], [[TYPE2]]}
19+
// CHECK: [[TYPE4]] = !DIDerivedType(tag: DW_TAG_typedef, name: "foo"
20+
// CHECK: [[TYPE5]] = distinct !DICompositeType(tag: DW_TAG_class_type, name: "bar"
21+
// CHECK: [[TYPE6]] = distinct !DICompositeType(tag: DW_TAG_class_type, name: "y"
2422

2523
// NODBG-NOT: !DI{{CompositeType|Enumerator|DerivedType}}
2624

clang/test/CodeGenCXX/debug-info-access.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ class B : public A {
1818
static int public_static;
1919

2020
protected:
21-
// CHECK-DAG: !DIDerivedType(tag: DW_TAG_typedef, name: "prot_using",{{.*}} line: [[@LINE+3]],{{.*}} flags: DIFlagProtected)
2221
// CHECK-DAG: !DIDerivedType(tag: DW_TAG_typedef, name: "prot_typedef",{{.*}} line: [[@LINE+1]],{{.*}} flags: DIFlagProtected)
2322
typedef int prot_typedef;
23+
// CHECK-DAG: !DIDerivedType(tag: DW_TAG_typedef, name: "prot_using",{{.*}} line: [[@LINE+1]],{{.*}} flags: DIFlagProtected)
2424
using prot_using = prot_typedef;
2525
prot_using prot_member;
2626

clang/test/CodeGenCXX/debug-info-anon-union-vars.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,13 @@ void instantiate(int x) {
5151
// CHECK: !DIGlobalVariable(name: "b",{{.*}} file: [[FILE]], line: 6,{{.*}} isLocal: true, isDefinition: true
5252
// CHECK: !DIGlobalVariable(name: "result", {{.*}} isLocal: false, isDefinition: true
5353
// CHECK: !DIGlobalVariable(name: "value", {{.*}} isLocal: false, isDefinition: true
54-
// CHECK: ![[UNION:[0-9]+]] = distinct !DICompositeType(tag: DW_TAG_union_type,
55-
// CHECK-NOT: name:
56-
// CHECK: elements
57-
// CHECK: !DIDerivedType(tag: DW_TAG_member, name: "i", scope: ![[UNION]],
58-
// CHECK: !DIDerivedType(tag: DW_TAG_member, name: "c", scope: ![[UNION]],
5954
// CHECK: !DILocalVariable(name: "i", {{.*}}, flags: DIFlagArtificial
6055
// CHECK: !DILocalVariable(name: "c", {{.*}}, flags: DIFlagArtificial
6156
// CHECK: !DILocalVariable(
6257
// CHECK-NOT: name:
63-
// CHECK: type: ![[UNION]]
58+
// CHECK: type: ![[UNION:[0-9]+]]
59+
// CHECK: ![[UNION]] = distinct !DICompositeType(tag: DW_TAG_union_type,
60+
// CHECK-NOT: name:
61+
// CHECK: elements
62+
// CHECK: !DIDerivedType(tag: DW_TAG_member, name: "i", scope: ![[UNION]],
63+
// CHECK: !DIDerivedType(tag: DW_TAG_member, name: "c", scope: ![[UNION]],

clang/test/CodeGenCXX/debug-info-codeview-unnamed.cpp

Lines changed: 48 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -3,72 +3,28 @@
33

44
int main(int argc, char* argv[], char* arge[]) {
55
//
6-
// LINUX: [[TYPE_OF_ONE:![0-9]+]] = distinct !DICompositeType(
7-
// LINUX-SAME: tag: DW_TAG_structure_type
8-
// LINUX-NOT: name:
9-
// LINUX-NOT: identifier:
10-
// LINUX-SAME: )
11-
//
12-
// MSVC: [[TYPE_OF_ONE:![0-9]+]] = distinct !DICompositeType
13-
// MSVC-SAME: tag: DW_TAG_structure_type
14-
// MSVC-SAME: name: "<unnamed-type-one>"
15-
// MSVC-SAME: identifier: ".?AU<unnamed-type-one>@?1??main@@9@"
16-
// MSVC-SAME: )
17-
18-
19-
//
20-
// LINUX: [[TYPE_OF_TWO:![0-9]+]] = distinct !DICompositeType(
21-
// LINUX-SAME: tag: DW_TAG_structure_type
22-
// LINUX-NOT: name:
23-
// LINUX-NOT: identifier:
24-
// LINUX-SAME: )
25-
//
26-
// MSVC: [[TYPE_OF_TWO:![0-9]+]] = distinct !DICompositeType
27-
// MSVC-SAME: tag: DW_TAG_structure_type
28-
// MSVC-SAME: name: "<unnamed-type-two>"
29-
// MSVC-SAME: identifier: ".?AU<unnamed-type-two>@?2??main@@9@"
30-
// MSVC-SAME: )
31-
32-
33-
//
34-
// LINUX: [[TYPE_OF_THREE:![0-9]+]] = distinct !DICompositeType(
35-
// LINUX-SAME: tag: DW_TAG_structure_type
36-
// LINUX-SAME: name: "named"
37-
// LINUX-NOT: identifier:
38-
// LINUX-SAME: )
39-
//
40-
// MSVC: [[TYPE_OF_THREE:![0-9]+]] = distinct !DICompositeType
41-
// MSVC-SAME: tag: DW_TAG_structure_type
42-
// MSVC-SAME: name: "named"
43-
// MSVC-SAME: identifier: ".?AUnamed@?1??main@@9@"
44-
// MSVC-SAME: )
45-
46-
//
47-
// LINUX: [[TYPE_OF_FOUR:![0-9]+]] = distinct !DICompositeType(
48-
// LINUX-SAME: tag: DW_TAG_class_type
49-
// LINUX-NOT: name:
50-
// LINUX-NOT: identifier:
51-
// LINUX-SAME: )
52-
//
53-
// MSVC: [[TYPE_OF_FOUR:![0-9]+]] = distinct !DICompositeType
54-
// MSVC-SAME: tag: DW_TAG_class_type
55-
// MSVC-SAME: name: "<lambda_0>"
56-
// MSVC-SAME: identifier: ".?AV<lambda_0>@?0??main@@9@"
57-
// MSVC-SAME: )
58-
59-
606
// In CodeView, the LF_MFUNCTION entry for "bar()" refers to the forward
617
// reference of the unnamed struct. Visual Studio requires a unique
628
// identifier to match the LF_STRUCTURE forward reference to the definition.
639
//
6410
struct { void bar() {} } one;
6511
//
6612
// LINUX: !{{[0-9]+}} = !DILocalVariable(name: "one"
67-
// LINUX-SAME: type: [[TYPE_OF_ONE]]
13+
// LINUX-SAME: type: [[TYPE_OF_ONE:![0-9]+]]
14+
// LINUX-SAME: )
15+
// LINUX: [[TYPE_OF_ONE]] = distinct !DICompositeType(
16+
// LINUX-SAME: tag: DW_TAG_structure_type
17+
// LINUX-NOT: name:
18+
// LINUX-NOT: identifier:
6819
// LINUX-SAME: )
6920
//
7021
// MSVC: !{{[0-9]+}} = !DILocalVariable(name: "one"
71-
// MSVC-SAME: type: [[TYPE_OF_ONE]]
22+
// MSVC-SAME: type: [[TYPE_OF_ONE:![0-9]+]]
23+
// MSVC-SAME: )
24+
// MSVC: [[TYPE_OF_ONE]] = distinct !DICompositeType
25+
// MSVC-SAME: tag: DW_TAG_structure_type
26+
// MSVC-SAME: name: "<unnamed-type-one>"
27+
// MSVC-SAME: identifier: ".?AU<unnamed-type-one>@?1??main@@9@"
7228
// MSVC-SAME: )
7329

7430

@@ -80,11 +36,21 @@ int main(int argc, char* argv[], char* arge[]) {
8036
int decltype(two)::*ptr2unnamed = &decltype(two)::bar;
8137
//
8238
// LINUX: !{{[0-9]+}} = !DILocalVariable(name: "two"
83-
// LINUX-SAME: type: [[TYPE_OF_TWO]]
39+
// LINUX-SAME: type: [[TYPE_OF_TWO:![0-9]+]]
40+
// LINUX-SAME: )
41+
// LINUX: [[TYPE_OF_TWO]] = distinct !DICompositeType(
42+
// LINUX-SAME: tag: DW_TAG_structure_type
43+
// LINUX-NOT: name:
44+
// LINUX-NOT: identifier:
8445
// LINUX-SAME: )
8546
//
8647
// MSVC: !{{[0-9]+}} = !DILocalVariable(name: "two"
87-
// MSVC-SAME: type: [[TYPE_OF_TWO]]
48+
// MSVC-SAME: type: [[TYPE_OF_TWO:![0-9]+]]
49+
// MSVC-SAME: )
50+
// MSVC: [[TYPE_OF_TWO]] = distinct !DICompositeType
51+
// MSVC-SAME: tag: DW_TAG_structure_type
52+
// MSVC-SAME: name: "<unnamed-type-two>"
53+
// MSVC-SAME: identifier: ".?AU<unnamed-type-two>@?2??main@@9@"
8854
// MSVC-SAME: )
8955

9056

@@ -95,11 +61,21 @@ int main(int argc, char* argv[], char* arge[]) {
9561
struct named { int bar; int named::* p2mem; } three = { 42, &named::bar };
9662
//
9763
// LINUX: !{{[0-9]+}} = !DILocalVariable(name: "three"
98-
// LINUX-SAME: type: [[TYPE_OF_THREE]]
64+
// LINUX-SAME: type: [[TYPE_OF_THREE:![0-9]+]]
65+
// LINUX-SAME: )
66+
// LINUX: [[TYPE_OF_THREE]] = distinct !DICompositeType(
67+
// LINUX-SAME: tag: DW_TAG_structure_type
68+
// LINUX-SAME: name: "named"
69+
// LINUX-NOT: identifier:
9970
// LINUX-SAME: )
10071
//
10172
// MSVC: !{{[0-9]+}} = !DILocalVariable(name: "three"
102-
// MSVC-SAME: type: [[TYPE_OF_THREE]]
73+
// MSVC-SAME: type: [[TYPE_OF_THREE:![0-9]+]]
74+
// MSVC-SAME: )
75+
// MSVC: [[TYPE_OF_THREE]] = distinct !DICompositeType
76+
// MSVC-SAME: tag: DW_TAG_structure_type
77+
// MSVC-SAME: name: "named"
78+
// MSVC-SAME: identifier: ".?AUnamed@?1??main@@9@"
10379
// MSVC-SAME: )
10480

10581

@@ -111,11 +87,21 @@ int main(int argc, char* argv[], char* arge[]) {
11187
auto four = [argc](int i) -> int { return argc == i ? 1 : 0; };
11288
//
11389
// LINUX: !{{[0-9]+}} = !DILocalVariable(name: "four"
114-
// LINUX-SAME: type: [[TYPE_OF_FOUR]]
90+
// LINUX-SAME: type: [[TYPE_OF_FOUR:![0-9]+]]
91+
// LINUX-SAME: )
92+
// LINUX: [[TYPE_OF_FOUR]] = distinct !DICompositeType(
93+
// LINUX-SAME: tag: DW_TAG_class_type
94+
// LINUX-NOT: name:
95+
// LINUX-NOT: identifier:
11596
// LINUX-SAME: )
11697
//
11798
// MSVC: !{{[0-9]+}} = !DILocalVariable(name: "four"
118-
// MSVC-SAME: type: [[TYPE_OF_FOUR]]
99+
// MSVC-SAME: type: [[TYPE_OF_FOUR:![0-9]+]]
100+
// MSVC-SAME: )
101+
// MSVC: [[TYPE_OF_FOUR]] = distinct !DICompositeType
102+
// MSVC-SAME: tag: DW_TAG_class_type
103+
// MSVC-SAME: name: "<lambda_0>"
104+
// MSVC-SAME: identifier: ".?AV<lambda_0>@?0??main@@9@"
119105
// MSVC-SAME: )
120106

121107
return 0;

clang/test/CodeGenCXX/debug-info-gline-tables-only-codeview.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@ void test() {
5151
// CHECK-SAME: name: "<lambda_2_1>",
5252
c.lambda_params();
5353

54-
// CHECK: ![[LAMBDA1:[0-9]+]] = !DICompositeType(tag: DW_TAG_class_type,
54+
// CHECK: !DISubprogram(name: "operator()", scope: ![[LAMBDA1:[0-9]+]],
55+
// CHECK: ![[LAMBDA1]] = !DICompositeType(tag: DW_TAG_class_type,
5556
// CHECK-SAME: name: "<lambda_1>",
5657
// CHECK-SAME: flags: DIFlagFwdDecl
57-
// CHECK: !DISubprogram(name: "operator()", scope: ![[LAMBDA1]],
5858
c.lambda2();
5959
}

clang/test/CodeGenCXX/debug-lambda-this.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ int D::d(int x) {
1313
}
1414

1515
// CHECK: ![[D:[0-9]+]] = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "D",
16+
// CHECK: ![[POINTER:.*]] = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: ![[D]], size: 64)
1617
// CHECK: !DIDerivedType(tag: DW_TAG_member, name: "this",
1718
// CHECK-SAME: line: 11
18-
// CHECK-SAME: baseType: ![[POINTER:[0-9]+]]
19+
// CHECK-SAME: baseType: ![[POINTER]]
1920
// CHECK-SAME: size: 64
2021
// CHECK-NOT: offset: 0
2122
// CHECK-SAME: ){{$}}
22-
// CHECK: ![[POINTER]] = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: ![[D]], size: 64)

llvm/include/llvm/IR/DIBuilder.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ namespace llvm {
4949
Function *LabelFn; ///< llvm.dbg.label
5050
Function *AssignFn; ///< llvm.dbg.assign
5151

52-
SmallVector<TrackingMDNodeRef, 4> EnumTypes;
52+
SmallVector<TrackingMDNodeRef, 4> AllEnumTypes;
5353
/// Track the RetainTypes, since they can be updated later on.
5454
SmallVector<TrackingMDNodeRef, 4> AllRetainTypes;
5555
SmallVector<DISubprogram *, 4> AllSubprograms;
@@ -64,8 +64,8 @@ namespace llvm {
6464
SmallVector<TrackingMDNodeRef, 4> UnresolvedNodes;
6565
bool AllowUnresolvedNodes;
6666

67-
/// Each subprogram's preserved local variables, labels, imported entities,
68-
/// and types.
67+
/// Each subprogram's preserved local variables, labels and imported
68+
/// entities.
6969
///
7070
/// Do not use a std::vector. Some versions of libc++ apparently copy
7171
/// instead of move on grow operations, and TrackingMDRef is expensive to

llvm/include/llvm/IR/DebugInfo.h

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ class DebugInfoFinder {
105105
void processInstruction(const Module &M, const Instruction &I);
106106

107107
/// Process a DILocalVariable.
108-
void processVariable(DILocalVariable *DVI);
108+
void processVariable(const Module &M, const DILocalVariable *DVI);
109109
/// Process debug info location.
110110
void processLocation(const Module &M, const DILocation *Loc);
111111
// Process a DPValue, much like a DbgVariableIntrinsic.
@@ -121,7 +121,6 @@ class DebugInfoFinder {
121121
void processCompileUnit(DICompileUnit *CU);
122122
void processScope(DIScope *Scope);
123123
void processType(DIType *DT);
124-
void processLocalVariable(DILocalVariable *DV);
125124
bool addCompileUnit(DICompileUnit *CU);
126125
bool addGlobalVariable(DIGlobalVariableExpression *DIG);
127126
bool addScope(DIScope *Scope);
@@ -136,8 +135,6 @@ class DebugInfoFinder {
136135
SmallVectorImpl<DIGlobalVariableExpression *>::const_iterator;
137136
using type_iterator = SmallVectorImpl<DIType *>::const_iterator;
138137
using scope_iterator = SmallVectorImpl<DIScope *>::const_iterator;
139-
using local_variable_iterator =
140-
SmallVectorImpl<DILocalVariable *>::const_iterator;
141138

142139
iterator_range<compile_unit_iterator> compile_units() const {
143140
return make_range(CUs.begin(), CUs.end());
@@ -151,10 +148,6 @@ class DebugInfoFinder {
151148
return make_range(GVs.begin(), GVs.end());
152149
}
153150

154-
iterator_range<local_variable_iterator> local_variables() const {
155-
return make_range(LVs.begin(), LVs.end());
156-
}
157-
158151
iterator_range<type_iterator> types() const {
159152
return make_range(TYs.begin(), TYs.end());
160153
}
@@ -165,7 +158,6 @@ class DebugInfoFinder {
165158

166159
unsigned compile_unit_count() const { return CUs.size(); }
167160
unsigned global_variable_count() const { return GVs.size(); }
168-
unsigned local_variable_count() const { return LVs.size(); }
169161
unsigned subprogram_count() const { return SPs.size(); }
170162
unsigned type_count() const { return TYs.size(); }
171163
unsigned scope_count() const { return Scopes.size(); }
@@ -174,7 +166,6 @@ class DebugInfoFinder {
174166
SmallVector<DICompileUnit *, 8> CUs;
175167
SmallVector<DISubprogram *, 8> SPs;
176168
SmallVector<DIGlobalVariableExpression *, 8> GVs;
177-
SmallVector<DILocalVariable *, 8> LVs;
178169
SmallVector<DIType *, 8> TYs;
179170
SmallVector<DIScope *, 8> Scopes;
180171
SmallPtrSet<const MDNode *, 32> NodesSeen;

0 commit comments

Comments
 (0)