diff options
author | Craig Topper <craig.topper@gmail.com> | 2015-12-25 00:36:02 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2015-12-25 00:36:02 +0000 |
commit | e6337e1ebf3e456fd00252407aee6fd7160d7df9 (patch) | |
tree | ee9463398a71c65a00e1b3cf7faec52320d64eb6 /clang/lib/AST | |
parent | 8887d1faedb890defbeee4f849a6a9a22bda4af5 (diff) | |
download | bcm5719-llvm-e6337e1ebf3e456fd00252407aee6fd7160d7df9.tar.gz bcm5719-llvm-e6337e1ebf3e456fd00252407aee6fd7160d7df9.zip |
Revert r256399 "[Sema] ArrayRef-ize ActOnBaseSpecifiers. NFC"
It broke lldb build.
llvm-svn: 256403
Diffstat (limited to 'clang/lib/AST')
-rw-r--r-- | clang/lib/AST/ASTImporter.cpp | 2 | ||||
-rw-r--r-- | clang/lib/AST/DeclCXX.cpp | 11 |
2 files changed, 7 insertions, 6 deletions
diff --git a/clang/lib/AST/ASTImporter.cpp b/clang/lib/AST/ASTImporter.cpp index 36a41cd7be7..824cc180109 100644 --- a/clang/lib/AST/ASTImporter.cpp +++ b/clang/lib/AST/ASTImporter.cpp @@ -2073,7 +2073,7 @@ bool ASTNodeImporter::ImportDefinition(RecordDecl *From, RecordDecl *To, 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 22b485a904b..32e64b6e4ec 100644 --- a/clang/lib/AST/DeclCXX.cpp +++ b/clang/lib/AST/DeclCXX.cpp @@ -135,13 +135,14 @@ CXXRecordDecl::CreateDeserialized(const ASTContext &C, unsigned ID) { } 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 @@ CXXRecordDecl::setBases(ArrayRef<const CXXBaseSpecifier *> Bases) { // 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]; |