[Bug lto/83720] New: [8 Regression] ICE: in mangle_decl, at cp/mangle.c:3847
doko at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Jan 7 03:44:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83720
Bug ID: 83720
Summary: [8 Regression] ICE: in mangle_decl, at
cp/mangle.c:3847
Product: gcc
Version: 8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: lto
Assignee: unassigned at gcc dot gnu.org
Reporter: doko at gcc dot gnu.org
CC: marxin at gcc dot gnu.org
Target Milestone: ---
seen with r256272, building pybind11
$ g++ -c -std=c++14 -g -O2 -flto test_alias_initialization.ii
during IPA pass: *free_lang_data
:13:5: internal compiler error: in mangle_decl, at cp/mangle.c:3847
0x594554 mangle_decl(tree_node*)
../../src/gcc/cp/mangle.c:3846
0xda5077 decl_assembler_name(tree_node*)
../../src/gcc/tree.c:687
0xda5077 assign_assembler_name_if_needed(tree_node*)
../../src/gcc/tree.c:5802
0xda6468 free_lang_data_in_cgraph
../../src/gcc/tree.c:5851
0xda6468 free_lang_data
../../src/gcc/tree.c:5892
0xda6468 execute
../../src/gcc/tree.c:5943
Please submit a full bug report,
with preprocessed source if appropriate.
$ cat test_alias_initialization.ii
# 9 "" 3
namespace b {
class h {
public:
template <typename ae, typename af> h(ae af::*...) {
[] {};
}
};
class ai {};
template <typename> class c {
public:
template <typename ag> aj(char *, ag f) { h(f, int()); }
};
}
template <typename> class al;
template <typename e> class i {
protected:
static e g(const) {}
};
template <typename, typename> class j;
template <typename an, typename e, typename... ao>
class j<an(ao...), e> : i<e> {
typedef i<e> ap;
public:
static an aq(const &ar, ao... as) { ap::g(ar)(as...); }
};
template <typename an, typename... ao> class al<an(ao...)> {
template <typename, typename a> using ax = a;
public:
template <typename e, typename = ax<int, void>, typename = ax<int, void>>
al(e);
using ay = an (*)(const &, ao...);
ay az;
};
template <typename an, typename... ao>
template <typename e, typename, typename>
al<an(ao...)>::al(e) {
az = j<an(ao...), e>::aq;
}
class k {
public:
k(al<void(b::ai)>);
} d([](b::ai) {
struct be {
virtual f();
};
struct bf;
b::c<bf>().aj("", &be::f);
});
More information about the Gcc-bugs
mailing list