From 2afbf71fddd4be29feaf29fb2c21f25a7657445b Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Wed, 13 Jan 2016 16:32:00 +0000 Subject: [PATCH] [WebAssembly] Set std::numeric_limits's traps field for WebAssembly. WebAssembly's integer division instruction traps on division by zero; set the traps field of integral std::numeric_limits to true. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@257612 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/limits | 3 ++- .../limits/numeric.limits.members/traps.pass.cpp | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/include/limits b/include/limits index ce967ea1b..80a1be40f 100644 --- a/include/limits +++ b/include/limits @@ -237,7 +237,8 @@ protected: static _LIBCPP_CONSTEXPR const bool is_bounded = true; static _LIBCPP_CONSTEXPR const bool is_modulo = !_VSTD::is_signed<_Tp>::value; -#if defined(__i386__) || defined(__x86_64__) || defined(__pnacl__) +#if defined(__i386__) || defined(__x86_64__) || defined(__pnacl__) || \ + defined(__wasm__) static _LIBCPP_CONSTEXPR const bool traps = true; #else static _LIBCPP_CONSTEXPR const bool traps = false; diff --git a/test/std/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp b/test/std/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp index af93e78c0..23811fada 100644 --- a/test/std/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp +++ b/test/std/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp @@ -13,7 +13,8 @@ #include -#if defined(__i386__) || defined(__x86_64__) || defined(__pnacl__) +#if defined(__i386__) || defined(__x86_64__) || defined(__pnacl__) || \ + defined(__wasm__) static const bool integral_types_trap = true; #else static const bool integral_types_trap = false;