[libcxx] r339743 - [libcxx] Fix XFAILs for aligned allocation tests on older OSX versions

Hans Wennborg via cfe-commits cfe-commits at lists.llvm.org
Thu Aug 16 02:53:08 PDT 2018


Merged to 7.0 in r339854.

On Wed, Aug 15, 2018 at 2:30 AM, Louis Dionne via cfe-commits
<cfe-commits at lists.llvm.org> wrote:
> Author: ldionne
> Date: Tue Aug 14 17:30:03 2018
> New Revision: 339743
>
> URL: http://llvm.org/viewvc/llvm-project?rev=339743&view=rev
> Log:
> [libcxx] Fix XFAILs for aligned allocation tests on older OSX versions
>
> Summary:
> Since r338934, Clang emits an error when aligned allocation functions are
> used in conjunction with a system libc++ dylib that does not support those
> functions. This causes some tests to fail when testing against older libc++
> dylibs. This commit marks those tests as UNSUPPORTED, and also documents the
> various reasons for the tests being unsupported.
>
> Reviewers: vsapsai, EricWF
>
> Subscribers: christof, dexonsmith, cfe-commits, mclow.lists, EricWF
>
> Differential Revision: https://reviews.llvm.org/D50341
>
> Added:
>     libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size.sh.cpp
>     libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align.sh.cpp
>     libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align_nothrow.sh.cpp
>     libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_nothrow.sh.cpp
>     libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align.sh.cpp
>     libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align_nothrow.sh.cpp
> Removed:
>     libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size.fail.cpp
>     libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align.fail.cpp
>     libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align_nothrow.fail.cpp
>     libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_nothrow.fail.cpp
>     libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align.fail.cpp
>     libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align_nothrow.fail.cpp
> Modified:
>     libcxx/trunk/test/libcxx/memory/aligned_allocation_macro.pass.cpp
>     libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/delete_align_val_t_replace.pass.cpp
>     libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t.pass.cpp
>     libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow.pass.cpp
>     libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow_replace.pass.cpp
>     libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/delete_align_val_t_replace.pass.cpp
>     libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t.pass.cpp
>     libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow.pass.cpp
>     libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow_replace.pass.cpp
>
> Modified: libcxx/trunk/test/libcxx/memory/aligned_allocation_macro.pass.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/memory/aligned_allocation_macro.pass.cpp?rev=339743&r1=339742&r2=339743&view=diff
> ==============================================================================
> --- libcxx/trunk/test/libcxx/memory/aligned_allocation_macro.pass.cpp (original)
> +++ libcxx/trunk/test/libcxx/memory/aligned_allocation_macro.pass.cpp Tue Aug 14 17:30:03 2018
> @@ -8,12 +8,14 @@
>  //===----------------------------------------------------------------------===//
>
>  // UNSUPPORTED: c++98, c++03, c++11, c++14
> -// XFAIL: with_system_cxx_lib=macosx10.12
> -// XFAIL: with_system_cxx_lib=macosx10.11
> -// XFAIL: with_system_cxx_lib=macosx10.10
> -// XFAIL: with_system_cxx_lib=macosx10.9
> -// XFAIL: with_system_cxx_lib=macosx10.8
> -// XFAIL: with_system_cxx_lib=macosx10.7
> +
> +// aligned allocation functions are not provided prior to macosx10.13
> +// XFAIL: macosx10.12
> +// XFAIL: macosx10.11
> +// XFAIL: macosx10.10
> +// XFAIL: macosx10.9
> +// XFAIL: macosx10.8
> +// XFAIL: macosx10.7
>
>  #include <new>
>
>
> Modified: libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/delete_align_val_t_replace.pass.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/delete_align_val_t_replace.pass.cpp?rev=339743&r1=339742&r2=339743&view=diff
> ==============================================================================
> --- libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/delete_align_val_t_replace.pass.cpp (original)
> +++ libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/delete_align_val_t_replace.pass.cpp Tue Aug 14 17:30:03 2018
> @@ -12,17 +12,27 @@
>  // UNSUPPORTED: sanitizer-new-delete, c++98, c++03, c++11, c++14
>
>  // Older Clang versions do not support this
> -// XFAIL: clang-3, apple-clang-7, apple-clang-8
> +// UNSUPPORTED: clang-3, apple-clang-7, apple-clang-8
>
>  // None of the current GCC compilers support this.
> -// XFAIL: gcc-5, gcc-6
> +// UNSUPPORTED: gcc-5, gcc-6
>
> -// XFAIL: with_system_cxx_lib=macosx10.12
> -// XFAIL: with_system_cxx_lib=macosx10.11
> -// XFAIL: with_system_cxx_lib=macosx10.10
> -// XFAIL: with_system_cxx_lib=macosx10.9
> -// XFAIL: with_system_cxx_lib=macosx10.7
> -// XFAIL: with_system_cxx_lib=macosx10.8
> +// dylibs shipped before macosx10.13 do not provide aligned allocation, so that's a link error
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.12
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.11
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.10
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.9
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.8
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.7
> +
> +// Using aligned allocation functions is a compiler error when deploying to
> +// platforms older than macosx10.13
> +// UNSUPPORTED: macosx10.12
> +// UNSUPPORTED: macosx10.11
> +// UNSUPPORTED: macosx10.10
> +// UNSUPPORTED: macosx10.9
> +// UNSUPPORTED: macosx10.8
> +// UNSUPPORTED: macosx10.7
>
>  // On Windows libc++ doesn't provide its own definitions for new/delete
>  // but instead depends on the ones in VCRuntime. However VCRuntime does not
>
> Modified: libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t.pass.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t.pass.cpp?rev=339743&r1=339742&r2=339743&view=diff
> ==============================================================================
> --- libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t.pass.cpp (original)
> +++ libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t.pass.cpp Tue Aug 14 17:30:03 2018
> @@ -15,13 +15,22 @@
>  // FIXME change this to XFAIL.
>  // UNSUPPORTED: no-aligned-allocation && !gcc
>
> -// XFAIL: with_system_cxx_lib=macosx10.12
> -// XFAIL: with_system_cxx_lib=macosx10.11
> -// XFAIL: with_system_cxx_lib=macosx10.10
> -// XFAIL: with_system_cxx_lib=macosx10.9
> -// XFAIL: with_system_cxx_lib=macosx10.7
> -// XFAIL: with_system_cxx_lib=macosx10.8
> +// dylibs shipped before macosx10.13 do not provide aligned allocation, so that's a link error
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.12
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.11
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.10
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.9
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.8
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.7
>
> +// Using aligned allocation functions is a compiler error when deploying to
> +// platforms older than macosx10.13
> +// UNSUPPORTED: macosx10.12
> +// UNSUPPORTED: macosx10.11
> +// UNSUPPORTED: macosx10.10
> +// UNSUPPORTED: macosx10.9
> +// UNSUPPORTED: macosx10.8
> +// UNSUPPORTED: macosx10.7
>
>  // On Windows libc++ doesn't provide its own definitions for new/delete
>  // but instead depends on the ones in VCRuntime. However VCRuntime does not
>
> Modified: libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow.pass.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow.pass.cpp?rev=339743&r1=339742&r2=339743&view=diff
> ==============================================================================
> --- libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow.pass.cpp (original)
> +++ libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow.pass.cpp Tue Aug 14 17:30:03 2018
> @@ -15,12 +15,22 @@
>  // FIXME turn this into an XFAIL
>  // UNSUPPORTED: no-aligned-allocation && !gcc
>
> -// XFAIL: with_system_cxx_lib=macosx10.12
> -// XFAIL: with_system_cxx_lib=macosx10.11
> -// XFAIL: with_system_cxx_lib=macosx10.10
> -// XFAIL: with_system_cxx_lib=macosx10.9
> -// XFAIL: with_system_cxx_lib=macosx10.7
> -// XFAIL: with_system_cxx_lib=macosx10.8
> +// dylibs shipped before macosx10.13 do not provide aligned allocation, so that's a link error
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.12
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.11
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.10
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.9
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.8
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.7
> +
> +// Using aligned allocation functions is a compiler error when deploying to
> +// platforms older than macosx10.13
> +// UNSUPPORTED: macosx10.12
> +// UNSUPPORTED: macosx10.11
> +// UNSUPPORTED: macosx10.10
> +// UNSUPPORTED: macosx10.9
> +// UNSUPPORTED: macosx10.8
> +// UNSUPPORTED: macosx10.7
>
>  // On Windows libc++ doesn't provide its own definitions for new/delete
>  // but instead depends on the ones in VCRuntime. However VCRuntime does not
>
> Modified: libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow_replace.pass.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow_replace.pass.cpp?rev=339743&r1=339742&r2=339743&view=diff
> ==============================================================================
> --- libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow_replace.pass.cpp (original)
> +++ libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow_replace.pass.cpp Tue Aug 14 17:30:03 2018
> @@ -10,12 +10,24 @@
>  // UNSUPPORTED: c++98, c++03, c++11, c++14
>  // UNSUPPORTED: sanitizer-new-delete
>
> -// XFAIL: with_system_cxx_lib=macosx10.12
> -// XFAIL: with_system_cxx_lib=macosx10.11
> -// XFAIL: with_system_cxx_lib=macosx10.10
> -// XFAIL: with_system_cxx_lib=macosx10.9
> -// XFAIL: with_system_cxx_lib=macosx10.7
> -// XFAIL: with_system_cxx_lib=macosx10.8
> +// dylibs shipped before macosx10.13 do not provide aligned allocation, so our
> +// custom aligned allocation functions are not called and the test fails
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.12
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.11
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.10
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.9
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.8
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.7
> +
> +// Our custom aligned allocation functions are not called when deploying to
> +// platforms older than macosx10.13, since those platforms don't support
> +// aligned allocation.
> +// UNSUPPORTED: macosx10.12
> +// UNSUPPORTED: macosx10.11
> +// UNSUPPORTED: macosx10.10
> +// UNSUPPORTED: macosx10.9
> +// UNSUPPORTED: macosx10.8
> +// UNSUPPORTED: macosx10.7
>
>  // XFAIL: no-aligned-allocation && !gcc
>
>
> Removed: libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size.fail.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size.fail.cpp?rev=339742&view=auto
> ==============================================================================
> --- libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size.fail.cpp (original)
> +++ libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size.fail.cpp (removed)
> @@ -1,25 +0,0 @@
> -// -*- C++ -*-
> -//===----------------------------------------------------------------------===//
> -//
> -//                     The LLVM Compiler Infrastructure
> -//
> -// This file is dual licensed under the MIT and the University of Illinois Open
> -// Source Licenses. See LICENSE.TXT for details.
> -//
> -//===----------------------------------------------------------------------===//
> -
> -// <new>
> -
> -// void* operator new[](std::size_t);
> -
> -// UNSUPPORTED: c++98, c++03, c++11, c++14, c++17
> -// UNSUPPORTED: clang-3.3, clang-3.4, clang-3.5, clang-3.6, clang-3.7, clang-3.8
> -
> -#include <new>
> -
> -#include "test_macros.h"
> -
> -int main ()
> -{
> -    ::operator new[](4);  // expected-error {{ignoring return value of function declared with 'nodiscard' attribute}}
> -}
>
> Added: libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size.sh.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size.sh.cpp?rev=339743&view=auto
> ==============================================================================
> --- libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size.sh.cpp (added)
> +++ libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size.sh.cpp Tue Aug 14 17:30:03 2018
> @@ -0,0 +1,26 @@
> +// -*- C++ -*-
> +//===----------------------------------------------------------------------===//
> +//
> +//                     The LLVM Compiler Infrastructure
> +//
> +// This file is dual licensed under the MIT and the University of Illinois Open
> +// Source Licenses. See LICENSE.TXT for details.
> +//
> +//===----------------------------------------------------------------------===//
> +
> +// <new>
> +
> +// void* operator new[](std::size_t);
> +
> +// UNSUPPORTED: c++98, c++03, c++11, c++14, c++17
> +// UNSUPPORTED: clang-3.3, clang-3.4, clang-3.5, clang-3.6, clang-3.7, clang-3.8
> +
> +// REQUIRES: -faligned-allocation
> +// RUN: %compile %verify -faligned-allocation
> +
> +#include <new>
> +
> +int main ()
> +{
> +    ::operator new[](4);  // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
> +}
>
> Removed: libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align.fail.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align.fail.cpp?rev=339742&view=auto
> ==============================================================================
> --- libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align.fail.cpp (original)
> +++ libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align.fail.cpp (removed)
> @@ -1,25 +0,0 @@
> -// -*- C++ -*-
> -//===----------------------------------------------------------------------===//
> -//
> -//                     The LLVM Compiler Infrastructure
> -//
> -// This file is dual licensed under the MIT and the University of Illinois Open
> -// Source Licenses. See LICENSE.TXT for details.
> -//
> -//===----------------------------------------------------------------------===//
> -
> -// <new>
> -
> -// void* operator new[](std::size_t, std::align_val_t);
> -
> -// UNSUPPORTED: c++98, c++03, c++11, c++14, c++17
> -// UNSUPPORTED: clang-3.3, clang-3.4, clang-3.5, clang-3.6, clang-3.7, clang-3.8
> -
> -#include <new>
> -
> -#include "test_macros.h"
> -
> -int main ()
> -{
> -    ::operator new[](4, std::align_val_t{4});  // expected-error {{ignoring return value of function declared with 'nodiscard' attribute}}
> -}
>
> Added: libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align.sh.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align.sh.cpp?rev=339743&view=auto
> ==============================================================================
> --- libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align.sh.cpp (added)
> +++ libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align.sh.cpp Tue Aug 14 17:30:03 2018
> @@ -0,0 +1,26 @@
> +// -*- C++ -*-
> +//===----------------------------------------------------------------------===//
> +//
> +//                     The LLVM Compiler Infrastructure
> +//
> +// This file is dual licensed under the MIT and the University of Illinois Open
> +// Source Licenses. See LICENSE.TXT for details.
> +//
> +//===----------------------------------------------------------------------===//
> +
> +// <new>
> +
> +// void* operator new[](std::size_t, std::align_val_t);
> +
> +// UNSUPPORTED: c++98, c++03, c++11, c++14, c++17
> +// UNSUPPORTED: clang-3.3, clang-3.4, clang-3.5, clang-3.6, clang-3.7, clang-3.8
> +
> +// REQUIRES: -faligned-allocation
> +// RUN: %compile %verify -faligned-allocation
> +
> +#include <new>
> +
> +int main ()
> +{
> +    ::operator new[](4, std::align_val_t{4});  // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
> +}
>
> Removed: libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align_nothrow.fail.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align_nothrow.fail.cpp?rev=339742&view=auto
> ==============================================================================
> --- libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align_nothrow.fail.cpp (original)
> +++ libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align_nothrow.fail.cpp (removed)
> @@ -1,25 +0,0 @@
> -// -*- C++ -*-
> -//===----------------------------------------------------------------------===//
> -//
> -//                     The LLVM Compiler Infrastructure
> -//
> -// This file is dual licensed under the MIT and the University of Illinois Open
> -// Source Licenses. See LICENSE.TXT for details.
> -//
> -//===----------------------------------------------------------------------===//
> -
> -// <new>
> -
> -// void* operator new[](std::size_t, std::align_val_t, std::nothrow_t &);
> -
> -// UNSUPPORTED: c++98, c++03, c++11, c++14, c++17
> -// UNSUPPORTED: clang-3.3, clang-3.4, clang-3.5, clang-3.6, clang-3.7, clang-3.8
> -
> -#include <new>
> -
> -#include "test_macros.h"
> -
> -int main ()
> -{
> -    ::operator new[](4, std::align_val_t{4}, std::nothrow);  // expected-error {{ignoring return value of function declared with 'nodiscard' attribute}}
> -}
>
> Added: libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align_nothrow.sh.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align_nothrow.sh.cpp?rev=339743&view=auto
> ==============================================================================
> --- libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align_nothrow.sh.cpp (added)
> +++ libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align_nothrow.sh.cpp Tue Aug 14 17:30:03 2018
> @@ -0,0 +1,26 @@
> +// -*- C++ -*-
> +//===----------------------------------------------------------------------===//
> +//
> +//                     The LLVM Compiler Infrastructure
> +//
> +// This file is dual licensed under the MIT and the University of Illinois Open
> +// Source Licenses. See LICENSE.TXT for details.
> +//
> +//===----------------------------------------------------------------------===//
> +
> +// <new>
> +
> +// void* operator new[](std::size_t, std::align_val_t, std::nothrow_t &);
> +
> +// UNSUPPORTED: c++98, c++03, c++11, c++14, c++17
> +// UNSUPPORTED: clang-3.3, clang-3.4, clang-3.5, clang-3.6, clang-3.7, clang-3.8
> +
> +// REQUIRES: -faligned-allocation
> +// RUN: %compile %verify -faligned-allocation
> +
> +#include <new>
> +
> +int main ()
> +{
> +    ::operator new[](4, std::align_val_t{4}, std::nothrow);  // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
> +}
>
> Removed: libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_nothrow.fail.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_nothrow.fail.cpp?rev=339742&view=auto
> ==============================================================================
> --- libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_nothrow.fail.cpp (original)
> +++ libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_nothrow.fail.cpp (removed)
> @@ -1,25 +0,0 @@
> -// -*- C++ -*-
> -//===----------------------------------------------------------------------===//
> -//
> -//                     The LLVM Compiler Infrastructure
> -//
> -// This file is dual licensed under the MIT and the University of Illinois Open
> -// Source Licenses. See LICENSE.TXT for details.
> -//
> -//===----------------------------------------------------------------------===//
> -
> -// <new>
> -
> -// void* operator new[](std::size_t, std::nothrow_t &);
> -
> -// UNSUPPORTED: c++98, c++03, c++11, c++14, c++17
> -// UNSUPPORTED: clang-3.3, clang-3.4, clang-3.5, clang-3.6, clang-3.7, clang-3.8
> -
> -#include <new>
> -
> -#include "test_macros.h"
> -
> -int main ()
> -{
> -    ::operator new[](4, std::nothrow);  // expected-error {{ignoring return value of function declared with 'nodiscard' attribute}}
> -}
>
> Added: libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_nothrow.sh.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_nothrow.sh.cpp?rev=339743&view=auto
> ==============================================================================
> --- libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_nothrow.sh.cpp (added)
> +++ libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_nothrow.sh.cpp Tue Aug 14 17:30:03 2018
> @@ -0,0 +1,26 @@
> +// -*- C++ -*-
> +//===----------------------------------------------------------------------===//
> +//
> +//                     The LLVM Compiler Infrastructure
> +//
> +// This file is dual licensed under the MIT and the University of Illinois Open
> +// Source Licenses. See LICENSE.TXT for details.
> +//
> +//===----------------------------------------------------------------------===//
> +
> +// <new>
> +
> +// void* operator new[](std::size_t, std::nothrow_t &);
> +
> +// UNSUPPORTED: c++98, c++03, c++11, c++14, c++17
> +// UNSUPPORTED: clang-3.3, clang-3.4, clang-3.5, clang-3.6, clang-3.7, clang-3.8
> +
> +// REQUIRES: -faligned-allocation
> +// RUN: %compile %verify -faligned-allocation
> +
> +#include <new>
> +
> +int main ()
> +{
> +    ::operator new[](4, std::nothrow);  // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
> +}
>
> Modified: libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/delete_align_val_t_replace.pass.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/delete_align_val_t_replace.pass.cpp?rev=339743&r1=339742&r2=339743&view=diff
> ==============================================================================
> --- libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/delete_align_val_t_replace.pass.cpp (original)
> +++ libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/delete_align_val_t_replace.pass.cpp Tue Aug 14 17:30:03 2018
> @@ -11,17 +11,27 @@
>
>  // UNSUPPORTED: sanitizer-new-delete, c++98, c++03, c++11, c++14
>  // Older Clang versions do not support this
> -// XFAIL: clang-3, apple-clang-7, apple-clang-8
> +// UNSUPPORTED: clang-3, apple-clang-7, apple-clang-8
>
>  // None of the current GCC compilers support this.
> -// XFAIL: gcc-5, gcc-6
> +// UNSUPPORTED: gcc-5, gcc-6
>
> -// XFAIL: with_system_cxx_lib=macosx10.12
> -// XFAIL: with_system_cxx_lib=macosx10.11
> -// XFAIL: with_system_cxx_lib=macosx10.10
> -// XFAIL: with_system_cxx_lib=macosx10.9
> -// XFAIL: with_system_cxx_lib=macosx10.7
> -// XFAIL: with_system_cxx_lib=macosx10.8
> +// dylibs shipped before macosx10.13 do not provide aligned allocation, so that's a link error
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.12
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.11
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.10
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.9
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.8
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.7
> +
> +// Using aligned allocation functions is a compiler error when deploying to
> +// platforms older than macosx10.13
> +// UNSUPPORTED: macosx10.12
> +// UNSUPPORTED: macosx10.11
> +// UNSUPPORTED: macosx10.10
> +// UNSUPPORTED: macosx10.9
> +// UNSUPPORTED: macosx10.8
> +// UNSUPPORTED: macosx10.7
>
>  // On Windows libc++ doesn't provide its own definitions for new/delete
>  // but instead depends on the ones in VCRuntime. However VCRuntime does not
>
> Modified: libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t.pass.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t.pass.cpp?rev=339743&r1=339742&r2=339743&view=diff
> ==============================================================================
> --- libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t.pass.cpp (original)
> +++ libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t.pass.cpp Tue Aug 14 17:30:03 2018
> @@ -9,12 +9,22 @@
>
>  // UNSUPPORTED: c++98, c++03, c++11, c++14
>
> -// XFAIL: with_system_cxx_lib=macosx10.12
> -// XFAIL: with_system_cxx_lib=macosx10.11
> -// XFAIL: with_system_cxx_lib=macosx10.10
> -// XFAIL: with_system_cxx_lib=macosx10.9
> -// XFAIL: with_system_cxx_lib=macosx10.7
> -// XFAIL: with_system_cxx_lib=macosx10.8
> +// dylibs shipped before macosx10.13 do not provide aligned allocation, so that's a link error
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.12
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.11
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.10
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.9
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.8
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.7
> +
> +// Using aligned allocation functions is a compiler error when deploying to
> +// platforms older than macosx10.13
> +// UNSUPPORTED: macosx10.12
> +// UNSUPPORTED: macosx10.11
> +// UNSUPPORTED: macosx10.10
> +// UNSUPPORTED: macosx10.9
> +// UNSUPPORTED: macosx10.8
> +// UNSUPPORTED: macosx10.7
>
>  // asan and msan will not call the new handler.
>  // UNSUPPORTED: sanitizer-new-delete
>
> Modified: libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow.pass.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow.pass.cpp?rev=339743&r1=339742&r2=339743&view=diff
> ==============================================================================
> --- libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow.pass.cpp (original)
> +++ libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow.pass.cpp Tue Aug 14 17:30:03 2018
> @@ -9,12 +9,22 @@
>
>  // UNSUPPORTED: c++98, c++03, c++11, c++14
>
> -// XFAIL: with_system_cxx_lib=macosx10.12
> -// XFAIL: with_system_cxx_lib=macosx10.11
> -// XFAIL: with_system_cxx_lib=macosx10.10
> -// XFAIL: with_system_cxx_lib=macosx10.9
> -// XFAIL: with_system_cxx_lib=macosx10.7
> -// XFAIL: with_system_cxx_lib=macosx10.8
> +// dylibs shipped before macosx10.13 do not provide aligned allocation, so that's a link error
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.12
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.11
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.10
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.9
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.8
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.7
> +
> +// Using aligned allocation functions is a compiler error when deploying to
> +// platforms older than macosx10.13
> +// UNSUPPORTED: macosx10.12
> +// UNSUPPORTED: macosx10.11
> +// UNSUPPORTED: macosx10.10
> +// UNSUPPORTED: macosx10.9
> +// UNSUPPORTED: macosx10.8
> +// UNSUPPORTED: macosx10.7
>
>  // asan and msan will not call the new handler.
>  // UNSUPPORTED: sanitizer-new-delete
>
> Modified: libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow_replace.pass.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow_replace.pass.cpp?rev=339743&r1=339742&r2=339743&view=diff
> ==============================================================================
> --- libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow_replace.pass.cpp (original)
> +++ libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow_replace.pass.cpp Tue Aug 14 17:30:03 2018
> @@ -10,12 +10,24 @@
>  // UNSUPPORTED: c++98, c++03, c++11, c++14
>  // UNSUPPORTED: sanitizer-new-delete
>
> -// XFAIL: with_system_cxx_lib=macosx10.12
> -// XFAIL: with_system_cxx_lib=macosx10.11
> -// XFAIL: with_system_cxx_lib=macosx10.10
> -// XFAIL: with_system_cxx_lib=macosx10.9
> -// XFAIL: with_system_cxx_lib=macosx10.7
> -// XFAIL: with_system_cxx_lib=macosx10.8
> +// dylibs shipped before macosx10.13 do not provide aligned allocation, so our
> +// custom aligned allocation functions are not called and the test fails
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.12
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.11
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.10
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.9
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.8
> +// UNSUPPORTED: with_system_cxx_lib=macosx10.7
> +
> +// Our custom aligned allocation functions are not called when deploying to
> +// platforms older than macosx10.13, since those platforms don't support
> +// aligned allocation.
> +// UNSUPPORTED: macosx10.12
> +// UNSUPPORTED: macosx10.11
> +// UNSUPPORTED: macosx10.10
> +// UNSUPPORTED: macosx10.9
> +// UNSUPPORTED: macosx10.8
> +// UNSUPPORTED: macosx10.7
>
>  // NOTE: gcc doesn't provide -faligned-allocation flag to test for
>  // XFAIL: no-aligned-allocation && !gcc
>
> Removed: libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align.fail.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align.fail.cpp?rev=339742&view=auto
> ==============================================================================
> --- libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align.fail.cpp (original)
> +++ libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align.fail.cpp (removed)
> @@ -1,25 +0,0 @@
> -// -*- C++ -*-
> -//===----------------------------------------------------------------------===//
> -//
> -//                     The LLVM Compiler Infrastructure
> -//
> -// This file is dual licensed under the MIT and the University of Illinois Open
> -// Source Licenses. See LICENSE.TXT for details.
> -//
> -//===----------------------------------------------------------------------===//
> -
> -// <new>
> -
> -// void* operator new(std::size_t, std::align_val_t);
> -
> -// UNSUPPORTED: c++98, c++03, c++11, c++14, c++17
> -// UNSUPPORTED: clang-3.3, clang-3.4, clang-3.5, clang-3.6, clang-3.7, clang-3.8
> -
> -#include <new>
> -
> -#include "test_macros.h"
> -
> -int main ()
> -{
> -    ::operator new(4, std::align_val_t{4});  // expected-error {{ignoring return value of function declared with 'nodiscard' attribute}}
> -}
>
> Added: libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align.sh.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align.sh.cpp?rev=339743&view=auto
> ==============================================================================
> --- libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align.sh.cpp (added)
> +++ libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align.sh.cpp Tue Aug 14 17:30:03 2018
> @@ -0,0 +1,26 @@
> +// -*- C++ -*-
> +//===----------------------------------------------------------------------===//
> +//
> +//                     The LLVM Compiler Infrastructure
> +//
> +// This file is dual licensed under the MIT and the University of Illinois Open
> +// Source Licenses. See LICENSE.TXT for details.
> +//
> +//===----------------------------------------------------------------------===//
> +
> +// <new>
> +
> +// void* operator new(std::size_t, std::align_val_t);
> +
> +// UNSUPPORTED: c++98, c++03, c++11, c++14, c++17
> +// UNSUPPORTED: clang-3.3, clang-3.4, clang-3.5, clang-3.6, clang-3.7, clang-3.8
> +
> +// REQUIRES: -faligned-allocation
> +// RUN: %compile %verify -faligned-allocation
> +
> +#include <new>
> +
> +int main ()
> +{
> +    ::operator new(4, std::align_val_t{4});  // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
> +}
>
> Removed: libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align_nothrow.fail.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align_nothrow.fail.cpp?rev=339742&view=auto
> ==============================================================================
> --- libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align_nothrow.fail.cpp (original)
> +++ libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align_nothrow.fail.cpp (removed)
> @@ -1,25 +0,0 @@
> -// -*- C++ -*-
> -//===----------------------------------------------------------------------===//
> -//
> -//                     The LLVM Compiler Infrastructure
> -//
> -// This file is dual licensed under the MIT and the University of Illinois Open
> -// Source Licenses. See LICENSE.TXT for details.
> -//
> -//===----------------------------------------------------------------------===//
> -
> -// <new>
> -
> -// void* operator new(std::size_t, std::align_val_t, std::nothrow_t &);
> -
> -// UNSUPPORTED: c++98, c++03, c++11, c++14, c++17
> -// UNSUPPORTED: clang-3.3, clang-3.4, clang-3.5, clang-3.6, clang-3.7, clang-3.8
> -
> -#include <new>
> -
> -#include "test_macros.h"
> -
> -int main ()
> -{
> -    ::operator new(4, std::align_val_t{4}, std::nothrow);  // expected-error {{ignoring return value of function declared with 'nodiscard' attribute}}
> -}
>
> Added: libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align_nothrow.sh.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align_nothrow.sh.cpp?rev=339743&view=auto
> ==============================================================================
> --- libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align_nothrow.sh.cpp (added)
> +++ libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align_nothrow.sh.cpp Tue Aug 14 17:30:03 2018
> @@ -0,0 +1,26 @@
> +// -*- C++ -*-
> +//===----------------------------------------------------------------------===//
> +//
> +//                     The LLVM Compiler Infrastructure
> +//
> +// This file is dual licensed under the MIT and the University of Illinois Open
> +// Source Licenses. See LICENSE.TXT for details.
> +//
> +//===----------------------------------------------------------------------===//
> +
> +// <new>
> +
> +// void* operator new(std::size_t, std::align_val_t, std::nothrow_t &);
> +
> +// UNSUPPORTED: c++98, c++03, c++11, c++14, c++17
> +// UNSUPPORTED: clang-3.3, clang-3.4, clang-3.5, clang-3.6, clang-3.7, clang-3.8
> +
> +// REQUIRES: -faligned-allocation
> +// RUN: %compile %verify -faligned-allocation
> +
> +#include <new>
> +
> +int main ()
> +{
> +    ::operator new(4, std::align_val_t{4}, std::nothrow);  // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
> +}
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


More information about the cfe-commits mailing list