diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-11-19 05:36:51 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-11-19 05:36:51 +0000 |
commit | 528900d9a46cf4acde3a90494f286116159d5e59 (patch) | |
tree | 6a4441ae13982b28148f4a06124b67c16987a18d | |
parent | b651a96ef21a1f3e14c5cf5a317f9fe2bb648414 (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.h | 9 |
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 / |