Changeset View
Changeset View
Standalone View
Standalone View
clang/lib/Frontend/ASTMerge.cpp
Show First 20 Lines • Show All 53 Lines • ▼ Show 20 Lines | if (!Unit) | ||||
continue; | continue; | ||||
ASTImporter Importer(CI.getASTContext(), CI.getFileManager(), | ASTImporter Importer(CI.getASTContext(), CI.getFileManager(), | ||||
Unit->getASTContext(), Unit->getFileManager(), | Unit->getASTContext(), Unit->getFileManager(), | ||||
/*MinimalImport=*/false, SharedState); | /*MinimalImport=*/false, SharedState); | ||||
TranslationUnitDecl *TU = Unit->getASTContext().getTranslationUnitDecl(); | TranslationUnitDecl *TU = Unit->getASTContext().getTranslationUnitDecl(); | ||||
for (auto *D : TU->decls()) { | for (auto *D : TU->decls()) { | ||||
// Don't re-import __va_list_tag, __builtin_va_list. | |||||
if (const auto *ND = dyn_cast<NamedDecl>(D)) | |||||
if (IdentifierInfo *II = ND->getIdentifier()) | |||||
if (II->isStr("__va_list_tag") || II->isStr("__builtin_va_list")) | |||||
continue; | |||||
llvm::Expected<Decl *> ToDOrError = Importer.Import(D); | llvm::Expected<Decl *> ToDOrError = Importer.Import(D); | ||||
if (ToDOrError) { | if (ToDOrError) { | ||||
DeclGroupRef DGR(*ToDOrError); | DeclGroupRef DGR(*ToDOrError); | ||||
CI.getASTConsumer().HandleTopLevelDecl(DGR); | CI.getASTConsumer().HandleTopLevelDecl(DGR); | ||||
} else { | } else { | ||||
llvm::consumeError(ToDOrError.takeError()); | llvm::consumeError(ToDOrError.takeError()); | ||||
} | } | ||||
Show All 39 Lines |