Index: src/spaces.h |
diff --git a/src/spaces.h b/src/spaces.h |
index 9df1d9e96b0cd111a2b3d62061e17ce06c6748aa..ddf9dfe21fec928d4643f3c88a1767c1ef7f30ad 100644 |
--- a/src/spaces.h |
+++ b/src/spaces.h |
@@ -333,6 +333,14 @@ class MemoryChunk { |
kFailureTag); |
} |
+ // Workaround for a bug in Clang-3.3 which in some situations optimizes away |
+ // an "if (chunk->owner() != NULL)" check. |
+ bool has_owner() { |
+ if (owner_ == 0) return false; |
+ if (reinterpret_cast<intptr_t>(owner_) == kFailureTag) return false; |
+ return true; |
+ } |
+ |
VirtualMemory* reserved_memory() { |
return &reservation_; |
} |