diff options
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/AST/RecordLayoutBuilder.cpp | 2 | ||||
-rw-r--r-- | clang/lib/Serialization/ASTReader.cpp | 7 |
2 files changed, 4 insertions, 5 deletions
diff --git a/clang/lib/AST/RecordLayoutBuilder.cpp b/clang/lib/AST/RecordLayoutBuilder.cpp index 5eb87e7fc75..4567488bc18 100644 --- a/clang/lib/AST/RecordLayoutBuilder.cpp +++ b/clang/lib/AST/RecordLayoutBuilder.cpp @@ -65,7 +65,7 @@ class EmptySubobjectMap { const CXXRecordDecl *Class; /// EmptyClassOffsets - A map from offsets to empty record decls. - typedef SmallVector<const CXXRecordDecl *, 1> ClassVectorTy; + typedef llvm::TinyPtrVector<const CXXRecordDecl *> ClassVectorTy; typedef llvm::DenseMap<CharUnits, ClassVectorTy> EmptyClassOffsetsMapTy; EmptyClassOffsetsMapTy EmptyClassOffsets; diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp index 31b649f16e1..b6b09138116 100644 --- a/clang/lib/Serialization/ASTReader.cpp +++ b/clang/lib/Serialization/ASTReader.cpp @@ -1915,7 +1915,7 @@ ASTReader::removeOverriddenMacros(IdentifierInfo *II, AmbiguousMacroDefs.erase(II); } else { // There's no ambiguity yet. Maybe we're introducing one. - llvm::SmallVector<DefMacroDirective*, 1> Ambig; + AmbiguousMacros Ambig; if (PrevDef) Ambig.push_back(PrevDef); @@ -1923,7 +1923,7 @@ ASTReader::removeOverriddenMacros(IdentifierInfo *II, if (!Ambig.empty()) { AmbiguousMacros &Result = AmbiguousMacroDefs[II]; - Result.swap(Ambig); + std::swap(Result, Ambig); return &Result; } } @@ -1946,10 +1946,9 @@ void ASTReader::installImportedMacro(IdentifierInfo *II, ModuleMacroInfo *MMI, assert(ImportLoc.isValid() && "no import location for a visible macro?"); } - llvm::SmallVectorImpl<DefMacroDirective*> *Prev = + AmbiguousMacros *Prev = removeOverriddenMacros(II, MMI->getOverriddenSubmodules()); - // Create a synthetic macro definition corresponding to the import (or null // if this was an undefinition of the macro). DefMacroDirective *MD = MMI->import(PP, ImportLoc); |