From 243480b5152b8385028c20ee1a57f1fdaa5e7e9e Mon Sep 17 00:00:00 2001 From: Zygo Blaxell Date: Fri, 18 Dec 2020 11:32:58 -0500 Subject: [PATCH] ntoa: fix comment disparaging gcc for not implementing C99 compound literals in C++ C99's "{ 0 }" notation for filling in a struct with all zeros was not included in the C++11 standard, so gcc doesn't implement it and neither does clang. gcc does (did?) have issues with warnings on the same code in C99, complaining about uninitialized struct members when "{0}" explicitly initializes every member to a zero value. These issues don't apply in the C++ code where NTOA_TABLE_ENTRY_END is used. Signed-off-by: Zygo Blaxell --- include/crucible/ntoa.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/crucible/ntoa.h b/include/crucible/ntoa.h index 1e86635..de614f4 100644 --- a/include/crucible/ntoa.h +++ b/include/crucible/ntoa.h @@ -22,7 +22,7 @@ namespace crucible { // Enumerations (entire value matches all bits) #define NTOA_TABLE_ENTRY_ENUM(x) { .n = (x), .mask = ~0UL, .a = (#x) } -// End of table (sorry, gcc doesn't implement this) +// End of table (sorry, C++ didn't get C99's compound literals, so we have to write out all the member names) #define NTOA_TABLE_ENTRY_END() { .n = 0, .mask = 0, .a = nullptr } #endif // CRUCIBLE_NTOA_H