[cfe-dev] [Regression] Lots of compile failures in libcxx tests

İsmail Dönmez ismail at donmez.ws
Wed May 28 05:34:33 PDT 2014


Hi,

With clang trunk I see a lot of compile failures in libcxx tests looking
like this:

In file included from invoke_lvalue.pass.cpp:19:
 In file included from
/home/abuild/rpmbuild/BUILD/libcxx/include/functional:474:
 /home/abuild/rpmbuild/BUILD/libcxx/include/type_traits:438:83: error: no
matching function for call to '__source'
     : public integral_constant<bool,
sizeof(__libcpp_is_function_imp::__test<_Tp>(__libcpp_is_function_imp::__source<_Tp>()))
== 1>

       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 /home/abuild/rpmbuild/BUILD/libcxx/include/type_traits:443:14: note: in
instantiation of template class 'std::__1::__libcpp_is_function<void ()
const, false>' requested here
     : public __libcpp_is_function<_Tp> {};
              ^
 /home/abuild/rpmbuild/BUILD/libcxx/include/type_traits:448:97: note: in
instantiation of template class 'std::__1::is_function<void () const>'
requested here
 template <class _Tp, class _Up> struct
__libcpp_is_member_function_pointer<_Tp _Up::*> : public is_function<_Tp>
{};

                     ^
 /home/abuild/rpmbuild/BUILD/libcxx/include/type_traits:451:14: note: in
instantiation of template class
'std::__1::__libcpp_is_member_function_pointer<void (A_void_1::*)() const>'
requested here
     : public __libcpp_is_member_function_pointer<typename
remove_cv<_Tp>::type> {};
              ^
 /home/abuild/rpmbuild/BUILD/libcxx/include/type_traits:465:38: note: in
instantiation of template class 'std::__1::is_member_function_pointer<void
(A_void_1::*)() const>' requested here

 !is_member_function_pointer<_Tp>::value> {};
                                      ^
 /home/abuild/rpmbuild/BUILD/libcxx/include/type_traits:3162:17: note: in
instantiation of template class 'std::__1::is_member_object_pointer<void
(A_void_1::*)() const>' requested here
                 is_member_object_pointer<typename
remove_reference<_Fp>::type>::value &&
                 ^
 /home/abuild/rpmbuild/BUILD/libcxx/include/type_traits:3169:1: note:
(skipping 2 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see
all)
 __invoke(_Fp&& __f, _A0&& __a0)
 ^
 /home/abuild/rpmbuild/BUILD/libcxx/include/type_traits:3195:11: note: in
instantiation of template class 'std::__1::__invokable_imp<void
(A_void_1::*)() const, A_void_1 &>' requested here
           __invokable_imp<_Fp, _Args...>::value>
           ^
 /home/abuild/rpmbuild/BUILD/libcxx/include/functional:1974:31: note: in
instantiation of template class 'std::__1::__invokable<void (A_void_1::*)()
const, A_void_1 &>' requested here
     static const bool value = __invokable<_Fp,
                               ^
 /home/abuild/rpmbuild/BUILD/libcxx/include/functional:1986:18: note: in
instantiation of template class 'std::__1::_is_valid_bind_return<void
(A_void_1::*)() const, std::__1::tuple<std::__1::placeholders::__ph<1> >,
std::__1::tuple<A_void_1 &> >' requested here
           bool = _is_valid_bind_return<_Fp, _BoundArgs, _TupleUj>::value>
                  ^
 /home/abuild/rpmbuild/BUILD/libcxx/include/functional:2083:18: note: in
instantiation of default argument for '__bind_return<void (A_void_1::*)()
const, std::__1::tuple<std::__1::placeholders::__ph<1> >,
std::__1::tuple<A_void_1 &> >' required here
         typename __bind_return<_Fd, _Td, tuple<_Args&&...> >::type
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 invoke_lvalue.pass.cpp:117:22: note: while substituting deduced template
arguments into function template 'operator()' [with _Args = <A_void_1 &>]
     std::bind(fp, _1)(a);
                      ^
 /home/abuild/rpmbuild/BUILD/libcxx/include/type_traits:429:28: note:
candidate template ignored: substitution failure [with _Tp = void ()
const]: reference to function type 'void () const' cannot have 'const'
qualifier
 template <class _Tp> _Tp&  __source();
                      ~~~   ^
 invoke_lvalue.pass.cpp:117:5: error: no matching function for call to
