https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93156

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Note the best way to implement null_ptr really (without the need for the
attribute is the following):

/* Return NULL.
   Usual compilers are not able to infer something about the return value.  */
static void *
null_ptr (void)
{
  typedef void *voidptr;
  volatile voidptr n = 0;
  return n;
}

NOTE also:
  unsigned int y = x * x;
  if (y & 2)

Is always false even for overflow case so even then it will return null always
and if it gets inlined, then GCC is not assuming anything about the return
value.

Reply via email to