clang: include/clang/Serialization/ASTBitCodes.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17#ifndef LLVM_CLANG_SERIALIZATION_ASTBITCODES_H

18#define LLVM_CLANG_SERIALIZATION_ASTBITCODES_H

19

27#include "llvm/ADT/DenseMapInfo.h"

28#include "llvm/Bitstream/BitCodes.h"

29#include "llvm/Support/MathExtras.h"

30#include

31#include

32

34namespace serialization {

35

36

37

38

39

40

41

42

43

44

45

46

48

49

50

51

52

53

54

55

56

58

59

60

61

62

64

65

67

68

69

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

89

90

91

92

93

95

96

97

98

100 uint32_t ModuleFileIndex = 0;

101 uint32_t Idx = 0;

102

103public:

105

106 explicit TypeIdx(uint32_t ModuleFileIdx, uint32_t Idx)

107 : ModuleFileIndex(ModuleFileIdx), Idx(Idx) {}

108

110

111 uint64_t getValue() const { return ((uint64_t)ModuleFileIndex << 32) | Idx; }

112

114 if (Idx == uint32_t(-1))

116

118 return ((uint64_t)ModuleFileIndex << 32) | Index;

119 }

120

124

125 return TypeIdx(ID >> 32, (ID & llvm::maskTrailingOnes(32)) >>

127 }

128};

129

130static_assert(alignof(TypeIdx) == 4);

131

132

133

136

139 }

140

143 }

144

146 assert(T.getLocalFastQualifiers() &&

147 "hash invalid for types with fast quals");

149 return (unsigned(v) >> 4) ^ (unsigned(v) >> 9);

150 }

151};

152

153

155

156

158

159

160

162

163

165

166

168

169

171

172

173

175

176

177

179

180

181

183

184

186

187

189

190

191

192

193

195 uint32_t BitLow = 0;

196 uint32_t BitHigh = 0;

197

198public:

201

202 void set(uint64_t Offset) {

203 BitLow = Offset;

204 BitHigh = Offset >> 32;

205 }

206

207 uint64_t get() const { return BitLow | (uint64_t(BitHigh) << 32); }

208};

209

210

213

214

216

217

219

220

221 uint32_t BitOffset;

222

223public:

224 PPEntityOffset(RawLocEncoding Begin, RawLocEncoding End, uint32_t BitOffset)

225 : Begin(Begin), End(End), BitOffset(BitOffset) {}

226

228 RawLocEncoding getEnd() const { return End.get(); }

229

230 uint32_t getOffset() const { return BitOffset; }

231};

232

233

236

237

239

241

242public:

245

247 RawLocEncoding getEnd() const { return End.get(); }

248};

249

250

251

254

255

257

258

260

261public:

263 DeclOffset(RawLocEncoding RawLoc, uint64_t BitOffset,

264 uint64_t DeclTypesBlockStartOffset)

265 : RawLoc(RawLoc) {

266 setBitOffset(BitOffset, DeclTypesBlockStartOffset);

267 }

268

270

271 RawLocEncoding getRawLoc() const { return RawLoc.get(); }

272

273 void setBitOffset(uint64_t Offset, const uint64_t DeclTypesBlockStartOffset) {

274 BitOffset.set(Offset - DeclTypesBlockStartOffset);

275 }

276

277 uint64_t getBitOffset(const uint64_t DeclTypesBlockStartOffset) const {

278 return BitOffset.get() + DeclTypesBlockStartOffset;

279 }

280};

281

282

284 llvm::support::detail::packed_endian_specific_integral<

286 llvm::support::unaligned>;

287

288

290

291

292

294

295

297

298

299

301

302

303

305

306

307

309

310

312

313

315

316

318

319

320

321

323

324

325

326

327

329

330

331

332

333

334

336

337

339

340

341

342

343

345};

346

347

349

350

352

353

355

356

357

358

360

361

362

364

365

366

368

369

371

372

373

375

376

378};

379

380

381

383

384

385

386

387

388

390

391

393

394

396

397

399

400

402};

403

404

406

408

409

411

412

414

415

417

418

420

421

423

424

426};

427

428

430

432

433

436

437

438

440

442

443

446

447

449

450

451

452

453

454

455

456

457

458

459

460

462

463

464

465

466

467

468

469

470

471

472

474

475

476

477

478

479

480

482

483

484

485

487

488

489

490

491

492

493

494

495

496

497

498

499

501

502

503

504

505

506

507

508

509

511

512

513

514

515

516

517

518

520

521

522

524

525

527

528

529

530

531

533

534

536

537

538

540

541

542

544

545

546

547

549

550

552

553

554

556

557

559

560

561

562

564

565

566

568

569

570

571

573

574

576

577

579

580

581

582

583

584

586

587

588

590

591

592

593

594

595

596

597

598

600

601

603

604

606

607

609

610

612

613

614

616

617

618

619

620

622

623

624

626

627

628

630

631

633

634

635

637

638

639

640

641

642

643

644

645

647

648

649

650

651

652

654

655

656

657

659

660

661

663

664

666

667

669

670

672

673

674

675

677

678

680

681

683

684

685

687

688

690

691

693

695

696

698

699

701

702

704

705

707

708

710

711

712

713

714

716

717

718

720

721

723

724

726

727

728

730

731

732

734

735

737

739

741

743

745};

746

747

749

750

752

753

754

756

757

758

759

760

762

763

764

766

767

768

771

772

774

775

776

777

778

780

781

782

783

785

786

787

789

790

792

793

794

796};

797

798

800

802

803

805

806

807

810

811

813

815

816

817

819

820

821

823

824

826

827

829

830

832

833

834

836

837

838

840

841

843

844

845

847

848

850

851

853

854

856

857

859

860

861

863

864

865

867

868

869

871

872

873

875

876

878};

879

880

882

883

884

885

886

887

888

889

890

891

892

893

894

895

896

898

900

901

903

904

906

907

909

910

912

913

915

916

918

919

921

922

924

925

927

928

930

931

933

934

936

937

939

940

942

943

945

946

948

949

951

952

954

955

957

958

960

961

963

964

966

967

969

970

972

973

975

976

978

979

981

982

984

985

987

988

990

991

993

994

996

997

999

1000

1002

1003

1005

1006

1008

1009

1011

1012

1014

1015

1017

1018

1020

1021

1023

1024

1026

1027

1029

1030

1032

1033

1035

1036

1038

1039

1041

1042

1044

1045

1047

1048

1050

1051

1053

1054

1056

1057

1059

1060

1062

1063

1065

1066

1068

1069

1071

1072

1074

1075

1077

1078

1080

1081

1083

1084

1086

1087

1089

1090

1092

1093

1095

1096

1098

1099

1101

1102

1104

1105

1107

1108

1110

1111

1113

1114

1116

1117

1119

1120

1122

1123

1124#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \

1125 PREDEF_TYPE_##Id##_ID,

1126#include "clang/Basic/OpenCLImageTypes.def"

1127

1128#define EXT_OPAQUE_TYPE(ExtType, Id, Ext) PREDEF_TYPE_##Id##_ID,

1129#include "clang/Basic/OpenCLExtensionTypes.def"

1130

1131#define SVE_TYPE(Name, Id, SingletonId) PREDEF_TYPE_##Id##_ID,

1132#include "clang/Basic/AArch64SVEACLETypes.def"

1133

1134#define PPC_VECTOR_TYPE(Name, Id, Size) PREDEF_TYPE_##Id##_ID,

1135#include "clang/Basic/PPCTypes.def"

1136

1137#define RVV_TYPE(Name, Id, SingletonId) PREDEF_TYPE_##Id##_ID,

1138#include "clang/Basic/RISCVVTypes.def"

1139

1140#define WASM_TYPE(Name, Id, SingletonId) PREDEF_TYPE_##Id##_ID,

1141#include "clang/Basic/WebAssemblyReferenceTypes.def"

1142

1143#define AMDGPU_TYPE(Name, Id, SingletonId, Width, Align) PREDEF_TYPE_##Id##_ID,

1144#include "clang/Basic/AMDGPUTypes.def"

1145

1146#define HLSL_INTANGIBLE_TYPE(Name, Id, SingletonId) PREDEF_TYPE_##Id##_ID,

1147#include "clang/Basic/HLSLIntangibleTypes.def"

