summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/utilities/meta/meta.const.eval/is_constant_evaluated.fail.cpp
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2019-04-24 17:54:25 +0000
committerEric Fiselier <eric@efcs.ca>2019-04-24 17:54:25 +0000
commit2fc5a786beaba1fbac1de65d78889d72b667f2d3 (patch)
treea3136cb21a5ba3f8ce402361552b79115a8d7691 /libcxx/test/std/utilities/meta/meta.const.eval/is_constant_evaluated.fail.cpp
parentabdb816b776cc43a1f318c84d26e1fe5840da073 (diff)
downloadbcm5719-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.cpp29
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;
+}
OpenPOWER on IntegriCloud