class UnaryOperator
Declaration
class UnaryOperator : public Expr, private TrailingObjects { /* full declaration omitted */ };
Description
UnaryOperator - This represents the unary-expression's (except sizeof and alignof), the postinc/postdec operators from postfix-expression, and various extensions. Notes on various nodes: Real/Imag - These return the real/imag part of a complex operand. If applied to a non-complex value, the former returns its operand and the later returns zero in the type of the operand.
Declared at: clang/include/clang/AST/Expr.h:2163
Inherits from: Expr, TrailingObjects
Member Variables
- private clang::Stmt* Val
Inherited from Stmt:
Method Overview
- public static clang::UnaryOperator * Create(const clang::ASTContext & C, clang::Expr * input, clang::UnaryOperator::Opcode opc, clang::QualType type, clang::ExprValueKind VK, clang::ExprObjectKind OK, clang::SourceLocation l, bool CanOverflow, clang::FPOptionsOverride FPFeatures)
- public static clang::UnaryOperator * CreateEmpty(const clang::ASTContext & C, bool hasFPFeatures)
- protected UnaryOperator(const clang::ASTContext & Ctx, clang::Expr * input, clang::UnaryOperator::Opcode opc, clang::QualType type, clang::ExprValueKind VK, clang::ExprObjectKind OK, clang::SourceLocation l, bool CanOverflow, clang::FPOptionsOverride FPFeatures)
- protected UnaryOperator(bool HasFPFeatures, clang::Stmt::EmptyShell Empty)
- public bool canOverflow() const
- public clang::Stmt::const_child_range children() const
- public clang::Stmt::child_range children()
- public static bool classof(const clang::Stmt * T)
- public clang::SourceLocation getBeginLoc() const
- public clang::SourceLocation getEndLoc() const
- public clang::SourceLocation getExprLoc() const
- public clang::FPOptions getFPFeaturesInEffect(const clang::LangOptions & LO) const
- public clang::FPOptionsOverride getFPOptionsOverride() const
- public clang::UnaryOperator::Opcode getOpcode() const
- public static llvm::StringRef getOpcodeStr(clang::UnaryOperator::Opcode Op)
- public clang::SourceLocation getOperatorLoc() const
- public static clang::UnaryOperator::Opcode getOverloadedOpcode(clang::OverloadedOperatorKind OO, bool Postfix)
- public static clang::OverloadedOperatorKind getOverloadedOperator(clang::UnaryOperator::Opcode Opc)
- public clang::FPOptionsOverride getStoredFPFeatures() const
- public clang::Expr * getSubExpr() const
- private clang::FPOptionsOverride & getTrailingFPFeatures()
- private const clang::FPOptionsOverride & getTrailingFPFeatures() const
- public bool hasStoredFPFeatures() const
- public static bool isArithmeticOp(clang::UnaryOperator::Opcode Op)
- public bool isArithmeticOp() const
- public static bool isDecrementOp(clang::UnaryOperator::Opcode Op)
- public bool isDecrementOp() const
- public bool isFEnvAccessOn(const clang::LangOptions & LO) const
- public bool isFPContractableWithinStatement(const clang::LangOptions & LO) const
- public static bool isIncrementDecrementOp(clang::UnaryOperator::Opcode Op)
- public bool isIncrementDecrementOp() const
- public bool isIncrementOp() const
- public static bool isIncrementOp(clang::UnaryOperator::Opcode Op)
- public static bool isPostfix(clang::UnaryOperator::Opcode Op)
- public bool isPostfix() const
- public static bool isPrefix(clang::UnaryOperator::Opcode Op)
- public bool isPrefix() const
- private size_t numTrailingObjects(OverloadToken<clang::FPOptionsOverride>) const
- public void setCanOverflow(bool C)
- public void setOpcode(clang::UnaryOperator::Opcode Opc)
- public void setOperatorLoc(clang::SourceLocation L)
- protected void setStoredFPFeatures(clang::FPOptionsOverride F)
- public void setSubExpr(clang::Expr * E)
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
¶static clang::UnaryOperator* Create(
const clang::ASTContext& C,
clang::Expr* input,
clang::UnaryOperator::Opcode opc,
clang::QualType type,
clang::ExprValueKind VK,
clang::ExprObjectKind OK,
clang::SourceLocation l,
bool CanOverflow,
clang::FPOptionsOverride FPFeatures)
static clang::UnaryOperator* Create(
const clang::ASTContext& C,
clang::Expr* input,
clang::UnaryOperator::Opcode opc,
clang::QualType type,
clang::ExprValueKind VK,
clang::ExprObjectKind OK,
clang::SourceLocation l,
bool CanOverflow,
clang::FPOptionsOverride FPFeatures)
Declared at: clang/include/clang/AST/Expr.h:2200
Parameters
- const clang::ASTContext& C
- clang::Expr* input
- clang::UnaryOperator::Opcode opc
- clang::QualType type
- clang::ExprValueKind VK
- clang::ExprObjectKind OK
- clang::SourceLocation l
- bool CanOverflow
- clang::FPOptionsOverride FPFeatures
¶static clang::UnaryOperator* CreateEmpty(
const clang::ASTContext& C,
bool hasFPFeatures)
static clang::UnaryOperator* CreateEmpty(
const clang::ASTContext& C,
bool hasFPFeatures)
Declared at: clang/include/clang/AST/Expr.h:2198
Parameters
- const clang::ASTContext& C
- bool hasFPFeatures
¶UnaryOperator(const clang::ASTContext& Ctx,
clang::Expr* input,
clang::UnaryOperator::Opcode opc,
clang::QualType type,
clang::ExprValueKind VK,
clang::ExprObjectKind OK,
clang::SourceLocation l,
bool CanOverflow,
clang::FPOptionsOverride FPFeatures)
UnaryOperator(const clang::ASTContext& Ctx,
clang::Expr* input,
clang::UnaryOperator::Opcode opc,
clang::QualType type,
clang::ExprValueKind VK,
clang::ExprObjectKind OK,
clang::SourceLocation l,
bool CanOverflow,
clang::FPOptionsOverride FPFeatures)
Declared at: clang/include/clang/AST/Expr.h:2186
Parameters
- const clang::ASTContext& Ctx
- clang::Expr* input
- clang::UnaryOperator::Opcode opc
- clang::QualType type
- clang::ExprValueKind VK
- clang::ExprObjectKind OK
- clang::SourceLocation l
- bool CanOverflow
- clang::FPOptionsOverride FPFeatures
¶UnaryOperator(bool HasFPFeatures,
clang::Stmt::EmptyShell Empty)
UnaryOperator(bool HasFPFeatures,
clang::Stmt::EmptyShell Empty)
Description
Build an empty unary operator.
Declared at: clang/include/clang/AST/Expr.h:2191
Parameters
- bool HasFPFeatures
- clang::Stmt::EmptyShell Empty
¶bool canOverflow() const
bool canOverflow() const
Description
Returns true if the unary operator can cause an overflow. For instance, signed int i = INT_MAX; i++; signed char c = CHAR_MAX; c++; Due to integer promotions, c++ is promoted to an int before the postfix increment, and the result is an int that cannot overflow. However, i++ can overflow.
Declared at: clang/include/clang/AST/Expr.h:2223
¶clang::Stmt::const_child_range children() const
clang::Stmt::const_child_range children() const
Declared at: clang/include/clang/AST/Expr.h:2301
¶clang::Stmt::child_range children()
clang::Stmt::child_range children()
Declared at: clang/include/clang/AST/Expr.h:2300
¶static bool classof(const clang::Stmt* T)
static bool classof(const clang::Stmt* T)
Declared at: clang/include/clang/AST/Expr.h:2295
Parameters
- const clang::Stmt* T
¶clang::SourceLocation getBeginLoc() const
clang::SourceLocation getBeginLoc() const
Declared at: clang/include/clang/AST/Expr.h:2287
¶clang::SourceLocation getEndLoc() const
clang::SourceLocation getEndLoc() const
Declared at: clang/include/clang/AST/Expr.h:2290
¶clang::SourceLocation getExprLoc() const
clang::SourceLocation getExprLoc() const
Declared at: clang/include/clang/AST/Expr.h:2293
¶clang::FPOptions getFPFeaturesInEffect(
const clang::LangOptions& LO) const
clang::FPOptions getFPFeaturesInEffect(
const clang::LangOptions& LO) const
Declared at: clang/include/clang/AST/Expr.h:2320
Parameters
- const clang::LangOptions& LO
¶clang::FPOptionsOverride getFPOptionsOverride()
const
clang::FPOptionsOverride getFPOptionsOverride()
const
Declared at: clang/include/clang/AST/Expr.h:2325
¶clang::UnaryOperator::Opcode getOpcode() const
clang::UnaryOperator::Opcode getOpcode() const
Declared at: clang/include/clang/AST/Expr.h:2205
¶static llvm::StringRef getOpcodeStr(
clang::UnaryOperator::Opcode Op)
static llvm::StringRef getOpcodeStr(
clang::UnaryOperator::Opcode Op)
Description
getOpcodeStr - Turn an Opcode enum value into the punctuation char it corresponds to, e.g. "sizeof" or "[pre]++"
Declared at: clang/include/clang/AST/Expr.h:2277
Parameters
- clang::UnaryOperator::Opcode Op
¶clang::SourceLocation getOperatorLoc() const
clang::SourceLocation getOperatorLoc() const
Description
getOperatorLoc - Return the location of the operator.
Declared at: clang/include/clang/AST/Expr.h:2214
¶static clang::UnaryOperator::Opcode
getOverloadedOpcode(
clang::OverloadedOperatorKind OO,
bool Postfix)
static clang::UnaryOperator::Opcode
getOverloadedOpcode(
clang::OverloadedOperatorKind OO,
bool Postfix)
Description
Retrieve the unary opcode that corresponds to the given overloaded operator.
Declared at: clang/include/clang/AST/Expr.h:2281
Parameters
- clang::OverloadedOperatorKind OO
- bool Postfix
¶static clang::OverloadedOperatorKind
getOverloadedOperator(
clang::UnaryOperator::Opcode Opc)
static clang::OverloadedOperatorKind
getOverloadedOperator(
clang::UnaryOperator::Opcode Opc)
Description
Retrieve the overloaded operator kind that corresponds to the given unary opcode.
Declared at: clang/include/clang/AST/Expr.h:2285
Parameters
- clang::UnaryOperator::Opcode Opc
¶clang::FPOptionsOverride getStoredFPFeatures()
const
clang::FPOptionsOverride getStoredFPFeatures()
const
Description
Get FPFeatures from trailing storage.
Declared at: clang/include/clang/AST/Expr.h:2309
¶clang::Expr* getSubExpr() const
clang::Expr* getSubExpr() const
Declared at: clang/include/clang/AST/Expr.h:2210
¶clang::FPOptionsOverride& getTrailingFPFeatures()
clang::FPOptionsOverride& getTrailingFPFeatures()
Declared at: clang/include/clang/AST/Expr.h:2172
¶const clang::FPOptionsOverride&
getTrailingFPFeatures() const
const clang::FPOptionsOverride&
getTrailingFPFeatures() const
Declared at: clang/include/clang/AST/Expr.h:2177
¶bool hasStoredFPFeatures() const
bool hasStoredFPFeatures() const
Description
Is FPFeatures in Trailing Storage?
Declared at: clang/include/clang/AST/Expr.h:2306
¶static bool isArithmeticOp(
clang::UnaryOperator::Opcode Op)
static bool isArithmeticOp(
clang::UnaryOperator::Opcode Op)
Declared at: clang/include/clang/AST/Expr.h:2270
Parameters
- clang::UnaryOperator::Opcode Op
¶bool isArithmeticOp() const
bool isArithmeticOp() const
Declared at: clang/include/clang/AST/Expr.h:2273
¶static bool isDecrementOp(
clang::UnaryOperator::Opcode Op)
static bool isDecrementOp(
clang::UnaryOperator::Opcode Op)
Declared at: clang/include/clang/AST/Expr.h:2258
Parameters
- clang::UnaryOperator::Opcode Op
¶bool isDecrementOp() const
bool isDecrementOp() const
Declared at: clang/include/clang/AST/Expr.h:2261
¶bool isFEnvAccessOn(
const clang::LangOptions& LO) const
bool isFEnvAccessOn(
const clang::LangOptions& LO) const
Declared at: clang/include/clang/AST/Expr.h:2234
Parameters
- const clang::LangOptions& LO
¶bool isFPContractableWithinStatement(
const clang::LangOptions& LO) const
bool isFPContractableWithinStatement(
const clang::LangOptions& LO) const
Declared at: clang/include/clang/AST/Expr.h:2228
Parameters
- const clang::LangOptions& LO
¶static bool isIncrementDecrementOp(
clang::UnaryOperator::Opcode Op)
static bool isIncrementDecrementOp(
clang::UnaryOperator::Opcode Op)
Declared at: clang/include/clang/AST/Expr.h:2265
Parameters
- clang::UnaryOperator::Opcode Op
¶bool isIncrementDecrementOp() const
bool isIncrementDecrementOp() const
Declared at: clang/include/clang/AST/Expr.h:2266
¶bool isIncrementOp() const
bool isIncrementOp() const
Declared at: clang/include/clang/AST/Expr.h:2254
¶static bool isIncrementOp(
clang::UnaryOperator::Opcode Op)
static bool isIncrementOp(
clang::UnaryOperator::Opcode Op)
Declared at: clang/include/clang/AST/Expr.h:2251
Parameters
- clang::UnaryOperator::Opcode Op
¶static bool isPostfix(
clang::UnaryOperator::Opcode Op)
static bool isPostfix(
clang::UnaryOperator::Opcode Op)
Description
isPostfix - Return true if this is a postfix operation, like x++.
Declared at: clang/include/clang/AST/Expr.h:2239
Parameters
- clang::UnaryOperator::Opcode Op
¶bool isPostfix() const
bool isPostfix() const
Declared at: clang/include/clang/AST/Expr.h:2249
¶static bool isPrefix(
clang::UnaryOperator::Opcode Op)
static bool isPrefix(
clang::UnaryOperator::Opcode Op)
Description
isPrefix - Return true if this is a prefix operation, like --x.
Declared at: clang/include/clang/AST/Expr.h:2244
Parameters
- clang::UnaryOperator::Opcode Op
¶bool isPrefix() const
bool isPrefix() const
Declared at: clang/include/clang/AST/Expr.h:2248
¶size_t numTrailingObjects(
OverloadToken<clang::FPOptionsOverride>) const
size_t numTrailingObjects(
OverloadToken<clang::FPOptionsOverride>) const
Declared at: clang/include/clang/AST/Expr.h:2168
Parameters
- OverloadToken<clang::FPOptionsOverride>
¶void setCanOverflow(bool C)
void setCanOverflow(bool C)
Declared at: clang/include/clang/AST/Expr.h:2224
Parameters
- bool C
¶void setOpcode(clang::UnaryOperator::Opcode Opc)
void setOpcode(clang::UnaryOperator::Opcode Opc)
Declared at: clang/include/clang/AST/Expr.h:2208
Parameters
- clang::UnaryOperator::Opcode Opc
¶void setOperatorLoc(clang::SourceLocation L)
void setOperatorLoc(clang::SourceLocation L)
Declared at: clang/include/clang/AST/Expr.h:2215
Parameters
¶void setStoredFPFeatures(
clang::FPOptionsOverride F)
void setStoredFPFeatures(
clang::FPOptionsOverride F)
Description
Set FPFeatures in trailing storage, used only by Serialization
Declared at: clang/include/clang/AST/Expr.h:2315
Parameters
¶void setSubExpr(clang::Expr* E)
void setSubExpr(clang::Expr* E)
Declared at: clang/include/clang/AST/Expr.h:2211
Parameters
- clang::Expr* E