Re: [hwloc-devel] [hwloc-svn] svn:hwloc r1986
Jeff Squyres, le Wed 21 Apr 2010 09:04:11 -0400, a écrit : > On Apr 21, 2010, at 8:47 AM, Bert Wesarg wrote: > > > From that page: > > > > If you are writing a header file that must work when included in > > ISO C programs, write __typeof__ instead of typeof. See Alternate > > Keywords. > > > > > Modified: trunk/src/topology.c > > > > That does not look like a header for me. > > Right, but gcc complained when used with -std=c99 unless it was __typeof__. > I did not check to see if icc or pgcc accepted typeof. I read that text to > be "if you want portable code, use __typeof__ instead of typeof." Err, putting underscores doesn't magically makes something recognized by compilers :) The reason why the documentation tells about headers and not .c files is that while you control which standard your .c files are compiled under (e.g. -std=c99), you do not control which standard your .h files will be compiled under by other applications, that's why you need a way to tell a compiler "don't complain about these extensions I know you support but warn about because you were given -std=c99). Here, typeof is not c99, and that's why gcc complains when given -std=c99 (instead of the default -std=gnu99). Putting underscores just hides the bug... Samuel
Re: [hwloc-devel] [hwloc-svn] svn:hwloc r1986
On Apr 21, 2010, at 8:47 AM, Bert Wesarg wrote: > From that page: > > If you are writing a header file that must work when included in > ISO C programs, write __typeof__ instead of typeof. See Alternate > Keywords. > > > Modified: trunk/src/topology.c > > That does not look like a header for me. Right, but gcc complained when used with -std=c99 unless it was __typeof__. I did not check to see if icc or pgcc accepted typeof. I read that text to be "if you want portable code, use __typeof__ instead of typeof." -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/
Re: [hwloc-devel] [hwloc-svn] svn:hwloc r1986
On Wed, Apr 21, 2010 at 14:27,wrote: > Author: jsquyres > Date: 2010-04-21 08:27:33 EDT (Wed, 21 Apr 2010) > New Revision: 1986 > URL: https://svn.open-mpi.org/trac/hwloc/changeset/1986 > > Log: > Refs #18. Fix some compiler warnings: > > * Note the change of typeof to !__typeof__ -- I got that from > http://gcc.gnu.org/onlinedocs/gcc/Typeof.html. >From that page: If you are writing a header file that must work when included in ISO C programs, write __typeof__ instead of typeof. See Alternate Keywords. > Modified: trunk/src/topology.c > == > --- trunk/src/topology.c (original) > +++ trunk/src/topology.c 2010-04-21 08:27:33 EDT (Wed, 21 Apr 2010) > @@ -649,7 +649,7 @@ > */ > > #define merge_index(new, old, field) \ > - if ((old)->field == (typeof((old)->field)) -1) \ > + if ((old)->field == (__typeof__((old)->field)) -1) \ That does not look like a header for me. Bert