[PATCH] D56088: Enable posix regex interceptors on linux.
Evgenii Stepanov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 26 13:34:46 PST 2018
eugenis created this revision.
eugenis added reviewers: rtrieu, vitalybuka.
Herald added subscribers: fedor.sergeev, kubamracek.
They happen to work out of the box.
https://reviews.llvm.org/D56088
Files:
compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
compiler-rt/test/sanitizer_common/TestCases/Posix/regex.cc
Index: compiler-rt/test/sanitizer_common/TestCases/Posix/regex.cc
===================================================================
--- compiler-rt/test/sanitizer_common/TestCases/Posix/regex.cc
+++ compiler-rt/test/sanitizer_common/TestCases/Posix/regex.cc
@@ -1,6 +1,6 @@
// RUN: %clangxx -O0 -g %s -o %t && %run %t 2>&1 | FileCheck %s
//
-// UNSUPPORTED: linux, darwin, solaris
+// UNSUPPORTED: darwin, solaris
#include <assert.h>
#include <regex.h>
Index: compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
===================================================================
--- compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
+++ compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
@@ -49,6 +49,8 @@
extern unsigned struct_sigevent_sz;
extern unsigned struct_sched_param_sz;
extern unsigned struct_statfs64_sz;
+ extern unsigned struct_regex_sz;
+ extern unsigned struct_regmatch_sz;
#if !SANITIZER_ANDROID
extern unsigned struct_statfs_sz;
Index: compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
===================================================================
--- compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
+++ compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
@@ -45,6 +45,7 @@
#include <termios.h>
#include <time.h>
#include <wchar.h>
+#include <regex.h>
#if !SANITIZER_MAC
#include <utmp.h>
#endif
@@ -189,6 +190,8 @@
unsigned struct_tms_sz = sizeof(struct tms);
unsigned struct_sigevent_sz = sizeof(struct sigevent);
unsigned struct_sched_param_sz = sizeof(struct sched_param);
+ unsigned struct_regex_sz = sizeof(regex_t);
+ unsigned struct_regmatch_sz = sizeof(regmatch_t);
#if SANITIZER_MAC && !SANITIZER_IOS
Index: compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
===================================================================
--- compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
+++ compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
@@ -522,7 +522,7 @@
#define SANITIZER_INTERCEPT_GETMNTINFO (SI_NETBSD || SI_FREEBSD || SI_MAC)
#define SANITIZER_INTERCEPT_MI_VECTOR_HASH SI_NETBSD
#define SANITIZER_INTERCEPT_GETVFSSTAT SI_NETBSD
-#define SANITIZER_INTERCEPT_REGEX (SI_NETBSD || SI_FREEBSD)
+#define SANITIZER_INTERCEPT_REGEX (SI_NETBSD || SI_FREEBSD || SI_LINUX)
#define SANITIZER_INTERCEPT_REGEXSUB SI_NETBSD
#define SANITIZER_INTERCEPT_FTS SI_NETBSD
#define SANITIZER_INTERCEPT_SYSCTL (SI_NETBSD || SI_FREEBSD || SI_MAC)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D56088.179519.patch
Type: text/x-patch
Size: 2566 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181226/2c10435e/attachment.bin>
More information about the llvm-commits
mailing list