diff --git a/clang/include/clang/Frontend/ASTUnit.h b/clang/include/clang/Frontend/ASTUnit.h --- a/clang/include/clang/Frontend/ASTUnit.h +++ b/clang/include/clang/Frontend/ASTUnit.h @@ -826,7 +826,7 @@ /// // FIXME: Move OnlyLocalDecls, UseBumpAllocator to setters on the ASTUnit, we // shouldn't need to specify them at construction time. - static ASTUnit *LoadFromCommandLine( + static std::unique_ptr LoadFromCommandLine( const char **ArgBegin, const char **ArgEnd, std::shared_ptr PCHContainerOps, IntrusiveRefCntPtr Diags, StringRef ResourceFilesPath, diff --git a/clang/lib/CrossTU/CrossTranslationUnit.cpp b/clang/lib/CrossTU/CrossTranslationUnit.cpp --- a/clang/lib/CrossTU/CrossTranslationUnit.cpp +++ b/clang/lib/CrossTU/CrossTranslationUnit.cpp @@ -609,10 +609,10 @@ IntrusiveRefCntPtr Diags( new DiagnosticsEngine{DiagID, &*DiagOpts, DiagClient}); - return std::unique_ptr(ASTUnit::LoadFromCommandLine( - CommandLineArgs.begin(), (CommandLineArgs.end()), - CI.getPCHContainerOperations(), Diags, - CI.getHeaderSearchOpts().ResourceDir)); + return ASTUnit::LoadFromCommandLine(CommandLineArgs.begin(), + (CommandLineArgs.end()), + CI.getPCHContainerOperations(), Diags, + CI.getHeaderSearchOpts().ResourceDir); } llvm::Expected diff --git a/clang/lib/Frontend/ASTUnit.cpp b/clang/lib/Frontend/ASTUnit.cpp --- a/clang/lib/Frontend/ASTUnit.cpp +++ b/clang/lib/Frontend/ASTUnit.cpp @@ -1738,7 +1738,7 @@ return AST; } -ASTUnit *ASTUnit::LoadFromCommandLine( +std::unique_ptr ASTUnit::LoadFromCommandLine( const char **ArgBegin, const char **ArgEnd, std::shared_ptr PCHContainerOps, IntrusiveRefCntPtr Diags, StringRef ResourceFilesPath, @@ -1841,7 +1841,7 @@ return nullptr; } - return AST.release(); + return AST; } bool ASTUnit::Reparse(std::shared_ptr PCHContainerOps, diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp --- a/clang/tools/libclang/CIndex.cpp +++ b/clang/tools/libclang/CIndex.cpp @@ -3962,7 +3962,7 @@ *CXXIdx, LibclangInvocationReporter::OperationKind::ParseOperation, options, llvm::ArrayRef(*Args), /*InvocationArgs=*/std::nullopt, unsaved_files); - std::unique_ptr Unit(ASTUnit::LoadFromCommandLine( + std::unique_ptr Unit = ASTUnit::LoadFromCommandLine( Args->data(), Args->data() + Args->size(), CXXIdx->getPCHContainerOperations(), Diags, CXXIdx->getClangResourcesPath(), CXXIdx->getStorePreamblesInMemory(), @@ -3973,7 +3973,7 @@ /*AllowPCHWithCompilerErrors=*/true, SkipFunctionBodies, SingleFileParse, /*UserFilesAreVolatile=*/true, ForSerialization, RetainExcludedCB, CXXIdx->getPCHContainerOperations()->getRawReader().getFormats().front(), - &ErrUnit)); + &ErrUnit); // Early failures in LoadFromCommandLine may return with ErrUnit unset. if (!Unit && !ErrUnit) diff --git a/clang/unittests/Frontend/ASTUnitTest.cpp b/clang/unittests/Frontend/ASTUnitTest.cpp --- a/clang/unittests/Frontend/ASTUnitTest.cpp +++ b/clang/unittests/Frontend/ASTUnitTest.cpp @@ -167,7 +167,7 @@ auto PCHContainerOps = std::make_shared(); std::unique_ptr ErrUnit; - ASTUnit *AST = ASTUnit::LoadFromCommandLine( + std::unique_ptr AST = ASTUnit::LoadFromCommandLine( &Args[0], &Args[4], PCHContainerOps, Diags, "", false, "", false, CaptureDiagsKind::All, std::nullopt, true, 0, TU_Complete, false, false, false, SkipFunctionBodiesScope::None, false, true, false, false, @@ -194,7 +194,7 @@ auto PCHContainerOps = std::make_shared(); std::unique_ptr ErrUnit; - auto *AST = ASTUnit::LoadFromCommandLine( + std::unique_ptr AST = ASTUnit::LoadFromCommandLine( &Args[0], &Args[4], PCHContainerOps, Diags, "", false, "", false, CaptureDiagsKind::All, std::nullopt, true, 0, TU_Complete, false, false, false, SkipFunctionBodiesScope::None, false, true, false, false,