summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm
diff options
context:
space:
mode:
authorMarshall Clow <mclow.lists@gmail.com>2016-11-14 18:22:19 +0000
committerMarshall Clow <mclow.lists@gmail.com>2016-11-14 18:22:19 +0000
commit1c7fe126ee16857243738ebc1dbaea69caffefb1 (patch)
tree9ccb4a534b61893d510b4ab870a93892479b92a6 /libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm
parentccf2fa1cb64f8b292cfbe964905c4a802fb6dd87 (diff)
downloadbcm5719-llvm-1c7fe126ee16857243738ebc1dbaea69caffefb1.tar.gz
bcm5719-llvm-1c7fe126ee16857243738ebc1dbaea69caffefb1.zip
Fixes for LWG 2598, 2686, 2739, 2742, 2747, and 2759, which were adopted last week in Issaquah
llvm-svn: 286858
Diffstat (limited to 'libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm')
-rw-r--r--libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.bool1.fail.cpp25
-rw-r--r--libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.bool2.fail.cpp25
-rw-r--r--libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.bool3.fail.cpp25
-rw-r--r--libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.bool4.fail.cpp25
-rw-r--r--libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.not_integral1.fail.cpp3
-rw-r--r--libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.not_integral2.fail.cpp3
6 files changed, 104 insertions, 2 deletions
diff --git a/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.bool1.fail.cpp b/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.bool1.fail.cpp
new file mode 100644
index 00000000000..79c5f62db16
--- /dev/null
+++ b/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.bool1.fail.cpp
@@ -0,0 +1,25 @@
+//===----------------------------------------------------------------------===//
+//
+// 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.
+//
+//===----------------------------------------------------------------------===//
+//
+// UNSUPPORTED: c++98, c++03, c++11, c++14
+// <numeric>
+
+// template<class _M, class _N>
+// constexpr common_type_t<_M,_N> lcm(_M __m, _N __n)
+
+// Remarks: If either M or N is not an integer type,
+// or if either is (a possibly cv-qualified) bool, the program is ill-formed.
+
+#include <numeric>
+
+
+int main()
+{
+ std::lcm(false, 4);
+}
diff --git a/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.bool2.fail.cpp b/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.bool2.fail.cpp
new file mode 100644
index 00000000000..c34efea176a
--- /dev/null
+++ b/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.bool2.fail.cpp
@@ -0,0 +1,25 @@
+//===----------------------------------------------------------------------===//
+//
+// 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.
+//
+//===----------------------------------------------------------------------===//
+//
+// UNSUPPORTED: c++98, c++03, c++11, c++14
+// <numeric>
+
+// template<class _M, class _N>
+// constexpr common_type_t<_M,_N> lcm(_M __m, _N __n)
+
+// Remarks: If either M or N is not an integer type,
+// or if either is (a possibly cv-qualified) bool, the program is ill-formed.
+
+#include <numeric>
+
+
+int main()
+{
+ std::lcm(2, true);
+}
diff --git a/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.bool3.fail.cpp b/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.bool3.fail.cpp
new file mode 100644
index 00000000000..8cb38eb2ada
--- /dev/null
+++ b/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.bool3.fail.cpp
@@ -0,0 +1,25 @@
+//===----------------------------------------------------------------------===//
+//
+// 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.
+//
+//===----------------------------------------------------------------------===//
+//
+// UNSUPPORTED: c++98, c++03, c++11, c++14
+// <numeric>
+
+// template<class _M, class _N>
+// constexpr common_type_t<_M,_N> lcm(_M __m, _N __n)
+
+// Remarks: If either M or N is not an integer type,
+// or if either is (a possibly cv-qualified) bool, the program is ill-formed.
+
+#include <numeric>
+
+
+int main()
+{
+ std::lcm<volatile bool, int>(false, 4);
+}
diff --git a/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.bool4.fail.cpp b/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.bool4.fail.cpp
new file mode 100644
index 00000000000..464eb03beb2
--- /dev/null
+++ b/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.bool4.fail.cpp
@@ -0,0 +1,25 @@
+//===----------------------------------------------------------------------===//
+//
+// 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.
+//
+//===----------------------------------------------------------------------===//
+//
+// UNSUPPORTED: c++98, c++03, c++11, c++14
+// <numeric>
+
+// template<class _M, class _N>
+// constexpr common_type_t<_M,_N> lcm(_M __m, _N __n)
+
+// Remarks: If either M or N is not an integer type,
+// or if either is (a possibly cv-qualified) bool, the program is ill-formed.
+
+#include <numeric>
+
+
+int main()
+{
+ std::lcm<int, const bool>(2, true);
+}
diff --git a/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.not_integral1.fail.cpp b/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.not_integral1.fail.cpp
index 1e69b25b190..ce6bcf88b30 100644
--- a/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.not_integral1.fail.cpp
+++ b/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.not_integral1.fail.cpp
@@ -13,7 +13,8 @@
// template<class _M, class _N>
// constexpr common_type_t<_M,_N> lcm(_M __m, _N __n)
-// Remarks: If either M or N is not an integer type, the program is ill-formed.
+// Remarks: If either M or N is not an integer type,
+// or if either is (a possibly cv-qualified) bool, the program is ill-formed.
#include <numeric>
diff --git a/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.not_integral2.fail.cpp b/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.not_integral2.fail.cpp
index d58d903a23c..a9100989bf4 100644
--- a/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.not_integral2.fail.cpp
+++ b/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.not_integral2.fail.cpp
@@ -13,7 +13,8 @@
// template<class _M, class _N>
// constexpr common_type_t<_M,_N> lcm(_M __m, _N __n)
-// Remarks: If either M or N is not an integer type, the program is ill-formed.
+// Remarks: If either M or N is not an integer type,
+// or if either is (a possibly cv-qualified) bool, the program is ill-formed.
#include <numeric>
OpenPOWER on IntegriCloud