This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libstdc++/67537] New: [6 Regression] r225189 breaks building boost hana


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]