On Aug 14, 2013, at 6:40 PM, Eli Friedman <[email protected]> wrote:
> On Wed, Aug 14, 2013 at 2:28 PM, Howard Hinnant <[email protected]> wrote: > Author: hhinnant > Date: Wed Aug 14 16:28:31 2013 > New Revision: 188413 > > URL: http://llvm.org/viewvc/llvm-project?rev=188413&view=rev > Log: > Relax complete-type check for functions and function pointers to allow void > return type. This bug was exposed by Eli Friedman's commit to clang r188324. > Anywhere this version of clang ships, this libc++ fix must follow. However > this fix is compatible with previous clangs, and so this libc++ doesn't need > to wait for this clang. > > Modified: > libcxx/trunk/include/type_traits > > Modified: libcxx/trunk/include/type_traits > URL: > http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/type_traits?rev=188413&r1=188412&r2=188413&view=diff > ============================================================================== > --- libcxx/trunk/include/type_traits (original) > +++ libcxx/trunk/include/type_traits Wed Aug 14 16:28:31 2013 > @@ -2928,12 +2928,22 @@ struct __check_complete<_Rp (*)(_Param.. > { > }; > > +template <class ..._Param> > +struct __check_complete<void (*)(_Param...)> > +{ > +}; > + > template <class _Rp, class ..._Param> > struct __check_complete<_Rp (_Param...)> > : private __check_complete<_Rp> > { > }; > > +template <class ..._Param> > +struct __check_complete<void (_Param...)> > +{ > +}; > + > template <class _Rp, class _Class, class ..._Param> > struct __check_complete<_Rp (_Class::*)(_Param...)> > : private __check_complete<_Class> > > > > Do we need a similar fix for member function pointers? Or do we not check > the return types for those? We don't. For member function pointers we only check for the completeness of the class type. But thanks for checking. Howard _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
