Commit 37b97d1c authored by kosak's avatar kosak
Browse files

Add MemorySanitizer annotations in gtest printers. Also remove unused variable...

Add MemorySanitizer annotations in gtest printers. Also remove unused variable kPathSeparatorString.
parent aa34ae25
...@@ -782,6 +782,19 @@ using ::std::tuple_size; ...@@ -782,6 +782,19 @@ using ::std::tuple_size;
# define GTEST_HAS_CXXABI_H_ 0 # define GTEST_HAS_CXXABI_H_ 0
#endif #endif
// A function level attribute to disable checking for use of uninitialized
// memory when built with MemorySanitizer.
#if defined(__clang__)
# if __has_feature(memory_sanitizer)
# define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_ \
__attribute__((no_sanitize_memory))
# else
# define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_
# endif
#else
# define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_
#endif
namespace testing { namespace testing {
class Message; class Message;
......
...@@ -70,7 +70,6 @@ namespace internal { ...@@ -70,7 +70,6 @@ namespace internal {
// of them. // of them.
const char kPathSeparator = '\\'; const char kPathSeparator = '\\';
const char kAlternatePathSeparator = '/'; const char kAlternatePathSeparator = '/';
const char kPathSeparatorString[] = "\\";
const char kAlternatePathSeparatorString[] = "/"; const char kAlternatePathSeparatorString[] = "/";
# if GTEST_OS_WINDOWS_MOBILE # if GTEST_OS_WINDOWS_MOBILE
// Windows CE doesn't have a current directory. You should not use // Windows CE doesn't have a current directory. You should not use
...@@ -84,7 +83,6 @@ const char kCurrentDirectoryString[] = ".\\"; ...@@ -84,7 +83,6 @@ const char kCurrentDirectoryString[] = ".\\";
# endif // GTEST_OS_WINDOWS_MOBILE # endif // GTEST_OS_WINDOWS_MOBILE
#else #else
const char kPathSeparator = '/'; const char kPathSeparator = '/';
const char kPathSeparatorString[] = "/";
const char kCurrentDirectoryString[] = "./"; const char kCurrentDirectoryString[] = "./";
#endif // GTEST_OS_WINDOWS #endif // GTEST_OS_WINDOWS
......
...@@ -56,6 +56,7 @@ namespace { ...@@ -56,6 +56,7 @@ namespace {
using ::std::ostream; using ::std::ostream;
// Prints a segment of bytes in the given object. // Prints a segment of bytes in the given object.
GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_
void PrintByteSegmentInObjectTo(const unsigned char* obj_bytes, size_t start, void PrintByteSegmentInObjectTo(const unsigned char* obj_bytes, size_t start,
size_t count, ostream* os) { size_t count, ostream* os) {
char text[5] = ""; char text[5] = "";
...@@ -252,6 +253,7 @@ void PrintTo(wchar_t wc, ostream* os) { ...@@ -252,6 +253,7 @@ void PrintTo(wchar_t wc, ostream* os) {
// The array starts at begin, the length is len, it may include '\0' characters // The array starts at begin, the length is len, it may include '\0' characters
// and may not be NUL-terminated. // and may not be NUL-terminated.
template <typename CharType> template <typename CharType>
GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_
static void PrintCharsAsStringTo( static void PrintCharsAsStringTo(
const CharType* begin, size_t len, ostream* os) { const CharType* begin, size_t len, ostream* os) {
const char* const kQuoteBegin = sizeof(CharType) == 1 ? "\"" : "L\""; const char* const kQuoteBegin = sizeof(CharType) == 1 ? "\"" : "L\"";
...@@ -273,6 +275,7 @@ static void PrintCharsAsStringTo( ...@@ -273,6 +275,7 @@ static void PrintCharsAsStringTo(
// Prints a (const) char/wchar_t array of 'len' elements, starting at address // Prints a (const) char/wchar_t array of 'len' elements, starting at address
// 'begin'. CharType must be either char or wchar_t. // 'begin'. CharType must be either char or wchar_t.
template <typename CharType> template <typename CharType>
GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_
static void UniversalPrintCharArray( static void UniversalPrintCharArray(
const CharType* begin, size_t len, ostream* os) { const CharType* begin, size_t len, ostream* os) {
// The code // The code
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment