This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/84263] New: [8 Regression] ICE in lookup_page_table_entry at gcc/ggc-page.c:646 on valid C++ code
- From: "marxin at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 07 Feb 2018 12:25:58 +0000
- Subject: [Bug c++/84263] New: [8 Regression] ICE in lookup_page_table_entry at gcc/ggc-page.c:646 on valid C++ code
- Auto-submitted: auto-generated
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.