This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG7f037e5645bd: [clang] [test] Narrow down MSVC specific behaviours from "any windows" to only… (authored by mstorsjo).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D149997/new/ https://reviews.llvm.org/D149997 Files: clang/test/C/drs/dr1xx.c clang/test/Driver/experimental-library-flag.cpp clang/test/SemaCXX/attr-trivial-abi.cpp Index: clang/test/SemaCXX/attr-trivial-abi.cpp =================================================================== --- clang/test/SemaCXX/attr-trivial-abi.cpp +++ clang/test/SemaCXX/attr-trivial-abi.cpp @@ -5,11 +5,11 @@ // Should not crash. template <class> class __attribute__((trivial_abi)) a { a(a &&); }; -#ifdef _WIN64 -// On Windows, to be trivial-for-calls, an object must be trivially copyable. +#if defined(_WIN64) && defined(_MSC_VER) +// On Windows/MSVC, to be trivial-for-calls, an object must be trivially copyable. // (And it is only trivially relocatable, currently, if it is trivial for calls.) // In this case, it is suppressed by an explicitly defined move constructor. -// Similar concerns apply to later tests that have #ifdef _WIN64. +// Similar concerns apply to later tests that have #if defined(_WIN64) && defined(_MSC_VER). static_assert(!__is_trivially_relocatable(a<int>), ""); #else static_assert(__is_trivially_relocatable(a<int>), ""); @@ -137,7 +137,7 @@ CopyDeleted(const CopyDeleted &) = delete; CopyDeleted(CopyDeleted &&) = default; }; -#ifdef _WIN64 +#if defined(_WIN64) && defined(_MSC_VER) static_assert(!__is_trivially_relocatable(CopyDeleted), ""); #else static_assert(__is_trivially_relocatable(CopyDeleted), ""); @@ -163,7 +163,7 @@ struct __attribute__((trivial_abi)) S20 { int &&a; // a member of rvalue reference type deletes the copy constructor. }; -#ifdef _WIN64 +#if defined(_WIN64) && defined(_MSC_VER) static_assert(!__is_trivially_relocatable(S20), ""); #else static_assert(__is_trivially_relocatable(S20), ""); Index: clang/test/Driver/experimental-library-flag.cpp =================================================================== --- clang/test/Driver/experimental-library-flag.cpp +++ clang/test/Driver/experimental-library-flag.cpp @@ -1,6 +1,6 @@ // On some platforms, -stdlib=libc++ is currently ignored, so -lc++experimental is not added. // Once -stdlib=libc++ works on those, this XFAIL can be removed. -// XFAIL: target={{.*-windows.*}}, target={{.*-(ps4|ps5)}} +// XFAIL: target={{.*-windows-msvc.*}}, target={{.*-(ps4|ps5)}} // For some reason, this fails with a core dump on AIX. This needs to be investigated. // UNSUPPORTED: target={{.*}}-aix{{.*}} Index: clang/test/C/drs/dr1xx.c =================================================================== --- clang/test/C/drs/dr1xx.c +++ clang/test/C/drs/dr1xx.c @@ -235,7 +235,7 @@ * type at this point. */ Val = sizeof(enum E) - #ifndef _WIN32 + #ifndef _MSC_VER /* expected-error@-2 {{invalid application of 'sizeof' to an incomplete type 'enum E'}} */ /* expected-note@-12 {{definition of 'enum E' is not complete until the closing '}'}} */ #endif
Index: clang/test/SemaCXX/attr-trivial-abi.cpp =================================================================== --- clang/test/SemaCXX/attr-trivial-abi.cpp +++ clang/test/SemaCXX/attr-trivial-abi.cpp @@ -5,11 +5,11 @@ // Should not crash. template <class> class __attribute__((trivial_abi)) a { a(a &&); }; -#ifdef _WIN64 -// On Windows, to be trivial-for-calls, an object must be trivially copyable. +#if defined(_WIN64) && defined(_MSC_VER) +// On Windows/MSVC, to be trivial-for-calls, an object must be trivially copyable. // (And it is only trivially relocatable, currently, if it is trivial for calls.) // In this case, it is suppressed by an explicitly defined move constructor. -// Similar concerns apply to later tests that have #ifdef _WIN64. +// Similar concerns apply to later tests that have #if defined(_WIN64) && defined(_MSC_VER). static_assert(!__is_trivially_relocatable(a<int>), ""); #else static_assert(__is_trivially_relocatable(a<int>), ""); @@ -137,7 +137,7 @@ CopyDeleted(const CopyDeleted &) = delete; CopyDeleted(CopyDeleted &&) = default; }; -#ifdef _WIN64 +#if defined(_WIN64) && defined(_MSC_VER) static_assert(!__is_trivially_relocatable(CopyDeleted), ""); #else static_assert(__is_trivially_relocatable(CopyDeleted), ""); @@ -163,7 +163,7 @@ struct __attribute__((trivial_abi)) S20 { int &&a; // a member of rvalue reference type deletes the copy constructor. }; -#ifdef _WIN64 +#if defined(_WIN64) && defined(_MSC_VER) static_assert(!__is_trivially_relocatable(S20), ""); #else static_assert(__is_trivially_relocatable(S20), ""); Index: clang/test/Driver/experimental-library-flag.cpp =================================================================== --- clang/test/Driver/experimental-library-flag.cpp +++ clang/test/Driver/experimental-library-flag.cpp @@ -1,6 +1,6 @@ // On some platforms, -stdlib=libc++ is currently ignored, so -lc++experimental is not added. // Once -stdlib=libc++ works on those, this XFAIL can be removed. -// XFAIL: target={{.*-windows.*}}, target={{.*-(ps4|ps5)}} +// XFAIL: target={{.*-windows-msvc.*}}, target={{.*-(ps4|ps5)}} // For some reason, this fails with a core dump on AIX. This needs to be investigated. // UNSUPPORTED: target={{.*}}-aix{{.*}} Index: clang/test/C/drs/dr1xx.c =================================================================== --- clang/test/C/drs/dr1xx.c +++ clang/test/C/drs/dr1xx.c @@ -235,7 +235,7 @@ * type at this point. */ Val = sizeof(enum E) - #ifndef _WIN32 + #ifndef _MSC_VER /* expected-error@-2 {{invalid application of 'sizeof' to an incomplete type 'enum E'}} */ /* expected-note@-12 {{definition of 'enum E' is not complete until the closing '}'}} */ #endif
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits