diff options
author | Marcel Raad <raad@teamviewer.com> | 2017-06-19 23:42:05 +0200 |
---|---|---|
committer | Marcel Raad <Marcel.Raad@teamviewer.com> | 2017-06-21 12:24:22 +0200 |
commit | ec512074cc0444534a383834d27654307f4ebe23 (patch) | |
tree | 31946e3fae86f443eef85b230301d9f2bd8d7a66 /include/curl | |
parent | f541f7b94a4b68c414394ac56fd66a0ed0a19e6d (diff) | |
download | curl-ec512074cc0444534a383834d27654307f4ebe23.tar.gz |
typecheck-gcc: add support for CURLINFO_OFF_T
typecheck-gcc expected curl_socket_t instead of curl_off_t arguments
for CURLINFO_OFF_T. Detected by test1521, unfortunately only when run
locally.
Closes https://github.com/curl/curl/pull/1592
Diffstat (limited to 'include/curl')
-rw-r--r-- | include/curl/typecheck-gcc.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/include/curl/typecheck-gcc.h b/include/curl/typecheck-gcc.h index 10b5de2ab..74548241b 100644 --- a/include/curl/typecheck-gcc.h +++ b/include/curl/typecheck-gcc.h @@ -110,7 +110,7 @@ __extension__ ({ \ /* FIXME: don't allow const pointers */ #define curl_easy_getinfo(handle, info, arg) \ __extension__ ({ \ - __typeof__(info) _curl_info = info; \ + __typeof__(info) _curl_info = info; \ if(__builtin_constant_p(_curl_info)) { \ if(_curl_is_string_info(_curl_info)) \ if(!_curl_is_arr((arg), char *)) \ @@ -130,9 +130,12 @@ __extension__ ({ \ if(_curl_is_certinfo_info(_curl_info)) \ if(!_curl_is_arr((arg), struct curl_certinfo *)) \ _curl_easy_getinfo_err_curl_certinfo(); \ - if(_curl_is_socket_info(_curl_info)) \ + if(_curl_is_socket_info(_curl_info)) \ if(!_curl_is_arr((arg), curl_socket_t)) \ _curl_easy_getinfo_err_curl_socket(); \ + if(_curl_is_off_t_info(_curl_info)) \ + if(!_curl_is_arr((arg), curl_off_t)) \ + _curl_easy_getinfo_err_curl_off_t(); \ } \ curl_easy_getinfo(handle, _curl_info, arg); \ }) @@ -218,6 +221,8 @@ _CURL_WARNING(_curl_easy_getinfo_err_curl_certinfo, "'struct curl_certinfo *' for this info") _CURL_WARNING(_curl_easy_getinfo_err_curl_socket, "curl_easy_getinfo expects a pointer to curl_socket_t for this info") +_CURL_WARNING(_curl_easy_getinfo_err_curl_off_t, + "curl_easy_getinfo expects a pointer to curl_off_t for this info") /* groups of curl_easy_setops options that take the same type of argument */ @@ -391,7 +396,11 @@ _CURL_WARNING(_curl_easy_getinfo_err_curl_socket, /* true if info expects a pointer to struct curl_socket_t argument */ #define _curl_is_socket_info(info) \ - (CURLINFO_SOCKET < (info)) + (CURLINFO_SOCKET < (info) && (info) < CURLINFO_OFF_T) + +/* true if info expects a pointer to curl_off_t argument */ +#define _curl_is_off_t_info(info) \ + (CURLINFO_OFF_T < (info)) /* typecheck helpers -- check whether given expression has requested type*/ |