[compiler-rt] r183518 - [sanitizer] Fix windows build.

Evgeniy Stepanov eugeni.stepanov at gmail.com
Fri Jun 7 06:19:33 PDT 2013


Author: eugenis
Date: Fri Jun  7 08:19:33 2013
New Revision: 183518

URL: http://llvm.org/viewvc/llvm-project?rev=183518&view=rev
Log:
[sanitizer] Fix windows build.

Modified:
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc?rev=183518&r1=183517&r2=183518&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc Fri Jun  7 08:19:33 2013
@@ -430,7 +430,37 @@ SCANF_INTERCEPTOR_IMPL(__isoc99_sscanf,
 #endif
 
 
+#if SANITIZER_INTERCEPT_IOCTL
 #include "sanitizer_common_interceptors_ioctl.inc"
+#define INIT_IOCTL \
+  ioctl_init();    \
+  INTERCEPT_FUNCTION(ioctl);
+INTERCEPTOR(int, ioctl, int d, unsigned request, void *arg) {
+  void *ctx;
+  COMMON_INTERCEPTOR_ENTER(ctx, ioctl, d, request, arg);
+
+  CHECK(ioctl_initialized);
+
+  // Note: TSan does not use common flags, and they are zero-initialized.
+  // This effectively disables ioctl handling in TSan.
+  if (!common_flags()->handle_ioctl)
+    return REAL(ioctl)(d, request, arg);
+
+  const ioctl_desc *desc = ioctl_lookup(request);
+  if (!desc)
+    Printf("WARNING: unknown ioctl %x\n", request);
+
+  if (desc)
+    ioctl_common_pre(ctx, desc, d, request, arg);
+  int res = REAL(ioctl)(d, request, arg);
+  // FIXME: some ioctls have different return values for success and failure.
+  if (desc && res != -1)
+    ioctl_common_post(ctx, desc, res, d, request, arg);
+  return res;
+}
+#else
+#define INIT_IOCTL
+#endif
 
 
 #if SANITIZER_INTERCEPT_GETPWNAM_AND_FRIENDS

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc?rev=183518&r1=183517&r2=183518&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc Fri Jun  7 08:19:33 2013
@@ -513,34 +513,3 @@ static void ioctl_common_post(void *ctx,
     return;
   return; // FIXME
 }
-
-#if SANITIZER_INTERCEPT_IOCTL
-#define INIT_IOCTL \
-  ioctl_init();    \
-  INTERCEPT_FUNCTION(ioctl);
-INTERCEPTOR(int, ioctl, int d, unsigned request, void *arg) {
-  void *ctx;
-  COMMON_INTERCEPTOR_ENTER(ctx, ioctl, d, request, arg);
-
-  CHECK(ioctl_initialized);
-
-  // Note: TSan does not use common flags, and they are zero-initialized.
-  // This effectively disables ioctl handling in TSan.
-  if (!common_flags()->handle_ioctl)
-    return REAL(ioctl)(d, request, arg);
-
-  const ioctl_desc *desc = ioctl_lookup(request);
-  if (!desc)
-    Printf("WARNING: unknown ioctl %x\n", request);
-
-  if (desc)
-    ioctl_common_pre(ctx, desc, d, request, arg);
-  int res = REAL(ioctl)(d, request, arg);
-  // FIXME: some ioctls have different return values for success and failure.
-  if (desc && res != -1)
-    ioctl_common_post(ctx, desc, res, d, request, arg);
-  return res;
-}
-#else
-#define INIT_IOCTL
-#endif





More information about the llvm-commits mailing list