I have lost count of the number of times this has been reported, but it fundamentally comes down to the fact that the "AlignArrayLeft/Right" function is fundamentally broken for non-square arrays.
As a result, a pointer can end up running off the end of the array structure, I've spent the last 2 weekends trying to rewrite this algorithm but I've struggled to get it aligned correctly.
This is an interim fix, that ignores all array that are non-square and leaves them alone. I think this can allow us to close out most of the crashes (if not all).
I think this can help reduce the number of bugs coming in that are duplicates.
Fixes https://github.com/llvm/llvm-project/issues/53748
Fixes https://github.com/llvm/llvm-project/issues/51767
Fixes https://github.com/llvm/llvm-project/issues/51277
This should also be adapted.
And a full stop at the end.