Rene Ladan wrote: > Hi, > > I'm getting runtime errors when executing the following program and > declaring one of the arrays: > > ---------------- > > #include <stdio.h> > > int main(void) { > /* int a[4] = { 0, 1, 2, 3 }; enable this line to get a buserror */ > int *i; > /* int b[4] = { 0, 1, 2, 3 }; enable this line to get a segfault */ > for (*i = 0; *i < 4; (*i)++) > printf("%p %i\n", i, *i); > return(0); > } > > ---------------- > > I'm running system's gcc on 5.2.1-release: > > Using built-in specs. > Configured with: FreeBSD/i386 system compiler > Thread model: posix > gcc version 3.3.3 [FreeBSD] 20031106 > > I have not yet mailed to the gcc developers, as the system gcc is > somewhat patched. Neither have I filed a PR yet. $ gcc -o test2 -W -O test2.c test2.c: In function `main': test2.c:6: warning: `i' might be used uninitialized in this function Some warnings doesn't occur without using '-O', so the recommented compile may be 'gcc -W -Wall -O ...' Furthermore it's never wrong using lint(1): $ lint test2.c test2.c: test2.c(8): warning: i may be used before set [158] stdio.h(76): warning: struct __sFILEX never defined [233] lint: cannot find llib-lc.ln Lint pass2: printf used( test2.c(9) ), but not defined Best regards, JensReceived on Fri Apr 02 2004 - 04:17:28 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:49 UTC