http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60895
Bug ID: 60895 Summary: error: address taken, but ADDRESSABLE bit not set Product: gcc Version: 4.10.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: glisse at gcc dot gnu.org Compiling with g++ grr.ii -c -O struct C { double elems[3]; }; C fn1() { double *f; C a; f = a.elems; for (int b; b;) { *f = 0; ++f; } return a; } struct J { C c; J() : c(fn1()) {} }; void fn2() { J(); } grr.ii: In function 'void fn2()': grr.ii:19:6: error: address taken, but ADDRESSABLE bit not set void fn2() { J(); } ^ PHI argument &D.2276.c.elems; for PHI node f_4 = PHI <&D.2276.c.elems(2), f_5(3)> grr.ii:19:6: internal compiler error: verify_ssa failed 0xf92ebf verify_ssa(bool) /data/repos/gcc/trunk/gcc/tree-ssa.c:1096 0xc97869 execute_function_todo /data/repos/gcc/trunk/gcc/passes.c:1784 0xc96b38 do_per_function /data/repos/gcc/trunk/gcc/passes.c:1504 0xc97983 execute_todo /data/repos/gcc/trunk/gcc/passes.c:1817 0xc97eb1 execute_one_ipa_transform_pass /data/repos/gcc/trunk/gcc/passes.c:2006 0xc97fb0 execute_all_ipa_transforms() /data/repos/gcc/trunk/gcc/passes.c:2037 0x96eae1 expand_function /data/repos/gcc/trunk/gcc/cgraphunit.c:1767 0x96f0fe expand_all_functions /data/repos/gcc/trunk/gcc/cgraphunit.c:1908 0x96faca compile() /data/repos/gcc/trunk/gcc/cgraphunit.c:2252 0x96fc43 finalize_compilation_unit() /data/repos/gcc/trunk/gcc/cgraphunit.c:2329 0x6f2294 cp_write_global_declarations() /data/repos/gcc/trunk/gcc/cp/decl2.c:4619 This compiles with gcc-4.8. It is reduced from a real program that does not have uninitialized variables.