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 So Clang defines STATIC_ANALYSIS ? IMHO that's just fine, ACK ! Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list