object of type '__bind<void (A_void_1::*&)() const,
std::__1::placeholders::__ph<1> &>'
     std::bind(fp, _1)(a);
     ^~~~~~~~~~~~~~~~~
 /home/abuild/rpmbuild/BUILD/libcxx/include/functional:2084:9: note:
candidate template ignored: substitution failure [with _Args = <A_void_1
&>]: implicit instantiation of undefined template
'std::__1::__bind_return<void (A_void_1::*)() const,
std::__1::tuple<std::__1::placeholders::__ph<1> >, std::__1::tuple<A_void_1
&>, false>'
         operator()(_Args&& ...__args)
         ^
 /home/abuild/rpmbuild/BUILD/libcxx/include/functional:2093:9: note:
candidate template ignored: substitution failure [with _Args = <A_void_1
&>]: implicit instantiation of undefined template
'std::__1::__bind_return<void (A_void_1::*const)() const, const
std::__1::tuple<std::__1::placeholders::__ph<1> >, std::__1::tuple<A_void_1
&>, false>'
         operator()(_Args&& ...__args) const
         ^
 invoke_lvalue.pass.cpp:121:5: error: no matching function for call to
object of type '__bind<void (A_void_1::*&)() const,
std::__1::placeholders::__ph<1> &>'
     std::bind(fp, _1)(ap);
     ^~~~~~~~~~~~~~~~~
 /home/abuild/rpmbuild/BUILD/libcxx/include/functional:2084:9: note:
candidate template ignored: substitution failure [with _Args = <A_void_1
*&>]: implicit instantiation of undefined template
'std::__1::__bind_return<void (A_void_1::*)() const,
std::__1::tuple<std::__1::placeholders::__ph<1> >, std::__1::tuple<A_void_1
*&>, false>'
         operator()(_Args&& ...__args)
         ^
 /home/abuild/rpmbuild/BUILD/libcxx/include/functional:2093:9: note:
candidate template ignored: substitution failure [with _Args = <A_void_1
*&>]: implicit instantiation of undefined template
'std::__1::__bind_return<void (A_void_1::*const)() const, const
std::__1::tuple<std::__1::placeholders::__ph<1> >, std::__1::tuple<A_void_1
*&>, false>'
         operator()(_Args&& ...__args) const
         ^
 invoke_lvalue.pass.cpp:128:5: error: no matching function for call to
object of type '__bind<void (A_void_1::*&)() const, A_void_1 &>'
     std::bind(fp, a)();
     ^~~~~~~~~~~~~~~~
 /home/abuild/rpmbuild/BUILD/libcxx/include/functional:2084:9: note:
candidate template ignored: substitution failure [with _Args = <>]:
implicit instantiation of undefined template 'std::__1::__bind_return<void
(A_void_1::*)() const, std::__1::tuple<A_void_1>, std::__1::tuple<>, false>'
         operator()(_Args&& ...__args)
         ^
 /home/abuild/rpmbuild/BUILD/libcxx/include/functional:2093:9: note:
candidate template ignored: substitution failure [with _Args = <>]:
implicit instantiation of undefined template 'std::__1::__bind_return<void
(A_void_1::*const)() const, const std::__1::tuple<A_void_1>,
std::__1::tuple<>, false>'
         operator()(_Args&& ...__args) const
         ^
 invoke_lvalue.pass.cpp:132:5: error: no matching function for call to
object of type '__bind<void (A_void_1::*&)() const, A_void_1 *&>'
     std::bind(fp, ap)();
     ^~~~~~~~~~~~~~~~~
 /home/abuild/rpmbuild/BUILD/libcxx/include/functional:2084:9: note:
candidate template ignored: substitution failure [with _Args = <>]:
implicit instantiation of undefined template 'std::__1::__bind_return<void
(A_void_1::*)() const, std::__1::tuple<A_void_1 *>, std::__1::tuple<>,
false>'
         operator()(_Args&& ...__args)
         ^
 /home/abuild/rpmbuild/BUILD/libcxx/include/functional:2093:9: note:
candidate template ignored: substitution failure [with _Args = <>]:
implicit instantiation of undefined template 'std::__1::__bind_return<void
(A_void_1::*const)() const, const std::__1::tuple<A_void_1 *>,
std::__1::tuple<>, false>'
         operator()(_Args&& ...__args) const
         ^

Since the tests are not really changed, could this be a clang regression?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20140528/c1afb686/attachment.html>


More information about the cfe-dev mailing list