llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-backend-m68k @llvm/pr-subscribers-backend-aarch64 Author: Victor Chernyakin (localspook) <details> <summary>Changes</summary> This is a followup to #<!-- -->173131. `llvm/include/llvm/ADT/ScopeExit.h` has a nontrivial change (the deprecation message), everything else is a mechanical replacement. --- Patch is 135.92 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/174030.diff 160 Files Affected: - (modified) bolt/lib/Profile/DataAggregator.cpp (+1-1) - (modified) clang-tools-extra/clangd/ClangdLSPServer.cpp (+1-1) - (modified) clang-tools-extra/clangd/Diagnostics.cpp (+1-1) - (modified) clang-tools-extra/clangd/GlobalCompilationDatabase.cpp (+1-1) - (modified) clang-tools-extra/clangd/SystemIncludeExtractor.cpp (+1-1) - (modified) clang-tools-extra/clangd/TUScheduler.cpp (+2-3) - (modified) clang-tools-extra/clangd/XRefs.cpp (+1-1) - (modified) clang-tools-extra/clangd/index/dex/dexp/Dexp.cpp (+1-1) - (modified) clang-tools-extra/clangd/support/FileCache.cpp (+2-2) - (modified) clang-tools-extra/clangd/support/Threading.cpp (+1-1) - (modified) clang-tools-extra/clangd/support/Trace.cpp (+1-1) - (modified) clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp (+4-5) - (modified) clang-tools-extra/clangd/unittests/TUSchedulerTests.cpp (+1-1) - (modified) clang-tools-extra/clangd/unittests/TestTU.cpp (+2-2) - (modified) clang/lib/AST/ASTImporter.cpp (+3-5) - (modified) clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp (+1-1) - (modified) clang/lib/Analysis/FlowSensitive/HTMLLogger.cpp (+2-4) - (modified) clang/lib/Analysis/ThreadSafety.cpp (+1-1) - (modified) clang/lib/Analysis/ThreadSafetyCommon.cpp (+7-7) - (modified) clang/lib/CodeGen/CGCoroutine.cpp (+2-4) - (modified) clang/lib/CodeGen/CGExpr.cpp (+2-3) - (modified) clang/lib/CodeGen/CGExprScalar.cpp (+2-2) - (modified) clang/lib/CodeGen/CGHLSLRuntime.cpp (+1-1) - (modified) clang/lib/CodeGen/CodeGenFunction.cpp (+1-1) - (modified) clang/lib/DependencyScanning/DependencyScannerImpl.cpp (+1-1) - (modified) clang/lib/DirectoryWatcher/linux/DirectoryWatcher-linux.cpp (+1-1) - (modified) clang/lib/Driver/ToolChains/Clang.cpp (+2-2) - (modified) clang/lib/Frontend/ASTUnit.cpp (+1-1) - (modified) clang/lib/Frontend/CompilerInstance.cpp (+1-1) - (modified) clang/lib/Frontend/FrontendAction.cpp (+1-1) - (modified) clang/lib/Index/IndexTypeSourceInfo.cpp (+2-2) - (modified) clang/lib/Lex/DependencyDirectivesScanner.cpp (+2-2) - (modified) clang/lib/Lex/LiteralSupport.cpp (+1-1) - (modified) clang/lib/Lex/PPDirectives.cpp (+1-1) - (modified) clang/lib/Parse/ParseCXXInlineMethods.cpp (+1-1) - (modified) clang/lib/Parse/ParseStmt.cpp (+1-2) - (modified) clang/lib/Sema/SemaDecl.cpp (+1-1) - (modified) clang/lib/Sema/SemaOverload.cpp (+1-1) - (modified) clang/lib/Serialization/ASTReader.cpp (+1-1) - (modified) clang/lib/Serialization/ASTWriter.cpp (+1-1) - (modified) clang/lib/StaticAnalyzer/Core/ConstraintManager.cpp (+1-2) - (modified) clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp (+1-2) - (modified) clang/lib/Testing/TestAST.cpp (+2-2) - (modified) clang/unittests/StaticAnalyzer/UnsignedStatDemo.cpp (+1-1) - (modified) flang/lib/Lower/Bridge.cpp (+1-2) - (modified) flang/lib/Optimizer/CodeGen/TypeConverter.cpp (+2-2) - (modified) lldb/source/Commands/CommandObjectTarget.cpp (+1-1) - (modified) lldb/source/Host/common/MemoryMonitor.cpp (+1-1) - (modified) lldb/source/Host/macosx/objcxx/Host.mm (+3-4) - (modified) lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm (+4-4) - (modified) lldb/source/Host/windows/ProcessLauncherWindows.cpp (+4-4) - (modified) lldb/source/Interpreter/CommandInterpreter.cpp (+1-1) - (modified) lldb/source/Interpreter/CommandObject.cpp (+1-1) - (modified) lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.cpp (+2-3) - (modified) lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp (+2-2) - (modified) lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp (+2-2) - (modified) lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp (+1-1) - (modified) lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp (+5-6) - (modified) lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp (+9-10) - (modified) lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp (+2-2) - (modified) lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp (+3-5) - (modified) lldb/source/Target/Process.cpp (+1-1) - (modified) lldb/source/Target/Target.cpp (+2-2) - (modified) lldb/tools/lldb-dap/DAP.cpp (+3-3) - (modified) lldb/tools/lldb-dap/tool/lldb-dap.cpp (+1-1) - (modified) lldb/tools/lldb-mcp/lldb-mcp.cpp (+1-1) - (modified) lldb/tools/lldb-test/lldb-test.cpp (+1-2) - (modified) lldb/unittests/Host/HostTest.cpp (+1-1) - (modified) llvm/include/llvm/ADT/ScopeExit.h (+8-1) - (modified) llvm/include/llvm/Transforms/Utils/SSAUpdaterImpl.h (+1-1) - (modified) llvm/lib/Analysis/BasicAliasAnalysis.cpp (+1-1) - (modified) llvm/lib/Analysis/LazyCallGraph.cpp (+11-11) - (modified) llvm/lib/Analysis/LoopInfo.cpp (+1-1) - (modified) llvm/lib/Analysis/ScalarEvolution.cpp (+3-3) - (modified) llvm/lib/Analysis/ValueTracking.cpp (+1-1) - (modified) llvm/lib/AsmParser/LLParser.cpp (+2-2) - (modified) llvm/lib/CAS/OnDiskGraphDB.cpp (+1-1) - (modified) llvm/lib/CAS/UnifiedOnDiskCache.cpp (+6-6) - (modified) llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp (+2-2) - (modified) llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp (+1-1) - (modified) llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp (+1-1) - (modified) llvm/lib/CodeGen/IfConversion.cpp (+1-1) - (modified) llvm/lib/CodeGen/ResetMachineFunctionPass.cpp (+2-2) - (modified) llvm/lib/ExecutionEngine/Orc/LoadLinkableFile.cpp (+1-1) - (modified) llvm/lib/ExecutionEngine/Orc/MachO.cpp (+1-1) - (modified) llvm/lib/ExecutionEngine/Orc/TargetProcess/SimpleExecutorMemoryManager.cpp (+1-1) - (modified) llvm/lib/LTO/LTO.cpp (+3-3) - (modified) llvm/lib/LTO/ThinLTOCodeGenerator.cpp (+1-1) - (modified) llvm/lib/MC/MCExpr.cpp (+1-1) - (modified) llvm/lib/MC/MCParser/ELFAsmParser.cpp (+1-2) - (modified) llvm/lib/ObjectYAML/DXContainerYAML.cpp (+1-1) - (modified) llvm/lib/Remarks/BitstreamRemarkSerializer.cpp (+2-2) - (modified) llvm/lib/Support/Parallel.cpp (+1-1) - (modified) llvm/lib/Support/Path.cpp (+1-1) - (modified) llvm/lib/Support/ThreadPool.cpp (+2-2) - (modified) llvm/lib/Support/Unix/Threading.inc (+1-1) - (modified) llvm/lib/Support/VirtualOutputBackends.cpp (+1-1) - (modified) llvm/lib/Support/Windows/Path.inc (+4-4) - (modified) llvm/lib/Support/Z3Solver.cpp (+1-1) - (modified) llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp (+1-1) - (modified) llvm/lib/Target/AArch64/AArch64FrameLowering.cpp (+1-1) - (modified) llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp (+1-1) - (modified) llvm/lib/Target/M68k/M68kInstrInfo.cpp (+1-1) - (modified) llvm/lib/Target/X86/X86FlagsCopyLowering.cpp (+1-1) - (modified) llvm/lib/Transforms/Coroutines/CoroFrame.cpp (+1-1) - (modified) llvm/lib/Transforms/IPO/ArgumentPromotion.cpp (+1-1) - (modified) llvm/lib/Transforms/IPO/Inliner.cpp (+1-1) - (modified) llvm/lib/Transforms/IPO/ModuleInliner.cpp (+1-1) - (modified) llvm/lib/Transforms/Instrumentation/PGOCtxProfFlattening.cpp (+1-1) - (modified) llvm/lib/Transforms/Scalar/ConstraintElimination.cpp (+2-2) - (modified) llvm/lib/Transforms/Scalar/JumpThreading.cpp (+1-1) - (modified) llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp (+1-1) - (modified) llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp (+1-1) - (modified) llvm/lib/Transforms/Utils/LoopUtils.cpp (+1-1) - (modified) llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp (+1-2) - (modified) llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp (+3-3) - (modified) llvm/lib/Transforms/Vectorize/VPlanUnroll.cpp (+1-1) - (modified) llvm/lib/Transforms/Vectorize/VectorCombine.cpp (+1-1) - (modified) llvm/tools/gold/gold-plugin.cpp (+1-1) - (modified) llvm/tools/llc/llc.cpp (+1-1) - (modified) llvm/tools/llvm-exegesis/lib/BenchmarkResult.cpp (+1-1) - (modified) llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp (+1-1) - (modified) llvm/tools/llvm-exegesis/lib/SubprocessMemory.cpp (+4-4) - (modified) llvm/tools/llvm-lto2/llvm-lto2.cpp (+1-1) - (modified) llvm/tools/llvm-mc/llvm-mc.cpp (+1-1) - (modified) llvm/tools/llvm-profdata/llvm-profdata.cpp (+1-1) - (modified) llvm/unittests/ADT/ScopeExitTest.cpp (+3-3) - (modified) llvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp (+3-3) - (modified) llvm/unittests/Support/MemoryBufferTest.cpp (+7-8) - (modified) llvm/unittests/Support/Path.cpp (+4-4) - (modified) llvm/unittests/Support/SignalsTest.cpp (+2-3) - (modified) llvm/unittests/Support/ThreadPool.cpp (+1-1) - (modified) llvm/unittests/Support/VirtualFileSystemTest.cpp (+1-2) - (modified) mlir/lib/Analysis/DataFlow/DeadCodeAnalysis.cpp (+2-2) - (modified) mlir/lib/Analysis/DataFlowFramework.cpp (+2-2) - (modified) mlir/lib/AsmParser/Parser.cpp (+3-3) - (modified) mlir/lib/Bindings/Python/IRAttributes.cpp (+2-2) - (modified) mlir/lib/Bytecode/Reader/BytecodeReader.cpp (+5-6) - (modified) mlir/lib/CAPI/Interfaces/Interfaces.cpp (+1-1) - (modified) mlir/lib/Conversion/ArmSMEToLLVM/ArmSMEToLLVM.cpp (+1-1) - (modified) mlir/lib/Conversion/LLVMCommon/TypeConverter.cpp (+1-1) - (modified) mlir/lib/Debug/ExecutionContext.cpp (+1-1) - (modified) mlir/lib/Dialect/Bufferization/IR/BufferizableOpInterface.cpp (+1-2) - (modified) mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp (+1-1) - (modified) mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp (+4-4) - (modified) mlir/lib/Dialect/Linalg/Transforms/Interchange.cpp (+1-2) - (modified) mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp (+2-2) - (modified) mlir/lib/Dialect/Transform/IR/TransformOps.cpp (+1-1) - (modified) mlir/lib/Dialect/Transform/Interfaces/TransformInterfaces.cpp (+1-1) - (modified) mlir/lib/Dialect/Transform/PDLExtension/PDLExtensionOps.cpp (+1-1) - (modified) mlir/lib/IR/AsmPrinter.cpp (+2-2) - (modified) mlir/lib/Pass/Pass.cpp (+1-1) - (modified) mlir/lib/Pass/PassRegistry.cpp (+1-1) - (modified) mlir/lib/Rewrite/PatternApplicator.cpp (+1-1) - (modified) mlir/lib/Target/LLVM/NVVM/Target.cpp (+1-1) - (modified) mlir/lib/Target/LLVMIR/Dialect/GPU/SelectObjectAttr.cpp (+1-1) - (modified) mlir/lib/Target/LLVMIR/ModuleImport.cpp (+1-1) - (modified) mlir/lib/Transforms/Utils/DialectConversion.cpp (+1-1) - (modified) mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp (+1-2) - (modified) mlir/test/lib/Dialect/Test/TestPatterns.cpp (+1-1) ``````````diff diff --git a/bolt/lib/Profile/DataAggregator.cpp b/bolt/lib/Profile/DataAggregator.cpp index ed20ff3941cee..cce08658fefb9 100644 --- a/bolt/lib/Profile/DataAggregator.cpp +++ b/bolt/lib/Profile/DataAggregator.cpp @@ -347,7 +347,7 @@ bool DataAggregator::checkPerfDataMagic(StringRef FileName) { char Buf[7] = {0, 0, 0, 0, 0, 0, 0}; - auto Close = make_scope_exit([&] { sys::fs::closeFile(*FD); }); + llvm::scope_exit Close([&] { sys::fs::closeFile(*FD); }); Expected<size_t> BytesRead = sys::fs::readNativeFileSlice( *FD, MutableArrayRef(Buf, sizeof(Buf)), 0); if (!BytesRead) { diff --git a/clang-tools-extra/clangd/ClangdLSPServer.cpp b/clang-tools-extra/clangd/ClangdLSPServer.cpp index 1518f177b06a0..761b07eceec83 100644 --- a/clang-tools-extra/clangd/ClangdLSPServer.cpp +++ b/clang-tools-extra/clangd/ClangdLSPServer.cpp @@ -433,7 +433,7 @@ class ClangdLSPServer::MessageHandler : public Transport::MessageHandler { // When the request ends, we can clean up the entry we just added. // The cookie lets us check that it hasn't been overwritten due to ID // reuse. - return Task.first.derive(llvm::make_scope_exit([this, StrID, Cookie] { + return Task.first.derive(llvm::scope_exit([this, StrID, Cookie] { std::lock_guard<std::mutex> Lock(RequestCancelersMutex); auto It = RequestCancelers.find(StrID); if (It != RequestCancelers.end() && It->second.second == Cookie) diff --git a/clang-tools-extra/clangd/Diagnostics.cpp b/clang-tools-extra/clangd/Diagnostics.cpp index bc605fda5b0ce..e10960ca5850f 100644 --- a/clang-tools-extra/clangd/Diagnostics.cpp +++ b/clang-tools-extra/clangd/Diagnostics.cpp @@ -880,7 +880,7 @@ void StoreDiags::HandleDiagnostic(DiagnosticsEngine::Level DiagLevel, void StoreDiags::flushLastDiag() { if (!LastDiag) return; - auto Finish = llvm::make_scope_exit([&, NDiags(Output.size())] { + llvm::scope_exit Finish([&, NDiags(Output.size())] { if (Output.size() == NDiags) // No new diag emitted. vlog("Dropped diagnostic: {0}: {1}", LastDiag->File, LastDiag->Message); LastDiag.reset(); diff --git a/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp b/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp index d229a71867558..a1d9135111ca8 100644 --- a/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp +++ b/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp @@ -174,7 +174,7 @@ class DirectoryBasedGlobalCompilationDatabase::DirectoryCache { } std::lock_guard<std::mutex> Lock(Mu); - auto RequestBroadcast = llvm::make_scope_exit([&, OldCDB(CDB.get())] { + llvm::scope_exit RequestBroadcast([&, OldCDB(CDB.get())] { // If we loaded a new CDB, it should be broadcast at some point. if (CDB != nullptr && CDB.get() != OldCDB) NeedsBroadcast = true; diff --git a/clang-tools-extra/clangd/SystemIncludeExtractor.cpp b/clang-tools-extra/clangd/SystemIncludeExtractor.cpp index 4a5cd3bb78b2f..e781f355aa3e1 100644 --- a/clang-tools-extra/clangd/SystemIncludeExtractor.cpp +++ b/clang-tools-extra/clangd/SystemIncludeExtractor.cpp @@ -332,7 +332,7 @@ std::optional<std::string> run(llvm::ArrayRef<llvm::StringRef> Argv, EC.message()); return std::nullopt; } - auto CleanUp = llvm::make_scope_exit( + llvm::scope_exit CleanUp( [&OutputPath]() { llvm::sys::fs::remove(OutputPath); }); std::optional<llvm::StringRef> Redirects[] = {{""}, {""}, {""}}; diff --git a/clang-tools-extra/clangd/TUScheduler.cpp b/clang-tools-extra/clangd/TUScheduler.cpp index 035e5e63d8fbb..0661ecb58008e 100644 --- a/clang-tools-extra/clangd/TUScheduler.cpp +++ b/clang-tools-extra/clangd/TUScheduler.cpp @@ -1003,8 +1003,7 @@ void ASTWorker::runWithAST( AST = NewAST ? std::make_unique<ParsedAST>(std::move(*NewAST)) : nullptr; } // Make sure we put the AST back into the LRU cache. - auto _ = llvm::make_scope_exit( - [&AST, this]() { IdleASTs.put(this, std::move(*AST)); }); + llvm::scope_exit _([&AST, this]() { IdleASTs.put(this, std::move(*AST)); }); // Run the user-provided action. if (!*AST) return Action(error(llvm::errc::invalid_argument, "invalid AST")); @@ -1057,7 +1056,7 @@ void PreambleThread::build(Request Req) { Status.update([&](TUStatus &Status) { Status.PreambleActivity = PreambleAction::Building; }); - auto _ = llvm::make_scope_exit([this, &Req, &ReusedPreamble] { + llvm::scope_exit _([this, &Req, &ReusedPreamble] { ASTPeer.updatePreamble(std::move(Req.CI), std::move(Req.Inputs), LatestBuild, std::move(Req.CIDiags), std::move(Req.WantDiags)); diff --git a/clang-tools-extra/clangd/XRefs.cpp b/clang-tools-extra/clangd/XRefs.cpp index 4e330bf769d20..8a24d19a7d129 100644 --- a/clang-tools-extra/clangd/XRefs.cpp +++ b/clang-tools-extra/clangd/XRefs.cpp @@ -1097,7 +1097,7 @@ class FindControlFlow : public RecursiveASTVisitor<FindControlFlow> { // Traverses the subtree using Delegate() if any targets remain. template <typename Func> bool filterAndTraverse(DynTypedNode D, const Func &Delegate) { - auto RestoreIgnore = llvm::make_scope_exit( + llvm::scope_exit RestoreIgnore( [OldIgnore(Ignore), this] { Ignore = OldIgnore; }); if (getFunctionBody(D)) Ignore = All; diff --git a/clang-tools-extra/clangd/index/dex/dexp/Dexp.cpp b/clang-tools-extra/clangd/index/dex/dexp/Dexp.cpp index fa451daf1bb52..d3eb0e152cd0d 100644 --- a/clang-tools-extra/clangd/index/dex/dexp/Dexp.cpp +++ b/clang-tools-extra/clangd/index/dex/dexp/Dexp.cpp @@ -107,7 +107,7 @@ class Command { bool Ok = llvm::cl::ParseCommandLineOptions(Argv.size(), Argv.data(), Overview, &OS); // must do this before opts are destroyed - auto Cleanup = llvm::make_scope_exit(llvm::cl::ResetCommandLineParser); + llvm::scope_exit Cleanup(llvm::cl::ResetCommandLineParser); if (Help.getNumOccurrences() > 0) { // Avoid printing parse errors in this case. // (Well, in theory. A bunch get printed to llvm::errs() regardless!) diff --git a/clang-tools-extra/clangd/support/FileCache.cpp b/clang-tools-extra/clangd/support/FileCache.cpp index cc59c648b062a..25de5a77e5bec 100644 --- a/clang-tools-extra/clangd/support/FileCache.cpp +++ b/clang-tools-extra/clangd/support/FileCache.cpp @@ -35,7 +35,7 @@ void FileCache::read( std::lock_guard<std::mutex> Lock(Mu); // We're going to update the cache and return whatever's in it. - auto Return = llvm::make_scope_exit(Read); + llvm::scope_exit Return(Read); // Return any sufficiently recent result without doing any further work. if (ValidTime > FreshTime) @@ -43,7 +43,7 @@ void FileCache::read( // Ensure we always bump ValidTime, so that FreshTime imposes a hard limit on // how often we do IO. - auto BumpValidTime = llvm::make_scope_exit( + llvm::scope_exit BumpValidTime( [&] { ValidTime = std::chrono::steady_clock::now(); }); // stat is cheaper than opening the file. It's usually unchanged. diff --git a/clang-tools-extra/clangd/support/Threading.cpp b/clang-tools-extra/clangd/support/Threading.cpp index f42db89b483c0..7017201e3a225 100644 --- a/clang-tools-extra/clangd/support/Threading.cpp +++ b/clang-tools-extra/clangd/support/Threading.cpp @@ -85,7 +85,7 @@ void AsyncTaskRunner::runAsync(const llvm::Twine &Name, ++InFlightTasks; } - auto CleanupTask = llvm::make_scope_exit([this]() { + llvm::scope_exit CleanupTask([this]() { std::lock_guard<std::mutex> Lock(Mutex); int NewTasksCnt = --InFlightTasks; if (NewTasksCnt == 0) { diff --git a/clang-tools-extra/clangd/support/Trace.cpp b/clang-tools-extra/clangd/support/Trace.cpp index 7c6490f2e92fb..196611b9b76d1 100644 --- a/clang-tools-extra/clangd/support/Trace.cpp +++ b/clang-tools-extra/clangd/support/Trace.cpp @@ -289,7 +289,7 @@ makeSpanContext(llvm::Twine Name, const Metric &LatencyMetric) { return std::make_pair(Context::current().clone(), nullptr); std::optional<WithContextValue> WithLatency; using Clock = std::chrono::high_resolution_clock; - WithLatency.emplace(llvm::make_scope_exit( + WithLatency.emplace(llvm::scope_exit( [StartTime = Clock::now(), Name = Name.str(), &LatencyMetric] { LatencyMetric.record( std::chrono::duration_cast<std::chrono::milliseconds>(Clock::now() - diff --git a/clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp b/clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp index 660540afd2320..4d59a6151c167 100644 --- a/clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp +++ b/clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp @@ -140,7 +140,7 @@ TEST(CommandMangler, ClangPathResolve) { ok()); // /var/tmp is a symlink on Mac. Resolve it so we're asserting the right path. ASSERT_THAT(llvm::sys::fs::real_path(TempDir.str(), TempDir), ok()); - auto CleanDir = llvm::make_scope_exit( + llvm::scope_exit CleanDir( [&] { llvm::sys::fs::remove_directories(TempDir); }); ASSERT_THAT(llvm::sys::fs::create_directory(TempDir + "/bin"), ok()); ASSERT_THAT(llvm::sys::fs::create_directory(TempDir + "/lib"), ok()); @@ -163,10 +163,9 @@ TEST(CommandMangler, ClangPathResolve) { // Set PATH to point to temp/bin so we can find 'foo' on it. ASSERT_TRUE(::getenv("PATH")); - auto RestorePath = - llvm::make_scope_exit([OldPath = std::string(::getenv("PATH"))] { - ::setenv("PATH", OldPath.c_str(), 1); - }); + llvm::scope_exit RestorePath([OldPath = std::string(::getenv("PATH"))] { + ::setenv("PATH", OldPath.c_str(), 1); + }); ::setenv("PATH", (TempDir + "/bin").str().c_str(), /*overwrite=*/1); // Test the case where the driver is a $PATH-relative path to a symlink. diff --git a/clang-tools-extra/clangd/unittests/TUSchedulerTests.cpp b/clang-tools-extra/clangd/unittests/TUSchedulerTests.cpp index 43f38e39c8952..c6862b5eba6fa 100644 --- a/clang-tools-extra/clangd/unittests/TUSchedulerTests.cpp +++ b/clang-tools-extra/clangd/unittests/TUSchedulerTests.cpp @@ -113,7 +113,7 @@ class TUSchedulerTests : public ::testing::Test { void updateWithCallback(TUScheduler &S, PathRef File, ParseInputs Inputs, WantDiagnostics WD, llvm::unique_function<void()> CB) { - WithContextValue Ctx(llvm::make_scope_exit(std::move(CB))); + WithContextValue Ctx(llvm::scope_exit(std::move(CB))); S.update(File, Inputs, WD); } diff --git a/clang-tools-extra/clangd/unittests/TestTU.cpp b/clang-tools-extra/clangd/unittests/TestTU.cpp index a733fac932bf4..e2c2e3f000b66 100644 --- a/clang-tools-extra/clangd/unittests/TestTU.cpp +++ b/clang-tools-extra/clangd/unittests/TestTU.cpp @@ -106,7 +106,7 @@ TestTU::preamble(PreambleParsedCallback PreambleCallback) const { assert(CI && "Failed to build compilation invocation."); if (OverlayRealFileSystemForModules) initializeModuleCache(*CI); - auto ModuleCacheDeleter = llvm::make_scope_exit( + llvm::scope_exit ModuleCacheDeleter( std::bind(deleteModuleCache, CI->getHeaderSearchOpts().ModuleCachePath)); return clang::clangd::buildPreamble(testPath(Filename), *CI, Inputs, /*StoreInMemory=*/true, PreambleCallback); @@ -121,7 +121,7 @@ ParsedAST TestTU::build() const { assert(CI && "Failed to build compilation invocation."); if (OverlayRealFileSystemForModules) initializeModuleCache(*CI); - auto ModuleCacheDeleter = llvm::make_scope_exit( + llvm::scope_exit ModuleCacheDeleter( std::bind(deleteModuleCache, CI->getHeaderSearchOpts().ModuleCachePath)); auto Preamble = clang::clangd::buildPreamble(testPath(Filename), *CI, Inputs, diff --git a/clang/lib/AST/ASTImporter.cpp b/clang/lib/AST/ASTImporter.cpp index c1441744c8578..101ab2c40973b 100644 --- a/clang/lib/AST/ASTImporter.cpp +++ b/clang/lib/AST/ASTImporter.cpp @@ -1298,7 +1298,7 @@ auto ASTImporter::FunctionDeclImportCycleDetector::makeScopedCycleDetection( FunctionDeclsWithImportInProgress.insert(D); LambdaD = D; } - return llvm::make_scope_exit([this, LambdaD]() { + return llvm::scope_exit([this, LambdaD]() { if (LambdaD) { FunctionDeclsWithImportInProgress.erase(LambdaD); } @@ -2547,8 +2547,7 @@ Error ASTNodeImporter::ImportDefinition( // Complete the definition even if error is returned. // The RecordDecl may be already part of the AST so it is better to // have it in complete state even if something is wrong with it. - auto DefinitionCompleterScopeExit = - llvm::make_scope_exit(DefinitionCompleter); + llvm::scope_exit DefinitionCompleterScopeExit(DefinitionCompleter); if (Error Err = setTypedefNameForAnonDecl(From, To, Importer)) return Err; @@ -9799,8 +9798,7 @@ Expected<Decl *> ASTImporter::Import(Decl *FromD) { // Push FromD to the stack, and remove that when we return. ImportPath.push(FromD); - auto ImportPathBuilder = - llvm::make_scope_exit([this]() { ImportPath.pop(); }); + llvm::scope_exit ImportPathBuilder([this]() { ImportPath.pop(); }); // Check whether there was a previous failed import. // If yes return the existing error. diff --git a/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp b/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp index f14cb43e47dd4..c5b1ed8cfabdc 100644 --- a/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp +++ b/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp @@ -1018,7 +1018,7 @@ Environment::createLocAndMaybeValue(QualType Ty, int Depth, int &CreatedValuesCount) { if (!Visited.insert(Ty.getCanonicalType()).second) return createStorageLocation(Ty.getNonReferenceType()); - auto EraseVisited = llvm::make_scope_exit( + llvm::scope_exit EraseVisited( [&Visited, Ty] { Visited.erase(Ty.getCanonicalType()); }); Ty = Ty.getNonReferenceType(); diff --git a/clang/lib/Analysis/FlowSensitive/HTMLLogger.cpp b/clang/lib/Analysis/FlowSensitive/HTMLLogger.cpp index 557df21883794..a1469d690a3a8 100644 --- a/clang/lib/Analysis/FlowSensitive/HTMLLogger.cpp +++ b/clang/lib/Analysis/FlowSensitive/HTMLLogger.cpp @@ -539,12 +539,10 @@ llvm::Expected<std::string> renderSVG(llvm::StringRef DotGraph) { Input)) return llvm::createStringError(EC, "failed to create `dot` temp input"); llvm::raw_fd_ostream(InputFD, /*shouldClose=*/true) << DotGraph; - auto DeleteInput = - llvm::make_scope_exit([&] { llvm::sys::fs::remove(Input); }); + llvm::scope_exit DeleteInput([&] { llvm::sys::fs::remove(Input); }); if (auto EC = llvm::sys::fs::createTemporaryFile("analysis", ".svg", Output)) return llvm::createStringError(EC, "failed to create `dot` temp output"); - auto DeleteOutput = - llvm::make_scope_exit([&] { llvm::sys::fs::remove(Output); }); + llvm::scope_exit DeleteOutput([&] { llvm::sys::fs::remove(Output); }); std::vector<std::optional<llvm::StringRef>> Redirects = { Input, Output, diff --git a/clang/lib/Analysis/ThreadSafety.cpp b/clang/lib/Analysis/ThreadSafety.cpp index 60d9c0f3b0ed2..df4bae89f62df 100644 --- a/clang/lib/Analysis/ThreadSafety.cpp +++ b/clang/lib/Analysis/ThreadSafety.cpp @@ -1682,7 +1682,7 @@ void ThreadSafetyAnalyzer::getEdgeLockset(FactSet& Result, return LocalVarMap.lookupExpr(D, Ctx); }); } - auto Cleanup = llvm::make_scope_exit( + llvm::scope_exit Cleanup( [this] { SxBuilder.setLookupLocalVarExpr(nullptr); }); const auto *Exp = getTrylockCallExpr(Cond, LVarCtx, Negate); diff --git a/clang/lib/Analysis/ThreadSafetyCommon.cpp b/clang/lib/Analysis/ThreadSafetyCommon.cpp index ef48ae439c5f3..5bee86470ed7f 100644 --- a/clang/lib/Analysis/ThreadSafetyCommon.cpp +++ b/clang/lib/Analysis/ThreadSafetyCommon.cpp @@ -251,13 +251,13 @@ til::SExpr *SExprBuilder::translateVariable(const VarDecl *VD, // The closure captures state that is updated to correctly translate chains of // aliases. Restore it when we are done with recursive translation. - auto Cleanup = llvm::make_scope_exit( - [&, RestoreClosure = - VarsBeingTranslated.empty() ? LookupLocalVarExpr : nullptr] { - VarsBeingTranslated.erase(VD->getCanonicalDecl()); - if (VarsBeingTranslated.empty()) - LookupLocalVarExpr = RestoreClosure; - }); + llvm::scope_exit Cleanup([&, RestoreClosure = VarsBeingTranslated.empty() + ? LookupLocalVarExpr + : nullptr] { + VarsBeingTranslated.erase(VD->getCanonicalDecl()); + if (VarsBeingTranslated.empty()) + LookupLocalVarExpr = RestoreClosure; + }); VarsBeingTranslated.insert(VD->getCanonicalDecl()); QualType Ty = VD->getType(); diff --git a/clang/lib/CodeGen/CGCoroutine.cpp b/clang/lib/CodeGen/CGCoroutine.cpp index f972f6a7e30b9..c80bb0e004367 100644 --- a/clang/lib/CodeGen/CGCoroutine.cpp +++ b/clang/lib/CodeGen/CGCoroutine.cpp @@ -230,8 +230,7 @@ static LValueOrRValue emitSuspendExpression(CodeGenFunction &CGF, CGCoroData &Co auto CommonBinder = CodeGenFunction::OpaqueValueMappingData::bind(CGF, S.getOpaqueValue(), E); - auto UnbindCommonOnExit = - llvm::make_scope_exit([&] { CommonBinder.unbind(CGF); }); + llvm::scope_exit UnbindCommonOnExit([&] { CommonBinder.unbind(CGF); }); auto Prefix = buildSuspendPrefixStr(Coro, Kind); BasicBlock *ReadyBlock = CGF.createBasicBlock(Prefix + Twine(".ready")); @@ -464,8 +463,7 @@ CodeGenFunction::generateAwaitSuspendWrapper(Twine const &CoroName, auto *SuspendRet = EmitScalarExpr(S.getSuspendExpr()); - auto UnbindCommonOnExit = - llvm::make_scope_exit([&] { AwaiterBinder.unbind(*this); }); + llvm::scope_exit UnbindCommonOnExit([&] { AwaiterBinder.unbind(*this); }); if (SuspendRet != nullptr) { Fn->addRetAttr(llvm::Attribute::AttrKind::NoUndef); Builder.CreateStore(SuspendRet, ReturnValue); diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp index d784e1d6c68fe..ba2cdd3ea19dc 100644 --- a/clang/lib/CodeGen/CGExpr.cpp +++ b/clang/lib/CodeGen/CGExpr.cpp @@ -5874,8 +5874,7 @@ LValue CodeGenFunction::EmitConditionalOperatorLValue( /// are permitted with aggregate result, including noop aggregate casts, and /// cast from scalar to union. LValue CodeGenFunction::EmitCastLValue(const CastExpr *E) { - auto RestoreCurCast = - llvm::make_scope_exit([this, Prev = CurCast] { CurCast = Prev; }); + llvm::scope_exit RestoreCurCast([this, Prev = CurCast] { CurCast = Prev; }); CurCast = E; switch (E->getCastKind()) { case CK_ToVoid: @@ -6172,7 +6171,7 @@ RValue CodeGenFunction::EmitCallExpr(const CallExpr *E, CallOrInvoke = &CallOrInvokeStorage; } - auto AddCoroElideSafeOnExit = llvm::make_scope_exit([&] { + llvm::scope_exit AddCoroElideSafeOnExit([&] { if (E->isCoroElideSafe()) { auto *I = *CallOrInvoke; if (I) diff --git a/clang/lib/CodeGen/CGExprScalar.cpp b/clang/lib/CodeGen/CGExprScalar.cpp index 7961aba7df52f..84421fef9f524 100644 --- a/clang/lib/CodeGen/CGExprScalar.cpp +++ b/clang/lib/CodeGen/CGExprScalar.cpp @@ -2503,8 +2503,8 @@ static Value *EmitHLSLElementwiseCast(CodeGenFunction &CGF, LValue SrcVal, // have to handle a more broad range of conversions than explicit casts, as they // handle things like function to ptr-to-function decay etc. Value *ScalarExprEmitter::VisitCastExpr(CastExpr *CE) { - auto RestoreCurCast = - llvm::make_scope_exit([this, Prev = CGF.CurCast] { CGF.CurCast = Prev; }); + llvm::scope_exit RestoreCurCast( + [this, Prev = CGF.CurCast] { CGF.CurCast = Prev; }); CGF.CurCast = CE; Expr *E = CE->getSubExpr(); diff --git a/clang/lib/CodeGen/CGHLSLRuntime.cpp b/clang/lib/CodeGen/CGHLSLRuntime.cpp index 2e9602d1b3793..86e73fbad9ae5 100644 --- a/clang/lib/CodeGen/CGHLSLRuntime.cpp +++ b/clang/lib/CodeGen/CGHLSLRuntime.cpp @@ -1418,7 +1418,7 @@ class HLSLBufferCopyEmitter { llvm::ConstantInt *LoadIndex) { CurStoreIndices.push_back(StoreIndex); CurLoadIndices.push_back(LoadIndex); - auto RestoreIndices = llvm::make_scope_exit([&]() { + llvm::scope_exit RestoreIndices([&]() { CurStoreIndices.pop_back(); CurLoadIndices.pop_back(); }); diff --gi... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/174030 _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