1148

1149

1151

1154

1155

1156

1157

1158

1159

1161

1162

1163

1165 "Too many enumerators in PredefinedTypeIDs. Review the value of "

1166 "NUM_PREDEF_TYPE_IDS");

1167

1168

1169

1170

1171

1172

1173

1175#define TYPE_BIT_CODE(CLASS_ID, CODE_ID, CODE_VALUE) \

1176 TYPE_##CODE_ID = CODE_VALUE,

1177#include "clang/Serialization/TypeBitCodes.def"

1178

1179

1182

1183

1184

1185

1186

1187

1189

1191

1192

1194

1195

1197

1198

1200

1201

1203

1204

1206

1207

1209

1210

1213

1214

1216

1217

1218

1220

1221

1222

1224

1225

1226

1227

1228

1229

1230

1232

1234

1235

1237

1238

1240

1241

1243

1244

1246

1247

1249

1250

1252

1253

1255

1256

1258

1259

1261

1262

1264

1265

1267

1268

1270

1271

1273

1274

1276

1277

1279

1280

1282

1283

1285

1286

1288

1289

1291

1292

1294

1295

1297

1298

1300

1301

1303

1304

1306

1307

1309

1310

1312

1313

1315

1316

1318

1319

1321

1322

1323

1324

1325

1326

1327

1328

1329

1331

1332

1333

1334

1335

1336

1337

1338

1340

1341

1342

1344

1345

1346

1348

1349

1351

1352

1354

1355

1357

1358

1360

1361

1363

1364

1366

1367

1369

1370

1372

1373

1375

1376

1378

1379

1381

1382

1384

1385

1387

1388

1390

1391

1393

1394

1396

1397

1399

1400

1402

1403

1405

1406

1408

1409

1411

1412

1414

1415

1417

1418

1420

1421

1423

1424

1426

1427

1429

1430

1432

1433

1435

1436

1438

1439

1441

1442

1444

1445

1447

1448

1450

1451

1453

1454

1456

1457

1459

1460

1462

1463

1465

1466

1467

1469

1470

1471

1473

1474

1476

1477

1479

1480

1482

1483

1485

1486

1488

1489

1491

1492

1494

1495

1497

1498

1500

1501

1503

1504

1506

1507

1509

1510

1512

1513

1515

1516

1518

1519

1521

1522

1524

1525

1527

1530

1531

1532

1533

1534

1535

1536

1537

1539

1540

1542

1543

1545

1546

1548

1549

1551

1552

1554

1555

1557

1558

1560

1561

1563

1564

1566

1567

1569

1570

1572

1573

1575

1576

1578

1579

1581

1582

1584

1585

1587

1588

1590

1591

1593

1594

1596

1597

1599

1600

1602

1603

1605

1606

1608

1609

1611

1612

1614

1615

1617

1618

1620

1621

1623

1624

1626

1627

1629

1630

1632

1633

1635

1636

1638

1639

1641

1642

1644

1645

1647

1648

1650

1651

1653

1654

1656

1657

1659

1660

1662

1663

1665

1666

1668

1669

1671

1672

1674

1675

1677

1678

1680

1681

1683

1684

1686

1687

1689

1690

1692

1693

1695

1696

1698

1699

1701

1702

1704

1705

1707

1708

1710

1711

1713

1714

1716

1717

1719

1720

1722

1723

1725

1726

1728

1729

1731

1732

1734

1735

1737

1738

1740

1741

1743

1744

1745

1746

1748

1752

1753

1755

1756

1758

1759

1761

1762

1764

1765

1767

1768

1770

1771

1773

1774

1776

1777

1779

1780

1782

1783

1785

1786

1788

1789

1791

1792

1794

1795

1797

1798

1800

1801

1803

1804

1806

1807

1809

1810

1811

1812

1814

1815

1817

1818

1820

1821

1823

1824

1826

1827

1829

1830

1832

1833

1835

1836

1838

1839

1841

1842

1844

1845

1847

1848

1850

1851

1853

1854

1856

1857

1859

1860

1862

1863

1865

1866

1868

1869

1871

1880

1885

1887

1893

1896

1901

1912

1913

1915

1916

1918

1919

1928

1929

2009

2010

2012

2020

2021

2023

2024

2026

2027

2041

2042

2044

2045};

2046

2047

2048

2050

2052

2053

2054

2056

2057

2059

2060

2063

2064

2065

2072

2073

2075

2076

2078

2079

2081

2082

2084

2088

2090

2094 }

2095

2099 }

2100

2104 }

2105

2109 }

2110};

2111

2112static_assert(alignof(ObjCCategoriesInfo) <= 4);

2113static_assert(std::is_standard_layout_v &&

2114 std::is_trivial_v);

2115

2116

2117

2118

2119

2120

2123

2125 uint64_t Data = 0;

2126

2127public:

2131

2133

2139 }

2140

2146 }

2147

2151 }

2152

2153

2154 unsigned getHash() const;

2155

2158 return A.Kind == B.Kind && A.Data == B.Data;

2159 }

2160};

2161

2162

2163

2164}

2165}

2166

2167namespace llvm {

2168

2169template <> struct DenseMapInfo<clang::serialization::DeclarationNameKey> {

2172 }

2173

2176 }

2177

2178 static unsigned

2181 }

2182

2185 return L == R;

2186 }

2187};

2188

2189}

2190

2191#endif

Defines the clang::IdentifierInfo, clang::IdentifierTable, and clang::Selector interfaces.

Defines an enumeration for C++ overloaded operators.

Defines the clang::SourceLocation class and associated facilities.

C Language Family Type Representation.

uint64_t DeclID

An ID number that refers to a declaration in an AST file.

The name of a declaration.

One of these records is kept for each identifier that is lexed.

A (possibly-)qualified type.

static QualType getFromOpaquePtr(const void *Ptr)

@ FastWidth

The width of the "fast" qualifier mask.

Smart pointer class that efficiently represents Objective-C method names.

Source location and bit offset of a declaration.

DeclOffset(RawLocEncoding RawLoc, uint64_t BitOffset, uint64_t DeclTypesBlockStartOffset)

RawLocEncoding getRawLoc() const

void setBitOffset(uint64_t Offset, const uint64_t DeclTypesBlockStartOffset)

uint64_t getBitOffset(const uint64_t DeclTypesBlockStartOffset) const

void setRawLoc(RawLocEncoding Loc)

A key used when looking up entities by DeclarationName.

unsigned getHash() const

Compute a fingerprint of this key for use in on-disk hash table.

friend bool operator==(const DeclarationNameKey &A, const DeclarationNameKey &B)

OverloadedOperatorKind getOperatorKind() const

DeclarationNameKey(NameKind Kind, uint64_t Data)

IdentifierInfo * getIdentifier() const

Selector getSelector() const

DeclarationNameKey()=default

Source range/offset of a preprocessed entity.

uint32_t getOffset() const

RawLocEncoding getBegin() const

PPEntityOffset(RawLocEncoding Begin, RawLocEncoding End, uint32_t BitOffset)

RawLocEncoding getEnd() const

Source range of a skipped preprocessor region.

PPSkippedRange(RawLocEncoding Begin, RawLocEncoding End)

RawLocEncoding getBegin() const

RawLocEncoding getEnd() const

A type index; the type ID with the qualifier bits removed.

uint32_t getModuleFileIndex() const

TypeIdx(uint32_t ModuleFileIdx, uint32_t Idx)

static TypeIdx fromTypeID(TypeID ID)

TypeID asTypeID(unsigned FastQuals) const

uint64_t getValue() const

32 aligned uint64_t in the AST file.

UnalignedUInt64()=default

void set(uint64_t Offset)

UnalignedUInt64(uint64_t BitOffset)

PredefinedTypeIDs

Predefined type IDs.

CtorInitializerType

The different kinds of data that can occur in a CtorInitializer.

const unsigned int LOCAL_REDECLARATIONS

Record code for a list of local redeclarations of a declaration.

CleanupObjectKind

Kinds of cleanup objects owned by ExprWithCleanups.

const unsigned NUM_PREDEF_TYPE_IDS

The number of predefined type IDs that are reserved for the PREDEF_TYPE_* constants.

DeclCode

Record codes for each kind of declaration.

const unsigned NumSpecialTypeIDs

The number of special type IDs.

