https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100529
--- Comment #1 from Chengnian Sun <cnsun at uwaterloo dot ca> --- A possible duplicate. $ gcc-trunk -v Using built-in specs. COLLECT_GCC=gcc-trunk COLLECT_LTO_WRAPPER=/scratch/software/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/12.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: /tmp/tmp.FUbEknNORK-gcc-builder/gcc/configure --enable-languages=c,c++,lto --enable-checking-yes --enable-multiarch --prefix=/scratch/software/gcc-trunk --disable-bootstrap Thread model: posix Supported LTO compression algorithms: zlib gcc version 12.0.0 20210511 (experimental) [master revision :7db32cac8:aa891c56f25baac94db004e309d1b6e40b770a95] (GCC) $ cat mutant.c bar(n) { return foo(n, 2.0); } foo( int n, struct { char a[n]; }) { return foo; } $ gcc-trunk -O3 mutant.c mutant.c:1:1: warning: return type defaults to ‘int’ [-Wimplicit-int] 1 | bar(n) { return foo(n, 2.0); } | ^~~ mutant.c: In function ‘bar’: mutant.c:1:1: warning: type of ‘n’ defaults to ‘int’ [-Wimplicit-int] mutant.c:1:17: warning: implicit declaration of function ‘foo’ [-Wimplicit-function-declaration] 1 | bar(n) { return foo(n, 2.0); } | ^~~ mutant.c: At top level: mutant.c:3:12: warning: anonymous struct declared inside parameter list will not be visible outside of this definition or declaration 3 | int n, struct { char a[n]; }) { | ^~~~~~ mutant.c:2:1: warning: return type defaults to ‘int’ [-Wimplicit-int] 2 | foo( | ^~~ mutant.c: In function ‘foo’: mutant.c:4:10: warning: returning ‘int (*)(int, struct <anonymous>)’ from a function with return type ‘int’ makes integer from pointer without a cast [-Wint-conversion] 4 | return foo; | ^~~ In function ‘foo.constprop’: cc1: internal compiler error: in force_constant_size, at gimplify.c:733 0x6d5542 force_constant_size /tmp/tmp.FUbEknNORK-gcc-builder/gcc/gcc/gimplify.c:733 0xc21537 gimple_add_tmp_var(tree_node*) /tmp/tmp.FUbEknNORK-gcc-builder/gcc/gcc/gimplify.c:771 0xbea82b create_tmp_var(tree_node*, char const*) /tmp/tmp.FUbEknNORK-gcc-builder/gcc/gcc/gimple-expr.c:485 0xc2b230 create_tmp_from_val /tmp/tmp.FUbEknNORK-gcc-builder/gcc/gcc/gimplify.c:564 0xc2b230 lookup_tmp_var /tmp/tmp.FUbEknNORK-gcc-builder/gcc/gcc/gimplify.c:596 0xc2b230 internal_get_tmp_var /tmp/tmp.FUbEknNORK-gcc-builder/gcc/gcc/gimplify.c:635 0xc24bb7 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) /tmp/tmp.FUbEknNORK-gcc-builder/gcc/gcc/gimplify.c:15072 0xc49b43 gimple_regimplify_operands(gimple*, gimple_stmt_iterator*) /tmp/tmp.FUbEknNORK-gcc-builder/gcc/gcc/gimplify-me.c:235 0xf7689a insert_init_stmt /tmp/tmp.FUbEknNORK-gcc-builder/gcc/gcc/tree-inline.c:3377 0xf88e47 tree_function_versioning(tree_node*, tree_node*, vec<ipa_replace_map*, va_gc, vl_embed>*, ipa_param_adjustments*, bool, bitmap_head*, basic_block_def*) /tmp/tmp.FUbEknNORK-gcc-builder/gcc/gcc/tree-inline.c:6418 0xa83c85 cgraph_node::materialize_clone() /tmp/tmp.FUbEknNORK-gcc-builder/gcc/gcc/cgraphclones.c:1131 0xe0b8f8 execute_all_ipa_transforms(bool) /tmp/tmp.FUbEknNORK-gcc-builder/gcc/gcc/passes.c:2329 0xa7de49 cgraph_node::expand() /tmp/tmp.FUbEknNORK-gcc-builder/gcc/gcc/cgraphunit.c:1821 0xa7f26f expand_all_functions /tmp/tmp.FUbEknNORK-gcc-builder/gcc/gcc/cgraphunit.c:1992 0xa7f26f symbol_table::compile() /tmp/tmp.FUbEknNORK-gcc-builder/gcc/gcc/cgraphunit.c:2356 0xa8214b symbol_table::compile() /tmp/tmp.FUbEknNORK-gcc-builder/gcc/gcc/cgraphunit.c:2269 0xa8214b symbol_table::finalize_compilation_unit() /tmp/tmp.FUbEknNORK-gcc-builder/gcc/gcc/cgraphunit.c:2537 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.