From f4107076e462abecf73c72cc53e31faff5420d5b Mon Sep 17 00:00:00 2001 From: Marshall Clow <mclow.lists@gmail.com> Date: Thu, 12 Sep 2013 17:01:38 +0000 Subject: [PATCH] Test for 'bad_array_length'; got left out of initial commit git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@190614 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../new.badlength/bad_array_length.pass.cpp | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 test/language.support/support.dynamic/alloc.errors/new.badlength/bad_array_length.pass.cpp diff --git a/test/language.support/support.dynamic/alloc.errors/new.badlength/bad_array_length.pass.cpp b/test/language.support/support.dynamic/alloc.errors/new.badlength/bad_array_length.pass.cpp new file mode 100644 index 00000000..7de50330 --- /dev/null +++ b/test/language.support/support.dynamic/alloc.errors/new.badlength/bad_array_length.pass.cpp @@ -0,0 +1,29 @@ +//===----------------------------------------------------------------------===// +// +// 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. +// +//===----------------------------------------------------------------------===// + +// test bad_array_length + +#include <new> +#include <type_traits> +#include <cassert> + +int main() +{ +#if __LIBCPP_STD_VER > 11 + static_assert((std::is_base_of<std::bad_alloc, std::bad_array_length>::value), + "std::is_base_of<std::bad_alloc, std::bad_array_length>::value"); + static_assert(std::is_polymorphic<std::bad_array_length>::value, + "std::is_polymorphic<std::bad_array_length>::value"); + std::bad_array_length b; + std::bad_array_length b2 = b; + b2 = b; + const char* w = b2.what(); + assert(w); +#endif +}