Reviewers: danno,

Description:
Introduce DISABLE_ASAN macro to disable AddressSanitizer instrumentation for
given functions.

Disable AddressSanitizer instrumentation for StackTracer::Trace.

[email protected]
BUG=chromium:134722


Please review this at https://chromiumcodereview.appspot.com/10834430/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files:
  M src/globals.h
  M src/log.cc


Index: src/globals.h
diff --git a/src/globals.h b/src/globals.h
index 97b033f8489ce4259286beec06fa39c776a65078..bee280c4ffa3693c8c92e5e5f24ca4f86cc056b0 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -354,12 +354,26 @@ F FUNCTION_CAST(Address addr) {
 #endif


+// Define DISABLE_ASAN macros.
 #if defined(__GNUC__) && __GNUC__ >= 4
 #define MUST_USE_RESULT __attribute__ ((warn_unused_result))
 #else
 #define MUST_USE_RESULT
 #endif

+
+#if defined(__has_feature)
+#if __has_feature(address_sanitizer)
+#define DISABLE_ASAN __attribute__((no_address_safety_analysis))
+#endif
+#endif
+
+
+#ifndef DISABLE_ASAN
+#define DISABLE_ASAN
+#endif
+
+
// -----------------------------------------------------------------------------
 // Forward declarations for frequently used classes
 // (sorted alphabetically)
Index: src/log.cc
diff --git a/src/log.cc b/src/log.cc
index d93a9d82b117022e629f9f84530578e15efed611..6c07758ef7b634fdd026c8bbe8ba1486248b9143 100644
--- a/src/log.cc
+++ b/src/log.cc
@@ -145,7 +145,7 @@ class Profiler: public Thread {
 //
 // StackTracer implementation
 //
-void StackTracer::Trace(Isolate* isolate, TickSample* sample) {
+DISABLE_ASAN void StackTracer::Trace(Isolate* isolate, TickSample* sample) {
   ASSERT(isolate->IsInitialized());

   // Avoid collecting traces while doing GC.


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to