TArrayView64 RangeCheck prints the incorrect error messages for values over 32 bit.
Repro Rate: 4/4
Tested this in //UE4/Release-4.27 @ CL#18319896 and the issue did occur there, it is not a regression.
Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:E:\Binary\UE_5.0\Engine\Source\Runtime\Core\Public\Containers\ArrayView.h] [Line: 254] Array index out of bounds: -2 from an array of size -2
int64 len = (int64)INT_MAX + (int64)INT_MAX;
TArray64<int> mainArray;
mainArray.AddZeroed(len);
TArrayView64<int> arr(mainArray);
UE_LOG(LogTemp, Warning, TEXT("ARR LENGTH: % lld"), arr.Num());
UE_LOG(LogTemp, Warning, TEXT("last+1 value is %lld"), arr[len]); // Purposefully access an index out of bounds.
Results: Intended assertion occurs with the incorrect index and size of the array (Array index out of bounds: -2 from an array of size -2)
Expected: Intended assertion occurs with the correct values of the index and size of the array (Array index out of bounds: 4294967294 from an array of size 4294967294)
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-150671 in the post.
| 0 |
| Component | UE - CoreTech |
|---|---|
| Affects Versions | 4.27, 5.0 |
| Target Fix | 5.1 |
| Created | Apr 29, 2022 |
|---|---|
| Resolved | May 5, 2022 |
| Updated | May 16, 2022 |