Issue 165362
Summary [BOLT] Crash when calling setIgnored on multiple threads
Labels bug, BOLT
Assignees bgergely0
Reporter bgergely0
    `setIgnored()` is called concurrently in `bolt/lib/Passes/MarkRAStates.cpp`. 

### Details

`setIgnored()` calls `scanExternalRefs`, [which calls](https://github.com/llvm/llvm-project/blob/main/bolt/lib/Core/BinaryFunction.cpp#L1620-L1621) `BC.SymbolicDisAsm->setSymbolizer` to set a BinaryFunction-specific symbolizer, therefore making calling `setIgnored` from multiple threads operating on individual BinaryFunctions unsafe.

`setIgnored` also calls `clearDisasmState`, [which writes to](https://github.com/llvm/llvm-project/blob/main/bolt/lib/Core/BinaryFunction.cpp#L3239) `BC.UndefinedSymbols`, making concurrent access unsafe again.




_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to