summaryrefslogtreecommitdiff
path: root/www/firefox/files/patch-clang33
blob: 596312db5b4b048f9fdedd33861804035172b09b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
--- js/src/Makefile.in~
+++ js/src/Makefile.in
@@ -791,6 +791,13 @@ EXTRA_LIBS	+= -lposix4 -ldl -lnsl -lsock
 endif
 endif
 
+# clang 3.3 + -O2 makes jaeger crash in FixupArity
+ifdef CLANG_CXX
+ifndef MOZ_DEBUG
+Compiler.$(OBJ_SUFFIX): CXXFLAGS += -fno-inline-functions
+endif
+endif
+
 # An AIX Optimization bug causes PR_dtoa() & JS_dtoa to produce wrong result.
 # This suppresses optimization for this single compilation unit.
 ifeq ($(OS_ARCH),AIX)
--- js/src/jscompartment.h~
+++ js/src/jscompartment.h
@@ -596,12 +596,12 @@ class js::AutoDebugModeGC
         // The DEBUG_MODE_GC reason forces the collector to always throw
         // everything away, as required for debug mode transitions.
         if (needGC)
-            GC(rt, GC_NORMAL, gcreason::DEBUG_MODE_GC);
+            GC(rt, GC_NORMAL, js::gcreason::DEBUG_MODE_GC);
     }
 
-    void scheduleGC(Zone *zone) {
+    void scheduleGC(JS::Zone *zone) {
         JS_ASSERT(!rt->isHeapBusy());
-        PrepareZoneForGC(zone);
+        js::PrepareZoneForGC(zone);
         needGC = true;
     }
 };
--- js/src/jspropertycacheinlines.h~
+++ js/src/jspropertycacheinlines.h
@@ -32,7 +32,7 @@ JS_ALWAYS_INLINE void
 js::PropertyCache::test(JSContext *cx, jsbytecode *pc, JSObject **obj,
                         JSObject **pobj, PropertyCacheEntry **entry, PropertyName **name)
 {
-    AutoAssertNoGC nogc;
+    js::AutoAssertNoGC nogc;
 
     JS_ASSERT(this == &cx->propertyCache());
 
@@ -65,7 +65,7 @@ JS_ALWAYS_INLINE bool
 js::PropertyCache::testForSet(JSContext *cx, jsbytecode *pc, JSObject *obj,
                               PropertyCacheEntry **entryp, JSObject **obj2p, PropertyName **namep)
 {
-    AutoAssertNoGC nogc;
+    js::AutoAssertNoGC nogc;
 
     JS_ASSERT(this == &cx->propertyCache());
 
--- js/src/vm/ObjectImpl-inl.h~
+++ js/src/vm/ObjectImpl-inl.h
@@ -164,9 +164,9 @@ js::ObjectImpl::initializeSlotRange(uint
     JSRuntime *rt = runtime();
     uint32_t offset = start;
     for (HeapSlot *sp = fixedStart; sp < fixedEnd; sp++)
-        sp->init(rt, this->asObjectPtr(), HeapSlot::Slot, offset++, UndefinedValue());
+        sp->init(rt, this->asObjectPtr(), HeapSlot::Slot, offset++, js::UndefinedValue());
     for (HeapSlot *sp = slotsStart; sp < slotsEnd; sp++)
-        sp->init(rt, this->asObjectPtr(), HeapSlot::Slot, offset++, UndefinedValue());
+        sp->init(rt, this->asObjectPtr(), HeapSlot::Slot, offset++, js::UndefinedValue());
 }
 
 inline bool
@@ -321,7 +321,7 @@ js::ObjectImpl::sizeOfThis() const
 js::ObjectImpl::readBarrier(ObjectImpl *obj)
 {
 #ifdef JSGC_INCREMENTAL
-    Zone *zone = obj->zone();
+    JS::Zone *zone = obj->zone();
     if (zone->needsBarrier()) {
         MOZ_ASSERT(!zone->rt->isHeapBusy());
         JSObject *tmp = obj->asObjectPtr();
@@ -335,7 +335,7 @@ inline void
 js::ObjectImpl::privateWriteBarrierPre(void **old)
 {
 #ifdef JSGC_INCREMENTAL
-    Zone *zone = this->zone();
+    JS::Zone *zone = this->zone();
     if (zone->needsBarrier()) {
         if (*old && getClass()->trace)
             getClass()->trace(zone->barrierTracer(), this->asObjectPtr());
@@ -362,7 +362,7 @@ js::ObjectImpl::writeBarrierPre(ObjectIm
     if (uintptr_t(obj) < 32)
         return;
 
-    Zone *zone = obj->zone();
+    JS::Zone *zone = obj->zone();
     if (zone->needsBarrier()) {
         MOZ_ASSERT(!zone->rt->isHeapBusy());
         JSObject *tmp = obj->asObjectPtr();