clang  6.0.0svn
Macros | Typedefs | Functions
JumpDiagnostics.cpp File Reference
#include "clang/Sema/SemaInternal.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/Expr.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/StmtCXX.h"
#include "clang/AST/StmtObjC.h"
#include "llvm/ADT/BitVector.h"
Include dependency graph for JumpDiagnostics.cpp:

Go to the source code of this file.

Macros

#define CHECK_PERMISSIVE(x)   (assert(Permissive || !(x)), (Permissive && (x)))
 

Typedefs

typedef std::pair< unsigned, unsigned > ScopePair
 

Functions

static ScopePair GetDiagForGotoScopeDecl (Sema &S, const Decl *D)
 GetDiagForGotoScopeDecl - If this decl induces a new goto scope, return a diagnostic that should be emitted if control goes over it. More...
 
static bool IsMicrosoftJumpWarning (unsigned JumpDiag, unsigned InDiagNote)
 Return true if a particular error+note combination must be downgraded to a warning in Microsoft mode. More...
 
static bool IsCXX98CompatWarning (Sema &S, unsigned InDiagNote)
 Return true if a particular note should be downgraded to a compatibility warning in C++11 mode. More...
 
static void DiagnoseIndirectJumpStmt (Sema &S, IndirectGotoStmt *Jump, LabelDecl *Target, bool &Diagnosed)
 Produce primary diagnostic for an indirect jump statement. More...
 

Macro Definition Documentation

◆ CHECK_PERMISSIVE

#define CHECK_PERMISSIVE (   x)    (assert(Permissive || !(x)), (Permissive && (x)))

Definition at line 93 of file JumpDiagnostics.cpp.

Referenced by DiagnoseIndirectJumpStmt().

Typedef Documentation

◆ ScopePair

typedef std::pair<unsigned,unsigned> ScopePair

Definition at line 127 of file JumpDiagnostics.cpp.

Function Documentation

◆ DiagnoseIndirectJumpStmt()

static void DiagnoseIndirectJumpStmt ( Sema S,
IndirectGotoStmt Jump,
LabelDecl Target,
bool Diagnosed 
)
static

Produce primary diagnostic for an indirect jump statement.

Definition at line 780 of file JumpDiagnostics.cpp.

References CHECK_PERMISSIVE, clang::Sema::Diag(), clang::IndirectGotoStmt::getGotoLoc(), clang::LabelStmt::getIdentLoc(), and clang::LabelDecl::getStmt().

◆ GetDiagForGotoScopeDecl()

static ScopePair GetDiagForGotoScopeDecl ( Sema S,
const Decl D 
)
static

GetDiagForGotoScopeDecl - If this decl induces a new goto scope, return a diagnostic that should be emitted if control goes over it.

If not, return 0.

Definition at line 131 of file JumpDiagnostics.cpp.

◆ IsCXX98CompatWarning()

static bool IsCXX98CompatWarning ( Sema S,
unsigned  InDiagNote 
)
static

Return true if a particular note should be downgraded to a compatibility warning in C++11 mode.

Definition at line 774 of file JumpDiagnostics.cpp.

References clang::Sema::getLangOpts().

◆ IsMicrosoftJumpWarning()

static bool IsMicrosoftJumpWarning ( unsigned  JumpDiag,
unsigned  InDiagNote 
)
static

Return true if a particular error+note combination must be downgraded to a warning in Microsoft mode.

Definition at line 766 of file JumpDiagnostics.cpp.