TypeCode

Record codes for each kind of type.

SpecialTypeIDs

The type IDs for special types constructed by semantic analysis.

StmtCode

Record codes for each kind of statement or expression.

DesignatorTypes

The kinds of designators that can occur in a DesignatedInitExpr.

const unsigned int DECL_UPDATES

Record of updates for a declaration that was modified after being deserialized.

@ PREDEF_TYPE_LONG_ACCUM_ID

The 'long _Accum' type.

@ PREDEF_TYPE_SAMPLER_ID

OpenCL sampler type.

@ PREDEF_TYPE_INT128_ID

The '__int128_t' type.

@ PREDEF_TYPE_CHAR32_ID

The C++ 'char32_t' type.

@ PREDEF_TYPE_SAT_SHORT_ACCUM_ID

The '_Sat short _Accum' type.

@ PREDEF_TYPE_IBM128_ID

The '__ibm128' type.

@ PREDEF_TYPE_SHORT_FRACT_ID

The 'short _Fract' type.

@ PREDEF_TYPE_AUTO_RREF_DEDUCT

The "auto &&" deduction type.

@ PREDEF_TYPE_BOUND_MEMBER

The placeholder type for bound member functions.

@ PREDEF_TYPE_LONGLONG_ID

The (signed) 'long long' type.

@ PREDEF_TYPE_FRACT_ID

The '_Fract' type.

@ PREDEF_TYPE_ARC_UNBRIDGED_CAST

ARC's unbridged-cast placeholder type.

@ PREDEF_TYPE_USHORT_FRACT_ID

The 'unsigned short _Fract' type.

@ PREDEF_TYPE_SAT_ULONG_FRACT_ID

The '_Sat unsigned long _Fract' type.

@ PREDEF_TYPE_BOOL_ID

The 'bool' or '_Bool' type.

@ PREDEF_TYPE_SAT_LONG_ACCUM_ID

The '_Sat long _Accum' type.

@ PREDEF_TYPE_SAT_LONG_FRACT_ID

The '_Sat long _Fract' type.

@ PREDEF_TYPE_SAT_SHORT_FRACT_ID

The '_Sat short _Fract' type.

@ PREDEF_TYPE_CHAR_U_ID

The 'char' type, when it is unsigned.

@ PREDEF_TYPE_RESERVE_ID_ID

OpenCL reserve_id type.

@ PREDEF_TYPE_SAT_ACCUM_ID

The '_Sat _Accum' type.

@ PREDEF_TYPE_BUILTIN_FN

The placeholder type for builtin functions.

@ PREDEF_TYPE_SHORT_ACCUM_ID

The 'short _Accum' type.

@ PREDEF_TYPE_FLOAT_ID

The 'float' type.

@ PREDEF_TYPE_QUEUE_ID

OpenCL queue type.

@ PREDEF_TYPE_INT_ID

The (signed) 'int' type.

@ PREDEF_TYPE_OBJC_SEL

The ObjC 'SEL' type.

@ PREDEF_TYPE_BFLOAT16_ID

The '__bf16' type.

@ PREDEF_TYPE_WCHAR_ID

The C++ 'wchar_t' type.

@ PREDEF_TYPE_UCHAR_ID

The 'unsigned char' type.

@ PREDEF_TYPE_UACCUM_ID

The 'unsigned _Accum' type.

@ PREDEF_TYPE_SCHAR_ID

The 'signed char' type.

@ PREDEF_TYPE_CHAR_S_ID

The 'char' type, when it is signed.

@ PREDEF_TYPE_NULLPTR_ID

The type of 'nullptr'.

@ PREDEF_TYPE_ULONG_FRACT_ID

The 'unsigned long _Fract' type.

@ PREDEF_TYPE_FLOAT16_ID

The '_Float16' type.

@ PREDEF_TYPE_UINT_ID

The 'unsigned int' type.

@ PREDEF_TYPE_FLOAT128_ID

The '__float128' type.

@ PREDEF_TYPE_OBJC_ID

The ObjC 'id' type.

@ PREDEF_TYPE_CHAR16_ID

The C++ 'char16_t' type.

@ PREDEF_TYPE_ARRAY_SECTION

The placeholder type for an array section.

@ PREDEF_TYPE_ULONGLONG_ID

The 'unsigned long long' type.

@ PREDEF_TYPE_SAT_UFRACT_ID

The '_Sat unsigned _Fract' type.

@ PREDEF_TYPE_USHORT_ID

The 'unsigned short' type.

@ PREDEF_TYPE_SHORT_ID

The (signed) 'short' type.

@ PREDEF_TYPE_OMP_ARRAY_SHAPING

The placeholder type for OpenMP array shaping operation.

@ PREDEF_TYPE_DEPENDENT_ID

The placeholder type for dependent types.

@ PREDEF_TYPE_LONGDOUBLE_ID

The 'long double' type.

@ PREDEF_TYPE_DOUBLE_ID

The 'double' type.

@ PREDEF_TYPE_UINT128_ID

The '__uint128_t' type.

@ PREDEF_TYPE_HALF_ID

The OpenCL 'half' / ARM NEON __fp16 type.

@ PREDEF_TYPE_VOID_ID

The void type.

@ PREDEF_TYPE_SAT_USHORT_FRACT_ID

The '_Sat unsigned short _Fract' type.

@ PREDEF_TYPE_ACCUM_ID

The '_Accum' type.

@ PREDEF_TYPE_SAT_FRACT_ID

The '_Sat _Fract' type.

@ PREDEF_TYPE_NULL_ID

The NULL type.

@ PREDEF_TYPE_USHORT_ACCUM_ID

The 'unsigned short _Accum' type.

@ PREDEF_TYPE_CHAR8_ID

The C++ 'char8_t' type.

@ PREDEF_TYPE_UFRACT_ID

The 'unsigned _Fract' type.

@ PREDEF_TYPE_OVERLOAD_ID

The placeholder type for overloaded function sets.

@ PREDEF_TYPE_INCOMPLETE_MATRIX_IDX

A placeholder type for incomplete matrix index operations.

@ PREDEF_TYPE_UNRESOLVED_TEMPLATE

The placeholder type for unresolved templates.

@ PREDEF_TYPE_SAT_USHORT_ACCUM_ID

The '_Sat unsigned short _Accum' type.

@ PREDEF_TYPE_LONG_ID

The (signed) 'long' type.

@ PREDEF_TYPE_SAT_ULONG_ACCUM_ID

The '_Sat unsigned long _Accum' type.

@ PREDEF_TYPE_LONG_FRACT_ID

The 'long _Fract' type.

@ PREDEF_TYPE_UNKNOWN_ANY

The 'unknown any' placeholder type.

@ PREDEF_TYPE_OMP_ITERATOR

The placeholder type for OpenMP iterator expression.

@ PREDEF_TYPE_PSEUDO_OBJECT

The pseudo-object placeholder type.

@ PREDEF_TYPE_OBJC_CLASS

The ObjC 'Class' type.

@ PREDEF_TYPE_ULONG_ID

The 'unsigned long' type.

@ PREDEF_TYPE_SAT_UACCUM_ID

The '_Sat unsigned _Accum' type.

@ PREDEF_TYPE_CLK_EVENT_ID

OpenCL clk event type.

@ PREDEF_TYPE_EVENT_ID

OpenCL event type.

@ PREDEF_TYPE_ULONG_ACCUM_ID

The 'unsigned long _Accum' type.

@ PREDEF_TYPE_AUTO_DEDUCT

The "auto" deduction type.

@ CTOR_INITIALIZER_MEMBER

@ CTOR_INITIALIZER_DELEGATING

@ CTOR_INITIALIZER_INDIRECT_MEMBER

@ DECL_EMPTY

An EmptyDecl record.

@ DECL_CAPTURED

A CapturedDecl record.

@ DECL_CXX_BASE_SPECIFIERS

A record containing CXXBaseSpecifiers.

@ DECL_CXX_RECORD

A CXXRecordDecl record.

@ DECL_VAR_TEMPLATE_PARTIAL_SPECIALIZATION

A VarTemplatePartialSpecializationDecl record.

@ DECL_OMP_ALLOCATE

An OMPAllocateDcl record.

@ DECL_MS_PROPERTY

A MSPropertyDecl record.

