diff options
author | Xiaoyi Zhang <zhangxy@google.com> | 2019-11-04 16:43:27 (GMT) |
---|---|---|
committer | Xiaoyi Zhang <zhangxy@google.com> | 2019-11-04 16:43:27 (GMT) |
commit | 8697709e0308af4cd5b09dc108480804e5447cf0 (patch) | |
tree | c28c9fae6cb42e78fdb0750a63fcf8a814966b0d /googletest/include/gtest/gtest.h | |
parent | e8a82dc7ede61c4af3b9d75aa0e953b8cecfc8bb (diff) | |
parent | 6e87238c9b14bcd749364e9b7125622a985a8a20 (diff) | |
download | googletest-8697709e0308af4cd5b09dc108480804e5447cf0.zip googletest-8697709e0308af4cd5b09dc108480804e5447cf0.tar.gz googletest-8697709e0308af4cd5b09dc108480804e5447cf0.tar.bz2 |
Merge pull request #2453 from kuzkry:gtest-port-clean-up_kMaxBiggestInt
PiperOrigin-RevId: 278008286
Diffstat (limited to 'googletest/include/gtest/gtest.h')
-rw-r--r-- | googletest/include/gtest/gtest.h | 48 |
1 files changed, 26 insertions, 22 deletions
diff --git a/googletest/include/gtest/gtest.h b/googletest/include/gtest/gtest.h index 0e1c4f7..8eda6ea 100644 --- a/googletest/include/gtest/gtest.h +++ b/googletest/include/gtest/gtest.h @@ -1531,11 +1531,13 @@ AssertionResult CmpHelperEQ(const char* lhs_expression, return CmpHelperEQFailure(lhs_expression, rhs_expression, lhs, rhs); } -// With this overloaded version, we allow anonymous enums to be used in -// {ASSERT|EXPECT}_EQ as anonymous enums can be implicitly cast to integers. +// With this overloaded version, we allow anonymous enums to be used +// in {ASSERT|EXPECT}_EQ when compiled with gcc 4, as anonymous enums +// can be implicitly cast to BiggestInt. GTEST_API_ AssertionResult CmpHelperEQ(const char* lhs_expression, const char* rhs_expression, - std::intmax_t lhs, std::intmax_t rhs); + BiggestInt lhs, + BiggestInt rhs); class EqHelper { public: @@ -1552,14 +1554,16 @@ class EqHelper { return CmpHelperEQ(lhs_expression, rhs_expression, lhs, rhs); } - // With this overloaded version, we allow anonymous enums to be used in - // {ASSERT|EXPECT}_EQ as anonymous enums can be implicitly cast to integers. + // With this overloaded version, we allow anonymous enums to be used + // in {ASSERT|EXPECT}_EQ when compiled with gcc 4, as anonymous + // enums can be implicitly cast to BiggestInt. // // Even though its body looks the same as the above version, we // cannot merge the two, as it will make anonymous enums unhappy. static AssertionResult Compare(const char* lhs_expression, - const char* rhs_expression, std::intmax_t lhs, - std::intmax_t rhs) { + const char* rhs_expression, + BiggestInt lhs, + BiggestInt rhs) { return CmpHelperEQ(lhs_expression, rhs_expression, lhs, rhs); } @@ -1592,24 +1596,24 @@ AssertionResult CmpHelperOpFailure(const char* expr1, const char* expr2, // of similar code. // // For each templatized helper function, we also define an overloaded -// version for std::intmax_t in order to reduce code bloat and allow -// anonymous enums to be used with {ASSERT|EXPECT}_??. +// version for BiggestInt in order to reduce code bloat and allow +// anonymous enums to be used with {ASSERT|EXPECT}_?? when compiled +// with gcc 4. // // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -#define GTEST_IMPL_CMP_HELPER_(op_name, op) \ - template <typename T1, typename T2> \ - AssertionResult CmpHelper##op_name(const char* expr1, const char* expr2, \ - const T1& val1, const T2& val2) { \ - if (val1 op val2) { \ - return AssertionSuccess(); \ - } else { \ - return CmpHelperOpFailure(expr1, expr2, val1, val2, #op); \ - } \ - } \ - GTEST_API_ AssertionResult CmpHelper##op_name( \ - const char* expr1, const char* expr2, std::intmax_t val1, \ - std::intmax_t val2) +#define GTEST_IMPL_CMP_HELPER_(op_name, op)\ +template <typename T1, typename T2>\ +AssertionResult CmpHelper##op_name(const char* expr1, const char* expr2, \ + const T1& val1, const T2& val2) {\ + if (val1 op val2) {\ + return AssertionSuccess();\ + } else {\ + return CmpHelperOpFailure(expr1, expr2, val1, val2, #op);\ + }\ +}\ +GTEST_API_ AssertionResult CmpHelper##op_name(\ + const char* expr1, const char* expr2, BiggestInt val1, BiggestInt val2) // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. |