clang: include/clang/AST/TypeLoc.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14#ifndef LLVM_CLANG_AST_TYPELOC_H
15#define LLVM_CLANG_AST_TYPELOC_H
16
25#include "llvm/ADT/ArrayRef.h"
26#include "llvm/Support/Casting.h"
27#include "llvm/Support/Compiler.h"
28#include "llvm/Support/MathExtras.h"
29#include
30#include
31#include
32#include
33
35
48
49
50#define ABSTRACT_TYPELOC(Class, Base)
51#define TYPELOC(Class, Base) \
52 class Class##TypeLoc;
53#include "clang/AST/TypeLocNodes.def"
54
55
56
57
58
60protected:
61
62
65
66public:
69 : Ty(ty.getAsOpaquePtr()), Data(opaqueData) {}
71 : Ty(ty), Data(opaqueData) {}
72
73
74
75
76
77 template
79 assert(T::isKind(*this));
80 T t;
82 tl = *this;
83 return t;
84 }
85
86
87
88 template
90 if (!T::isKind(*this))
91 return {};
92 T t;
94 tl = *this;
95 return t;
96 }
97
98
99
100
101
102 template
104
105
106
107
109#define ABSTRACT_TYPE(Class, Base)
110#define TYPE(Class, Base) \
111 Class = Type::Class,
112#include "clang/AST/TypeNodes.inc"
114 };
115
120
122 explicit operator bool() const { return Ty; }
123
124
126
127
128
130
131
132
136
140
141
142
146
147
149
150
152
153
157
158
159
161 return getLocalSourceRangeImpl(*this);
162 }
163
164
168
169
170
172 return getNextTypeLocImpl(*this);
173 }
174
175
177
179
180
181
182
183
184
185
187
188
189
190
192
193
195
196
197
198
200
201
202
203
205
206
207
208
209
210
212 initializeImpl(Context, *this, Loc);
213 }
214
215
216
221
222
223
224
230
231
233
237
239 return !(LHS == RHS);
240 }
241
242
243
245
246 void dump() const;
247 void dump(llvm::raw_ostream &, const ASTContext &) const;
248
249private:
250 static bool isKind(const TypeLoc&) {
251 return true;
252 }
253
255 SourceLocation Loc);
258 static SourceRange getLocalSourceRangeImpl(TypeLoc TL);
259};
260
261inline TypeSourceInfo::TypeSourceInfo(QualType ty, size_t DataSize) : Ty(ty) {
262
263 memset(static_cast<void *>(this + 1), 0, DataSize);
264}
265
266
268
269 return TypeLoc(Ty, const_cast<void*>(static_cast<const void*>(this + 1)));
270}
271
272
273
275public:
278
280 return reinterpret_cast<const Type*>(Ty);
281 }
282
286
287private:
289
290 static bool isKind(const TypeLoc &TL) {
292 }
293};
294
295
296
297
298
299
301public:
303
305 unsigned align =
307 auto dataInt = reinterpret_cast<uintptr_t>(Data);
308 dataInt = llvm::alignTo(dataInt, align);
310 }
311
312
313
317
321
325
326
327
329
330
331 return 0;
332 }
333
334
335
340
341private:
343
344 static bool isKind(const TypeLoc &TL) {
346 }
347};
348
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383template <class Base, class Derived, class TypeClass, class LocalData>
386
387 const Derived *asDerived() const {
388 return static_cast<const Derived*>(this);
389 }
390
391 static bool isKind(const TypeLoc &TL) {
393 Derived::classofType(TL.getTypePtr());
394 }
395
396 static bool classofType(const Type *Ty) {
397 return TypeClass::classof(Ty);
398 }
399
400public:
402 return std::max(unsigned(alignof(LocalData)),
404 }
405
407 unsigned size = sizeof(LocalData);
408 unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
409 size = llvm::alignTo(size, extraAlign);
410 size += asDerived()->getExtraLocalDataSize();
412 return size;
413 }
414
416
418
419
421
422
423
424
427 }
428
432
436
437protected:
441
445
447 return static_cast<LocalData*>(Base::Data);
448 }
449
450
451
452
454 unsigned size = sizeof(LocalData);
455 unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
456 size = llvm::alignTo(size, extraAlign);
457 return reinterpret_cast<char *>(Base::Data) + size;
458 }
459
461 auto data = reinterpret_cast<uintptr_t>(Base::Data);
462 data += asDerived()->getLocalDataSize();
463 data = llvm::alignTo(data, getNextTypeAlign());
464 return reinterpret_cast<void*>(data);
465 }
466
469
473
474private:
475 unsigned getInnerTypeSize() const {
476 return getInnerTypeSize(asDerived()->getInnerType());
477 }
478
479 unsigned getInnerTypeSize(HasNoInnerType _) const {
480 return 0;
481 }
482
483 unsigned getInnerTypeSize(QualType _) const {
485 }
486
487 unsigned getNextTypeAlign() const {
488 return getNextTypeAlign(asDerived()->getInnerType());
489 }
490
492 return 1;
493 }
494
495 unsigned getNextTypeAlign(QualType T) const {
497 }
498
500
503 }
504};
505
506
507
508
509template <class Base, class Derived, class TypeClass>
512
513 static bool classofType(const Type *Ty) {
514 return TypeClass::classof(Ty);
515 }
516
517 static bool isKind(const TypeLoc &TL) {
519 Derived::classofType(TL.getTypePtr());
520 }
521 static bool isKind(const UnqualTypeLoc &TL) {
522 return Derived::classofType(TL.getTypePtr());
523 }
524
525public:
529};
530
534
535
536
538 TypeSpecTypeLoc,
539 Type,
540 TypeSpecLocInfo> {
541public:
542 enum {
545 };
546
550
554
558
562
563private:
565
566 static bool isKind(const TypeLoc &TL);
567};
568
572
573
575 BuiltinTypeLoc,
576 BuiltinType,
577 BuiltinLocInfo> {
578public:
582
586
590 BuiltinRange = Range;
591 } else {
592 BuiltinRange.setBegin(std::min(Range.getBegin(), BuiltinRange.getBegin()));
593 BuiltinRange.setEnd(std::max(Range.getEnd(), BuiltinRange.getEnd()));
594 }
595 }
596
598
605
608 return (bk >= BuiltinType::UShort && bk <= BuiltinType::UInt128) ||
609 (bk >= BuiltinType::Short && bk <= BuiltinType::Ibm128) ||
610 bk == BuiltinType::UChar || bk == BuiltinType::SChar;
611 }
612
616
620
624
631
635
640
647
651
656
658
662
667
671 else
672 return false;
673 }
674
679
690};
691
695
701 QualifierData(QualifierLoc.getOpaqueData()) {}
707 QualifierData(getTrivialQualifierData(Context, Qualifier, Loc)) {}
708
710 assert(!Qualifier == !QualifierData);
712 }
713
717 BeginLoc.isInvalid() && Qualifier)
718 BeginLoc = QualifierLoc.getBeginLoc();
722 }
723
724private:
725 void *QualifierData;
726
727 static void *getTrivialQualifierData(ASTContext &Context,
730 if (!Qualifier)
731 return nullptr;
733 Builder.MakeTrivial(Context, Qualifier, Loc);
734 return Builder.getWithLocInContext(Context).getOpaqueData();
735 }
736};
737
738template <class TL, class T>
740 : public ConcreteTypeLoc<UnqualTypeLoc, TL, T, ElaboratedNameLocInfo> {
741public:
743
747 this->getTypePtr()->getQualifier());
750 }
751
755
760
762
767
769 const auto *Ptr = this->getTypePtr();
771 Ptr->getQualifier(), Loc);
772 }
773};
774
775
778
779
782 UnresolvedUsingType> {};
783
784
786
792
794 TagTypeLocInfo> {
795public:
797
798
800
804
808
812 assert(!Qualifier == !QualifierData);
814 }
815
821
823
825
829 BeginLoc.isInvalid() && Qualifier)
830 BeginLoc = Qualifier.getBeginLoc();
834 }
835
839 ? Loc
843 Builder.MakeTrivial(Context, Qualifier, Loc);
845 } else {
847 }
849 }
850};
851
852
854 RecordTypeLoc,
855 RecordType> {
856public:
858};
859
860
862 EnumTypeLoc,
863 EnumType> {
864public:
866};
867
868
869
872 InjectedClassNameType> {
873public:
875};
876
877
880 TemplateTypeParmTypeLoc,
881 TemplateTypeParmType> {
882public:
884};
885
889
890
891
893 ObjCTypeParamTypeLoc,
894 ObjCTypeParamType,
895 ObjCTypeParamTypeLocInfo> {
896
899 }
900
901public:
903
907
911
917
921
927
931
933 return this->getTypePtr()->getNumProtocols();
934 }
935
937 assert(i < getNumProtocols() && "Index is out of bounds!");
938 return getProtocolLocArray()[i];
939 }
940
942 assert(i < getNumProtocols() && "Index is out of bounds!");
943 getProtocolLocArray()[i] = Loc;
944 }
945
950
954
956
963
967
974};
975
976
979 SubstTemplateTypeParmTypeLoc,
980 SubstTemplateTypeParmType> {
981};
982
983
987
988
991 SubstTemplateTypeParmPackTypeLoc,
992 SubstTemplateTypeParmPackType> {};
993
994
997 SubstBuiltinTemplatePackTypeLoc,
998 SubstBuiltinTemplatePackType> {};
999
1003
1004
1006 AttributedTypeLoc,
1007 AttributedType,
1008 AttributedLocInfo> {
1009public:
1013
1017
1018
1019
1020
1021
1025
1029
1030
1037
1039 return dyn_cast_or_null(getAttr());
1040 }
1041
1043
1047
1049 return getTypePtr()->getModifiedType();
1050 }
1051};
1052
1054
1055
1057 : public ConcreteTypeLoc<UnqualTypeLoc, BTFTagAttributedTypeLoc,
1058 BTFTagAttributedType, BTFTagAttributedLocInfo> {
1059public:
1061
1062
1064
1066 return dyn_cast_or_null(getAttr());
1067 }
1068
1070
1072
1074};
1075
1080
1081
1083 : public ConcreteTypeLoc<UnqualTypeLoc, HLSLAttributedResourceTypeLoc,
1084 HLSLAttributedResourceType,
1085 HLSLAttributedResourceLocInfo> {
1086public:
1088
1095
1105};
1106
1110
1112 : public ConcreteTypeLoc<UnqualTypeLoc, HLSLInlineSpirvTypeLoc,
1113 HLSLInlineSpirvType, HLSLInlineSpirvTypeLocInfo> {
1114public:
1117
1124};
1125
1133
1134
1135
1136
1137
1138
1140 ObjCObjectTypeLoc,
1141 ObjCObjectType,
1142 ObjCObjectTypeLocInfo> {
1143
1146 }
1147
1148
1149
1152 }
1153
1154public:
1158
1162
1166
1170
1172 return this->getTypePtr()->getTypeArgsAsWritten().size();
1173 }
1174
1176 assert(i < getNumTypeArgs() && "Index is out of bounds!");
1177 return getTypeArgLocArray()[i];
1178 }
1179
1181 assert(i < getNumTypeArgs() && "Index is out of bounds!");
1182 getTypeArgLocArray()[i] = TInfo;
1183 }
1184
1188
1192
1196
1200
1202 return this->getTypePtr()->getNumProtocols();
1203 }
1204
1206 assert(i < getNumProtocols() && "Index is out of bounds!");
1207 return getProtocolLocArray()[i];
1208 }
1209
1211 assert(i < getNumProtocols() && "Index is out of bounds!");
1212 getProtocolLocArray()[i] = Loc;
1213 }
1214
1219
1220
1224
1228
1232
1236
1246
1248
1253
1256 "not enough alignment for tail-allocated data");
1258 }
1259
1263};
1264
1269
1270
1272 ObjCInterfaceTypeLoc,
1273 ObjCInterfaceType,
1274 ObjCInterfaceLocInfo> {
1275public:
1279
1283
1287
1291
1295
1299
1304};
1305
1308 : public ConcreteTypeLoc<UnqualTypeLoc, BoundsAttributedTypeLoc,
1309 BoundsAttributedType, BoundsAttributedLocInfo> {
1310public:
1316
1318};
1319
1322 CountAttributedTypeLoc,
1323 CountAttributedType> {
1324public:
1328
1330};
1331
1335
1337 : public ConcreteTypeLoc<UnqualTypeLoc, MacroQualifiedTypeLoc,
1338 MacroQualifiedType, MacroQualifiedLocInfo> {
1339public:
1343
1345
1349
1353
1357
1359
1363};
1364
1369
1371 : public ConcreteTypeLoc<UnqualTypeLoc, ParenTypeLoc, ParenType,
1372 ParenLocInfo> {
1373public:
1377
1381
1385
1389
1393
1398
1402
1406};
1407
1409 if (ParenTypeLoc::isKind(*this))
1410 return IgnoreParensImpl(*this);
1411 return *this;
1412}
1413
1415
1417 AdjustedType, AdjustedLocInfo> {
1418public:
1422
1426
1432
1434
1436
1437
1438 return 0;
1439 }
1440};
1441
1442
1443
1445 AdjustedTypeLoc, DecayedTypeLoc, DecayedType> {
1446};
1447
1451
1452
1453template <class Derived, class TypeClass, class LocalData = PointerLikeLocInfo>
1455 TypeClass, LocalData> {
1456public:
1460
1464
1468
1472
1476
1480};
1481
1482
1484 PointerType> {
1485public:
1489
1493};
1494
1495
1497 BlockPointerType> {
1498public:
1502
1506};
1507
1511
1512
1514 MemberPointerType,
1515 MemberPointerLocInfo> {
1516public:
1520
1524
1529
1533 "Inconsistent nested-name-specifier pointer");
1535 }
1536
1541 Builder.MakeTrivial(Context, Qualifier, Loc);
1543 } else
1545 }
1546
1552};
1553
1554
1557 ObjCObjectPointerType> {
1558public:
1562
1566};
1567
1569 ReferenceType> {
1570public:
1574};
1575
1578 LValueReferenceTypeLoc,
1579 LValueReferenceType> {
1580public:
1584
1588};
1589
1592 RValueReferenceTypeLoc,
1593 RValueReferenceType> {
1594public:
1598
1602};
1603
1610
1611
1613 FunctionTypeLoc,
1614 FunctionType,
1615 FunctionLocInfo> {
1616 bool hasExceptionSpec() const {
1617 if (auto *FPT = dyn_cast(getTypePtr())) {
1618 return FPT->hasExceptionSpec();
1619 }
1620 return false;
1621 }
1622
1623 SourceRange *getExceptionSpecRangePtr() const {
1624 assert(hasExceptionSpec() && "No exception spec range");
1625
1626
1628 }
1629
1630public:
1634
1638
1642
1646
1650
1654
1658
1662
1666
1668 if (hasExceptionSpec())
1669 return *getExceptionSpecRangePtr();
1670 return {};
1671 }
1672
1674 if (hasExceptionSpec())
1675 *getExceptionSpecRangePtr() = R;
1676 }
1677
1681
1682
1686
1692
1695
1699
1703
1709 for (unsigned i = 0, e = getNumParams(); i != e; ++i)
1711 if (hasExceptionSpec())
1713 }
1714
1715
1716
1718 unsigned ExceptSpecSize = hasExceptionSpec() ? sizeof(SourceRange) : 0;
1720 }
1721
1723
1725};
1726
1729 FunctionProtoTypeLoc,
1730 FunctionProtoType> {
1731};
1732
1735 FunctionNoProtoTypeLoc,
1736 FunctionNoProtoType> {
1737};
1738
1743
1744
1746 ArrayTypeLoc,
1747 ArrayType,
1748 ArrayLocInfo> {
1749public:
1753
1757
1761
1765
1769
1773
1777
1781
1785
1791
1793};
1794
1797 ConstantArrayTypeLoc,
1798 ConstantArrayType> {
1799};
1800
1801
1804 ConstantArrayTypeLoc, ArrayParameterTypeLoc, ArrayParameterType> {};
1805
1808 IncompleteArrayTypeLoc,
1809 IncompleteArrayType> {
1810};
1811
1814 DependentSizedArrayTypeLoc,
1815 DependentSizedArrayType> {
1816public:
1821};
1822
1825 VariableArrayTypeLoc,
1826 VariableArrayType> {
1827};
1828
1829
1833
1841
1844 TemplateSpecializationTypeLoc,
1845 TemplateSpecializationType,
1846 TemplateSpecializationLocInfo> {
1847public:
1852
1857
1861
1865
1867 getTypePtr()->getTemplateName().getQualifier();
1868 assert(Qualifier && "missing qualification");
1870 }
1871
1875
1877
1879
1881 return getTypePtr()->template_arguments().size();
1882 }
1883
1887
1890 getArgInfos()[i]);
1891 }
1892
1894
1895
1899
1900
1901
1902
1903
1905 }
1906
1908
1910
1915
1919
1923
1924private:
1927 }
1928};
1929
1935
1938 DependentAddressSpaceTypeLoc,
1939 DependentAddressSpaceType,
1940 DependentAddressSpaceLocInfo> {
1941public:
1942
1943
1944
1951
1952
1953
1954
1961
1962
1963
1964
1965
1972
1976 return range;
1977 }
1978
1979
1980
1981
1982
1986
1990
1997};
1998
1999
2000
2001
2002
2003
2004
2005
2006
2010
2012 VectorType, VectorTypeLocInfo> {
2013public:
2015
2017
2021
2025
2027
2029};
2030
2031
2032
2034 : public ConcreteTypeLoc<UnqualTypeLoc, DependentVectorTypeLoc,
2035 DependentVectorType, VectorTypeLocInfo> {
2036public:
2038
2040
2044
2048
2050
2052};
2053
2054
2058
2059
2060
2062 : public ConcreteTypeLoc<UnqualTypeLoc, DependentSizedExtVectorTypeLoc,
2063 DependentSizedExtVectorType, VectorTypeLocInfo> {
2064public:
2066
2068
2072
2076
2078
2080};
2081
2088
2090 MatrixType, MatrixTypeLocInfo> {
2091public:
2092
2093
2094
2097
2098
2099
2100
2103
2104
2105
2106
2109
2110
2111
2112
2113
2120
2124 return range;
2125 }
2126
2133};
2134
2137 ConstantMatrixType> {};
2138
2141 DependentSizedMatrixTypeLoc,
2142 DependentSizedMatrixType> {};
2143
2144
2146 ComplexTypeLoc,
2147 ComplexType> {
2148};
2149
2155
2158
2162
2163template <class Derived, class TypeClass, class LocalData = TypeofLocInfo>
2165 : public ConcreteTypeLoc<UnqualTypeLoc, Derived, TypeClass, LocalData> {
2166public:
2170
2174
2178
2182
2186
2190
2194
2199
2203
2209};
2210
2212 TypeOfExprType,
2213 TypeOfExprTypeLocInfo> {
2214public:
2218
2219
2220
2221
2223};
2224
2226 : public TypeofLikeTypeLoc<TypeOfTypeLoc, TypeOfType, TypeOfTypeLocInfo> {
2227public:
2229 return this->getTypePtr()->getUnmodifiedType();
2230 }
2231
2235
2239
2241};
2242
2243
2244
2245
2246
2247
2253 : public ConcreteTypeLoc<UnqualTypeLoc, DecltypeTypeLoc, DecltypeType,
2254 DecltypeTypeLocInfo> {
2255public:
2257
2260
2263
2267
2272};
2273
2277
2279 : public ConcreteTypeLoc<UnqualTypeLoc, PackIndexingTypeLoc,
2280 PackIndexingType, PackIndexingTypeLocInfo> {
2281
2282public:
2285
2288
2292
2294
2296
2300};
2301
2308
2310 UnaryTransformTypeLoc,
2311 UnaryTransformType,
2312 UnaryTransformTypeLocInfo> {
2313public:
2316
2319
2322
2326
2330
2334
2338
2343
2345};
2346
2350
2357
2360 AutoTypeLoc,
2361 AutoType,
2362 AutoTypeLocInfo> {
2363public:
2367
2371
2375
2377
2379
2380
2381
2384 return CR->getNestedNameSpecifierLoc();
2386 }
2387
2390 return CR->getTemplateKWLoc();
2392 }
2393
2396 return CR->getConceptNameLoc();
2398 }
2399
2402 return CR->getFoundDecl();
2403 return nullptr;
2404 }
2405
2408 return CR->getNamedConcept();
2409 return nullptr;
2410 }
2411
2415
2420 ->getTemplateArgsAsWritten()
2422 .isValid());
2423 }
2424
2427 if (const auto *TAAW = CR->getTemplateArgsAsWritten())
2428 return TAAW->getLAngleLoc();
2430 }
2431
2434 if (const auto *TAAW = CR->getTemplateArgsAsWritten())
2435 return TAAW->getRAngleLoc();
2437 }
2438
2440 return getTypePtr()->getTypeConstraintArguments().size();
2441 }
2442
2445 assert(CR && "No ConceptReference");
2446 return CR->getTemplateArgsAsWritten()->getTemplateArgs()[i];
2447 }
2448
2458
2464
2466};
2467
2473
2476 DeducedTemplateSpecializationTypeLoc,
2477 DeducedTemplateSpecializationType,
2478 DeducedTemplateSpecializationLocInfo> {
2479public:
2483
2487
2489
2491
2497 getTypePtr()->getTemplateName().getQualifier();
2498 assert(Qualifier && "missing qualification");
2500 }
2501
2503 if (!QualifierLoc) {
2504
2505
2506
2507
2509 return;
2510 }
2511
2513 getTypePtr()->getTemplateName().getQualifier() &&
2514 "Inconsistent nested-name-specifier pointer");
2516 }
2517
2526
2528};
2529
2536
2537
2538
2542
2544 DependentNameTypeLoc,
2545 DependentNameType,
2546 DependentNameLocInfo> {
2547public:
2551
2555
2560
2564 "Inconsistent nested-name-specifier pointer");
2566 }
2567
2571
2575
2582
2588
2590};
2591
2595
2597 : public ConcreteTypeLoc<UnqualTypeLoc, PackExpansionTypeLoc,
2598 PackExpansionType, PackExpansionTypeLocInfo> {
2599public:
2603
2607
2611
2615
2619
2621 return this->getTypePtr()->getPattern();
2622 }
2623};
2624
2628
2630 AtomicType, AtomicTypeLocInfo> {
2631public:
2635
2639
2643
2647
2651
2655
2659
2663
2667
2672
2678
2682};
2683
2687
2689 PipeTypeLocInfo> {
2690public:
2692
2694
2697
2701
2703};
2704
2705template
2708 while (!T::isKind(Cur)) {
2710 Cur = PTL.getInnerLoc();
2712 Cur = ATL.getModifiedLoc();
2714 Cur = ATL.getWrappedLoc();
2716 Cur = ATL.getWrappedLoc();
2718 Cur = ATL.getOriginalLoc();
2720 Cur = MQL.getInnerLoc();
2721 else
2722 break;
2723 }
2725}
2731 DependentBitIntType> {};
2732
2736
2737public:
2739 : Protocol(protocol), Loc(loc) {}
2742
2743
2747};
2748
2750
2752 : public ConcreteTypeLoc<UnqualTypeLoc, PredefinedSugarTypeLoc,
2753 PredefinedSugarType, PredefinedSugarTypeLocInfo> {
2754public:
2757};
2758
2759}
2760
2761#endif
This file provides AST data structures related to concepts.
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified.
Defines the clang::SourceLocation class and associated facilities.
Defines various enumerations that describe declaration and type specifiers.
C Language Family Type Representation.
__DEVICE__ void * memcpy(void *__a, const void *__b, size_t __c)
__DEVICE__ void * memset(void *__a, int __b, size_t __c)
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
Definition TypeLoc.h:1417
QualType getInnerType() const
Definition TypeLoc.h:1427
unsigned getLocalDataSize() const
Definition TypeLoc.h:1435
TypeLoc getOriginalLoc() const
Definition TypeLoc.h:1419
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Definition TypeLoc.h:1423
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:1433
QualType getOriginalType() const
Wrapper for source info for array parameter types.
Definition TypeLoc.h:1804
Wrapper for source info for arrays.
Definition TypeLoc.h:1748
SourceLocation getLBracketLoc() const
Definition TypeLoc.h:1750
Expr * getSizeExpr() const
Definition TypeLoc.h:1770
void setLBracketLoc(SourceLocation Loc)
Definition TypeLoc.h:1754
TypeLoc getElementLoc() const
Definition TypeLoc.h:1778
void setRBracketLoc(SourceLocation Loc)
Definition TypeLoc.h:1762
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Definition TypeLoc.h:1786
SourceLocation getRBracketLoc() const
Definition TypeLoc.h:1758
SourceRange getBracketsRange() const
Definition TypeLoc.h:1766
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:1782
QualType getInnerType() const
Definition TypeLoc.h:1792
void setSizeExpr(Expr *Size)
Definition TypeLoc.h:1774
QualType getElementType() const
Definition TypeLoc.h:2630
SourceLocation getRParenLoc() const
Definition TypeLoc.h:2656
QualType getInnerType() const
Definition TypeLoc.h:2679
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:2636
void setRParenLoc(SourceLocation Loc)
Definition TypeLoc.h:2660
SourceRange getParensRange() const
Definition TypeLoc.h:2664
TypeLoc getValueLoc() const
Definition TypeLoc.h:2632
void setLParenLoc(SourceLocation Loc)
Definition TypeLoc.h:2652
void setKWLoc(SourceLocation Loc)
Definition TypeLoc.h:2644
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Definition TypeLoc.h:2673
SourceLocation getKWLoc() const
Definition TypeLoc.h:2640
SourceLocation getLParenLoc() const
Definition TypeLoc.h:2648
void setParensRange(SourceRange Range)
Definition TypeLoc.h:2668
QualType getValueType() const
Gets the type contained by this atomic type, i.e.
Attr - This represents one attribute.
Type source information for an attributed type.
Definition TypeLoc.h:1008
const Attr * getAttr() const
The type attribute.
Definition TypeLoc.h:1031
QualType getInnerType() const
Definition TypeLoc.h:1048
const T * getAttrAs()
Definition TypeLoc.h:1038
TypeLoc getModifiedLoc() const
The modified type, which is generally canonically different from the attribute type.
Definition TypeLoc.h:1022
TypeLoc getEquivalentTypeLoc() const
Definition TypeLoc.h:1026
void initializeLocal(ASTContext &Context, SourceLocation loc)
Definition TypeLoc.h:1044
SourceRange getLocalSourceRange() const
void setAttr(const Attr *A)
Definition TypeLoc.h:1034
attr::Kind getAttrKind() const
Definition TypeLoc.h:1010
bool isQualifier() const
Definition TypeLoc.h:1014
Definition TypeLoc.h:2362
bool hasExplicitTemplateArgs() const
Definition TypeLoc.h:2416
SourceLocation getTemplateKWLoc() const
Definition TypeLoc.h:2388
AutoTypeKeyword getAutoKeyword() const
Definition TypeLoc.h:2364
const NestedNameSpecifierLoc getNestedNameSpecifierLoc() const
Definition TypeLoc.h:2382
SourceLocation getRAngleLoc() const
Definition TypeLoc.h:2432
SourceLocation getRParenLoc() const
Definition TypeLoc.h:2369
void initializeLocal(ASTContext &Context, SourceLocation Loc)
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:2449
void copy(AutoTypeLoc Loc)
Definition TypeLoc.h:2459
SourceLocation getLAngleLoc() const
Definition TypeLoc.h:2425
void setConceptReference(ConceptReference *CR)
Definition TypeLoc.h:2376
SourceLocation getConceptNameLoc() const
Definition TypeLoc.h:2394
NamedDecl * getFoundDecl() const
Definition TypeLoc.h:2400
TemplateArgumentLoc getArgLoc(unsigned i) const
Definition TypeLoc.h:2443
bool isDecltypeAuto() const
Definition TypeLoc.h:2368
bool isConstrained() const
Definition TypeLoc.h:2372
unsigned getNumArgs() const
Definition TypeLoc.h:2439
TemplateDecl * getNamedConcept() const
Definition TypeLoc.h:2406
ConceptReference * getConceptReference() const
Definition TypeLoc.h:2378
DeclarationNameInfo getConceptNameInfo() const
Definition TypeLoc.h:2412
void setRParenLoc(SourceLocation Loc)
Definition TypeLoc.h:2370
Type source information for an btf_tag attributed type.
Definition TypeLoc.h:1058
QualType getInnerType() const
Definition TypeLoc.h:1073
TypeLoc getWrappedLoc() const
Definition TypeLoc.h:1060
void initializeLocal(ASTContext &Context, SourceLocation loc)
Definition TypeLoc.h:1071
const BTFTypeTagAttr * getAttr() const
The btf_type_tag attribute.
Definition TypeLoc.h:1063
T * getAttrAs()
Definition TypeLoc.h:1065
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:2728
Wrapper for source info for block pointers.
Definition TypeLoc.h:1497
SourceLocation getCaretLoc() const
Definition TypeLoc.h:1499
void setCaretLoc(SourceLocation Loc)
Definition TypeLoc.h:1503
Definition TypeLoc.h:1309
QualType getInnerType() const
Definition TypeLoc.h:1312
unsigned getLocalDataSize() const
Definition TypeLoc.h:1317
TypeLoc getInnerLoc() const
Definition TypeLoc.h:1311
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Definition TypeLoc.h:1313
Wrapper for source info for builtin types.
Definition TypeLoc.h:577
SourceLocation getBuiltinLoc() const
Definition TypeLoc.h:579
TypeSpecifierType getWrittenTypeSpec() const
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Definition TypeLoc.h:680
TypeSpecifierWidth getWrittenWidthSpec() const
Definition TypeLoc.h:641
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:621
void setWrittenTypeSpec(TypeSpecifierType written)
Definition TypeLoc.h:663
const WrittenBuiltinSpecs & getWrittenBuiltinSpecs() const
Definition TypeLoc.h:602
bool needsExtraLocalData() const
Definition TypeLoc.h:606
bool hasWrittenWidthSpec() const
Definition TypeLoc.h:648
void setModeAttr(bool written)
Definition TypeLoc.h:675
void setBuiltinLoc(SourceLocation Loc)
Definition TypeLoc.h:583
void setWrittenWidthSpec(TypeSpecifierWidth written)
Definition TypeLoc.h:652
SourceLocation getNameLoc() const
Definition TypeLoc.h:597
unsigned getExtraLocalDataAlignment() const
Definition TypeLoc.h:617
WrittenBuiltinSpecs & getWrittenBuiltinSpecs()
Definition TypeLoc.h:599
void setWrittenSignSpec(TypeSpecifierSign written)
Definition TypeLoc.h:636
bool hasWrittenSignSpec() const
Definition TypeLoc.h:632
bool hasModeAttr() const
Definition TypeLoc.h:668
unsigned getExtraLocalDataSize() const
Definition TypeLoc.h:613
bool hasWrittenTypeSpec() const
Definition TypeLoc.h:659
TypeSpecifierSign getWrittenSignSpec() const
Definition TypeLoc.h:625
void expandBuiltinRange(SourceRange Range)
Definition TypeLoc.h:587
Represents a C++ struct/union/class.
Definition TypeLoc.h:2147
Declaration of a C++20 concept.
A reference to a concept and its template args, as it appears in the code.
const DeclarationNameInfo & getConceptNameInfo() const
A metaprogramming base class for TypeLoc classes which correspond to a particular Type subclass.
Definition TypeLoc.h:384
const TypeClass * getTypePtr() const
Definition TypeLoc.h:433
friend class TypeLoc
Definition TypeLoc.h:385
TypeLoc getInnerTypeLoc() const
Definition TypeLoc.h:470
unsigned getExtraLocalDataAlignment() const
Definition TypeLoc.h:442
HasNoInnerType getInnerType() const
Definition TypeLoc.h:468
void * getExtraLocalData() const
Gets a pointer past the Info structure; useful for classes with local data that can't be captured in ...
Definition TypeLoc.h:453
LocalData * getLocalData() const
Definition TypeLoc.h:446
unsigned getLocalDataAlignment() const
Definition TypeLoc.h:401
void * getNonLocalData() const
Definition TypeLoc.h:460
TypeLoc getNextTypeLoc() const
Definition TypeLoc.h:429
unsigned getExtraLocalDataSize() const
Definition TypeLoc.h:438
void copyLocal(Derived other)
Definition TypeLoc.h:415
unsigned getLocalDataSize() const
Definition TypeLoc.h:406
Definition TypeLoc.h:1798
Definition TypeLoc.h:2137
Definition TypeLoc.h:1323
Expr * getCountExpr() const
Definition TypeLoc.h:1325
bool isCountInBytes() const
Definition TypeLoc.h:1326
SourceRange getLocalSourceRange() const
bool isOrNull() const
Definition TypeLoc.h:1327
bool isCountInBytes() const
Expr * getCountExpr() const
Wrapper for source info for pointers decayed from arrays and functions.
Definition TypeLoc.h:1445
Definition TypeLoc.h:2254
SourceLocation getDecltypeLoc() const
Definition TypeLoc.h:2258
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Definition TypeLoc.h:2268
Expr * getUnderlyingExpr() const
Definition TypeLoc.h:2256
SourceLocation getRParenLoc() const
Definition TypeLoc.h:2261
void setRParenLoc(SourceLocation Loc)
Definition TypeLoc.h:2262
void setDecltypeLoc(SourceLocation Loc)
Definition TypeLoc.h:2259
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:2264
Definition TypeLoc.h:2478
void setQualifierLoc(NestedNameSpecifierLoc QualifierLoc)
Definition TypeLoc.h:2502
void setElaboratedKeywordLoc(SourceLocation Loc)
Definition TypeLoc.h:2484
void initializeLocal(ASTContext &Context, SourceLocation Loc)
SourceLocation getElaboratedKeywordLoc() const
Definition TypeLoc.h:2480
SourceLocation getTemplateNameLoc() const
Definition TypeLoc.h:2488
void setTemplateNameLoc(SourceLocation Loc)
Definition TypeLoc.h:2490
NestedNameSpecifierLoc getQualifierLoc() const
Definition TypeLoc.h:2492
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:2518
Definition TypeLoc.h:2349
Definition TypeLoc.h:1940
TypeLoc getPointeeTypeLoc() const
Definition TypeLoc.h:1987
void setAttrNameLoc(SourceLocation loc)
Definition TypeLoc.h:1948
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:1973
void setAttrOperandParensRange(SourceRange range)
Definition TypeLoc.h:1969
QualType getInnerType() const
Returns the type before the address space attribute application area.
Definition TypeLoc.h:1983
void setAttrExprOperand(Expr *e)
Definition TypeLoc.h:1958
Expr * getAttrExprOperand() const
The attribute's expression operand, if it has one.
Definition TypeLoc.h:1955
void initializeLocal(ASTContext &Context, SourceLocation loc)
Definition TypeLoc.h:1991
SourceRange getAttrOperandParensRange() const
The location of the parentheses around the operand, if there is an operand.
Definition TypeLoc.h:1966
SourceLocation getAttrNameLoc() const
The location of the attribute name, i.e.
Definition TypeLoc.h:1945
QualType getPointeeType() const
Definition TypeLoc.h:2731
Definition TypeLoc.h:2546
void copy(DependentNameTypeLoc Loc)
Definition TypeLoc.h:2583
NestedNameSpecifierLoc getQualifierLoc() const
Definition TypeLoc.h:2556
SourceLocation getNameLoc() const
Definition TypeLoc.h:2568
void initializeLocal(ASTContext &Context, SourceLocation Loc)
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:2576
SourceLocation getElaboratedKeywordLoc() const
Definition TypeLoc.h:2548
void setNameLoc(SourceLocation Loc)
Definition TypeLoc.h:2572
void setElaboratedKeywordLoc(SourceLocation Loc)
Definition TypeLoc.h:2552
void setQualifierLoc(NestedNameSpecifierLoc QualifierLoc)
Definition TypeLoc.h:2561
Definition TypeLoc.h:1815
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Definition TypeLoc.h:1817
Definition TypeLoc.h:2063
SourceLocation getNameLoc() const
Definition TypeLoc.h:2065
QualType getInnerType() const
Definition TypeLoc.h:2079
TypeLoc getElementLoc() const
Definition TypeLoc.h:2077
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:2069
void setNameLoc(SourceLocation Loc)
Definition TypeLoc.h:2067
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Definition TypeLoc.h:2073
QualType getElementType() const
Definition TypeLoc.h:2142
Definition TypeLoc.h:2035
SourceLocation getNameLoc() const
Definition TypeLoc.h:2037
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:2041
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Definition TypeLoc.h:2045
TypeLoc getElementLoc() const
Definition TypeLoc.h:2049
void setNameLoc(SourceLocation Loc)
Definition TypeLoc.h:2039
QualType getInnerType() const
Definition TypeLoc.h:2051
QualType getElementType() const
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:763
auto * getDecl() const
Definition TypeLoc.h:742
void set(SourceLocation ElaboratedKeywordLoc, NestedNameSpecifierLoc QualifierLoc, SourceLocation NameLoc)
Definition TypeLoc.h:744
SourceLocation getElaboratedKeywordLoc() const
Definition TypeLoc.h:752
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Definition TypeLoc.h:768
SourceLocation getNameLoc() const
Definition TypeLoc.h:761
NestedNameSpecifierLoc getQualifierLoc() const
Definition TypeLoc.h:756
Wrapper for source info for enum types.
Definition TypeLoc.h:863
EnumDecl * getDecl() const
Definition TypeLoc.h:865
This represents one expression.
Definition TypeLoc.h:2057
Definition TypeLoc.h:1736
Definition TypeLoc.h:1730
Wrapper for source info for functions.
Definition TypeLoc.h:1615
ParmVarDecl ** getParmArray() const
Definition TypeLoc.h:1683
QualType getInnerType() const
Definition TypeLoc.h:1724
unsigned getNumParams() const
Definition TypeLoc.h:1687
ParmVarDecl * getParam(unsigned i) const
Definition TypeLoc.h:1693
SourceLocation getLocalRangeEnd() const
Definition TypeLoc.h:1639
void setLocalRangeBegin(SourceLocation L)
Definition TypeLoc.h:1635
void setLParenLoc(SourceLocation Loc)
Definition TypeLoc.h:1651
SourceRange getExceptionSpecRange() const
Definition TypeLoc.h:1667
void setParam(unsigned i, ParmVarDecl *VD)
Definition TypeLoc.h:1694
ArrayRef< ParmVarDecl * > getParams() const
Definition TypeLoc.h:1678
SourceRange getParensRange() const
Definition TypeLoc.h:1663
void setRParenLoc(SourceLocation Loc)
Definition TypeLoc.h:1659
unsigned getExtraLocalDataAlignment() const
Definition TypeLoc.h:1722
void setLocalRangeEnd(SourceLocation L)
Definition TypeLoc.h:1643
unsigned getExtraLocalDataSize() const
Returns the size of the type source info data block that is specific to this type.
Definition TypeLoc.h:1717
void setExceptionSpecRange(SourceRange R)
Definition TypeLoc.h:1673
TypeLoc getReturnLoc() const
Definition TypeLoc.h:1696
SourceLocation getLocalRangeBegin() const
Definition TypeLoc.h:1631
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:1700
SourceLocation getLParenLoc() const
Definition TypeLoc.h:1647
SourceLocation getRParenLoc() const
Definition TypeLoc.h:1655
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Definition TypeLoc.h:1704
QualType getReturnType() const
Type source information for HLSL attributed resource type.
Definition TypeLoc.h:1085
void initializeLocal(ASTContext &Context, SourceLocation loc)
Definition TypeLoc.h:1098
unsigned getLocalDataSize() const
Definition TypeLoc.h:1102
TypeLoc getWrappedLoc() const
Definition TypeLoc.h:1087
TypeSourceInfo * getContainedTypeSourceInfo() const
Definition TypeLoc.h:1089
void setContainedTypeSourceInfo(TypeSourceInfo *TSI) const
Definition TypeLoc.h:1092
QualType getInnerType() const
Definition TypeLoc.h:1101
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:1097
void setSourceRange(const SourceRange &R)
Definition TypeLoc.h:1096
Definition TypeLoc.h:1113
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:1118
void setSpirvTypeLoc(SourceLocation loc) const
Definition TypeLoc.h:1116
SourceLocation getSpirvTypeLoc() const
Definition TypeLoc.h:1115
void initializeLocal(ASTContext &Context, SourceLocation loc)
Definition TypeLoc.h:1121
One of these records is kept for each identifier that is lexed.
Definition TypeLoc.h:1809
A metaprogramming class designed for concrete subtypes of abstract types where all subtypes share equ...
Definition TypeLoc.h:510
friend class TypeLoc
Definition TypeLoc.h:511
const TypeClass * getTypePtr() const
Definition TypeLoc.h:526
Wrapper for source info for injected class names of class templates.
Definition TypeLoc.h:872
CXXRecordDecl * getDecl() const
Definition TypeLoc.h:874
Definition TypeLoc.h:1579
void setAmpLoc(SourceLocation Loc)
Definition TypeLoc.h:1585
SourceLocation getAmpLoc() const
Definition TypeLoc.h:1581
Definition TypeLoc.h:1338
const IdentifierInfo * getMacroIdentifier() const
Definition TypeLoc.h:1346
SourceLocation getExpansionLoc() const
Definition TypeLoc.h:1350
TypeLoc getInnerLoc() const
Definition TypeLoc.h:1344
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Definition TypeLoc.h:1340
void setExpansionLoc(SourceLocation Loc)
Definition TypeLoc.h:1354
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:1360
QualType getInnerType() const
Definition TypeLoc.h:1358
QualType getUnderlyingType() const
const IdentifierInfo * getMacroIdentifier() const
Definition TypeLoc.h:2090
Expr * getAttrColumnOperand() const
The attribute's column operand, if it has one.
Definition TypeLoc.h:2107
SourceRange getAttrOperandParensRange() const
The location of the parentheses around the operand, if there is an operand.
Definition TypeLoc.h:2114
void setAttrRowOperand(Expr *e)
Definition TypeLoc.h:2102
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:2121
void setAttrColumnOperand(Expr *e)
Definition TypeLoc.h:2108
void setAttrOperandParensRange(SourceRange range)
Definition TypeLoc.h:2117
void setAttrNameLoc(SourceLocation loc)
Definition TypeLoc.h:2096
SourceLocation getAttrNameLoc() const
The location of the attribute name, i.e.
Definition TypeLoc.h:2095
void initializeLocal(ASTContext &Context, SourceLocation loc)
Definition TypeLoc.h:2127
Expr * getAttrRowOperand() const
The attribute's row operand, if it has one.
Definition TypeLoc.h:2101
Wrapper for source info for member pointers.
Definition TypeLoc.h:1515
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Definition TypeLoc.h:1537
void setStarLoc(SourceLocation Loc)
Definition TypeLoc.h:1521
NestedNameSpecifierLoc getQualifierLoc() const
Definition TypeLoc.h:1525
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:1547
SourceLocation getStarLoc() const
Definition TypeLoc.h:1517
void setQualifierLoc(NestedNameSpecifierLoc QualifierLoc)
Definition TypeLoc.h:1530
This represents a decl that may have a name.
Class that aids in the construction of nested-name-specifiers along with source-location information ...
void MakeTrivial(ASTContext &Context, NestedNameSpecifier Qualifier, SourceRange R)
Make a new nested-name-specifier from incomplete source-location information.
A C++ nested-name-specifier augmented with source location information.
NestedNameSpecifier getNestedNameSpecifier() const
Retrieve the nested-name-specifier to which this instance refers.
SourceLocation getBeginLoc() const
Retrieve the location of the beginning of this nested-name-specifier.
void * getOpaqueData() const
Retrieve the opaque pointer that refers to source-location data.
Represents a C++ nested name specifier, such as "\::std::vector::".
Represents an ObjC class declaration.
Wrapper for source info for ObjC interfaces.
Definition TypeLoc.h:1274
void setNameLoc(SourceLocation Loc)
Definition TypeLoc.h:1284
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:1288
void setNameEndLoc(SourceLocation Loc)
Definition TypeLoc.h:1296
ObjCInterfaceDecl * getIFaceDecl() const
Definition TypeLoc.h:1276
SourceLocation getNameEndLoc() const
Definition TypeLoc.h:1292
SourceLocation getNameLoc() const
Definition TypeLoc.h:1280
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Definition TypeLoc.h:1300
ObjCInterfaceDecl * getDecl() const
Get the declaration of this interface.
Wraps an ObjCPointerType with source location information.
Definition TypeLoc.h:1557
SourceLocation getStarLoc() const
Definition TypeLoc.h:1559
void setStarLoc(SourceLocation Loc)
Definition TypeLoc.h:1563
Definition TypeLoc.h:1142
unsigned getExtraLocalDataAlignment() const
Definition TypeLoc.h:1254
void setTypeArgsRAngleLoc(SourceLocation Loc)
Definition TypeLoc.h:1167
ObjCProtocolDecl * getProtocol(unsigned i) const
Definition TypeLoc.h:1215
unsigned getExtraLocalDataSize() const
Definition TypeLoc.h:1249
bool hasBaseTypeAsWritten() const
Definition TypeLoc.h:1225
void initializeLocal(ASTContext &Context, SourceLocation Loc)
SourceLocation getTypeArgsLAngleLoc() const
Definition TypeLoc.h:1155
unsigned getNumTypeArgs() const
Definition TypeLoc.h:1171
ArrayRef< SourceLocation > getProtocolLocs() const
Definition TypeLoc.h:1221
unsigned getNumProtocols() const
Definition TypeLoc.h:1201
void setTypeArgsLAngleLoc(SourceLocation Loc)
Definition TypeLoc.h:1159
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:1237
TypeSourceInfo * getTypeArgTInfo(unsigned i) const
Definition TypeLoc.h:1175
void setTypeArgTInfo(unsigned i, TypeSourceInfo *TInfo)
Definition TypeLoc.h:1180
void setProtocolLAngleLoc(SourceLocation Loc)
Definition TypeLoc.h:1189
void setProtocolRAngleLoc(SourceLocation Loc)
Definition TypeLoc.h:1197
SourceLocation getProtocolRAngleLoc() const
Definition TypeLoc.h:1193
SourceLocation getProtocolLoc(unsigned i) const
Definition TypeLoc.h:1205
void setHasBaseTypeAsWritten(bool HasBaseType)
Definition TypeLoc.h:1229
void setProtocolLoc(unsigned i, SourceLocation Loc)
Definition TypeLoc.h:1210
TypeLoc getBaseLoc() const
Definition TypeLoc.h:1233
QualType getInnerType() const
Definition TypeLoc.h:1260
SourceLocation getProtocolLAngleLoc() const
Definition TypeLoc.h:1185
SourceLocation getTypeArgsRAngleLoc() const
Definition TypeLoc.h:1163
Represents an Objective-C protocol declaration.
SourceLocation getLocation() const
Definition TypeLoc.h:2741
ObjCProtocolLoc(ObjCProtocolDecl *protocol, SourceLocation loc)
Definition TypeLoc.h:2738
ObjCProtocolDecl * getProtocol() const
Definition TypeLoc.h:2740
SourceRange getSourceRange() const LLVM_READONLY
The source range is just the protocol name.
Definition TypeLoc.h:2744
Represents the declaration of an Objective-C type parameter.
ProtocolLAngleLoc, ProtocolRAngleLoc, and the source locations for protocol qualifiers are stored aft...
Definition TypeLoc.h:895
unsigned getExtraLocalDataAlignment() const
Definition TypeLoc.h:964
ObjCTypeParamDecl * getDecl() const
Definition TypeLoc.h:902
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:968
unsigned getNumProtocols() const
Definition TypeLoc.h:932
SourceLocation getNameLoc() const
Definition TypeLoc.h:904
ObjCProtocolDecl * getProtocol(unsigned i) const
Definition TypeLoc.h:946
SourceLocation getProtocolLoc(unsigned i) const
Definition TypeLoc.h:936
ArrayRef< SourceLocation > getProtocolLocs() const
Definition TypeLoc.h:951
void setProtocolLoc(unsigned i, SourceLocation Loc)
Definition TypeLoc.h:941
void setProtocolLAngleLoc(SourceLocation Loc)
Definition TypeLoc.h:918
unsigned getExtraLocalDataSize() const
Definition TypeLoc.h:957
void initializeLocal(ASTContext &Context, SourceLocation Loc)
SourceLocation getProtocolLAngleLoc() const
Definition TypeLoc.h:912
void setProtocolRAngleLoc(SourceLocation Loc)
Definition TypeLoc.h:928
void setNameLoc(SourceLocation Loc)
Definition TypeLoc.h:908
SourceLocation getProtocolRAngleLoc() const
Definition TypeLoc.h:922
Definition TypeLoc.h:2598
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:2608
void setEllipsisLoc(SourceLocation Loc)
Definition TypeLoc.h:2604
SourceLocation getEllipsisLoc() const
Definition TypeLoc.h:2600
TypeLoc getPatternLoc() const
Definition TypeLoc.h:2616
QualType getInnerType() const
Definition TypeLoc.h:2620
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Definition TypeLoc.h:2612
Definition TypeLoc.h:2280
SourceLocation getEllipsisLoc() const
Definition TypeLoc.h:2286
Expr * getIndexExpr() const
Definition TypeLoc.h:2283
TypeLoc getPatternLoc() const
Definition TypeLoc.h:2293
QualType getPattern() const
Definition TypeLoc.h:2284
QualType getInnerType() const
Definition TypeLoc.h:2295
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:2297
void setEllipsisLoc(SourceLocation Loc)
Definition TypeLoc.h:2287
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Definition TypeLoc.h:2289
Definition TypeLoc.h:1372
void setRParenLoc(SourceLocation Loc)
Definition TypeLoc.h:1386
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Definition TypeLoc.h:1394
SourceLocation getRParenLoc() const
Definition TypeLoc.h:1378
QualType getInnerType() const
Definition TypeLoc.h:1403
SourceLocation getLParenLoc() const
Definition TypeLoc.h:1374
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:1390
TypeLoc getInnerLoc() const
Definition TypeLoc.h:1399
void setLParenLoc(SourceLocation Loc)
Definition TypeLoc.h:1382
QualType getInnerType() const
Represents a parameter to a function.
Definition TypeLoc.h:2689
TypeLoc getValueLoc() const
Definition TypeLoc.h:2691
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Definition TypeLoc.h:2698
QualType getInnerType() const
Definition TypeLoc.h:2702
void setKWLoc(SourceLocation Loc)
Definition TypeLoc.h:2696
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:2693
SourceLocation getKWLoc() const
Definition TypeLoc.h:2695
QualType getElementType() const
A base class for.
Definition TypeLoc.h:1455
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Definition TypeLoc.h:1473
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:1469
void setSigilLoc(SourceLocation Loc)
Definition TypeLoc.h:1461
QualType getInnerType() const
Definition TypeLoc.h:1477
TypeLoc getPointeeLoc() const
Definition TypeLoc.h:1465
SourceLocation getSigilLoc() const
Definition TypeLoc.h:1457
Wrapper for source info for pointers.
Definition TypeLoc.h:1484
SourceLocation getStarLoc() const
Definition TypeLoc.h:1486
void setStarLoc(SourceLocation Loc)
Definition TypeLoc.h:1490
Definition TypeLoc.h:2753
void initializeLocal(ASTContext &Context, SourceLocation loc)
Definition TypeLoc.h:2755
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:2756
A (possibly-)qualified type.
bool hasLocalQualifiers() const
Determine whether this particular QualType instance has any qualifiers, without looking through any t...
const Type * getTypePtr() const
Retrieves a pointer to the underlying (unqualified) type.
static QualType getFromOpaquePtr(const void *Ptr)
Wrapper of type source information for a type with non-trivial direct qualifiers.
Definition TypeLoc.h:300
TypeLoc getNextTypeLoc() const
Definition TypeLoc.h:322
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Initializes the local data of this type source info block to provide no information.
Definition TypeLoc.h:314
unsigned getLocalDataSize() const
Returns the size of the type source info data block that is specific to this type.
Definition TypeLoc.h:328
friend class TypeLoc
Definition TypeLoc.h:342
unsigned getLocalDataAlignment() const
Returns the alignment of the type source info data block that is specific to this type.
Definition TypeLoc.h:336
void copyLocal(TypeLoc other)
Definition TypeLoc.h:318
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:302
UnqualTypeLoc getUnqualifiedLoc() const
Definition TypeLoc.h:304
Definition TypeLoc.h:1593
void setAmpAmpLoc(SourceLocation Loc)
Definition TypeLoc.h:1599
SourceLocation getAmpAmpLoc() const
Definition TypeLoc.h:1595
Represents a struct/union/class.
Wrapper for source info for record types.
Definition TypeLoc.h:855
RecordDecl * getDecl() const
Definition TypeLoc.h:857
Definition TypeLoc.h:1569
QualType getInnerType() const
Definition TypeLoc.h:1571
QualType getPointeeTypeAsWritten() const
Encodes a location in the source.
bool isValid() const
Return true if this is a valid SourceLocation object.
A trivial tuple used to represent a source range.
void setBegin(SourceLocation b)
SourceLocation getEnd() const
SourceLocation getBegin() const
void setEnd(SourceLocation e)
Wrapper for substituted template type parameters.
Definition TypeLoc.h:998
Abstract type representing delayed type pack expansions.
Definition TypeLoc.h:986
Wrapper for substituted template type parameters.
Definition TypeLoc.h:992
Wrapper for substituted template type parameters.
Definition TypeLoc.h:980
Represents the declaration of a struct/union/class/enum.
TagDecl * getDecl() const
Definition TypeLoc.h:796
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:826
SourceLocation getNameLoc() const
Definition TypeLoc.h:822
SourceLocation getElaboratedKeywordLoc() const
Definition TypeLoc.h:801
NestedNameSpecifierLoc getQualifierLoc() const
Definition TypeLoc.h:809
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Definition TypeLoc.h:836
void setQualifierLoc(NestedNameSpecifierLoc QualifierLoc)
Definition TypeLoc.h:816
void setNameLoc(SourceLocation Loc)
Definition TypeLoc.h:824
void setElaboratedKeywordLoc(SourceLocation Loc)
Definition TypeLoc.h:805
bool isDefinition() const
True if the tag was defined in this type specifier.
A convenient class for passing around template argument information.
Location wrapper for a TemplateArgument.
The base class of all kinds of template declarations (e.g., class, function, etc.).
Definition TypeLoc.h:1846
unsigned getNumArgs() const
Definition TypeLoc.h:1880
static void initializeArgLocs(ASTContext &Context, ArrayRef< TemplateArgument > Args, TemplateArgumentLocInfo *ArgInfos, SourceLocation Loc)
SourceLocation getLAngleLoc() const
Definition TypeLoc.h:1878
TemplateArgumentLoc getArgLoc(unsigned i) const
Definition TypeLoc.h:1888
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:1907
SourceLocation getRAngleLoc() const
Definition TypeLoc.h:1893
MutableArrayRef< TemplateArgumentLocInfo > getArgLocInfos()
Definition TypeLoc.h:1884
void set(SourceLocation ElaboratedKeywordLoc, NestedNameSpecifierLoc QualifierLoc, SourceLocation TemplateKeywordLoc, SourceLocation NameLoc, SourceLocation LAngleLoc, SourceLocation RAngleLoc)
SourceLocation getTemplateNameLoc() const
Definition TypeLoc.h:1876
void copy(TemplateSpecializationTypeLoc Loc)
Definition TypeLoc.h:1896
unsigned getExtraLocalDataAlignment() const
Definition TypeLoc.h:1920
SourceLocation getTemplateKeywordLoc() const
Definition TypeLoc.h:1872
NestedNameSpecifierLoc getQualifierLoc() const
Definition TypeLoc.h:1862
void initializeLocal(ASTContext &Context, SourceLocation Loc)
SourceLocation getElaboratedKeywordLoc() const
Definition TypeLoc.h:1858
unsigned getExtraLocalDataSize() const
Definition TypeLoc.h:1916
Declaration of a template type parameter.
Wrapper for template type parameters.
Definition TypeLoc.h:881
TemplateTypeParmDecl * getDecl() const
Definition TypeLoc.h:883
Base wrapper for a particular "section" of type source info.
Definition TypeLoc.h:59
SourceLocation findNullabilityLoc() const
Find the location of the nullability specifier (__nonnull, __nullable, or __null_unspecifier),...
UnqualTypeLoc getUnqualifiedLoc() const
Skips past any qualifiers, if this is qualified.
Definition TypeLoc.h:349
static unsigned getLocalAlignmentForType(QualType Ty)
Returns the alignment of type source info data block for the given type.
TypeLoc findExplicitQualifierLoc() const
Find a type with the location of an explicit type qualifier.
QualType getType() const
Get the type for which this source info wrapper provides information.
Definition TypeLoc.h:133
TypeLoc getNextTypeLoc() const
Get the next TypeLoc pointed by this TypeLoc, e.g for "int*" the TypeLoc is a PointerLoc and next Typ...
Definition TypeLoc.h:171
T getAs() const
Convert to the specified TypeLoc type, returning a null TypeLoc if this TypeLoc is not of the desired...
Definition TypeLoc.h:89
NestedNameSpecifierLoc getPrefix() const
If this type represents a qualified-id, this returns it's nested name specifier.
friend bool operator==(const TypeLoc &LHS, const TypeLoc &RHS)
Definition TypeLoc.h:234
TypeLoc IgnoreParens() const
Definition TypeLoc.h:1408
T castAs() const
Convert to the specified TypeLoc type, asserting that this TypeLoc is of the desired type.
Definition TypeLoc.h:78
TypeLoc(QualType ty, void *opaqueData)
Definition TypeLoc.h:68
void * Data
Definition TypeLoc.h:64
SourceLocation getNonElaboratedBeginLoc() const
This returns the position of the type after any elaboration, such as the 'struct' keyword.
void initializeFullCopy(TypeLoc Other)
Initializes this by copying its information from another TypeLoc of the same type.
Definition TypeLoc.h:217
SourceRange getSourceRange() const LLVM_READONLY
Get the full source range.
Definition TypeLoc.h:154
SourceRange getLocalSourceRange() const
Get the local source range.
Definition TypeLoc.h:160
void initializeFullCopy(TypeLoc Other, unsigned Size)
Initializes this by copying its information from another TypeLoc of the same type.
Definition TypeLoc.h:225
unsigned getFullDataSize() const
Returns the size of the type source info data block.
Definition TypeLoc.h:165
AutoTypeLoc getContainedAutoTypeLoc() const
Get the typeloc of an AutoType whose type will be deduced for a variable with an initializer of this ...
TypeLoc(const Type *ty, void *opaqueData)
Definition TypeLoc.h:70
void * getOpaqueData() const
Get the pointer where source information is stored.
Definition TypeLoc.h:143
TypeLocClass
The kinds of TypeLocs.
Definition TypeLoc.h:108
@ Qualified
Definition TypeLoc.h:113
const void * Ty
Definition TypeLoc.h:63
SourceLocation getTemplateKeywordLoc() const
Get the SourceLocation of the template keyword (if any).
void copy(TypeLoc other)
Copies the other type loc into this one.
TypeLocClass getTypeLocClass() const
Definition TypeLoc.h:116
static unsigned getFullDataSizeForType(QualType Ty)
Returns the size of type source info data block for the given type.
void initialize(ASTContext &Context, SourceLocation Loc) const
Initializes this to state that every location in this type is the given location.
Definition TypeLoc.h:211
bool isNull() const
Definition TypeLoc.h:121
SourceLocation getEndLoc() const
Get the end source location.
T getAsAdjusted() const
Convert to the specified TypeLoc type, returning a null TypeLoc if this TypeLoc is not of the desired...
Definition TypeLoc.h:2706
friend bool operator!=(const TypeLoc &LHS, const TypeLoc &RHS)
Definition TypeLoc.h:238
SourceLocation getBeginLoc() const
Get the begin source location.
const Type * getTypePtr() const
Definition TypeLoc.h:137
Definition TypeLoc.h:2213
SourceRange getLocalSourceRange() const
Expr * getUnderlyingExpr() const
Definition TypeLoc.h:2215
Expr * getUnderlyingExpr() const
Definition TypeLoc.h:2226
void initializeLocal(ASTContext &Context, SourceLocation Loc)
void setUnmodifiedTInfo(TypeSourceInfo *TI) const
Definition TypeLoc.h:2236
TypeSourceInfo * getUnmodifiedTInfo() const
Definition TypeLoc.h:2232
QualType getUnmodifiedType() const
Definition TypeLoc.h:2228
A container of type source information.
TypeLoc getTypeLoc() const
Return the TypeLoc wrapper for the type source info.
Definition TypeLoc.h:267
A reasonable base class for TypeLocs that correspond to types that are written as a type-specifier.
Definition TypeLoc.h:540
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Definition TypeLoc.h:559
friend class TypeLoc
Definition TypeLoc.h:564
SourceLocation getNameLoc() const
Definition TypeLoc.h:547
void setNameLoc(SourceLocation Loc)
Definition TypeLoc.h:551
@ LocalDataSize
Definition TypeLoc.h:543
@ LocalDataAlignment
Definition TypeLoc.h:544
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:555
The base class of the type hierarchy.
QualType getPointeeType() const
If this is a pointer, ObjC object pointer, or block pointer, this returns the respective pointee.
TypeClass getTypeClass() const
Wrapper for source info for typedefs.
Definition TypeLoc.h:777
Definition TypeLoc.h:2165
void setParensRange(SourceRange range)
Definition TypeLoc.h:2195
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:2200
SourceLocation getLParenLoc() const
Definition TypeLoc.h:2175
SourceLocation getRParenLoc() const
Definition TypeLoc.h:2183
SourceRange getParensRange() const
Definition TypeLoc.h:2191
void setLParenLoc(SourceLocation Loc)
Definition TypeLoc.h:2179
SourceLocation getTypeofLoc() const
Definition TypeLoc.h:2167
void setTypeofLoc(SourceLocation Loc)
Definition TypeLoc.h:2171
void setRParenLoc(SourceLocation Loc)
Definition TypeLoc.h:2187
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Definition TypeLoc.h:2204
Definition TypeLoc.h:2312
void setRParenLoc(SourceLocation Loc)
Definition TypeLoc.h:2321
void setParensRange(SourceRange Range)
Definition TypeLoc.h:2339
void initializeLocal(ASTContext &Context, SourceLocation Loc)
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:2331
void setKWLoc(SourceLocation Loc)
Definition TypeLoc.h:2315
SourceLocation getKWLoc() const
Definition TypeLoc.h:2314
SourceLocation getRParenLoc() const
Definition TypeLoc.h:2320
TypeSourceInfo * getUnderlyingTInfo() const
Definition TypeLoc.h:2323
SourceRange getParensRange() const
Definition TypeLoc.h:2335
void setUnderlyingTInfo(TypeSourceInfo *TInfo)
Definition TypeLoc.h:2327
void setLParenLoc(SourceLocation Loc)
Definition TypeLoc.h:2318
SourceLocation getLParenLoc() const
Definition TypeLoc.h:2317
Wrapper of type source information for a type with no direct qualifiers.
Definition TypeLoc.h:274
TypeLocClass getTypeLocClass() const
Definition TypeLoc.h:283
UnqualTypeLoc(const Type *Ty, void *Data)
Definition TypeLoc.h:277
friend class TypeLoc
Definition TypeLoc.h:288
const Type * getTypePtr() const
Definition TypeLoc.h:279
Wrapper for source info for unresolved typename using decls.
Definition TypeLoc.h:782
Represents a dependent using declaration which was marked with typename.
Wrapper for source info for types used via transparent aliases.
Definition TypeLoc.h:785
Definition TypeLoc.h:1826
Definition TypeLoc.h:2012
TypeLoc getElementLoc() const
Definition TypeLoc.h:2026
void setNameLoc(SourceLocation Loc)
Definition TypeLoc.h:2016
void initializeLocal(ASTContext &Context, SourceLocation Loc)
Definition TypeLoc.h:2022
SourceRange getLocalSourceRange() const
Definition TypeLoc.h:2018
QualType getInnerType() const
Definition TypeLoc.h:2028
SourceLocation getNameLoc() const
Definition TypeLoc.h:2014
QualType getElementType() const
The JSON file list parser is used to communicate input to InstallAPI.
TypeSpecifierType
Specifies the kind of type.
bool isa(CodeGen::Address addr)
AutoTypeKeyword
Which keyword(s) were used to create an AutoType.
const FunctionProtoType * T
@ Keyword
The name has been typo-corrected to a keyword.
TypeSpecifierWidth
Specifies the width of a type, e.g., short, long, or long long.
TypeSpecifierSign
Specifies the signedness of a type, e.g., signed or unsigned.
U cast(CodeGen::Address addr)
@ None
The alignment was not explicit in code.
ElaboratedTypeKeyword
The elaboration keyword that precedes a qualified type name or introduces an elaborated-type-specifie...
@ None
No keyword precedes the qualified type name.
@ Other
Other implicit parameter.
__UINTPTR_TYPE__ uintptr_t
An unsigned integer type with the property that any valid pointer to void can be converted to this ty...
Definition TypeLoc.h:1414
Definition TypeLoc.h:1739
SourceLocation LBracketLoc
Definition TypeLoc.h:1740
SourceLocation RBracketLoc
Definition TypeLoc.h:1740
Expr * Size
Definition TypeLoc.h:1741
Definition TypeLoc.h:2625
SourceLocation KWLoc
Definition TypeLoc.h:2626
SourceLocation RParenLoc
Definition TypeLoc.h:2626
SourceLocation LParenLoc
Definition TypeLoc.h:2626
Definition TypeLoc.h:1000
const Attr * TypeAttr
Definition TypeLoc.h:1001
Definition TypeLoc.h:2351
ConceptReference * CR
Definition TypeLoc.h:2355
SourceLocation RParenLoc
Definition TypeLoc.h:2353
Definition TypeLoc.h:1053
Definition TypeLoc.h:1306
SourceRange BuiltinRange
Definition TypeLoc.h:570
DeclarationNameInfo - A collector data type for bundling together a DeclarationName and the correspon...
Definition TypeLoc.h:2248
SourceLocation RParenLoc
Definition TypeLoc.h:2250
SourceLocation DecltypeLoc
Definition TypeLoc.h:2249
Definition TypeLoc.h:2468
void * QualifierData
Data associated with the nested-name-specifier location.
Definition TypeLoc.h:2471
SourceLocation ElaboratedKWLoc
Definition TypeLoc.h:2469
Definition TypeLoc.h:1930
SourceLocation AttrLoc
Definition TypeLoc.h:1933
Expr * ExprOperand
Definition TypeLoc.h:1931
SourceRange OperandParens
Definition TypeLoc.h:1932
Definition TypeLoc.h:2539
SourceLocation NameLoc
Definition TypeLoc.h:2540
Definition TypeLoc.h:2530
SourceLocation ElaboratedKWLoc
Definition TypeLoc.h:2531
void * QualifierData
Data associated with the nested-name-specifier location.
Definition TypeLoc.h:2534
ElaboratedNameLocInfo(SourceLocation ElaboratedKeywordLoc, NestedNameSpecifierLoc QualifierLoc, SourceLocation NameLoc)
Definition TypeLoc.h:697
ElaboratedNameLocInfo()=default
SourceLocation NameLoc
Definition TypeLoc.h:693
SourceLocation ElaboratedKeywordLoc
Definition TypeLoc.h:694
SourceRange getLocalSourceRange(NestedNameSpecifier Qualifier) const
Definition TypeLoc.h:714
ElaboratedNameLocInfo(ASTContext &Context, ElaboratedTypeKeyword Keyword, NestedNameSpecifier Qualifier, SourceLocation Loc)
Definition TypeLoc.h:702
NestedNameSpecifierLoc getQualifierLoc(NestedNameSpecifier Qualifier) const
Definition TypeLoc.h:709
Definition TypeLoc.h:1604
SourceLocation LParenLoc
Definition TypeLoc.h:1606
SourceLocation RParenLoc
Definition TypeLoc.h:1607
SourceLocation LocalRangeEnd
Definition TypeLoc.h:1608
SourceLocation LocalRangeBegin
Definition TypeLoc.h:1605
Definition TypeLoc.h:1076
SourceRange Range
Definition TypeLoc.h:1077
TypeSourceInfo * ContainedTyInfo
Definition TypeLoc.h:1078
Definition TypeLoc.h:1107
SourceLocation Loc
Definition TypeLoc.h:1108
Definition TypeLoc.h:1332
SourceLocation ExpansionLoc
Definition TypeLoc.h:1333
Definition TypeLoc.h:2082
SourceLocation AttrLoc
Definition TypeLoc.h:2083
SourceRange OperandParens
Definition TypeLoc.h:2084
Expr * RowOperand
Definition TypeLoc.h:2085
Expr * ColumnOperand
Definition TypeLoc.h:2086
Definition TypeLoc.h:1508
void * QualifierData
Definition TypeLoc.h:1509
Definition TypeLoc.h:1265
SourceLocation NameEndLoc
Definition TypeLoc.h:1267
SourceLocation NameLoc
Definition TypeLoc.h:1266
Definition TypeLoc.h:1126
SourceLocation TypeArgsLAngleLoc
Definition TypeLoc.h:1127
SourceLocation ProtocolLAngleLoc
Definition TypeLoc.h:1129
SourceLocation TypeArgsRAngleLoc
Definition TypeLoc.h:1128
bool HasBaseTypeAsWritten
Definition TypeLoc.h:1131
SourceLocation ProtocolRAngleLoc
Definition TypeLoc.h:1130
SourceLocation NameLoc
Definition TypeLoc.h:887
Definition TypeLoc.h:2592
SourceLocation EllipsisLoc
Definition TypeLoc.h:2593
Definition TypeLoc.h:2274
SourceLocation EllipsisLoc
Definition TypeLoc.h:2275
Definition TypeLoc.h:1365
SourceLocation LParenLoc
Definition TypeLoc.h:1366
SourceLocation RParenLoc
Definition TypeLoc.h:1367
Definition TypeLoc.h:2684
SourceLocation KWLoc
Definition TypeLoc.h:2685
Definition TypeLoc.h:1448
SourceLocation StarLoc
Definition TypeLoc.h:1449
Definition TypeLoc.h:2749
SourceLocation NameLoc
Definition TypeLoc.h:788
void * QualifierData
Definition TypeLoc.h:790
SourceLocation ElaboratedKWLoc
Definition TypeLoc.h:789
Location information for a TemplateArgument.
Definition TypeLoc.h:1830
SourceLocation NameLoc
Definition TypeLoc.h:1831
Definition TypeLoc.h:1834
SourceLocation ElaboratedKWLoc
Definition TypeLoc.h:1836
SourceRange SR
Definition TypeLoc.h:1835
SourceLocation TemplateKWLoc
Definition TypeLoc.h:1837
void * QualifierData
Definition TypeLoc.h:1839
SourceLocation LAngleLoc
Definition TypeLoc.h:1838
Definition TypeLoc.h:2156
Definition TypeLoc.h:2159
TypeSourceInfo * UnmodifiedTInfo
Definition TypeLoc.h:2160
SourceLocation NameLoc
Definition TypeLoc.h:532
Definition TypeLoc.h:2150
SourceLocation RParenLoc
Definition TypeLoc.h:2153
SourceLocation LParenLoc
Definition TypeLoc.h:2152
SourceLocation TypeofLoc
Definition TypeLoc.h:2151
Definition TypeLoc.h:2302
SourceLocation RParenLoc
Definition TypeLoc.h:2305
SourceLocation LParenLoc
Definition TypeLoc.h:2305
TypeSourceInfo * UnderlyingTInfo
Definition TypeLoc.h:2306
SourceLocation KWLoc
Definition TypeLoc.h:2305
Definition TypeLoc.h:2007
SourceLocation NameLoc
Definition TypeLoc.h:2008
Structure that packs information about the type specifiers that were written in a particular type spe...