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"
66 for (
unsigned i = 0; i != ArgInfo.NumTemplateArgs; ++i)
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) {
305 llvm_unreachable(
"unimplemented");
308 void ASTStmtWriter::VisitCoreturnStmt(
CoreturnStmt *S) {
310 llvm_unreachable(
"unimplemented");
313 void ASTStmtWriter::VisitCoawaitExpr(
CoawaitExpr *S) {
315 llvm_unreachable(
"unimplemented");
318 void ASTStmtWriter::VisitCoyieldExpr(
CoyieldExpr *S) {
320 llvm_unreachable(
"unimplemented");
323 void ASTStmtWriter::VisitCapturedStmt(
CapturedStmt *S) {
343 if (
I.capturesThis() ||
I.capturesVariableArrayType())
354 void ASTStmtWriter::VisitExpr(
Expr *
E) {
373 void ASTStmtWriter::VisitDeclRefExpr(
DeclRefExpr *E) {
416 if (E->
getValue().getBitWidth() == 32) {
465 void ASTStmtWriter::VisitParenExpr(
ParenExpr *E) {
476 for (
unsigned i=0; i != E->NumExprs; ++i)
491 void ASTStmtWriter::VisitOffsetOfExpr(
OffsetOfExpr *E) {
558 void ASTStmtWriter::VisitCallExpr(
CallExpr *E) {
564 Arg != ArgEnd; ++Arg)
569 void ASTStmtWriter::VisitMemberExpr(
MemberExpr *E) {
576 Record.
push_back(E->HasTemplateKWAndArgsInfo);
577 if (E->HasTemplateKWAndArgsInfo) {
583 for (
unsigned i=0; i != NumTemplateArgs; ++i)
606 void ASTStmtWriter::VisitObjCIsaExpr(
ObjCIsaExpr *E) {
624 VisitExplicitCastExpr(E);
631 void ASTStmtWriter::VisitCastExpr(
CastExpr *E) {
653 VisitBinaryOperator(E);
697 VisitExplicitCastExpr(E);
720 void ASTStmtWriter::VisitInitListExpr(
InitListExpr *E) {
727 bool isArrayFiller = E->ArrayFillerOrUnionFieldInit.is<
Expr*>();
756 if (D.isFieldDesignator()) {
766 }
else if (D.isArrayDesignator()) {
772 assert(D.isArrayRangeDesignator() &&
"Unknown designator");
790 void ASTStmtWriter::VisitNoInitExpr(
NoInitExpr *E) {
800 void ASTStmtWriter::VisitVAArgExpr(
VAArgExpr *E) {
818 void ASTStmtWriter::VisitStmtExpr(
StmtExpr *E) {
826 void ASTStmtWriter::VisitChooseExpr(
ChooseExpr *E) {
837 void ASTStmtWriter::VisitGNUNullExpr(
GNUNullExpr *E) {
862 void ASTStmtWriter::VisitBlockExpr(
BlockExpr *E) {
903 void ASTStmtWriter::VisitAtomicExpr(
AtomicExpr *E) {
950 if (E->HasPackExpansions) {
952 unsigned NumExpansions = 0;
1002 Record.
push_back(E->SetterAndMethodRefFlags.getInt());
1040 Record.
push_back(E->getNumStoredSelLocs());
1073 Arg != ArgEnd; ++Arg)
1077 for (
unsigned i = 0, e = E->getNumStoredSelLocs(); i != e; ++i)
1156 void ASTStmtWriter::VisitCXXCatchStmt(
CXXCatchStmt *S) {
1164 void ASTStmtWriter::VisitCXXTryStmt(
CXXTryStmt *S) {
1240 VisitCXXConstructExpr(E);
1245 void ASTStmtWriter::VisitLambdaExpr(
LambdaExpr *E) {
1248 unsigned NumArrayIndexVars = 0;
1249 if (E->HasArrayIndexVars)
1250 NumArrayIndexVars = E->getArrayIndexStarts()[E->NumCaptures];
1256 Record.
push_back(E->ExplicitResultType);
1267 if (NumArrayIndexVars) {
1268 Record.
append(E->getArrayIndexStarts(),
1269 E->getArrayIndexStarts() + E->NumCaptures + 1);
1270 VarDecl **ArrayIndexVars = E->getArrayIndexVars();
1271 for (
unsigned I = 0;
I != NumArrayIndexVars; ++
I)
1285 VisitExplicitCastExpr(E);
1291 VisitCXXNamedCastExpr(E);
1296 VisitCXXNamedCastExpr(E);
1301 VisitCXXNamedCastExpr(E);
1306 VisitCXXNamedCastExpr(E);
1311 VisitExplicitCastExpr(E);
1348 void ASTStmtWriter::VisitCXXThisExpr(
CXXThisExpr *E) {
1355 void ASTStmtWriter::VisitCXXThrowExpr(
CXXThrowExpr *E) {
1391 void ASTStmtWriter::VisitCXXNewExpr(
CXXNewExpr *E) {
1397 Record.
push_back(E->StoredInitializationStyle);
1463 Record.
push_back(E->HasTemplateKWAndArgsInfo);
1464 if (E->HasTemplateKWAndArgsInfo) {
1465 const ASTTemplateKWAndArgsInfo &ArgInfo =
1466 *E->getTrailingObjects<ASTTemplateKWAndArgsInfo>();
1467 Record.
push_back(ArgInfo.NumTemplateArgs);
1492 Record.
push_back(E->HasTemplateKWAndArgsInfo);
1493 if (E->HasTemplateKWAndArgsInfo) {
1494 const ASTTemplateKWAndArgsInfo &ArgInfo =
1495 *E->getTrailingObjects<ASTTemplateKWAndArgsInfo>();
1496 Record.
push_back(ArgInfo.NumTemplateArgs);
1519 void ASTStmtWriter::VisitOverloadExpr(
OverloadExpr *E) {
1527 const ASTTemplateKWAndArgsInfo &ArgInfo =
1529 Record.
push_back(ArgInfo.NumTemplateArgs);
1545 VisitOverloadExpr(E);
1555 VisitOverloadExpr(E);
1564 Record.
push_back(E->TypeTraitExprBits.NumArgs);
1565 Record.
push_back(E->TypeTraitExprBits.Kind);
1566 Record.
push_back(E->TypeTraitExprBits.Value);
1624 void ASTStmtWriter::VisitSubstNonTypeTemplateParmExpr(
1633 void ASTStmtWriter::VisitSubstNonTypeTemplateParmPackExpr(
1661 void ASTStmtWriter::VisitCXXFoldExpr(
CXXFoldExpr *E) {
1666 Record.
AddStmt(E->SubExprs[0]);
1667 Record.
AddStmt(E->SubExprs[1]);
1679 void ASTStmtWriter::VisitTypoExpr(
TypoExpr *E) {
1682 llvm_unreachable(
"Cannot write TypoExpr nodes");
1698 void ASTStmtWriter::VisitAsTypeExpr(
AsTypeExpr *E) {
1755 void ASTStmtWriter::VisitSEHTryStmt(
SEHTryStmt *S) {
1764 void ASTStmtWriter::VisitSEHLeaveStmt(
SEHLeaveStmt *S) {
1779 #define OPENMP_CLAUSE(Name, Class) \
1780 void Visit##Class(Class *S);
1781 #include "clang/Basic/OpenMPKinds.def"
1804 void OMPClauseWriter::VisitOMPIfClause(
OMPIfClause *C) {
1873 void OMPClauseWriter::VisitOMPReadClause(
OMPReadClause *) {}
1885 void OMPClauseWriter::VisitOMPSIMDClause(
OMPSIMDClause *) {}
1910 for (
auto *VE : C->
inits()) {
1967 for (
auto *VE : C->privates()) {
1970 for (
auto *VE : C->inits()) {
1973 for (
auto *VE : C->updates()) {
1976 for (
auto *VE : C->finals()) {
1980 Record.
AddStmt(C->getCalcStep());
1987 for (
auto *VE : C->varlists())
1995 for (
auto *VE : C->varlists())
2008 for (
auto *VE : C->varlists())
2021 for (
auto *VE : C->varlists())
2031 for (
auto *VE : C->varlists())
2041 void OMPClauseWriter::VisitOMPMapClause(
OMPMapClause *C) {
2051 for (
auto *E : C->varlists())
2060 Record.
AddStmt(M.getAssociatedExpression());
2061 Record.
AddDeclRef(M.getAssociatedDeclaration());
2090 void OMPClauseWriter::VisitOMPHintClause(
OMPHintClause *C) {
2112 void OMPClauseWriter::VisitOMPToClause(
OMPToClause *C) {
2118 for (
auto *E : C->varlists())
2127 Record.
AddStmt(M.getAssociatedExpression());
2128 Record.
AddDeclRef(M.getAssociatedDeclaration());
2132 void OMPClauseWriter::VisitOMPFromClause(
OMPFromClause *C) {
2138 for (
auto *E : C->varlists())
2147 Record.
AddStmt(M.getAssociatedExpression());
2148 Record.
AddDeclRef(M.getAssociatedDeclaration());
2155 for (
auto *VE : C->varlists()) {
2163 for (
auto *VE : C->varlists()) {
2176 ClauseWriter.writeClause(E->
getClause(i));
2186 VisitOMPExecutableDirective(D);
2217 for (
auto I : D->
inits()) {
2231 VisitOMPExecutableDirective(D);
2237 VisitOMPLoopDirective(D);
2242 VisitOMPLoopDirective(D);
2248 VisitOMPLoopDirective(D);
2255 VisitOMPExecutableDirective(D);
2262 VisitOMPExecutableDirective(D);
2270 VisitOMPExecutableDirective(D);
2276 VisitOMPExecutableDirective(D);
2283 VisitOMPExecutableDirective(D);
2289 VisitOMPLoopDirective(D);
2294 void ASTStmtWriter::VisitOMPParallelForSimdDirective(
2296 VisitOMPLoopDirective(D);
2300 void ASTStmtWriter::VisitOMPParallelSectionsDirective(
2304 VisitOMPExecutableDirective(D);
2312 VisitOMPExecutableDirective(D);
2320 VisitOMPExecutableDirective(D);
2333 VisitOMPExecutableDirective(D);
2340 VisitOMPExecutableDirective(D);
2344 void ASTStmtWriter::VisitOMPTargetEnterDataDirective(
2348 VisitOMPExecutableDirective(D);
2352 void ASTStmtWriter::VisitOMPTargetExitDataDirective(
2356 VisitOMPExecutableDirective(D);
2360 void ASTStmtWriter::VisitOMPTargetParallelDirective(
2364 VisitOMPExecutableDirective(D);
2368 void ASTStmtWriter::VisitOMPTargetParallelForDirective(
2370 VisitOMPLoopDirective(D);
2377 VisitOMPExecutableDirective(D);
2383 VisitOMPExecutableDirective(D);
2389 VisitOMPExecutableDirective(D);
2395 VisitOMPExecutableDirective(D);
2402 VisitOMPExecutableDirective(D);
2409 VisitOMPExecutableDirective(D);
2416 VisitOMPExecutableDirective(D);
2420 void ASTStmtWriter::VisitOMPCancellationPointDirective(
2423 VisitOMPExecutableDirective(D);
2431 VisitOMPExecutableDirective(D);
2437 VisitOMPLoopDirective(D);
2442 VisitOMPLoopDirective(D);
2447 VisitOMPLoopDirective(D);
2454 VisitOMPExecutableDirective(D);
2458 void ASTStmtWriter::VisitOMPDistributeParallelForDirective(
2460 VisitOMPLoopDirective(D);
2464 void ASTStmtWriter::VisitOMPDistributeParallelForSimdDirective(
2466 VisitOMPLoopDirective(D);
2470 void ASTStmtWriter::VisitOMPDistributeSimdDirective(
2472 VisitOMPLoopDirective(D);
2476 void ASTStmtWriter::VisitOMPTargetParallelForSimdDirective(
2478 VisitOMPLoopDirective(D);
2487 assert(SwitchCaseIDs.find(S) == SwitchCaseIDs.end() &&
2488 "SwitchCase recorded twice");
2489 unsigned NextID = SwitchCaseIDs.size();
2490 SwitchCaseIDs[
S] = NextID;
2495 assert(SwitchCaseIDs.find(S) != SwitchCaseIDs.end() &&
2496 "SwitchCase hasn't been seen yet");
2497 return SwitchCaseIDs[
S];
2501 SwitchCaseIDs.clear();
2506 void ASTWriter::WriteSubStmt(
Stmt *S) {
2517 if (I != SubStmtEntries.end()) {
2518 Record.push_back(I->second);
2524 assert(!ParentStmts.count(S) &&
"There is a Stmt cycle!");
2526 struct ParentStmtInserterRAII {
2531 : S(S), ParentStmts(ParentStmts) {
2532 ParentStmts.insert(S);
2534 ~ParentStmtInserterRAII() {
2535 ParentStmts.erase(S);
2539 ParentStmtInserterRAII ParentStmtInserter(S, ParentStmts);
2544 uint64_t
Offset = Writer.Emit();
2550 void ASTRecordWriter::FlushStmts() {
2553 assert(Writer->SubStmtEntries.empty() &&
"unexpected entries in sub-stmt map");
2554 assert(Writer->ParentStmts.empty() &&
"unexpected entries in parent stmt map");
2556 for (
unsigned I = 0, N = StmtsToEmit.size(); I != N; ++
I) {
2557 Writer->WriteSubStmt(StmtsToEmit[I]);
2559 assert(N == StmtsToEmit.size() &&
"record modified while being written!");
2566 Writer->SubStmtEntries.clear();
2567 Writer->ParentStmts.clear();
2570 StmtsToEmit.clear();
2573 void ASTRecordWriter::FlushSubStmts() {
2577 for (
unsigned I = 0, N = StmtsToEmit.size(); I != N; ++
I) {
2578 Writer->WriteSubStmt(StmtsToEmit[N - I - 1]);
2579 assert(N == StmtsToEmit.size() &&
"record modified while being written!");
2582 StmtsToEmit.clear();
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.
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.
bool isFPContractable() const
const DeclGroupRef getDeclGroup() const
SourceLocation getLParenLoc() const
Returns the location of '('.
An IndirectGotoStmt record.
This represents clause 'copyin' in the '#pragma omp ...' directives.
const ObjCAtFinallyStmt * getFinallyStmt() const
Retrieve the @finally statement, if any.
SourceLocation getColonLoc() const
Get colon location.
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.
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.
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.
SourceLocation getLParenLoc() const
This represents 'grainsize' clause in the '#pragma omp ...' directive.
AccessSpecifier getAccess() const
ObjCMethodDecl * getAtIndexMethodDecl() const
An ImplicitCastExpr record.
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.
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.
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 '('.
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
IdentType getIdentType() 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
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.
VarDecl - An instance of this class is created to represent a variable declaration or definition...
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.
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.
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
bool isFPContractable() 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.
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.
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()
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.
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
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
OpenMPDefaultClauseKind getDefaultKind() const
Returns kind of the clause.
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 }.
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 ...
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...
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
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()
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 'ordered' clause in the '#pragma omp ...' directive.
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
Represents a folding of a pack over an operator.
ReturnStmt - This represents a return, optionally of an expression: return; return 4;...
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
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.
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
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
const TemplateArgument * iterator
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 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.
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
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.
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...
NestedNameSpecifierLoc getQualifierLoc() const
If the member name was qualified, retrieves the nested-name-specifier that precedes the member name...
ExprIterator arg_iterator
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.
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
ExprIterator arg_iterator
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
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
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
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.
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.
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.
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.
SourceLocation getExceptLoc() const
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.