You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Mono LLVM AOT crashes instead of throwing IndexOutOfRangeException for a
decreasing array loop whose array.Length + int.MaxValue limit wraps negative.
The test was added in #133834 for a CoreCLR loop-cloning regression and exposes
a separate Mono LLVM AOT bounds-check/codegen issue.
Calling Repro(new int[4], new int[4]) should throw IndexOutOfRangeException. In the llvmaot runtime variant it instead crashes
natively before xUnit can observe the exception.
Description
Mono LLVM AOT crashes instead of throwing
IndexOutOfRangeExceptionfor adecreasing array loop whose
array.Length + int.MaxValuelimit wraps negative.The test was added in #133834 for a CoreCLR loop-cloning regression and exposes
a separate Mono LLVM AOT bounds-check/codegen issue.
Calling
Repro(new int[4], new int[4])should throwIndexOutOfRangeException. In thellvmaotruntime variant it instead crashesnatively before xUnit can observe the exception.
Configuration
linux-x64 Release AllSubsets_Mono_LLVMAot_RuntimeTestsllvmaotJIT.optOffsetLimit.DecGtArrayLengthPlusMaxValueThe current evidence is specific to Mono LLVM AOT. Mono JIT, interpreter, and
other AOT variants have not shown this failure.
Re-enable condition
Remove the
IsMonoLLVMAOTActiveIssuefrom the test after this loop throwsIndexOutOfRangeExceptionunder thellvmaotruntime variant.Note
This issue was drafted with GitHub Copilot.