@ DECL_OMP_DECLARE_MAPPER

An OMPDeclareMapperDecl record.

@ DECL_TOP_LEVEL_STMT_DECL

A TopLevelStmtDecl record.

@ DECL_REQUIRES_EXPR_BODY

A RequiresExprBodyDecl record.

@ DECL_STATIC_ASSERT

A StaticAssertDecl record.

@ DECL_INDIRECTFIELD

A IndirectFieldDecl record.

@ DECL_TEMPLATE_TEMPLATE_PARM

A TemplateTemplateParmDecl record.

@ DECL_IMPORT

An ImportDecl recording a module import.

@ DECL_UNNAMED_GLOBAL_CONSTANT

A UnnamedGlobalConstantDecl record.

@ DECL_ACCESS_SPEC

An AccessSpecDecl record.

@ DECL_OBJC_TYPE_PARAM

An ObjCTypeParamDecl record.

@ DECL_OBJC_CATEGORY_IMPL

A ObjCCategoryImplDecl record.

@ DECL_ENUM_CONSTANT

An EnumConstantDecl record.

@ DECL_PARM_VAR

A ParmVarDecl record.

@ DECL_TYPEDEF

A TypedefDecl record.

@ DECL_EXPANDED_TEMPLATE_TEMPLATE_PARM_PACK

A TemplateTemplateParmDecl record that stores an expanded template template parameter pack.

@ DECL_HLSL_BUFFER

A HLSLBufferDecl record.

@ DECL_NAMESPACE_ALIAS

A NamespaceAliasDecl record.

@ DECL_TYPEALIAS

A TypeAliasDecl record.

@ DECL_FUNCTION_TEMPLATE

A FunctionTemplateDecl record.

@ DECL_MS_GUID

A MSGuidDecl record.

@ DECL_UNRESOLVED_USING_TYPENAME

An UnresolvedUsingTypenameDecl record.

@ DECL_CLASS_TEMPLATE_SPECIALIZATION

A ClassTemplateSpecializationDecl record.

@ DECL_FILE_SCOPE_ASM

A FileScopeAsmDecl record.

@ DECL_PARTIAL_SPECIALIZATIONS

@ DECL_CXX_CONSTRUCTOR

A CXXConstructorDecl record.

@ DECL_CXX_CONVERSION

A CXXConversionDecl record.

@ DECL_FIELD

A FieldDecl record.

@ DECL_LINKAGE_SPEC

A LinkageSpecDecl record.

@ DECL_CONTEXT_TU_LOCAL_VISIBLE

A record that stores the set of declarations that are only visible to the TU.

@ DECL_NAMESPACE

A NamespaceDecl record.

@ DECL_NON_TYPE_TEMPLATE_PARM

A NonTypeTemplateParmDecl record.

@ DECL_USING_PACK

A UsingPackDecl record.

@ DECL_FUNCTION

A FunctionDecl record.

@ DECL_USING_DIRECTIVE

A UsingDirecitveDecl record.

@ DECL_RECORD

A RecordDecl record.

@ DECL_CONTEXT_LEXICAL

A record that stores the set of declarations that are lexically stored within a given DeclContext.

@ DECL_BLOCK

A BlockDecl record.

@ DECL_UNRESOLVED_USING_VALUE

An UnresolvedUsingValueDecl record.

@ DECL_TYPE_ALIAS_TEMPLATE

A TypeAliasTemplateDecl record.

@ DECL_CXX_CTOR_INITIALIZERS

A record containing CXXCtorInitializers.

@ DECL_OBJC_CATEGORY

A ObjCCategoryDecl record.

@ DECL_VAR

A VarDecl record.

@ DECL_UNRESOLVED_USING_IF_EXISTS

An UnresolvedUsingIfExistsDecl record.

@ DECL_USING

A UsingDecl record.

@ DECL_OBJC_PROTOCOL

A ObjCProtocolDecl record.

@ DECL_TEMPLATE_TYPE_PARM

A TemplateTypeParmDecl record.

@ DECL_VAR_TEMPLATE_SPECIALIZATION

A VarTemplateSpecializationDecl record.

@ DECL_OBJC_IMPLEMENTATION

A ObjCImplementationDecl record.

@ DECL_LABEL

A LabelDecl record.

@ DECL_OBJC_COMPATIBLE_ALIAS

A ObjCCompatibleAliasDecl record.

@ DECL_CONSTRUCTOR_USING_SHADOW

A ConstructorUsingShadowDecl record.

@ DECL_USING_ENUM

A UsingEnumDecl record.

@ DECL_FRIEND_TEMPLATE

A FriendTemplateDecl record.

@ DECL_PRAGMA_DETECT_MISMATCH

A PragmaDetectMismatchDecl record.

@ DECL_EXPANDED_NON_TYPE_TEMPLATE_PARM_PACK

A NonTypeTemplateParmDecl record that stores an expanded non-type template parameter pack.

@ DECL_OBJC_AT_DEFS_FIELD

A ObjCAtDefsFieldDecl record.

@ DECL_IMPLICIT_PARAM

An ImplicitParamDecl record.

@ DECL_FRIEND

A FriendDecl record.

@ DECL_CXX_METHOD

A CXXMethodDecl record.

@ DECL_EXPORT

An ExportDecl record.

@ DECL_BINDING

A BindingDecl record.

@ DECL_PRAGMA_COMMENT

A PragmaCommentDecl record.

@ DECL_ENUM

An EnumDecl record.

@ DECL_CONTEXT_MODULE_LOCAL_VISIBLE

A record containing the set of declarations that are only visible from DeclContext in the same module...

@ DECL_DECOMPOSITION

A DecompositionDecl record.

@ DECL_OMP_DECLARE_REDUCTION

An OMPDeclareReductionDecl record.

@ DECL_OMP_THREADPRIVATE

An OMPThreadPrivateDecl record.

@ DECL_OBJC_METHOD

A ObjCMethodDecl record.

@ DECL_CXX_DESTRUCTOR

A CXXDestructorDecl record.

@ DECL_OMP_CAPTUREDEXPR

An OMPCapturedExprDecl record.

@ DECL_CLASS_TEMPLATE

A ClassTemplateDecl record.

@ DECL_USING_SHADOW

A UsingShadowDecl record.

@ DECL_CONCEPT

A ConceptDecl record.

@ DECL_CXX_DEDUCTION_GUIDE

A CXXDeductionGuideDecl record.

@ DECL_OMP_REQUIRES

An OMPRequiresDecl record.

@ DECL_OBJC_IVAR

A ObjCIvarDecl record.

@ DECL_OBJC_PROPERTY

A ObjCPropertyDecl record.

@ DECL_TEMPLATE_PARAM_OBJECT

A TemplateParamObjectDecl record.

@ DECL_OBJC_INTERFACE

A ObjCInterfaceDecl record.

@ DECL_VAR_TEMPLATE

A VarTemplateDecl record.

@ DECL_LIFETIME_EXTENDED_TEMPORARY

An LifetimeExtendedTemporaryDecl record.

@ DECL_CLASS_TEMPLATE_PARTIAL_SPECIALIZATION

A ClassTemplatePartialSpecializationDecl record.

@ DECL_IMPLICIT_CONCEPT_SPECIALIZATION

An ImplicitConceptSpecializationDecl record.

@ DECL_CONTEXT_VISIBLE

A record that stores the set of declarations that are visible from a given DeclContext.

@ DECL_OBJC_PROPERTY_IMPL

A ObjCPropertyImplDecl record.

@ TYPE_EXT_QUAL

An ExtQualType record.

@ SPECIAL_TYPE_OBJC_SEL_REDEFINITION

Objective-C "SEL" redefinition type.

@ SPECIAL_TYPE_UCONTEXT_T

C ucontext_t typedef type.

@ SPECIAL_TYPE_JMP_BUF

C jmp_buf typedef type.

@ SPECIAL_TYPE_FILE

C FILE typedef type.

@ SPECIAL_TYPE_SIGJMP_BUF

C sigjmp_buf typedef type.

@ SPECIAL_TYPE_OBJC_CLASS_REDEFINITION

Objective-C "Class" redefinition type.

@ SPECIAL_TYPE_CF_CONSTANT_STRING

CFConstantString type.

@ SPECIAL_TYPE_OBJC_ID_REDEFINITION

