[PATCH] debuginfod: Fix implicit conversion from 'CURLcode' to 'CURLMcode'

Mark Wielaard mark@klomp.org
Wed Dec 4 01:43:00 GMT 2019


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 <mark@klomp.org>
---
 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  <mark@klomp.org>
+
+	* debuginfod-client.c (debuginfod_query_server): Use separate
+	local variables for CURLcode curl_res and CURLMcode curlm_res.
+
 2019-11-26  Mark Wielaard  <mark@klomp.org>
 
 	* 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



More information about the Elfutils-devel mailing list