Hi Eric, I'm seeing failures on the builders that look like they're related to this - http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-expensive/359/
Could you look in to what's going on here? - Lang. On Tue, Jul 19, 2016 at 11:36 PM, Eric Fiselier via cfe-commits < cfe-commits@lists.llvm.org> wrote: > Author: ericwf > Date: Wed Jul 20 01:36:11 2016 > New Revision: 276092 > > URL: http://llvm.org/viewvc/llvm-project?rev=276092&view=rev > Log: > Unbreak is_constructible tests for Clang <= 3.7. > > There is a bug in Clang's __is_constructible builtin that causes it > to return true for function types; ex [T = void()]. > > > > Modified: > > libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp > > libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_default_constructible.pass.cpp > > Modified: > libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp > URL: > http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp?rev=276092&r1=276091&r2=276092&view=diff > > ============================================================================== > --- > libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp > (original) > +++ > libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp > Wed Jul 20 01:36:11 2016 > @@ -151,9 +151,21 @@ int main() > test_is_constructible<PrivateDtor&, PrivateDtor&>(); > test_is_not_constructible<PrivateDtor, int>(); > > + test_is_not_constructible<void() const, void() const>(); > + test_is_not_constructible<void() const, void*>(); > + > +// TODO: Remove this workaround once Clang <= 3.7 are no longer used > regularly. > +// In those compiler versions the __is_constructible builtin gives the > wrong > +// results for abominable function types. > +#if defined(__clang__) && __clang_major__ == 3 && __clang_minor__ < 8 > +#define WORKAROUND_CLANG_BUG > +#endif > +#if !defined(WORKAROUND_CLANG_BUG) > + test_is_not_constructible<void()>(); > test_is_not_constructible<void() const> (); > test_is_not_constructible<void() volatile> (); > test_is_not_constructible<void() &> (); > test_is_not_constructible<void() &&> (); > #endif > +#endif > } > > Modified: > libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_default_constructible.pass.cpp > URL: > http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_default_constructible.pass.cpp?rev=276092&r1=276091&r2=276092&view=diff > > ============================================================================== > --- > libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_default_constructible.pass.cpp > (original) > +++ > libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_default_constructible.pass.cpp > Wed Jul 20 01:36:11 2016 > @@ -107,7 +107,19 @@ int main() > #if TEST_STD_VER >= 11 > test_is_not_default_constructible<B>(); > test_is_not_default_constructible<int&&>(); > + > +// TODO: Remove this workaround once Clang <= 3.7 are no longer used > regularly. > +// In those compiler versions the __is_constructible builtin gives the > wrong > +// results for abominable function types. > +#if defined(__clang__) && __clang_major__ == 3 && __clang_minor__ < 8 > +#define WORKAROUND_CLANG_BUG > +#endif > +#if !defined(WORKAROUND_CLANG_BUG) > test_is_not_default_constructible<void()>(); > - test_is_not_default_constructible<void() const>(); > + test_is_not_default_constructible<void() const> (); > + test_is_not_default_constructible<void() volatile> (); > + test_is_not_default_constructible<void() &> (); > + test_is_not_default_constructible<void() &&> (); > +#endif > #endif > } > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits