build: Add Coverity scan model

the modeling file help to avoid false positives and increase scanning
accuracy by explaining code Coverity can't see (out of tree libraries);
the model file must be uploaded by an admin to:
https://scan.coverity.com/projects/pulseaudio?tab=analysis_settings

the pa_assert_se() macro needs to be rewritten for Coverity so that
the assignment is not declared a side-effect

Signed-off-by: Peter Meerwald-Stadler <pmeerw@pmeerw.net>
This commit is contained in:
Peter Meerwald-Stadler 2017-03-06 08:15:29 +01:00
parent e368ee4875
commit 424e97a5fa
2 changed files with 27 additions and 0 deletions

View file

@ -186,6 +186,7 @@ static inline size_t PA_ALIGN(size_t l) {
/* pa_assert_se() is an assert which guarantees side effects of x,
* i.e. is never optimized away, regardless of NDEBUG or FASTPATH. */
#ifndef __COVERITY__
#define pa_assert_se(expr) \
do { \
if (PA_UNLIKELY(!(expr))) { \
@ -193,6 +194,14 @@ static inline size_t PA_ALIGN(size_t l) {
abort(); \
} \
} while (false)
#else
#define pa_assert_se(expr) \
do { \
int _unique_var = (expr); \
if (!_unique_var) \
abort(); \
} while (false)
#endif
/* Does exactly nothing */
#define pa_nop() do {} while (false)