[Bug c++/68309] [5/6 Regression] ICE: Segmentation fault
trippels at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Nov 12 10:31:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68309
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2015-11-12
CC| |trippels at gcc dot gnu.org
Version|4.9.1 |6.0
Summary|[C++14] Expanding a |[5/6 Regression] ICE:
|captured parameter pack |Segmentation fault
|with |
|std::forward<decltype(args) |
|>(args) fails. |
Ever confirmed|0 |1
--- Comment #1 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
markus@x4 /tmp % cat f.cpp
#include <initializer_list>
#include <utility>
using namespace std;
template <typename... Ts> void print(Ts... args) {
[&] { auto _ = {forward<decltype(args)>(args)...}; };
}
int main() { print(5.2); }
markus@x4 /tmp % g++ -std=c++14 -c f.cpp
f.cpp: In instantiation of ‘print(Ts ...)::<lambda()> [with Ts = {double}]’:
f.cpp:5:43: required from ‘struct print(Ts ...) [with Ts =
{double}]::<lambda()>’
f.cpp:5:3: required from ‘void print(Ts ...) [with Ts = {double}]’
f.cpp:7:23: required from here
f.cpp:5:51: internal compiler error: Segmentation fault
[&] { auto _ = {forward<decltype(args)>(args)...}; };
^
0xcbe5cf crash_signal
../../gcc/gcc/toplev.c:336
0x7fd9373268af ???
/home/markus/glibc/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0
0x621cea maybe_adjust_types_for_deduction
../../gcc/gcc/cp/pt.c:17717
0x66dc29 unify
../../gcc/gcc/cp/pt.c:19189
0x669fe5 unify_one_argument
../../gcc/gcc/cp/pt.c:18020
0x66c6bb type_unification_real
../../gcc/gcc/cp/pt.c:18091
0x67f453 do_auto_deduction(tree_node*, tree_node*, tree_node*, int,
auto_deduction_context)
../../gcc/gcc/cp/pt.c:23679
0x610954 cp_finish_decl(tree_node*, tree_node*, bool, tree_node*, int)
../../gcc/gcc/cp/decl.c:6544
0x643e58 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc/gcc/cp/pt.c:15006
0x6405d3 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc/gcc/cp/pt.c:15080
0x6400e4 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc/gcc/cp/pt.c:14894
0x6405d3 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc/gcc/cp/pt.c:15080
0x63e097 instantiate_decl(tree_node*, int, bool)
../../gcc/gcc/cp/pt.c:21736
0x6818cf instantiate_class_template_1
../../gcc/gcc/cp/pt.c:10168
0x6818cf instantiate_class_template(tree_node*)
../../gcc/gcc/cp/pt.c:10238
0x72887b complete_type(tree_node*)
../../gcc/gcc/cp/typeck.c:131
0x64c1a4 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
../../gcc/gcc/cp/pt.c:16901
0x64141e tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc/gcc/cp/pt.c:15584
0x63f650 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc/gcc/cp/pt.c:14908
0x6400e4 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc/gcc/cp/pt.c:14894
More information about the Gcc-bugs
mailing list