diff options
author | Eric Fiselier <eric@efcs.ca> | 2019-04-24 17:54:25 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2019-04-24 17:54:25 +0000 |
commit | 2fc5a786beaba1fbac1de65d78889d72b667f2d3 (patch) | |
tree | a3136cb21a5ba3f8ce402361552b79115a8d7691 /libcxx/test/std/utilities/meta/meta.const.eval/is_constant_evaluated.fail.cpp | |
parent | abdb816b776cc43a1f318c84d26e1fe5840da073 (diff) | |
download | bcm5719-llvm-2fc5a786beaba1fbac1de65d78889d72b667f2d3.tar.gz bcm5719-llvm-2fc5a786beaba1fbac1de65d78889d72b667f2d3.zip |
Add std::is_constant_evaluated.
Clang recently added __builtin_is_constant_evaluated() and GCC 9.0
has it as well.
This patch adds support for it in libc++.
llvm-svn: 359119
Diffstat (limited to 'libcxx/test/std/utilities/meta/meta.const.eval/is_constant_evaluated.fail.cpp')
-rw-r--r-- | libcxx/test/std/utilities/meta/meta.const.eval/is_constant_evaluated.fail.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/libcxx/test/std/utilities/meta/meta.const.eval/is_constant_evaluated.fail.cpp b/libcxx/test/std/utilities/meta/meta.const.eval/is_constant_evaluated.fail.cpp new file mode 100644 index 00000000000..c139233b8da --- /dev/null +++ b/libcxx/test/std/utilities/meta/meta.const.eval/is_constant_evaluated.fail.cpp @@ -0,0 +1,29 @@ +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +// UNSUPPORTED: c++98, c++03 + +// <type_traits> + + +#include <type_traits> +#include <cassert> + +#include "test_macros.h" + +int main(int, char**) +{ +#ifndef __cpp_lib_is_constant_evaluated + // expected-error@+1 {{no member named 'is_constant_evaluated' in namespace 'std'}} + bool b = std::is_constant_evaluated(); +#else + // expected-error@+1 {{static_assert failed}} + static_assert(!std::is_constant_evaluated(), ""); +#endif + return 0; +} |