From 58fc1b50d8b0719460e1bf08734c0e7632fb03c4 Mon Sep 17 00:00:00 2001 From: Marshall Clow Date: Fri, 10 Feb 2017 20:49:08 +0000 Subject: Make lcm/gcd work better in edge cases. Fixes a UBSAN failure. llvm-svn: 294779 --- .../experimental/numeric/numeric.ops/numeric.ops.gcd/gcd.pass.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'libcxx/test/std/experimental/numeric/numeric.ops/numeric.ops.gcd/gcd.pass.cpp') diff --git a/libcxx/test/std/experimental/numeric/numeric.ops/numeric.ops.gcd/gcd.pass.cpp b/libcxx/test/std/experimental/numeric/numeric.ops/numeric.ops.gcd/gcd.pass.cpp index a52b50b391c..2c1a3b8f3fd 100644 --- a/libcxx/test/std/experimental/numeric/numeric.ops/numeric.ops.gcd/gcd.pass.cpp +++ b/libcxx/test/std/experimental/numeric/numeric.ops/numeric.ops.gcd/gcd.pass.cpp @@ -129,4 +129,11 @@ int main() assert((do_test(non_cce))); assert((do_test(non_cce))); assert((do_test(non_cce))); + +// LWG#2792 + { + auto res = std::gcd((int64_t)1234, (int32_t)-2147483648); + static_assert( std::is_same::type>::value, ""); + assert(res == 2); + } } -- cgit v1.2.3