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