[Bug c++/85049] New: Internal compiler error with __integer_pack
abigail.buccaneer at gmail dot com
gcc-bugzilla@gcc.gnu.org
Fri Mar 23 11:27:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85049
Bug ID: 85049
Summary: Internal compiler error with __integer_pack
Product: gcc
Version: 8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: abigail.buccaneer at gmail dot com
Target Milestone: ---
The following code:
template <int...> struct index_sequence {};
template <typename... Ts> using index_sequence_for =
index_sequence<__integer_pack(sizeof...(Ts))...>;
template <typename...> struct tuple {};
template <typename... Ts> int get(tuple<index_sequence_for<Ts...>, Ts...>);
int x = get(tuple<index_sequence_for<>>{});
fails to compile with an internal compiler error.
On gcc.godbolt.org's "gcc trunk" compiler, the output is the following:
<source>: In substitution of 'template<class ... Ts> int
get(tuple<index_sequence<__integer_pack(sizeof ... (Ts ...))...>, Ts ...>)
[with Ts = <missing>]':
<source>:10:42: required from here
<source>:10:42: internal compiler error: tree check: expected
template_parm_index, have call_expr in template_parm_level_and_index, at
cp/pt.c:20594
int x = get(tuple<index_sequence_for<>>{});
^
mmap: Invalid argument
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.
Compiler returned: 1
And the version info is:
g++ (GCC-Explorer-Build) 8.0.1 20180322 (experimental)
On a version of g++-8 installed from the Ubuntu repositories, the output is the
following:
tuple.cpp: In substitution of ‘template<class ... Ts> int
get(tuple<std::integer_sequence<long unsigned int, __integer_pack(sizeof ...
(_Types ...))...>, Ts ...>) [with Ts = <missing>]’:
tuple.cpp:7:47: required from here
tuple.cpp:7:47: internal compiler error: Segmentation fault
int x = get(tuple<std::index_sequence_for<>>{});
^
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-8/README.Bugs> for instructions.
And the version info is:
g++-8 (Ubuntu 8-20170923-1ubuntu2) 8.0.0 20170923 (experimental) [trunk
revision 253118]
More information about the Gcc-bugs
mailing list