|
| 1 | +#ifndef COMPILER_WARNINGS_H |
| 2 | +#define COMPILER_WARNINGS_H |
| 3 | + |
| 4 | +#if defined(__GNUC__) || defined(__clang__) |
| 5 | +// #pragma GCC diagnostic error "-Wpedantic" |
| 6 | +#pragma GCC diagnostic error "-Wall" |
| 7 | +#pragma GCC diagnostic error "-Wextra" |
| 8 | +#pragma GCC diagnostic error "-Wvla" |
| 9 | +#pragma GCC diagnostic error "-Wmissing-noreturn" |
| 10 | +#pragma GCC diagnostic ignored "-Wcast-qual" |
| 11 | +#pragma GCC diagnostic error "-Wdeprecated" |
| 12 | +#pragma GCC diagnostic error "-Wdouble-promotion" |
| 13 | +#pragma GCC diagnostic error "-Wint-conversion" |
| 14 | +#pragma GCC diagnostic error "-Wimplicit-int" |
| 15 | +#pragma GCC diagnostic error "-Wimplicit-function-declaration" |
| 16 | +#pragma GCC diagnostic error "-Wincompatible-pointer-types" |
| 17 | +#pragma GCC diagnostic error "-Wunused-result" |
| 18 | +#pragma GCC diagnostic error "-Wswitch" |
| 19 | +#pragma GCC diagnostic error "-Wformat" |
| 20 | +#pragma GCC diagnostic error "-Wreturn-type" |
| 21 | +#pragma GCC diagnostic ignored "-Woverlength-strings" |
| 22 | +#pragma GCC diagnostic ignored "-Wunused-function" |
| 23 | +#endif |
| 24 | + |
| 25 | +#if defined(__clang__) |
| 26 | +#pragma clang diagnostic ignored "-Wnullability-extension" |
| 27 | +#pragma clang diagnostic ignored "-Wfixed-enum-extension" |
| 28 | +#pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments" |
| 29 | +#pragma clang diagnostic ignored "-Wlanguage-extension-token" |
| 30 | +#pragma clang diagnostic ignored "-Wgnu-auto-type" |
| 31 | +#pragma clang diagnostic ignored "-Wextra-semi" |
| 32 | +#pragma clang diagnostic error "-Wassign-enum" |
| 33 | +#pragma clang diagnostic ignored "-Wshadow" |
| 34 | +#pragma clang diagnostic error "-Warray-bounds-pointer-arithmetic" |
| 35 | +#pragma clang diagnostic error "-Wcovered-switch-default" |
| 36 | +#pragma clang diagnostic error "-Wfor-loop-analysis" |
| 37 | +#pragma clang diagnostic error "-Winfinite-recursion" |
| 38 | +#pragma clang diagnostic error "-Wduplicate-enum" |
| 39 | +#pragma clang diagnostic error "-Wmissing-field-initializers" |
| 40 | +#pragma clang diagnostic error "-Wpointer-type-mismatch" |
| 41 | +#pragma clang diagnostic error "-Wextra-tokens" |
| 42 | +#pragma clang diagnostic error "-Wmacro-redefined" |
| 43 | +#pragma clang diagnostic error "-Winitializer-overrides" |
| 44 | +#pragma clang diagnostic error "-Wsometimes-uninitialized" |
| 45 | +#pragma clang diagnostic error "-Wunused-comparison" |
| 46 | +#pragma clang diagnostic error "-Wundefined-internal" |
| 47 | +#pragma clang diagnostic error "-Wnon-literal-null-conversion" |
| 48 | +#pragma clang diagnostic ignored "-Wnullable-to-nonnull-conversion" |
| 49 | +#pragma clang diagnostic error "-Wnullability-completeness" |
| 50 | +#pragma clang diagnostic error "-Wnullability" |
| 51 | +#pragma clang diagnostic error "-Wuninitialized" |
| 52 | +#pragma clang diagnostic error "-Wconditional-uninitialized" |
| 53 | +#pragma clang diagnostic error "-Wcomma" |
| 54 | +#endif |
| 55 | + |
| 56 | +#if defined(__GNUC__) && !defined(__clang__) |
| 57 | +#pragma GCC diagnostic ignored "-Wmissing-braces" |
| 58 | +#pragma GCC diagnostic ignored "-Wmissing-field-initializers" |
| 59 | +#pragma GCC diagnostic ignored "-Wsuggest-attribute=noreturn" |
| 60 | +#endif |
| 61 | + |
| 62 | +#endif |
0 commit comments