summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexey Samsonov <samsonov@google.com>2012-08-21 09:26:26 +0000
committerAlexey Samsonov <samsonov@google.com>2012-08-21 09:26:26 +0000
commitb92488a54959f3e3fd4eb7368c99f4f543824d19 (patch)
treed25c79ad74f474d51a57a1530a34cc7e5b98687b
parentc908ca176674aace45e83fcd2fd04980e412f0c0 (diff)
downloadbcm5719-llvm-b92488a54959f3e3fd4eb7368c99f4f543824d19.tar.gz
bcm5719-llvm-b92488a54959f3e3fd4eb7368c99f4f543824d19.zip
[Sanitizer] implement internal_strcspn
llvm-svn: 162272
-rw-r--r--compiler-rt/lib/sanitizer_common/sanitizer_libc.cc9
-rw-r--r--compiler-rt/lib/sanitizer_common/sanitizer_libc.h1
2 files changed, 10 insertions, 0 deletions
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_libc.cc b/compiler-rt/lib/sanitizer_common/sanitizer_libc.cc
index c4332423bf3..6fa05e49d8e 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_libc.cc
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_libc.cc
@@ -56,6 +56,15 @@ void *internal_memset(void* s, int c, uptr n) {
return s;
}
+uptr internal_strcspn(const char *s, const char *reject) {
+ uptr i;
+ for (i = 0; s[i]; i++) {
+ if (internal_strchr(reject, s[i]) != 0)
+ return i;
+ }
+ return i;
+}
+
char* internal_strdup(const char *s) {
uptr len = internal_strlen(s);
char *s2 = (char*)InternalAlloc(len + 1);
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_libc.h b/compiler-rt/lib/sanitizer_common/sanitizer_libc.h
index 8da4286cef7..257af2c2f00 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_libc.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_libc.h
@@ -33,6 +33,7 @@ void *internal_memcpy(void *dest, const void *src, uptr n);
void *internal_memset(void *s, int c, uptr n);
char* internal_strchr(const char *s, int c);
int internal_strcmp(const char *s1, const char *s2);
+uptr internal_strcspn(const char *s, const char *reject);
char *internal_strdup(const char *s);
uptr internal_strlen(const char *s);
char *internal_strncat(char *dst, const char *src, uptr n);
OpenPOWER on IntegriCloud