22 #include "llvm/Bitcode/BitstreamWriter.h"
23 using namespace clang;
40 : Writer(Writer), Record(Writer, Record),
47 "unhandled sub-statement writing AST file");
48 return Record.
EmitStmt(Code, AbbrevToUse);
55 #define STMT(Type, Base) \
56 void Visit##Type(Type *);
57 #include "clang/AST/StmtNodes.inc"
73 void ASTStmtWriter::VisitNullStmt(
NullStmt *
S) {
76 Record.
push_back(S->HasLeadingEmptyMacro);
83 for (
auto *CS : S->
body())
90 void ASTStmtWriter::VisitSwitchCase(
SwitchCase *S) {
97 void ASTStmtWriter::VisitCaseStmt(
CaseStmt *S) {
106 void ASTStmtWriter::VisitDefaultStmt(
DefaultStmt *S) {
112 void ASTStmtWriter::VisitLabelStmt(
LabelStmt *S) {
129 void ASTStmtWriter::VisitIfStmt(
IfStmt *S) {
142 void ASTStmtWriter::VisitSwitchStmt(
SwitchStmt *S) {
156 void ASTStmtWriter::VisitWhileStmt(
WhileStmt *S) {
165 void ASTStmtWriter::VisitDoStmt(
DoStmt *S) {
175 void ASTStmtWriter::VisitForStmt(
ForStmt *S) {
188 void ASTStmtWriter::VisitGotoStmt(
GotoStmt *S) {
204 void ASTStmtWriter::VisitContinueStmt(
ContinueStmt *S) {
210 void ASTStmtWriter::VisitBreakStmt(
BreakStmt *S) {
216 void ASTStmtWriter::VisitReturnStmt(
ReturnStmt *S) {
224 void ASTStmtWriter::VisitDeclStmt(
DeclStmt *S) {
234 void ASTStmtWriter::VisitAsmStmt(
AsmStmt *S) {
244 void ASTStmtWriter::VisitGCCAsmStmt(
GCCAsmStmt *S) {
270 void ASTStmtWriter::VisitMSAsmStmt(
MSAsmStmt *S) {
311 void ASTStmtWriter::VisitCoreturnStmt(
CoreturnStmt *S) {
314 Record.
AddStmt(S->getOperand());
315 Record.
AddStmt(S->getPromiseCall());
328 void ASTStmtWriter::VisitCoawaitExpr(
CoawaitExpr *E) {
329 VisitCoroutineSuspendExpr(E);
334 void ASTStmtWriter::VisitCoyieldExpr(
CoyieldExpr *E) {
335 VisitCoroutineSuspendExpr(E);
347 void ASTStmtWriter::VisitCapturedStmt(
CapturedStmt *S) {
367 if (
I.capturesThis() ||
I.capturesVariableArrayType())
378 void ASTStmtWriter::VisitExpr(
Expr *E) {
397 void ASTStmtWriter::VisitDeclRefExpr(
DeclRefExpr *E) {
440 if (E->
getValue().getBitWidth() == 32) {
489 void ASTStmtWriter::VisitParenExpr(
ParenExpr *E) {
500 for (
unsigned i=0; i != E->NumExprs; ++i)
515 void ASTStmtWriter::VisitOffsetOfExpr(
OffsetOfExpr *E) {
582 void ASTStmtWriter::VisitCallExpr(
CallExpr *E) {
588 Arg != ArgEnd; ++Arg)
593 void ASTStmtWriter::VisitMemberExpr(
MemberExpr *E) {
600 Record.
push_back(E->HasTemplateKWAndArgsInfo);
601 if (E->HasTemplateKWAndArgsInfo) {
607 for (
unsigned i=0; i != NumTemplateArgs; ++i)
630 void ASTStmtWriter::VisitObjCIsaExpr(
ObjCIsaExpr *E) {
648 VisitExplicitCastExpr(E);
655 void ASTStmtWriter::VisitCastExpr(
CastExpr *E) {
677 VisitBinaryOperator(E);
721 VisitExplicitCastExpr(E);
744 void ASTStmtWriter::VisitInitListExpr(
InitListExpr *E) {
751 bool isArrayFiller = E->ArrayFillerOrUnionFieldInit.is<
Expr*>();
780 if (D.isFieldDesignator()) {
790 }
else if (D.isArrayDesignator()) {
796 assert(D.isArrayRangeDesignator() &&
"Unknown designator");
814 void ASTStmtWriter::VisitNoInitExpr(
NoInitExpr *E) {
821 Record.
AddStmt(E->SubExprs[0]);
822 Record.
AddStmt(E->SubExprs[1]);
836 void ASTStmtWriter::VisitVAArgExpr(
VAArgExpr *E) {
854 void ASTStmtWriter::VisitStmtExpr(
StmtExpr *E) {
862 void ASTStmtWriter::VisitChooseExpr(
ChooseExpr *E) {
873 void ASTStmtWriter::VisitGNUNullExpr(
GNUNullExpr *E) {
898 void ASTStmtWriter::VisitBlockExpr(
BlockExpr *E) {
939 void ASTStmtWriter::VisitAtomicExpr(
AtomicExpr *E) {
986 if (E->HasPackExpansions) {
988 unsigned NumExpansions = 0;
1038 Record.
push_back(E->SetterAndMethodRefFlags.getInt());
1076 Record.
push_back(E->getNumStoredSelLocs());
1109 Arg != ArgEnd; ++Arg)
1113 for (
unsigned i = 0, e = E->getNumStoredSelLocs(); i != e; ++i)
1192 void ASTStmtWriter::VisitCXXCatchStmt(
CXXCatchStmt *S) {
1200 void ASTStmtWriter::VisitCXXTryStmt(
CXXTryStmt *S) {
1276 VisitCXXConstructExpr(E);
1281 void ASTStmtWriter::VisitLambdaExpr(
LambdaExpr *E) {
1288 Record.
push_back(E->ExplicitResultType);
1308 VisitExplicitCastExpr(E);
1314 VisitCXXNamedCastExpr(E);
1319 VisitCXXNamedCastExpr(E);
1324 VisitCXXNamedCastExpr(E);
1329 VisitCXXNamedCastExpr(E);
1334 VisitExplicitCastExpr(E);
1371 void ASTStmtWriter::VisitCXXThisExpr(
CXXThisExpr *E) {
1378 void ASTStmtWriter::VisitCXXThrowExpr(
CXXThrowExpr *E) {
1414 void ASTStmtWriter::VisitCXXNewExpr(
CXXNewExpr *E) {
1421 Record.
push_back(E->StoredInitializationStyle);
1487 Record.
push_back(E->HasTemplateKWAndArgsInfo);
1488 if (E->HasTemplateKWAndArgsInfo) {
1516 Record.
push_back(E->HasTemplateKWAndArgsInfo);
1517 if (E->HasTemplateKWAndArgsInfo) {
1543 void ASTStmtWriter::VisitOverloadExpr(
OverloadExpr *E) {
1569 VisitOverloadExpr(E);
1579 VisitOverloadExpr(E);
1649 void ASTStmtWriter::VisitSubstNonTypeTemplateParmExpr(
1658 void ASTStmtWriter::VisitSubstNonTypeTemplateParmPackExpr(
1686 void ASTStmtWriter::VisitCXXFoldExpr(
CXXFoldExpr *E) {
1691 Record.
AddStmt(E->SubExprs[0]);
1692 Record.
AddStmt(E->SubExprs[1]);
1704 void ASTStmtWriter::VisitTypoExpr(
TypoExpr *E) {
1707 llvm_unreachable(
"Cannot write TypoExpr nodes");
1723 void ASTStmtWriter::VisitAsTypeExpr(
AsTypeExpr *E) {
1780 void ASTStmtWriter::VisitSEHTryStmt(
SEHTryStmt *S) {
1789 void ASTStmtWriter::VisitSEHLeaveStmt(
SEHLeaveStmt *S) {
1804 #define OPENMP_CLAUSE(Name, Class) \
1805 void Visit##Class(Class *S);
1806 #include "clang/Basic/OpenMPKinds.def"
1830 void OMPClauseWriter::VisitOMPIfClause(
OMPIfClause *C) {
1901 void OMPClauseWriter::VisitOMPReadClause(
OMPReadClause *) {}
1913 void OMPClauseWriter::VisitOMPSIMDClause(
OMPSIMDClause *) {}
1938 for (
auto *VE : C->
inits()) {
2014 for (
auto *VE : C->privates()) {
2017 for (
auto *VE : C->inits()) {
2020 for (
auto *VE : C->updates()) {
2023 for (
auto *VE : C->finals()) {
2027 Record.
AddStmt(C->getCalcStep());
2034 for (
auto *VE : C->varlists())
2042 for (
auto *VE : C->varlists())
2055 for (
auto *VE : C->varlists())
2068 for (
auto *VE : C->varlists())
2078 for (
auto *VE : C->varlists())
2088 void OMPClauseWriter::VisitOMPMapClause(
OMPMapClause *C) {
2098 for (
auto *E : C->varlists())
2107 Record.
AddStmt(M.getAssociatedExpression());
2108 Record.
AddDeclRef(M.getAssociatedDeclaration());
2139 void OMPClauseWriter::VisitOMPHintClause(
OMPHintClause *C) {
2161 void OMPClauseWriter::VisitOMPToClause(
OMPToClause *C) {
2167 for (
auto *E : C->varlists())
2176 Record.
AddStmt(M.getAssociatedExpression());
2177 Record.
AddDeclRef(M.getAssociatedDeclaration());
2181 void OMPClauseWriter::VisitOMPFromClause(
OMPFromClause *C) {
2187 for (
auto *E : C->varlists())
2196 Record.
AddStmt(M.getAssociatedExpression());
2197 Record.
AddDeclRef(M.getAssociatedDeclaration());
2207 for (
auto *E : C->varlists())
2211 for (
auto *VE : C->
inits())
2220 Record.
AddStmt(M.getAssociatedExpression());
2221 Record.
AddDeclRef(M.getAssociatedDeclaration());
2231 for (
auto *E : C->varlists())
2240 Record.
AddStmt(M.getAssociatedExpression());
2241 Record.
AddDeclRef(M.getAssociatedDeclaration());
2253 ClauseWriter.writeClause(E->
getClause(i));
2263 VisitOMPExecutableDirective(D);
2303 for (
auto I : D->
inits()) {
2317 VisitOMPExecutableDirective(D);
2323 VisitOMPLoopDirective(D);
2328 VisitOMPLoopDirective(D);
2334 VisitOMPLoopDirective(D);
2341 VisitOMPExecutableDirective(D);
2348 VisitOMPExecutableDirective(D);
2356 VisitOMPExecutableDirective(D);
2362 VisitOMPExecutableDirective(D);
2369 VisitOMPExecutableDirective(D);
2375 VisitOMPLoopDirective(D);
2380 void ASTStmtWriter::VisitOMPParallelForSimdDirective(
2382 VisitOMPLoopDirective(D);
2386 void ASTStmtWriter::VisitOMPParallelSectionsDirective(
2390 VisitOMPExecutableDirective(D);
2398 VisitOMPExecutableDirective(D);
2406 VisitOMPExecutableDirective(D);
2419 VisitOMPExecutableDirective(D);
2426 VisitOMPExecutableDirective(D);
2430 void ASTStmtWriter::VisitOMPTargetEnterDataDirective(
2434 VisitOMPExecutableDirective(D);
2438 void ASTStmtWriter::VisitOMPTargetExitDataDirective(
2442 VisitOMPExecutableDirective(D);
2446 void ASTStmtWriter::VisitOMPTargetParallelDirective(
2450 VisitOMPExecutableDirective(D);
2454 void ASTStmtWriter::VisitOMPTargetParallelForDirective(
2456 VisitOMPLoopDirective(D);
2463 VisitOMPExecutableDirective(D);
2469 VisitOMPExecutableDirective(D);
2475 VisitOMPExecutableDirective(D);
2482 VisitOMPExecutableDirective(D);
2489 VisitOMPExecutableDirective(D);
2496 VisitOMPExecutableDirective(D);
2503 VisitOMPExecutableDirective(D);
2507 void ASTStmtWriter::VisitOMPCancellationPointDirective(
2510 VisitOMPExecutableDirective(D);
2518 VisitOMPExecutableDirective(D);
2524 VisitOMPLoopDirective(D);
2529 VisitOMPLoopDirective(D);
2534 VisitOMPLoopDirective(D);
2541 VisitOMPExecutableDirective(D);
2545 void ASTStmtWriter::VisitOMPDistributeParallelForDirective(
2547 VisitOMPLoopDirective(D);
2551 void ASTStmtWriter::VisitOMPDistributeParallelForSimdDirective(
2553 VisitOMPLoopDirective(D);
2557 void ASTStmtWriter::VisitOMPDistributeSimdDirective(
2559 VisitOMPLoopDirective(D);
2563 void ASTStmtWriter::VisitOMPTargetParallelForSimdDirective(
2565 VisitOMPLoopDirective(D);
2570 VisitOMPLoopDirective(D);
2574 void ASTStmtWriter::VisitOMPTeamsDistributeDirective(
2576 VisitOMPLoopDirective(D);
2580 void ASTStmtWriter::VisitOMPTeamsDistributeSimdDirective(
2582 VisitOMPLoopDirective(D);
2586 void ASTStmtWriter::VisitOMPTeamsDistributeParallelForSimdDirective(
2588 VisitOMPLoopDirective(D);
2592 void ASTStmtWriter::VisitOMPTeamsDistributeParallelForDirective(
2594 VisitOMPLoopDirective(D);
2601 VisitOMPExecutableDirective(D);
2605 void ASTStmtWriter::VisitOMPTargetTeamsDistributeDirective(
2607 VisitOMPLoopDirective(D);
2611 void ASTStmtWriter::VisitOMPTargetTeamsDistributeParallelForDirective(
2613 VisitOMPLoopDirective(D);
2617 void ASTStmtWriter::VisitOMPTargetTeamsDistributeParallelForSimdDirective(
2619 VisitOMPLoopDirective(D);
2624 void ASTStmtWriter::VisitOMPTargetTeamsDistributeSimdDirective(
2626 VisitOMPLoopDirective(D);
2635 assert(SwitchCaseIDs.find(S) == SwitchCaseIDs.end() &&
2636 "SwitchCase recorded twice");
2637 unsigned NextID = SwitchCaseIDs.size();
2638 SwitchCaseIDs[
S] = NextID;
2643 assert(SwitchCaseIDs.find(S) != SwitchCaseIDs.end() &&
2644 "SwitchCase hasn't been seen yet");
2645 return SwitchCaseIDs[
S];
2649 SwitchCaseIDs.clear();
2654 void ASTWriter::WriteSubStmt(
Stmt *S) {
2664 llvm::DenseMap<Stmt *, uint64_t>::iterator
I = SubStmtEntries.find(S);
2665 if (I != SubStmtEntries.end()) {
2666 Record.push_back(I->second);
2672 assert(!ParentStmts.count(S) &&
"There is a Stmt cycle!");
2674 struct ParentStmtInserterRAII {
2679 : S(S), ParentStmts(ParentStmts) {
2680 ParentStmts.insert(S);
2682 ~ParentStmtInserterRAII() {
2683 ParentStmts.erase(S);
2687 ParentStmtInserterRAII ParentStmtInserter(S, ParentStmts);
2692 uint64_t
Offset = Writer.Emit();
2698 void ASTRecordWriter::FlushStmts() {
2701 assert(Writer->SubStmtEntries.empty() &&
"unexpected entries in sub-stmt map");
2702 assert(Writer->ParentStmts.empty() &&
"unexpected entries in parent stmt map");
2704 for (
unsigned I = 0, N = StmtsToEmit.size(); I != N; ++
I) {
2705 Writer->WriteSubStmt(StmtsToEmit[I]);
2707 assert(N == StmtsToEmit.size() &&
"record modified while being written!");
2714 Writer->SubStmtEntries.clear();
2715 Writer->ParentStmts.clear();
2718 StmtsToEmit.clear();
2721 void ASTRecordWriter::FlushSubStmts() {
2725 for (
unsigned I = 0, N = StmtsToEmit.size(); I != N; ++
I) {
2726 Writer->WriteSubStmt(StmtsToEmit[N - I - 1]);
2727 assert(N == StmtsToEmit.size() &&
"record modified while being written!");
2730 StmtsToEmit.clear();
Expr * getCombinedInit() const
A CXXConstCastExpr record.
SourceLocation getRParenLoc() const
ObjCPropertyRefExpr - A dot-syntax expression to access an ObjC property.
A call to an overloaded operator written using operator syntax.
ObjCIndirectCopyRestoreExpr - Represents the passing of a function argument by indirect copy-restore ...
The receiver is the instance of the superclass object.
Represents a single C99 designator.
ValueDecl * getMemberDecl() const
Retrieve the member declaration to which this expression refers.
SourceRange getParenOrBraceRange() const
Defines the clang::ASTContext interface.
A CompoundLiteralExpr record.
This represents '#pragma omp distribute simd' composite directive.
unsigned getNumInits() const
This represents '#pragma omp master' directive.
SourceLocation getEnd() const
const SwitchCase * getNextSwitchCase() const
unsigned getNumTemplateArgs() const
Retrieve the number of template arguments provided as part of this template-id.
const Expr * getBase() const
ParmVarDecl *const * iterator
Iterators over the parameters which the parameter pack expanded into.
The null pointer literal (C++11 [lex.nullptr])
CastKind getCastKind() const
ExprObjectKind getObjectKind() const
getObjectKind - The object kind that this expression produces.
This represents '#pragma omp task' directive.
This represents a GCC inline-assembly statement extension.
IdentifierInfo * getFieldName() const
For a field or identifier offsetof node, returns the name of the field.
Represents a 'co_await' expression while the type of the promise is dependent.
TypeSourceInfo * getDestroyedTypeInfo() const
Retrieve the source location information for the type being destroyed.
NamedDecl * getFoundDecl()
Get the NamedDecl through which this reference occurred.
OpenMPScheduleClauseModifier getSecondScheduleModifier() const
Get the second modifier of the clause.
unsigned arg_size() const
Retrieve the number of arguments.
unsigned getNumOutputs() const
TypeSourceInfo * getTypeSourceInfo() const
This represents 'thread_limit' clause in the '#pragma omp ...' directive.
A UserDefinedLiteral record.
The receiver is an object instance.
SourceRange getSourceRange() const LLVM_READONLY
bool isXLHSInRHSPart() const
Return true if helper update expression has form 'OpaqueValueExpr(x) binop OpaqueValueExpr(expr)' and...
Expr * getSyntacticForm()
Return the syntactic form of this expression, i.e.
const DeclGroupRef getDeclGroup() const
SourceLocation getLParenLoc() const
Returns the location of '('.
An IndirectGotoStmt record.
This represents clause 'copyin' in the '#pragma omp ...' directives.
Expr * getCombinedEnsureUpperBound() const
const ObjCAtFinallyStmt * getFinallyStmt() const
Retrieve the @finally statement, if any.
SourceLocation getColonLoc() const
Get colon location.
FPOptions getFPFeatures() const
helper_expr_const_range source_exprs() const
bool containsUnexpandedParameterPack() const
Whether this expression contains an unexpanded parameter pack (for C++11 variadic templates)...
NameKind
NameKind - The kind of name this object contains.
SourceLocation getLParenLoc() const
Retrieve the location of the left parentheses ('(') that precedes the argument list.
bool isResultDependent() const
Whether this generic selection is result-dependent.
Expr * getNumIterations() const
SourceLocation getOperatorLoc() const
Retrieve the location of the '->' or '.' operator.
SourceLocation getThrowLoc() const
void AddToken(const Token &Tok, RecordDataImpl &Record)
Emit a token.
SourceLocation getLParenLoc() const
SourceLocation getCommaLoc()
Get location of ','.
SourceLocation getLocation() const
bool isElidable() const
Whether this construction is elidable.
Expr * getExpr(unsigned Index)
getExpr - Return the Expr at the specified index.
bool isDelegateInitCall() const
isDelegateInitCall - Answers whether this message send has been tagged as a "delegate init call"...
A CXXStaticCastExpr record.
OpenMPDistScheduleClauseKind getDistScheduleKind() const
Get kind of the clause.
A type trait used in the implementation of various C++11 and Library TR1 trait templates.
SourceLocation TemplateKWLoc
The source location of the template keyword; this is used as part of the representation of qualified ...
An AttributedStmt record.
CompoundStmt * getSubStmt()
A CXXReinterpretCastExpr record.
Expr * getSimdlen() const
Return safe iteration space distance.
SourceLocation getTemplateKeywordLoc() const
Retrieve the location of the template keyword preceding the member name, if any.
NestedNameSpecifierLoc getQualifierLoc() const
Retrieve the nested-name-specifier that qualifies the member name, with source location information...
An ObjCBoolLiteralExpr record.
private_copies_range private_copies()
CharacterKind getKind() const
Expr *const * semantics_iterator
Represents a 'co_return' statement in the C++ Coroutines TS.
Stmt - This represents one statement.
TypeSourceInfo * getScopeTypeInfo() const
Retrieve the scope type in a qualified pseudo-destructor expression.
CXXCatchStmt * getHandler(unsigned i)
bool isArgumentType() const
IfStmt - This represents an if/then/else.
Class that handles pre-initialization statement for some clauses, like 'shedule', 'firstprivate' etc...
bool isGlobalDelete() const
void AddNestedNameSpecifierLoc(NestedNameSpecifierLoc NNS)
Emit a nested name specifier with source-location information.
This represents '#pragma omp for simd' directive.
SourceLocation getLParenLoc() const
Returns the location of '('.
SourceLocation getForLoc() const
OpenMPProcBindClauseKind getProcBindKind() const
Returns kind of the clause.
TypeSourceInfo * getTypeSourceInfo() const
SourceLocation getLParenLoc() const
Returns the location of '('.
SourceRange getTypeIdParens() const
An ImplicitValueInitExpr record.
unsigned getPackLength() const
Retrieve the length of the parameter pack.
Decl - This represents one declaration (or definition), e.g.
SourceLocation getLParenLoc() const
This represents 'grainsize' clause in the '#pragma omp ...' directive.
AccessSpecifier getAccess() const
ObjCMethodDecl * getAtIndexMethodDecl() const
This represents '#pragma omp teams distribute parallel for' composite directive.
An ImplicitCastExpr record.
Represents the index of the current element of an array being initialized by an ArrayInitLoopExpr.
helper_expr_const_range lhs_exprs() const
A reference to a name which we were able to look up during parsing but could not resolve to a specifi...
This represents 'if' clause in the '#pragma omp ...' directive.
OpenMPDirectiveKind getCaptureRegion()
Get capture region for the stmt in the clause.
Defines the C++ template declaration subclasses.
Represents an attribute applied to a statement.
TypeSourceInfo * getArg(unsigned I) const
Retrieve the Ith argument.
ParenExpr - This represents a parethesized expression, e.g.
SourceLocation getRParenLoc() const
A CXXOperatorCallExpr record.
Expr * getLowerBound()
Get lower bound of array section.
This represents 'priority' clause in the '#pragma omp ...' directive.
unsigned getArrayExprIndex() const
For an array element node, returns the index into the array of expressions.
This represents '#pragma omp target teams distribute' combined directive.
SourceLocation getBuiltinLoc() const
getBuiltinLoc - Return the location of the __builtin_astype token.
A CXXTemporaryObjectExpr record.
Represents Objective-C's @throw statement.
unsigned getDeclRefExprAbbrev() const
unsigned getResultIndex() const
The zero-based index of the result expression's generic association in the generic selection's associ...
SourceLocation getLabelLoc() const
InitListExpr * getSyntacticForm() const
SourceLocation getIfLoc() const
Represents a call to a C++ constructor.
ObjCSubscriptRefExpr - used for array and dictionary subscripting.
SourceLocation getCoawaitLoc() const
TypeSourceInfo * getTypeSourceInfo() const
An Embarcadero array type trait, as used in the implementation of __array_rank and __array_extent...
SourceLocation getColonLoc() const
Returns the location of ':'.
This represents 'update' clause in the '#pragma omp atomic' directive.
const Stmt * getElse() const
SourceLocation getOperatorLoc() const
This represents '#pragma omp parallel for' directive.
MS property subscript expression.
VarDecl * getConditionVariable() const
Retrieve the variable declared in this "for" statement, if any.
SourceLocation getLParenLoc() const
Returns the location of '('.
This represents '#pragma omp target teams distribute parallel for' combined directive.
SourceLocation getColonLoc() const
Get colon location.
Represents a prvalue temporary that is written into memory so that a reference can bind to it...
float __ovld __cnfn distance(float p0, float p1)
Returns the distance between p0 and p1.
Expr * getAlignment()
Returns alignment.
SourceLocation getEndLoc() const
CompoundStmt * getBlock() const
unsigned getInt() const
Used to serialize this.
IdentType getIdentType() const
SourceLocation getKeywordLoc() const
bool doesUsualArrayDeleteWantSize() const
Answers whether the usual array deallocation function for the allocated type expects the size of the ...
bool isConditionTrue() const
isConditionTrue - Return whether the condition is true (i.e.
Expr * getIndexExpr(unsigned Idx)
bool hadArrayRangeDesignator() const
const DeclarationNameInfo & getNameInfo() const
Gets the name info for specified reduction identifier.
This represents '#pragma omp target exit data' directive.
ObjCDictionaryElement getKeyValueElement(unsigned Index) const
This represents 'read' clause in the '#pragma omp atomic' directive.
SourceRange getSourceRange() const LLVM_READONLY
Expr * getOperand() const
ArrayRef< TemplateArgument > getPartialArguments() const
Get.
SourceLocation getReturnLoc() const
This represents clause 'private' in the '#pragma omp ...' directives.
const Expr * getPostUpdateExpr() const
Get post-update expression for the clause.
ObjCIsaExpr - Represent X->isa and X.isa when X is an ObjC 'id' type.
This represents 'num_threads' clause in the '#pragma omp ...' directive.
CompoundLiteralExpr - [C99 6.5.2.5].
SourceRange getSourceRange() const LLVM_READONLY
const Expr * getCallee() const
This represents 'defaultmap' clause in the '#pragma omp ...' directive.
OpenMPDefaultmapClauseModifier getDefaultmapModifier() const
Get the modifier of the clause.
StringRef getInputConstraint(unsigned i) const
SourceLocation getLocation() const
Retrieve the location of the literal.
A ConditionOperator record.
const TypeSourceInfo * getAssocTypeSourceInfo(unsigned i) const
SourceLocation getDoLoc() const
Implicit construction of a std::initializer_list<T> object from an array temporary within list-initia...
SourceLocation getRParenLoc() const
UnaryExprOrTypeTrait getKind() const
CapturedRegionKind getCapturedRegionKind() const
Retrieve the captured region kind.
This represents implicit clause 'flush' for the '#pragma omp flush' directive.
Expr * getCond() const
getCond - Return the condition expression; this is defined in terms of the opaque value...
SourceRange getSourceRange() const LLVM_READONLY
Retrieve the source range that covers this offsetof node.
capture_iterator capture_begin()
Retrieve an iterator pointing to the first capture.
A CXXConstructExpr record.
const ParmVarDecl * getParam() const
SourceLocation getLParenLoc() const
raw_arg_iterator raw_arg_begin()
unsigned getValue() const
A C++ throw-expression (C++ [except.throw]).
Represents an expression – generally a full-expression – that introduces cleanups to be run at the en...
Expr * getNumForLoops() const
Return the number of associated for-loops.
SourceRange getSourceRange() const LLVM_READONLY
QualType getBaseType() const
unsigned path_size() const
SourceLocation getLocation() const
SourceLocation getEllipsisLoc() const
void AddString(StringRef Str)
Emit a string.
void AddSourceRange(SourceRange Range)
Emit a source range.
SourceLocation getAtLoc() const
ArrayTypeTrait getTrait() const
This represents 'nogroup' clause in the '#pragma omp ...' directive.
TypeSourceInfo * getTypeSourceInfo() const
Retrieve the type source information for the type being constructed.
Expr * getPrevUpperBoundVariable() const
A ShuffleVectorExpr record.
This represents 'safelen' clause in the '#pragma omp ...' directive.
SourceLocation getDestroyedTypeLoc() const
Retrieve the starting location of the type being destroyed.
A C++ static_cast expression (C++ [expr.static.cast]).
OpenMPDirectiveKind getDirectiveKind() const
void AddTypeSourceInfo(TypeSourceInfo *TInfo)
Emits a reference to a declarator info.
LabelStmt - Represents a label, which has a substatement.
SourceLocation getRParenLoc() const
Return the location of the right parentheses.
Represents a C99 designated initializer expression.
SourceLocation getIsaMemberLoc() const
getMemberLoc - Return the location of the "member", in X->F, it is the location of 'F'...
SourceLocation getLParenLoc() const
Returns the location of '('.
Expr * getNumThreads() const
Returns number of threads.
unsigned getTotalComponentListNum() const
Return the number of lists derived from the clause expressions.
An ObjCAtThrowStmt record.
ObjCProtocolDecl * getProtocol() const
CompoundStmt * getSubStmt() const
Retrieve the compound statement that will be included in the program only if the existence of the sym...
SourceLocation getLParenLoc() const
Returns the location of '('.
Expr * getSubExpr(unsigned Idx) const
bool hasCancel() const
Return true if current directive has inner cancel directive.
void AddTypeRef(QualType T)
Emit a reference to a type.
An element in an Objective-C dictionary literal.
A DesignatedInitExpr record.
This represents '#pragma omp parallel' directive.
unsigned getNumInputs() const
ShuffleVectorExpr - clang-specific builtin-in function __builtin_shufflevector.
ObjCInterfaceDecl * getClassReceiver() const
This represents 'simd' clause in the '#pragma omp ...' directive.
OpenMPScheduleClauseModifier getFirstScheduleModifier() const
Get the first modifier of the clause.
unsigned getNumSemanticExprs() const
unsigned getNumAssocs() const
An ObjCProtocolExpr record.
An ObjCSelectorExpr record.
SourceLocation getAmpAmpLoc() const
FieldDecl - An instance of this class is created by Sema::ActOnField to represent a member of a struc...
This represents clause 'lastprivate' in the '#pragma omp ...' directives.
OpaqueValueExpr * getOpaqueValue() const
getOpaqueValue - Return the opaque value placeholder.
Expr * getBase()
Retrieve the base object of this member expressions, e.g., the x in x.m.
Represents a place-holder for an object not to be initialized by anything.
unsigned getManglingNumber() const
SourceLocation getLocStart() const
Returns the starting location of the clause.
StringLiteral * getString()
SourceLocation getRParen() const
Get the location of the right parentheses ')'.
const TemplateArgumentLoc * getTemplateArgs() const
Retrieve the template arguments provided as part of this template-id.
Expr * getChunkSize()
Get chunk size.
GNUNullExpr - Implements the GNU __null extension, which is a name for a null pointer constant that h...
ArrayRef< Expr * > updates()
This represents clause 'map' in the '#pragma omp ...' directives.
The iterator over UnresolvedSets.
TypeSourceInfo * getTypeSourceInfo() const
This represents clause 'to' in the '#pragma omp ...' directives.
This represents '#pragma omp target simd' directive.
DeclarationNameInfo getNameInfo() const
Retrieve the name of the entity we're testing for, along with location information.
Represents a C++ member access expression for which lookup produced a set of overloaded functions...
SourceLocation getAtLoc() const
IdentifierInfo & getAccessor() const
ExtVectorElementExpr - This represents access to specific elements of a vector, and may occur on the ...
SourceLocation getLBracLoc() const
SourceLocation getLBraceLoc() const
This represents '#pragma omp barrier' directive.
bool hasCancel() const
Return true if current directive has inner cancel directive.
const DeclarationNameInfo & getNameInfo() const
Gets the name info for specified reduction identifier.
ObjCArrayLiteral - used for objective-c array containers; as in: @["Hello", NSApp, [NSNumber numberWithInt:42]];.
Expr * getCounterValue()
Get the loop counter value.
SourceLocation getLAngleLoc() const
Retrieve the location of the left angle bracket starting the explicit template argument list followin...
This is a common base class for loop directives ('omp simd', 'omp for', 'omp for simd' etc...
Expr * getNumTeams()
Return NumTeams number.
SourceLocation getRAngleLoc() const
Retrieve the location of the right angle bracket ending the explicit template argument list following...
Represents a reference to a non-type template parameter pack that has been substituted with a non-tem...
This represents '#pragma omp critical' directive.
OpenMPDirectiveKind getCancelRegion() const
Get cancellation region for the current cancellation point.
SourceLocation getRParenLoc() const
Expr * getFilterExpr() const
unsigned getTotalComponentsNum() const
Return the total number of components in all lists derived from the clause.
SourceLocation getSuperLoc() const
Retrieve the location of the 'super' keyword for a class or instance message to 'super', otherwise an invalid source location.
bool shouldCopy() const
shouldCopy - True if we should do the 'copy' part of the copy-restore.
void AddIdentifierRef(const IdentifierInfo *II)
Emit a reference to an identifier.
const VarDecl * getCatchParamDecl() const
bool isOverloaded() const
True if this lookup is overloaded.
SourceLocation getWhileLoc() const
Represents Objective-C's @catch statement.
const CompoundStmt * getSynchBody() const
const VarDecl * getNRVOCandidate() const
Retrieve the variable that might be used for the named return value optimization. ...
This represents clause 'copyprivate' in the '#pragma omp ...' directives.
IndirectGotoStmt - This represents an indirect goto.
Describes an C or C++ initializer list.
SourceLocation getFirstScheduleModifierLoc() const
Get the first modifier location.
A C++ typeid expression (C++ [expr.typeid]), which gets the type_info that corresponds to the supplie...
This represents '#pragma omp distribute parallel for' composite directive.
This represents '#pragma omp teams distribute parallel for simd' composite directive.
SmallVector< uint64_t, 64 > RecordData
ObjCMethodDecl * getBoxingMethod() const
IdentifierInfo * getOutputIdentifier(unsigned i) const
const Stmt * getFinallyBody() const
ForStmt - This represents a 'for (init;cond;inc)' stmt.
ArrayRef< Expr * > finals()
void append(InputIterator begin, InputIterator end)
ObjCBridgeCastKind getBridgeKind() const
Determine which kind of bridge is being performed via this cast.
IdentifierInfo * getDestroyedTypeIdentifier() const
In a dependent pseudo-destructor expression for which we do not have full type information on the des...
helper_expr_const_range private_copies() const
SourceLocation getDefaultmapKindLoc()
Get kind location.
const ValueDecl * getExtendingDecl() const
Get the declaration which triggered the lifetime-extension of this temporary, if any.
SourceLocation getAtFinallyLoc() const
Expr * getX()
Get 'x' part of the associated expression/statement.
NestedNameSpecifierLoc getQualifierLoc() const
Gets the nested name specifier.
QualType getSuperType() const
Retrieve the type referred to by 'super'.
bool isSuperReceiver() const
SourceLocation getRParenLoc() const
A reference to a previously [de]serialized Stmt record.
Stmt * getHandlerBlock() const
capture_init_iterator capture_init_begin()
Retrieve the first initialization argument for this lambda expression (which initializes the first ca...
Expr * getExprOperand() const
path_iterator path_begin()
SourceLocation getLParen() const
Get the location of the left parentheses '('.
helper_expr_const_range source_exprs() const
OpenMPScheduleClauseKind getScheduleKind() const
Get kind of the clause.
const Expr * getSubExpr() const
semantics_iterator semantics_end()
Expr * getCombinedUpperBoundVariable() const
SourceLocation getRParenLoc() const
A builtin binary operation expression such as "x + y" or "x <= y".
SourceLocation getLocation() const
Selector getSelector() const
SourceLocation getRBraceLoc() const
bool isValueDependent() const
isValueDependent - Determines whether this expression is value-dependent (C++ [temp.dep.constexpr]).
Expr * getOutputExpr(unsigned i)
bool requiresADL() const
True if this declaration should be extended by argument-dependent lookup.
CXXForRangeStmt - This represents C++0x [stmt.ranged]'s ranged for statement, represented as 'for (ra...
Class that handles post-update expression for some clauses, like 'lastprivate', 'reduction' etc...
This represents '#pragma omp cancellation point' directive.
This represents 'default' clause in the '#pragma omp ...' directive.
ObjCStringLiteral, used for Objective-C string literals i.e.
Expr * getBaseExpr() const
void AddAttributes(ArrayRef< const Attr * > Attrs)
Emit a list of attributes.
TypoExpr - Internal placeholder for expressions where typo correction still needs to be performed and...
const Stmt * getCatchBody() const
This represents 'final' clause in the '#pragma omp ...' directive.
This represents 'mergeable' clause in the '#pragma omp ...' directive.
SourceLocation getSecondScheduleModifierLoc() const
Get the second modifier location.
This represents '#pragma omp teams' directive.
bool isConditionDependent() const
CastExpr - Base class for type casts, including both implicit casts (ImplicitCastExpr) and explicit c...
This represents clause 'reduction' in the '#pragma omp ...' directives.
FieldDecl * getField()
Get the field whose initializer will be used.
Helper class for OffsetOfExpr.
A marker record that indicates that we are at the end of an expression.
This represents '#pragma omp teams distribute simd' combined directive.
Represents binding an expression to a temporary.
const ObjCAtCatchStmt * getCatchStmt(unsigned I) const
Retrieve a @catch statement.
StringLiteral * getClobberStringLiteral(unsigned i)
Expr * Key
The key for the dictionary element.
CXXTemporary * getTemporary()
bool isOpenMPWorksharingDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a worksharing directive.
A C++ lambda expression, which produces a function object (of unspecified type) that can be invoked l...
TypeSourceInfo * getTypeInfoAsWritten() const
getTypeInfoAsWritten - Returns the type source info for the type that this expression is casting to...
bool hasCancel() const
Return true if current directive has inner cancel directive.
const RecordDecl * getCapturedRecordDecl() const
Retrieve the record declaration for captured variables.
Represents a C++ member access expression where the actual member referenced could not be resolved be...
This represents clause 'is_device_ptr' in the '#pragma omp ...' directives.
const Expr * getBase() const
CleanupObject getObject(unsigned i) const
bool isArrow() const
Determine whether this pseudo-destructor expression was written using an '->' (otherwise, it used a '.
Expr * getHint() const
Returns number of threads.
bool hadMultipleCandidates() const
Returns true if this member expression refers to a method that was resolved from an overloaded set ha...
SourceLocation getLocation() const
ObjCMethodDecl * setAtIndexMethodDecl() const
detail::InMemoryDirectory::const_iterator I
SourceLocation getUsedLocation() const
Retrieve the location where this default argument was actually used.
SourceLocation getDefaultLoc() const
A default argument (C++ [dcl.fct.default]).
ExpressionTrait getTrait() const
SourceLocation getSwitchLoc() const
Iterator for iterating over Stmt * arrays that contain only Expr *.
private_copies_range private_copies()
This represents clause 'from' in the '#pragma omp ...' directives.
Represents the this expression in C++.
bool hadMultipleCandidates() const
Whether the referred constructor was resolved from an overloaded set having size greater than 1...
MSPropertyDecl * getPropertyDecl() const
Represents an explicit template argument list in C++, e.g., the "<int>" in "sort<int>".
OpenMPDefaultClauseKind getDefaultKind() const
Returns kind of the clause.
SourceLocation getKeywordLoc() const
SourceLocation getRParenLoc() const
getRParenLoc - Return the location of final right parenthesis.
SourceLocation getBuiltinLoc() const
unsigned RecordSwitchCaseID(SwitchCase *S)
Record an ID for the given switch-case statement.
OpenMPClauseKind getClauseKind() const
Returns kind of OpenMP clause (private, shared, reduction, etc.).
SourceLocation getReceiverLocation() const
SourceLocation getOperatorLoc() const LLVM_READONLY
OpenMPDependClauseKind getDependencyKind() const
Get dependency type.
This represents '#pragma omp target parallel for simd' directive.
ArrayRef< Expr * > private_counters()
OpenMP 4.0 [2.4, Array Sections].
FunctionDecl * getOperatorDelete() const
SourceLocation getColonColonLoc() const
Retrieve the location of the '::' in a qualified pseudo-destructor expression.
SourceLocation getRParenLoc() const
SourceLocation getLocEnd() const
Returns the ending location of the clause.
VersionTuple getVersion()
ConditionalOperator - The ?: ternary operator.
unsigned getNumDecls() const
Gets the number of declarations in the unresolved set.
SourceLocation getTryLoc() const
OpenMPDirectiveKind getCancelRegion() const
Get cancellation region for the current cancellation point.
llvm::APInt getValue() const
Represents a C++ pseudo-destructor (C++ [expr.pseudo]).
SourceLocation getMemberLoc() const
SourceLocation getTokenLocation() const
getTokenLocation - The location of the __null token.
ASTTemplateKWAndArgsInfo * getTrailingASTTemplateKWAndArgsInfo()
Return the optional template keyword and arguments info.
CompoundStmt - This represents a group of statements like { stmt stmt }.
unsigned NumTemplateArgs
The number of template arguments in TemplateArgs.
SourceLocation getAsmLoc() const
This represents 'threads' clause in the '#pragma omp ...' directive.
void AddDeclarationNameLoc(const DeclarationNameLoc &DNLoc, DeclarationName Name)
StringRef getAsmString() const
void Visit(PTR(OMPClause) S)
This represents '#pragma omp taskgroup' directive.
unsigned getNumArgs() const
Determine the number of arguments to this type trait.
void AddCXXTemporary(const CXXTemporary *Temp)
Emit a CXXTemporary.
SourceLocation getDefaultKindKwLoc() const
Returns location of clause kind.
unsigned getNumObjects() const
const Expr * getControllingExpr() const
This represents clause 'aligned' in the '#pragma omp ...' directives.
unsigned getNumExpansions() const
Get the number of parameters in this parameter pack.
SourceRange getSourceRange() const LLVM_READONLY
Expr * getQueriedExpression() const
NestedNameSpecifierLoc getQualifierLoc() const
Stmt * getHandler() const
unsigned getCharacterLiteralAbbrev() const
UnaryExprOrTypeTraitExpr - expression with either a type or (unevaluated) expression operand...
TypeSourceInfo * getEncodedTypeSourceInfo() const
NamedDecl * getDecl() const
bool isPostfixUpdate() const
Return true if 'v' expression must be updated to original value of 'x', false if 'v' must be updated ...
This represents clause 'task_reduction' in the '#pragma omp taskgroup' directives.
unsigned getSwitchCaseID(SwitchCase *S)
Retrieve the ID for the given switch-case statement.
bool isInstantiationDependent() const
Whether this expression is instantiation-dependent, meaning that it depends in some way on a template...
Represents a call to the builtin function __builtin_va_arg.
bool HasTemplateKWAndArgsInfo
Whether the name includes info for explicit template keyword and arguments.
FunctionDecl * getOperatorDelete() const
NamedDecl * getFirstQualifierFoundInScope() const
Retrieve the first part of the nested-name-specifier that was found in the scope of the member access...
Expr * getCombinedNextUpperBound() const
SourceLocation getOpLoc() const
NameKind getNameKind() const
getNameKind - Determine what kind of name this is.
SourceLocation getThrowLoc() const LLVM_READONLY
static unsigned getNumSubExprs(AtomicOp Op)
Determine the number of arguments the specified atomic builtin should have.
bool requiresZeroInitialization() const
Whether this construction first requires zero-initialization before the initializer is called...
This represents '#pragma omp distribute' directive.
This represents implicit clause 'depend' for the '#pragma omp task' directive.
const ObjCMethodDecl * getMethodDecl() const
LabelDecl * getDecl() const
OMPClause * getClause(unsigned i) const
Returns specified clause.
An expression "T()" which creates a value-initialized rvalue of type T, which is a non-class type...
SourceLocation getLParenLoc() const
Returns the location of '('.
SourceLocation getColonLoc() const
Gets location of ':' symbol in clause.
IdentifierInfo * getInputIdentifier(unsigned i) const
llvm::MutableArrayRef< Designator > designators()
This represents 'proc_bind' clause in the '#pragma omp ...' directive.
This represents 'capture' clause in the '#pragma omp atomic' directive.
Expr - This represents one expression.
SourceLocation getRParenLoc() const
SourceLocation getMapLoc() const LLVM_READONLY
Fetches location of clause mapping kind.
SourceLocation getRParenLoc() const
helper_expr_const_range assignment_ops() const
NestedNameSpecifierLoc getQualifierLoc() const
Fetches the nested-name qualifier with source-location information, if one was given.
This represents 'simdlen' clause in the '#pragma omp ...' directive.
decls_iterator decls_end() const
SourceLocation getScheduleKindLoc()
Get kind location.
bool isListInitialization() const
Whether this constructor call was written as list-initialization.
VarDecl * getConditionVariable() const
Retrieve the variable declared in this "while" statement, if any.
SourceLocation getLocation() const
Retrieve the location of this expression.
TypeSourceInfo * getTypeSourceInfo() const
getTypeSourceInfo - Return the destination type.
bool hasCancel() const
Return true if current directive has inner cancel directive.
Expr * getCondition() const
Returns condition.
Represents a C++ functional cast expression that builds a temporary object.
unsigned getExprImplicitCastAbbrev() const
SourceLocation getLBraceLoc() const
bool hasCancel() const
Return true if current directive has inner cancel directive.
SourceLocation getRParenLoc() const
A C++ const_cast expression (C++ [expr.const.cast]).
unsigned getNumExpressions() const
BlockExpr - Adaptor class for mixing a BlockDecl with expressions.
Field designator where only the field name is known.
An ObjCSubscriptRefExpr record.
Expr * getIterationVariable() const
SourceLocation getGotoLoc() const
helper_expr_const_range reduction_ops() const
This represents '#pragma omp target teams distribute parallel for simd' combined directive.
NestedNameSpecifierLoc getQualifierLoc() const
Retrieve the nested-name-specifier that qualifies the name, with source location information.
ObjCMethodDecl * getImplicitPropertyGetter() const
raw_arg_iterator raw_arg_end()
Expr * getCombinedLowerBoundVariable() const
SourceLocation getLocation() const
SourceLocation getEqualOrColonLoc() const
Retrieve the location of the '=' that precedes the initializer value itself, if present.
Expr * getPrevLowerBoundVariable() const
ObjCDictionaryLiteral - AST node to represent objective-c dictionary literals; as in:"name" : NSUserN...
ConstructionKind getConstructionKind() const
Determine whether this constructor is actually constructing a base class (rather than a complete obje...
Represents Objective-C's @synchronized statement.
ObjCSelectorExpr used for @selector in Objective-C.
bool isImplicitAccess() const
True if this is an implicit access, i.e., one in which the member being accessed was not written in t...
A CXXStdInitializerListExpr record.
SourceLocation getLParenLoc() const
Returns the location of '('.
Represents an expression that computes the length of a parameter pack.
CXXTryStmt - A C++ try block, including all handlers.
AsTypeExpr - Clang builtin function __builtin_astype [OpenCL 6.2.4.2] This AST node provides support ...
An ArraySubscriptExpr record.
OpenMPDirectiveKind getNameModifier() const
Return directive name modifier associated with the clause.
OMPClauseWriter(ASTRecordWriter &Record)
This represents '#pragma omp target teams distribute simd' combined directive.
This represents 'ordered' clause in the '#pragma omp ...' directive.
An ArrayInitLoopExpr record.
Selector getSelector() const
A PseudoObjectExpr record.
unsigned getNumElements() const
getNumElements - Return number of elements of objective-c array literal.
const_all_components_range all_components() const
NonTypeTemplateParmDecl * getParameterPack() const
Retrieve the non-type template parameter pack being substituted.
SourceRange getAngleBrackets() const LLVM_READONLY
SourceLocation getEndLoc() const
const SwitchCase * getSwitchCaseList() const
SourceLocation getQuestionLoc() const
const_all_num_lists_range all_num_lists() const
SourceLocation getLocation() const
Expr * getSubExpr() const
capture_init_range capture_inits()
This represents '#pragma omp for' directive.
An ObjCIndirectCopyRestoreExpr record.
SourceLocation getLabelLoc() const
Expr * getElement(unsigned Index)
getExpr - Return the Expr at the specified index.
SourceLocation getColonLoc() const
Return the location of ':'.
SourceLocation getLParenLoc() const
Returns the location of '('.
Optional< unsigned > NumExpansions
The number of elements this pack expansion will expand to, if this is a pack expansion and is known...
Stmt * getTemporary() const
const Stmt * getPreInits() const
helper_expr_const_range rhs_exprs() const
Represents a folding of a pack over an operator.
ReturnStmt - This represents a return, optionally of an expression: return; return 4;...
This represents '#pragma omp target teams' directive.
Expr * getSrcExpr() const
getSrcExpr - Return the Expr to be converted.
Expr * getIsLastIterVariable() const
An expression that sends a message to the given Objective-C object or class.
void AddDeclRef(const Decl *D)
Emit a reference to a declaration.
unsigned getNumComponents() const
This represents a Microsoft inline-assembly statement extension.
CXXBaseSpecifier * getBase() const
For a base class node, returns the base specifier.
A DesignatedInitUpdateExpr record.
void AddStmt(Stmt *S)
Add the given statement or expression to the queue of statements to emit.
UnaryOperator - This represents the unary-expression's (except sizeof and alignof), the postinc/postdec operators from postfix-expression, and various extensions.
Expr * getInputExpr(unsigned i)
Expr * getOutputExpr(unsigned i)
bool isOpenMPTaskLoopDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a taskloop directive.
void AddSelectorRef(Selector S)
Emit a Selector (which is a smart pointer reference).
StringRef getUuidStr() const
Expr * getDimensionExpression() const
A member reference to an MSPropertyDecl.
Expr * getNextUpperBound() const
DeclarationName getDeclName() const
getDeclName - Get the actual, stored name of the declaration, which may be a special name...
Represents a reference to a non-type template parameter that has been substituted with a template arg...
Expr * getDevice()
Return device number.
This represents '#pragma omp cancel' directive.
SourceLocation getLParenLoc() const
Returns the location of '('.
This represents 'collapse' clause in the '#pragma omp ...' directive.
SourceLocation getKeywordLoc() const
Retrieve the location of the __if_exists or __if_not_exists keyword.
This represents clause 'firstprivate' in the '#pragma omp ...' directives.
SourceLocation getCommaLoc()
Get location of ','.
An ObjCAvailabilityCheckExpr record.
QualType getComputationLHSType() const
SourceLocation getProcBindKindKwLoc() const
Returns location of clause kind.
SourceRange getSourceRange() const LLVM_READONLY
unsigned getNumClauses() const
Get number of clauses.
CStyleCastExpr - An explicit cast in C (C99 6.5.4) or a C-style cast in C++ (C++ [expr.cast]), which uses the syntax (Type)expr.
NestedNameSpecifierLoc getQualifierLoc() const
Gets the nested name specifier.
NestedNameSpecifierLoc getQualifierLoc() const
If the name was qualified, retrieves the nested-name-specifier that precedes the name, with source-location information.
Expr * getLHS()
An array access can be written A[4] or 4[A] (both are equivalent).
SourceLocation getLParenLoc() const
SourceLocation getSemiLoc() const
An ObjCPropertyRefExpr record.
APFloatSemantics getRawSemantics() const
Get a raw enumeration value representing the floating-point semantics of this literal (32-bit IEEE...
helper_expr_const_range privates() const
ImaginaryLiteral - We support imaginary integer and floating point literals, like "1...
SourceLocation getAtLoc() const
This represents '#pragma omp flush' directive.
An ObjCForCollectionStmt record.
helper_expr_const_range destination_exprs() const
SourceLocation getParameterPackLocation() const
Retrieve the location of the parameter pack name.
unsigned getNumSubExprs() const
Retrieve the total number of subexpressions in this designated initializer expression, including the actual initialized value and any expressions that occur within array and array-range designators.
This represents '#pragma omp parallel for simd' directive.
CXXConstructorDecl * getConstructor() const
Get the constructor that this expression will call.
InitListExpr * getUpdater() const
DoStmt - This represents a 'do/while' stmt.
ArrayRef< Stmt const * > getParamMoves() const
AsmStmt is the base class for GCCAsmStmt and MSAsmStmt.
This represents 'seq_cst' clause in the '#pragma omp atomic' directive.
SourceLocation getRightLoc() const
This represents 'untied' clause in the '#pragma omp ...' directive.
SourceLocation getLParenLoc() const
Returns the location of '('.
SourceLocation getLocStart() const
Returns starting location of directive kind.
QualType getComputationResultType() const
A MS-style AsmStmt record.
unsigned getNumSubExprs() const
getNumSubExprs - Return the size of the SubExprs array.
LabelDecl * getLabel() const
void push_back(uint64_t N)
Minimal vector-like interface.
decls_iterator decls_begin() const
helper_expr_const_range privates() const
SourceLocation getOperatorLoc() const
This represents '#pragma omp target enter data' directive.
SourceLocation getLParenLoc()
Get location of '('.
This represents 'num_teams' clause in the '#pragma omp ...' directive.
SourceLocation getAtLoc() const
A C++ dynamic_cast expression (C++ [expr.dynamic.cast]).
bool cleanupsHaveSideEffects() const
OpaqueValueExpr - An expression referring to an opaque object of a fixed type and value class...
SourceLocation getGotoLoc() const
ConvertVectorExpr - Clang builtin function __builtin_convertvector This AST node provides support for...
const StringLiteral * getAsmString() const
A reference to an overloaded function set, either an UnresolvedLookupExpr or an UnresolvedMemberExpr...
A field in a dependent type, known only by its name.
This captures a statement into a function.
Represents a call to an inherited base class constructor from an inheriting constructor.
SourceLocation getLParenLoc()
Get location of '('.
PseudoObjectExpr - An expression which accesses a pseudo-object l-value.
SourceLocation getRBracket() const
Expr * getNumForLoops() const
Return the number of associated for-loops.
unsigned getResultExprIndex() const
Return the index of the result-bearing expression into the semantics expressions, or PseudoObjectExpr...
This represents '#pragma omp single' directive.
Encodes a location in the source.
SourceLocation getLeaveLoc() const
This represents 'hint' clause in the '#pragma omp ...' directive.
helper_expr_const_range reduction_ops() const
SourceLocation getLParenLoc() const
Returns the location of '('.
Expr * getSourceExpr() const
The source expression of an opaque value expression is the expression which originally generated the ...
SourceLocation getColonLoc() const
Gets location of ':' symbol in clause.
SourceLocation getOperatorLoc() const
getOperatorLoc - Return the location of the operator.
This is a basic class for representing single OpenMP executable directive.
private_copies_range private_copies()
NestedNameSpecifierLoc getQualifierLoc() const
Retrieve the nested-name-specifier that qualifies this name, if any.
NonTypeTemplateParmDecl * getParameter() const
Represents a new-expression for memory allocation and constructor calls, e.g: "new CXXNewExpr(foo)"...
SourceLocation getOperatorLoc() const
Retrieve the location of the '.' or '->' operator.
Expr * getLowerBoundVariable() const
A call to a literal operator (C++11 [over.literal]) written as a user-defined literal (C++11 [lit...
Expr * getCondition() const
Returns condition.
helper_expr_const_range lhs_exprs() const
This represents 'schedule' clause in the '#pragma omp ...' directive.
Expr * getExpr()
Get 'expr' part of the associated expression/statement.
Represents a call to a member function that may be written either with member call syntax (e...
unsigned getCollapsedNumber() const
Get number of collapsed loops.
SourceLocation getKeywordLoc() const
SourceRange getSourceRange() const LLVM_READONLY
bool refersToEnclosingVariableOrCapture() const
Does this DeclRefExpr refer to an enclosing local or a captured variable?
SourceLocation getRParenLoc() const
DeclStmt - Adaptor class for mixing declarations with statements and expressions. ...
CompoundStmt * getBlock() const
unsigned getNumTemplateArgs() const
Retrieve the number of template arguments provided as part of this template-id.
This represents clause 'shared' in the '#pragma omp ...' directives.
const Expr * getCond() const
TemplateArgument getArgumentPack() const
Retrieve the template argument pack containing the substituted template arguments.
SourceLocation getIdentLoc() const
const_all_lists_sizes_range all_lists_sizes() const
A CXXFunctionalCastExpr record.
Expr * getSrcExpr() const
getSrcExpr - Return the Expr to be converted.
A FloatingLiteral record.
SourceLocation getTryLoc() const
TypeSourceInfo * getClassReceiverTypeInfo() const
Returns a type-source information of a class message send, or NULL if the message is not a class mess...
Expr * getPriority()
Return Priority number.
StmtVisitor - This class implements a simple visitor for Stmt subclasses.
SourceLocation RAngleLoc
The source location of the right angle bracket ('>').
void AddTemplateArgument(const TemplateArgument &Arg)
Emit a template argument.
An ObjCEncodeExpr record.
SourceLocation getGenericLoc() const
SourceLocation getAtLoc() const
This represents '#pragma omp taskwait' directive.
OpenMPMapClauseKind getMapType() const LLVM_READONLY
Fetches mapping kind for the clause.
bool isImplicitAccess() const
True if this is an implicit access, i.e.
SourceLocation getStrTokenLoc(unsigned TokNum) const
An ImaginaryLiteral record.
This is a basic class for representing single OpenMP clause.
AtomicExpr - Variadic atomic builtins: __atomic_exchange, __atomic_fetch_*, __atomic_load, __atomic_store, and __atomic_compare_exchange_*, for the similarly-named C++11 instructions, and __c11 variants for <stdatomic.h>.
SourceLocation getDefaultmapModifierLoc() const
Get the modifier location.
unsigned getIntegerLiteralAbbrev() const
bool isOpenMPLoopBoundSharingDirective(OpenMPDirectiveKind Kind)
Checks if the specified directive kind is one of the composite or combined directives that need loop ...
ObjCProtocolExpr used for protocol expression in Objective-C.
SourceLocation getContinueLoc() const
QualType getBaseType() const
StringLiteral * getFunctionName()
SourceLocation getOperatorLoc() const
Retrieve the location of the cast operator keyword, e.g., static_cast.
VarDecl * getConditionVariable() const
Retrieve the variable declared in this "switch" statement, if any.
ImplicitCastExpr - Allows us to explicitly represent implicit type conversions, which have no direct ...
capture_iterator capture_end() const
Retrieve an iterator pointing past the end of the sequence of captures.
Stmt * getCapturedStmt()
Retrieve the statement being captured.
OpenMPMapClauseKind getMapTypeModifier() const LLVM_READONLY
Fetches the map type modifier for the clause.
ParmVarDecl * getParameterPack() const
Get the parameter pack which this expression refers to.
SourceLocation getLParenLoc() const
Returns the location of '('.
This represents '#pragma omp target' directive.
Expr * getInputExpr(unsigned i)
SourceLocation getBegin() const
bool isTypeDependent() const
isTypeDependent - Determines whether this expression is type-dependent (C++ [temp.dep.expr]), which means that its type could change from one template instantiation to the next.
void AddSourceLocation(SourceLocation Loc)
Emit a source location.
Expr * getUpperBoundVariable() const
SourceLocation getDependencyLoc() const
Get dependency type location.
bool isAllEnumCasesCovered() const
Returns true if the SwitchStmt is a switch of an enum value and all cases have been explicitly covere...
Expr * getV()
Get 'v' part of the associated expression/statement.
bool isArrow() const
Determine whether this member expression used the '->' operator; otherwise, it used the '...
StringRef getOutputConstraint(unsigned i) const
An expression trait intrinsic.
StringRef getClobber(unsigned i) const
TypeSourceInfo * getTypeOperandSourceInfo() const
Retrieve source information for the type operand.
SourceLocation getAtSynchronizedLoc() const
uint64_t getValue() const
This represents '#pragma omp ordered' directive.
StmtExpr - This is the GNU Statement Expression extension: ({int X=4; X;}).
void AddAPFloat(const llvm::APFloat &Value)
Emit a floating-point value.
const Expr * getBase() const
This represents '#pragma omp target update' directive.
ObjCBoxedExpr - used for generalized expression boxing.
Expr * getGrainsize() const
Return safe iteration space distance.
Expr * getArrayFiller()
If this initializer list initializes an array with more elements than there are initializers in the l...
const BlockDecl * getBlockDecl() const
bool isObjectReceiver() const
SourceLocation getForLoc() const
Expr * getPrevEnsureUpperBound() const
bool passAlignment() const
Indicates whether the required alignment should be implicitly passed to the allocation function...
SourceLocation getRParenLoc() const
Representation of a Microsoft __if_exists or __if_not_exists statement with a dependent name...
const OffsetOfNode & getComponent(unsigned Idx) const
Expr * getPreCond() const
SourceLocation getExprLoc() const LLVM_READONLY
getExprLoc - Return the preferred location for the arrow when diagnosing a problem with a generic exp...
void AddDeclarationNameInfo(const DeclarationNameInfo &NameInfo)
SourceLocation getNameLoc() const
SourceLocation getOperatorLoc() const
getOperatorLoc - Return the location of the operator.
A qualified reference to a name whose declaration cannot yet be resolved.
Expr * Value
The value of the dictionary element.
SourceLocation getRBracketLoc() const
SourceLocation getRBracketLoc() const
SourceRange getSourceRange() const
void AddTemplateKWAndArgsInfo(const ASTTemplateKWAndArgsInfo &ArgInfo, const TemplateArgumentLoc *Args)
CompoundAssignOperator - For compound assignments (e.g.
bool isPartiallySubstituted() const
Determine whether this represents a partially-substituted sizeof...
SourceLocation getLocation() const LLVM_READONLY
A POD class for pairing a NamedDecl* with an access specifier.
Represents a C11 generic selection.
void VisitOMPClauseWithPreInit(OMPClauseWithPreInit *C)
Expr * getInstanceReceiver()
Returns the object expression (receiver) for an instance message, or null for a message that is not a...
AddrLabelExpr - The GNU address of label extension, representing &&label.
An Objective-C "bridged" cast expression, which casts between Objective-C pointers and C pointers...
SourceLocation getEllipsisLoc() const
Retrieve the location of the ellipsis that describes this pack expansion.
Represents a reference to a function parameter pack that has been substituted but not yet expanded...
Expr * getReplacement() const
SourceLocation getLocation() const
void VisitOMPClauseWithPostUpdate(OMPClauseWithPostUpdate *C)
VarDecl * getConditionVariable() const
Retrieve the variable declared in this "if" statement, if any.
Expr * getCommon() const
getCommon - Return the common expression, written to the left of the condition.
NullStmt - This is the null statement ";": C99 6.8.3p3.
Expr * getCombinedNextLowerBound() const
const_all_decls_range all_decls() const
const Expr * getSubExpr() const
bool isImplicitProperty() const
void writeClause(OMPClause *C)
SourceLocation getLParenLoc() const
This represents 'device' clause in the '#pragma omp ...' directive.
const Expr * getAssocExpr(unsigned i) const
An IntegerLiteral record.
helper_expr_const_range rhs_exprs() const
bool hadMultipleCandidates() const
Returns true if this expression refers to a function that was resolved from an overloaded set having ...
[C99 6.4.2.2] - A predefined identifier such as func.
unsigned getByteLength() const
A CXXBoolLiteralExpr record.
Represents a delete expression for memory deallocation and destructor calls, e.g. ...
SourceLocation getStarLoc() const
TypeSourceInfo * getTypeOperandSourceInfo() const
Retrieve source information for the type operand.
SourceLocation getOpLoc() const
bool hasCancel() const
Return true if current directive has inner cancel directive.
const Stmt * getBody() const
An ExtVectorElementExpr record.
NestedNameSpecifierLoc getQualifierLoc() const
Retrieves the nested-name-specifier that qualifies the type name, with source-location information...
This represents '#pragma omp section' directive.
bool isThrownVariableInScope() const
Determines whether the variable thrown by this expression (if any!) is within the innermost try block...
This represents '#pragma omp teams distribute' directive.
NestedNameSpecifierLoc getQualifierLoc() const
If the member name was qualified, retrieves the nested-name-specifier that precedes the member name...
SourceLocation getLParenLoc() const
SourceLocation EllipsisLoc
The location of the ellipsis, if this is a pack expansion.
An ObjCIvarRefExpr record.
A runtime availability query.
A C++ reinterpret_cast expression (C++ [expr.reinterpret.cast]).
This represents '#pragma omp simd' directive.
SourceLocation getTildeLoc() const
Retrieve the location of the '~'.
Represents a 'co_yield' expression.
An ObjCAutoreleasePoolStmt record.
const Expr * getSynchExpr() const
unsigned getNumHandlers() const
Expr * getNumTasks() const
Return safe iteration space distance.
A CharacterLiteral record.
const StringLiteral * getOutputConstraintLiteral(unsigned i) const
SourceLocation getLParenLoc()
Get location of '('.
Represents a C++11 pack expansion that produces a sequence of expressions.
unsigned getUniqueDeclarationsNum() const
Return the number of unique base declarations in this clause.
An ObjCStringLiteral record.
unsigned getNumPlacementArgs() const
A CXXDynamicCastExpr record.
StringRef getBytes() const
Allow access to clients that need the byte representation, such as ASTWriterStmt::VisitStringLiteral(...
SourceLocation getWhileLoc() const
This represents clause 'linear' in the '#pragma omp ...' directives.
DeclarationNameInfo getDirectiveName() const
Return name of the directive.
A CXXForRangeStmt record.
StringKind getKind() const
bool isTypeOperand() const
ObjCMethodDecl * getArrayWithObjectsMethod() const
Expr * getEnsureUpperBound() const
detail::InMemoryDirectory::const_iterator E
Expr * getUpdateExpr()
Get helper expression of the form 'OpaqueValueExpr(x) binop OpaqueValueExpr(expr)' or 'OpaqueValueExp...
bool usesGNUSyntax() const
Determines whether this designated initializer used the deprecated GNU syntax for designated initiali...
semantics_iterator semantics_begin()
const Expr * getRetValue() const
unsigned getNumArgs() const
getNumArgs - Return the number of actual arguments to this call.
SourceLocation getLocation() const
ExplicitCastExpr - An explicit cast written in the source code.
unsigned getNumArgs() const
unsigned getNumConcatenated() const
getNumConcatenated - Get the number of string literal tokens that were concatenated in translation ph...
This represents '#pragma omp atomic' directive.
SourceLocation getParameterPackLocation() const
Get the location of the parameter pack.
Expr * getBaseExpr() const
void AddVersionTuple(const VersionTuple &Version)
Emit a version tuple.
CXXRecordDecl * getNamingClass() const
Gets the 'naming class' (in the sense of C++0x [class.access.base]p5) of the lookup.
An ObjCAtFinallyStmt record.
Expr * getCalcLastIteration() const
ObjCMethodDecl * getDictWithObjectsMethod() const
llvm::APFloat getValue() const
Represents a __leave statement.
const Stmt * getThen() const
ArrayRef< Expr * > counters()
Represents a C++11 noexcept expression (C++ [expr.unary.noexcept]).
SourceLocation getMemberLoc() const
getMemberLoc - Return the location of the "member", in X->F, it is the location of 'F'...
bool hasQualifier() const
Determine whether this declaration reference was preceded by a C++ nested-name-specifier, e.g., N::foo.
SwitchStmt - This represents a 'switch' stmt.
SourceLocation getAtCatchLoc() const
SourceLocation getRParenLoc() const
getRParenLoc - Return the location of final right parenthesis.
SourceLocation getRParenLoc() const
Expr * getSafelen() const
Return safe iteration space distance.
Represents the body of a coroutine.
SourceLocation getLeftLoc() const
TemplateArgumentLoc * getTrailingTemplateArgumentLoc()
Return the optional template arguments.
Location wrapper for a TemplateArgument.
bool isOpenMPDistributeDirective(OpenMPDirectiveKind DKind)
Checks if the specified directive is a distribute directive.
Expr * getBase() const
Retrieve the base object of this member expressions, e.g., the x in x.m.
SourceLocation getOperatorLoc() const
Retrieve the location of the '->' or '.' operator.
FunctionDecl * getOperatorNew() const
ArraySubscriptExpr - [C99 6.5.2.1] Array Subscripting.
const Stmt * getSubStmt() const
Represents Objective-C's collection statement.
OpaqueValueExpr * getOpaqueValue() const
getOpaqueValue - Return the opaque value placeholder.
An ObjCAtSynchronizedStmt record.
SourceLocation getBridgeKeywordLoc() const
The location of the bridge keyword.
ASTWriter::RecordDataImpl & getRecordData() const
Extract the underlying record storage.
ArrayRef< Expr * > inits()
ObjCEncodeExpr, used for @encode in Objective-C.
SourceLocation getLParenLoc() const
Returns the location of '('.
SourceLocation getBuiltinLoc() const
SourceLocation getAtTryLoc() const
Retrieve the location of the @ in the @try.
An implicit indirection through a C++ base class, when the field found is in a base class...
SourceLocation getLParenLoc() const
Returns the location of '('.
A SizefAlignOfExpr record.
Represents a call to a CUDA kernel function.
Represents a 'co_await' expression.
TypeTraitExprBitfields TypeTraitExprBits
TypeSourceInfo * getWrittenTypeInfo() const
A CXXMemberCallExpr record.
Expr * getArg(unsigned Arg)
Return the specified argument.
CXXConstructorDecl * getConstructor() const
Get the constructor that this expression will (ultimately) call.
Expr * getExprOperand() const
Represents Objective-C's @finally statement.
const Expr * getSubExpr() const
SourceLocation getRParenLoc() const
Retrieve the location of the right parentheses (')') that follows the argument list.
SourceLocation getDistScheduleKindLoc()
Get kind location.
QualType getSuperReceiverType() const
SourceLocation getRParenLoc() const
SourceLocation getBuiltinLoc() const
getBuiltinLoc - Return the location of the __builtin_convertvector token.
uint64_t EmitStmt(unsigned Code, unsigned Abbrev=0)
Emit the record to the stream, preceded by its substatements.
bool inheritedFromVBase() const
Determine whether the inherited constructor is inherited from a virtual base of the object we constru...
Expr * getKeyExpr() const
unsigned getNumArgs() const
Return the number of actual arguments in this message, not counting the receiver. ...
LabelDecl * getLabel() const
SourceLocation getAccessorLoc() const
Represents a base class of a C++ class.
This represents 'write' clause in the '#pragma omp atomic' directive.
ObjCPropertyDecl * getExplicitProperty() const
unsigned getNumCatchStmts() const
Retrieve the number of @catch statements in this try-catch-finally block.
const Expr * getInitializer() const
SourceRange getDirectInitRange() const
SourceLocation getRParenLoc() const
ObjCIvarRefExpr - A reference to an ObjC instance variable.
SourceLocation getForLoc() const
SourceLocation getLocation() const
Represents an expression that might suspend coroutine execution; either a co_await or co_yield expres...
DeclStmt * getRangeStmt()
A ConvertVectorExpr record.
bool hasAssociatedStmt() const
Returns true if directive has associated statement.
Expr * getFalseExpr() const
getFalseExpr - Return the subexpression which will be evaluated if the condnition evaluates to false;...
Describes an explicit type conversion that uses functional notion but could not be resolved because o...
GotoStmt - This represents a direct goto.
ArrayRef< const Attr * > getAttrs() const
A use of a default initializer in a constructor or in aggregate initialization.
SourceLocation getColonLoc() const
SourceLocation getAttrLoc() const
SourceLocation getLParenLoc() const
Returns the location of '('.
CapturedDecl * getCapturedDecl()
Retrieve the outlined function declaration.
helper_expr_const_range destination_exprs() const
Defines the C++ Decl subclasses, other than those for templates (found in DeclTemplate.h) and friends (in DeclFriend.h).
const StringLiteral * getInputConstraintLiteral(unsigned i) const
ASTStmtWriter(ASTWriter &Writer, ASTWriter::RecordData &Record)
bool isArrayFormAsWritten() const
MemberExpr - [C99 6.5.2.3] Structure and Union Members.
GNU array range designator.
OverloadedOperatorKind getOperator() const
Returns the kind of overloaded operator that this expression refers to.
Expr * getNextLowerBound() const
SourceLocation getFinallyLoc() const
const Expr * getSubExpr() const
An ArrayInitIndexExpr record.
A GCC-style AsmStmt record.
SourceLocation getBuiltinLoc() const
This represents '#pragma omp target parallel' directive.
SourceLocation getRParenLoc() const
Retrieve the location of the closing parenthesis.
This represents 'nowait' clause in the '#pragma omp ...' directive.
ContinueStmt - This represents a continue.
SourceLocation getRParenLoc() const
Represents a loop initializing the elements of an array.
This represents 'num_tasks' clause in the '#pragma omp ...' directive.
ChooseExpr - GNU builtin-in function __builtin_choose_expr.
BinaryConditionalOperator - The GNU extension to the conditional operator which allows the middle ope...
SourceLocation getBreakLoc() const
CXXCatchStmt - This represents a C++ catch block.
SourceLocation getBuiltinLoc() const
Represents an explicit C++ type conversion that uses "functional" notation (C++ [expr.type.conv]).
An object for streaming information to a record.
FPOptions getFPFeatures() const
bool hasQualifier() const
Determines whether this member expression actually had a C++ nested-name-specifier prior to the name ...
An ObjCAtCatchStmt record.
bool doesUsualArrayDeleteWantSize() const
Answers whether the usual array deallocation function for the allocated type expects the size of the ...
WhileStmt - This represents a 'while' stmt.
Field designator where the field has been resolved to a declaration.
const Expr * getCond() const
FieldDecl * getField() const
For a field offsetof node, returns the field.
SourceLocation getElseLoc() const
TypeSourceInfo * getQueriedTypeSourceInfo() const
helper_expr_const_range assignment_ops() const
A CXXInheritedCtorInitExpr record.
Expr * getThreadLimit()
Return ThreadLimit number.
CompoundStmt * getTryBlock()
Writes an AST file containing the contents of a translation unit.
OpenMPDefaultmapClauseKind getDefaultmapKind() const
Get kind of the clause.
Represents Objective-C's @try ... @catch ... @finally statement.
void AddCXXBaseSpecifier(const CXXBaseSpecifier &Base)
Emit a C++ base specifier.
SourceRange getSourceRange() const LLVM_READONLY
SourceLocation tokens are not useful in isolation - they are low level value objects created/interpre...
This represents '#pragma omp taskloop simd' directive.
const Expr * getThrowExpr() const
bool hasTemplateKWAndArgsInfo() const
void AddAPInt(const llvm::APInt &Value)
Emit an integral value.
bool hasCancel() const
Return true if current directive has inner cancel directive.
SourceLocation getRBracketLoc() const
SourceLocation getLocation() const
StringLiteral - This represents a string literal expression, e.g.
CallExpr - Represents a function call (C99 6.5.2.2, C++ [expr.call]).
Expr * getPattern()
Retrieve the pattern of the pack expansion.
This represents 'dist_schedule' clause in the '#pragma omp ...' directive.
bool isIfExists() const
Determine whether this is an __if_exists statement.
bool constructsVBase() const
Determine whether this constructor is actually constructing a base class (rather than a complete obje...
An ObjCMessageExpr record.
SourceLocation getRBracLoc() const
SourceLocation getColonLoc() const
bool hasCancel() const
Return true if current directive has inner cancel directive.
void ClearSwitchCaseIDs()
Abstract class common to all of the C++ "named"/"keyword" casts.
bool isMicrosoftABI() const
Returns whether this is really a Win64 ABI va_arg expression.
bool isStdInitListInitialization() const
Whether this constructor call was written as list-initialization, but was interpreted as forming a st...
This represents '#pragma omp sections' directive.
ObjCBoolLiteralExpr - Objective-C Boolean Literal.
const Stmt * getTryBody() const
Retrieve the @try body.
A CompoundAssignOperator record.
This represents '#pragma omp target data' directive.
capture_init_iterator capture_init_end()
Retrieve the iterator pointing one past the last initialization argument for this lambda expression...
VarDecl * getExceptionDecl() const
A reference to a declared variable, function, enum, etc.
ExprValueKind getValueKind() const
getValueKind - The value kind that this expression produces.
SourceLocation getLParenLoc() const
Returns the location of '('.
BreakStmt - This represents a break.
Expr * getLastIteration() const
SourceLocation getColonLoc() const
Expr * getChunkSize()
Get chunk size.
const Stmt * getPreInitStmt() const
Get pre-initialization statement for the clause.
const Expr * getInit(unsigned Init) const
const Expr * getSubExpr() const
FieldDecl * getInitializedFieldInUnion()
If this initializes a union, specifies which field in the union to initialize.
Expr * getCombinedCond() const
TypeSourceInfo * getAllocatedTypeSourceInfo() const
void AddTemplateArgumentLoc(const TemplateArgumentLoc &Arg)
Emits a template argument location.
DeclStmt * getLoopVarStmt()
unsigned getNumClobbers() const
Expr * getTrueExpr() const
getTrueExpr - Return the subexpression which will be evaluated if the condition evaluates to true; th...
SourceLocation getRParenLoc() const
A trivial tuple used to represent a source range.
helper_expr_const_range destination_exprs() const
This represents '#pragma omp taskyield' directive.
This represents '#pragma omp distribute parallel for simd' composite directive.
SourceLocation getRParenLoc() const
A boolean literal, per ([C++ lex.bool] Boolean literals).
OffsetOfExpr - [C99 7.17] - This represents an expression of the form offsetof(record-type, member-designator).
CompoundStmt * getTryBlock() const
This represents '#pragma omp parallel sections' directive.
A Microsoft C++ __uuidof expression, which gets the _GUID that corresponds to the supplied type or ex...
SourceLocation getStartLoc() const
const CallExpr * getConfig() const
SourceLocation getLocation() const
DeclStmt * getBeginStmt()
SourceLocation getLocEnd() const
Returns ending location of directive.
bool isTypeOperand() const
The receiver is a superclass.
Stmt * getAssociatedStmt() const
Returns statement associated with the directive.
Expr * getDistInc() const
SourceLocation getExceptLoc() const
SourceLocation LAngleLoc
The source location of the left angle bracket ('<').
SourceLocation getNameModifierLoc() const
Return the location of directive name modifier.
SourceLocation getCatchLoc() const
ReceiverKind getReceiverKind() const
Determine the kind of receiver that this message is being sent to.
Represents Objective-C's @autoreleasepool Statement.
bool isArrow() const
Determine whether this member expression used the '->' operator; otherwise, it used the '...
unsigned varlist_size() const
StmtCode
Record codes for each kind of statement or expression.
Represents an implicitly-generated value initialization of an object of a given type.
ObjCMethodDecl * getImplicitPropertySetter() const
unsigned getNumElements() const
getNumElements - Return number of elements of objective-c dictionary literal.
A GenericSelectionExpr record.
This represents '#pragma omp target parallel for' directive.
SourceLocation getRParenLoc() const
This represents clause 'use_device_ptr' in the '#pragma omp ...' directives.
SourceLocation getRParenLoc() const
Expr * getLength()
Get length of array section.
Kind getKind() const
Determine what kind of offsetof node this is.
helper_expr_const_range assignment_ops() const
SourceLocation getColonLoc() const
Expr * getStrideVariable() const
DeclAccessPair getFoundDecl() const
Retrieves the declaration found by lookup.
bool hasUnresolvedUsing() const
Determine whether the lookup results contain an unresolved using declaration.
Expr * getBase()
An array section can be written only as Base[LowerBound:Length].
TypeSourceInfo * getArgumentTypeInfo() const
helper_expr_const_range source_exprs() const
This represents '#pragma omp taskloop' directive.