diff options
author | Erich Keane <erich.keane@intel.com> | 2018-06-13 20:47:12 +0000 |
---|---|---|
committer | Erich Keane <erich.keane@intel.com> | 2018-06-13 20:47:12 +0000 |
commit | 436e5cc0f16b3f8542e0269a635ced9a4a058741 (patch) | |
tree | 9bc104a177ca85b8371b456502711487ca1b02ed /clang/test/SemaCXX/builtins-overflow.cpp | |
parent | 0c3a7761f38f37aca52b9e0d5f9340042799d9c8 (diff) | |
download | bcm5719-llvm-436e5cc0f16b3f8542e0269a635ced9a4a058741.tar.gz bcm5719-llvm-436e5cc0f16b3f8542e0269a635ced9a4a058741.zip |
Simplify test from r334650
No reason to have the 'bool' as an intermediary value,
simply use the fact that curley braces enforce eval order.
llvm-svn: 334652
Diffstat (limited to 'clang/test/SemaCXX/builtins-overflow.cpp')
-rw-r--r-- | clang/test/SemaCXX/builtins-overflow.cpp | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/clang/test/SemaCXX/builtins-overflow.cpp b/clang/test/SemaCXX/builtins-overflow.cpp index 8cd28341e41..65733c0c154 100644 --- a/clang/test/SemaCXX/builtins-overflow.cpp +++ b/clang/test/SemaCXX/builtins-overflow.cpp @@ -29,8 +29,7 @@ struct Result { template <typename RET, typename LHS, typename RHS> constexpr Result<RET> add(LHS &&lhs, RHS &&rhs) { RET sum{}; - bool b = __builtin_add_overflow(lhs, rhs, &sum); - return {b, sum}; + return {__builtin_add_overflow(lhs, rhs, &sum), sum}; } static_assert(add<short>(static_cast<char>(120), static_cast<char>(10)) == Result<short>{false, 130}); @@ -45,8 +44,7 @@ static_assert(add<int>(INT_MIN + 22, -23) == Result<int>{true, INT_MAX}); template <typename RET, typename LHS, typename RHS> constexpr Result<RET> sub(LHS &&lhs, RHS &&rhs) { RET sum{}; - bool b = __builtin_sub_overflow(lhs, rhs, &sum); - return {b, sum}; + return {__builtin_sub_overflow(lhs, rhs, &sum), sum}; } static_assert(sub<unsigned char>(static_cast<char>(0),static_cast<char>(1)) == Result<unsigned char>{true, UCHAR_MAX}); @@ -60,8 +58,7 @@ static_assert(sub<int>(INT_MIN + 22, 23) == Result<int>{true, INT_MAX}); template <typename RET, typename LHS, typename RHS> constexpr Result<RET> mul(LHS &&lhs, RHS &&rhs) { RET sum{}; - bool b = __builtin_mul_overflow(lhs, rhs, &sum); - return {b, sum}; + return {__builtin_mul_overflow(lhs, rhs, &sum), sum}; } static_assert(mul<int>(17,22) == Result<int>{false, 374}); @@ -70,8 +67,7 @@ static_assert(mul<int>(INT_MIN / 22, -23) == Result<int>{true, -2049870757}); constexpr Result<int> sadd(int lhs, int rhs) { int sum{}; - bool b = __builtin_sadd_overflow(lhs, rhs, &sum); - return {b, sum}; + return {__builtin_sadd_overflow(lhs, rhs, &sum), sum}; } static_assert(sadd(17,22) == Result<int>{false, 39}); @@ -80,8 +76,7 @@ static_assert(sadd(INT_MIN + 22, -23) == Result<int>{true, INT_MAX}); constexpr Result<int> ssub(int lhs, int rhs) { int sum{}; - bool b = __builtin_ssub_overflow(lhs, rhs, &sum); - return {b, sum}; + return {__builtin_ssub_overflow(lhs, rhs, &sum), sum}; } static_assert(ssub(17,22) == Result<int>{false, -5}); @@ -90,8 +85,7 @@ static_assert(ssub(INT_MIN + 22, 23) == Result<int>{true, INT_MAX}); constexpr Result<int> smul(int lhs, int rhs) { int sum{}; - bool b = __builtin_smul_overflow(lhs, rhs, &sum); - return {b, sum}; + return {__builtin_smul_overflow(lhs, rhs, &sum), sum}; } static_assert(smul(17,22) == Result<int>{false, 374}); |