On Wed, Apr 14, 2010 at 06:02:30PM +0200, Jim Meyering wrote: > From: Jim Meyering <meyering@xxxxxxxxxx> > > Among some here, there is a strong aversion to use of "assert", yet > some others think it is essential (when applied judiciously) even -- > perhaps "especially" -- at the heart of libraries and core hypervisor- > related code. > Here is a compromise that lets us make assertions about the code (e.g., > to tell static analyzers about invariants) without even a hint of risk > of an abort. > * src/internal.h [STATIC_ANALYSIS]: Include <assert.h>. > (sa_assert): Define. A no-op most of the time, but equivalent > to classical assert when STATIC_ANALYSIS is nonzero. > --- > src/internal.h | 7 +++++++ > 1 files changed, 7 insertions(+), 0 deletions(-) > > diff --git a/src/internal.h b/src/internal.h > index 2e73210..4be17d8 100644 > --- a/src/internal.h > +++ b/src/internal.h > @@ -9,6 +9,13 @@ > # include <limits.h> > # include <verify.h> > > +# if STATIC_ANALYSIS > +# include <assert.h> > +# define sa_assert(expr) assert (expr) > +# else > +# define sa_assert(expr) /* empty */ > +# endif > + > # ifdef HAVE_SYS_SYSLIMITS_H > # include <sys/syslimits.h> > # endif ACK Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list