Hammer on snapshot cd's
Matthew Dillon
dillon at apollo.backplane.com
Tue Jul 15 14:46:49 PDT 2008
One interesting thing I've found on GCC-4 is that the callgraph analyzer
will cross procedure boundaries for all procedures in that particular
source file. It can actually detect that error is left uninitialized
in this situation:
cc -Wall x.c -c -O2
x.c: In function 'fubar2':
x.c:16: warning: 'error' is used uninitialized in this function
(edit so *valuep is set to 0)
cc -Wall x.c -c -O2
(no warning reported)
#include <stdio.h>
void
fubar1(int *valuep)
{
/* *valuep = 0; */
}
void
fubar2(void)
{
int error;
fubar1(&error);
printf("error = %d\n", error);
}
GCC-4 actually caught a bug during HAMMER development from that sort
of thing. I was impressed.
-Matt
Matthew Dillon
<dillon at backplane.com>
More information about the Users
mailing list