From 0664127dba5691247f4514bc311257255bc35fa4 Mon Sep 17 00:00:00 2001 From: "bmeurer@chromium.org" Date: Mon, 18 Aug 2014 09:12:12 +0000 Subject: [PATCH] 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 --- src/compiler/change-lowering.cc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/compiler/change-lowering.cc b/src/compiler/change-lowering.cc index b07e5489a2..86c473f568 100644 --- a/src/compiler/change-lowering.cc +++ b/src/compiler/change-lowering.cc @@ -42,8 +42,14 @@ Node* ChangeLowering::HeapNumberValueIndexConstant() { Node* ChangeLowering::SmiShiftBitsConstant() { - const int smi_shift_size = (machine()->is64() ? SmiTagging<8>::kSmiShiftSize - : SmiTagging<4>::kSmiShiftSize); + // TODO(turbofan): Work-around for weird GCC 4.6 linker issue: + // 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); }