[Bug c++/82930] New: [C++17/AArch64] ICE: in is_normal_capture_proxy, at cp/lambda.c:288 with structured binding in a lambda function with auto typed arguments
pexu@gcc-bugzilla.mail.kapsi.fi
gcc-bugzilla@gcc.gnu.org
Fri Nov 10 07:23:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82930
Bug ID: 82930
Summary: [C++17/AArch64] ICE: in is_normal_capture_proxy, at
cp/lambda.c:288 with structured binding in a lambda
function with auto typed arguments
Product: gcc
Version: 8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: pexu@gcc-bugzilla.mail.kapsi.fi
Target Milestone: ---
Created attachment 42572
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=42572&action=edit
The test case that triggers `internal compiler error: in
is_normal_capture_proxy, at cp/lambda.c:288'
Hi.
This could be related to others ICEs with structured bindings, but the thrown
internal compiler error is at a different location and couldn't find anyone
else having hit this particular spot.
Attached a test case. Running it with (pretty much) the latest trunk
(2017-11-09) currently gives:
$ aarch64-none-elf-g++.exe -Wall -Wextra -c --std=gnu++17
ice_is_normal_capture_proxy.cpp
ice_is_normal_capture_proxy.cpp: In lambda function:
ice_is_normal_capture_proxy.cpp:17:8: internal compiler error: in
is_normal_capture_proxy, at cp/lambda.c:288
eat(left);
Any lambda (capturing or not) with an auto typed parameter will fail, if any of
the structured binding result is used. It doesn't matter if the auto typed
argument is actually used or, or whether or not the the code at lambda call
site would actually compile, e.g. trying to call the lambda without any
arguments.
The test case compiles just fine, if the auto type is replaced with some other
type, say an int (-DNO_AUTO_ARG).
More information about the Gcc-bugs
mailing list