Do C's type based aliasing rules mean the following?
void foo (int *ip, float *fp)
{
if (ip == fp)
this_is_unreachable ()
}
I vaguely remember some discussion about this, but can't remember the
conclusion. Presumably IP & FP could point to members of the same union.
(f77 has code like the above, where the condition may or may not be false.)
Fortran rules don't allow arguments (which are references in g77) to
overlap at all, so in this case, g77 would just assume (without
checking) that *ip and *fp wouldn't overlap.