Merge "googletest: suppress unsigned overflow in the LCG"
This commit is contained in:
commit
24d0391efb
2
third_party/googletest/README.libvpx
vendored
2
third_party/googletest/README.libvpx
vendored
@ -20,3 +20,5 @@ Local Modifications:
|
|||||||
LICENSE
|
LICENSE
|
||||||
README.md
|
README.md
|
||||||
src
|
src
|
||||||
|
- Suppress unsigned overflow instrumentation in the LCG
|
||||||
|
https://github.com/google/googletest/pull/1066
|
||||||
|
@ -985,6 +985,19 @@ using ::std::tuple_size;
|
|||||||
# define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_
|
# define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_
|
||||||
#endif // __clang__
|
#endif // __clang__
|
||||||
|
|
||||||
|
// A function level attribute to disable UndefinedBehaviorSanitizer's (defined)
|
||||||
|
// unsigned integer overflow instrumentation.
|
||||||
|
#if defined(__clang__)
|
||||||
|
# if defined(__has_attribute) && __has_attribute(no_sanitize)
|
||||||
|
# define GTEST_ATTRIBUTE_NO_SANITIZE_UNSIGNED_OVERFLOW_ \
|
||||||
|
__attribute__((no_sanitize("unsigned-integer-overflow")))
|
||||||
|
# else
|
||||||
|
# define GTEST_ATTRIBUTE_NO_SANITIZE_UNSIGNED_OVERFLOW_
|
||||||
|
# endif // defined(__has_attribute) && __has_attribute(no_sanitize)
|
||||||
|
#else
|
||||||
|
# define GTEST_ATTRIBUTE_NO_SANITIZE_UNSIGNED_OVERFLOW_
|
||||||
|
#endif // __clang__
|
||||||
|
|
||||||
namespace testing {
|
namespace testing {
|
||||||
|
|
||||||
class Message;
|
class Message;
|
||||||
|
1
third_party/googletest/src/src/gtest.cc
vendored
1
third_party/googletest/src/src/gtest.cc
vendored
@ -308,6 +308,7 @@ namespace internal {
|
|||||||
// Generates a random number from [0, range), using a Linear
|
// Generates a random number from [0, range), using a Linear
|
||||||
// Congruential Generator (LCG). Crashes if 'range' is 0 or greater
|
// Congruential Generator (LCG). Crashes if 'range' is 0 or greater
|
||||||
// than kMaxRange.
|
// than kMaxRange.
|
||||||
|
GTEST_ATTRIBUTE_NO_SANITIZE_UNSIGNED_OVERFLOW_
|
||||||
UInt32 Random::Generate(UInt32 range) {
|
UInt32 Random::Generate(UInt32 range) {
|
||||||
// These constants are the same as are used in glibc's rand(3).
|
// These constants are the same as are used in glibc's rand(3).
|
||||||
state_ = (1103515245U*state_ + 12345U) % kMaxRange;
|
state_ = (1103515245U*state_ + 12345U) % kMaxRange;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user