| 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