Reviewers: machenbach,

Message:
PTAL. This provides the call to check address sanitizer.

Description:
Provide "freeBuffer()" primitive for testing under ASan.

[email protected]

Please review this at https://codereview.chromium.org/85883002/

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

Affected files (+14, -0 lines):
  M src/bootstrapper.cc
  M src/flag-definitions.h
  M tools/gyp/v8.gyp


Index: src/bootstrapper.cc
diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc
index 67b579899fd4ea265fae4c3de22fb87e708a3afc..660a76e2ecb4aa1fabd95b589063c327b494f4d6 100644
--- a/src/bootstrapper.cc
+++ b/src/bootstrapper.cc
@@ -41,6 +41,7 @@
 #include "platform.h"
 #include "snapshot.h"
 #include "trig-table.h"
+#include "extensions/free-buffer-extension.h"
 #include "extensions/externalize-string-extension.h"
 #include "extensions/gc-extension.h"
 #include "extensions/statistics-extension.h"
@@ -100,6 +101,9 @@ void Bootstrapper::Initialize(bool create_heap_objects) {


 void Bootstrapper::InitializeOncePerProcess() {
+#ifdef ADDRESS_SANITIZER
+  FreeBufferExtension::Register();
+#endif
   GCExtension::Register();
   ExternalizeStringExtension::Register();
   StatisticsExtension::Register();
@@ -2278,6 +2282,11 @@ bool Genesis::InstallExtensions(Handle<Context> native_context,
     current = current->next();
   }

+#ifdef ADDRESS_SANITIZER
+  if (FLAG_expose_free_buffer) {
+    InstallExtension(isolate, "v8/free-buffer", &extension_states);
+  }
+#endif
if (FLAG_expose_gc) InstallExtension(isolate, "v8/gc", &extension_states);
   if (FLAG_expose_externalize_string) {
     InstallExtension(isolate, "v8/externalize", &extension_states);
Index: src/flag-definitions.h
diff --git a/src/flag-definitions.h b/src/flag-definitions.h
index 085202951a1461e305935c1c8b98ced61c8b369c..f70790ca113bf65a27cb74736a0f7b05ad930aa4 100644
--- a/src/flag-definitions.h
+++ b/src/flag-definitions.h
@@ -407,6 +407,9 @@ DEFINE_bool(enable_vldr_imm, false,
 // bootstrapper.cc
 DEFINE_string(expose_natives_as, NULL, "expose natives in global object")
 DEFINE_string(expose_debug_as, NULL, "expose debug in global object")
+#ifdef ADDRESS_SANITIZER
+DEFINE_bool(expose_free_buffer, false, "expose freeBuffer extension")
+#endif
 DEFINE_bool(expose_gc, false, "expose gc extension")
 DEFINE_string(expose_gc_as, NULL,
               "expose gc extension under the specified name")
Index: tools/gyp/v8.gyp
diff --git a/tools/gyp/v8.gyp b/tools/gyp/v8.gyp
index 65d5fb89a9303fdee8865feaf6727e59c6303cea..dae2b5b0f2087e4c3d06fec68f96983c4e5a9cc8 100644
--- a/tools/gyp/v8.gyp
+++ b/tools/gyp/v8.gyp
@@ -332,6 +332,8 @@
         '../../src/execution.h',
         '../../src/extensions/externalize-string-extension.cc',
         '../../src/extensions/externalize-string-extension.h',
+        '../../src/extensions/free-buffer-extension.cc',
+        '../../src/extensions/free-buffer-extension.h',
         '../../src/extensions/gc-extension.cc',
         '../../src/extensions/gc-extension.h',
         '../../src/extensions/statistics-extension.cc',


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to