Work-around weird GCC 4.6 linker issue with SmiTagging template.

TBR=rossberg@chromium.org

Review URL: https://codereview.chromium.org/485653002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
bmeurer@chromium.org 2014-08-18 09:12:12 +00:00
parent ee8b9805b5
commit 0664127dba

View File

@ -42,8 +42,14 @@ Node* ChangeLowering::HeapNumberValueIndexConstant() {
Node* ChangeLowering::SmiShiftBitsConstant() { Node* ChangeLowering::SmiShiftBitsConstant() {
const int smi_shift_size = (machine()->is64() ? SmiTagging<8>::kSmiShiftSize // TODO(turbofan): Work-around for weird GCC 4.6 linker issue:
: SmiTagging<4>::kSmiShiftSize); // src/compiler/change-lowering.cc:46: undefined reference to
// `v8::internal::SmiTagging<4u>::kSmiShiftSize'
// src/compiler/change-lowering.cc:46: undefined reference to
// `v8::internal::SmiTagging<8u>::kSmiShiftSize'
STATIC_ASSERT(SmiTagging<4>::kSmiShiftSize == 0);
STATIC_ASSERT(SmiTagging<8>::kSmiShiftSize == 31);
const int smi_shift_size = machine()->is64() ? 31 : 0;
return jsgraph()->Int32Constant(smi_shift_size + kSmiTagSize); return jsgraph()->Int32Constant(smi_shift_size + kSmiTagSize);
} }