Preprocessor symbol style

Mark Kettenis kettenis@chello.nl
Fri Aug 13 22:02:00 GMT 2004


IIRC this has been discussed before, hopefully people forgive me
raising the issue again.

Currently in GDB we use the following style for preprocessor stuff:

#ifdef HAVE_FOO_H
#include <foo.h>
#else
#ifdef HAVE_BAR_H
#include <bar.h>
#ifndef HAVE_FOOBAR
#define FOOBAR FOO(BAR)
#endif
#endif
#endif

I think this style has a serious problem; it's rather difficult to see
how the #if's and #endif's balance.  Personally I've been bitten by
this more than once.

Many GNU projects (GCC, glibc, autoconf, coreutils) use a somewhat
different style:

#ifdef HAVE_FOO_H
# include <foo.h>
#else
# ifdef HAVE_BAR_H
#  include <bar.h>
#  ifndef HAVE_FOOBAR
#   define FOOBAR FOO(BAR)
#  endif
# endif
#endif

This makes it much easier to see how the #if's and #endif's balance.

Can we please adopt the second style for GDB?  We can convert things
incrementally, or if we want to do it all at once, I'll volunteer to
provide the mamoth patch.

Mark



More information about the Gdb mailing list