GCC10 warns when converting the value of one enum type into another:
debuginfod-client.c:530:24: error: implicit conversion from ‘CURLcode’
to ‘CURLMcode’ [-Werror=enum-conversion]
530 | curl_res = curl_easy_getinfo(target_handle,
|^
libcurl has different error code enums. The "easy" interfaces return
a CURLcode error. The "multi" interface functions return a CURLMcode.
Signed-off-by: Mark Wielaard
---
debuginfod/ChangeLog | 5 +
debuginfod/debuginfod-client.c | 9 -
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog
index 8aa29443..10b6bfed 100644
--- a/debuginfod/ChangeLog
+++ b/debuginfod/ChangeLog
@@ -1,3 +1,8 @@
+2019-12-03 Mark Wielaard
+
+ * debuginfod-client.c (debuginfod_query_server): Use separate
+ local variables for CURLcode curl_res and CURLMcode curlm_res.
+
2019-11-26 Mark Wielaard
* Makefile.am (BUILD_STATIC): Add needed libraries for libdw and
diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c
index 6e62b86c..302ea2dc 100644
--- a/debuginfod/debuginfod-client.c
+++ b/debuginfod/debuginfod-client.c
@@ -509,8 +509,6 @@ debuginfod_query_server (debuginfod_client *c,
long loops = 0;
do
{
- CURLMcode curl_res;
-
if (c->progressfn) /* inform/check progress callback */
{
loops ++;
@@ -518,6 +516,7 @@ debuginfod_query_server (debuginfod_client *c,
long pb = 0;
if (target_handle) /* we've committed to a server; report its
download progress */
{
+ CURLcode curl_res;
#ifdef CURLINFO_SIZE_DOWNLOAD_T
curl_off_t dl;
curl_res = curl_easy_getinfo(target_handle,
@@ -564,10 +563,10 @@ debuginfod_query_server (debuginfod_client *c,
if (data[i].handle != target_handle)
curl_multi_remove_handle(curlm, data[i].handle);
- curl_res = curl_multi_perform(curlm, &still_running);
- if (curl_res != CURLM_OK)
+ CURLMcode curlm_res = curl_multi_perform(curlm, &still_running);
+ if (curlm_res != CURLM_OK)
{
- switch (curl_res)
+ switch (curlm_res)
{
case CURLM_CALL_MULTI_PERFORM: continue;
case CURLM_OUT_OF_MEMORY: rc = -ENOMEM; break;
--
2.18.1