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

Marshall Clow mclow.lists at gmail.com
Wed May 28 17:19:40 PDT 2014


On May 28, 2014, at 9:30 AM, İsmail Dönmez <ismail at donmez.ws> wrote:

> Awesome! Sorry for the duplicate report.
> 
> 
No worries. Still working on it.

— Marshall


> On May 28, 2014 7:10 PM, "Justin Bogner" <mail at justinbogner.com> wrote:
> This started with r208825. Richard says it's a bug in libc++:
> 
>   http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20140519/106091.html
> 
> and I believe Marshall is looking into it:
> 
>   http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20140526/106341.html
> 
> İsmail Dönmez <ismail at donmez.ws> writes:
> > 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?
> >
> > _______________________________________________
> > cfe-dev mailing list
> > cfe-dev at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20140528/1e131f77/attachment.html>


More information about the cfe-dev mailing list