https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79205
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. Breakpoint 1, fancy_abort ( file=0x1e2fb90 "/space/rguenther/src/svn/gcc-7-branch/gcc/gimple-expr.c", line=473, function=0x1e2fd73 <create_tmp_var(tree_node*, char const*)::__FUNCTION__> "create_tmp_var") at /space/rguenther/src/svn/gcc-7-branch/gcc/diagnostic.c:1461 1461 internal_error ("in %s, at %s:%d", function, trim_filename (file), line); Missing separate debuginfos, use: zypper install libgmp10-debuginfo-5.1.3-5.46.x86_64 libisl15-debuginfo-0.16.1-30.30.x86_64 libmpc3-debuginfo-1.0.2-4.55.x86_64 libmpfr4-debuginfo-3.1.2-11.53.x86_64 (gdb) up #1 0x0000000000ddb5da in create_tmp_var (type= <record_type 0x7ffff575d1f8 tuple>, prefix=0x0) at /space/rguenther/src/svn/gcc-7-branch/gcc/gimple-expr.c:473 473 gcc_assert (!TREE_ADDRESSABLE (type) && COMPLETE_TYPE_P (type)); (gdb) p debug_tree (type) <record_type 0x7ffff575d1f8 tuple sizes-gimplified addressable needs-constructing type_1 type_5 type_6 BLK size <integer_cst 0x7ffff68c4108 type <integer_type 0x7ffff68c10a8 bitsizetype> constant 32> gimplifying **t in ;; Function int foo(std::tuple<int>) (null) ;; enabled by -tree-original { struct tuple D.33733 = **t; type & x0; struct tuple D.33733 = **t; type & x0; <<cleanup_point <<< Unknown tree: expr_stmt (void) (x0 = (type &) std::get<0, int> ((struct tuple &) &D.33733)) >>>>>; return <retval> = *x0; } gcc 6 rejects this with t.C: In function ‘int foo(std::tuple<int>)’: t.C:5:8: error: expected unqualified-id before ‘[’ token auto [x0] = t; ^ t.C:6:12: error: ‘x0’ was not declared in this scope return x0; ^~