X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvppinfra%2Ferror_bootstrap.h;h=8dbbc7f359de3de82bdbf1c83177508b10c3523c;hb=47d41ad62c5d6008e72d2e9c137cf8f49ca86353;hp=1cd910585748491c846cf0e511fe15cdf83f21df;hpb=a316744bc5e003d0fa4c8aff82c619b300115f02;p=vpp.git diff --git a/src/vppinfra/error_bootstrap.h b/src/vppinfra/error_bootstrap.h index 1cd91058574..8dbbc7f359d 100644 --- a/src/vppinfra/error_bootstrap.h +++ b/src/vppinfra/error_bootstrap.h @@ -79,6 +79,35 @@ do { \ } \ } while (0) +/* + * This version always generates code, and has a Coverity-specific + * version to stop Coverity complaining about + * ALWAYS_ASSERT(p != 0); p->member... + */ + +#ifndef __COVERITY__ +#define ALWAYS_ASSERT(truth) \ +do { \ + if (PREDICT_FALSE(!(truth))) \ + { \ + _clib_error (CLIB_ERROR_ABORT, 0, 0, \ + "%s:%d (%s) assertion `%s' fails", \ + __FILE__, \ + (uword) __LINE__, \ + clib_error_function, \ + # truth); \ + } \ +} while (0) +#else /* __COVERITY__ */ +#define ALWAYS_ASSERT(truth) \ +do { \ + if (PREDICT_FALSE(!(truth))) \ + { \ + abort(); \ + } \ +} while (0) +#endif /* __COVERITY */ + #if defined(__clang__) #define STATIC_ASSERT(truth,...) #else