This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libstdc++/67537] New: [6 Regression] r225189 breaks building boost hana
- From: "trippels at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 10 Sep 2015 12:17:36 +0000
- Subject: [Bug libstdc++/67537] New: [6 Regression] r225189 breaks building boost hana
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67537
Bug ID: 67537
Summary: [6 Regression] r225189 breaks building boost hana
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: trippels at gcc dot gnu.org
CC: ville.voutilainen at gmail dot com
Target Milestone: ---
Created attachment 36319
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36319&action=edit
failing testcase for clang
Starting with r225189 I get many errors like:
(gcc-5 libstdc++ is fine)
trippels@gcc2-power8 test % clang++ -gcc-toolchain ~/gcc_5/usr/local/
-DBOOST_HANA_CONFIG_ENABLE_STRING_UDL -DBOOST_HANA_TEST_PART=7 -O2
-I/home/trippels/hana/include -I/home/trippels/hana/test/include
-I/home/trippels/hana/test -Wno-gnu-string-literal-operator-template
-ftemplate-backtrace-limit=0 -pedantic -std=c++1y -W -Wall -Wextra
-Wno-unused-local-typedefs -Wwrite-strings -o
CMakeFiles/test.ext.std.tuple.part7.dir/ext/std/tuple.cpp.o -c
/home/trippels/hana/test/ext/std/tuple.cpp
trippels@gcc2-power8 test % clang++ -gcc-toolchain ~/gcc_6/usr/local/
-ferror-limit=1 -DBOOST_HANA_CONFIG_ENABLE_STRING_UDL -DBOOST_HANA_TEST_PART=7
-O2 -I/home/trippels/hana/include -I/home/trippels/hana/test/include
-I/home/trippels/hana/test -Wno-gnu-string-literal-operator-template
-ftemplate-backtrace-limit=0 -pedantic -std=c++1y -W -Wall -Wextra
-Wno-unused-local-typedefs -Wwrite-strings -o
CMakeFiles/test.ext.std.tuple.part7.dir/ext/std/tuple.cpp.o -c
/home/trippels/hana/test/ext/std/tuple.cpp
In file included from /home/trippels/hana/test/ext/std/tuple.cpp:7:
In file included from
/home/trippels/hana/include/boost/hana/ext/std/tuple.hpp:27:
/home/trippels/gcc_6/usr/local/lib/gcc/powerpc64le-unknown-linux-gnu/6.0.0/../../../../include/c++/6.0.0/tuple:481:62:
error: pack expansion contains parameter packs
'_Elements' and '_UElements' that have different lengths (1 vs. 0)
return __and_<is_constructible<_Elements, _UElements&&>...>::value;
~~~~~~~~~ ~~~~~~~~~~ ^
/home/trippels/gcc_6/usr/local/lib/gcc/powerpc64le-unknown-linux-gnu/6.0.0/../../../../include/c++/6.0.0/tuple:580:21:
note: in instantiation of function template
specialization 'std::_TC<true, boost::hana::test::integer<0, 17, void>
>::_MoveConstructibleTuple<>' requested here
_MoveConstructibleTuple<_UElements...>()
^
/home/trippels/gcc_6/usr/local/lib/gcc/powerpc64le-unknown-linux-gnu/6.0.0/../../../../include/c++/6.0.0/tuple:585:19:
note: while substituting prior template arguments into
non-type template parameter [with _UElements = <>]
constexpr tuple(_UElements&&... __elements)
^~~~~
/home/trippels/gcc_6/usr/local/lib/gcc/powerpc64le-unknown-linux-gnu/6.0.0/../../../../include/c++/6.0.0/tuple:521:11:
note: while substituting deduced template arguments
into function template 'tuple' [with _UElements = <>, $1 = (no value)]
class tuple : public _Tuple_impl<0, _Elements...>
^
/home/trippels/hana/include/boost/hana/basic_tuple.hpp:86:15: note: in
instantiation of template class 'boost::hana::detail::elt<1,
std::tuple<boost::hana::test::integer<0,
17, void> >, false>' requested here
: detail::elt<n, Xn>...
^
/home/trippels/hana/include/boost/hana/basic_tuple.hpp:103:11: note: in
instantiation of template class
'boost::hana::detail::basic_tuple_impl<std::integer_sequence<unsigned
long, 0, 1, 2, 3, 4>, std::tuple<>,
std::tuple<boost::hana::test::integer<0, 17, void> >,
std::tuple<boost::hana::test::integer<0, 17, void>,
boost::hana::test::integer<1, 17, void> >,
std::tuple<boost::hana::test::integer<0, 17, void>,
boost::hana::test::integer<1, 17, void>, boost::hana::test::integer<2,
17, void> >, std::tuple<boost::hana::test::integer<0, 17, void>,
boost::hana::test::integer<1, 17, void>, boost::hana::test::integer<2, 17,
void>,
boost::hana::test::integer<3, 17, void>, boost::hana::test::integer<4,
17, void> > >' requested here
: detail::basic_tuple_impl<std::make_index_sequence<sizeof...(Xn)>,
Xn...>
^
/home/trippels/hana/include/boost/hana/tuple.hpp:63:28: note: in instantiation
of template class 'boost::hana::basic_tuple<std::tuple<>,
std::tuple<boost::hana::test::integer<0, 17, void> >,
std::tuple<boost::hana::test::integer<0, 17, void>,
boost::hana::test::integer<1, 17, void> >,
std::tuple<boost::hana::test::integer<0, 17, void>,
boost::hana::test::integer<1, 17, void>, boost::hana::test::integer<2, 17,
void> >,
std::tuple<boost::hana::test::integer<0, 17, void>,
boost::hana::test::integer<1, 17, void>, boost::hana::test::integer<2, 17,
void>, boost::hana::test::integer<3, 17,
void>, boost::hana::test::integer<4, 17, void> > >' requested here
basic_tuple<Xn...> storage_;
^
/home/trippels/hana/include/boost/hana/tuple.hpp:270:49: note: in instantiation
of template class 'boost::hana::tuple<std::tuple<>,
std::tuple<boost::hana::test::integer<0,
17, void> >, std::tuple<boost::hana::test::integer<0, 17, void>,
boost::hana::test::integer<1, 17, void> >,
std::tuple<boost::hana::test::integer<0, 17, void>,
boost::hana::test::integer<1, 17, void>, boost::hana::test::integer<2,
17, void> >, std::tuple<boost::hana::test::integer<0, 17, void>,
boost::hana::test::integer<1,
17, void>, boost::hana::test::integer<2, 17, void>,
boost::hana::test::integer<3, 17, void>, boost::hana::test::integer<4, 17,
void> > >' requested here
tuple<typename std::decay<Xs>::type...> apply(Xs&& ...xs)
^
/home/trippels/hana/include/boost/hana/fwd/core/make.hpp:58:36: note: in
instantiation of function template specialization
'boost::hana::make_impl<boost::hana::tuple_tag,
void>::apply<std::tuple<>, std::tuple<boost::hana::test::integer<0, 17,
void> >, std::tuple<boost::hana::test::integer<0, 17, void>,
boost::hana::test::integer<1, 17,
void> >, std::tuple<boost::hana::test::integer<0, 17, void>,
boost::hana::test::integer<1, 17, void>, boost::hana::test::integer<2, 17,
void> >,
std::tuple<boost::hana::test::integer<0, 17, void>,
boost::hana::test::integer<1, 17, void>, boost::hana::test::integer<2, 17,
void>, boost::hana::test::integer<3, 17,
void>, boost::hana::test::integer<4, 17, void> > >' requested here
return make_impl<Tag>::apply(static_cast<X&&>(x)...);
^
/home/trippels/hana/test/ext/std/tuple.cpp:44:41: note: in instantiation of
function template specialization
'boost::hana::make_t<boost::hana::tuple_tag>::operator()<std::tuple<>,
std::tuple<boost::hana::test::integer<0, 17, void> >,
std::tuple<boost::hana::test::integer<0,
17, void>, boost::hana::test::integer<1, 17, void> >,
std::tuple<boost::hana::test::integer<0, 17, void>,
boost::hana::test::integer<1, 17, void>,
boost::hana::test::integer<2, 17, void> >,
std::tuple<boost::hana::test::integer<0, 17, void>,
boost::hana::test::integer<1, 17, void>, boost::hana::test::integer<2,
17, void>, boost::hana::test::integer<3, 17, void>,
boost::hana::test::integer<4, 17, void> > >' requested here
auto big_eq_tuples = make<tuple_tag>(
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
2 errors generated.
I'm not sure how to reduce the issue further.
gcc doesn't compile the file at all.