diff options
author | Alp Toker <alp@nuanti.com> | 2014-06-10 09:31:37 +0000 |
---|---|---|
committer | Alp Toker <alp@nuanti.com> | 2014-06-10 09:31:37 +0000 |
commit | c726c367f4fe33e4671d8695bfcc1b7b1bb0d112 (patch) | |
tree | c1b797ecdd2a08c38e9047dd62464a155ad9f5a0 /clang/lib | |
parent | 48eccb7fb3ff8b38e3b9e4045588f16829d86a4f (diff) | |
download | bcm5719-llvm-c726c367f4fe33e4671d8695bfcc1b7b1bb0d112.tar.gz bcm5719-llvm-c726c367f4fe33e4671d8695bfcc1b7b1bb0d112.zip |
Improve diagnostic mapping terminology
Diagnostic mappings are used to calculate the final severity of diagnostic
instances.
Detangle the implementation to reflect the terminology used in documentation
and bindings.
No change in functionality.
llvm-svn: 210518
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Basic/Diagnostic.cpp | 49 | ||||
-rw-r--r-- | clang/lib/Basic/DiagnosticIDs.cpp | 55 | ||||
-rw-r--r-- | clang/lib/Basic/Warnings.cpp | 7 | ||||
-rw-r--r-- | clang/lib/Frontend/PrintPreprocessedOutput.cpp | 9 | ||||
-rw-r--r-- | clang/lib/Lex/Pragma.cpp | 2 | ||||
-rw-r--r-- | clang/lib/Serialization/ASTReader.cpp | 6 | ||||
-rw-r--r-- | clang/lib/Serialization/ASTWriter.cpp | 2 |
7 files changed, 65 insertions, 65 deletions
diff --git a/clang/lib/Basic/Diagnostic.cpp b/clang/lib/Basic/Diagnostic.cpp index 13d25249015..6cf3c5c2eb9 100644 --- a/clang/lib/Basic/Diagnostic.cpp +++ b/clang/lib/Basic/Diagnostic.cpp @@ -162,7 +162,8 @@ DiagnosticsEngine::GetDiagStatePointForLoc(SourceLocation L) const { return Pos; } -void DiagnosticsEngine::setDiagnosticMapping(diag::kind Diag, diag::Mapping Map, +void DiagnosticsEngine::setDiagnosticMapping(diag::kind Diag, + diag::Severity Map, SourceLocation L) { assert(Diag < diag::DIAG_UPPER_LIMIT && "Can only map builtin diagnostics"); @@ -176,16 +177,16 @@ void DiagnosticsEngine::setDiagnosticMapping(diag::kind Diag, diag::Mapping Map, FullSourceLoc LastStateChangePos = DiagStatePoints.back().Loc; // Don't allow a mapping to a warning override an error/fatal mapping. if (Map == diag::MAP_WARNING) { - DiagnosticMappingInfo &Info = GetCurDiagState()->getOrAddMappingInfo(Diag); - if (Info.getMapping() == diag::MAP_ERROR || - Info.getMapping() == diag::MAP_FATAL) - Map = Info.getMapping(); + DiagnosticMapping &Info = GetCurDiagState()->getOrAddMapping(Diag); + if (Info.getSeverity() == diag::MAP_ERROR || + Info.getSeverity() == diag::MAP_FATAL) + Map = Info.getSeverity(); } - DiagnosticMappingInfo MappingInfo = makeMappingInfo(Map, L); + DiagnosticMapping Mapping = makeUserMapping(Map, L); // Common case; setting all the diagnostics of a group in one place. if (Loc.isInvalid() || Loc == LastStateChangePos) { - GetCurDiagState()->setMappingInfo(Diag, MappingInfo); + GetCurDiagState()->setMapping(Diag, Mapping); return; } @@ -198,7 +199,7 @@ void DiagnosticsEngine::setDiagnosticMapping(diag::kind Diag, diag::Mapping Map, // the new state became active. DiagStates.push_back(*GetCurDiagState()); PushDiagStatePoint(&DiagStates.back(), Loc); - GetCurDiagState()->setMappingInfo(Diag, MappingInfo); + GetCurDiagState()->setMapping(Diag, Mapping); return; } @@ -211,12 +212,12 @@ void DiagnosticsEngine::setDiagnosticMapping(diag::kind Diag, diag::Mapping Map, // Update all diagnostic states that are active after the given location. for (DiagStatePointsTy::iterator I = Pos+1, E = DiagStatePoints.end(); I != E; ++I) { - GetCurDiagState()->setMappingInfo(Diag, MappingInfo); + GetCurDiagState()->setMapping(Diag, Mapping); } // If the location corresponds to an existing point, just update its state. if (Pos->Loc == Loc) { - GetCurDiagState()->setMappingInfo(Diag, MappingInfo); + GetCurDiagState()->setMapping(Diag, Mapping); return; } @@ -225,14 +226,14 @@ void DiagnosticsEngine::setDiagnosticMapping(diag::kind Diag, diag::Mapping Map, assert(Pos->Loc.isBeforeInTranslationUnitThan(Loc)); DiagStates.push_back(*Pos->State); DiagState *NewState = &DiagStates.back(); - GetCurDiagState()->setMappingInfo(Diag, MappingInfo); + GetCurDiagState()->setMapping(Diag, Mapping); DiagStatePoints.insert(Pos+1, DiagStatePoint(NewState, FullSourceLoc(Loc, *SourceMgr))); } -bool DiagnosticsEngine::setDiagnosticGroupMapping( - StringRef Group, diag::Mapping Map, SourceLocation Loc) -{ +bool DiagnosticsEngine::setDiagnosticGroupMapping(StringRef Group, + diag::Severity Map, + SourceLocation Loc) { // Get the diagnostics in this group. SmallVector<diag::kind, 8> GroupDiags; if (Diags->getDiagnosticsInGroup(Group, GroupDiags)) @@ -262,12 +263,11 @@ bool DiagnosticsEngine::setDiagnosticGroupWarningAsError(StringRef Group, // Perform the mapping change. for (unsigned i = 0, e = GroupDiags.size(); i != e; ++i) { - DiagnosticMappingInfo &Info = GetCurDiagState()->getOrAddMappingInfo( - GroupDiags[i]); + DiagnosticMapping &Info = GetCurDiagState()->getOrAddMapping(GroupDiags[i]); - if (Info.getMapping() == diag::MAP_ERROR || - Info.getMapping() == diag::MAP_FATAL) - Info.setMapping(diag::MAP_WARNING); + if (Info.getSeverity() == diag::MAP_ERROR || + Info.getSeverity() == diag::MAP_FATAL) + Info.setSeverity(diag::MAP_WARNING); Info.setNoWarningAsError(true); } @@ -292,11 +292,10 @@ bool DiagnosticsEngine::setDiagnosticGroupErrorAsFatal(StringRef Group, // Perform the mapping change. for (unsigned i = 0, e = GroupDiags.size(); i != e; ++i) { - DiagnosticMappingInfo &Info = GetCurDiagState()->getOrAddMappingInfo( - GroupDiags[i]); + DiagnosticMapping &Info = GetCurDiagState()->getOrAddMapping(GroupDiags[i]); - if (Info.getMapping() == diag::MAP_FATAL) - Info.setMapping(diag::MAP_ERROR); + if (Info.getSeverity() == diag::MAP_FATAL) + Info.setSeverity(diag::MAP_ERROR); Info.setNoErrorAsFatal(true); } @@ -304,8 +303,8 @@ bool DiagnosticsEngine::setDiagnosticGroupErrorAsFatal(StringRef Group, return false; } -void DiagnosticsEngine::setMappingToAllDiagnostics(diag::Mapping Map, - SourceLocation Loc) { +void DiagnosticsEngine::setMappingForAllDiagnostics(diag::Severity Map, + SourceLocation Loc) { // Get all the diagnostics. SmallVector<diag::kind, 64> AllDiags; Diags->getAllDiagnostics(AllDiags); diff --git a/clang/lib/Basic/DiagnosticIDs.cpp b/clang/lib/Basic/DiagnosticIDs.cpp index 7c8fe365f5b..a99ae2661b8 100644 --- a/clang/lib/Basic/DiagnosticIDs.cpp +++ b/clang/lib/Basic/DiagnosticIDs.cpp @@ -38,7 +38,7 @@ enum { struct StaticDiagInfoRec { uint16_t DiagID; - unsigned Mapping : 3; + unsigned DefaultSeverity : 3; unsigned Class : 3; unsigned SFINAE : 2; unsigned WarnNoWerror : 1; @@ -66,12 +66,13 @@ struct StaticDiagInfoRec { } // namespace anonymous static const StaticDiagInfoRec StaticDiagInfo[] = { -#define DIAG(ENUM,CLASS,DEFAULT_MAPPING,DESC,GROUP, \ - SFINAE,NOWERROR,SHOWINSYSHEADER,CATEGORY) \ - { diag::ENUM, DEFAULT_MAPPING, CLASS, \ - DiagnosticIDs::SFINAE, \ - NOWERROR, SHOWINSYSHEADER, CATEGORY, GROUP, \ - STR_SIZE(DESC, uint16_t), DESC }, +#define DIAG(ENUM, CLASS, DEFAULT_SEVERITY, DESC, GROUP, SFINAE, NOWERROR, \ + SHOWINSYSHEADER, CATEGORY) \ + { \ + diag::ENUM, DEFAULT_SEVERITY, CLASS, DiagnosticIDs::SFINAE, NOWERROR, \ + SHOWINSYSHEADER, CATEGORY, GROUP, STR_SIZE(DESC, uint16_t), DESC \ + } \ + , #include "clang/Basic/DiagnosticCommonKinds.inc" #include "clang/Basic/DiagnosticDriverKinds.inc" #include "clang/Basic/DiagnosticFrontendKinds.inc" @@ -152,15 +153,15 @@ CATEGORY(ANALYSIS, SEMA) return Found; } -static DiagnosticMappingInfo GetDefaultDiagMappingInfo(unsigned DiagID) { - DiagnosticMappingInfo Info = DiagnosticMappingInfo::Make( - diag::MAP_FATAL, /*IsUser=*/false, /*IsPragma=*/false); +static DiagnosticMapping GetDefaultDiagMapping(unsigned DiagID) { + DiagnosticMapping Info = DiagnosticMapping::Make( + diag::MAP_FATAL, /*IsUser=*/false, /*IsPragma=*/false); if (const StaticDiagInfoRec *StaticInfo = GetDiagInfo(DiagID)) { - Info.setMapping((diag::Mapping) StaticInfo->Mapping); + Info.setSeverity((diag::Severity)StaticInfo->DefaultSeverity); if (StaticInfo->WarnNoWerror) { - assert(Info.getMapping() == diag::MAP_WARNING && + assert(Info.getSeverity() == diag::MAP_WARNING && "Unexpected mapping with no-Werror bit!"); Info.setNoWarningAsError(true); } @@ -192,15 +193,14 @@ namespace { // Unfortunately, the split between DiagnosticIDs and Diagnostic is not // particularly clean, but for now we just implement this method here so we can // access GetDefaultDiagMapping. -DiagnosticMappingInfo &DiagnosticsEngine::DiagState::getOrAddMappingInfo( - diag::kind Diag) -{ - std::pair<iterator, bool> Result = DiagMap.insert( - std::make_pair(Diag, DiagnosticMappingInfo())); +DiagnosticMapping & +DiagnosticsEngine::DiagState::getOrAddMapping(diag::kind Diag) { + std::pair<iterator, bool> Result = + DiagMap.insert(std::make_pair(Diag, DiagnosticMapping())); // Initialize the entry if we added it. if (Result.second) - Result.first->second = GetDefaultDiagMappingInfo(Diag); + Result.first->second = GetDefaultDiagMapping(Diag); return Result.first->second; } @@ -340,9 +340,9 @@ bool DiagnosticIDs::isBuiltinExtensionDiag(unsigned DiagID, if (DiagID >= diag::DIAG_UPPER_LIMIT || getBuiltinDiagClass(DiagID) != CLASS_EXTENSION) return false; - + EnabledByDefault = - GetDefaultDiagMappingInfo(DiagID).getMapping() != diag::MAP_IGNORE; + GetDefaultDiagMapping(DiagID).getSeverity() != diag::MAP_IGNORE; return true; } @@ -350,7 +350,7 @@ bool DiagnosticIDs::isDefaultMappingAsError(unsigned DiagID) { if (DiagID >= diag::DIAG_UPPER_LIMIT) return false; - return GetDefaultDiagMappingInfo(DiagID).getMapping() == diag::MAP_ERROR; + return GetDefaultDiagMapping(DiagID).getSeverity() == diag::MAP_ERROR; } bool DiagnosticIDs::isRemark(unsigned DiagID) { @@ -400,10 +400,9 @@ DiagnosticIDs::getDiagnosticLevel(unsigned DiagID, unsigned DiagClass, DiagnosticsEngine::DiagState *State = Pos->State; // Get the mapping information, or compute it lazily. - DiagnosticMappingInfo &MappingInfo = State->getOrAddMappingInfo( - (diag::kind)DiagID); + DiagnosticMapping &Mapping = State->getOrAddMapping((diag::kind)DiagID); - switch (MappingInfo.getMapping()) { + switch (Mapping.getSeverity()) { case diag::MAP_IGNORE: Result = DiagnosticIDs::Ignored; break; @@ -423,7 +422,7 @@ DiagnosticIDs::getDiagnosticLevel(unsigned DiagID, unsigned DiagClass, // Upgrade ignored diagnostics if -Weverything is enabled. if (Diag.EnableAllWarnings && Result == DiagnosticIDs::Ignored && - !MappingInfo.isUser()) + !Mapping.isUser()) Result = DiagnosticIDs::Warning; // Diagnostics of class REMARK are either printed as remarks or in case they @@ -441,7 +440,7 @@ DiagnosticIDs::getDiagnosticLevel(unsigned DiagID, unsigned DiagClass, // For extension diagnostics that haven't been explicitly mapped, check if we // should upgrade the diagnostic. - if (IsExtensionDiag && !MappingInfo.isUser()) { + if (IsExtensionDiag && !Mapping.isUser()) { switch (Diag.ExtBehavior) { case DiagnosticsEngine::Ext_Ignore: break; @@ -469,14 +468,14 @@ DiagnosticIDs::getDiagnosticLevel(unsigned DiagID, unsigned DiagClass, // If -Werror is enabled, map warnings to errors unless explicitly disabled. if (Result == DiagnosticIDs::Warning) { - if (Diag.WarningsAsErrors && !MappingInfo.hasNoWarningAsError()) + if (Diag.WarningsAsErrors && !Mapping.hasNoWarningAsError()) Result = DiagnosticIDs::Error; } // If -Wfatal-errors is enabled, map errors to fatal unless explicity // disabled. if (Result == DiagnosticIDs::Error) { - if (Diag.ErrorsAsFatal && !MappingInfo.hasNoErrorAsFatal()) + if (Diag.ErrorsAsFatal && !Mapping.hasNoErrorAsFatal()) Result = DiagnosticIDs::Fatal; } diff --git a/clang/lib/Basic/Warnings.cpp b/clang/lib/Basic/Warnings.cpp index b09e69aeca6..df72ef7186c 100644 --- a/clang/lib/Basic/Warnings.cpp +++ b/clang/lib/Basic/Warnings.cpp @@ -106,8 +106,9 @@ void clang::ProcessWarningOptions(DiagnosticsEngine &Diags, // Figure out how this option affects the warning. If -Wfoo, map the // diagnostic to a warning, if -Wno-foo, map it to ignore. - diag::Mapping Mapping = isPositive ? diag::MAP_WARNING : diag::MAP_IGNORE; - + diag::Severity Mapping = + isPositive ? diag::MAP_WARNING : diag::MAP_IGNORE; + // -Wsystem-headers is a special case, not driven by the option table. It // cannot be controlled with -Werror. if (Opt == "system-headers") { @@ -124,7 +125,7 @@ void clang::ProcessWarningOptions(DiagnosticsEngine &Diags, Diags.setEnableAllWarnings(true); } else { Diags.setEnableAllWarnings(false); - Diags.setMappingToAllDiagnostics(diag::MAP_IGNORE); + Diags.setMappingForAllDiagnostics(diag::MAP_IGNORE); } } continue; diff --git a/clang/lib/Frontend/PrintPreprocessedOutput.cpp b/clang/lib/Frontend/PrintPreprocessedOutput.cpp index 8c32c2458fa..bde1fa16314 100644 --- a/clang/lib/Frontend/PrintPreprocessedOutput.cpp +++ b/clang/lib/Frontend/PrintPreprocessedOutput.cpp @@ -139,7 +139,7 @@ public: void PragmaDiagnosticPush(SourceLocation Loc, StringRef Namespace) override; void PragmaDiagnosticPop(SourceLocation Loc, StringRef Namespace) override; void PragmaDiagnostic(SourceLocation Loc, StringRef Namespace, - diag::Mapping Map, StringRef Str) override; + diag::Severity Map, StringRef Str) override; void PragmaWarning(SourceLocation Loc, StringRef WarningSpec, ArrayRef<int> Ids) override; void PragmaWarningPush(SourceLocation Loc, int Level) override; @@ -439,9 +439,10 @@ PragmaDiagnosticPop(SourceLocation Loc, StringRef Namespace) { setEmittedDirectiveOnThisLine(); } -void PrintPPOutputPPCallbacks:: -PragmaDiagnostic(SourceLocation Loc, StringRef Namespace, - diag::Mapping Map, StringRef Str) { +void PrintPPOutputPPCallbacks::PragmaDiagnostic(SourceLocation Loc, + StringRef Namespace, + diag::Severity Map, + StringRef Str) { startNewLineIfNeeded(); MoveToLine(Loc); OS << "#pragma " << Namespace << " diagnostic "; diff --git a/clang/lib/Lex/Pragma.cpp b/clang/lib/Lex/Pragma.cpp index b837fc5ef7c..ea3a10d5369 100644 --- a/clang/lib/Lex/Pragma.cpp +++ b/clang/lib/Lex/Pragma.cpp @@ -954,7 +954,7 @@ public: IdentifierInfo *II = Tok.getIdentifierInfo(); PPCallbacks *Callbacks = PP.getPPCallbacks(); - diag::Mapping Map; + diag::Severity Map; if (II->isStr("warning")) Map = diag::MAP_WARNING; else if (II->isStr("error")) diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp index 4ea95d07120..cf47376ee55 100644 --- a/clang/lib/Serialization/ASTReader.cpp +++ b/clang/lib/Serialization/ASTReader.cpp @@ -5022,9 +5022,9 @@ void ASTReader::ReadPragmaDiagnosticMappings(DiagnosticsEngine &Diag) { if (DiagID == (unsigned)-1) { break; // no more diag/map pairs for this location. } - diag::Mapping Map = (diag::Mapping)F.PragmaDiagMappings[Idx++]; - DiagnosticMappingInfo MappingInfo = Diag.makeMappingInfo(Map, Loc); - Diag.GetCurDiagState()->setMappingInfo(DiagID, MappingInfo); + diag::Severity Map = (diag::Severity)F.PragmaDiagMappings[Idx++]; + DiagnosticMapping Mapping = Diag.makeUserMapping(Map, Loc); + Diag.GetCurDiagState()->setMapping(DiagID, Mapping); } } } diff --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp index 35da82c6e4c..cbb6401e2e9 100644 --- a/clang/lib/Serialization/ASTWriter.cpp +++ b/clang/lib/Serialization/ASTWriter.cpp @@ -2542,7 +2542,7 @@ void ASTWriter::WritePragmaDiagnosticMappings(const DiagnosticsEngine &Diag, I = point.State->begin(), E = point.State->end(); I != E; ++I) { if (I->second.isPragma()) { Record.push_back(I->first); - Record.push_back(I->second.getMapping()); + Record.push_back(I->second.getSeverity()); } } Record.push_back(-1); // mark the end of the diag/map pairs for this |