summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/builtins-overflow.cpp
diff options
context:
space:
mode:
authorErich Keane <erich.keane@intel.com>2018-06-13 20:47:12 +0000
committerErich Keane <erich.keane@intel.com>2018-06-13 20:47:12 +0000
commit436e5cc0f16b3f8542e0269a635ced9a4a058741 (patch)
tree9bc104a177ca85b8371b456502711487ca1b02ed /clang/test/SemaCXX/builtins-overflow.cpp
parent0c3a7761f38f37aca52b9e0d5f9340042799d9c8 (diff)
downloadbcm5719-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.cpp18
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});
OpenPOWER on IntegriCloud