class AtomicExpr
Declaration
class AtomicExpr : public Expr { /* full declaration omitted */ };
Description
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>, and corresponding __opencl_atomic_* for OpenCL 2.0. All of these instructions take one primary pointer, at least one memory order. The instructions for which getScopeModel returns non-null value take one synch scope.
Declared at: clang/include/clang/AST/Expr.h:6234
Inherits from: Expr
Member Variables
- private clang::Stmt* [7] SubExprs
- private unsigned int NumSubExprs
- private clang::SourceLocation BuiltinLoc
- private clang::SourceLocation RParenLoc
- private clang::AtomicExpr::AtomicOp Op
Inherited from Stmt:
Method Overview
- public AtomicExpr(clang::Stmt::EmptyShell Empty)
- public AtomicExpr(clang::SourceLocation BLoc, ArrayRef<clang::Expr *> args, clang::QualType t, clang::AtomicExpr::AtomicOp op, clang::SourceLocation RP)
- public clang::Stmt::child_range children()
- public clang::Stmt::const_child_range children() const
- public static bool classof(const clang::Stmt * T)
- public clang::SourceLocation getBeginLoc() const
- public clang::SourceLocation getBuiltinLoc() const
- public clang::SourceLocation getEndLoc() const
- public unsigned int getNumSubExprs() const
- public static unsigned int getNumSubExprs(clang::AtomicExpr::AtomicOp Op)
- public clang::AtomicExpr::AtomicOp getOp() const
- public clang::Expr * getOrder() const
- public clang::Expr * getOrderFail() const
- public clang::Expr * getPtr() const
- public clang::SourceLocation getRParenLoc() const
- public clang::Expr * getScope() const
- public static std::unique_ptr<AtomicScopeModel> getScopeModel(clang::AtomicExpr::AtomicOp Op)
- public std::unique_ptr<AtomicScopeModel> getScopeModel() const
- public const clang::Expr *const * getSubExprs() const
- public clang::Expr ** getSubExprs()
- public clang::Expr * getVal1() const
- public clang::Expr * getVal2() const
- public clang::QualType getValueType() const
- public clang::Expr * getWeak() const
- public bool isCmpXChg() const
- public bool isOpenCL() const
- public bool isVolatile() const
Inherited from Expr:
- public Classify
- public ClassifyLValue
- public ClassifyModifiable
- public EvaluateAsBooleanCondition
- public EvaluateAsConstantExpr
- public EvaluateAsFixedPoint
- public EvaluateAsFloat
- public EvaluateAsInitializer
- public EvaluateAsInt
- public EvaluateAsLValue
- public EvaluateAsRValue
- public EvaluateForOverflow
- public EvaluateKnownConstInt
- public EvaluateKnownConstIntCheckOverflow
- public EvaluateWithSubstitution
- public HasSideEffects
- public IgnoreCasts
- public IgnoreCasts
- public IgnoreConversionOperatorSingleStep
- public IgnoreConversionOperatorSingleStep
- public IgnoreImpCasts
- public IgnoreImpCasts
- public IgnoreImplicit
- public IgnoreImplicit
- public IgnoreImplicitAsWritten
- public IgnoreImplicitAsWritten
- public IgnoreParenBaseCasts
- public IgnoreParenBaseCasts
- public IgnoreParenCasts
- public IgnoreParenCasts
- public IgnoreParenImpCasts
- public IgnoreParenImpCasts
- public IgnoreParenLValueCasts
- public IgnoreParenLValueCasts
- public IgnoreParenNoopCasts
- public IgnoreParenNoopCasts
- public IgnoreParens
- public IgnoreParens
- public IgnoreUnlessSpelledInSource
- public IgnoreUnlessSpelledInSource
- public classof
- public containsErrors
- public containsUnexpandedParameterPack
- public findBoundMemberType
- public getAsBuiltinConstantDeclRef
- public getBestDynamicClassType
- public getBestDynamicClassTypeExpr
- public getDependence
- public getExprLoc
- public getFPFeaturesInEffect
- public getIntegerConstantExpr
- public getObjCProperty
- public getObjectKind
- public getReferencedDeclOfCallee
- public getReferencedDeclOfCallee
- public getSourceBitField
- public getSourceBitField
- public getType
- public getValueKind
- public getValueKindForType
- public hasAnyTypeDependentArguments
- public hasNonTrivialCall
- public hasPlaceholderType
- public hasPlaceholderType
- public isBoundMemberFunction
- public isCXX11ConstantExpr
- public isCXX98IntegralConstantExpr
- public isConstantInitializer
- public isDefaultArgument
- public isEvaluatable
- public isGLValue
- public isImplicitCXXThis
- public isInstantiationDependent
- public isIntegerConstantExpr
- public isKnownToHaveBooleanValue
- public isLValue
- public isModifiableLvalue
- public isNullPointerConstant
- public isOBJCGCCandidate
- public isObjCSelfExpr
- public isOrdinaryOrBitFieldObject
- public isPRValue
- public isPotentialConstantExpr
- public isPotentialConstantExprUnevaluated
- public isReadIfDiscardedInCPlusPlus11
- public isSameComparisonOperand
- public isTemporaryObject
- public isTypeDependent
- public isUnusedResultAWarning
- public isValueDependent
- public isXValue
- public refersToBitField
- public refersToGlobalRegisterVar
- public refersToMatrixElement
- public refersToVectorElement
- protected setDependence
- public setObjectKind
- public setType
- public setValueKind
- public skipRValueSubobjectAdjustments
- public skipRValueSubobjectAdjustments
- public tryEvaluateObjectSize
- public tryEvaluateStrLen
Inherited from ValueStmt:
Inherited from Stmt:
- public EnableStatistics
- public IgnoreContainers
- public IgnoreContainers
- public PrintStats
- public ProcessODRHash
- public Profile
- public addStmtClass
- public child_begin
- public child_begin
- public child_end
- public child_end
- public children
- public children
- public determineLikelihoodConflict
- public dump
- public dump
- public dumpColor
- public dumpPretty
- public getBeginLoc
- public getEndLoc
- public getID
- public getLikelihood
- public getLikelihood
- public getLikelihood
- public getLikelihoodAttr
- public getSourceRange
- public getStmtClass
- public getStmtClassName
- public printJson
- public printPretty
- public printPrettyControlled
- public stripLabelLikeStatements
- public stripLabelLikeStatements
- public viewAST
Methods
¶AtomicExpr(clang::Stmt::EmptyShell Empty)
AtomicExpr(clang::Stmt::EmptyShell Empty)
Description
Build an empty AtomicExpr.
Declared at: clang/include/clang/AST/Expr.h:6264
Parameters
- clang::Stmt::EmptyShell Empty
¶AtomicExpr(clang::SourceLocation BLoc,
ArrayRef<clang::Expr*> args,
clang::QualType t,
clang::AtomicExpr::AtomicOp op,
clang::SourceLocation RP)
AtomicExpr(clang::SourceLocation BLoc,
ArrayRef<clang::Expr*> args,
clang::QualType t,
clang::AtomicExpr::AtomicOp op,
clang::SourceLocation RP)
Declared at: clang/include/clang/AST/Expr.h:6256
Parameters
- clang::SourceLocation BLoc
- ArrayRef<clang::Expr*> args
- clang::QualType t
- clang::AtomicExpr::AtomicOp op
- clang::SourceLocation RP
¶clang::Stmt::child_range children()
clang::Stmt::child_range children()
Declared at: clang/include/clang/AST/Expr.h:6337
¶clang::Stmt::const_child_range children() const
clang::Stmt::const_child_range children() const
Declared at: clang/include/clang/AST/Expr.h:6340
¶static bool classof(const clang::Stmt* T)
static bool classof(const clang::Stmt* T)
Declared at: clang/include/clang/AST/Expr.h:6332
Parameters
- const clang::Stmt* T
¶clang::SourceLocation getBeginLoc() const
clang::SourceLocation getBeginLoc() const
Declared at: clang/include/clang/AST/Expr.h:6329
¶clang::SourceLocation getBuiltinLoc() const
clang::SourceLocation getBuiltinLoc() const
Declared at: clang/include/clang/AST/Expr.h:6326
¶clang::SourceLocation getEndLoc() const
clang::SourceLocation getEndLoc() const
Declared at: clang/include/clang/AST/Expr.h:6330
¶unsigned int getNumSubExprs() const
unsigned int getNumSubExprs() const
Declared at: clang/include/clang/AST/Expr.h:6299
¶static unsigned int getNumSubExprs(
clang::AtomicExpr::AtomicOp Op)
static unsigned int getNumSubExprs(
clang::AtomicExpr::AtomicOp Op)
Description
Determine the number of arguments the specified atomic builtin should have.
Declared at: clang/include/clang/AST/Expr.h:6261
Parameters
- clang::AtomicExpr::AtomicOp Op
¶clang::AtomicExpr::AtomicOp getOp() const
clang::AtomicExpr::AtomicOp getOp() const
Declared at: clang/include/clang/AST/Expr.h:6298
¶clang::Expr* getOrder() const
clang::Expr* getOrder() const
Declared at: clang/include/clang/AST/Expr.h:6269
¶clang::Expr* getOrderFail() const
clang::Expr* getOrderFail() const
Declared at: clang/include/clang/AST/Expr.h:6282
¶clang::Expr* getPtr() const
clang::Expr* getPtr() const
Declared at: clang/include/clang/AST/Expr.h:6266
¶clang::SourceLocation getRParenLoc() const
clang::SourceLocation getRParenLoc() const
Declared at: clang/include/clang/AST/Expr.h:6327
¶clang::Expr* getScope() const
clang::Expr* getScope() const
Declared at: clang/include/clang/AST/Expr.h:6272
¶static std::unique_ptr<AtomicScopeModel>
getScopeModel(clang::AtomicExpr::AtomicOp Op)
static std::unique_ptr<AtomicScopeModel>
getScopeModel(clang::AtomicExpr::AtomicOp Op)
Description
Get atomic scope model for the atomic op code.
Declared at: clang/include/clang/AST/Expr.h:6347
Parameters
- clang::AtomicExpr::AtomicOp Op
Returns
empty atomic scope model if the atomic op code does not have scope operand.
¶std::unique_ptr<AtomicScopeModel> getScopeModel()
const
std::unique_ptr<AtomicScopeModel> getScopeModel()
const
Description
Get atomic scope model.
Declared at: clang/include/clang/AST/Expr.h:6360
Returns
empty atomic scope model if this atomic expression does not have scope operand.
¶const clang::Expr* const* getSubExprs() const
const clang::Expr* const* getSubExprs() const
Declared at: clang/include/clang/AST/Expr.h:6302
¶clang::Expr** getSubExprs()
clang::Expr** getSubExprs()
Declared at: clang/include/clang/AST/Expr.h:6301
¶clang::Expr* getVal1() const
clang::Expr* getVal1() const
Declared at: clang/include/clang/AST/Expr.h:6276
¶clang::Expr* getVal2() const
clang::Expr* getVal2() const
Declared at: clang/include/clang/AST/Expr.h:6286
¶clang::QualType getValueType() const
clang::QualType getValueType() const
Declared at: clang/include/clang/AST/Expr.h:6296
¶clang::Expr* getWeak() const
clang::Expr* getWeak() const
Declared at: clang/include/clang/AST/Expr.h:6292
¶bool isCmpXChg() const
bool isCmpXChg() const
Declared at: clang/include/clang/AST/Expr.h:6310
¶bool isOpenCL() const
bool isOpenCL() const
Declared at: clang/include/clang/AST/Expr.h:6321
¶bool isVolatile() const
bool isVolatile() const
Declared at: clang/include/clang/AST/Expr.h:6306