https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79413
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P3 |P1 --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- (gdb) p debug_tree (name) <ssa_name 0x7ffff68ad948 nothrow def_stmt version 2 in-free-list> $2 = void this seems to be again a missed DECL_EXPR: ;; Function fn1 (null) ;; enabled by -tree-original { int a[0:(sizetype) ((long int) (1 / 0) + -1)]; (void) 0; int a[0:(sizetype) ((long int) (1 / 0) + -1)]; } and .gimple: fn1 () { int[0:(sizetype) ((long int) (1 / 0) + -1)] * a.0; void * saved_stack.1; int a[0:(sizetype) ((long int) (1 / 0) + -1)] [value-expr: *a.0]; saved_stack.1 = __builtin_stack_save (); try { _1 = 1 / 0; _2 = (sizetype) _1; _3 = _2 * 4; a.0 = __builtin_alloca_with_align (_3, 32); } finally { __builtin_stack_restore (saved_stack.1); } notice the missed gimplification of type sizes above. The inliner then sees: (gdb) p debug_tree (type) <array_type 0x7ffff69c1540 type <integer_type 0x7ffff68ba5e8 int sizes-gimplified public SI size <integer_cst 0x7ffff68a2f18 constant 32> unit size <integer_cst 0x7ffff68a2f30 constant 4> align 32 symtab 0 alias set -1 canonical type 0x7ffff68ba5e8 precision 32 min <integer_cst 0x7ffff68a2ed0 -2147483648> max <integer_cst 0x7ffff68a2ee8 2147483647> pointer_to_this <pointer_type 0x7ffff68c2a80>> sizes-gimplified type_1 BLK size <mult_expr 0x7ffff69c0bb8 type <integer_type 0x7ffff68ba0a8 bitsizetype public unsigned TI size <integer_cst 0x7ffff68a2d20 constant 128> unit size <integer_cst 0x7ffff68a2d38 constant 16> ... unit size <mult_expr 0x7ffff69c0be0 type <integer_type 0x7ffff68ba000 sizetype public unsigned DI size <integer_cst 0x7ffff68a2cd8 constant 64> unit size <integer_cst 0x7ffff68a2cf0 constant 8> align 64 symtab 0 alias set -1 canonical type 0x7ffff68ba000 precision 64 min <integer_cst 0x7ffff68a2d08 0> max <integer_cst 0x7ffff68a44c0 18446744073709551615>> readonly constant arg 0 <ssa_name 0x7ffff68ad948 nothrow def_stmt version 2 in-free-list> arg 1 <integer_cst 0x7ffff68a2f30 4> t.c:3:24 start: t.c:3:24 finish: t.c:3:24> align 32 symtab 0 alias set -1 structural equality ... note the bogus TYPE_SIZE_UNIT.