41 coverity defects on prob_distr.c
The DIST_BASE_TYPED
macro in prob_distr.h
is causing us 41 new coverity defects. I don't think it's wrong but it's quite hacky so we should fix it in some way.
*** CID 1444029: Incorrect expression (SIZEOF_MISMATCH)
/src/lib/math/prob_distr.c: 1511 in log_logistic_sf()
1505 return cdf_log_logistic(x, LL->alpha, LL->beta);
1506 }
1507
1508 static double
1509 log_logistic_sf(const struct dist *dist, double x)
1510 {
>>> CID 1444029: Incorrect expression (SIZEOF_MISMATCH)
>>> Adding "0UL /* 0 * sizeof (dist - &((struct log_logistic const *)((char const *)dist - __builtin_offsetof()))->base) */" to pointer
>>> "(struct log_logistic const *)((char const *)dist - 0UL)" of type "struct log_logistic const *" is suspicious because adding an integral value
>>> to this pointer automatically scales that value by the size, 24 bytes, of the pointed-to type, "struct log_logistic const". Most likely, the
>>> multiplication by "sizeof (dist - &((struct log_logistic const *)((char const *)dist - 0UL))->base)" in this expression is extraneous and
>>> should be eliminated.
1511 const struct log_logistic *LL = const_container_of(dist,
1512 struct log_logistic, base);
1513
1514 return sf_log_logistic(x, LL->alpha, LL->beta);
1515 }
1516