Open
Description
libarchive and icecast have errors like:
fserve.c:175:19: error (parameter_incompatible): passing '_Array_ptr<struct pollfd>' to parameter of incompatible type 'struct pollfd *'
else if (poll(ufds, fserve_clients, 200) > 0)
^~~~
which call an external library (in this case sys/poll.h
) with unchecked parameters, but either allow the argument to be checked, or don't add the cast. My oversimplified test shows 3c behaving properly:
#include <sys/poll.h>
// _Ptr<struct pollfd> f = 0; // cast added to poll
struct pollfd *f = 0; // doesn't convert because of poll
void test() {
poll(f,2,200);
}
So the benchmark examples must be doing something more complex here.