11 #if defined(__GNUG__) && !defined(__clang__) // gcc 13 # define JASL_DIAGNOSTIC_PUSH() _Pragma("GCC diagnostic push") 14 # define JASL_DIAGNOSTIC_POP() _Pragma("GCC diagnostic pop") 16 # define JASL_DIAGNOSTIC_IGNORED_MSVC(id) 17 # define JASL_DIAGNOSTIC_IGNORED_GCC(id) \ 18 _Pragma(JASL_STR(GCC diagnostic ignored id)) 20 # define JASL_DIAGNOSTIC_IGNORED_GCC_SINCE7(id) \ 21 JASL_DIAGNOSTIC_IGNORED_GCC(id) 23 # define JASL_DIAGNOSTIC_IGNORED_GCC_SINCE7(id) 25 # define JASL_DIAGNOSTIC_IGNORED_CLANG(id) 27 # define JASL_DIAGNOSTIC_IGNORED(id) JASL_DIAGNOSTIC_IGNORED_GCC(id) 29 # define JASL_WARNING_OLD_STYLE_CAST 30 # define JASL_WARNING_SIGN_CONVERSION 31 # define JASL_WARNING_IMPLICIT_FALLTHROUGH "-Wimplicit-fallthrough" 32 # define JAS_WARNING_CAST_ALING 34 #elif defined(__clang__) // clang 37 # define JASL_DIAGNOSTIC_PUSH() _Pragma("clang diagnostic push") 38 # define JASL_DIAGNOSTIC_POP() _Pragma("clang diagnostic pop") 40 # define JASL_DIAGNOSTIC_IGNORED_MSVC(id) 41 # define JASL_DIAGNOSTIC_IGNORED_GCC(id) 42 # define JASL_DIAGNOSTIC_IGNORED_GCC_SINCE7(id) 43 # define JASL_DIAGNOSTIC_IGNORED_CLANG(id) \ 44 _Pragma(JASL_STR(clang diagnostic ignored id)) 46 # define JASL_DIAGNOSTIC_IGNORED(id) JASL_DIAGNOSTIC_IGNORED_CLANG(id) 48 # define JASL_WARNING_OLD_STYLE_CAST "-Wold-style-cast" 49 # define JASL_WARNING_SIGN_CONVERSION "-Wsign-conversion" 50 # define JASL_WARNING_IMPLICIT_FALLTHROUGH "-Wimplicit-fallthrough" 51 # define JAS_WARNING_CAST_ALING "-Wcast-align" 53 #elif defined(_MSC_VER) // msvc 56 # define JASL_DIAGNOSTIC_PUSH() __pragma(warning(push)) 57 # define JASL_DIAGNOSTIC_POP() __pragma(warning(pop)) 59 # define JASL_DIAGNOSTIC_IGNORED_MSVC(id) __pragma(warning(disable : id)) 60 # define JASL_DIAGNOSTIC_IGNORED_GCC(id) 61 # define JASL_DIAGNOSTIC_IGNORED_GCC_SINCE7(id) 62 # define JASL_DIAGNOSTIC_IGNORED_CLANG(id) 64 # define JASL_DIAGNOSTIC_IGNORED(id) JASL_DIAGNOSTIC_IGNORED_MSVC(id) 66 # define JASL_WARNING_OLD_STYLE_CAST 67 # define JASL_WARNING_SIGN_CONVERSION 68 # define JASL_WARNING_IMPLICIT_FALLTHROUGH 69 # define JAS_WARNING_CAST_ALING 73 # define JASL_DIAGNOSTIC_PUSH() 74 # define JASL_DIAGNOSTIC_POP() 76 # define JASL_DIAGNOSTIC_IGNORED_MSVC(id) 77 # define JASL_DIAGNOSTIC_IGNORED_GCC(id) 78 # define JASL_DIAGNOSTIC_IGNORED_GCC_SINCE7(id) 79 # define JASL_DIAGNOSTIC_IGNORED_CLANG(id) 81 # define JASL_DIAGNOSTIC_IGNORED(id) 83 # define JASL_WARNING_OLD_STYLE_CAST 84 # define JASL_WARNING_SIGN_CONVERSION 85 # define JASL_WARNING_IMPLICIT_FALLTHROUGH 86 # define JAS_WARNING_CAST_ALING