clang 8.0.0

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 788 of file JumpDiagnostics.cpp.

References CHECK_PERMISSIVE, clang::Sema::Diag(), clang::Stmt::getBeginLoc(), clang::GotoStmt::getGotoLoc(), clang::IndirectGotoStmt::getGotoLoc(), clang::NamedDecl::getIdentifier(), clang::LabelStmt::getIdentLoc(), clang::GotoStmt::getLabel(), clang::Decl::getLocation(), clang::LabelDecl::getStmt(), IsCXX98CompatWarning(), IsMicrosoftJumpWarning(), clang::LabelDecl::isMSAsmLabel(), and clang::Target.

## ◆ 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 782 of file JumpDiagnostics.cpp.

References clang::Sema::getLangOpts().

Referenced by DiagnoseIndirectJumpStmt().

## ◆ 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 774 of file JumpDiagnostics.cpp.

Referenced by DiagnoseIndirectJumpStmt().