A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://clang.llvm.org/doxygen/TextNodeDumper_8cpp_source.html below:

clang: lib/AST/TextNodeDumper.cpp Source File

26#include "llvm/ADT/StringExtras.h" 31using namespace clang

;

37 const T

*

First

=

D

->getFirstDecl();

39

OS <<

" first "

<<

First

;

46

OS <<

" prev "

<< Prev;

53#define DECL(DERIVED, BASE) \ 55 return dumpPreviousDeclImpl(OS, cast<DERIVED##Decl>(D)); 56#define ABSTRACT_DECL(DECL) 57#include "clang/AST/DeclNodes.inc" 59

llvm_unreachable(

"Decl that isn't part of DeclNodes.inc!"

);

65

Context(&Context),

SM

(&Context.getSourceManager()),

66

PrintPolicy(Context.getPrintingPolicy()),

67

Traits(&Context.getCommentCommandTraits()) {}

82

OS <<

C

->getCommentKindName();

100#include "clang/Basic/AttrList.inc" 116

OS <<

"TemplateArgument"

;

134

OS <<

Node

->getStmtClassName();

139 if

(

const auto

*

E

= dyn_cast<Expr>(

Node

)) {

144

OS <<

" contains-errors"

;

170

OS <<

" objcproperty"

;

173

OS <<

" objcsubscript"

;

176

OS <<

" vectorcomponent"

;

179

OS <<

" matrixcomponent"

;

194 if

(isa<LocInfoType>(

T

)) {

197

OS <<

"LocInfo Type"

;

213 if

(SingleStepDesugar !=

QualType

(

T

, 0))

218

OS <<

" contains-errors"

;

224

OS <<

" instantiation_dependent"

;

227

OS <<

" variably_modified"

;

229

OS <<

" contains_unexpanded_pack"

;

241

OS <<

" "

<<

T

.split().Quals.getAsString();

286

OS <<

" in "

<< M->getFullModuleName();

287 if

(

auto

*ND = dyn_cast<NamedDecl>(

D

))

290 AddChild

([=] { OS <<

"also in "

<< M->getFullModuleName(); });

291 if

(

const NamedDecl

*ND = dyn_cast<NamedDecl>(

D

))

292 if

(!ND->isUnconditionallyVisible())

300

OS <<

" referenced"

;

305 if

(FD->isConstexprSpecified())

307 if

(FD->isConsteval())

309 else if

(FD->isImmediateFunction())

311 if

(FD->isMultiVersion())

312

OS <<

" multiversion"

;

315 if

(!isa<FunctionDecl>(*

D

)) {

316 const auto

*MD = dyn_cast<ObjCMethodDecl>(

D

);

317 if

(!MD || !MD->isThisDeclarationADefinition()) {

318 const auto

*DC = dyn_cast<DeclContext>(

D

);

319 if

(DC && DC->hasExternalLexicalStorage()) {

321

OS <<

" <undeserialized declarations>"

;

333

OS <<

" friend_undeclared"

;

341

OS <<

"CXXCtorInitializer"

;

342 if

(

Init

->isAnyMemberInitializer()) {

345

}

else if

(

Init

->isBaseInitializer()) {

347

}

else if

(

Init

->isDelegatingInitializer()) {

350

llvm_unreachable(

"Unknown initializer type"

);

360 if

(

C

.getVariable()) {

369

OS <<

"<<<NULL>>> OMPClause"

;

374

StringRef ClauseName(llvm::omp::getOpenMPClauseName(

C

->getClauseKind()));

375

OS <<

"OMP"

<< ClauseName.substr(

0,

1).upper()

376

<< ClauseName.drop_front() <<

"Clause"

;

380 if

(

C

->isImplicit())

381

OS <<

" <implicit>"

;

392

OS <<

"<<<NULL>>> OpenACCClause"

;

397

OS <<

C

->getClauseKind();

401 switch

(

C

->getClauseKind()) {

403

OS << '(' << cast<OpenACCDefaultClause>(

C

)->getDefaultClauseKind() <<

')'

;

443 auto

*GC = cast<OpenACCGangClause>(

C

);

445 for

(

unsigned

I = 0; I < GC->getNumExprs(); ++I) {

446

OS <<

" "

<< GC->getExpr(I).first;

452 if

(cast<OpenACCCollapseClause>(

C

)->hasForce())

460 if

(cast<OpenACCCopyInClause>(

C

)->isReadOnly())

461

OS <<

" : readonly"

;

467 if

(cast<OpenACCCopyOutClause>(

C

)->isZero())

474 if

(cast<OpenACCCreateClause>(

C

)->isZero())

479 if

(cast<OpenACCWaitClause>(

C

)->hasDevNumExpr())

480

OS <<

" has devnum"

;

481 if

(cast<OpenACCWaitClause>(

C

)->hasQueuesTag())

482

OS <<

" has queues tag"

;

487

llvm::interleaveComma(

488

cast<OpenACCDeviceTypeClause>(

C

)->getArchitectures(), OS,

490 if

(Arch.first ==

nullptr

)

493

OS << Arch.first->getName();

498

OS <<

" clause Operator: " 499

<< cast<OpenACCReductionClause>(

C

)->getReductionOp();

526

OS <<

"<<<NULL>>> ConceptReference"

;

530

OS <<

"ConceptReference"

;

540

OS <<

"<<<NULL>>> Requirement"

;

548

OS <<

"TypeRequirement"

;

551

OS <<

"SimpleRequirement"

;

554

OS <<

"CompoundRequirement"

;

557

OS <<

"NestedRequirement"

;

564 if

(

auto

*ER = dyn_cast<concepts::ExprRequirement>(R)) {

565 if

(ER->hasNoexceptRequirement())

572

OS << (R->

isSatisfied

() ?

" satisfied"

:

" unsatisfied"

);

574

OS <<

" contains_unexpanded_pack"

;

580 V

.convert(llvm::APFloat::IEEEdouble(), llvm::APFloat::rmNearestTiesToEven,

582 return V

.convertToDouble();

606

llvm_unreachable(

"unexpected APValue kind!"

);

622void

TextNodeDumper::dumpAPValueChildren(

625 unsigned

NumChildren, StringRef LabelSingular, StringRef LabelPlurial) {

628 constexpr unsigned

MaxChildrenPerLine = 4;

630 while

(I < NumChildren) {

632 while

(J < NumChildren) {

634

(J - I < MaxChildrenPerLine)) {

641

J = std::max(I + 1, J);

644 AddChild

(J - I > 1 ? LabelPlurial : LabelSingular, [=]() {

645 for

(

unsigned X

= I;

X

< J; ++

X

) {

662

OS <<

"Indeterminate"

;

668

OS <<

Value

.getInt();

679

OS <<

"FixedPoint "

;

682

OS <<

Value

.getFixedPoint();

692 return Value

.getVectorElt(Index);

698

OS <<

"ComplexInt "

;

701

OS <<

Value

.getComplexIntReal() <<

" + "

<<

Value

.getComplexIntImag()

706

OS <<

"ComplexFloat "

;

715

OS <<

"LValue Base="

;

719 else if

(

const auto

*BE = B.

dyn_cast

<

const Expr

*>()) {

720

OS << BE->getStmtClassName() <<

' '

;

724

OS << VDB->getDeclKindName() <<

"Decl"

;

727

OS <<

", Null="

<<

Value

.isNullPointer()

728

<<

", Offset="

<<

Value

.getLValueOffset().getQuantity()

729

<<

", HasPath="

<<

Value

.hasLValuePath();

730 if

(

Value

.hasLValuePath()) {

731

OS <<

", PathLength="

<<

Value

.getLValuePath().size();

733

llvm::ListSeparator Sep;

734 for

(

const auto

&PathEntry :

Value

.getLValuePath()) {

737

OS << Sep << PathEntry.getAsArrayIndex();

744 unsigned

ArraySize =

Value

.getArraySize();

745 unsigned

NumInitializedElements =

Value

.getArrayInitializedElts();

746

OS <<

"Array size="

<< ArraySize;

751 return Value

.getArrayInitializedElt(Index);

753

NumInitializedElements,

"element"

,

"elements"

);

755 if

(

Value

.hasArrayFiller()) {

759

OS << ArraySize - NumInitializedElements <<

" x "

;

773 return Value

.getStructBase(Index);

775 Value

.getStructNumBases(),

"base"

,

"bases"

);

780 return Value

.getStructField(Index);

782 Value

.getStructNumFields(),

"field"

,

"fields"

);

791

OS <<

" ."

<< *cast<NamedDecl>(FD);

798 Visit

(UnionValue, Ty);

806

OS <<

"MemberPointer <todo>"

;

809

OS <<

"AddrLabelDiff <todo>"

;

812

llvm_unreachable(

"Unknown APValue kind!"

);

832

OS <<

"<invalid sloc>"

;

836 if

(strcmp(PLoc.

getFilename

(), LastLocFilename) != 0) {

840

LastLocLine = PLoc.

getLine

();

841

}

else if

(PLoc.

getLine

() != LastLocLine) {

843

LastLocLine = PLoc.

getLine

();

845

OS <<

"col"

<<

':'

<< PLoc.

getColumn

();

870

OS <<

"'"

<< T_str <<

"'"

;

872 if

(Desugar && !

T

.isNull()) {

876 if

(T_split != D_split) {

902 if

(

const NamedDecl

*ND = dyn_cast<NamedDecl>(

D

)) {

905

OS <<

" '"

<< Name <<

'\''

;

907 switch

(ND->getKind()) {

908 case

Decl::Decomposition: {

909 auto

*DD = cast<DecompositionDecl>(ND);

910

OS <<

" first_binding '"

<< DD->bindings()[0]->getDeclName() <<

'\''

;

914 auto

*FD = cast<FieldDecl>(ND);

915

OS <<

" field_index "

<< FD->getFieldIndex();

918 case

Decl::ParmVar: {

919 auto

*PD = cast<ParmVarDecl>(ND);

920

OS <<

" depth "

<< PD->getFunctionScopeDepth() <<

" index " 921

<< PD->getFunctionScopeIndex();

924 case

Decl::TemplateTypeParm: {

925 auto

*TD = cast<TemplateTypeParmDecl>(ND);

926

OS <<

" depth "

<< TD->getDepth() <<

" index "

<< TD->getIndex();

929 case

Decl::NonTypeTemplateParm: {

930 auto

*TD = cast<NonTypeTemplateParmDecl>(ND);

931

OS <<

" depth "

<< TD->getDepth() <<

" index "

<< TD->getIndex();

941 if

(

const ValueDecl

*VD = dyn_cast<ValueDecl>(

D

))

954 if

(AccessSpelling.empty())

956

OS << AccessSpelling;

961 if

(

auto

*BD = dyn_cast<BlockDecl *>(

C

))

963 else if

(

auto

*CLE = dyn_cast<CompoundLiteralExpr *>(

C

))

968

OS << CLE->getStmtClassName();

973

llvm_unreachable(

"unexpected cleanup type"

);

982

OS <<

" implicit_instantiation"

;

985

OS <<

" explicit_specialization"

;

988

OS <<

" explicit_instantiation_declaration"

;

991

OS <<

" explicit_instantiation_definition"

;

1001

OS <<

"NestedNameSpecifier"

;

1004

case NestedNameSpecifier::Identifier:

1005

OS <<

" Identifier"

;

1006

OS <<

" '"

<< NNS->getAsIdentifier()->getName() <<

"'"

;

1008

case NestedNameSpecifier::Namespace:

1010

dumpBareDeclRef(NNS->getAsNamespace());

1012

case NestedNameSpecifier::NamespaceAlias:

1014

dumpBareDeclRef(NNS->getAsNamespaceAlias());

1016

case NestedNameSpecifier::TypeSpec:

1018

dumpType(QualType(NNS->getAsType(), 0));

1020

case NestedNameSpecifier::TypeSpecWithTemplate:

1021

OS <<

" TypeSpecWithTemplate"

;

1022

dumpType(QualType(NNS->getAsType(), 0));

1024

case NestedNameSpecifier::Global:

1027

case NestedNameSpecifier::Super:

1032

dumpNestedNameSpecifier(NNS->

getPrefix

());

1041 if

(!

Label

.empty())

1042

OS <<

Label

<<

' '

;

1050

llvm::raw_svector_ostream SS(Str);

1051

TA.

print

(PrintPolicy, SS,

true

);

1053

OS <<

" '"

<< Str <<

"'"

;

1062

llvm::raw_svector_ostream SS(CanonStr);

1063

CanonTA.print(PrintPolicy, SS,

true

);

1065 if

(CanonStr != Str)

1066

OS <<

":'"

<< CanonStr <<

"'"

;

1070const char

*TextNodeDumper::getCommandName(

unsigned

CommandID) {

1076 return

Info->

Name

;

1077 return "<not a builtin command>"

;

1081#define OPTION(NAME, TYPE, WIDTH, PREVIOUS) \ 1082 if (FPO.has##NAME##Override()) \ 1083 OS << " "

#NAME "=" << FPO.get##NAME##Override();

1084#include "clang/Basic/FPOptions.def" 1089

OS <<

" Text=\""

<<

C

->getText() <<

"\""

;

1094

OS <<

" Name=\""

<< getCommandName(

C

->getCommandID()) <<

"\""

;

1095 switch

(

C

->getRenderKind()) {

1097

OS <<

" RenderNormal"

;

1100

OS <<

" RenderBold"

;

1103

OS <<

" RenderMonospaced"

;

1106

OS <<

" RenderEmphasized"

;

1109

OS <<

" RenderAnchor"

;

1113 for

(

unsigned

i = 0, e =

C

->getNumArgs(); i != e; ++i)

1114

OS <<

" Arg["

<< i <<

"]=\""

<<

C

->getArgText(i) <<

"\""

;

1119

OS <<

" Name=\""

<<

C

->getTagName() <<

"\""

;

1120 if

(

C

->getNumAttrs() != 0) {

1122 for

(

unsigned

i = 0, e =

C

->getNumAttrs(); i != e; ++i) {

1124

OS <<

" \""

<<

Attr

.Name <<

"=\""

<<

Attr

.Value <<

"\""

;

1127 if

(

C

->isSelfClosing())

1128

OS <<

" SelfClosing"

;

1133

OS <<

" Name=\""

<<

C

->getTagName() <<

"\""

;

1138

OS <<

" Name=\""

<< getCommandName(

C

->getCommandID()) <<

"\""

;

1139 for

(

unsigned

i = 0, e =

C

->getNumArgs(); i != e; ++i)

1140

OS <<

" Arg["

<< i <<

"]=\""

<<

C

->getArgText(i) <<

"\""

;

1148 if

(

C

->isDirectionExplicit())

1149

OS <<

" explicitly"

;

1151

OS <<

" implicitly"

;

1153 if

(

C

->hasParamName()) {

1154 if

(

C

->isParamIndexValid())

1155

OS <<

" Param=\""

<<

C

->getParamName(FC) <<

"\""

;

1157

OS <<

" Param=\""

<<

C

->getParamNameAsWritten() <<

"\""

;

1160 if

(

C

->isParamIndexValid() && !

C

->isVarArgParam())

1161

OS <<

" ParamIndex="

<<

C

->getParamIndex();

1166 if

(

C

->hasParamName()) {

1167 if

(

C

->isPositionValid())

1168

OS <<

" Param=\""

<<

C

->getParamName(FC) <<

"\""

;

1170

OS <<

" Param=\""

<<

C

->getParamNameAsWritten() <<

"\""

;

1173 if

(

C

->isPositionValid()) {

1174

OS <<

" Position=<"

;

1175 for

(

unsigned

i = 0, e =

C

->getDepth(); i != e; ++i) {

1176

OS <<

C

->getIndex(i);

1186

OS <<

" Name=\""

<< getCommandName(

C

->getCommandID())

1189

<<

C

->getCloseName() <<

"\""

;

1195

OS <<

" Text=\""

<<

C

->getText() <<

"\""

;

1200

OS <<

" Text=\""

<<

C

->getText() <<

"\""

;

1234

llvm::raw_svector_ostream SS(Str);

1235

TN.

print

(SS, PrintPolicy);

1237

OS <<

"'"

<< Str <<

"'"

;

1244

llvm::raw_svector_ostream SS(CanonStr);

1245

CanonTN.print(SS, PrintPolicy);

1247 if

(CanonStr != Str)

1248

OS <<

":'"

<< CanonStr <<

"'"

;

1268

OS <<

" qualified"

;

1277

OS <<

" dependent"

;

1286

OS <<

" index "

<< STS->

getIndex

();

1287 if

(std::optional<unsigned int> PackIndex = STS->

getPackIndex

())

1288

OS <<

" pack_index "

<< *PackIndex;

1301

OS <<

" start "

<< StartPos;

1309

OS <<

" overloaded"

;

1315

OS <<

" subst_pack"

;

1318

llvm_unreachable(

"Unexpected TemplateName Kind"

);

1329

OS <<

" template expansion"

;

1346 if

(

Node

->path_empty())

1352 E

=

Node

->path_end();

1361 if

(

Base

->isVirtual())

1363

OS << RD->getName();

1371 if

(

Node

->hasInitStorage())

1373 if

(

Node

->hasVarStorage())

1375 if

(

Node

->hasElseStorage())

1377 if

(

Node

->isConstexpr())

1378

OS <<

" constexpr"

;

1379 if

(

Node

->isConsteval()) {

1381 if

(

Node

->isNegatedConsteval())

1388 if

(

Node

->hasInitStorage())

1390 if

(

Node

->hasVarStorage())

1395 if

(

Node

->hasVarStorage())

1400

OS <<

" '"

<<

Node

->getName() <<

"'"

;

1401 if

(

Node

->isSideEntry())

1402

OS <<

" side_entry"

;

1406

OS <<

" '"

<<

Node

->getLabel()->getName() <<

"'"

;

1411 if

(

Node

->caseStmtIsGNURange())

1412

OS <<

" gnu_range"

;

1416 if

(

const VarDecl

*Cand =

Node

->getNRVOCandidate()) {

1417

OS <<

" nrvo_candidate("

;

1418

dumpBareDeclRef(Cand);

1424 if

(

Node

->isImplicit())

1429 if

(

Node

->isImplicit())

1434 if

(

Node

->hasAPValueResult())

1436

[=] {

Visit

(

Node

->getAPValueResult(),

Node

->getType()); });

1440 if

(

Node

->usesADL())

1442 if

(

Node

->hasStoredFPFeatures())

1443

printFPOptions(

Node

->getFPFeatures());

1448 if

(OperatorSpelling)

1449

OS <<

" '"

<< OperatorSpelling <<

"'"

;

1458

OS <<

Node

->getCastKindName();

1462 if

(

Node

->hasStoredFPFeatures())

1463

printFPOptions(

Node

->getFPFeatures());

1468 if

(

Node

->isPartOfExplicitCast())

1469

OS <<

" part_of_explicit_cast"

;

1476 if

(

Node

->getDecl() !=

Node

->getFoundDecl()) {

1481 switch

(

Node

->isNonOdrUse()) {

1484 case NOUR_Constant

: OS <<

" non_odr_use_constant"

;

break

;

1487 if

(

Node

->isCapturedByCopyInLambdaWithExplicitObjectParameter())

1488

OS <<

" dependent_capture"

;

1489 else if

(

Node

->refersToEnclosingVariableOrCapture())

1490

OS <<

" refers_to_enclosing_variable_or_capture"

;

1492 if

(

Node

->isImmediateEscalating())

1493

OS <<

" immediate-escalating"

;

1499

dumpNestedNameSpecifier(

Node

->getQualifier());

1505 if

(!

Node

->requiresADL())

1507

OS <<

"ADL) = '"

<<

Node

->getName() <<

'\''

;

1510 E

=

Node

->decls_end();

1513 for

(; I !=

E

; ++I)

1520

OS <<

" "

<<

Node

->getDecl()->getDeclKindName() <<

"Decl"

;

1522

OS <<

"='"

<< *

Node

->getDecl() <<

"'"

;

1524 if

(

Node

->isFreeIvar())

1525

OS <<

" isFreeIvar"

;

1539

OS <<

" "

<<

Node

->getValue();

1543 bool

isSigned =

Node

->getType()->isSignedIntegerType();

1545

OS <<

" "

<<

toString

(

Node

->getValue(), 10, isSigned);

1550

OS <<

" "

<<

Node

->getValueAsString(

10);

1555

OS <<

" "

<<

Node

->getValueAsApproximateDouble();

1572 if

(

E

->isResultDependent())

1573

OS <<

" result_dependent"

;

1577

OS <<

" "

<< (

Node

->isPostfix() ?

"postfix"

:

"prefix"

) <<

" '" 1579 if

(!

Node

->canOverflow())

1580

OS <<

" cannot overflow"

;

1581 if

(

Node

->hasStoredFPFeatures())

1582

printFPOptions(

Node

->getStoredFPFeatures());

1589 if

(

Node

->isArgumentType())

1594

OS <<

" "

<< (

Node

->isArrow() ?

"->"

:

"."

) << *

Node

->getMemberDecl();

1597 switch

(

Node

->isNonOdrUse()) {

1600 case NOUR_Constant

: OS <<

" non_odr_use_constant"

;

break

;

1607

OS <<

" "

<<

Node

->getAccessor().getNameStart();

1612 if

(

Node

->hasStoredFPFeatures())

1613

printFPOptions(

Node

->getStoredFPFeatures());

1619

<<

"' ComputeLHSTy="

;

1621

OS <<

" ComputeResultTy="

;

1623 if

(

Node

->hasStoredFPFeatures())

1624

printFPOptions(

Node

->getStoredFPFeatures());

1628

OS <<

" "

<<

Node

->getLabel()->getName();

1633

OS <<

" "

<<

Node

->getCastName() <<

"<" 1634

<<

Node

->getTypeAsWritten().getAsString() <<

">" 1635

<<

" <"

<<

Node

->getCastKindName();

1641

OS <<

" "

<< (

Node

->getValue() ?

"true"

:

"false"

);

1645 if

(

Node

->isImplicit())

1647 if

(

Node

->isCapturedByCopyInLambdaWithExplicitObjectParameter())

1648

OS <<

" dependent_capture"

;

1654

OS <<

" functional cast to "

<<

Node

->getTypeAsWritten().getAsString() <<

" <" 1655

<<

Node

->getCastKindName() <<

">"

;

1656 if

(

Node

->hasStoredFPFeatures())

1657

printFPOptions(

Node

->getFPFeatures());

1662 if

(

Node

->hasStoredFPFeatures())

1663

printFPOptions(

Node

->getFPFeatures());

1669 if

(

Node

->isListInitialization())

1676 if

(

Node

->isElidable())

1678 if

(

Node

->isListInitialization())

1680 if

(

Node

->isStdInitListInitialization())

1681

OS <<

" std::initializer_list"

;

1682 if

(

Node

->requiresZeroInitialization())

1684 if

(

Node

->isImmediateEscalating())

1685

OS <<

" immediate-escalating"

;

1690

OS <<

" (CXXTemporary"

;

1696 if

(

Node

->isGlobalNew())

1698 if

(

Node

->isArray())

1700 if

(

Node

->getOperatorNew()) {

1709 if

(

Node

->isGlobalDelete())

1711 if

(

Node

->isArrayForm())

1713 if

(

Node

->getOperatorDelete()) {

1732 if

(

Node

->hasRewrittenInit())

1733

OS <<

" has rewritten init"

;

1737 if

(

Node

->hasRewrittenInit())

1738

OS <<

" has rewritten init"

;

1744

OS <<

" extended by "

;

1750 for

(

unsigned

i = 0, e =

Node

->getNumObjects(); i != e; ++i)

1761

OS <<

" "

<< (

Node

->isArrow() ?

"->"

:

"."

) <<

Node

->getMember();

1765

OS <<

" selector="

;

1767 switch

(

Node

->getReceiverKind()) {

1777

OS <<

" super (instance)"

;

1781

OS <<

" super (class)"

;

1787 if

(

auto

*BoxingMethod =

Node

->getBoxingMethod()) {

1788

OS <<

" selector="

;

1789

BoxingMethod->getSelector().print(OS);

1794 if

(!

Node

->getCatchParamDecl())

1795

OS <<

" catch all"

;

1808

OS <<

' '

<< *

Node

->getProtocol();

1812 if

(

Node

->isImplicitProperty()) {

1813

OS <<

" Kind=MethodRef Getter=\""

;

1814 if

(

Node

->getImplicitPropertyGetter())

1815 Node

->getImplicitPropertyGetter()->getSelector().

print

(OS);

1819

OS <<

"\" Setter=\""

;

1821

Setter->getSelector().print(OS);

1826

OS <<

" Kind=PropertyRef Property=\""

<< *

Node

->getExplicitProperty()

1830 if

(

Node

->isSuperReceiver())

1833

OS <<

" Messaging="

;

1834 if

(

Node

->isMessagingGetter() &&

Node

->isMessagingSetter())

1835

OS <<

"Getter&Setter"

;

1836 else if

(

Node

->isMessagingGetter())

1838 else if

(

Node

->isMessagingSetter())

1844 if

(

Node

->isArraySubscriptRefExpr())

1845

OS <<

" Kind=ArraySubscript GetterForArray=\""

;

1847

OS <<

" Kind=DictionarySubscript GetterForDictionary=\""

;

1848 if

(

Node

->getAtIndexMethodDecl())

1849 Node

->getAtIndexMethodDecl()->getSelector().

print

(OS);

1853 if

(

Node

->isArraySubscriptRefExpr())

1854

OS <<

"\" SetterForArray=\""

;

1856

OS <<

"\" SetterForDictionary=\""

;

1857 if

(

Node

->setAtIndexMethodDecl())

1858 Node

->setAtIndexMethodDecl()->getSelector().

print

(OS);

1864

OS <<

" "

<< (

Node

->getValue() ?

"__objc_yes"

:

"__objc_no"

);

1869 for

(

unsigned

I = 0,

E

=

Node

->numOfIterators(); I <

E

; ++I) {

1892 if

(!

Node

->isValueDependent())

1893

OS << (

Node

->isSatisfied() ?

" satisfied"

:

" unsatisfied"

);

1897 if

(

T

->isSpelledAsLValue())

1898

OS <<

" written as lvalue reference"

;

1902 switch

(

T

->getSizeModifier()) {

1912

OS <<

" "

<<

T

->getIndexTypeQualifiers().getAsString();

1916

OS <<

" "

<<

T

->getSize();

1940 switch

(

T

->getVectorKind()) {

1947

OS <<

" altivec pixel"

;

1950

OS <<

" altivec bool"

;

1956

OS <<

" neon poly"

;

1959

OS <<

" fixed-length sve data vector"

;

1962

OS <<

" fixed-length sve predicate vector"

;

1965

OS <<

" fixed-length rvv data vector"

;

1971

OS <<

" fixed-length rvv mask vector"

;

1974

OS <<

" "

<<

T

->getNumElements();

1979 if

(EI.getNoReturn())

1981 if

(EI.getProducesResult())

1982

OS <<

" produces_result"

;

1983 if

(EI.getHasRegParm())

1984

OS <<

" regparm "

<< EI.getRegParm();

1990 if

(EPI.HasTrailingReturn)

1991

OS <<

" trailing_return"

;

2000 switch

(EPI.RefQualifier) {

2011 switch

(EPI.ExceptionSpec.Type) {

2015

OS <<

" exceptionspec_dynamic_none"

;

2018

OS <<

" exceptionspec_dynamic"

;

2021

OS <<

" exceptionspec_ms_any"

;

2024

OS <<

" exceptionspec_nothrow"

;

2027

OS <<

" exceptionspec_basic_noexcept"

;

2030

OS <<

" exceptionspec_dependent_noexcept"

;

2033

OS <<

" exceptionspec_noexcept_false"

;

2036

OS <<

" exceptionspec_noexcept_true"

;

2039

OS <<

" exceptionspec_unevaluated"

;

2042

OS <<

" exceptionspec_uninstantiated"

;

2045

OS <<

" exceptionspec_unparsed"

;

2048 if

(!EPI.ExceptionSpec.Exceptions.empty()) {

2050

OS <<

"Exceptions:"

;

2051 for

(

unsigned

I = 0, N = EPI.ExceptionSpec.Exceptions.size(); I != N;

2055

dumpType(EPI.ExceptionSpec.Exceptions[I]);

2059 if

(EPI.ExceptionSpec.NoexceptExpr) {

2061

OS <<

"NoexceptExpr: "

;

2062 Visit

(EPI.ExceptionSpec.NoexceptExpr);

2065 dumpDeclRef

(EPI.ExceptionSpec.SourceDecl,

"ExceptionSourceDecl"

);

2066 dumpDeclRef

(EPI.ExceptionSpec.SourceTemplate,

"ExceptionSourceTemplate"

);

2078 if

(!

T

->typeMatchesDecl())

2079

OS <<

" divergent"

;

2084 if

(!

T

->typeMatchesDecl())

2085

OS <<

" divergent"

;

2089 switch

(

T

->getUTTKind()) {

2090#define TRANSFORM_TYPE_TRAIT_DEF(Enum, Trait) \ 2091 case UnaryTransformType::Enum: \ 2094#include "clang/Basic/TransformTypeTraits.def" 2103

OS <<

" depth "

<<

T

->getDepth() <<

" index "

<<

T

->getIndex();

2104 if

(

T

->isParameterPack())

2113 if

(

auto

PackIndex =

T

->getPackIndex())

2114

OS <<

" pack_index "

<< *PackIndex;

2124 if

(

T

->isDecltypeAuto())

2125

OS <<

" decltype(auto)"

;

2126 if

(!

T

->isDeduced())

2127

OS <<

" undeduced"

;

2128 if

(

T

->isConstrained())

2139 if

(

T

->isTypeAlias())

2154 if

(

auto

N =

T

->getNumExpansions())

2155

OS <<

" expansions "

<< *N;

2171

OS <<

" __module_private__"

;

2175 if

(

D

->isScoped()) {

2176 if

(

D

->isScopedUsingClassTag())

2183

OS <<

" __module_private__"

;

2189

OS <<

' '

<<

D

->getKindName();

2192

OS <<

" __module_private__"

;

2193 if

(

D

->isCompleteDefinition())

2194

OS <<

" definition"

;

2206 for

(

const auto

*Child :

D

->chain())

2218 if

(

D

->isInlineSpecified())

2220 if

(

D

->isVirtualAsWritten())

2223

OS <<

" __module_private__"

;

2225 if

(

D

->isPureVirtual())

2227 if

(

D

->isDefaulted()) {

2229 if

(

D

->isDeleted())

2232 if

(

D

->isDeletedAsWritten())

2234 if

(

D

->isTrivial())

2240 if

(

D

->isIneligibleOrNotSelected())

2241

OS << (isa<CXXDestructorDecl>(

D

) ?

" not_selected"

:

" ineligible"

);

2257 if

(

const auto

*MD = dyn_cast<CXXMethodDecl>(

D

)) {

2258 if

(MD->size_overridden_methods() != 0) {

2261

OS <<

D

<<

" "

<<

D

->getParent()->getName() <<

"::"

<<

D

->getDeclName()

2266 auto

Overrides = MD->overridden_methods();

2267

OS <<

"Overrides: [ "

;

2268

dumpOverride(*Overrides.begin());

2269 for

(

const auto

*Override : llvm::drop_begin(Overrides)) {

2271

dumpOverride(Override);

2278 if

(!

D

->isInlineSpecified() &&

D

->isInlined()) {

2279

OS <<

" implicit-inline"

;

2285 if

(!

D

->param_empty() && !

D

->param_begin())

2286

OS <<

" <<<NULL params x "

<<

D

->getNumParams() <<

">>>"

;

2288 if

(

const auto

*Instance =

D

->getInstantiatedFromMemberFunction()) {

2289

OS <<

" instantiated_from"

;

2297 switch

(

D

->getDeductionCandidateKind()) {

2302

OS <<

" aggregate "

;

2309

OS <<

" extended by "

;

2311

OS <<

" mangling "

;

2314

OS <<

D

->getManglingNumber();

2321 if

(

D

->isMutable())

2324

OS <<

" __module_private__"

;

2330 if

(

const auto

*

P

= dyn_cast<ParmVarDecl>(

D

);

2331 P

&&

P

->isExplicitObjectParameter())

2339 switch

(

D

->getTLSKind()) {

2346

OS <<

" tls_dynamic"

;

2350

OS <<

" __module_private__"

;

2351 if

(

D

->isNRVOVariable())

2353 if

(

D

->isInline())

2355 if

(

D

->isConstexpr())

2356

OS <<

" constexpr"

;

2357 if

(

D

->hasInit()) {

2358 switch

(

D

->getInitStyle()) {

2369

OS <<

" parenlistinit"

;

2373

OS <<

" destroyed"

;

2377 if

(

D

->hasInit()) {

2378 const Expr

*

E

=

D

->getInit();

2381

!

D

->getType()->isDependentType()) {

2395 if

(

D

->isNothrow())

2400

OS <<

' '

<<

D

->getImportedModule()->getFullModuleName();

2409 switch

(

D

->getCommentKind()) {

2411

llvm_unreachable(

"unexpected pragma comment kind"

);

2428

StringRef Arg =

D

->getArg();

2430

OS <<

" \""

<< Arg <<

"\""

;

2435

OS <<

" \""

<<

D

->getName() <<

"\" \""

<<

D

->getValue() <<

"\""

;

2440 if

(

D

->isStandaloneDirective())

2441

OS <<

" openmp_standalone_directive"

;

2450 if

(

const auto

*

Initializer

=

D

->getInitializer()) {

2451

OS <<

" initializer"

;

2453 switch

(

D

->getInitializerKind()) {

2455

OS <<

" omp_priv = "

;

2458

OS <<

" omp_priv ()"

;

2467 for

(

const auto

*

C

:

D

->clauselists()) {

2471

OS <<

"<<<NULL>>> OMPClause"

;

2476

StringRef ClauseName(

2477

llvm::omp::getOpenMPClauseName(

C

->getClauseKind()));

2478

OS <<

"OMP"

<< ClauseName.substr(

0,

1).upper()

2479

<< ClauseName.drop_front() <<

"Clause"

;

2494 if

(

D

->isInline())

2496 if

(

D

->isNested())

2524 if

(

const auto

*Instance =

D

->getInstantiatedFromMemberClass()) {

2525

OS <<

" instantiated_from"

;

2528 if

(

const auto

*CTSD = dyn_cast<ClassTemplateSpecializationDecl>(

D

))

2533 if

(!

D

->isCompleteDefinition())

2539

OS <<

"DefinitionData"

;

2541#define FLAG(fn, name) \ 2544 FLAG

(isParsingBaseSpecifiers, parsing_base_specifiers);

2546 FLAG

(isGenericLambda, generic);

2547 FLAG

(isLambda, lambda);

2549 FLAG

(isAnonymousStructOrUnion, is_anonymous);

2551 FLAG

(isEmpty, empty);

2552 FLAG

(isAggregate, aggregate);

2553 FLAG

(isStandardLayout, standard_layout);

2554 FLAG

(isTriviallyCopyable, trivially_copyable);

2557 FLAG

(isPolymorphic, polymorphic);

2558 FLAG

(isAbstract, abstract);

2559 FLAG

(isLiteral, literal);

2561 FLAG

(hasUserDeclaredConstructor, has_user_declared_ctor);

2562 FLAG

(hasConstexprNonCopyMoveConstructor, has_constexpr_non_copy_move_ctor);

2563 FLAG

(hasMutableFields, has_mutable_fields);

2564 FLAG

(hasVariantMembers, has_variant_members);

2565 FLAG

(allowConstDefaultInit, can_const_default_init);

2570

OS <<

"DefaultConstructor"

;

2572 FLAG

(hasDefaultConstructor, exists);

2573 FLAG

(hasTrivialDefaultConstructor, trivial);

2574 FLAG

(hasNonTrivialDefaultConstructor, non_trivial);

2575 FLAG

(hasUserProvidedDefaultConstructor, user_provided);

2576 FLAG

(hasConstexprDefaultConstructor,

constexpr

);

2577 FLAG

(needsImplicitDefaultConstructor, needs_implicit);

2578 FLAG

(defaultedDefaultConstructorIsConstexpr, defaulted_is_constexpr);

2584

OS <<

"CopyConstructor"

;

2586 FLAG

(hasSimpleCopyConstructor, simple);

2587 FLAG

(hasTrivialCopyConstructor, trivial);

2588 FLAG

(hasNonTrivialCopyConstructor, non_trivial);

2589 FLAG

(hasUserDeclaredCopyConstructor, user_declared);

2590 FLAG

(hasCopyConstructorWithConstParam, has_const_param);

2591 FLAG

(needsImplicitCopyConstructor, needs_implicit);

2592 FLAG

(needsOverloadResolutionForCopyConstructor,

2593

needs_overload_resolution);

2594 if

(!

D

->needsOverloadResolutionForCopyConstructor())

2595 FLAG

(defaultedCopyConstructorIsDeleted, defaulted_is_deleted);

2596 FLAG

(implicitCopyConstructorHasConstParam, implicit_has_const_param);

2602

OS <<

"MoveConstructor"

;

2604 FLAG

(hasMoveConstructor, exists);

2605 FLAG

(hasSimpleMoveConstructor, simple);

2606 FLAG

(hasTrivialMoveConstructor, trivial);

2607 FLAG

(hasNonTrivialMoveConstructor, non_trivial);

2608 FLAG

(hasUserDeclaredMoveConstructor, user_declared);

2609 FLAG

(needsImplicitMoveConstructor, needs_implicit);

2610 FLAG

(needsOverloadResolutionForMoveConstructor,

2611

needs_overload_resolution);

2612 if

(!

D

->needsOverloadResolutionForMoveConstructor())

2613 FLAG

(defaultedMoveConstructorIsDeleted, defaulted_is_deleted);

2619

OS <<

"CopyAssignment"

;

2621 FLAG

(hasSimpleCopyAssignment, simple);

2622 FLAG

(hasTrivialCopyAssignment, trivial);

2623 FLAG

(hasNonTrivialCopyAssignment, non_trivial);

2624 FLAG

(hasCopyAssignmentWithConstParam, has_const_param);

2625 FLAG

(hasUserDeclaredCopyAssignment, user_declared);

2626 FLAG

(needsImplicitCopyAssignment, needs_implicit);

2627 FLAG

(needsOverloadResolutionForCopyAssignment, needs_overload_resolution);

2628 FLAG

(implicitCopyAssignmentHasConstParam, implicit_has_const_param);

2634

OS <<

"MoveAssignment"

;

2636 FLAG

(hasMoveAssignment, exists);

2637 FLAG

(hasSimpleMoveAssignment, simple);

2638 FLAG

(hasTrivialMoveAssignment, trivial);

2639 FLAG

(hasNonTrivialMoveAssignment, non_trivial);

2640 FLAG

(hasUserDeclaredMoveAssignment, user_declared);

2641 FLAG

(needsImplicitMoveAssignment, needs_implicit);

2642 FLAG

(needsOverloadResolutionForMoveAssignment, needs_overload_resolution);

2648

OS <<

"Destructor"

;

2650 FLAG

(hasSimpleDestructor, simple);

2651 FLAG

(hasIrrelevantDestructor, irrelevant);

2652 FLAG

(hasTrivialDestructor, trivial);

2653 FLAG

(hasNonTrivialDestructor, non_trivial);

2654 FLAG

(hasUserDeclaredDestructor, user_declared);

2655 FLAG

(hasConstexprDestructor,

constexpr

);

2656 FLAG

(needsImplicitDestructor, needs_implicit);

2657 FLAG

(needsOverloadResolutionForDestructor, needs_overload_resolution);

2658 if

(!

D

->needsOverloadResolutionForDestructor())

2659 FLAG

(defaultedDestructorIsDeleted, defaulted_is_deleted);

2663 for

(

const auto

&I :

D

->bases()) {

2669 if

(I.isPackExpansion())

2692 if

(

const auto

*TC =

D

->getTypeConstraint()) {

2695 if

(TC->getNamedConcept() != TC->getFoundDecl()) {

2700

}

else if

(

D

->wasDeclaredWithTypename())

2704

OS <<

" depth "

<<

D

->getDepth() <<

" index "

<<

D

->getIndex();

2713

OS <<

" depth "

<<

D

->getDepth() <<

" index "

<<

D

->getIndex();

2721

OS <<

" depth "

<<

D

->getDepth() <<

" index "

<<

D

->getIndex();

2729 if

(

D

->getQualifier())

2731

OS <<

D

->getDeclName();

2743 if

(

D

->getQualifier())

2745

OS <<

D

->getDeclName();

2751 if

(

D

->getQualifier())

2753

OS <<

D

->getDeclName();

2764 if

(

D

->constructsVirtualBase())

2773

OS <<

"nominated "

;

2780

OS <<

"constructed "

;

2788 switch

(

D

->getLanguage()) {

2806 if

(

D

->isPackExpansion())

2813 if

(

D

->getSynthesize())

2814

OS <<

" synthesize"

;

2816 switch

(

D

->getAccessControl()) {

2824

OS <<

" protected"

;

2836 if

(

D

->isInstanceMethod())

2843 if

(

D

->isVariadic())

2849 switch

(

D

->getVariance()) {

2854

OS <<

" covariant"

;

2858

OS <<

" contravariant"

;

2862 if

(

D

->hasExplicitBound())

2871 for

(

const auto

*

P

:

D

->protocols())

2884 for

(

const auto

*Child :

D

->protocols())

2893 for

(

const auto

*Child :

D

->protocols())

2926

OS <<

" readwrite"

;

2932

OS <<

" nonatomic"

;

2940

OS <<

" unsafe_unretained"

;

2955

OS <<

" synthesize"

;

2963 if

(

D

->isVariadic())

2966 if

(

D

->capturesCXXThis())

2967

OS <<

" captures_this"

;

2976 if

(S->hasStoredFPFeatures())

2977

printFPOptions(S->getStoredFPFeatures());

2981 if

(

D

->isCBuffer())

2989

OS << (

E

->isInOut() ?

" inout"

:

" out"

);

2993

OS <<

" "

<< S->getDirectiveKind();

2996 if

(S->isOrphanedLoopConstruct())

2999

OS <<

" parent: "

<< S->getParentComputeConstructKind();

3045 AddChild

(

"begin"

, [=] { OS << S->getStartingElementPos(); });

3046 AddChild

(

"number of elements"

, [=] { OS << S->getDataElementCount(); });

static double GetApproxValue(const llvm::APFloat &F)

static bool isTrivial(ASTContext &Ctx, const Expr *E)

Checks if the expression is constant or does not have non-trivial function calls.

This file defines OpenMP nodes for declarative directives.

Defines the C++ template declaration subclasses.

Defines the clang::Module class, which describes a module in the source code.

static std::string toString(const clang::SanitizerSet &Sanitizers)

Produce a string containing comma-separated names of sanitizers in Sanitizers set.

static bool canPassInRegisters(Sema &S, CXXRecordDecl *D, TargetInfo::CallingConvKind CCK)

Determine whether a type is permitted to be passed or returned in registers, per C++ [class....

Defines the SourceManager interface.

Defines various enumerations that describe declaration and type specifiers.

static bool isSimpleAPValue(const APValue &Value)

True if the APValue Value can be folded onto the current line.

static void dumpBasePath(raw_ostream &OS, const CastExpr *Node)

static void dumpPreviousDeclImpl(raw_ostream &OS,...)

static void dumpPreviousDecl(raw_ostream &OS, const Decl *D)

Dump the previous declaration in the redeclaration chain for a declaration, if any.

Defines enumerations for the type traits support.

C Language Family Type Representation.

APValue - This class implements a discriminated union of [uninitialized] [APSInt] [APFloat],...

@ Indeterminate

This object has an indeterminate value (C++ [basic.indet]).

@ None

There is no such object (it's outside its lifetime).

Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...

TemplateArgument getCanonicalTemplateArgument(const TemplateArgument &Arg) const

Retrieve the "canonical" template argument.

ArrayRef< Decl * > getModuleInitializers(Module *M)

Get the initializations to perform when importing a module, if any.

TemplateName getCanonicalTemplateName(TemplateName Name, bool IgnoreDeduced=false) const

Retrieves the "canonical" template name that refers to a given template.

const clang::PrintingPolicy & getPrintingPolicy() const

ArrayRef< Module * > getModulesWithMergedDefinition(const NamedDecl *Def)

Get the additional modules in which the definition Def has been merged.

Represents an access specifier followed by colon ':'.

AddrLabelExpr - The GNU address of label extension, representing &&label.

An Embarcadero array type trait, as used in the implementation of __array_rank and __array_extent.

Represents an array type, per C99 6.7.5.2 - Array Declarators.

AtomicExpr - Variadic atomic builtins: __atomic_exchange, __atomic_fetch_*, __atomic_load,...

StringRef getOpAsString() const

Attr - This represents one attribute.

attr::Kind getKind() const

bool isImplicit() const

Returns true if the attribute has been implicitly created instead of explicitly written by the user.

SourceRange getRange() const

Represents a C++11 auto or C++14 decltype(auto) type, possibly constrained by a type-constraint.

A builtin binary operation expression such as "x + y" or "x <= y".

StringRef getOpcodeStr() const

A binding in a decomposition declaration.

A class which contains all the information about a particular captured value.

Represents a block literal declaration, which is like an unnamed FunctionDecl.

Represents the builtin template declaration which is used to implement __make_integer_seq and other b...

Represents a base class of a C++ class.

Represents binding an expression to a temporary.

A boolean literal, per ([C++ lex.bool] Boolean literals).

Represents a call to a C++ constructor.

Represents a C++ constructor within a class.

Represents a C++ base or member initializer.

Represents a C++ deduction guide declaration.

A default argument (C++ [dcl.fct.default]).

A use of a default initializer in a constructor or in aggregate initialization.

Represents a delete expression for memory deallocation and destructor calls, e.g.

Represents a C++ member access expression where the actual member referenced could not be resolved be...

Represents an explicit C++ type conversion that uses "functional" notation (C++ [expr....

Represents a static or instance method of a struct/union/class.

Abstract class common to all of the C++ "named"/"keyword" casts.

Represents a new-expression for memory allocation and constructor calls, e.g: "new CXXNewExpr(foo)".

A call to an overloaded operator written using operator syntax.

Represents a C++ struct/union/class.

A C++ static_cast expression (C++ [expr.static.cast]).

Represents the this expression in C++.

Describes an explicit type conversion that uses functional notion but could not be resolved because o...

CallExpr - Represents a function call (C99 6.5.2.2, C++ [expr.call]).

Represents the body of a CapturedStmt, and serves as its DeclContext.

CaseStmt - Represent a case statement.

CastExpr - Base class for type casts, including both implicit casts (ImplicitCastExpr) and explicit c...

const CXXBaseSpecifier *const * path_const_iterator

Declaration of a class template.

Represents a 'co_await' expression.

CompoundAssignOperator - For compound assignments (e.g.

CompoundStmt - This represents a group of statements like { stmt stmt }.

Declaration of a C++20 concept.

A reference to a concept and its template args, as it appears in the code.

SourceRange getSourceRange() const LLVM_READONLY

ConceptDecl * getNamedConcept() const

Represents the specialization of a concept - evaluates to a prvalue of type bool.

Represents the canonical version of C arrays with a specified constant size.

ConstantExpr - An expression that occurs in a constant context and optionally the result of evaluatin...

Represents a shadow constructor declaration introduced into a class by a C++11 using-declaration that...

Represents a 'co_return' statement in the C++ Coroutines TS.

A reference to a declared variable, function, enum, etc.

Decl - This represents one declaration (or definition), e.g.

Decl * getPreviousDecl()

Retrieve the previous declaration that declares the same entity as this declaration,...

bool isModulePrivate() const

Whether this declaration was marked as being private to the module in which it was defined.

FriendObjectKind getFriendObjectKind() const

Determines whether this declaration is the object of a friend declaration and, if so,...

ASTContext & getASTContext() const LLVM_READONLY

bool isImplicit() const

isImplicit - Indicates whether the declaration was implicitly generated by the implementation.

bool isParameterPack() const

Whether this declaration is a parameter pack.

@ FOK_Undeclared

A friend of a previously-undeclared entity.

@ FOK_None

Not a friend object.

@ FOK_Declared

A friend of a previously-declared entity.

Module * getOwningModule() const

Get the module that owns this declaration (for visibility purposes).

bool isFirstDecl() const

True if this is the first declaration in its redeclaration chain.

bool isFromASTFile() const

Determine whether this declaration came from an AST file (such as a precompiled header or module) rat...

bool isInvalidDecl() const

SourceLocation getLocation() const

const char * getDeclKindName() const

bool isThisDeclarationReferenced() const

Whether this declaration was referenced.

bool isUsed(bool CheckUsedAttr=true) const

Whether any (re-)declaration of the entity was used, meaning that a definition is required.

DeclContext * getDeclContext()

AccessSpecifier getAccess() const

void print(raw_ostream &Out, unsigned Indentation=0, bool PrintInstantiation=false) const

DeclContext * getLexicalDeclContext()

getLexicalDeclContext - The declaration context where this Decl was lexically declared (LexicalDC).

virtual SourceRange getSourceRange() const LLVM_READONLY

Source range that this declaration covers.

The name of a declaration.

Represents a C++17 deduced template specialization type.

TemplateName getUnderlying() const

DefaultArguments getDefaultArguments() const

A qualified reference to a name whose declaration cannot yet be resolved.

Represents an array type in C++ whose size is a value-dependent expression.

Represents an extended vector type where either the type or size is dependent.

Represents a dependent template name that cannot be resolved prior to template instantiation.

NestedNameSpecifier * getQualifier() const

Return the nested name specifier that qualifies this name.

SourceRange getSourceRange() const

For nodes which represent textual entities in the source code, return their SourceRange.

void print(llvm::raw_ostream &OS, const PrintingPolicy &PP) const

Prints the node to the given output stream.

Represents a reference to #emded data.

An instance of this object exists for each enum constant that is defined.

Represents an expression – generally a full-expression – that introduces cleanups to be run at the en...

llvm::PointerUnion< BlockDecl *, CompoundLiteralExpr * > CleanupObject

The type of objects that are kept in the cleanup.

This represents one expression.

bool isValueDependent() const

Determines whether the value of this expression depends on.

ExprValueKind getValueKind() const

getValueKind - The value kind that this expression produces.

bool containsErrors() const

Whether this expression contains subexpressions which had errors, e.g.

ExprObjectKind getObjectKind() const

getObjectKind - The object kind that this expression produces.

An expression trait intrinsic.

ExtVectorElementExpr - This represents access to specific elements of a vector, and may occur on the ...

Represents difference between two FPOptions values.

Represents a member of a struct/union/class.

FriendDecl - Represents the declaration of a friend entity, which can be a function,...

Represents a function declaration or definition.

Represents a prototype with parameter type info, e.g.

ExtProtoInfo getExtProtoInfo() const

Declaration of a template function.

FunctionType - C99 6.7.5.3 - Function Declarators.

ExtInfo getExtInfo() const

static StringRef getNameForCallConv(CallingConv CC)

Represents a C11 generic selection.

AssociationTy< true > ConstAssociation

GotoStmt - This represents a direct goto.

HLSLBufferDecl - Represent a cbuffer or tbuffer declaration.

This class represents temporary values used to represent inout and out arguments in HLSL.

IfStmt - This represents an if/then/else.

ImplicitCastExpr - Allows us to explicitly represent implicit type conversions, which have no direct ...

Describes a module import declaration, which makes the contents of the named module visible in the cu...

Represents a field injected from an anonymous union/struct into the parent scope.

Describes an C or C++ initializer list.

FieldDecl * getInitializedFieldInUnion()

If this initializes a union, specifies which field in the union to initialize.

The injected class name of a C++ class template or class template partial specialization.

Represents the declaration of a label.

LabelStmt - Represents a label, which has a substatement.

Implicit declaration of a temporary that was materialized by a MaterializeTemporaryExpr and lifetime-...

Represents a linkage specification.

Represents a prvalue temporary that is written into memory so that a reference can bind to it.

MemberExpr - [C99 6.5.2.3] Structure and Union Members.

Provides common interface for the Decls that cannot be redeclared, but can be merged if the same decl...

Describes a module or submodule.

This represents a decl that may have a name.

DeclarationName getDeclName() const

Get the actual, stored name of the declaration, which may be a special name.

Represents a C++ namespace alias.

Represent a C++ namespace.

Represents a C++ nested name specifier, such as "\::std::vector<int>::".

SpecifierKind getKind() const

Determine what kind of nested name specifier is stored.

NestedNameSpecifier * getPrefix() const

Return the prefix of this nested name specifier.

NonTypeTemplateParmDecl - Declares a non-type template parameter, e.g., "Size" in.

Pseudo declaration for capturing expressions.

This is a basic class for representing single OpenMP clause.

This represents '#pragma omp declare reduction ...' directive.

This is a basic class for representing single OpenMP executable directive.

OpenMP 5.0 [2.1.6 Iterators] Iterators are identifiers that expand to multiple values in the clause o...

This represents '#pragma omp requires...' directive.

Represents Objective-C's @catch statement.

ObjCBoolLiteralExpr - Objective-C Boolean Literal.

ObjCBoxedExpr - used for generalized expression boxing.

ObjCCategoryDecl - Represents a category declaration.

ObjCCategoryImplDecl - An object of this class encapsulates a category @implementation declaration.

ObjCCompatibleAliasDecl - Represents alias of a class.

ObjCEncodeExpr, used for @encode in Objective-C.

ObjCImplementationDecl - Represents a class definition - this is where method definitions are specifi...

Represents an ObjC class declaration.

Interfaces are the core concept in Objective-C for object oriented design.

ObjCIvarDecl - Represents an ObjC instance variable.

ObjCIvarRefExpr - A reference to an ObjC instance variable.

An expression that sends a message to the given Objective-C object or class.

@ SuperInstance

The receiver is the instance of the superclass object.

@ Instance

The receiver is an object instance.

@ SuperClass

The receiver is a superclass.

@ Class

The receiver is a class.

ObjCMethodDecl - Represents an instance or class method declaration.

Represents one property declaration in an Objective-C interface.

ObjCPropertyImplDecl - Represents implementation declaration of a property in a class or category imp...

ObjCPropertyRefExpr - A dot-syntax expression to access an ObjC property.

Represents an Objective-C protocol declaration.

ObjCProtocolExpr used for protocol expression in Objective-C.

ObjCSelectorExpr used for @selector in Objective-C.

ObjCSubscriptRefExpr - used for array and dictionary subscripting.

Represents the declaration of an Objective-C type parameter.

This expression type represents an asterisk in an OpenACC Size-Expr, used in the 'tile' and 'gang' cl...

This is the base type for all OpenACC Clauses.

This is the base class for an OpenACC statement-level construct, other construct types are expected t...

This class represents a 'loop' construct.

Represents a pack expansion of types.

Represents a #pragma detect_mismatch line.

[C99 6.4.2.2] - A predefined identifier such as func.

StringRef getIdentKindName() const

Represents an unpacked "presumed" location which can be presented to the user.

unsigned getColumn() const

Return the presumed column number of this location.

const char * getFilename() const

Return the presumed filename of this location.

unsigned getLine() const

Return the presumed line number of this location.

bool isInvalid() const

Return true if this object is invalid or uninitialized.

A (possibly-)qualified type.

std::string getAsString() const

Represents a template name as written in source code.

TemplateName getUnderlyingTemplate() const

Return the underlying template name.

NestedNameSpecifier * getQualifier() const

Return the nested name specifier that qualifies this name.

bool hasTemplateKeyword() const

Whether the template name was prefixed by the "template" keyword.

Represents a struct/union/class.

A helper class that allows the use of isa/cast/dyncast to detect TagType objects of structs/unions/cl...

RecordDecl * getDecl() const

Provides common interface for the Decls that can be redeclared.

Base for LValueReferenceType and RValueReferenceType.

C++2a [expr.prim.req]: A requires-expression provides a concise way to express requirements on templa...

ReturnStmt - This represents a return, optionally of an expression: return; return 4;.

Represents an expression that computes the length of a parameter pack.

Encodes a location in the source.

PresumedLoc getPresumedLoc(SourceLocation Loc, bool UseLineDirectives=true) const

Returns the "presumed" location of a SourceLocation specifies.

SourceLocation getSpellingLoc(SourceLocation Loc) const

Given a SourceLocation object, return the spelling location referenced by the ID.

A trivial tuple used to represent a source range.

SourceLocation getEnd() const

SourceLocation getBegin() const

RetTy Visit(PTR(Stmt) S, ParamTys... P)

Stmt - This represents one statement.

StringLiteral - This represents a string literal expression, e.g.

void outputString(raw_ostream &OS) const

A structure for storing the information associated with a substituted template template parameter.

TemplateName getReplacement() const

std::optional< unsigned > getPackIndex() const

TemplateTemplateParmDecl * getParameter() const

unsigned getIndex() const

Returns the index of the replaced parameter in the associated declaration.

Decl * getAssociatedDecl() const

A template-like entity which owns the whole pattern being substituted.

Represents the result of substituting a set of types for a template type parameter pack.

Represents the result of substituting a type for a template type parameter.

SwitchStmt - This represents a 'switch' stmt.

Represents a template argument.

TemplateName getAsTemplate() const

Retrieve the template name for a template name argument.

bool structurallyEquals(const TemplateArgument &Other) const

Determines whether two template arguments are superficially the same.

void print(const PrintingPolicy &Policy, raw_ostream &Out, bool IncludeType) const

Print this template argument to the given output stream.

ValueDecl * getAsDecl() const

Retrieve the declaration for a declaration non-type template argument.

TemplateName getAsTemplateOrTemplatePattern() const

Retrieve the template argument as a template name; if the argument is a pack expansion,...

Represents a C++ template name within the type system.

TemplateDecl * getAsTemplateDecl(bool IgnoreDeduced=false) const

Retrieve the underlying template declaration that this template name refers to, if known.

DeducedTemplateStorage * getAsDeducedTemplateName() const

Retrieve the deduced template info, if any.

DependentTemplateName * getAsDependentTemplateName() const

Retrieve the underlying dependent template name structure, if any.

QualifiedTemplateName * getAsQualifiedTemplateName() const

Retrieve the underlying qualified template name structure, if any.

void print(raw_ostream &OS, const PrintingPolicy &Policy, Qualified Qual=Qualified::AsWritten) const

Print the template name.

@ UsingTemplate

A template name that refers to a template declaration found through a specific using shadow declarati...

@ OverloadedTemplate

A set of overloaded template declarations.

@ Template

A single template declaration.

@ DependentTemplate

A dependent template name that has not been resolved to a template (or set of templates).

@ SubstTemplateTemplateParm

A template template parameter that has been substituted for some other template name.

@ SubstTemplateTemplateParmPack

A template template parameter pack that has been substituted for a template template argument pack,...

@ DeducedTemplate

A template name that refers to another TemplateName with deduced default arguments.

@ QualifiedTemplate

A qualified template name, where the qualification is kept to describe the source code as written.

@ AssumedTemplate

An unqualified-id that has been assumed to name a function template that will be found by ADL.

UsingShadowDecl * getAsUsingShadowDecl() const

Retrieve the using shadow declaration through which the underlying template declaration is introduced...

SubstTemplateTemplateParmStorage * getAsSubstTemplateTemplateParm() const

Retrieve the substituted template template parameter, if known.

Represents a type template specialization; the template must be a class template, a type alias templa...

TemplateTemplateParmDecl - Declares a template template parameter, e.g., "T" in.

Declaration of a template type parameter.

void VisitCXXFunctionalCastExpr(const CXXFunctionalCastExpr *Node)

void VisitEnumDecl(const EnumDecl *D)

void VisitExprWithCleanups(const ExprWithCleanups *Node)

void visitInlineCommandComment(const comments::InlineCommandComment *C, const comments::FullComment *)

void VisitCXXStaticCastExpr(const CXXStaticCastExpr *Node)

void visitVerbatimBlockComment(const comments::VerbatimBlockComment *C, const comments::FullComment *)

void dumpPointer(const void *Ptr)

void VisitDeclarationTemplateArgument(const TemplateArgument &TA)

void VisitOpenACCLoopConstruct(const OpenACCLoopConstruct *S)

void VisitLinkageSpecDecl(const LinkageSpecDecl *D)

void VisitVectorType(const VectorType *T)

void VisitCoawaitExpr(const CoawaitExpr *Node)

void VisitUnaryOperator(const UnaryOperator *Node)

void dumpAccessSpecifier(AccessSpecifier AS)

void VisitHLSLOutArgExpr(const HLSLOutArgExpr *E)

void VisitDeducedTemplateSpecializationType(const DeducedTemplateSpecializationType *T)

void VisitObjCSelectorExpr(const ObjCSelectorExpr *Node)

void VisitCXXOperatorCallExpr(const CXXOperatorCallExpr *Node)

void VisitCXXUnresolvedConstructExpr(const CXXUnresolvedConstructExpr *Node)

void VisitPragmaCommentDecl(const PragmaCommentDecl *D)

void VisitDependentScopeDeclRefExpr(const DependentScopeDeclRefExpr *Node)

void VisitImportDecl(const ImportDecl *D)

void VisitUsingEnumDecl(const UsingEnumDecl *D)

void VisitOMPCapturedExprDecl(const OMPCapturedExprDecl *D)

void VisitUnresolvedUsingType(const UnresolvedUsingType *T)

void VisitObjCProtocolExpr(const ObjCProtocolExpr *Node)

void VisitIntegralTemplateArgument(const TemplateArgument &TA)

void VisitObjCCategoryDecl(const ObjCCategoryDecl *D)

void VisitIndirectFieldDecl(const IndirectFieldDecl *D)

void VisitNullTemplateArgument(const TemplateArgument &TA)

void VisitPackTemplateArgument(const TemplateArgument &TA)

void VisitUsingType(const UsingType *T)

void VisitInjectedClassNameType(const InjectedClassNameType *T)

void VisitBinaryOperator(const BinaryOperator *Node)

void VisitUnresolvedLookupExpr(const UnresolvedLookupExpr *Node)

void VisitObjCInterfaceDecl(const ObjCInterfaceDecl *D)

void VisitBlockDecl(const BlockDecl *D)

void VisitCXXDeleteExpr(const CXXDeleteExpr *Node)

void VisitObjCBoxedExpr(const ObjCBoxedExpr *Node)

void VisitNullPtrTemplateArgument(const TemplateArgument &TA)

void VisitVarTemplateDecl(const VarTemplateDecl *D)

void VisitSubstTemplateTypeParmPackType(const SubstTemplateTypeParmPackType *T)

void VisitConceptSpecializationExpr(const ConceptSpecializationExpr *Node)

void VisitCXXDeductionGuideDecl(const CXXDeductionGuideDecl *D)

TextNodeDumper(raw_ostream &OS, const ASTContext &Context, bool ShowColors)

void VisitPredefinedExpr(const PredefinedExpr *Node)

void dumpType(QualType T)

void VisitObjCEncodeExpr(const ObjCEncodeExpr *Node)

void VisitHLSLBufferDecl(const HLSLBufferDecl *D)

void VisitUnresolvedUsingValueDecl(const UnresolvedUsingValueDecl *D)

void VisitNamespaceAliasDecl(const NamespaceAliasDecl *D)

void VisitObjCMessageExpr(const ObjCMessageExpr *Node)

void dumpSourceRange(SourceRange R)

void VisitMemberExpr(const MemberExpr *Node)

void VisitOpenACCDataConstruct(const OpenACCDataConstruct *S)

void dumpBareTemplateName(TemplateName TN)

void VisitOpenACCConstructStmt(const OpenACCConstructStmt *S)

void VisitCompoundStmt(const CompoundStmt *Node)

void VisitConstantExpr(const ConstantExpr *Node)

void VisitObjCIvarRefExpr(const ObjCIvarRefExpr *Node)

void VisitOpenACCAsteriskSizeExpr(const OpenACCAsteriskSizeExpr *S)

void VisitMaterializeTemporaryExpr(const MaterializeTemporaryExpr *Node)

void VisitConstructorUsingShadowDecl(const ConstructorUsingShadowDecl *D)

void VisitWhileStmt(const WhileStmt *Node)

void VisitCharacterLiteral(const CharacterLiteral *Node)

void VisitAccessSpecDecl(const AccessSpecDecl *D)

void VisitFunctionType(const FunctionType *T)

void VisitObjCImplementationDecl(const ObjCImplementationDecl *D)

void VisitReturnStmt(const ReturnStmt *Node)

void VisitTypeLoc(TypeLoc TL)

void VisitAutoType(const AutoType *T)

void VisitObjCInterfaceType(const ObjCInterfaceType *T)

void visitVerbatimLineComment(const comments::VerbatimLineComment *C, const comments::FullComment *)

void VisitTypedefDecl(const TypedefDecl *D)

void VisitUnaryExprOrTypeTraitExpr(const UnaryExprOrTypeTraitExpr *Node)

void visitParamCommandComment(const comments::ParamCommandComment *C, const comments::FullComment *FC)

void VisitIntegerLiteral(const IntegerLiteral *Node)

void VisitObjCProtocolDecl(const ObjCProtocolDecl *D)

void VisitGotoStmt(const GotoStmt *Node)

void VisitDependentSizedExtVectorType(const DependentSizedExtVectorType *T)

void VisitFriendDecl(const FriendDecl *D)

void VisitSwitchStmt(const SwitchStmt *Node)

void VisitCXXBindTemporaryExpr(const CXXBindTemporaryExpr *Node)

void VisitEmbedExpr(const EmbedExpr *S)

void VisitFunctionTemplateDecl(const FunctionTemplateDecl *D)

void VisitTemplateTemplateParmDecl(const TemplateTemplateParmDecl *D)

void VisitUsingDecl(const UsingDecl *D)

void VisitConstantArrayType(const ConstantArrayType *T)

void VisitTypeTemplateArgument(const TemplateArgument &TA)

void VisitObjCPropertyDecl(const ObjCPropertyDecl *D)

void VisitObjCCategoryImplDecl(const ObjCCategoryImplDecl *D)

void VisitObjCSubscriptRefExpr(const ObjCSubscriptRefExpr *Node)

void VisitArrayType(const ArrayType *T)

void visitHTMLEndTagComment(const comments::HTMLEndTagComment *C, const comments::FullComment *)

void VisitObjCAtCatchStmt(const ObjCAtCatchStmt *Node)

void visitTextComment(const comments::TextComment *C, const comments::FullComment *)

void VisitLifetimeExtendedTemporaryDecl(const LifetimeExtendedTemporaryDecl *D)

void VisitCXXRecordDecl(const CXXRecordDecl *D)

void VisitTemplateTemplateArgument(const TemplateArgument &TA)

void dumpCleanupObject(const ExprWithCleanups::CleanupObject &C)

void VisitOpenACCExitDataConstruct(const OpenACCExitDataConstruct *S)

void VisitCaseStmt(const CaseStmt *Node)

void VisitRValueReferenceType(const ReferenceType *T)

void VisitPackExpansionType(const PackExpansionType *T)

void VisitConceptDecl(const ConceptDecl *D)

void VisitOpenACCEnterDataConstruct(const OpenACCEnterDataConstruct *S)

void VisitCallExpr(const CallExpr *Node)

void VisitCapturedDecl(const CapturedDecl *D)

void VisitOpenACCWaitConstruct(const OpenACCWaitConstruct *S)

void VisitBuiltinTemplateDecl(const BuiltinTemplateDecl *D)

void VisitObjCPropertyRefExpr(const ObjCPropertyRefExpr *Node)

void VisitOMPDeclareReductionDecl(const OMPDeclareReductionDecl *D)

void VisitCoreturnStmt(const CoreturnStmt *Node)

void VisitSizeOfPackExpr(const SizeOfPackExpr *Node)

void VisitDeclRefExpr(const DeclRefExpr *Node)

void VisitLabelStmt(const LabelStmt *Node)

void VisitOpenACCUpdateConstruct(const OpenACCUpdateConstruct *S)

void Visit(const comments::Comment *C, const comments::FullComment *FC)

void dumpNestedNameSpecifier(const NestedNameSpecifier *NNS)

void VisitLabelDecl(const LabelDecl *D)

void VisitUnaryTransformType(const UnaryTransformType *T)

void VisitStringLiteral(const StringLiteral *Str)

void VisitOMPRequiresDecl(const OMPRequiresDecl *D)

void dumpBareType(QualType T, bool Desugar=true)

void VisitTemplateSpecializationType(const TemplateSpecializationType *T)

void VisitOpenACCInitConstruct(const OpenACCInitConstruct *S)

void VisitTemplateTypeParmDecl(const TemplateTypeParmDecl *D)

void VisitCompoundAssignOperator(const CompoundAssignOperator *Node)

void VisitCXXThisExpr(const CXXThisExpr *Node)

void dumpName(const NamedDecl *ND)

void dumpTemplateName(TemplateName TN, StringRef Label={})

void VisitArrayTypeTraitExpr(const ArrayTypeTraitExpr *Node)

void VisitObjCIvarDecl(const ObjCIvarDecl *D)

void VisitFieldDecl(const FieldDecl *D)

void dumpDeclRef(const Decl *D, StringRef Label={})

void VisitRecordDecl(const RecordDecl *D)

void VisitCXXNewExpr(const CXXNewExpr *Node)

void VisitObjCBoolLiteralExpr(const ObjCBoolLiteralExpr *Node)

void VisitCastExpr(const CastExpr *Node)

void VisitObjCTypeParamDecl(const ObjCTypeParamDecl *D)

void VisitSubstTemplateTypeParmType(const SubstTemplateTypeParmType *T)

void VisitExpressionTraitExpr(const ExpressionTraitExpr *Node)

void VisitAddrLabelExpr(const AddrLabelExpr *Node)

void VisitUnresolvedUsingTypenameDecl(const UnresolvedUsingTypenameDecl *D)

void VisitCXXDependentScopeMemberExpr(const CXXDependentScopeMemberExpr *Node)

void visitBlockCommandComment(const comments::BlockCommandComment *C, const comments::FullComment *)

void VisitExpressionTemplateArgument(const TemplateArgument &TA)

void VisitTypeAliasDecl(const TypeAliasDecl *D)

void VisitVarDecl(const VarDecl *D)

void VisitFixedPointLiteral(const FixedPointLiteral *Node)

void VisitOMPIteratorExpr(const OMPIteratorExpr *Node)

void VisitUsingDirectiveDecl(const UsingDirectiveDecl *D)

void VisitObjCMethodDecl(const ObjCMethodDecl *D)

void VisitObjCPropertyImplDecl(const ObjCPropertyImplDecl *D)

void VisitUsingShadowDecl(const UsingShadowDecl *D)

void VisitNamespaceDecl(const NamespaceDecl *D)

void VisitTypeAliasTemplateDecl(const TypeAliasTemplateDecl *D)

void VisitOpenACCHostDataConstruct(const OpenACCHostDataConstruct *S)

void VisitCXXBoolLiteralExpr(const CXXBoolLiteralExpr *Node)

void VisitIfStmt(const IfStmt *Node)

void VisitCXXConstructExpr(const CXXConstructExpr *Node)

void VisitFunctionProtoType(const FunctionProtoType *T)

void dumpTemplateArgument(const TemplateArgument &TA)

void dumpLocation(SourceLocation Loc)

void VisitDependentSizedArrayType(const DependentSizedArrayType *T)

void VisitOpenACCCombinedConstruct(const OpenACCCombinedConstruct *S)

void VisitOMPExecutableDirective(const OMPExecutableDirective *D)

void VisitImplicitCastExpr(const ImplicitCastExpr *Node)

void VisitCXXDefaultArgExpr(const CXXDefaultArgExpr *Node)

void VisitCXXNamedCastExpr(const CXXNamedCastExpr *Node)

void VisitTagType(const TagType *T)

void VisitTemplateExpansionTemplateArgument(const TemplateArgument &TA)

void VisitSYCLUniqueStableNameExpr(const SYCLUniqueStableNameExpr *Node)

void VisitNonTypeTemplateParmDecl(const NonTypeTemplateParmDecl *D)

void VisitOpenACCSetConstruct(const OpenACCSetConstruct *S)

void VisitFunctionDecl(const FunctionDecl *D)

void visitTParamCommandComment(const comments::TParamCommandComment *C, const comments::FullComment *FC)

void VisitTypeTraitExpr(const TypeTraitExpr *Node)

void dumpBareDeclRef(const Decl *D)

void VisitExtVectorElementExpr(const ExtVectorElementExpr *Node)

void visitVerbatimBlockLineComment(const comments::VerbatimBlockLineComment *C, const comments::FullComment *)

void VisitOpenACCShutdownConstruct(const OpenACCShutdownConstruct *S)

void VisitFloatingLiteral(const FloatingLiteral *Node)

void VisitInitListExpr(const InitListExpr *ILE)

void VisitRequiresExpr(const RequiresExpr *Node)

void VisitVariableArrayType(const VariableArrayType *T)

void VisitGenericSelectionExpr(const GenericSelectionExpr *E)

void VisitTemplateTypeParmType(const TemplateTypeParmType *T)

void VisitCXXDefaultInitExpr(const CXXDefaultInitExpr *Node)

void visitHTMLStartTagComment(const comments::HTMLStartTagComment *C, const comments::FullComment *)

void VisitEnumConstantDecl(const EnumConstantDecl *D)

void VisitPragmaDetectMismatchDecl(const PragmaDetectMismatchDecl *D)

void dumpTemplateSpecializationKind(TemplateSpecializationKind TSK)

void VisitAtomicExpr(const AtomicExpr *AE)

void VisitObjCCompatibleAliasDecl(const ObjCCompatibleAliasDecl *D)

void VisitClassTemplateDecl(const ClassTemplateDecl *D)

void VisitBindingDecl(const BindingDecl *D)

void VisitTypedefType(const TypedefType *T)

void AddChild(Fn DoAddChild)

Add a child of the current node. Calls DoAddChild without arguments.

Represents the declaration of a typedef-name via a C++11 alias-declaration.

Declaration of an alias template.

RetTy Visit(TypeLoc TyLoc)

Base wrapper for a particular "section" of type source info.

QualType getType() const

Get the type for which this source info wrapper provides information.

SourceRange getSourceRange() const LLVM_READONLY

Get the full source range.

TypeLocClass getTypeLocClass() const

const Type * getTypePtr() const

A container of type source information.

QualType getType() const

Return the type wrapped by this type source info.

A type trait used in the implementation of various C++11 and Library TR1 trait templates.

RetTy Visit(const Type *T)

Performs the operation associated with this visitor object.

The base class of the type hierarchy.

QualType getLocallyUnqualifiedSingleStepDesugaredType() const

Pull a single level of sugar off of this locally-unqualified type.

bool isInstantiationDependentType() const

Determine whether this type is an instantiation-dependent type, meaning that the type involves a temp...

bool isDependentType() const

Whether this type is a dependent type, meaning that its definition somehow depends on a template para...

bool containsUnexpandedParameterPack() const

Whether this type is or contains an unexpanded parameter pack, used to support C++0x variadic templat...

const char * getTypeClassName() const

bool containsErrors() const

Whether this type is an error type.

bool isVariablyModifiedType() const

Whether this type is a variably-modified type (C99 6.7.5).

bool isFromAST() const

Whether this type comes from an AST file.

Represents the declaration of a typedef-name via the 'typedef' type specifier.

UnaryExprOrTypeTraitExpr - expression with either a type or (unevaluated) expression operand.

UnaryOperator - This represents the unary-expression's (except sizeof and alignof),...

static StringRef getOpcodeStr(Opcode Op)

getOpcodeStr - Turn an Opcode enum value into the punctuation char it corresponds to,...

A unary type transform, which is a type constructed from another.

A reference to a name which we were able to look up during parsing but could not resolve to a specifi...

The iterator over UnresolvedSets.

Represents the dependent type named by a dependently-scoped typename using declaration,...

Represents a dependent using declaration which was marked with typename.

Represents a dependent using declaration which was not marked with typename.

Represents a C++ using-declaration.

Represents C++ using-directive.

Represents a C++ using-enum-declaration.

Represents a shadow declaration implicitly introduced into a scope by a (resolved) using-declaration ...

NamedDecl * getTargetDecl() const

Gets the underlying declaration which has been brought into the local scope.

Represent the declaration of a variable (in which case it is an lvalue) a function (in which case it ...

Represents a variable declaration or definition.

static const char * getStorageClassSpecifierString(StorageClass SC)

Return the string used to specify the storage class SC.

@ ListInit

Direct list-initialization (C++11)

@ CInit

C-style initialization with assignment.

@ ParenListInit

Parenthesized list-initialization (C++20)

@ CallInit

Call-style initialization (C++98)

@ TLS_Static

TLS with a known-constant initializer.

@ TLS_Dynamic

TLS with a dynamic initializer.

@ TLS_None

Not a TLS variable.

Declaration of a variable template.

Represents a C array with a specified size that is not an integer-constant-expression.

Represents a GCC generic vector type.

WhileStmt - This represents a 'while' stmt.

A static requirement that can be used in a requires-expression to check properties of types and expre...

RequirementKind getKind() const

bool containsUnexpandedParameterPack() const

RetTy Visit(REF(TemplateArgument) TA, ParamTys... P)

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

static const TerminalColor NullColor

static const TerminalColor ErrorsColor

static const TerminalColor CommentColor

static const TerminalColor DeclNameColor

if(T->getSizeExpr()) TRY_TO(TraverseStmt(const_cast< Expr * >(T -> getSizeExpr())))

llvm::StringRef getAccessSpelling(AccessSpecifier AS)

static const TerminalColor AddressColor

@ RQ_None

No ref-qualifier was provided.

@ RQ_LValue

An lvalue ref-qualifier was provided (&).

@ RQ_RValue

An rvalue ref-qualifier was provided (&&).

@ OK_VectorComponent

A vector component is an element or range of elements on a vector.

@ OK_ObjCProperty

An Objective-C property is a logical field of an Objective-C object which is read and written via Obj...

@ OK_ObjCSubscript

An Objective-C array/dictionary subscripting which reads an object or writes at the subscripted array...

@ OK_Ordinary

An ordinary object is located at an address in memory.

@ OK_BitField

A bitfield object is a bitfield on a C or C++ record.

@ OK_MatrixComponent

A matrix component is a single element of a matrix.

static const TerminalColor StmtColor

static const TerminalColor UndeserializedColor

@ Auto

'auto' clause, allowed on 'loop' directives.

@ Gang

'gang' clause, allowed on 'loop' and Combined constructs.

@ Wait

'wait' clause, allowed on Compute, Data, 'update', and Combined constructs.

@ DevicePtr

'deviceptr' clause, allowed on Compute and Combined Constructs, plus 'data' and 'declare'.

@ PCopyOut

'copyout' clause alias 'pcopyout'. Preserved for diagnostic purposes.

@ VectorLength

'vector_length' clause, allowed on 'parallel', 'kernels', 'parallel loop', and 'kernels loop' constru...

@ Async

'async' clause, allowed on Compute, Data, 'update', 'wait', and Combined constructs.

@ PresentOrCreate

'create' clause alias 'present_or_create'.

@ Collapse

'collapse' clause, allowed on 'loop' and Combined constructs.

@ PresentOrCopy

'copy' clause alias 'present_or_copy'. Preserved for diagnostic purposes.

@ DeviceNum

'device_num' clause, allowed on 'init', 'shutdown', and 'set' constructs.

@ Private

'private' clause, allowed on 'parallel', 'serial', 'loop', 'parallel loop', and 'serial loop' constru...

@ Vector

'vector' clause, allowed on 'loop', Combined, and 'routine' directives.

@ Copy

'copy' clause, allowed on Compute and Combined Constructs, plus 'data' and 'declare'.

@ Worker

'worker' clause, allowed on 'loop', Combined, and 'routine' directives.

@ Create

'create' clause, allowed on Compute and Combined constructs, plus 'data', 'enter data',...

@ DeviceType

'device_type' clause, allowed on Compute, 'data', 'init', 'shutdown', 'set', update',...

@ DefaultAsync

'default_async' clause, allowed on 'set' construct.

@ Attach

'attach' clause, allowed on Compute and Combined constructs, plus 'data' and 'enter data'.

@ NumGangs

'num_gangs' clause, allowed on 'parallel', 'kernels', parallel loop', and 'kernels loop' constructs.

@ If

'if' clause, allowed on all the Compute Constructs, Data Constructs, Executable Constructs,...

@ Default

'default' clause, allowed on parallel, serial, kernel (and compound) constructs.

@ UseDevice

'use_device' clause, allowed on 'host_data' construct.

@ NoCreate

'no_create' clause, allowed on allowed on Compute and Combined constructs, plus 'data'.

@ PresentOrCopyOut

'copyout' clause alias 'present_or_copyout'.

@ Reduction

'reduction' clause, allowed on Parallel, Serial, Loop, and the combined constructs.

@ Self

'self' clause, allowed on Compute and Combined Constructs, plus 'update'.

@ CopyOut

'copyout' clause, allowed on Compute and Combined constructs, plus 'data', 'exit data',...

@ Seq

'seq' clause, allowed on 'loop' and 'routine' directives.

@ FirstPrivate

'firstprivate' clause, allowed on 'parallel', 'serial', 'parallel loop', and 'serial loop' constructs...

@ Host

'host' clause, allowed on 'update' construct.

@ PCopy

'copy' clause alias 'pcopy'. Preserved for diagnostic purposes.

@ Tile

'tile' clause, allowed on 'loop' and Combined constructs.

@ PCopyIn

'copyin' clause alias 'pcopyin'. Preserved for diagnostic purposes.

@ PCreate

'create' clause alias 'pcreate'. Preserved for diagnostic purposes.

@ Present

'present' clause, allowed on Compute and Combined constructs, plus 'data' and 'declare'.

@ DType

'dtype' clause, an alias for 'device_type', stored separately for diagnostic purposes.

@ CopyIn

'copyin' clause, allowed on Compute and Combined constructs, plus 'data', 'enter data',...

@ Device

'device' clause, allowed on the 'update' construct.

@ Independent

'independent' clause, allowed on 'loop' directives.

@ NumWorkers

'num_workers' clause, allowed on 'parallel', 'kernels', parallel loop', and 'kernels loop' constructs...

@ IfPresent

'if_present' clause, allowed on 'host_data' and 'update' directives.

@ Detach

'detach' clause, allowed on the 'exit data' construct.

@ Delete

'delete' clause, allowed on the 'exit data' construct.

@ PresentOrCopyIn

'copyin' clause alias 'present_or_copyin'.

@ Finalize

'finalize' clause, allowed on 'exit data' directive.

StorageClass

Storage classes.

static const TerminalColor DeclKindNameColor

static const TerminalColor LocationColor

static const TerminalColor ValueKindColor

std::pair< IdentifierInfo *, SourceLocation > DeviceTypeArgument

static const TerminalColor CastColor

@ VK_PRValue

A pr-value expression (in the C++11 taxonomy) produces a temporary value.

@ VK_XValue

An x-value expression is a reference to an object with independent storage but which can be "moved",...

@ VK_LValue

An l-value expression is a reference to an object with independent storage.

const char * getTraitSpelling(ExpressionTrait T) LLVM_READONLY

Return the spelling of the type trait TT. Never null.

const FunctionProtoType * T

static const TerminalColor AttrColor

static const TerminalColor TypeColor

TemplateSpecializationKind

Describes the kind of template specialization that a particular template specialization declaration r...

@ TSK_ExplicitInstantiationDefinition

This template specialization was instantiated from a template due to an explicit instantiation defini...

@ TSK_ExplicitInstantiationDeclaration

This template specialization was instantiated from a template due to an explicit instantiation declar...

@ TSK_ExplicitSpecialization

This template specialization was declared or defined by an explicit specialization (C++ [temp....

@ TSK_ImplicitInstantiation

This template specialization was implicitly instantiated from a template.

@ TSK_Undeclared

This template specialization was formed from a template-id but has not yet been declared,...

@ Invariant

The parameter is invariant: must match exactly.

@ Contravariant

The parameter is contravariant, e.g., X<T> is a subtype of X when the type parameter is covariant and...

@ Covariant

The parameter is covariant, e.g., X<T> is a subtype of X when the type parameter is covariant and T i...

const char * getOperatorSpelling(OverloadedOperatorKind Operator)

Retrieve the spelling of the given overloaded operator, without the preceding "operator" keyword.

@ AltiVecBool

is AltiVec 'vector bool ...'

@ SveFixedLengthData

is AArch64 SVE fixed-length data vector

@ AltiVecVector

is AltiVec vector

@ AltiVecPixel

is AltiVec 'vector Pixel'

@ Neon

is ARM Neon vector

@ Generic

not a target-specific vector type

@ RVVFixedLengthData

is RISC-V RVV fixed-length data vector

@ RVVFixedLengthMask

is RISC-V RVV fixed-length mask vector

@ NeonPoly

is ARM Neon polynomial vector

@ SveFixedLengthPredicate

is AArch64 SVE fixed-length predicate vector

static const TerminalColor ValueColor

@ EST_DependentNoexcept

noexcept(expression), value-dependent

@ EST_DynamicNone

throw()

@ EST_Uninstantiated

not instantiated yet

@ EST_Unparsed

not parsed yet

@ EST_NoThrow

Microsoft __declspec(nothrow) extension.

@ EST_None

no exception specification

@ EST_MSAny

Microsoft throw(...) extension.

@ EST_BasicNoexcept

noexcept

@ EST_NoexceptFalse

noexcept(expression), evals to 'false'

@ EST_Unevaluated

not evaluated yet, for special member function

@ EST_NoexceptTrue

noexcept(expression), evals to 'true'

@ EST_Dynamic

throw(T1, T2)

static const TerminalColor ObjectKindColor

AccessSpecifier

A C++ access specifier (public, private, protected), plus the special value "none" which means differ...

@ NOUR_Discarded

This name appears as a potential result of a discarded value expression.

@ NOUR_Unevaluated

This name appears in an unevaluated operand.

@ NOUR_None

This is an odr-use.

@ NOUR_Constant

This name appears as a potential result of an lvalue-to-rvalue conversion that is a constant expressi...

FunctionDecl * SourceDecl

The function whose exception specification this is, for EST_Unevaluated and EST_Uninstantiated.

FunctionDecl * SourceTemplate

The function template whose exception specification this is instantiated from, for EST_Uninstantiated...

ExceptionSpecificationType Type

The kind of exception specification this is.

Extra information about a function prototype.

ExceptionSpecInfo ExceptionSpec

Iterator range representation begin:end[:step].

A std::pair-like structure for storing a qualified type split into its local qualifiers and its local...


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4