Backed out changeset d85334f696eb (bug 1285057) for implicitly depending on clang 3.8.
authorTerrence Cole <terrence@mozilla.com>
Fri, 23 Sep 2016 15:59:55 -0700
changeset 315212 16daeb9b4e1773b3159932ac362c09a66441ceb2
parent 315211 dfc1afe56b75b0eb563e1fe8ed74af7d51b8ebe0
child 315213 bd99c422dca35d2ce039d3774710680095fe4977
push id32563
push userihsiao@mozilla.com
push dateMon, 26 Sep 2016 11:18:33 +0000
treeherderautoland@eb840c87b5fd [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1285057
milestone52.0a1
backs outd85334f696ebb92f453cf7e58f7bd5286a354adb
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
Backed out changeset d85334f696eb (bug 1285057) for implicitly depending on clang 3.8.
js/public/RootingAPI.h
js/public/SweepingAPI.h
mfbt/Attributes.h
--- a/js/public/RootingAPI.h
+++ b/js/public/RootingAPI.h
@@ -641,19 +641,17 @@ class alignas(8) DispatchWrapper
     // Mimic a pointer type, so that we can drop into Rooted.
     T* operator &() { return &storage; }
     const T* operator &() const { return &storage; }
     operator T&() { return storage; }
     operator const T&() const { return storage; }
 
     // Trace the contained storage (of unknown type) using the trace function
     // we set aside when we did know the type.
-    MOZ_UBSAN_BLACKLIST_FUNCTION static void TraceWrapped(JSTracer* trc, T* thingp,
-                                                          const char* name)
-    {
+    static void TraceWrapped(JSTracer* trc, T* thingp, const char* name) {
         auto wrapper = reinterpret_cast<DispatchWrapper*>(
                            uintptr_t(thingp) - offsetof(DispatchWrapper, storage));
         wrapper->tracer(trc, &wrapper->storage, name);
     }
 };
 
 } /* namespace js */
 
--- a/js/public/SweepingAPI.h
+++ b/js/public/SweepingAPI.h
@@ -52,14 +52,14 @@ class WeakCache : public js::WeakCacheBa
       : sweeper(other.sweeper),
         cache(mozilla::Move(other.cache))
     {
     }
 
     const T& get() const { return cache; }
     T& get() { return cache; }
 
-    MOZ_UBSAN_BLACKLIST_FUNCTION void sweep() { sweeper(&cache); }
+    void sweep() { sweeper(&cache); }
 };
 
 } // namespace JS
 
 #endif // js_SweepingAPI_h
--- a/mfbt/Attributes.h
+++ b/mfbt/Attributes.h
@@ -203,29 +203,16 @@
 #    define MOZ_TSAN_BLACKLIST MOZ_NEVER_INLINE __attribute__((no_sanitize_thread))
 #  else
 #    define MOZ_TSAN_BLACKLIST /* nothing */
 #  endif
 #else
 #  define MOZ_TSAN_BLACKLIST /* nothing */
 #endif
 
-/*
- * MOZ_UBSAN_BLACKLIST_FUNCTION is a macro to tell UndefinedBehaviorSanitizer (a
- * run-time instrumentation shipped with Clang) to not check the annotated
- * function for undefined behaviors. Furthermore it prevents the compiler from
- * inlining the function because inlining currently breaks the blacklisting
- * mechanism of UBSan.
- */
-#if defined(__clang__)
-# define MOZ_UBSAN_BLACKLIST_FUNCTION MOZ_NEVER_INLINE __attribute__((no_sanitize("function")))
-#else
-# define MOZ_UBSAN_BLACKLIST_FUNCTION /* nothing */
-#endif
-
 /**
  * MOZ_ALLOCATOR tells the compiler that the function it marks returns either a
  * "fresh", "pointer-free" block of memory, or nullptr. "Fresh" means that the
  * block is not pointed to by any other reachable pointer in the program.
  * "Pointer-free" means that the block contains no pointers to any valid object
  * in the program. It may be initialized with other (non-pointer) values.
  *
  * Placing this attribute on appropriate functions helps GCC analyze pointer