aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2010-11-19 05:36:51 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2010-11-19 05:36:51 +0000
commit528900d9a46cf4acde3a90494f286116159d5e59 (patch)
tree6a4441ae13982b28148f4a06124b67c16987a18d
parentb651a96ef21a1f3e14c5cf5a317f9fe2bb648414 (diff)
Work around GCC 4.0 build error:
llvm/include/llvm/ADT/IntervalMap.h:334: error: '((llvm::IntervalMapImpl::DesiredNodeBytes / static_cast<unsigned int>(((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
-rw-r--r--include/llvm/ADT/IntervalMap.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/include/llvm/ADT/IntervalMap.h b/include/llvm/ADT/IntervalMap.h
index f54a0abf6c..8606a178b7 100644
--- a/include/llvm/ADT/IntervalMap.h
+++ b/include/llvm/ADT/IntervalMap.h
@@ -327,12 +327,15 @@ struct NodeSizer {
DesiredLeafSize = DesiredNodeBytes /
static_cast<unsigned>(2*sizeof(KeyT)+sizeof(ValT)),
MinLeafSize = 3,
- LeafSize = DesiredLeafSize > MinLeafSize ? DesiredLeafSize : MinLeafSize,
+ LeafSize = DesiredLeafSize > MinLeafSize ? DesiredLeafSize : MinLeafSize
+ };
+
+ typedef NodeBase<std::pair<KeyT, KeyT>, 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<std::pair<KeyT, KeyT>, ValT, LeafSize>),
- AllocBytes = (LeafBytes + CacheLineBytes-1) & ~(CacheLineBytes-1),
+ AllocBytes = (sizeof(LeafBase) + CacheLineBytes-1) & ~(CacheLineBytes-1),
// Determine the branching factor for branch nodes.
BranchSize = AllocBytes /