summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Samsonov <samsonov@google.com>2012-06-04 13:27:49 +0000
committerAlexey Samsonov <samsonov@google.com>2012-06-04 13:27:49 +0000
commitc0d78c1de1f2607c874020d27b72cf989c5ce092 (patch)
tree4c1053f2f20bb38a8fc9b203713d321c51f5f4ba
parent5f2fe37bd979f18703a6b3b5bf71d18fca19b245 (diff)
[Sanitizer]: move internal_strcmp to sanitizer_common
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@157926 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/asan/asan_interceptors.cc15
-rw-r--r--lib/asan/asan_interceptors.h1
-rw-r--r--lib/sanitizer_common/sanitizer_libc.cc12
-rw-r--r--lib/sanitizer_common/sanitizer_libc.h1
-rw-r--r--lib/tsan/rtl/tsan_defs.h1
-rw-r--r--lib/tsan/rtl/tsan_interceptors.cc4
-rw-r--r--lib/tsan/rtl/tsan_interface_ann.cc2
-rw-r--r--lib/tsan/rtl/tsan_rtl_report.cc3
8 files changed, 21 insertions, 18 deletions
diff --git a/lib/asan/asan_interceptors.cc b/lib/asan/asan_interceptors.cc
index ebfcc5b3c..a73263604 100644
--- a/lib/asan/asan_interceptors.cc
+++ b/lib/asan/asan_interceptors.cc
@@ -21,6 +21,9 @@
#include "asan_stats.h"
#include "asan_thread_registry.h"
#include "interception/interception.h"
+#include "sanitizer_common/sanitizer_libc.h"
+
+using namespace __sanitizer; // NOLINT
// Use macro to describe if specific function should be
// intercepted on a given platform.
@@ -297,18 +300,6 @@ char *internal_strncat(char *dst, const char *src, uptr n) {
return dst;
}
-int internal_strcmp(const char *s1, const char *s2) {
- while (true) {
- unsigned c1 = *s1;
- unsigned c2 = *s2;
- if (c1 != c2) return (c1 < c2) ? -1 : 1;
- if (c1 == 0) break;
- s1++;
- s2++;
- }
- return 0;
-}
-
} // namespace __asan
// ---------------------- Wrappers ---------------- {{{1
diff --git a/lib/asan/asan_interceptors.h b/lib/asan/asan_interceptors.h
index 9f2d1110f..235013a01 100644
--- a/lib/asan/asan_interceptors.h
+++ b/lib/asan/asan_interceptors.h
@@ -40,7 +40,6 @@ void* internal_memset(void *s, int c, uptr n);
int internal_memcmp(const void* s1, const void* s2, uptr n);
char *internal_strstr(const char *haystack, const char *needle);
char *internal_strncat(char *dst, const char *src, uptr n);
-int internal_strcmp(const char *s1, const char *s2);
// Works only for base=10 and doesn't set errno.
s64 internal_simple_strtoll(const char *nptr, char **endptr, int base);
diff --git a/lib/sanitizer_common/sanitizer_libc.cc b/lib/sanitizer_common/sanitizer_libc.cc
index 6c07864fe..6e1c2818f 100644
--- a/lib/sanitizer_common/sanitizer_libc.cc
+++ b/lib/sanitizer_common/sanitizer_libc.cc
@@ -18,6 +18,18 @@ namespace __sanitizer {
void MiniLibcStub() {
}
+int internal_strcmp(const char *s1, const char *s2) {
+ while (true) {
+ unsigned c1 = *s1;
+ unsigned c2 = *s2;
+ if (c1 != c2) return (c1 < c2) ? -1 : 1;
+ if (c1 == 0) break;
+ s1++;
+ s2++;
+ }
+ return 0;
+}
+
char *internal_strncpy(char *dst, const char *src, uptr n) {
uptr i;
for (i = 0; i < n && src[i]; i++)
diff --git a/lib/sanitizer_common/sanitizer_libc.h b/lib/sanitizer_common/sanitizer_libc.h
index 9c61dd2c0..65e0305ee 100644
--- a/lib/sanitizer_common/sanitizer_libc.h
+++ b/lib/sanitizer_common/sanitizer_libc.h
@@ -26,6 +26,7 @@ namespace __sanitizer {
void MiniLibcStub();
// internal_X() is a custom implementation of X() for use in RTL.
+int internal_strcmp(const char *s1, const char *s2);
char *internal_strncpy(char *dst, const char *src, uptr n);
} // namespace __sanitizer
diff --git a/lib/tsan/rtl/tsan_defs.h b/lib/tsan/rtl/tsan_defs.h
index 74ed733af..608b58e34 100644
--- a/lib/tsan/rtl/tsan_defs.h
+++ b/lib/tsan/rtl/tsan_defs.h
@@ -162,7 +162,6 @@ T RoundUp(T p, int align) {
void internal_memset(void *ptr, int c, uptr size);
void internal_memcpy(void *dst, const void *src, uptr size);
int internal_memcmp(const void *s1, const void *s2, uptr size);
-int internal_strcmp(const char *s1, const char *s2);
int internal_strncmp(const char *s1, const char *s2, uptr size);
void internal_strcpy(char *s1, const char *s2);
uptr internal_strlen(const char *s);
diff --git a/lib/tsan/rtl/tsan_interceptors.cc b/lib/tsan/rtl/tsan_interceptors.cc
index 69ae8ca2e..6c4f9b0b6 100644
--- a/lib/tsan/rtl/tsan_interceptors.cc
+++ b/lib/tsan/rtl/tsan_interceptors.cc
@@ -1532,10 +1532,6 @@ int internal_memcmp(const void *s1, const void *s2, uptr size) {
return REAL(memcmp)(s1, s2, size);
}
-int internal_strcmp(const char *s1, const char *s2) {
- return REAL(strcmp)(s1, s2);
-}
-
int internal_strncmp(const char *s1, const char *s2, uptr size) {
return REAL(strncmp)(s1, s2, size);
}
diff --git a/lib/tsan/rtl/tsan_interface_ann.cc b/lib/tsan/rtl/tsan_interface_ann.cc
index a04a207b5..853770e2d 100644
--- a/lib/tsan/rtl/tsan_interface_ann.cc
+++ b/lib/tsan/rtl/tsan_interface_ann.cc
@@ -10,6 +10,7 @@
// This file is a part of ThreadSanitizer (TSan), a race detector.
//
//===----------------------------------------------------------------------===//
+#include "sanitizer_common/sanitizer_libc.h"
#include "tsan_interface_ann.h"
#include "tsan_mutex.h"
#include "tsan_placement_new.h"
@@ -20,6 +21,7 @@
#define CALLERPC ((uptr)__builtin_return_address(0))
+using namespace __sanitizer; // NOLINT
using namespace __tsan; // NOLINT
namespace __tsan {
diff --git a/lib/tsan/rtl/tsan_rtl_report.cc b/lib/tsan/rtl/tsan_rtl_report.cc
index b3f8390bc..f8e07ff7e 100644
--- a/lib/tsan/rtl/tsan_rtl_report.cc
+++ b/lib/tsan/rtl/tsan_rtl_report.cc
@@ -11,6 +11,7 @@
//
//===----------------------------------------------------------------------===//
+#include "sanitizer_common/sanitizer_libc.h"
#include "tsan_platform.h"
#include "tsan_rtl.h"
#include "tsan_suppressions.h"
@@ -21,6 +22,8 @@
#include "tsan_flags.h"
#include "tsan_placement_new.h"
+using namespace __sanitizer; // NOLINT
+
namespace __tsan {
// Can be overriden by an application/test to intercept reports.