On Sat, 12 Feb 2022, Andrea Monaco via Gcc wrote:
#include <curl/curl.h>
int
main (void)
{
float a;
curl_easy_setopt (NULL, 0, (void *) a);
}
with "gcc -c bug.c" gives
bug.c: In function ‘main’:
bug.c:15:3: error: cannot convert to a pointer type
curl_easy_setopt (NULL, 0, (void *) a);
^~~~~~~~~~~~~~~~
bug.c:15:3: error: cannot convert to a pointer type
bug.c:15:3: error: cannot convert to a pointer type
bug.c:15:3: error: cannot convert to a pointer type
[...]
bug.c:15:3: error: cannot convert to a pointer type
In file included from /usr/include/x86_64-linux-gnu/curl/curl.h:2826,
from bug.c:1:
bug.c:15:3: error: cannot convert to a pointer type
curl_easy_setopt (NULL, 0, (void *) a);
^~~~~~~~~~~~~~~~
bug.c:15:3: error: cannot convert to a pointer type
curl_easy_setopt (NULL, 0, (void *) a);
^~~~~~~~~~~~~~~~
bug.c:15:3: error: cannot convert to a pointer type
curl_easy_setopt (NULL, 0, (void *) a);
^~~~~~~~~~~~~~~~
The error message is correct, but is repeated tens of times.
The function is declared this way in curl.h
CURL_EXTERN CURLcode curl_easy_setopt(CURL *curl, CURLoption option,
...);
No, curl_easy_setopt is a macro. If you look at the preprocessed code, you
get many statements doing the same wrong operation, and one warning for
each of them.
(wrong list, should be gcc-help, or an issue on bugzilla)
--
Marc Glisse