clang 20.0.0git
|
#include "clang/Sema/SemaPseudoObject.h"
Public Member Functions | |
SemaPseudoObject (Sema &S) | |
ExprResult | checkIncDec (Scope *S, SourceLocation OpLoc, UnaryOperatorKind Opcode, Expr *Op) |
Check an increment or decrement of a pseudo-object expression. | |
ExprResult | checkAssignment (Scope *S, SourceLocation OpLoc, BinaryOperatorKind Opcode, Expr *LHS, Expr *RHS) |
ExprResult | checkRValue (Expr *E) |
Expr * | recreateSyntacticForm (PseudoObjectExpr *E) |
Given a pseudo-object expression, recreate what it looks like syntactically without the attendant OpaqueValueExprs. | |
Public Member Functions inherited from clang::SemaBase | |
SemaBase (Sema &S) | |
ASTContext & | getASTContext () const |
DiagnosticsEngine & | getDiagnostics () const |
const LangOptions & | getLangOpts () const |
SemaDiagnosticBuilder | Diag (SourceLocation Loc, unsigned DiagID, bool DeferHint=false) |
Emit a diagnostic. | |
SemaDiagnosticBuilder | Diag (SourceLocation Loc, const PartialDiagnostic &PD, bool DeferHint=false) |
Emit a partial diagnostic. | |
PartialDiagnostic | PDiag (unsigned DiagID=0) |
Build a partial diagnostic. | |
Additional Inherited Members | |
Public Attributes inherited from clang::SemaBase | |
Sema & | SemaRef |
Definition at line 26 of file SemaPseudoObject.h.
SemaPseudoObject::SemaPseudoObject | ( | Sema & | S | ) |
Definition at line 1595 of file SemaPseudoObject.cpp.
ExprResult SemaPseudoObject::checkAssignment | ( | Scope * | S, |
SourceLocation | OpLoc, | ||
BinaryOperatorKind | Opcode, | ||
Expr * | LHS, | ||
Expr * | RHS | ||
) |
Definition at line 1505 of file SemaPseudoObject.cpp.
References clang::Sema::CheckPlaceholderExpr(), clang::Sema::Context, clang::BinaryOperator::Create(), clang::Sema::CurFPFeatureOverrides(), clang::ASTContext::DependentTy, clang::ExprError(), clang::ActionResult< PtrTy, Compress >::get(), clang::Expr::getType(), clang::Expr::IgnoreParens(), clang::ActionResult< PtrTy, Compress >::isInvalid(), clang::Type::isNonOverloadPlaceholderType(), clang::Expr::isTypeDependent(), clang::OK_Ordinary, clang::SemaBase::SemaRef, and clang::VK_PRValue.
Referenced by clang::Sema::BuildBinOp(), and clang::TreeTransform< Derived >::RebuildCXXOperatorCallExpr().
ExprResult SemaPseudoObject::checkIncDec | ( | Scope * | S, |
SourceLocation | OpLoc, | ||
UnaryOperatorKind | Opcode, | ||
Expr * | Op | ||
) |
Check an increment or decrement of a pseudo-object expression.
Definition at line 1475 of file SemaPseudoObject.cpp.
References clang::Sema::Context, clang::UnaryOperator::Create(), clang::Sema::CurFPFeatureOverrides(), clang::ASTContext::DependentTy, clang::SemaBase::Diag(), clang::ExprError(), clang::Expr::IgnoreParens(), clang::UnaryOperator::isIncrementDecrementOp(), clang::Expr::isTypeDependent(), clang::OK_Ordinary, clang::SemaBase::SemaRef, and clang::VK_PRValue.
Referenced by clang::Sema::BuildUnaryOp().
ExprResult SemaPseudoObject::checkRValue | ( | Expr * | E | ) |
Definition at line 1450 of file SemaPseudoObject.cpp.
References E, clang::Expr::IgnoreParens(), and clang::SemaBase::SemaRef.
Referenced by clang::Sema::CheckPlaceholderExpr().
Expr * SemaPseudoObject::recreateSyntacticForm | ( | PseudoObjectExpr * | E | ) |
Given a pseudo-object expression, recreate what it looks like syntactically without the attendant OpaqueValueExprs.
This is a hack which should be removed when TreeTransform is capable of rebuilding a tree without stripping implicit operations.
Definition at line 1561 of file SemaPseudoObject.cpp.
References clang::Sema::Context, clang::UnaryOperator::Create(), clang::BinaryOperator::Create(), clang::CompoundAssignOperator::Create(), clang::Sema::CurFPFeatureOverrides(), E, clang::Expr::getType(), clang::Expr::hasPlaceholderType(), clang::SemaBase::SemaRef, and stripOpaqueValuesFromPseudoObjectRef().