From 528900d9a46cf4acde3a90494f286116159d5e59 Mon Sep 17 00:00:00 2001 From: Jakob Stoklund Olesen Date: Fri, 19 Nov 2010 05:36:51 +0000 Subject: [PATCH] Work around GCC 4.0 build error: llvm/include/llvm/ADT/IntervalMap.h:334: error: '((llvm::IntervalMapImpl::DesiredNodeBytes / static_cast(((2 * sizeof (KeyT)) + sizeof (ValT)))) >? 3u)' is not a valid template argument for type 'unsigned int' because it is a non-constant expression git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119790 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/ADT/IntervalMap.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/include/llvm/ADT/IntervalMap.h b/include/llvm/ADT/IntervalMap.h index f54a0abf6ce..8606a178b7b 100644 --- a/include/llvm/ADT/IntervalMap.h +++ b/include/llvm/ADT/IntervalMap.h @@ -327,12 +327,15 @@ struct NodeSizer { DesiredLeafSize = DesiredNodeBytes / static_cast(2*sizeof(KeyT)+sizeof(ValT)), MinLeafSize = 3, - LeafSize = DesiredLeafSize > MinLeafSize ? DesiredLeafSize : MinLeafSize, + LeafSize = DesiredLeafSize > MinLeafSize ? DesiredLeafSize : MinLeafSize + }; + typedef NodeBase, ValT, LeafSize> LeafBase; + + enum { // Now that we have the leaf branching factor, compute the actual allocation // unit size by rounding up to a whole number of cache lines. - LeafBytes = sizeof(NodeBase, ValT, LeafSize>), - AllocBytes = (LeafBytes + CacheLineBytes-1) & ~(CacheLineBytes-1), + AllocBytes = (sizeof(LeafBase) + CacheLineBytes-1) & ~(CacheLineBytes-1), // Determine the branching factor for branch nodes. BranchSize = AllocBytes /