This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGa57bdc8fe687: [clang] Fix leak in LoadFromCommandLineWorkingDirectory unit test (authored by hamishknight, committed by bnbarham).
Changed prior to commit: https://reviews.llvm.org/D154257?vs=536426&id=536472#toc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D154257/new/ https://reviews.llvm.org/D154257 Files: clang/include/clang/Frontend/ASTUnit.h clang/lib/CrossTU/CrossTranslationUnit.cpp clang/lib/Frontend/ASTUnit.cpp clang/tools/libclang/CIndex.cpp clang/unittests/Frontend/ASTUnitTest.cpp Index: clang/unittests/Frontend/ASTUnitTest.cpp =================================================================== --- clang/unittests/Frontend/ASTUnitTest.cpp +++ clang/unittests/Frontend/ASTUnitTest.cpp @@ -167,7 +167,7 @@ auto PCHContainerOps = std::make_shared<PCHContainerOperations>(); std::unique_ptr<clang::ASTUnit> ErrUnit; - ASTUnit *AST = ASTUnit::LoadFromCommandLine( + std::unique_ptr<ASTUnit> 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<PCHContainerOperations>(); std::unique_ptr<clang::ASTUnit> ErrUnit; - auto *AST = ASTUnit::LoadFromCommandLine( + std::unique_ptr<ASTUnit> 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, Index: clang/tools/libclang/CIndex.cpp =================================================================== --- clang/tools/libclang/CIndex.cpp +++ 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<ASTUnit> Unit(ASTUnit::LoadFromCommandLine( + std::unique_ptr<ASTUnit> 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) Index: clang/lib/Frontend/ASTUnit.cpp =================================================================== --- clang/lib/Frontend/ASTUnit.cpp +++ clang/lib/Frontend/ASTUnit.cpp @@ -1738,7 +1738,7 @@ return AST; } -ASTUnit *ASTUnit::LoadFromCommandLine( +std::unique_ptr<ASTUnit> ASTUnit::LoadFromCommandLine( const char **ArgBegin, const char **ArgEnd, std::shared_ptr<PCHContainerOperations> PCHContainerOps, IntrusiveRefCntPtr<DiagnosticsEngine> Diags, StringRef ResourceFilesPath, @@ -1841,7 +1841,7 @@ return nullptr; } - return AST.release(); + return AST; } bool ASTUnit::Reparse(std::shared_ptr<PCHContainerOperations> PCHContainerOps, Index: clang/lib/CrossTU/CrossTranslationUnit.cpp =================================================================== --- clang/lib/CrossTU/CrossTranslationUnit.cpp +++ clang/lib/CrossTU/CrossTranslationUnit.cpp @@ -609,10 +609,10 @@ IntrusiveRefCntPtr<DiagnosticsEngine> Diags( new DiagnosticsEngine{DiagID, &*DiagOpts, DiagClient}); - return std::unique_ptr<ASTUnit>(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<InvocationListTy> Index: clang/include/clang/Frontend/ASTUnit.h =================================================================== --- clang/include/clang/Frontend/ASTUnit.h +++ 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<ASTUnit> LoadFromCommandLine( const char **ArgBegin, const char **ArgEnd, std::shared_ptr<PCHContainerOperations> PCHContainerOps, IntrusiveRefCntPtr<DiagnosticsEngine> Diags, StringRef ResourceFilesPath,
Index: clang/unittests/Frontend/ASTUnitTest.cpp =================================================================== --- clang/unittests/Frontend/ASTUnitTest.cpp +++ clang/unittests/Frontend/ASTUnitTest.cpp @@ -167,7 +167,7 @@ auto PCHContainerOps = std::make_shared<PCHContainerOperations>(); std::unique_ptr<clang::ASTUnit> ErrUnit; - ASTUnit *AST = ASTUnit::LoadFromCommandLine( + std::unique_ptr<ASTUnit> 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<PCHContainerOperations>(); std::unique_ptr<clang::ASTUnit> ErrUnit; - auto *AST = ASTUnit::LoadFromCommandLine( + std::unique_ptr<ASTUnit> 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, Index: clang/tools/libclang/CIndex.cpp =================================================================== --- clang/tools/libclang/CIndex.cpp +++ 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<ASTUnit> Unit(ASTUnit::LoadFromCommandLine( + std::unique_ptr<ASTUnit> 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) Index: clang/lib/Frontend/ASTUnit.cpp =================================================================== --- clang/lib/Frontend/ASTUnit.cpp +++ clang/lib/Frontend/ASTUnit.cpp @@ -1738,7 +1738,7 @@ return AST; } -ASTUnit *ASTUnit::LoadFromCommandLine( +std::unique_ptr<ASTUnit> ASTUnit::LoadFromCommandLine( const char **ArgBegin, const char **ArgEnd, std::shared_ptr<PCHContainerOperations> PCHContainerOps, IntrusiveRefCntPtr<DiagnosticsEngine> Diags, StringRef ResourceFilesPath, @@ -1841,7 +1841,7 @@ return nullptr; } - return AST.release(); + return AST; } bool ASTUnit::Reparse(std::shared_ptr<PCHContainerOperations> PCHContainerOps, Index: clang/lib/CrossTU/CrossTranslationUnit.cpp =================================================================== --- clang/lib/CrossTU/CrossTranslationUnit.cpp +++ clang/lib/CrossTU/CrossTranslationUnit.cpp @@ -609,10 +609,10 @@ IntrusiveRefCntPtr<DiagnosticsEngine> Diags( new DiagnosticsEngine{DiagID, &*DiagOpts, DiagClient}); - return std::unique_ptr<ASTUnit>(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<InvocationListTy> Index: clang/include/clang/Frontend/ASTUnit.h =================================================================== --- clang/include/clang/Frontend/ASTUnit.h +++ 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<ASTUnit> LoadFromCommandLine( const char **ArgBegin, const char **ArgEnd, std::shared_ptr<PCHContainerOperations> PCHContainerOps, IntrusiveRefCntPtr<DiagnosticsEngine> Diags, StringRef ResourceFilesPath,
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits