Commit 639a7ac
authored
[Clang][AST] Store injected template arguments in TemplateParameterList (#113579)
Currently, we store injected template arguments in
`RedeclarableTemplateDecl::CommonBase`. This approach has a couple
problems:
1. We can only access the injected template arguments of
`RedeclarableTemplateDecl` derived types, but other `Decl` kinds still
make use of the injected arguments (e.g.
`ClassTemplatePartialSpecializationDecl`,
`VarTemplatePartialSpecializationDecl`, and `TemplateTemplateParmDecl`).
2. Accessing the injected template arguments requires the common data
structure to be allocated. This may occur before we determine whether a
previous declaration exists (e.g. when comparing constraints), so if the
template _is_ a redeclaration, we end up discarding the common data
structure.
This patch moves the storage and access of injected template arguments
from `RedeclarableTemplateDecl` to `TemplateParameterList`.1 parent 4abc357 commit 639a7ac
File tree
6 files changed
+54
-109
lines changed- clang
- include/clang/AST
- lib
- AST
- Sema
6 files changed
+54
-109
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
239 | 239 | | |
240 | 240 | | |
241 | 241 | | |
242 | | - | |
| 242 | + | |
243 | 243 | | |
244 | 244 | | |
245 | 245 | | |
| |||
1778 | 1778 | | |
1779 | 1779 | | |
1780 | 1780 | | |
1781 | | - | |
1782 | | - | |
1783 | | - | |
1784 | | - | |
1785 | | - | |
1786 | | - | |
1787 | | - | |
| 1781 | + | |
1788 | 1782 | | |
1789 | 1783 | | |
1790 | 1784 | | |
| |||
1795 | 1789 | | |
1796 | 1790 | | |
1797 | 1791 | | |
1798 | | - | |
| 1792 | + | |
1799 | 1793 | | |
1800 | 1794 | | |
1801 | 1795 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
74 | 77 | | |
75 | 78 | | |
76 | 79 | | |
| |||
196 | 199 | | |
197 | 200 | | |
198 | 201 | | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
199 | 205 | | |
200 | 206 | | |
201 | 207 | | |
| |||
793 | 799 | | |
794 | 800 | | |
795 | 801 | | |
796 | | - | |
797 | | - | |
798 | | - | |
799 | | - | |
800 | | - | |
801 | | - | |
802 | | - | |
803 | | - | |
804 | | - | |
805 | 802 | | |
806 | 803 | | |
807 | 804 | | |
| |||
927 | 924 | | |
928 | 925 | | |
929 | 926 | | |
930 | | - | |
| 927 | + | |
| 928 | + | |
| 929 | + | |
| 930 | + | |
931 | 931 | | |
932 | 932 | | |
933 | 933 | | |
| |||
2087 | 2087 | | |
2088 | 2088 | | |
2089 | 2089 | | |
2090 | | - | |
2091 | | - | |
2092 | | - | |
2093 | | - | |
2094 | 2090 | | |
2095 | 2091 | | |
2096 | 2092 | | |
| |||
2136 | 2132 | | |
2137 | 2133 | | |
2138 | 2134 | | |
2139 | | - | |
2140 | | - | |
2141 | | - | |
| 2135 | + | |
| 2136 | + | |
| 2137 | + | |
| 2138 | + | |
| 2139 | + | |
2142 | 2140 | | |
2143 | 2141 | | |
2144 | 2142 | | |
| |||
2864 | 2862 | | |
2865 | 2863 | | |
2866 | 2864 | | |
2867 | | - | |
2868 | | - | |
2869 | | - | |
2870 | | - | |
2871 | 2865 | | |
2872 | 2866 | | |
2873 | 2867 | | |
| |||
2914 | 2908 | | |
2915 | 2909 | | |
2916 | 2910 | | |
2917 | | - | |
2918 | | - | |
2919 | | - | |
| 2911 | + | |
| 2912 | + | |
| 2913 | + | |
| 2914 | + | |
| 2915 | + | |
2920 | 2916 | | |
2921 | 2917 | | |
2922 | 2918 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5634 | 5634 | | |
5635 | 5635 | | |
5636 | 5636 | | |
5637 | | - | |
| 5637 | + | |
5638 | 5638 | | |
5639 | 5639 | | |
5640 | 5640 | | |
| |||
5678 | 5678 | | |
5679 | 5679 | | |
5680 | 5680 | | |
5681 | | - | |
| 5681 | + | |
| 5682 | + | |
5682 | 5683 | | |
5683 | 5684 | | |
5684 | 5685 | | |
5685 | 5686 | | |
5686 | | - | |
5687 | | - | |
5688 | | - | |
5689 | | - | |
5690 | | - | |
5691 | | - | |
5692 | | - | |
5693 | | - | |
5694 | | - | |
5695 | 5687 | | |
5696 | 5688 | | |
5697 | | - | |
| 5689 | + | |
5698 | 5690 | | |
5699 | 5691 | | |
5700 | 5692 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
54 | | - | |
| 54 | + | |
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
| |||
244 | 244 | | |
245 | 245 | | |
246 | 246 | | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
247 | 258 | | |
248 | 259 | | |
249 | 260 | | |
| |||
396 | 407 | | |
397 | 408 | | |
398 | 409 | | |
399 | | - | |
400 | | - | |
401 | | - | |
402 | | - | |
403 | | - | |
404 | | - | |
405 | | - | |
406 | | - | |
407 | | - | |
408 | | - | |
409 | | - | |
410 | | - | |
411 | | - | |
412 | | - | |
413 | | - | |
414 | | - | |
415 | 410 | | |
416 | 411 | | |
417 | 412 | | |
| |||
631 | 626 | | |
632 | 627 | | |
633 | 628 | | |
634 | | - | |
635 | | - | |
636 | | - | |
637 | 629 | | |
638 | 630 | | |
639 | | - | |
640 | | - | |
| 631 | + | |
| 632 | + | |
641 | 633 | | |
642 | 634 | | |
643 | 635 | | |
| |||
1184 | 1176 | | |
1185 | 1177 | | |
1186 | 1178 | | |
1187 | | - | |
1188 | | - | |
1189 | | - | |
1190 | | - | |
1191 | | - | |
1192 | | - | |
1193 | | - | |
1194 | | - | |
1195 | | - | |
1196 | | - | |
1197 | | - | |
1198 | | - | |
1199 | | - | |
1200 | | - | |
1201 | 1179 | | |
1202 | 1180 | | |
1203 | 1181 | | |
| |||
1548 | 1526 | | |
1549 | 1527 | | |
1550 | 1528 | | |
1551 | | - | |
1552 | | - | |
1553 | | - | |
1554 | | - | |
1555 | | - | |
1556 | | - | |
1557 | | - | |
1558 | | - | |
1559 | | - | |
1560 | | - | |
1561 | | - | |
1562 | | - | |
1563 | | - | |
1564 | | - | |
1565 | 1529 | | |
1566 | 1530 | | |
1567 | 1531 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6163 | 6163 | | |
6164 | 6164 | | |
6165 | 6165 | | |
6166 | | - | |
| 6166 | + | |
6167 | 6167 | | |
6168 | 6168 | | |
6169 | 6169 | | |
| |||
6342 | 6342 | | |
6343 | 6343 | | |
6344 | 6344 | | |
6345 | | - | |
| 6345 | + | |
6346 | 6346 | | |
6347 | 6347 | | |
6348 | 6348 | | |
| |||
6372 | 6372 | | |
6373 | 6373 | | |
6374 | 6374 | | |
6375 | | - | |
6376 | | - | |
| 6375 | + | |
6377 | 6376 | | |
6378 | 6377 | | |
6379 | 6378 | | |
6380 | 6379 | | |
6381 | 6380 | | |
6382 | | - | |
| 6381 | + | |
6383 | 6382 | | |
6384 | | - | |
6385 | | - | |
6386 | | - | |
6387 | 6383 | | |
6388 | 6384 | | |
6389 | 6385 | | |
| |||
6399 | 6395 | | |
6400 | 6396 | | |
6401 | 6397 | | |
| 6398 | + | |
6402 | 6399 | | |
6403 | 6400 | | |
6404 | 6401 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
200 | 200 | | |
201 | 201 | | |
202 | 202 | | |
203 | | - | |
| 203 | + | |
204 | 204 | | |
205 | 205 | | |
206 | 206 | | |
| |||
219 | 219 | | |
220 | 220 | | |
221 | 221 | | |
222 | | - | |
| 222 | + | |
223 | 223 | | |
224 | 224 | | |
225 | 225 | | |
| |||
237 | 237 | | |
238 | 238 | | |
239 | 239 | | |
240 | | - | |
| 240 | + | |
| 241 | + | |
241 | 242 | | |
242 | 243 | | |
243 | 244 | | |
| |||
254 | 255 | | |
255 | 256 | | |
256 | 257 | | |
257 | | - | |
| 258 | + | |
258 | 259 | | |
259 | 260 | | |
260 | 261 | | |
| |||
274 | 275 | | |
275 | 276 | | |
276 | 277 | | |
277 | | - | |
| 278 | + | |
| 279 | + | |
278 | 280 | | |
279 | 281 | | |
280 | 282 | | |
| |||
290 | 292 | | |
291 | 293 | | |
292 | 294 | | |
293 | | - | |
| 295 | + | |
294 | 296 | | |
295 | 297 | | |
296 | 298 | | |
| |||
0 commit comments