File indexing completed on 2024-05-18 08:29:48
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #ifndef DIAGNOSTICS_H
0017 #define DIAGNOSTICS_H
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033 #ifdef __GNUC__
0034 # define DIAGNOSTIC_PUSH _Pragma ("GCC diagnostic push")
0035 # define DIAGNOSTIC_POP _Pragma ("GCC diagnostic pop")
0036
0037
0038 # define DIAGNOSTIC_STRINGIFY_1(x) #x
0039 # define DIAGNOSTIC_STRINGIFY(x) DIAGNOSTIC_STRINGIFY_1 (x)
0040
0041 # define DIAGNOSTIC_IGNORE(option) \
0042 _Pragma (DIAGNOSTIC_STRINGIFY (GCC diagnostic ignored option))
0043 # define DIAGNOSTIC_ERROR(option) \
0044 _Pragma (DIAGNOSTIC_STRINGIFY (GCC diagnostic error option))
0045 #else
0046 # define DIAGNOSTIC_PUSH
0047 # define DIAGNOSTIC_POP
0048 # define DIAGNOSTIC_IGNORE(option)
0049 #endif
0050
0051 #if defined (__clang__)
0052
0053 # define DIAGNOSTIC_IGNORE_SELF_MOVE DIAGNOSTIC_IGNORE ("-Wself-move")
0054 # define DIAGNOSTIC_IGNORE_DEPRECATED_DECLARATIONS \
0055 DIAGNOSTIC_IGNORE ("-Wdeprecated-declarations")
0056 # define DIAGNOSTIC_IGNORE_DEPRECATED_REGISTER \
0057 DIAGNOSTIC_IGNORE ("-Wdeprecated-register")
0058 # if __has_warning ("-Wenum-compare-switch")
0059 # define DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES \
0060 DIAGNOSTIC_IGNORE ("-Wenum-compare-switch")
0061 # endif
0062
0063 # define DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL \
0064 DIAGNOSTIC_IGNORE ("-Wformat-nonliteral")
0065
0066 # define DIAGNOSTIC_ERROR_SWITCH \
0067 DIAGNOSTIC_ERROR ("-Wswitch")
0068
0069 #elif defined (__GNUC__)
0070
0071 # if __GNUC__ >= 7
0072 # define DIAGNOSTIC_IGNORE_DEPRECATED_REGISTER \
0073 DIAGNOSTIC_IGNORE ("-Wregister")
0074 # endif
0075
0076 # define DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION \
0077 DIAGNOSTIC_IGNORE ("-Wstringop-truncation")
0078
0079 # define DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL \
0080 DIAGNOSTIC_IGNORE ("-Wformat-nonliteral")
0081
0082
0083
0084
0085 # if __GNUC__ >= 5
0086 # define DIAGNOSTIC_ERROR_SWITCH DIAGNOSTIC_ERROR ("-Wswitch")
0087 # endif
0088
0089 #endif
0090
0091 #ifndef DIAGNOSTIC_IGNORE_SELF_MOVE
0092 # define DIAGNOSTIC_IGNORE_SELF_MOVE
0093 #endif
0094
0095 #ifndef DIAGNOSTIC_IGNORE_DEPRECATED_DECLARATIONS
0096 # define DIAGNOSTIC_IGNORE_DEPRECATED_DECLARATIONS
0097 #endif
0098
0099 #ifndef DIAGNOSTIC_IGNORE_DEPRECATED_REGISTER
0100 # define DIAGNOSTIC_IGNORE_DEPRECATED_REGISTER
0101 #endif
0102
0103 #ifndef DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES
0104 # define DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES
0105 #endif
0106
0107 #ifndef DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION
0108 # define DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION
0109 #endif
0110
0111 #ifndef DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL
0112 # define DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL
0113 #endif
0114
0115 #ifndef DIAGNOSTIC_ERROR_SWITCH
0116 # define DIAGNOSTIC_ERROR_SWITCH
0117 #endif
0118
0119 #endif