clang  6.0.0svn
Classes | Namespaces | Macros | Enumerations | Functions | Variables
DiagnosticIDs.cpp File Reference
#include "clang/Basic/DiagnosticIDs.h"
#include "clang/Basic/AllDiagnostics.h"
#include "clang/Basic/DiagnosticCategories.h"
#include "clang/Basic/SourceManager.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Support/ErrorHandling.h"
#include <map>
#include "clang/Basic/DiagnosticCommonKinds.inc"
#include "clang/Basic/DiagnosticDriverKinds.inc"
#include "clang/Basic/DiagnosticFrontendKinds.inc"
#include "clang/Basic/DiagnosticSerializationKinds.inc"
#include "clang/Basic/DiagnosticLexKinds.inc"
#include "clang/Basic/DiagnosticParseKinds.inc"
#include "clang/Basic/DiagnosticASTKinds.inc"
#include "clang/Basic/DiagnosticCommentKinds.inc"
#include "clang/Basic/DiagnosticCrossTUKinds.inc"
#include "clang/Basic/DiagnosticSemaKinds.inc"
#include "clang/Basic/DiagnosticAnalysisKinds.inc"
#include "clang/Basic/DiagnosticRefactoringKinds.inc"
#include "clang/Basic/DiagnosticGroups.inc"
Include dependency graph for DiagnosticIDs.cpp:

Go to the source code of this file.

Classes

class  clang::diag::CustomDiagInfo
 

Namespaces

 clang
 Dataflow Directional Tag Classes.
 
 clang::diag
 

Macros

#define STRINGIFY_NAME(NAME)   #NAME
 
#define VALIDATE_DIAG_SIZE(NAME)
 
#define DIAG(ENUM, CLASS, DEFAULT_SEVERITY, DESC, GROUP, SFINAE, NOWERROR, SHOWINSYSHEADER, CATEGORY)
 
#define CATEGORY(NAME, PREV)
 
#define GET_CATEGORY_TABLE
 
#define CATEGORY(X, ENUM)   { X, STR_SIZE(X, uint8_t) },
 
#define GET_DIAG_ARRAYS
 
#define GET_DIAG_TABLE
 

Enumerations

enum  
 

Functions

static const StaticDiagInfoRec * GetDiagInfo (unsigned DiagID)
 GetDiagInfo - Return the StaticDiagInfoRec entry for the specified DiagID, or null if the ID is invalid. More...
 
static DiagnosticMapping GetDefaultDiagMapping (unsigned DiagID)
 
static unsigned getBuiltinDiagClass (unsigned DiagID)
 getBuiltinDiagClass - Return the class field of the diagnostic. More...
 
static DiagnosticIDs::Level toLevel (diag::Severity SV)
 
static bool getDiagnosticsInGroup (diag::Flavor Flavor, const WarningOption *Group, SmallVectorImpl< diag::kind > &Diags)
 Return true if any diagnostics were found in this group, even if they were filtered out due to having the wrong flavor. More...
 

Variables

static const StaticDiagInfoRec StaticDiagInfo []
 
static const unsigned StaticDiagInfoSize = llvm::array_lengthof(StaticDiagInfo)
 
static const StaticDiagCategoryRec CategoryNameTable []
 
static const WarningOption OptionTable []
 

Macro Definition Documentation

◆ CATEGORY [1/2]

#define CATEGORY (   NAME,
  PREV 
)
Value:
if (DiagID > DIAG_START_##NAME) { \
Offset += NUM_BUILTIN_##PREV##_DIAGNOSTICS - DIAG_START_##PREV - 1; \
ID -= DIAG_START_##NAME - DIAG_START_##PREV; \
}

Referenced by GetDiagInfo().

◆ CATEGORY [2/2]

#define CATEGORY (   X,
  ENUM 
)    { X, STR_SIZE(X, uint8_t) },

◆ DIAG

