Revert r256399 "[Sema] ArrayRef-ize ActOnBaseSpecifiers. NFC"

It broke lldb build.

llvm-svn: 256403
diff --git a/clang/lib/AST/ASTImporter.cpp b/clang/lib/AST/ASTImporter.cpp
index 36a41cd..824cc18 100644
--- a/clang/lib/AST/ASTImporter.cpp
+++ b/clang/lib/AST/ASTImporter.cpp
@@ -2073,7 +2073,7 @@
                                        EllipsisLoc));
     }
     if (!Bases.empty())
-      ToCXX->setBases(Bases);
+      ToCXX->setBases(Bases.data(), Bases.size());
   }
   
   if (shouldForceImportDeclContext(Kind))
diff --git a/clang/lib/AST/DeclCXX.cpp b/clang/lib/AST/DeclCXX.cpp
index 22b485a..32e64b6 100644
--- a/clang/lib/AST/DeclCXX.cpp
+++ b/clang/lib/AST/DeclCXX.cpp
@@ -135,13 +135,14 @@
 }
 
 void
-CXXRecordDecl::setBases(ArrayRef<const CXXBaseSpecifier *> Bases) {
+CXXRecordDecl::setBases(CXXBaseSpecifier const * const *Bases,
+                        unsigned NumBases) {
   ASTContext &C = getASTContext();
 
   if (!data().Bases.isOffset() && data().NumBases > 0)
     C.Deallocate(data().getBases());
 
-  if (!Bases.empty()) {
+  if (NumBases) {
     // C++ [dcl.init.aggr]p1:
     //   An aggregate is [...] a class with [...] no base classes [...].
     data().Aggregate = false;
@@ -157,9 +158,9 @@
   // The virtual bases of this class.
   SmallVector<const CXXBaseSpecifier *, 8> VBases;
 
-  data().Bases = new(C) CXXBaseSpecifier [Bases.size()];
-  data().NumBases = Bases.size();
-  for (unsigned i = 0; i < Bases.size(); ++i) {
+  data().Bases = new(C) CXXBaseSpecifier [NumBases];
+  data().NumBases = NumBases;
+  for (unsigned i = 0; i < NumBases; ++i) {
     data().getBases()[i] = *Bases[i];
     // Keep track of inherited vbases for this base class.
     const CXXBaseSpecifier *Base = Bases[i];