From: Felipe de Azevedo Piovezan Date: Wed, 8 Mar 2023 18:04:29 +0000 (-0500) Subject: [CodeGen] Prevent nullptr deref in genAlternativeCodeSequence X-Git-Tag: upstream/17.0.6~15485 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c0967995d254fd2dd24ba74afa46df5f559f11ba;p=platform%2Fupstream%2Fllvm.git [CodeGen] Prevent nullptr deref in genAlternativeCodeSequence A pointer dereference was added (D141302) above an assert that checks whether the pointer is null. This commit moves the assert above the dereference and transforms it into an llvm_unreachable to better express the intent that certain switch cases should never be reached. Differential Revision: https://reviews.llvm.org/D145599 --- diff --git a/llvm/lib/CodeGen/TargetInstrInfo.cpp b/llvm/lib/CodeGen/TargetInstrInfo.cpp index e86724a..1ea5c07 100644 --- a/llvm/lib/CodeGen/TargetInstrInfo.cpp +++ b/llvm/lib/CodeGen/TargetInstrInfo.cpp @@ -1038,15 +1038,13 @@ void TargetInstrInfo::genAlternativeCodeSequence( Prev = MRI.getUniqueVRegDef(Root.getOperand(2).getReg()); break; default: - break; + llvm_unreachable("Unknown pattern for machine combiner"); } // Don't reassociate if Prev and Root are in different blocks. if (Prev->getParent() != Root.getParent()) return; - assert(Prev && "Unknown pattern for machine combiner"); - reassociateOps(Root, *Prev, Pattern, InsInstrs, DelInstrs, InstIdxForVirtReg); }