Use std::vector rather than SmallVector here because SmallVector
authorDuncan Sands <baldrick@free.fr>
Thu, 8 Jul 2010 13:06:08 +0000 (13:06 +0000)
committerDuncan Sands <baldrick@free.fr>
Thu, 8 Jul 2010 13:06:08 +0000 (13:06 +0000)
causes some versions of gcc to crash when building LLVM.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107869 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/PostOrderIterator.h
include/llvm/Analysis/IntervalIterator.h

index 575786f..47e5b2b 100644 (file)
@@ -18,7 +18,6 @@
 
 #include "llvm/ADT/GraphTraits.h"
 #include "llvm/ADT/SmallPtrSet.h"
-#include "llvm/ADT/SmallVector.h"
 #include <set>
 #include <vector>
 
@@ -52,7 +51,7 @@ class po_iterator : public std::iterator<std::forward_iterator_tag,
 
   // VisitStack - Used to maintain the ordering.  Top = current block
   // First element is basic block pointer, second is the 'next child' to visit
-  SmallVector<std::pair<NodeType *, ChildItTy>, 16> VisitStack;
+  std::vector<std::pair<NodeType *, ChildItTy> > VisitStack;
 
   void traverseChild() {
     while (VisitStack.back().second != GT::child_end(VisitStack.back().first)) {
index f0130ef..82b3294 100644 (file)
 #ifndef LLVM_INTERVAL_ITERATOR_H
 #define LLVM_INTERVAL_ITERATOR_H
 
-#include "llvm/ADT/SmallVector.h"
 #include "llvm/Analysis/IntervalPartition.h"
 #include "llvm/Function.h"
 #include "llvm/Support/CFG.h"
-#include <set>
 #include <algorithm>
+#include <set>
+#include <vector>
 
 namespace llvm {
 
@@ -88,7 +88,7 @@ inline void addNodeToInterval(Interval *Int, Interval *I) {
 template<class NodeTy, class OrigContainer_t, class GT = GraphTraits<NodeTy*>,
          class IGT = GraphTraits<Inverse<NodeTy*> > >
 class IntervalIterator {
-  SmallVector<std::pair<Interval*, typename Interval::succ_iterator>, 16> IntStack;
+  std::vector<std::pair<Interval*, typename Interval::succ_iterator> > IntStack;
   std::set<BasicBlock*> Visited;
   OrigContainer_t *OrigContainer;
   bool IOwnMem;     // If True, delete intervals when done with them