diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c index b6d6d70cb56..0ecc3e0c0f2 100644 --- a/gdb/aarch64-tdep.c +++ b/gdb/aarch64-tdep.c @@ -4827,7 +4827,7 @@ aarch64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_long_long_bit (gdbarch, 64); set_gdbarch_ptr_bit (gdbarch, 64); set_gdbarch_char_signed (gdbarch, 0); - set_gdbarch_wchar_signed (gdbarch, 0); + set_gdbarch_wchar_signed (gdbarch, false); set_gdbarch_float_format (gdbarch, floatformats_ieee_single); set_gdbarch_double_format (gdbarch, floatformats_ieee_double); set_gdbarch_long_double_format (gdbarch, floatformats_ieee_quad); diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c index f6c7a256205..759f3190512 100644 --- a/gdb/alpha-tdep.c +++ b/gdb/alpha-tdep.c @@ -1750,7 +1750,7 @@ alpha_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_long_bit (gdbarch, 64); set_gdbarch_long_long_bit (gdbarch, 64); set_gdbarch_wchar_bit (gdbarch, 64); - set_gdbarch_wchar_signed (gdbarch, 0); + set_gdbarch_wchar_signed (gdbarch, false); set_gdbarch_float_bit (gdbarch, 32); set_gdbarch_double_bit (gdbarch, 64); set_gdbarch_long_double_bit (gdbarch, 64); diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index d7a9b469ef8..1129fd6dfd2 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -10683,9 +10683,7 @@ arm_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) /* wchar_t is unsigned under the AAPCS. */ if (tdep->arm_abi == ARM_ABI_AAPCS) - set_gdbarch_wchar_signed (gdbarch, 0); - else - set_gdbarch_wchar_signed (gdbarch, 1); + set_gdbarch_wchar_signed (gdbarch, false); /* Compute type alignment. */ set_gdbarch_type_align (gdbarch, arm_type_align); diff --git a/gdb/avr-tdep.c b/gdb/avr-tdep.c index fe0283f1b48..8b88f69a04f 100644 --- a/gdb/avr-tdep.c +++ b/gdb/avr-tdep.c @@ -1487,7 +1487,6 @@ avr_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_addr_bit (gdbarch, 32); set_gdbarch_wchar_bit (gdbarch, 2 * TARGET_CHAR_BIT); - set_gdbarch_wchar_signed (gdbarch, 1); set_gdbarch_float_bit (gdbarch, 4 * TARGET_CHAR_BIT); set_gdbarch_double_bit (gdbarch, 4 * TARGET_CHAR_BIT); diff --git a/gdb/gdbarch-gen.c b/gdb/gdbarch-gen.c index e622e812de5..545cc22e567 100644 --- a/gdb/gdbarch-gen.c +++ b/gdb/gdbarch-gen.c @@ -63,7 +63,7 @@ struct gdbarch int long_double_bit = 8*TARGET_CHAR_BIT; const struct floatformat ** long_double_format = floatformats_ieee_double; int wchar_bit = 4*TARGET_CHAR_BIT; - int wchar_signed = -1; + bool wchar_signed = true; gdbarch_floatformat_for_type_ftype *floatformat_for_type = default_floatformat_for_type; int ptr_bit = 4*TARGET_CHAR_BIT; int addr_bit = 0; @@ -307,8 +307,6 @@ verify_gdbarch (struct gdbarch *gdbarch) /* Skip verify of long_double_bit, invalid_p == 0. */ /* Skip verify of long_double_format, invalid_p == 0. */ /* Skip verify of wchar_bit, invalid_p == 0. */ - if (gdbarch->wchar_signed == -1) - gdbarch->wchar_signed = 1; /* Skip verify of wchar_signed, invalid_p == 0. */ /* Skip verify of floatformat_for_type, invalid_p == 0. */ /* Skip verify of ptr_bit, invalid_p == 0. */ @@ -1648,12 +1646,11 @@ set_gdbarch_wchar_bit (struct gdbarch *gdbarch, gdbarch->wchar_bit = wchar_bit; } -int +bool gdbarch_wchar_signed (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); - /* Check variable changed from its initial value. */ - gdb_assert (gdbarch->wchar_signed != -1); + /* Skip verify of wchar_signed, invalid_p == 0. */ if (gdbarch_debug >= 2) gdb_printf (gdb_stdlog, "gdbarch_wchar_signed called\n"); return gdbarch->wchar_signed; @@ -1661,7 +1658,7 @@ gdbarch_wchar_signed (struct gdbarch *gdbarch) void set_gdbarch_wchar_signed (struct gdbarch *gdbarch, - int wchar_signed) + bool wchar_signed) { gdbarch->wchar_signed = wchar_signed; } diff --git a/gdb/gdbarch-gen.h b/gdb/gdbarch-gen.h index b0534c3e6ab..b53cd389300 100644 --- a/gdb/gdbarch-gen.h +++ b/gdb/gdbarch-gen.h @@ -109,10 +109,12 @@ extern void set_gdbarch_long_double_format (struct gdbarch *gdbarch, const struc extern int gdbarch_wchar_bit (struct gdbarch *gdbarch); extern void set_gdbarch_wchar_bit (struct gdbarch *gdbarch, int wchar_bit); -/* One if `wchar_t' is signed, zero if unsigned. */ +/* True if `wchar_t' is signed, false if unsigned. -extern int gdbarch_wchar_signed (struct gdbarch *gdbarch); -extern void set_gdbarch_wchar_signed (struct gdbarch *gdbarch, int wchar_signed); + The default value is true (signed). */ + +extern bool gdbarch_wchar_signed (struct gdbarch *gdbarch); +extern void set_gdbarch_wchar_signed (struct gdbarch *gdbarch, bool wchar_signed); /* Returns the floating-point format to be used for values of length LENGTH. NAME, if non-NULL, is the type name, which may be used to distinguish diff --git a/gdb/gdbarch_components.py b/gdb/gdbarch_components.py index 3dead483934..2224426c964 100644 --- a/gdb/gdbarch_components.py +++ b/gdb/gdbarch_components.py @@ -286,12 +286,13 @@ starting with C++11. Value( comment=""" -One if `wchar_t' is signed, zero if unsigned. +True if `wchar_t' is signed, false if unsigned. + +The default value is true (signed). """, - type="int", + type="bool", name="wchar_signed", - predefault="-1", - postdefault="1", + predefault="true", invalid=False, ) diff --git a/gdb/h8300-tdep.c b/gdb/h8300-tdep.c index 29ea499a72b..78edb1d0120 100644 --- a/gdb/h8300-tdep.c +++ b/gdb/h8300-tdep.c @@ -1352,7 +1352,7 @@ h8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_long_long_bit (gdbarch, 8 * TARGET_CHAR_BIT); set_gdbarch_wchar_bit (gdbarch, 2 * TARGET_CHAR_BIT); - set_gdbarch_wchar_signed (gdbarch, 0); + set_gdbarch_wchar_signed (gdbarch, false); set_gdbarch_double_bit (gdbarch, 4 * TARGET_CHAR_BIT); set_gdbarch_double_format (gdbarch, floatformats_ieee_single); diff --git a/gdb/i386-go32-tdep.c b/gdb/i386-go32-tdep.c index 6fd572d010e..c9967eb5789 100644 --- a/gdb/i386-go32-tdep.c +++ b/gdb/i386-go32-tdep.c @@ -39,7 +39,7 @@ i386_go32_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_has_dos_based_file_system (gdbarch, 1); set_gdbarch_wchar_bit (gdbarch, 16); - set_gdbarch_wchar_signed (gdbarch, 0); + set_gdbarch_wchar_signed (gdbarch, false); } diff --git a/gdb/m32r-tdep.c b/gdb/m32r-tdep.c index 92e79c86133..b5792eeeafc 100644 --- a/gdb/m32r-tdep.c +++ b/gdb/m32r-tdep.c @@ -870,7 +870,7 @@ m32r_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) = gdbarch_alloc (&info, gdbarch_tdep_up (new m32r_gdbarch_tdep)); set_gdbarch_wchar_bit (gdbarch, 16); - set_gdbarch_wchar_signed (gdbarch, 0); + set_gdbarch_wchar_signed (gdbarch, false); set_gdbarch_num_regs (gdbarch, M32R_NUM_REGS); set_gdbarch_pc_regnum (gdbarch, M32R_PC_REGNUM); diff --git a/gdb/moxie-tdep.c b/gdb/moxie-tdep.c index c8c301d2be5..c8a04d21f59 100644 --- a/gdb/moxie-tdep.c +++ b/gdb/moxie-tdep.c @@ -1060,7 +1060,7 @@ moxie_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) = gdbarch_alloc (&info, gdbarch_tdep_up (new moxie_gdbarch_tdep)); set_gdbarch_wchar_bit (gdbarch, 32); - set_gdbarch_wchar_signed (gdbarch, 0); + set_gdbarch_wchar_signed (gdbarch, false); set_gdbarch_num_regs (gdbarch, MOXIE_NUM_REGS); set_gdbarch_sp_regnum (gdbarch, MOXIE_SP_REGNUM); diff --git a/gdb/nds32-tdep.c b/gdb/nds32-tdep.c index 7e2ed30f5bd..4278c92d5f3 100644 --- a/gdb/nds32-tdep.c +++ b/gdb/nds32-tdep.c @@ -1993,7 +1993,7 @@ nds32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) tdep->elf_abi = elf_abi; set_gdbarch_wchar_bit (gdbarch, 16); - set_gdbarch_wchar_signed (gdbarch, 0); + set_gdbarch_wchar_signed (gdbarch, false); if (fpu_freg == -1) num_regs = NDS32_NUM_REGS; diff --git a/gdb/rs6000-aix-tdep.c b/gdb/rs6000-aix-tdep.c index eb3f9bceda3..d823fea5645 100644 --- a/gdb/rs6000-aix-tdep.c +++ b/gdb/rs6000-aix-tdep.c @@ -1407,7 +1407,7 @@ rs6000_aix_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_wchar_bit (gdbarch, 32); else set_gdbarch_wchar_bit (gdbarch, 16); - set_gdbarch_wchar_signed (gdbarch, 0); + set_gdbarch_wchar_signed (gdbarch, false); set_gdbarch_auto_wide_charset (gdbarch, rs6000_aix_auto_wide_charset); set_gdbarch_make_solib_ops (gdbarch, make_aix_solib_ops); diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c index 4b582c5cf1e..f67edc08982 100644 --- a/gdb/sh-tdep.c +++ b/gdb/sh-tdep.c @@ -2235,7 +2235,7 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_long_long_bit (gdbarch, 8 * TARGET_CHAR_BIT); set_gdbarch_wchar_bit (gdbarch, 2 * TARGET_CHAR_BIT); - set_gdbarch_wchar_signed (gdbarch, 0); + set_gdbarch_wchar_signed (gdbarch, false); set_gdbarch_float_bit (gdbarch, 4 * TARGET_CHAR_BIT); set_gdbarch_double_bit (gdbarch, 8 * TARGET_CHAR_BIT); diff --git a/gdb/sparc-tdep.c b/gdb/sparc-tdep.c index 65f3f5c95b0..e495d13a904 100644 --- a/gdb/sparc-tdep.c +++ b/gdb/sparc-tdep.c @@ -1825,7 +1825,6 @@ sparc32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_long_double_format (gdbarch, floatformats_ieee_quad); set_gdbarch_wchar_bit (gdbarch, 16); - set_gdbarch_wchar_signed (gdbarch, 1); set_gdbarch_num_regs (gdbarch, SPARC32_NUM_REGS); set_gdbarch_register_name (gdbarch, sparc32_register_name); diff --git a/gdb/sparc64-tdep.c b/gdb/sparc64-tdep.c index 88bc0ba3ad4..93db3417a2a 100644 --- a/gdb/sparc64-tdep.c +++ b/gdb/sparc64-tdep.c @@ -1817,7 +1817,7 @@ sparc64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_ptr_bit (gdbarch, 64); set_gdbarch_wchar_bit (gdbarch, 16); - set_gdbarch_wchar_signed (gdbarch, 0); + set_gdbarch_wchar_signed (gdbarch, false); set_gdbarch_num_regs (gdbarch, SPARC64_NUM_REGS); set_gdbarch_register_name (gdbarch, sparc64_register_name); diff --git a/gdb/windows-tdep.c b/gdb/windows-tdep.c index c41b500afc1..ee04ed10f24 100644 --- a/gdb/windows-tdep.c +++ b/gdb/windows-tdep.c @@ -942,7 +942,7 @@ static void windows_init_abi_common (struct gdbarch_info info, struct gdbarch *gdbarch) { set_gdbarch_wchar_bit (gdbarch, 16); - set_gdbarch_wchar_signed (gdbarch, 0); + set_gdbarch_wchar_signed (gdbarch, false); set_gdbarch_auto_wide_charset (gdbarch, windows_auto_wide_charset); /* Canonical paths on this target look like diff --git a/gdb/xstormy16-tdep.c b/gdb/xstormy16-tdep.c index a55070df9ec..b51668169eb 100644 --- a/gdb/xstormy16-tdep.c +++ b/gdb/xstormy16-tdep.c @@ -779,7 +779,6 @@ xstormy16_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_long_long_bit (gdbarch, 8 * TARGET_CHAR_BIT); set_gdbarch_wchar_bit (gdbarch, 2 * TARGET_CHAR_BIT); - set_gdbarch_wchar_signed (gdbarch, 1); set_gdbarch_float_bit (gdbarch, 4 * TARGET_CHAR_BIT); set_gdbarch_double_bit (gdbarch, 8 * TARGET_CHAR_BIT); diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c index d9f81f4167b..388b57dcaee 100644 --- a/gdb/xtensa-tdep.c +++ b/gdb/xtensa-tdep.c @@ -3170,7 +3170,7 @@ xtensa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) xtensa_session_once_reported = 0; set_gdbarch_wchar_bit (gdbarch, 2 * TARGET_CHAR_BIT); - set_gdbarch_wchar_signed (gdbarch, 0); + set_gdbarch_wchar_signed (gdbarch, false); /* Pseudo-Register read/write. */ set_gdbarch_pseudo_register_read (gdbarch, xtensa_pseudo_register_read);