13 #ifndef LLVM_CLANG_AST_INTERP_STATE_H 14 #define LLVM_CLANG_AST_INTERP_STATE_H 77 diag::kind DiagId = diag::note_invalid_subexpr_in_const_expr,
78 unsigned ExtraNotes = 0);
82 diag::kind DiagId = diag::note_invalid_subexpr_in_const_expr,
83 unsigned ExtraNotes = 0);
87 diag::kind DiagId = diag::note_invalid_subexpr_in_const_expr,
88 unsigned ExtraNotes = 0);
97 diag::kind DiagId = diag::note_invalid_subexpr_in_const_expr,
98 unsigned ExtraNotes = 0);
102 diag::kind DiagId = diag::note_invalid_subexpr_in_const_expr,
103 unsigned ExtraNotes = 0);
107 diag::kind DiagId = diag::note_invalid_subexpr_in_const_expr,
108 unsigned ExtraNotes = 0);
122 void addCallStack(
unsigned Limit);
127 unsigned ExtraNotes,
bool IsCCEDiag);
virtual Expr::EvalStatus & getEvalStatus() const =0
DiagnosticBuilder report(SourceLocation Loc, diag::kind DiagId)
Directly reports a diagnostic message.
Describes the statement/declaration an opcode was generated from.
virtual ASTContext & getCtx() const =0
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
AccessKinds
Kinds of access we can perform on an object, for diagnostics.
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
virtual unsigned getCallStackDepth()=0
virtual bool keepEvaluatingAfterFailure() const =0
virtual bool checkingForUndefinedBehavior() const =0
A little helper class used to produce diagnostics.
virtual void setFoldFailureDiagnostic(bool Flag)=0
This represents one expression.
Implements a partial diagnostic which may not be emitted.
virtual bool hasActiveDiagnostic()=0
virtual void setActiveDiagnostic(bool Flag)=0
A partial diagnostic which we might know in advance that we are not going to emit.
OptionalDiagnostic FFDiag(SourceLocation Loc, diag::kind DiagId=diag::note_invalid_subexpr_in_const_expr, unsigned ExtraNotes=0)
Base class for stack frames, shared between VM and walker.
virtual Frame * getCurrentFrame()=0
virtual bool noteUndefinedBehavior()=0
Encodes a location in the source.
OptionalDiagnostic Note(SourceLocation Loc, diag::kind DiagId)
Add a note to a prior diagnostic.
EvalStatus is a struct with detailed info about an evaluation in progress.
Dataflow Directional Tag Classes.
virtual bool checkingPotentialConstantExpression() const =0
void addNotes(ArrayRef< PartialDiagnosticAt > Diags)
Add a stack of notes to a prior diagnostic.
virtual bool hasPriorDiagnostic()=0
const LangOptions & getLangOpts() const
OptionalDiagnostic CCEDiag(SourceLocation Loc, diag::kind DiagId=diag::note_invalid_subexpr_in_const_expr, unsigned ExtraNotes=0)
Diagnose that the evaluation does not produce a C++11 core constant expression.
Interface for the VM to interact with the AST walker's context.
unsigned kind
All of the diagnostics that can be emitted by the frontend.
virtual const Frame * getBottomFrame() const =0