class State
Declaration
class State { /* full declaration omitted */ };
Description
Interface for the VM to interact with the AST walker's context.
Declared at: clang/lib/AST/Interp/State.h:55
Method Overview
- public clang::OptionalDiagnostic CCEDiag(const clang::interp::SourceInfo & SI, diag::kind DiagId = diag::note_invalid_subexpr_in_const_expr, unsigned int ExtraNotes = 0)
- public clang::OptionalDiagnostic CCEDiag(const clang::Expr * E, diag::kind DiagId = diag::note_invalid_subexpr_in_const_expr, unsigned int ExtraNotes = 0)
- public clang::OptionalDiagnostic CCEDiag(clang::SourceLocation Loc, diag::kind DiagId = diag::note_invalid_subexpr_in_const_expr, unsigned int ExtraNotes = 0)
- public clang::OptionalDiagnostic FFDiag(const clang::interp::SourceInfo & SI, diag::kind DiagId = diag::note_invalid_subexpr_in_const_expr, unsigned int ExtraNotes = 0)
- public clang::OptionalDiagnostic FFDiag(const clang::Expr * E, diag::kind DiagId = diag::note_invalid_subexpr_in_const_expr, unsigned int ExtraNotes = 0)
- public clang::OptionalDiagnostic FFDiag(clang::SourceLocation Loc, diag::kind DiagId = diag::note_invalid_subexpr_in_const_expr, unsigned int ExtraNotes = 0)
- public clang::OptionalDiagnostic Note(clang::SourceLocation Loc, diag::kind DiagId)
- private void addCallStack(unsigned int Limit)
- private clang::PartialDiagnostic & addDiag(clang::SourceLocation Loc, diag::kind DiagId)
- public void addNotes(ArrayRef<clang::PartialDiagnosticAt> Diags)
- public virtual bool checkingForUndefinedBehavior() const
- public virtual bool checkingPotentialConstantExpression() const
- private clang::OptionalDiagnostic diag(clang::SourceLocation Loc, diag::kind DiagId, unsigned int ExtraNotes, bool IsCCEDiag)
- public virtual const clang::interp::Frame * getBottomFrame() const
- public virtual unsigned int getCallStackDepth()
- public virtual clang::ASTContext & getCtx() const
- public virtual clang::interp::Frame * getCurrentFrame()
- public virtual Expr::EvalStatus & getEvalStatus() const
- public const clang::LangOptions & getLangOpts() const
- public virtual bool hasActiveDiagnostic()
- public virtual bool hasPriorDiagnostic()
- public virtual bool keepEvaluatingAfterFailure() const
- public virtual bool noteUndefinedBehavior()
- public clang::DiagnosticBuilder report(clang::SourceLocation Loc, diag::kind DiagId)
- public virtual void setActiveDiagnostic(bool Flag)
- public virtual void setFoldFailureDiagnostic(bool Flag)
- public virtual ~State()
Methods
¶clang::OptionalDiagnostic CCEDiag(
const clang::interp::SourceInfo& SI,
diag::kind DiagId =
diag::note_invalid_subexpr_in_const_expr,
unsigned int ExtraNotes = 0)
clang::OptionalDiagnostic CCEDiag(
const clang::interp::SourceInfo& SI,
diag::kind DiagId =
diag::note_invalid_subexpr_in_const_expr,
unsigned int ExtraNotes = 0)
Declared at: clang/lib/AST/Interp/State.h:106
Parameters
- const clang::interp::SourceInfo& SI
- diag::kind DiagId = diag::note_invalid_subexpr_in_const_expr
- unsigned int ExtraNotes = 0
¶clang::OptionalDiagnostic CCEDiag(
const clang::Expr* E,
diag::kind DiagId =
diag::note_invalid_subexpr_in_const_expr,
unsigned int ExtraNotes = 0)
clang::OptionalDiagnostic CCEDiag(
const clang::Expr* E,
diag::kind DiagId =
diag::note_invalid_subexpr_in_const_expr,
unsigned int ExtraNotes = 0)
Declared at: clang/lib/AST/Interp/State.h:101
Parameters
- const clang::Expr* E
- diag::kind DiagId = diag::note_invalid_subexpr_in_const_expr
- unsigned int ExtraNotes = 0
¶clang::OptionalDiagnostic CCEDiag(
clang::SourceLocation Loc,
diag::kind DiagId =
diag::note_invalid_subexpr_in_const_expr,
unsigned int ExtraNotes = 0)
clang::OptionalDiagnostic CCEDiag(
clang::SourceLocation Loc,
diag::kind DiagId =
diag::note_invalid_subexpr_in_const_expr,
unsigned int ExtraNotes = 0)
Description
Diagnose that the evaluation does not produce a C++11 core constant expression. FIXME: Stop evaluating if we're in EM_ConstantExpression or EM_PotentialConstantExpression mode and we produce one of these.
Declared at: clang/lib/AST/Interp/State.h:96
Parameters
- clang::SourceLocation Loc
- diag::kind DiagId = diag::note_invalid_subexpr_in_const_expr
- unsigned int ExtraNotes = 0
¶clang::OptionalDiagnostic FFDiag(
const clang::interp::SourceInfo& SI,
diag::kind DiagId =
diag::note_invalid_subexpr_in_const_expr,
unsigned int ExtraNotes = 0)
clang::OptionalDiagnostic FFDiag(
const clang::interp::SourceInfo& SI,
diag::kind DiagId =
diag::note_invalid_subexpr_in_const_expr,
unsigned int ExtraNotes = 0)
Declared at: clang/lib/AST/Interp/State.h:86
Parameters
- const clang::interp::SourceInfo& SI
- diag::kind DiagId = diag::note_invalid_subexpr_in_const_expr
- unsigned int ExtraNotes = 0
¶clang::OptionalDiagnostic FFDiag(
const clang::Expr* E,
diag::kind DiagId =
diag::note_invalid_subexpr_in_const_expr,
unsigned int ExtraNotes = 0)
clang::OptionalDiagnostic FFDiag(
const clang::Expr* E,
diag::kind DiagId =
diag::note_invalid_subexpr_in_const_expr,
unsigned int ExtraNotes = 0)
Declared at: clang/lib/AST/Interp/State.h:81
Parameters
- const clang::Expr* E
- diag::kind DiagId = diag::note_invalid_subexpr_in_const_expr
- unsigned int ExtraNotes = 0
¶clang::OptionalDiagnostic FFDiag(
clang::SourceLocation Loc,
diag::kind DiagId =
diag::note_invalid_subexpr_in_const_expr,
unsigned int ExtraNotes = 0)
clang::OptionalDiagnostic FFDiag(
clang::SourceLocation Loc,
diag::kind DiagId =
diag::note_invalid_subexpr_in_const_expr,
unsigned int ExtraNotes = 0)
Declared at: clang/lib/AST/Interp/State.h:76
Parameters
- clang::SourceLocation Loc
- diag::kind DiagId = diag::note_invalid_subexpr_in_const_expr
- unsigned int ExtraNotes = 0
¶clang::OptionalDiagnostic Note(
clang::SourceLocation Loc,
diag::kind DiagId)
clang::OptionalDiagnostic Note(
clang::SourceLocation Loc,
diag::kind DiagId)
Description
Add a note to a prior diagnostic.
Declared at: clang/lib/AST/Interp/State.h:111
Parameters
- clang::SourceLocation Loc
- diag::kind DiagId
¶void addCallStack(unsigned int Limit)
void addCallStack(unsigned int Limit)
Declared at: clang/lib/AST/Interp/State.h:122
Parameters
- unsigned int Limit
¶clang::PartialDiagnostic& addDiag(
clang::SourceLocation Loc,
diag::kind DiagId)
clang::PartialDiagnostic& addDiag(
clang::SourceLocation Loc,
diag::kind DiagId)
Declared at: clang/lib/AST/Interp/State.h:124
Parameters
- clang::SourceLocation Loc
- diag::kind DiagId
¶void addNotes(
ArrayRef<clang::PartialDiagnosticAt> Diags)
void addNotes(
ArrayRef<clang::PartialDiagnosticAt> Diags)
Description
Add a stack of notes to a prior diagnostic.
Declared at: clang/lib/AST/Interp/State.h:114
Parameters
- ArrayRef<clang::PartialDiagnosticAt> Diags
¶virtual bool checkingForUndefinedBehavior() const
virtual bool checkingForUndefinedBehavior() const
Declared at: clang/lib/AST/Interp/State.h:59
¶virtual bool checkingPotentialConstantExpression()
const
virtual bool checkingPotentialConstantExpression()
const
Declared at: clang/lib/AST/Interp/State.h:60
¶clang::OptionalDiagnostic diag(
clang::SourceLocation Loc,
diag::kind DiagId,
unsigned int ExtraNotes,
bool IsCCEDiag)
clang::OptionalDiagnostic diag(
clang::SourceLocation Loc,
diag::kind DiagId,
unsigned int ExtraNotes,
bool IsCCEDiag)
Declared at: clang/lib/AST/Interp/State.h:126
Parameters
- clang::SourceLocation Loc
- diag::kind DiagId
- unsigned int ExtraNotes
- bool IsCCEDiag
¶virtual const clang::interp::Frame*
getBottomFrame() const
virtual const clang::interp::Frame*
getBottomFrame() const
Declared at: clang/lib/AST/Interp/State.h:64
¶virtual unsigned int getCallStackDepth()
virtual unsigned int getCallStackDepth()
Declared at: clang/lib/AST/Interp/State.h:71
¶virtual clang::ASTContext& getCtx() const
virtual clang::ASTContext& getCtx() const
Declared at: clang/lib/AST/Interp/State.h:69
¶virtual clang::interp::Frame* getCurrentFrame()
virtual clang::interp::Frame* getCurrentFrame()
Declared at: clang/lib/AST/Interp/State.h:63
¶virtual Expr::EvalStatus& getEvalStatus() const
virtual Expr::EvalStatus& getEvalStatus() const
Declared at: clang/lib/AST/Interp/State.h:68
¶const clang::LangOptions& getLangOpts() const
const clang::LangOptions& getLangOpts() const
Declared at: clang/lib/AST/Interp/State.h:119
¶virtual bool hasActiveDiagnostic()
virtual bool hasActiveDiagnostic()
Declared at: clang/lib/AST/Interp/State.h:65
¶virtual bool hasPriorDiagnostic()
virtual bool hasPriorDiagnostic()
Declared at: clang/lib/AST/Interp/State.h:70
¶virtual bool keepEvaluatingAfterFailure() const
virtual bool keepEvaluatingAfterFailure() const
Declared at: clang/lib/AST/Interp/State.h:62
¶virtual bool noteUndefinedBehavior()
virtual bool noteUndefinedBehavior()
Declared at: clang/lib/AST/Interp/State.h:61
¶clang::DiagnosticBuilder report(
clang::SourceLocation Loc,
diag::kind DiagId)
clang::DiagnosticBuilder report(
clang::SourceLocation Loc,
diag::kind DiagId)
Description
Directly reports a diagnostic message.
Declared at: clang/lib/AST/Interp/State.h:117
Parameters
- clang::SourceLocation Loc
- diag::kind DiagId
¶virtual void setActiveDiagnostic(bool Flag)
virtual void setActiveDiagnostic(bool Flag)
Declared at: clang/lib/AST/Interp/State.h:66
Parameters
- bool Flag
¶virtual void setFoldFailureDiagnostic(bool Flag)
virtual void setFoldFailureDiagnostic(bool Flag)
Declared at: clang/lib/AST/Interp/State.h:67
Parameters
- bool Flag
¶virtual ~State()
virtual ~State()
Declared at: clang/lib/AST/Interp/State.h:57