[Bug c++/90265] New: [9/10 Regression] ICE in build_call_a at gcc/cp/call.c:396 since r268377
marxin at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Apr 26 18:53:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90265
Bug ID: 90265
Summary: [9/10 Regression] ICE in build_call_a at
gcc/cp/call.c:396 since r268377
Product: gcc
Version: 9.0
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: jason at gcc dot gnu.org
Target Milestone: ---
It's a code snippet reduced from pulseeffects project:
$ cat pulse.ii
void (*a)(int, int, int, void *) = [](auto, auto, auto, auto) {};
$ g++ pulse.ii -c
pulse.ii: In instantiation of ‘static decltype (((const<lambda(auto:1, auto:2,
auto:3, auto:4)>*)0)->operator()<auto:1, auto:2, auto:3,
auto:4>(static_cast<auto:1&&>(<anonymous>), static_cast<auto:2&&>(<anonymous>),
static_cast<auto:3&&>(<anonymous>),
static_cast<auto:4&&>(<anonymous>)))<lambda(auto:1, auto:2, auto:3,
auto:4)>::_FUN(auto:1, auto:2, auto:3, auto:4) [with auto:1 = int; auto:2 =
int; auto:3 = int; auto:4 = void*; decltype (((const<lambda(auto:1, auto:2,
auto:3, auto:4)>*)0)->operator()<auto:1, auto:2, auto:3,
auto:4>(static_cast<auto:1&&>(<anonymous>), static_cast<auto:2&&>(<anonymous>),
static_cast<auto:3&&>(<anonymous>), static_cast<auto:4&&>(<anonymous>))) =
void]’:
pulse.ii:1:64: recursively required from ‘<lambda(auto:1, auto:2, auto:3,
auto:4)>::operator decltype (((const<lambda(auto:1, auto:2, auto:3,
auto:4)>*)0)->operator()<auto:1, auto:2, auto:3,
auto:4>(static_cast<auto:1&&>(<anonymous>), static_cast<auto:2&&>(<anonymous>),
static_cast<auto:3&&>(<anonymous>), static_cast<auto:4&&>(<anonymous>)))
(*)(auto:1, auto:2, auto:3, auto:4)() const [with auto:1 = int; auto:2 = int;
auto:3 = int; auto:4 = void*; decltype (((const<lambda(auto:1, auto:2, auto:3,
auto:4)>*)0)->operator()<auto:1, auto:2, auto:3,
auto:4>(static_cast<auto:1&&>(<anonymous>), static_cast<auto:2&&>(<anonymous>),
static_cast<auto:3&&>(<anonymous>), static_cast<auto:4&&>(<anonymous>))) =
void]’
pulse.ii:1:64: required from here
pulse.ii:1:64: internal compiler error: Segmentation fault
1 | void (*a)(int, int, int, void *) = [](auto, auto, auto, auto) {};
| ^
0xf13a7f crash_signal
/home/marxin/Programming/gcc/gcc/toplev.c:326
0x7ffff7b7fe0f ???
/usr/src/debug/glibc-2.29-5.1.x86_64/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0
0x83e44e contains_struct_check(tree_node*, tree_node_structure_enum, char
const*, int, char const*)
/home/marxin/Programming/gcc/gcc/tree.h:3289
0x83e44e build_call_a(tree_node*, int, tree_node**)
/home/marxin/Programming/gcc/gcc/cp/call.c:396
0x996ae2 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
/home/marxin/Programming/gcc/gcc/cp/pt.c:18889
0x9a3888 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
/home/marxin/Programming/gcc/gcc/cp/pt.c:18241
0x9a3888 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
/home/marxin/Programming/gcc/gcc/cp/pt.c:17917
0x9a0762 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
/home/marxin/Programming/gcc/gcc/cp/pt.c:17033
0x9a0610 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
/home/marxin/Programming/gcc/gcc/cp/pt.c:17324
0x99fe6c instantiate_decl(tree_node*, bool, bool)
/home/marxin/Programming/gcc/gcc/cp/pt.c:24773
0x9c69c3 instantiate_pending_templates(int)
/home/marxin/Programming/gcc/gcc/cp/pt.c:24889
0x8df02b c_parse_final_cleanups()
/home/marxin/Programming/gcc/gcc/cp/decl2.c:4818
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
More information about the Gcc-bugs
mailing list