https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100732
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P3 |P2 Target Milestone|--- |11.2 --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- #3 0x0000000001649007 in maybe_warn_pass_by_reference (stmt=0x7ffff7ff5cf0, wlims=...) at /home/rguenther/src/gcc3/gcc/tree-ssa-uninit.c:545 545 ao_ref_init_from_ptr_and_size (&ref, arg, access_size); (gdb) p arg $2 = <ssa_name 0x7ffff6575d80 2> (gdb) p debug_tree (arg) <ssa_name 0x7ffff6575d80 type <integer_type 0x7ffff65835e8 int public SI size <integer_cst 0x7ffff656af18 constant 32> unit-size <integer_cst 0x7ffff656af30 constant 4> align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7ffff65835e8 precision:32 min <integer_cst 0x7ffff656aed0 -2147483648> max <integer_cst 0x7ffff656aee8 2147483647> pointer_to_this <pointer_type 0x7ffff658b9d8>> visited var <parm_decl 0x7ffff66c4000 i> def_stmt GIMPLE_NOP version:2> that's not a pointer. Looks like the code blindly works on call arguments w/o double-checking their type.