Objective-C "id" redefinition type.

@ STMT_OMP_SECTION_DIRECTIVE

@ STMT_OPENACC_COMBINED_CONSTRUCT

@ EXPR_DESIGNATED_INIT

A DesignatedInitExpr record.

@ EXPR_COMPOUND_LITERAL

A CompoundLiteralExpr record.

@ STMT_OMP_ASSUME_DIRECTIVE

@ STMT_OPENACC_HOST_DATA_CONSTRUCT

@ STMT_OMP_DISTRIBUTE_PARALLEL_FOR_SIMD_DIRECTIVE

@ EXPR_OBJC_IVAR_REF_EXPR

An ObjCIvarRefExpr record.

@ STMT_OMP_SCOPE_DIRECTIVE

@ STMT_OMP_PARALLEL_FOR_SIMD_DIRECTIVE

@ EXPR_MEMBER

A MemberExpr record.

@ STMT_OMP_TARGET_TEAMS_DIRECTIVE

@ EXPR_CXX_TEMPORARY_OBJECT

A CXXTemporaryObjectExpr record.

@ EXPR_CXX_UNRESOLVED_LOOKUP

@ STMT_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_DIRECTIVE

@ EXPR_COMPOUND_ASSIGN_OPERATOR

A CompoundAssignOperator record.

@ EXPR_EXPR_WITH_CLEANUPS

@ EXPR_CXX_STATIC_CAST

A CXXStaticCastExpr record.

@ STMT_OMP_META_DIRECTIVE

@ EXPR_OBJC_STRING_LITERAL

An ObjCStringLiteral record.

@ EXPR_CXX_PROPERTY_REF_EXPR

@ EXPR_SYCL_UNIQUE_STABLE_NAME

@ STMT_OMP_TARGET_DATA_DIRECTIVE

@ STMT_OMP_BARRIER_DIRECTIVE

@ EXPR_VA_ARG

A VAArgExpr record.

@ STMT_OMP_TEAMS_DISTRIBUTE_SIMD_DIRECTIVE

@ STMT_OPENACC_SHUTDOWN_CONSTRUCT

@ EXPR_OBJC_ISA

An ObjCIsa Expr record.

@ STMT_OMP_SINGLE_DIRECTIVE

@ STMT_OPENACC_EXIT_DATA_CONSTRUCT

@ EXPR_CXX_OPERATOR_CALL

A CXXOperatorCallExpr record.

@ STMT_OBJC_AT_TRY

An ObjCAtTryStmt record.

@ STMT_OMP_TARGET_EXIT_DATA_DIRECTIVE

@ EXPR_CXX_UNRESOLVED_CONSTRUCT

@ EXPR_FIXEDPOINT_LITERAL

@ STMT_DO

A DoStmt record.

@ STMT_OBJC_CATCH

An ObjCAtCatchStmt record.

@ STMT_OMP_TARGET_DIRECTIVE

@ STMT_IF

An IfStmt record.

@ EXPR_CXX_EXPRESSION_TRAIT

@ EXPR_STRING_LITERAL

A StringLiteral record.

@ EXPR_OBJC_AVAILABILITY_CHECK

An ObjCAvailabilityCheckExpr record.

@ STMT_OMP_PARALLEL_MASKED_TASKLOOP_DIRECTIVE

@ EXPR_MATRIX_SUBSCRIPT

An MatrixSubscriptExpr record.

@ EXPR_PSEUDO_OBJECT

A PseudoObjectExpr record.

@ STMT_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_DIRECTIVE

@ EXPR_IMPLICIT_CAST

An ImplicitCastExpr record.

@ STMT_OMP_FLUSH_DIRECTIVE

@ STMT_CAPTURED

A CapturedStmt record.

@ STMT_OMP_TARGET_PARALLEL_FOR_SIMD_DIRECTIVE

@ STMT_OMP_MASTER_TASKLOOP_DIRECTIVE

@ STMT_OMP_TILE_DIRECTIVE

@ STMT_OMP_CANCELLATION_POINT_DIRECTIVE

@ STMT_GCCASM

A GCC-style AsmStmt record.

@ EXPR_IMAGINARY_LITERAL

An ImaginaryLiteral record.

@ STMT_OMP_INTERCHANGE_DIRECTIVE

@ STMT_WHILE

A WhileStmt record.

@ EXPR_CONVERT_VECTOR

A ConvertVectorExpr record.

@ EXPR_OBJC_SUBSCRIPT_REF_EXPR

An ObjCSubscriptRefExpr record.

@ STMT_OPENACC_COMPUTE_CONSTRUCT

@ STMT_OMP_TASKWAIT_DIRECTIVE

@ STMT_OMP_TASKYIELD_DIRECTIVE

@ EXPR_STMT

A StmtExpr record.

@ STMT_OMP_PARALLEL_GENERIC_LOOP_DIRECTIVE

@ EXPR_CXX_REINTERPRET_CAST

A CXXReinterpretCastExpr record.

@ EXPR_DESIGNATED_INIT_UPDATE

A DesignatedInitUpdateExpr record.

@ STMT_OBJC_AT_SYNCHRONIZED

An ObjCAtSynchronizedStmt record.

@ STMT_OMP_DISTRIBUTE_PARALLEL_FOR_DIRECTIVE

@ STMT_OMP_TASKLOOP_SIMD_DIRECTIVE

@ STMT_MS_DEPENDENT_EXISTS

@ EXPR_BUILTIN_BIT_CAST

A BuiltinBitCastExpr record.

@ EXPR_CXX_PROPERTY_SUBSCRIPT_EXPR

@ STMT_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD_DIRECTIVE

@ EXPR_CXX_PSEUDO_DESTRUCTOR

@ STMT_OMP_MASKED_DIRECTIVE

@ STMT_OMP_TARGET_ENTER_DATA_DIRECTIVE

@ EXPR_CHARACTER_LITERAL

A CharacterLiteral record.

@ EXPR_OBJC_ENCODE

An ObjCEncodeExpr record.

@ STMT_OMP_PARALLEL_SECTIONS_DIRECTIVE

@ STMT_OMP_PARALLEL_FOR_DIRECTIVE

@ EXPR_CSTYLE_CAST

A CStyleCastExpr record.

@ STMT_OMP_PARALLEL_DIRECTIVE

@ EXPR_OBJC_BOXED_EXPRESSION

@ EXPR_OBJC_BOOL_LITERAL

An ObjCBoolLiteralExpr record.

@ EXPR_CXX_BIND_TEMPORARY

@ STMT_OMP_ATOMIC_DIRECTIVE

@ STMT_OMP_ORDERED_DIRECTIVE

@ EXPR_EXT_VECTOR_ELEMENT

An ExtVectorElementExpr record.

@ STMT_OMP_TEAMS_GENERIC_LOOP_DIRECTIVE

@ STMT_OMP_CRITICAL_DIRECTIVE

@ EXPR_ATOMIC

An AtomicExpr record.

@ STMT_OPENACC_ENTER_DATA_CONSTRUCT

@ STMT_OMP_CANCEL_DIRECTIVE

@ EXPR_OFFSETOF

An OffsetOfExpr record.

@ STMT_RETURN

A ReturnStmt record.

@ STMT_OBJC_FOR_COLLECTION

An ObjCForCollectionStmt record.

@ STMT_OMP_TARGET_TEAMS_DISTRIBUTE_DIRECTIVE

@ EXPR_ARRAY_INIT_LOOP

An ArrayInitLoopExpr record.

@ STMT_OMP_PARALLEL_MASTER_TASKLOOP_DIRECTIVE

@ STMT_OMP_PARALLEL_MASKED_TASKLOOP_SIMD_DIRECTIVE

@ STMT_CONTINUE

A ContinueStmt record.

@ EXPR_PREDEFINED

A PredefinedExpr record.

@ EXPR_OPENACC_ASTERISK_SIZE

@ STMT_OMP_DEPOBJ_DIRECTIVE

@ EXPR_CXX_BOOL_LITERAL

A CXXBoolLiteralExpr record.

@ EXPR_PAREN_LIST

A ParenListExpr record.

@ EXPR_CXX_PAREN_LIST_INIT

A CXXParenListInitExpr record.

@ STMT_OMP_DISPATCH_DIRECTIVE

@ STMT_OMP_MASTER_TASKLOOP_SIMD_DIRECTIVE

