This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Question about -Wnonnull


Hi

I'm testing __attribute__((nonnull)) and -Wnonnull.
It seems like it does warn before constant/vrp propagations.

Example code does not warn for first 2 calls to f(NULL),
but warns for last 2 calls to f(NULL).

Couldn't this checker be improved/extended to do checks also after some basic optimizations like constant propagation pass?
(This could improve possibilities for static code analysis in compile time.)


#include <stdio.h>

static void f(const char *s) __attribute__((nonnull(1)));

int main(void)
{ 
  const char *p = NULL;

  f(p);                  /* No warning? */
  f(p = NULL);           /* No warning? */

  f((const char*)NULL);  /* gives warning */
  f(NULL);               /* gives warning */
  return 0;
}

static void f(const char *s)
{
  printf("%s",s);
}


Thanks & Best Regards
Fredrik Hederstierna


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]