summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrevor Norris <trev.norris@gmail.com>2013-06-11 14:39:25 -0700
committerTrevor Norris <trev.norris@gmail.com>2013-06-11 14:39:25 -0700
commit5d4ac272c7ee88f44fa509e8fa2bc6def003a7f6 (patch)
tree20687f49bb50e9d3c1929f328262381e1956e33e
parent82b3524bce845bfb38d99f52ce3ab6492847ce9e (diff)
downloadnode-new-5d4ac272c7ee88f44fa509e8fa2bc6def003a7f6.tar.gz
v8: fix pointer arithmetic undefined behavior
Clang branch release_33 would optimize out a != NULL check because of some undefined behavior. This is a floating patch as a backport of that fix. Committed: http://code.google.com/p/v8/source/detail?r=13570
-rw-r--r--deps/v8/src/spaces.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/deps/v8/src/spaces.h b/deps/v8/src/spaces.h
index 95c63d6b61..c8ccc7b561 100644
--- a/deps/v8/src/spaces.h
+++ b/deps/v8/src/spaces.h
@@ -320,7 +320,8 @@ class MemoryChunk {
Space* owner() const {
if ((reinterpret_cast<intptr_t>(owner_) & kFailureTagMask) ==
kFailureTag) {
- return reinterpret_cast<Space*>(owner_ - kFailureTag);
+ return reinterpret_cast<Space*>(reinterpret_cast<intptr_t>(owner_) -
+ kFailureTag);
} else {
return NULL;
}