<div dir="ltr">Hi,<div><br></div><div>This patch is to resolve a crash (stack overflow) bug that was narrowed down to infinitely recursive calls to ObjectSizeOffsetEvaluator::visitGEPOperator and ObjectSizeOffsetEvaluator::compute_ when visiting an unreachable but cyclic instruction to the effect of:</div>

<div><br></div><div>    %cyclic = getelementptr inbounds i8* %cyclic, i64 0<br></div><div><br></div><div>I originally thought the issue was that the cycle was being formed at all, but apparently cycle formation in unreachable code is something which is known to be possible after certain transformations (this particular cycle happens after PHI node simplification in an unreachable basic block leftover from some other pass). ObjectSizeOffsetVisitor in same file has a comment that the possibility of cycles is expected and bails out when detecting, so I just modified the ObjectSizeOffsetEvaluator to do the same thing.</div>

<div><br></div><div>This change is very small but I'm not very familiar with this particular code, so if anyone with more expertise with it can take a look, please let me know.</div><div><br></div><div>Thanks,</div><div>

Stephen</div><div><br></div><div><br></div></div>