Commit bd5c636
committed
DWARF: debug_names: Don't emit entries for skeleton type units
When a type unit is emitted, the CU referencing the type unit ends up
with a little DW_TAG_*_type with the DW_AT_signature and
DW_AT_declaration sometimes referred to (by me? maybe other people?) as
a skeleton type.
We shouldn't produce .debug_names reference to these - only to the
actual type definition in the type unit. So this patch does that.
But, inversely, the .debug_gnu_pubtypes /does/ need to reference the
skeleton type (& gcc does this too, when it produces a skeleton type
(gcc doesn't always produce these - if the type is only referenced once
via DW_AT_type, gcc uses a direct DW_FORM_ref_sig8 on the DW_AT_type
without the intermediate skeleton type)) - so there's a little special
case added in to preserve that behavior which is covered by existing
tests.1 parent ab29203 commit bd5c636
File tree
5 files changed
+38
-48
lines changed- llvm
- lib/CodeGen/AsmPrinter
- test/DebugInfo/X86
5 files changed
+38
-48
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1539 | 1539 | | |
1540 | 1540 | | |
1541 | 1541 | | |
1542 | | - | |
1543 | | - | |
| 1542 | + | |
| 1543 | + | |
1544 | 1544 | | |
1545 | 1545 | | |
1546 | 1546 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
335 | 335 | | |
336 | 336 | | |
337 | 337 | | |
338 | | - | |
339 | | - | |
| 338 | + | |
| 339 | + | |
340 | 340 | | |
341 | 341 | | |
342 | 342 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
578 | 578 | | |
579 | 579 | | |
580 | 580 | | |
581 | | - | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
582 | 585 | | |
583 | | - | |
584 | | - | |
585 | | - | |
586 | | - | |
587 | | - | |
588 | | - | |
589 | | - | |
| 586 | + | |
590 | 587 | | |
591 | 588 | | |
592 | 589 | | |
593 | | - | |
| 590 | + | |
| 591 | + | |
594 | 592 | | |
595 | | - | |
| 593 | + | |
| 594 | + | |
596 | 595 | | |
| 596 | + | |
597 | 597 | | |
598 | 598 | | |
599 | | - | |
600 | | - | |
601 | | - | |
602 | | - | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
603 | 608 | | |
604 | 609 | | |
605 | 610 | | |
| |||
650 | 655 | | |
651 | 656 | | |
652 | 657 | | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
653 | 663 | | |
654 | 664 | | |
655 | | - | |
| 665 | + | |
656 | 666 | | |
657 | 667 | | |
658 | 668 | | |
| |||
1849 | 1859 | | |
1850 | 1860 | | |
1851 | 1861 | | |
1852 | | - | |
1853 | | - | |
| 1862 | + | |
| 1863 | + | |
1854 | 1864 | | |
1855 | 1865 | | |
1856 | 1866 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
128 | 128 | | |
129 | 129 | | |
130 | 130 | | |
131 | | - | |
132 | | - | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
133 | 135 | | |
134 | 136 | | |
135 | 137 | | |
| |||
397 | 399 | | |
398 | 400 | | |
399 | 401 | | |
400 | | - | |
401 | | - | |
| 402 | + | |
| 403 | + | |
402 | 404 | | |
403 | 405 | | |
404 | 406 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | 51 | | |
57 | 52 | | |
58 | 53 | | |
| |||
88 | 83 | | |
89 | 84 | | |
90 | 85 | | |
91 | | - | |
92 | | - | |
93 | | - | |
94 | | - | |
95 | | - | |
96 | | - | |
97 | 86 | | |
98 | 87 | | |
99 | 88 | | |
| |||
130 | 119 | | |
131 | 120 | | |
132 | 121 | | |
133 | | - | |
| 122 | + | |
134 | 123 | | |
135 | 124 | | |
136 | 125 | | |
| |||
151 | 140 | | |
152 | 141 | | |
153 | 142 | | |
154 | | - | |
155 | | - | |
156 | | - | |
157 | | - | |
158 | | - | |
159 | 143 | | |
160 | 144 | | |
161 | 145 | | |
| |||
191 | 175 | | |
192 | 176 | | |
193 | 177 | | |
194 | | - | |
195 | | - | |
196 | | - | |
197 | | - | |
198 | | - | |
199 | | - | |
200 | 178 | | |
201 | 179 | | |
202 | 180 | | |
| |||
0 commit comments