summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm
diff options
context:
space:
mode:
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