#define DIAG (   ENUM,
  CLASS,
  DEFAULT_SEVERITY,
  DESC,
  GROUP,
  SFINAE,
  NOWERROR,
  SHOWINSYSHEADER,
  CATEGORY 
)
Value:
{ \
diag::ENUM, DEFAULT_SEVERITY, CLASS, DiagnosticIDs::SFINAE, NOWERROR, \
SHOWINSYSHEADER, CATEGORY, GROUP, STR_SIZE(DESC, uint16_t), DESC \
} \
,
#define CATEGORY(NAME, PREV)
#define STR_SIZE(str, fieldTy)

◆ GET_CATEGORY_TABLE

#define GET_CATEGORY_TABLE

◆ GET_DIAG_ARRAYS

#define GET_DIAG_ARRAYS

Definition at line 495 of file DiagnosticIDs.cpp.

◆ GET_DIAG_TABLE

#define GET_DIAG_TABLE

◆ STRINGIFY_NAME

#define STRINGIFY_NAME (   NAME)    #NAME

Definition at line 71 of file DiagnosticIDs.cpp.

◆ VALIDATE_DIAG_SIZE

#define VALIDATE_DIAG_SIZE (   NAME)
Value:
static_assert( \
static_cast<unsigned>(diag::NUM_BUILTIN_##NAME##_DIAGNOSTICS) < \
static_cast<unsigned>(diag::DIAG_START_##NAME) + \
static_cast<unsigned>(diag::DIAG_SIZE_##NAME), \
DIAG_SIZE_##NAME) " is insufficient to contain all " \
"diagnostics, it may need to be made larger in " \
"DiagnosticIDs.h.");
#define STRINGIFY_NAME(NAME)

Definition at line 72 of file DiagnosticIDs.cpp.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Definition at line 31 of file DiagnosticIDs.cpp.

Function Documentation

◆ getBuiltinDiagClass()

static unsigned getBuiltinDiagClass ( unsigned  DiagID)
static

◆ GetDefaultDiagMapping()

static DiagnosticMapping GetDefaultDiagMapping ( unsigned  DiagID)
static

◆ GetDiagInfo()

static const StaticDiagInfoRec* GetDiagInfo ( unsigned  DiagID)
static

◆ getDiagnosticsInGroup()

static bool getDiagnosticsInGroup ( diag::Flavor  Flavor,
const WarningOption *  Group,
SmallVectorImpl< diag::kind > &  Diags 
)
static

Return true if any diagnostics were found in this group, even if they were filtered out due to having the wrong flavor.

Definition at line 543 of file DiagnosticIDs.cpp.

References GetDiagInfo(), and clang::diag::Remark.

Referenced by clang::DiagnosticIDs::getDiagnosticsInGroup(), clang::DiagnosticIDs::getNearestOption(), and isTargetEnvironment().

◆ toLevel()

static DiagnosticIDs::Level toLevel ( diag::Severity  SV)
static

Variable Documentation

◆ CategoryNameTable

const StaticDiagCategoryRec CategoryNameTable[]
static
Initial value:
= {
#define GET_CATEGORY_TABLE
#define CATEGORY(X, ENUM)
{ nullptr, 0 }
}

Definition at line 225 of file DiagnosticIDs.cpp.

◆ OptionTable

const WarningOption OptionTable[]
static
Initial value:
= {
#define GET_DIAG_TABLE
}

Definition at line 514 of file DiagnosticIDs.cpp.

◆ StaticDiagInfo

const StaticDiagInfoRec StaticDiagInfo[]
static
Initial value:
= {
#define DIAG(ENUM, CLASS, DEFAULT_SEVERITY, DESC, GROUP, SFINAE, NOWERROR, SHOWINSYSHEADER, CATEGORY)
}

Definition at line 97 of file DiagnosticIDs.cpp.

◆ StaticDiagInfoSize

const unsigned StaticDiagInfoSize = llvm::array_lengthof(StaticDiagInfo)
static

Definition at line 120 of file DiagnosticIDs.cpp.

Referenced by clang::DiagnosticIDs::getAllDiagnostics().