diff options
| author | Alexey Samsonov <samsonov@google.com> | 2012-06-06 07:30:33 +0000 | 
|---|---|---|
| committer | Alexey Samsonov <samsonov@google.com> | 2012-06-06 07:30:33 +0000 | 
| commit | ca2b5d7abbd40271c09a648395c64867a2383e54 (patch) | |
| tree | 2b67172ca7b4c9a90c0875f62b577a30702d7fe9 | |
| parent | c4b201308bdd19138c21b7b92db235a7ad0e4665 (diff) | |
| download | bcm5719-llvm-ca2b5d7abbd40271c09a648395c64867a2383e54.tar.gz bcm5719-llvm-ca2b5d7abbd40271c09a648395c64867a2383e54.zip  | |
[Sanitizer] move internal_filesize and internal_dup2 from TSan to sanitizer_common.
llvm-svn: 158052
| -rw-r--r-- | compiler-rt/lib/sanitizer_common/sanitizer_libc.h | 2 | ||||
| -rw-r--r-- | compiler-rt/lib/sanitizer_common/sanitizer_linux.cc | 11 | ||||
| -rw-r--r-- | compiler-rt/lib/sanitizer_common/sanitizer_mac.cc | 11 | ||||
| -rw-r--r-- | compiler-rt/lib/sanitizer_common/sanitizer_win.cc | 10 | ||||
| -rw-r--r-- | compiler-rt/lib/tsan/rtl/tsan_platform.h | 3 | ||||
| -rw-r--r-- | compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc | 12 | 
6 files changed, 34 insertions, 15 deletions
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_libc.h b/compiler-rt/lib/sanitizer_common/sanitizer_libc.h index c167079b4f6..8472d0b82a7 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_libc.h +++ b/compiler-rt/lib/sanitizer_common/sanitizer_libc.h @@ -40,6 +40,8 @@ int internal_close(fd_t fd);  fd_t internal_open(const char *filename, bool write);  uptr internal_read(fd_t fd, void *buf, uptr count);  uptr internal_write(fd_t fd, const void *buf, uptr count); +uptr internal_filesize(fd_t fd);  // -1 on error. +int internal_dup2(int oldfd, int newfd);  int internal_sscanf(const char *str, const char *format, ...);  }  // namespace __sanitizer diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc b/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc index 26270c3ae1b..0a8818a5e10 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc +++ b/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc @@ -55,6 +55,17 @@ uptr internal_write(fd_t fd, const void *buf, uptr count) {    return (uptr)syscall(__NR_write, fd, buf, count);  } +uptr internal_filesize(fd_t fd) { +  struct stat st = {}; +  if (syscall(__NR_fstat, fd, &st)) +    return -1; +  return (uptr)st.st_size; +} + +int internal_dup2(int oldfd, int newfd) { +  return syscall(__NR_dup2, oldfd, newfd); +} +  }  // namespace __sanitizer  #endif  // __linux__ diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc b/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc index 6e2c8c1f9f9..c607838f590 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc +++ b/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc @@ -51,6 +51,17 @@ uptr internal_write(fd_t fd, const void *buf, uptr count) {    return write(fd, buf, count);  } +uptr internal_filesize(fd_t fd) { +  struct stat st = {}; +  if (fstat(fd, &st)) +    return -1; +  return (uptr)st.st_size; +} + +int internal_dup2(int oldfd, int newfd) { +  return dup2(oldfd, newfd); +} +  }  // namespace __sanitizer  #endif  // __APPLE__ diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_win.cc b/compiler-rt/lib/sanitizer_common/sanitizer_win.cc index a70817de160..39459078774 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_win.cc +++ b/compiler-rt/lib/sanitizer_common/sanitizer_win.cc @@ -63,6 +63,16 @@ uptr internal_write(fd_t fd, const void *buf, uptr count) {    return ret;  } +uptr internal_filesize(fd_t fd) { +  UNIMPLEMENTED_WIN(); +  return -1; +} + +int internal_dup2(int oldfd, int newfd) { +  UNIMPLEMENTED_WIN(); +  return -1; +} +  int internal_sscanf(const char *str, const char *format, ...) {    UNIMPLEMENTED_WIN();    return -1; diff --git a/compiler-rt/lib/tsan/rtl/tsan_platform.h b/compiler-rt/lib/tsan/rtl/tsan_platform.h index e43ec8a5111..94dc1ccb4b4 100644 --- a/compiler-rt/lib/tsan/rtl/tsan_platform.h +++ b/compiler-rt/lib/tsan/rtl/tsan_platform.h @@ -76,9 +76,6 @@ void internal_sleep_ms(u32 ms);  void internal_start_thread(void(*func)(void*), void *arg); -typedef int fd_t; -uptr internal_filesize(fd_t fd);  // -1 on error. -int internal_dup2(int oldfd, int newfd);  const char *internal_getpwd();  uptr GetTlsSize(); diff --git a/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc b/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc index e60b821ec14..a38eb88df39 100644 --- a/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc +++ b/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc @@ -83,18 +83,6 @@ void internal_sleep_ms(u32 ms) {    usleep(ms * 1000);  } -uptr internal_filesize(fd_t fd) { -  struct stat st = {}; -  if (syscall(__NR_fstat, fd, &st)) -    return -1; -  return (uptr)st.st_size; -} - -int internal_dup2(int oldfd, int newfd) { -  ScopedInRtl in_rtl; -  return syscall(__NR_dup2, oldfd, newfd); -} -  const char *internal_getpwd() {    return getenv("PWD");  }  | 

