This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Serious code generation/optimisation bug (I think)
On Tue, Jan 27, 2009 at 11:29 AM, Paolo Bonzini <bonzini@gnu.org> wrote:
>
>>> However, -fno-delete-null-pointer-checks will do.
>>
>> Not for PTA though ;)
>
> Care to expand?
PTA tracks points-to-NULL separately (as pointing to "nothing"). See
/* x = integer is all glommed to a single variable, which doesn't
point to anything by itself. That is, of course, unless it is an
integer constant being treated as a pointer, in which case, we
will return that this is really the addressof anything. This
happens below, since it will fall into the default case. The only
case we know something about an integer treated like a pointer is
when it is the NULL pointer, and then we just say it points to
NULL. */
if (TREE_CODE (t) == INTEGER_CST
&& integer_zerop (t))
{
temp.var = nothing_id;
temp.type = ADDRESSOF;
temp.offset = 0;
VEC_safe_push (ce_s, heap, *results, &temp);
return;
}
this probably should be conditional on -fdelete-null-pointer-checks.
Otherwise *NULL and *anything won't alias.
Richard.
> Paolo
>