From a103a85ae6fc9a6296da22fcda4685fa5db700d7 Mon Sep 17 00:00:00 2001 From: Andrew Kaster Date: Mon, 3 Jan 2022 01:52:37 -0700 Subject: [PATCH] Userland: Locally suppress -Wc99-designator and re-enable globally There's only two places where we're using the C99 feature of array designated initalizers. This feature seemingly wasn't included with C++20 designated initalizers for classes and structs. The only two places we were using this feature are suitably old and isolated that it makes sense to just suppress the warning at the usage sites while discouraging future array designated intializers in new code. --- CMakeLists.txt | 1 - Userland/Applications/KeyboardMapper/KeyPositions.h | 9 +++++++++ Userland/Libraries/LibC/sys/ttydefaults.h | 10 ++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 69d9bd75595..6c13259290c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -197,7 +197,6 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang$") add_compile_options(-Wno-user-defined-literals) add_compile_options(-Wno-atomic-alignment) - add_compile_options(-Wno-c99-designator) add_compile_options(-Wno-implicit-const-int-float-conversion) add_compile_options(-Wno-null-pointer-subtraction) add_compile_options(-Wno-tautological-constant-out-of-range-compare) diff --git a/Userland/Applications/KeyboardMapper/KeyPositions.h b/Userland/Applications/KeyboardMapper/KeyPositions.h index f07e264e2fb..debaec22229 100644 --- a/Userland/Applications/KeyboardMapper/KeyPositions.h +++ b/Userland/Applications/KeyboardMapper/KeyPositions.h @@ -21,6 +21,11 @@ struct KeyPosition { #define KEY_COUNT 63 +#ifdef __clang__ +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wc99-designator" +#endif + struct KeyPosition keys[KEY_COUNT] = { // clang-format off [ 0] = { 0, 0, 0, 0, 0, false, 0, ""}, @@ -93,3 +98,7 @@ struct KeyPosition keys[KEY_COUNT] = { [62] = {0xE01D, 689, 208, 74, 50, false, 0, "right ctrl"} // clang-format on }; + +#ifdef __clang__ +# pragma clang diagnostic pop +#endif diff --git a/Userland/Libraries/LibC/sys/ttydefaults.h b/Userland/Libraries/LibC/sys/ttydefaults.h index 2db57a43b20..c7ccbf381e9 100644 --- a/Userland/Libraries/LibC/sys/ttydefaults.h +++ b/Userland/Libraries/LibC/sys/ttydefaults.h @@ -46,6 +46,11 @@ # endif # include +# ifdef __clang__ +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wc99-designator" +# endif + __BEGIN_DECLS static const cc_t ttydefchars[NCCS] = { [VINTR] = CINTR, @@ -66,5 +71,10 @@ static const cc_t ttydefchars[NCCS] = { [VLNEXT] = CLNEXT, [VEOL2] = CEOL2 }; + +# ifdef __clang__ +# pragma clang diagnostic pop +# endif + __END_DECLS #endif