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 - Foundation - Core |
---|---|
Affects Versions | 4.27, 5.0 |
Target Fix | 5.1 |
Created | Apr 29, 2022 |
---|---|
Resolved | May 5, 2022 |
Updated | May 16, 2022 |