Bug 746951 - Avoid inlining js::MarkRangeConservatively with ASan, r=billm, a=npotb
authorChristian Holler <choller@mozilla.com>
Fri, 20 Apr 2012 16:06:07 -0700
changeset 95377 ba03257fab287cc2b87e70a9221b004d31b28c3d
parent 95376 f7dd147f842f0117306de7a8efcba4924d6ed72d
child 95378 ffb9beb36e5a8761a600f1b4244d6ae1e071c979
push id886
push userlsblakk@mozilla.com
push dateMon, 04 Jun 2012 19:57:52 +0000
treeherdermozilla-beta@bbd8d5efd6d1 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbillm, npotb
bugs746951
milestone14.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 746951 - Avoid inlining js::MarkRangeConservatively with ASan, r=billm, a=npotb
js/src/jsgc.cpp
--- a/js/src/jsgc.cpp
+++ b/js/src/jsgc.cpp
@@ -1080,16 +1080,19 @@ MarkWordConservatively(JSTracer *trc, ui
      */
 #ifdef JS_VALGRIND
     JS_SILENCE_UNUSED_VALUE_IN_EXPR(VALGRIND_MAKE_MEM_DEFINED(&w, sizeof(w)));
 #endif
 
     MarkIfGCThingWord(trc, w);
 }
 
+#ifdef MOZ_ASAN
+JS_NEVER_INLINE
+#endif
 static void
 MarkRangeConservatively(JSTracer *trc, const uintptr_t *begin, const uintptr_t *end)
 {
     JS_ASSERT(begin <= end);
     for (const uintptr_t *i = begin; i < end; ++i)
         MarkWordConservatively(trc, *i);
 }