fold_builtin_memcpy cannot optimize <retval>?
Andrew Pinski
pinskia@physics.uc.edu
Fri Jan 21 20:51:00 GMT 2005
On Jan 21, 2005, at 2:37 PM, Mark Mitchell wrote:
> I'm not sure. I seemed to believe in that thread that they could
> never be NULL, but I'm not sure if everyone agreed, and I see that we
> suggested a non-NULL tag on objects somewhere. So, in that case,
> there may be no difference at all to the middle-end. In any case, I
> think that it would make sense for us to allow a REFERENCE_TYPE
> anywhere we allow a POINTER_TYPE.
Isn't this valid C++ then (or is it just undefined):
int &f(int *p)
{
return *p;
}
extern "C" void abort (void);
int main()
{
int &a = f(0);
int *a1 = &a;
if (a1 != 0)
abort ();
return 0;
}
If this is valid then REFERENCE_TYPE can be NULL even
in C++ as shown in the above testcase. Yes this testcase is
something I just made up (and tested) but it just shows that
REFERENCE_TYPEs in C++ can be NULL.
-- Pinski
More information about the Gcc
mailing list