summaryrefslogtreecommitdiff
path: root/include/clang/Basic/DiagnosticIDs.h
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2011-09-29 01:30:00 +0000
committerDaniel Dunbar <daniel@zuster.org>2011-09-29 01:30:00 +0000
commitb1c99c679adb53be8f478d08be83af6c9c22ae4b (patch)
treed4453a90ebec1c162117f522164d38ce0478ffd5 /include/clang/Basic/DiagnosticIDs.h
parentc3c4a89747e12ebc2eabe57265c8b69ab720ecbf (diff)
downloadclang-b1c99c679adb53be8f478d08be83af6c9c22ae4b.tar.gz
clang-b1c99c679adb53be8f478d08be83af6c9c22ae4b.tar.bz2
clang-b1c99c679adb53be8f478d08be83af6c9c22ae4b.tar.xz
Basic/Diagnostics: Add a DiagnosticMappingInfo helper class, and switch to
storing mappings with that instead of straying some magic constants about the source. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140760 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Basic/DiagnosticIDs.h')
-rw-r--r--include/clang/Basic/DiagnosticIDs.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/include/clang/Basic/DiagnosticIDs.h b/include/clang/Basic/DiagnosticIDs.h
index c50bc662fb..f11293c6c8 100644
--- a/include/clang/Basic/DiagnosticIDs.h
+++ b/include/clang/Basic/DiagnosticIDs.h
@@ -74,6 +74,34 @@ namespace clang {
};
}
+class DiagnosticMappingInfo {
+ unsigned Mapping : 3;
+ unsigned IsUser : 1;
+ unsigned IsPragma : 1;
+
+public:
+ static DiagnosticMappingInfo MakeUnset() {
+ DiagnosticMappingInfo Result;
+ Result.Mapping = Result.IsUser = Result.IsPragma = 0;
+ return Result;
+ }
+
+ static DiagnosticMappingInfo MakeInfo(diag::Mapping Mapping,
+ bool IsUser, bool IsPragma) {
+ DiagnosticMappingInfo Result;
+ Result.Mapping = Mapping;
+ Result.IsUser = IsUser;
+ Result.IsPragma = IsPragma;
+ return Result;
+ }
+
+ diag::Mapping getMapping() const { return diag::Mapping(Mapping); }
+ bool isUser() const { return IsUser; }
+ bool isPragma() const { return IsPragma; }
+
+ bool isUnset() const { return Mapping == 0; }
+};
+
/// \brief Used for handling and querying diagnostic IDs. Can be used and shared
/// by multiple Diagnostics for multiple translation units.
class DiagnosticIDs : public llvm::RefCountedBase<DiagnosticIDs> {