TArray64 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\Array.h] [Line: 691] Array index out of bounds: -2 from an array of size -2
TArray64<int> arr; int64 len = (int64)INT_MAX + (int64)INT_MAX; // Length of the array will be 4,294,967,294 as INT_MAX = 2,147,483,647 arr.AddZeroed(len); UE_LOG(LogTemp, Warning, TEXT("ARR LENGTH: % lld"), arr.Num()); // Print out the length of the array 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-150458 in the post.
0 |
Component | UE - Foundation - Core |
---|---|
Affects Versions | 4.27, 5.0 |
Target Fix | 5.1 |
Created | Apr 27, 2022 |
---|---|
Resolved | Apr 28, 2022 |
Updated | May 6, 2022 |