https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84263
Bug ID: 84263 Summary: [8 Regression] ICE in lookup_page_table_entry at gcc/ggc-page.c:646 on valid C++ code Product: gcc Version: unknown Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: nathan at gcc dot gnu.org Target Milestone: --- Host: i686-linux-gnu Starting from r248826 we ICE on: $ cat /tmp/ice.ii namespace std { template <typename a> struct b { int c; a d; }; template <typename> class g; template <class> class initializer_list { int *e; unsigned f; }; class h; class j { typedef b<h> i; public: j(); j(initializer_list<i>); }; template <typename> struct m; template <int k> struct m<char[k]> {}; class h { public: template <typename l> h(l &); }; class G { G(); j n; }; G::G() { n = decltype(n){{0, ""}, {1, ".unoLineArrowEnd"}}; } } $ ./gcc/xg++ -Bgcc /tmp/ice.ii --param ggc-min-expand=0 --param ggc-min-heapsize=0 -c /tmp/ice.ii:29:61: internal compiler error: Segmentation fault G::G() { n = decltype(n){{0, ""}, {1, ".unoLineArrowEnd"}}; } ^ 0x8c82124 crash_signal ../../gcc/toplev.c:338 0x870f9d6 lookup_page_table_entry ../../gcc/ggc-page.c:646 0x87106f6 ggc_set_mark(void const*) ../../gcc/ggc-page.c:1536 0x864b7de gt_ggc_mx_lang_tree_node(void*) ./gt-cp-tree.h:138 0x857f789 gt_ggc_mx(deferred_access_check&) ./gt-cp-parser.h:45 0x8581ab4 void gt_ggc_mx<deferred_access_check>(vec<deferred_access_check, va_gc, vl_embed>*) ../../gcc/vec.h:1107 0x857f760 gt_ggc_mx_vec_deferred_access_check_va_gc_(void*) ./gt-cp-parser.h:37 0x857f838 gt_ggc_mx_tree_check(void*) ./gt-cp-parser.h:57 0x857f907 gt_ggc_mx(cp_token&) ./gt-cp-parser.h:79 0x8581aff void gt_ggc_mx<cp_token>(vec<cp_token, va_gc, vl_embed>*) ../../gcc/vec.h:1107 0x857f8a4 gt_ggc_mx_vec_cp_token_va_gc_(void*) ./gt-cp-parser.h:68 0x857f986 gt_ggc_mx_cp_lexer(void*) ./gt-cp-parser.h:95 0x857fbdc gt_ggc_mx_cp_parser(void*) ./gt-cp-parser.h:155 0x892e005 ggc_mark_root_tab ../../gcc/ggc-common.c:77 0x892e082 ggc_mark_roots() ../../gcc/ggc-common.c:94 0x871167b ggc_collect() ../../gcc/ggc-page.c:2206 0x87b0a77 cgraph_node::finalize_function(tree_node*, bool) ../../gcc/cgraphunit.c:488 0x861b497 expand_or_defer_fn(tree_node*) ../../gcc/cp/semantics.c:4299 0x852f409 maybe_clone_body(tree_node*) ../../gcc/cp/optimize.c:670 0x861b378 expand_or_defer_fn_1(tree_node*) ../../gcc/cp/semantics.c:4272 I can repeat that only on i686 target.