diff options
author | Daniel Dunbar <daniel@zuster.org> | 2011-09-29 01:30:00 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2011-09-29 01:30:00 +0000 |
commit | b1c99c679adb53be8f478d08be83af6c9c22ae4b (patch) | |
tree | d4453a90ebec1c162117f522164d38ce0478ffd5 /include/clang/Basic/DiagnosticIDs.h | |
parent | c3c4a89747e12ebc2eabe57265c8b69ab720ecbf (diff) |
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.h | 28 |
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> { |