https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86619
--- Comment #5 from Andrew Pinski ---
I Noticed clang, ICC nor MSVC either handle this either.
Note GCC is the only one which handles :
int f(std::array & a, std::array & b)
{
a[0] = 1;
b[0] = 1;
return a[0];
}
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86619
--- Comment #4 from Michael Veksler ---
It is interesting to check the impact on numerical C++ benchmarks.
Fortran has a conceptual restrict on all its parameter arrays,
since aliasing is not allowed.
void f(int * __restrict__ v1, int * __rest
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86619
--- Comment #3 from rguenther at suse dot de ---
On Mon, 23 Jul 2018, mickey.veksler at gmail dot com wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86619
>
> --- Comment #2 from Michael Veksler ---
> >> type-based alias analysis doesn'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86619
--- Comment #2 from Michael Veksler ---
>> type-based alias analysis doesn't distinguish between int[2] and int[3].
Is it just the way GCC implements type-based alias analysis,
or is it defined that way in the C and C++ standards?
I suspect
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86619
Richard Biener changed:
What|Removed |Added
Keywords||alias, missed-optimization