Skip to content

Commit

Permalink
Userland: Locally suppress -Wc99-designator and re-enable globally
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
ADKaster authored and bgianfo committed Jan 4, 2022
1 parent c8cfd66 commit a103a85
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 1 deletion.
1 change: 0 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
9 changes: 9 additions & 0 deletions Userland/Applications/KeyboardMapper/KeyPositions.h
Original file line number Diff line number Diff line change
Expand Up @@ -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, ""},
Expand Down Expand Up @@ -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
10 changes: 10 additions & 0 deletions Userland/Libraries/LibC/sys/ttydefaults.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,11 @@
# endif
# include <sys/cdefs.h>

# ifdef __clang__
# pragma clang diagnostic push
# pragma clang diagnostic ignored "-Wc99-designator"
# endif

__BEGIN_DECLS
static const cc_t ttydefchars[NCCS] = {
[VINTR] = CINTR,
Expand All @@ -66,5 +71,10 @@ static const cc_t ttydefchars[NCCS] = {
[VLNEXT] = CLNEXT,
[VEOL2] = CEOL2
};

# ifdef __clang__
# pragma clang diagnostic pop
# endif

__END_DECLS
#endif

0 comments on commit a103a85

Please sign in to comment.