Date: 17 Jan 1997 15:17:09 -0800 From: jdp@polstra.com (John Polstra) To: freebsd-current@freebsd.org Subject: Re: gcc compiler question Message-ID: <5bp19l$a9r@austin.polstra.com> References: <32DFDDF6.41C67EA6@mindspring.com>
next in thread | previous in thread | raw e-mail | index | archive | help
In article <32DFDDF6.41C67EA6@mindspring.com>, Ron Bolin <rlb@mindspring.com> wrote: > /* > > Under Solaris 2.X this compiles with the proper macro substitution > on > savepS = savead-lcl0; > to > LSave [ 6 ] = savead- ( Origin [ 5 ] ); > > But gcc does not > */ > #define savepS LSave[NAreas] > #define NAreas 6 /* number of work areas/stacks */ > #define LocalId 5 > typedef unsigned **PTR; > static PTR *savead, Origin[100]; > #define lcl0 (Origin[LocalId]) > unsigned LSave[100]; > main() > { > > savepS = savead-lcl0; > } Eh? It works fine over here: freebie$ cat foo.c /* Under Solaris 2.X this compiles with the proper macro substitution on savepS = savead-lcl0; to LSave [ 6 ] = savead- ( Origin [ 5 ] ); But gcc does not */ #define savepS LSave[NAreas] #define NAreas 6 /* number of work areas/stacks */ #define LocalId 5 typedef unsigned **PTR; static PTR *savead, Origin[100]; #define lcl0 (Origin[LocalId]) unsigned LSave[100]; main() { savepS = savead-lcl0; } freebie$ cc -E foo.c # 1 "foo.c" typedef unsigned **PTR; static PTR *savead, Origin[100]; unsigned LSave[100]; main() { LSave[6 ] = savead- (Origin[5 ]) ; } John -- John Polstra jdp@polstra.com John D. Polstra & Co., Inc. Seattle, Washington USA "Self-knowledge is always bad news." -- John Barth
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5bp19l$a9r>