From c8ff968b8497099c68c8352c8c1a794537c3a389 Mon Sep 17 00:00:00 2001 From: Denis Revunov Date: Wed, 11 Jan 2023 03:38:47 -0500 Subject: [PATCH] [BOLT][AArch64] add lock to FixRelaxations pass Since the pass is multithreaded, BC.Ctx must be protected. Otherwise we get crashes when processing. Reviewed by: yota9 Differential Revision: https://reviews.llvm.org/D141465 --- bolt/lib/Passes/FixRelaxationPass.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/bolt/lib/Passes/FixRelaxationPass.cpp b/bolt/lib/Passes/FixRelaxationPass.cpp index 549624f..3dd19b6 100644 --- a/bolt/lib/Passes/FixRelaxationPass.cpp +++ b/bolt/lib/Passes/FixRelaxationPass.cpp @@ -39,6 +39,7 @@ void FixRelaxations::runOnFunction(BinaryFunction &BF) { if (!Symbol || AdrpSymbol == Symbol) continue; + auto L = BC.scopeLock(); const int64_t Addend = BC.MIB->getTargetAddend(Add); BC.MIB->setOperandToSymbolRef(Adrp, /*OpNum*/ 1, Symbol, Addend, BC.Ctx.get(), ELF::R_AARCH64_NONE); -- 2.7.4