[llvm] [OMPIRBuilder] Avoid crash in BasicBlock::splice. (PR #154987)
Michael Kruse via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 29 07:58:42 PDT 2025
================
@@ -307,7 +307,14 @@ void llvm::spliceBB(IRBuilderBase::InsertPoint IP, BasicBlock *New,
// Move instructions to new block.
BasicBlock *Old = IP.getBlock();
- if (!Old->empty() || !New->empty())
+ // If the Old block is empty then there are no instructions to move. But in
+ // the new debug scheme, it could have trailing debug records which will be
+ // moved to New in spliceDebugInfoEmptyBlock. We dont want that for 2 reasons:
+ // 1. If New is also empty, it could cause a crash.
----------------
Meinersbur wrote:
```suggestion
// 1. If New is also empty, `BasicBlock::splice` crashes
```
[nit] to be specific. If it doesn't crash anymore, we know it has been fixed.
https://github.com/llvm/llvm-project/pull/154987
More information about the llvm-commits
mailing list