diff options
| -rw-r--r-- | compiler/optimizing/ssa_liveness_analysis.h | 2 | ||||
| -rw-r--r-- | test/594-checker-irreducible-linorder/smali/IrreducibleLoop.smali | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/compiler/optimizing/ssa_liveness_analysis.h b/compiler/optimizing/ssa_liveness_analysis.h index 719feec468..40dab74a23 100644 --- a/compiler/optimizing/ssa_liveness_analysis.h +++ b/compiler/optimizing/ssa_liveness_analysis.h @@ -971,7 +971,7 @@ class LiveInterval : public ArenaObject<kArenaAllocSsaLiveness> { bool IsLinearOrderWellFormed(const HGraph& graph) { for (HBasicBlock* header : graph.GetBlocks()) { - if (!header->IsLoopHeader()) { + if (header == nullptr || !header->IsLoopHeader()) { continue; } diff --git a/test/594-checker-irreducible-linorder/smali/IrreducibleLoop.smali b/test/594-checker-irreducible-linorder/smali/IrreducibleLoop.smali index 8e01084841..366c7b9b68 100644 --- a/test/594-checker-irreducible-linorder/smali/IrreducibleLoop.smali +++ b/test/594-checker-irreducible-linorder/smali/IrreducibleLoop.smali @@ -40,6 +40,11 @@ invoke-static {v0}, Ljava/lang/System;->exit(I)V goto :body1 + # Trivially dead code to ensure linear order verification skips removed blocks (b/28252537). + :dead_code + nop + goto :dead_code + :header mul-int/2addr p3, p3 if-eqz p1, :body2 |