aboutsummaryrefslogtreecommitdiff
path: root/lib/Basic/Diagnostic.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-01-29 06:55:46 +0000
committerChris Lattner <sabre@nondot.org>2009-01-29 06:55:46 +0000
commit88eccaf06f9d88191723e71bdf5ca68409393be6 (patch)
tree0e9eaa3a3fb4656cc4f1934f694e0bb2693b712a /lib/Basic/Diagnostic.cpp
parent56f0d16c1159d8bc585f583cfc440298e6dbd330 (diff)
Fix -Wimplicit-function-declaration, which required some refactoring and
changes in various diagnostics code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63282 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Basic/Diagnostic.cpp')
-rw-r--r--lib/Basic/Diagnostic.cpp37
1 files changed, 10 insertions, 27 deletions
diff --git a/lib/Basic/Diagnostic.cpp b/lib/Basic/Diagnostic.cpp
index ee0345b18d..6e39beb0c8 100644
--- a/lib/Basic/Diagnostic.cpp
+++ b/lib/Basic/Diagnostic.cpp
@@ -36,21 +36,6 @@ enum {
class_mask = 0x07
};
-namespace clang {
- namespace diag {
- enum _kind{
-#define DIAG(ENUM,FLAGS,DESC) ENUM,
-#define LEXSTART
-#define PARSESTART
-#define ASTSTART
-#define SEMASTART
-#define ANALYSISSTART
-#include "clang/Basic/DiagnosticKinds.def"
- NUM_BUILTIN_DIAGNOSTICS = DIAG_UPPER_LIMIT
- };
- }
-}
-
/// DiagnosticFlags - A set of flags, or'd together, that describe the
/// diagnostic.
#define DIAG(ENUM,FLAGS,DESC) FLAGS,
@@ -83,7 +68,7 @@ static unsigned char DiagnosticFlagsAnalysis[] = {
/// getDiagClass - Return the class field of the diagnostic.
///
static unsigned getBuiltinDiagClass(unsigned DiagID) {
- assert(DiagID < diag::NUM_BUILTIN_DIAGNOSTICS &&
+ assert(DiagID < DIAG_UPPER_LIMIT &&
"Diagnostic ID out of range!");
unsigned res;
if (DiagID < DIAG_START_LEX)
@@ -145,16 +130,16 @@ namespace clang {
/// getDescription - Return the description of the specified custom
/// diagnostic.
const char *getDescription(unsigned DiagID) const {
- assert(this && DiagID-diag::NUM_BUILTIN_DIAGNOSTICS < DiagInfo.size() &&
+ assert(this && DiagID-DIAG_UPPER_LIMIT < DiagInfo.size() &&
"Invalid diagnosic ID");
- return DiagInfo[DiagID-diag::NUM_BUILTIN_DIAGNOSTICS].second.c_str();
+ return DiagInfo[DiagID-DIAG_UPPER_LIMIT].second.c_str();
}
/// getLevel - Return the level of the specified custom diagnostic.
Diagnostic::Level getLevel(unsigned DiagID) const {
- assert(this && DiagID-diag::NUM_BUILTIN_DIAGNOSTICS < DiagInfo.size() &&
+ assert(this && DiagID-DIAG_UPPER_LIMIT < DiagInfo.size() &&
"Invalid diagnosic ID");
- return DiagInfo[DiagID-diag::NUM_BUILTIN_DIAGNOSTICS].first;
+ return DiagInfo[DiagID-DIAG_UPPER_LIMIT].first;
}
unsigned getOrCreateDiagID(Diagnostic::Level L, const char *Message,
@@ -166,7 +151,7 @@ namespace clang {
return I->second;
// If not, assign a new ID.
- unsigned ID = DiagInfo.size()+diag::NUM_BUILTIN_DIAGNOSTICS;
+ unsigned ID = DiagInfo.size()+DIAG_UPPER_LIMIT;
DiagIDs.insert(std::make_pair(D, ID));
DiagInfo.push_back(D);
@@ -231,16 +216,14 @@ unsigned Diagnostic::getCustomDiagID(Level L, const char *Message) {
/// level of the specified diagnostic ID is a Note, Warning, or Extension.
/// Note that this only works on builtin diagnostics, not custom ones.
bool Diagnostic::isBuiltinNoteWarningOrExtension(unsigned DiagID) {
- return DiagID < diag::NUM_BUILTIN_DIAGNOSTICS &&
- getBuiltinDiagClass(DiagID) < ERROR;
+ return DiagID < DIAG_UPPER_LIMIT && getBuiltinDiagClass(DiagID) < ERROR;
}
/// getDescription - Given a diagnostic ID, return a description of the
/// issue.
const char *Diagnostic::getDescription(unsigned DiagID) const {
- if (DiagID < diag::NUM_BUILTIN_DIAGNOSTICS)
- {
+ if (DiagID < DIAG_UPPER_LIMIT) {
if (DiagID < DIAG_START_LEX)
return DiagnosticTextCommon[DiagID];
else if (DiagID < DIAG_START_PARSE)
@@ -263,7 +246,7 @@ const char *Diagnostic::getDescription(unsigned DiagID) const {
/// the DiagnosticClient.
Diagnostic::Level Diagnostic::getDiagnosticLevel(unsigned DiagID) const {
// Handle custom diagnostics, which cannot be mapped.
- if (DiagID >= diag::NUM_BUILTIN_DIAGNOSTICS)
+ if (DiagID >= DIAG_UPPER_LIMIT)
return CustomDiagInfo->getLevel(DiagID);
unsigned DiagClass = getBuiltinDiagClass(DiagID);
@@ -324,7 +307,7 @@ void Diagnostic::ProcessDiag() {
// ignore extensions and warnings in -Werror and -pedantic-errors modes,
// which *map* warnings/extensions to errors.
if (SuppressSystemWarnings &&
- Info.getID() < diag::NUM_BUILTIN_DIAGNOSTICS &&
+ Info.getID() < DIAG_UPPER_LIMIT &&
getBuiltinDiagClass(Info.getID()) != ERROR &&
Info.getLocation().isValid() &&
Info.getLocation().getSpellingLoc().isInSystemHeader())