https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107516
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P3 |P2 --- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- 3416 size = int_size_in_bytes (TREE_TYPE (exp)); 3417 gcc_checking_assert (size >= 0); 3418 gcc_checking_assert (TREE_CODE (exp) != STRING_CST 3419 || size >= TREE_STRING_LENGTH (exp)); (gdb) p size $1 = 4 (gdb) p exp->string.length $3 = 6 (gdb) p debug_tree (exp) <string_cst 0x7ffff6408b80 type <array_type 0x7ffff6428150 type <integer_type 0x7ffff6428000 wchar_t readonly type_6 SI size <integer_cst 0x7ffff628b210 constant 32> unit-size <integer_cst 0x7ffff628b228 constant 4> align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7ffff6428000 precision:32 min <integer_cst 0x7ffff628b5d0 -2147483648> max <integer_cst 0x7ffff628b5e8 2147483647> pointer_to_this <pointer_type 0x7ffff6428888>> type_6 SI size <integer_cst 0x7ffff628b210 32> unit-size <integer_cst 0x7ffff628b228 4> align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7ffff6428150 domain <integer_type 0x7ffff6294d20 type <integer_type 0x7ffff6289000 sizetype> type_6 DI size <integer_cst 0x7ffff6266fc0 constant 64> unit-size <integer_cst 0x7ffff6266fd8 constant 8> align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7ffff6294d20 precision:64 min <integer_cst 0x7ffff628b000 0> max <integer_cst 0x7ffff628b000 0>> pointer_to_this <pointer_type 0x7ffff6428a80>> readonly constant asm_written static "ms\000\000\000\000"> (gdb) p debug_generic_expr (0x7ffff6428150) const wchar_t[1] Bernd - I see it as us having an excess 2-byte nul terminator?