@ STMT_OPENACC_DATA_CONSTRUCT

@ STMT_OMP_TASKLOOP_DIRECTIVE

@ STMT_COMPOUND

A CompoundStmt record.

@ STMT_OMP_CANONICAL_LOOP

@ STMT_FOR

A ForStmt record.

@ STMT_ATTRIBUTED

An AttributedStmt record.

@ STMT_OMP_PARALLEL_MASTER_DIRECTIVE

@ STMT_OPENACC_WAIT_CONSTRUCT

@ STMT_OMP_TARGET_TEAMS_GENERIC_LOOP_DIRECTIVE

@ STMT_OMP_TEAMS_DIRECTIVE

@ STMT_OMP_TARGET_PARALLEL_DIRECTIVE

@ EXPR_CXX_REWRITTEN_BINARY_OPERATOR

A CXXRewrittenBinaryOperator record.

@ STMT_GOTO

A GotoStmt record.

@ EXPR_NO_INIT

An NoInitExpr record.

@ EXPR_OBJC_ARRAY_LITERAL

@ STMT_OMP_ERROR_DIRECTIVE

@ EXPR_OBJC_PROTOCOL_EXPR

An ObjCProtocolExpr record.

@ STMT_OMP_GENERIC_LOOP_DIRECTIVE

@ EXPR_ARRAY_INIT_INDEX

An ArrayInitIndexExpr record.

@ STMT_OMP_TASK_DIRECTIVE

@ STMT_OPENACC_INIT_CONSTRUCT

@ EXPR_CXX_CONSTRUCT

A CXXConstructExpr record.

@ STMT_OMP_PARALLEL_MASKED_DIRECTIVE

@ STMT_OMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_DIRECTIVE

@ STMT_OPENACC_UPDATE_CONSTRUCT

@ STMT_OMP_PARALLEL_MASTER_TASKLOOP_SIMD_DIRECTIVE

@ EXPR_OBJC_DICTIONARY_LITERAL

@ STMT_OMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_SIMD_DIRECTIVE

@ EXPR_CXX_DYNAMIC_CAST

A CXXDynamicCastExpr record.

@ STMT_CXX_TRY

A CXXTryStmt record.

@ EXPR_GENERIC_SELECTION

A GenericSelectionExpr record.

@ STMT_OMP_TARGET_SIMD_DIRECTIVE

@ EXPR_OBJC_INDIRECT_COPY_RESTORE

An ObjCIndirectCopyRestoreExpr record.

@ EXPR_CXX_INHERITED_CTOR_INIT

A CXXInheritedCtorInitExpr record.

@ EXPR_CALL

A CallExpr record.

@ EXPR_GNU_NULL

A GNUNullExpr record.

@ EXPR_BINARY_CONDITIONAL_OPERATOR

@ EXPR_OBJC_PROPERTY_REF_EXPR

An ObjCPropertyRefExpr record.

@ STMT_OMP_TARGET_PARALLEL_FOR_DIRECTIVE

@ STMT_OMP_FOR_SIMD_DIRECTIVE

@ STMT_OMP_MASKED_TASKLOOP_DIRECTIVE

@ EXPR_CXX_CONST_CAST

A CXXConstCastExpr record.

@ STMT_OMP_SCAN_DIRECTIVE

@ STMT_REF_PTR

A reference to a previously [de]serialized Stmt record.

@ EXPR_OBJC_MESSAGE_EXPR

An ObjCMessageExpr record.

@ EXPR_CXX_DEPENDENT_SCOPE_DECL_REF

@ STMT_OMP_TEAMS_DISTRIBUTE_DIRECTIVE

@ STMT_CASE

A CaseStmt record.

@ EXPR_CONSTANT

A constant expression context.

@ EXPR_FUNCTION_PARM_PACK

@ STMT_STOP

A marker record that indicates that we are at the end of an expression.

@ EXPR_CXX_NULL_PTR_LITERAL

@ STMT_OMP_TARGET_UPDATE_DIRECTIVE

@ STMT_MSASM

A MS-style AsmStmt record.

@ STMT_OMP_DISTRIBUTE_DIRECTIVE

@ EXPR_CONDITIONAL_OPERATOR

A ConditionOperator record.

@ EXPR_BINARY_OPERATOR

A BinaryOperator record.

@ EXPR_CXX_STD_INITIALIZER_LIST

A CXXStdInitializerListExpr record.

@ STMT_OMP_TASKGROUP_DIRECTIVE

@ STMT_OMP_REVERSE_DIRECTIVE

@ EXPR_SHUFFLE_VECTOR

A ShuffleVectorExpr record.

@ STMT_OBJC_FINALLY

An ObjCAtFinallyStmt record.

@ EXPR_OBJC_SELECTOR_EXPR

An ObjCSelectorExpr record.

@ EXPR_FLOATING_LITERAL

A FloatingLiteral record.

@ STMT_OMP_MASTER_DIRECTIVE

@ EXPR_CXX_DEPENDENT_SCOPE_MEMBER

@ STMT_NULL_PTR

A NULL expression.

@ STMT_DEFAULT

A DefaultStmt record.

@ EXPR_CHOOSE

A ChooseExpr record.

@ STMT_OMP_UNROLL_DIRECTIVE

@ STMT_NULL

A NullStmt record.

@ STMT_OMP_SIMD_DIRECTIVE

@ EXPR_DECL_REF

A DeclRefExpr record.

@ STMT_OPENACC_LOOP_CONSTRUCT

@ EXPR_SUBST_NON_TYPE_TEMPLATE_PARM

@ EXPR_INIT_LIST

An InitListExpr record.

@ EXPR_IMPLICIT_VALUE_INIT

An ImplicitValueInitExpr record.

@ STMT_OBJC_AUTORELEASE_POOL

An ObjCAutoreleasePoolStmt record.

@ STMT_OPENACC_SET_CONSTRUCT

@ EXPR_RECOVERY

A RecoveryExpr record.

@ EXPR_PAREN

A ParenExpr record.

@ STMT_OMP_TARGET_PARALLEL_GENERIC_LOOP_DIRECTIVE

@ STMT_LABEL

A LabelStmt record.

@ EXPR_CXX_FUNCTIONAL_CAST

A CXXFunctionalCastExpr record.

@ EXPR_USER_DEFINED_LITERAL

A UserDefinedLiteral record.

@ EXPR_INTEGER_LITERAL

An IntegerLiteral record.

@ EXPR_SOURCE_LOC

A SourceLocExpr record.

@ EXPR_MATERIALIZE_TEMPORARY

@ EXPR_CXX_MEMBER_CALL

A CXXMemberCallExpr record.

@ STMT_OMP_INTEROP_DIRECTIVE

@ STMT_SWITCH

A SwitchStmt record.

@ STMT_DECL

A DeclStmt record.

@ EXPR_CXX_UNRESOLVED_MEMBER

@ EXPR_OBJC_KVC_REF_EXPR

UNUSED.

@ STMT_OMP_SECTIONS_DIRECTIVE

@ EXPR_SUBST_NON_TYPE_TEMPLATE_PARM_PACK

@ EXPR_CXX_SCALAR_VALUE_INIT

@ STMT_OMP_MASKED_TASKLOOP_SIMD_DIRECTIVE

@ STMT_OMP_DISTRIBUTE_SIMD_DIRECTIVE

@ EXPR_SIZEOF_ALIGN_OF

A SizefAlignOfExpr record.

@ STMT_BREAK

A BreakStmt record.

@ STMT_OBJC_AT_THROW

An ObjCAtThrowStmt record.

@ EXPR_ADDR_LABEL

An AddrLabelExpr record.

@ STMT_CXX_FOR_RANGE

A CXXForRangeStmt record.

@ EXPR_CXX_ADDRSPACE_CAST

A CXXAddrspaceCastExpr record.

@ EXPR_ARRAY_SUBSCRIPT

An ArraySubscriptExpr record.

@ EXPR_CONCEPT_SPECIALIZATION

@ EXPR_UNARY_OPERATOR

A UnaryOperator record.

@ STMT_CXX_CATCH

A CXXCatchStmt record.

@ EXPR_BUILTIN_PP_EMBED

A EmbedExpr record.

@ STMT_INDIRECT_GOTO

An IndirectGotoStmt record.

