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

63 const void *Ty = nullptr;

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 }

2724 return Cur.getAs<T>();

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...