Cppcheck gets confused by:
void bar(void *arg) {
foo *data = arg;
REQUIRE(source != NULL);
REQUIRE(data->member != NULL);
}
and for consistency the DbC check needs to be changed to
void bar(void *arg) {
foo *data = arg;
REQUIRE(data != NULL);
REQUIRE(data->member != NULL);
}