@ DESIG_ARRAY_RANGE

GNU array range designator.

@ DESIG_FIELD_NAME

Field designator where only the field name is known.

@ DESIG_FIELD_DECL

Field designator where the field has been resolved to a declaration.

@ DESIG_ARRAY

Array designator.

uint64_t TypeID

An ID number that refers to a type in an AST file.

ExtensionBlockRecordTypes

Record code for extension blocks.

@ EXTENSION_METADATA

Metadata describing this particular extension.

@ FIRST_EXTENSION_RECORD_ID

The first record ID allocated to the extensions themselves.

llvm::support::detail::packed_endian_specific_integral< serialization::DeclID, llvm::endianness::native, llvm::support::unaligned > unaligned_decl_id_t

SubmoduleRecordTypes

Record types used within a submodule description block.

@ SUBMODULE_EXCLUDED_HEADER

Specifies a header that has been explicitly excluded from this submodule.

@ SUBMODULE_TOPHEADER

Specifies a top-level header that falls into this (sub)module.

@ SUBMODULE_PRIVATE_TEXTUAL_HEADER

Specifies a header that is private to this submodule but must be textually included.

@ SUBMODULE_HEADER

Specifies a header that falls into this (sub)module.

@ SUBMODULE_EXPORT_AS

Specifies the name of the module that will eventually re-export the entities in this module.

@ SUBMODULE_UMBRELLA_DIR

Specifies an umbrella directory.

@ SUBMODULE_UMBRELLA_HEADER

Specifies the umbrella header used to create this module, if any.

@ SUBMODULE_METADATA

Metadata for submodules as a whole.

@ SUBMODULE_REQUIRES

Specifies a required feature.

@ SUBMODULE_PRIVATE_HEADER

Specifies a header that is private to this submodule.

@ SUBMODULE_IMPORTS

Specifies the submodules that are imported by this submodule.

@ SUBMODULE_CONFLICT

Specifies a conflict with another module.

@ SUBMODULE_INITIALIZERS

Specifies some declarations with initializers that must be emitted to initialize the module.

@ SUBMODULE_DEFINITION

Defines the major attributes of a submodule, including its name and parent.

@ SUBMODULE_LINK_LIBRARY

Specifies a library or framework to link against.

@ SUBMODULE_CONFIG_MACRO

Specifies a configuration macro for this module.

@ SUBMODULE_EXPORTS

Specifies the submodules that are re-exported from this submodule.

@ SUBMODULE_TEXTUAL_HEADER

Specifies a header that is part of the module but must be textually included.

@ SUBMODULE_AFFECTING_MODULES

Specifies affecting modules that were not imported.

TypeID LocalTypeID

Same with TypeID except that the LocalTypeID is only meaningful with the corresponding ModuleFile.

const unsigned int NUM_PREDEF_IDENT_IDS

The number of predefined identifier IDs.

uint32_t SubmoduleID

An ID number that refers to a submodule in a module file.

OptionsRecordTypes

Record types that occur within the options block inside the control block.

@ FILE_SYSTEM_OPTIONS

Record code for the filesystem options table.

@ TARGET_OPTIONS

Record code for the target options table.

@ PREPROCESSOR_OPTIONS

Record code for the preprocessor options table.

@ HEADER_SEARCH_OPTIONS

Record code for the headers search options table.

@ LANGUAGE_OPTIONS

Record code for the language options table.

uint32_t SelectorID

An ID number that refers to an ObjC selector in an AST file.

const unsigned int NUM_PREDEF_PP_ENTITY_IDS

The number of predefined preprocessed entity IDs.

uint32_t PreprocessedEntityID

An ID number that refers to an entity in the detailed preprocessing record.

const unsigned int NUM_PREDEF_SUBMODULE_IDS

The number of predefined submodule IDs.

BlockIDs

Describes the various kinds of blocks that occur within an AST file.

@ SUBMODULE_BLOCK_ID

The block containing the submodule structure.

@ PREPROCESSOR_DETAIL_BLOCK_ID

The block containing the detailed preprocessing record.

@ AST_BLOCK_ID

The AST block, which acts as a container around the full AST block.

@ SOURCE_MANAGER_BLOCK_ID

The block containing information about the source manager.

@ CONTROL_BLOCK_ID

The control block, which contains all of the information that needs to be validated prior to committi...

@ DECLTYPES_BLOCK_ID

The block containing the definitions of all of the types and decls used within the AST file.

@ PREPROCESSOR_BLOCK_ID

The block containing information about the preprocessor.

@ COMMENTS_BLOCK_ID

The block containing comments.

@ UNHASHED_CONTROL_BLOCK_ID

A block with unhashed content.

@ EXTENSION_BLOCK_ID

A block containing a module file extension.

@ OPTIONS_BLOCK_ID

The block of configuration options, used to check that a module is being used in a configuration comp...

@ INPUT_FILES_BLOCK_ID

The block of input files, which were used as inputs to create this AST file.

CommentRecordTypes

Record types used within a comments block.

const unsigned VERSION_MINOR

AST file minor version number supported by this version of Clang.

SourceManagerRecordTypes

Record types used within a source manager block.

@ SM_SLOC_FILE_ENTRY

Describes a source location entry (SLocEntry) for a file.

@ SM_SLOC_BUFFER_BLOB_COMPRESSED

Describes a zlib-compressed blob that contains the data for a buffer entry.

@ SM_SLOC_BUFFER_ENTRY

Describes a source location entry (SLocEntry) for a buffer.

@ SM_SLOC_BUFFER_BLOB

Describes a blob that contains the data for a buffer entry.

@ SM_SLOC_EXPANSION_ENTRY

Describes a source location entry (SLocEntry) for a macro expansion.

const unsigned int NUM_PREDEF_SELECTOR_IDS

The number of predefined selector IDs.

uint32_t GlobalMacroID

A global ID number that refers to a macro in an AST file.

const unsigned VERSION_MAJOR

AST file major version number supported by this version of Clang.

DeclIDBase::DeclID DeclID

An ID number that refers to a declaration in an AST file.

PreprocessorRecordTypes

Record types used within a preprocessor block.

@ PP_TOKEN

Describes one token.

@ PP_MACRO_FUNCTION_LIKE

A function-like macro definition.

@ PP_MACRO_OBJECT_LIKE

An object-like macro definition.

@ PP_MACRO_DIRECTIVE_HISTORY

The macro directives history for a particular identifier.

@ PP_MODULE_MACRO

A macro directive exported by a module.

ControlRecordTypes

Record types that occur within the control block.

@ MODULE_MAP_FILE

Record code for the module map file that was used to build this AST file.

@ MODULE_DIRECTORY

Record code for the module build directory.

@ ORIGINAL_FILE_ID

Record code for file ID of the file or buffer that was used to generate the AST file.

@ MODULE_NAME

Record code for the module name.

@ ORIGINAL_FILE

Record code for the original file that was used to generate the AST file, including both its file ID ...

@ IMPORT

Record code for another AST file imported by this AST file.

@ INPUT_FILE_OFFSETS

Offsets into the input-files block where input files reside.

@ METADATA

AST file metadata, including the AST file version number and information about the compiler used to b...

UnhashedControlBlockRecordTypes

Record codes for the unhashed control block.

@ DIAGNOSTIC_OPTIONS

Record code for the diagnostic options table.

@ HEADER_SEARCH_ENTRY_USAGE

Record code for the indices of used header search entries.

@ AST_BLOCK_HASH

Record code for the content hash of the AST block.

@ DIAG_PRAGMA_MAPPINGS

Record code for #pragma diagnostic mappings.

@ SIGNATURE

Record code for the signature that identifiers this AST file.

@ HEADER_SEARCH_PATHS

Record code for the headers search paths.

@ VFS_USAGE

Record code for the indices of used VFSs.

InputFileRecordTypes

Record types that occur within the input-files block inside the control block.

@ INPUT_FILE_HASH

The input file content hash.

@ INPUT_FILE

An input file.

uint32_t LocalMacroID

A local to a module ID number that refers to a macro in an AST file.

PreprocessorDetailRecordTypes

Record types used within a preprocessor detail block.

@ PPD_INCLUSION_DIRECTIVE

Describes an inclusion directive within the preprocessing record.

@ PPD_MACRO_EXPANSION

