Index: src/spaces.h |
diff --git a/src/spaces.h b/src/spaces.h |
index 25f907ebd8a1653247d564bf49a2aa0fb29420ad..9cab8beef26ae9411ca5da87f7c6d320fd7c738f 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_; |
} |