[PATCH] Use gdb_static_assert in charset.c

Christian Biesinger via gdb-patches
2019-10-07T17:35:18Z

It currently has a "manual" static assert.

gdb/ChangeLog:

2019-10-07 Christian Biesinger <cbiesinger@google.com>

* charset.c (your_gdb_wchar_t_is_bogus): Replace with a
gdb_static_assert.
---
gdb/charset.c | 12 +++---------
1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/gdb/charset.c b/gdb/charset.c
index 9df46c0c74d..73131651a6d 100644
--- a/gdb/charset.c
+++ b/gdb/charset.c
@@ -946,15 +946,9 @@ default_auto_wide_charset (void)
#define ENDIAN_SUFFIX "LE"
#endif

-/* The code below serves to generate a compile time error if
- gdb_wchar_t type is not of size 2 nor 4, despite the fact that
- macro __STDC_ISO_10646__ is defined.
- This is better than a gdb_assert call, because GDB cannot handle
- strings correctly if this size is different. */
-
-extern char your_gdb_wchar_t_is_bogus[(sizeof (gdb_wchar_t) == 2
- || sizeof (gdb_wchar_t) == 4)
- ? 1 : -1];
+/* GDB cannot handle strings correctly if this size is different. */
+
+gdb_static_assert (sizeof (gdb_wchar_t) == 2 || sizeof (gdb_wchar_t) == 4);

/* intermediate_encoding returns the charset used internally by
GDB to convert between target and host encodings. As the test above
--
2.23.0.581.g78d2f28ef7-goog