gcc 4.3 warnings

Matthew Saltzman mjs at clemson.edu
Thu Aug 7 08:47:49 UTC 2008


On Wed, 2008-08-06 at 22:34 -0700, Skunk Worx wrote:
> Matthew Saltzman wrote:
> > On Tue, 2008-08-05 at 19:49 -0700, Skunk Worx wrote:
> >> $ gcc foo.c
> >> foo.c:1:16: warning: missing terminating " character
> >>
> >> $ cat foo.c
> >> #define DQUOTE "
> >> main() {}
> >>
> >> A few people at work have mentioned it seems unusual for a preprocessor 
> >> to complain about simple macros this way.
> >>
> >> What do others think of this?
> > 
> > A macro definition has to consist of a sequence of tokens.  A string
> > constant (sequence of characters enclosed in double quotes) is a token,
> > but the double quote by itself is not.
> > 
> > If you are trying to construct strings containing macro defs, look at
> > the stringize operator (#) and token merge operator (##)in the
> > preprocessor documentation.
> > 
> 
> Exactly. This code was written circa 1991 and the warnings came with the 
> change to Fedora 9.
> 
> The preprocessor is being used to generate html code documentation in 
> the build, including named anchors (#).
> 
> A further review of K&R, and other sources on the web, show the use of 
> the preprocessor for this kind of task is not recommended.

I imagine it would be some effort to integrate in legacy code, but if I
understand what you're trying to do, it sounds like Doxygen might do
what you want.  There are other, similar systems out there as well.
They generally use formatted comments and a separate processor to
generate documentation in various formats.

> 
> Thanks,
> John
> 
> 
-- 
                Matthew Saltzman

Clemson University Math Sciences
mjs AT clemson DOT edu
http://www.math.clemson.edu/~mjs




More information about the fedora-list mailing list