Describes a macro expansion within the preprocessing record.

@ PPD_MACRO_DEFINITION

Describes a macro definition within the preprocessing record.

uint64_t IdentifierID

An ID number that refers to an identifier in an AST file.

const unsigned int NUM_PREDEF_MACRO_IDS

The number of predefined macro IDs.

ASTRecordTypes

Record types that occur within the AST block itself.

@ DECL_UPDATE_OFFSETS

Record for offsets of DECL_UPDATES records for declarations that were modified after being deserializ...

@ STATISTICS

Record code for the extra statistics we gather while generating an AST file.

@ FLOAT_CONTROL_PRAGMA_OPTIONS

Record code for #pragma float_control options.

@ KNOWN_NAMESPACES

Record code for the set of known namespaces, which are used for typo correction.

@ SPECIAL_TYPES

Record code for the set of non-builtin, special types.

@ PENDING_IMPLICIT_INSTANTIATIONS

Record code for pending implicit instantiations.

@ CXX_ADDED_TEMPLATE_SPECIALIZATION

@ TYPE_OFFSET

Record code for the offsets of each type.

@ DELEGATING_CTORS

The list of delegating constructor declarations.

@ PP_ASSUME_NONNULL_LOC

ID 66 used to be the list of included files.

@ EXT_VECTOR_DECLS

Record code for the set of ext_vector type names.

@ OPENCL_EXTENSIONS

Record code for enabled OpenCL extensions.

@ UPDATE_SPECIALIZATION

Record code for updated specialization.

@ FP_PRAGMA_OPTIONS

Record code for floating point #pragma options.

@ PP_UNSAFE_BUFFER_USAGE

Record code for #pragma clang unsafe_buffer_usage begin/end.

@ CXX_ADDED_TEMPLATE_PARTIAL_SPECIALIZATION

@ DECLS_WITH_EFFECTS_TO_VERIFY

Record code for Sema's vector of functions/blocks with effects to be verified.

@ VTABLE_USES

Record code for the array of VTable uses.

@ LATE_PARSED_TEMPLATE

Record code for late parsed template functions.

@ DECLS_TO_CHECK_FOR_DEFERRED_DIAGS

Record code for the Decls to be checked for deferred diags.

@ DECL_OFFSET

Record code for the offsets of each decl.

@ SOURCE_MANAGER_LINE_TABLE

Record code for the source manager line table information, which stores information about #line direc...

@ PP_COUNTER_VALUE

The value of the next COUNTER to dispense.

@ DELETE_EXPRS_TO_ANALYZE

Delete expressions that will be analyzed later.

@ RELATED_DECLS_MAP

Record code for related declarations that have to be deserialized together from the same module.

@ UPDATE_VISIBLE

Record code for an update to a decl context's lookup table.

@ CUDA_PRAGMA_FORCE_HOST_DEVICE_DEPTH

Number of unmatched #pragma clang cuda_force_host_device begin directives we've seen.

@ MACRO_OFFSET

Record code for the table of offsets of each macro ID.

@ PPD_ENTITIES_OFFSETS

Record code for the table of offsets to entries in the preprocessing record.

@ OPENCL_EXTENSION_DECLS

Record code for declarations associated with OpenCL extensions.

@ VTABLES_TO_EMIT

Record code for vtables to emit.

@ UPDATE_MODULE_LOCAL_VISIBLE

@ IDENTIFIER_OFFSET

Record code for the table of offsets of each identifier ID.

@ OBJC_CATEGORIES

Record code for the array of Objective-C categories (including extensions).

@ METHOD_POOL

Record code for the Objective-C method pool,.

@ DELAYED_NAMESPACE_LEXICAL_VISIBLE_RECORD

Record code for lexical and visible block for delayed namespace in reduced BMI.

@ PP_CONDITIONAL_STACK

The stack of open #ifs/#ifdefs recorded in a preamble.

@ REFERENCED_SELECTOR_POOL

Record code for referenced selector pool.

@ SOURCE_LOCATION_OFFSETS

Record code for the table of offsets into the block of source-location information.

@ WEAK_UNDECLARED_IDENTIFIERS

Record code for weak undeclared identifiers.

@ UNDEFINED_BUT_USED

Record code for undefined but used functions and variables that need a definition in this TU.

@ FILE_SORTED_DECLS

Record code for a file sorted array of DeclIDs in a module.

@ MSSTRUCT_PRAGMA_OPTIONS

Record code for #pragma ms_struct options.

@ TENTATIVE_DEFINITIONS

Record code for the array of tentative definitions.

@ UPDATE_TU_LOCAL_VISIBLE

@ UNUSED_FILESCOPED_DECLS

Record code for the array of unused file scoped decls.

@ ALIGN_PACK_PRAGMA_OPTIONS

Record code for #pragma align/pack options.

@ IMPORTED_MODULES

Record code for an array of all of the (sub)modules that were imported by the AST file.

@ SELECTOR_OFFSETS

Record code for the table of offsets into the Objective-C method pool.

@ UNUSED_LOCAL_TYPEDEF_NAME_CANDIDATES

Record code for potentially unused local typedef names.

@ OPENCL_EXTENSION_TYPES

Record code for types associated with OpenCL extensions.

@ EAGERLY_DESERIALIZED_DECLS

Record code for the array of eagerly deserialized decls.

@ INTERESTING_IDENTIFIERS

A list of "interesting" identifiers.

@ HEADER_SEARCH_TABLE

Record code for header search information.

@ OBJC_CATEGORIES_MAP

Record code for map of Objective-C class definition IDs to the ObjC categories in a module that are a...

@ METADATA_OLD_FORMAT

This is so that older clang versions, before the introduction of the control block,...

@ CUDA_SPECIAL_DECL_REFS

Record code for special CUDA declarations.

@ TU_UPDATE_LEXICAL

Record code for an update to the TU's lexically contained declarations.

@ PPD_SKIPPED_RANGES

A table of skipped ranges within the preprocessing record.

@ IDENTIFIER_TABLE

Record code for the identifier table.

@ SEMA_DECL_REFS

Record code for declarations that Sema keeps references of.

@ OPTIMIZE_PRAGMA_OPTIONS

Record code for #pragma optimize options.

@ MODULE_OFFSET_MAP

Record code for the remapping information used to relate loaded modules to the various offsets and ID...

@ POINTERS_TO_MEMBERS_PRAGMA_OPTIONS

Record code for #pragma ms_struct options.

uint32_t MacroID

An ID number that refers to a macro in an AST file.

uint32_t CXXCtorInitializersID

An ID number that refers to a list of CXXCtorInitializers in an AST file.

uint32_t CXXBaseSpecifiersID

An ID number that refers to a set of CXXBaseSpecifiers in an AST file.

The JSON file list parser is used to communicate input to InstallAPI.

OverloadedOperatorKind

Enumeration specifying the different kinds of C++ overloaded operators.

const FunctionProtoType * T

Diagnostic wrappers for TextAPI types for error reporting.

__UINTPTR_TYPE__ uintptr_t

An unsigned integer type with the property that any valid pointer to void can be converted to this ty...

Describes the categories of an Objective-C class.

unaligned_decl_id_t DefinitionID

friend bool operator<(const ObjCCategoriesInfo &X, const ObjCCategoriesInfo &Y)

friend bool operator>=(const ObjCCategoriesInfo &X, const ObjCCategoriesInfo &Y)

DeclID getDefinitionID() const

friend bool operator>(const ObjCCategoriesInfo &X, const ObjCCategoriesInfo &Y)

friend bool operator<=(const ObjCCategoriesInfo &X, const ObjCCategoriesInfo &Y)

ObjCCategoriesInfo()=default

ObjCCategoriesInfo(LocalDeclID ID, unsigned Offset)

A structure for putting "fast"-unqualified QualTypes into a DenseMap.

static QualType getEmptyKey()

static unsigned getHashValue(QualType T)

static QualType getTombstoneKey()

static bool isEqual(QualType A, QualType B)

static bool isEqual(const clang::serialization::DeclarationNameKey &L, const clang::serialization::DeclarationNameKey &R)

static clang::serialization::DeclarationNameKey getTombstoneKey()

static clang::serialization::DeclarationNameKey getEmptyKey()

static unsigned getHashValue(const clang::serialization::DeclarationNameKey &Key)