This is the mail archive of the gas2@sourceware.cygnus.com mailing list for the gas2 project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
>
> Ruediger Helsch <rh@unifix.de> writes:
> >But the standard allows such behaviour only if no strictly
> >standard-conforming program is broken by the extension. The following
> >program is strictly conforming and should continue to run:
> >
> > #include <assert.h>
> > int optind[30000], optarg[30000];
> >
> > main()
> > {
> > int i;
> > for (i = 0; i < 30000; i++) {
> > optind[i] = 1;
> > optarg[i] = 2;
> > }
> >
> > for (i = 0; i < 30000; i++) {
> > assert(optind[i] == 1);
> > assert(optarg[i] == 2);
> > }
> > return 0;
> > }
> >
> >Try this to see whether your compiler conforms to the C standard!
> >
> FWIW - gcc-2.7.2 (using /usr/ccs/bin/ld) , Solaris 2.5
>
> gcc x.c -o x
> ld: warning: symbol `optind' has differing sizes:
> (file /var/tmp/cca006vl1.o value=0x1d4c0; file /usr/lib/libc.so value=0x4);
> /usr/lib/libc.so definition taken
> ld: warning: symbol `optarg' has differing sizes:
> (file /var/tmp/cca006vl1.o value=0x1d4c0; file /usr/lib/libc.so value=0x4);
> /usr/lib/libc.so definition taken
> pluto 5% x
> Segmentation Fault (core dumped)
>
> Identical results with SunPro cc ...
>
>
On Linux, I got
# gcc foo.c
usr/i486-linux/bin/ld: Warning: size of symbol `optarg' changed from 120000 to 4 in /usr/lib/libc.so
/usr/i486-linux/bin/ld: Warning: size of symbol `optind' changed from 120000 to 4 in /usr/lib/libc.so
# a.out
zsh: 19888 segmentation fault ./a.out
--
H.J. Lu
Innovix Technologies, Inc.
hjl@innovix.com