1 //===--- SerializedDiagnostics.h - Common data for serialized diagnostics -===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLVM_CLANG_FRONTEND_SERIALIZEDDIAGNOSTICS_H
10 #define LLVM_CLANG_FRONTEND_SERIALIZEDDIAGNOSTICS_H
11 
12 #include "llvm/Bitstream/BitCodes.h"
13 
14 namespace clang {
15 namespace serialized_diags {
16 
17 enum BlockIDs {
18   /// A top-level block which represents any meta data associated
19   /// with the diagostics, including versioning of the format.
20   BLOCK_META = llvm::bitc::FIRST_APPLICATION_BLOCKID,
21 
22   /// The this block acts as a container for all the information
23   /// for a specific diagnostic.
24   BLOCK_DIAG
25 };
26 
27 enum RecordIDs {
28   RECORD_VERSION = 1,
29   RECORD_DIAG,
30   RECORD_SOURCE_RANGE,
31   RECORD_DIAG_FLAG,
32   RECORD_CATEGORY,
33   RECORD_FILENAME,
34   RECORD_FIXIT,
35   RECORD_FIRST = RECORD_VERSION,
36   RECORD_LAST = RECORD_FIXIT
37 };
38 
39 /// A stable version of DiagnosticIDs::Level.
40 ///
41 /// Do not change the order of values in this enum, and please increment the
42 /// serialized diagnostics version number when you add to it.
43 enum Level {
44   Ignored = 0,
45   Note,
46   Warning,
47   Error,
48   Fatal,
49   Remark
50 };
51 
52 /// The serialized diagnostics version number.
53 enum { VersionNumber = 2 };
54 
55 } // end serialized_diags namespace
56 } // end clang namespace
57 
58 #endif
59