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
[-Wunsafe-buffer-usage] Fix fixits for span initialized from const size array
Example:
int arr[10];
int * ptr = arr;
If ptr is unsafe and we transform it to std::span then the fixit we'd currently
provide transforms the code to:
std::span<int> ptr{arr, 10};
However, that's suboptimal as that repeats the size of the array in the code.
The idiomatic transformation should rely on one the span constructor that takes
just the array argument and relies on template parameter autodeduction to
set the span size.
The transformed code should look like:
std::span<int> ptr = arr;
Note that it just should not change the initializer at all and that also works for
other forms of initialization like:
int * ptr {arr};
becoming:
std::span<int> ptr{arr};
This patch changes the initializer handling to the desired (empty) fixit.
0 commit comments