================
@@ -179,13 +180,85 @@ class DiagnosticMapping {
class DiagnosticIDs : public RefCountedBase<DiagnosticIDs> {
public:
/// The level of the diagnostic, after it has been through mapping.
- enum Level {
- Ignored, Note, Remark, Warning, Error, Fatal
+ enum Level : uint8_t { Ignored, Note, Remark, Warning, Error, Fatal };
+
+ // Diagnostic classes.
+ enum Class {
+ CLASS_NOTE = 0x01,
+ CLASS_REMARK = 0x02,
+ CLASS_WARNING = 0x03,
+ CLASS_EXTENSION = 0x04,
+ CLASS_ERROR = 0x05
+ };
+
+ static bool IsCustomDiag(diag::kind Diag) {
+ return Diag >= diag::DIAG_UPPER_LIMIT;
+ }
+
+ class CustomDiagDesc {
+ diag::Severity DefaultSeverity : 3;
+ unsigned Class : 3;
+ unsigned ShowInSystemHeader : 1;
+ unsigned ShowInSystemMacro : 1;
+ unsigned HasGroup : 1;
----------------
AaronBallman wrote:
These all need to use `unsigned` and `LLVM_PREFERRED_TYPE` to be properly
packed and still useful within a debugger.
https://github.com/llvm/llvm-project/pull/70976
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits