On 1/9/26 12:32 AM, Philippe Mathieu-Daudé wrote:
On 9/1/26 09:18, Markus Armbruster wrote:
Philippe Mathieu-Daudé <[email protected]> writes:

On 9/1/26 07:58, Pierrick Bouvier wrote:

[...]

See my previous answer on v1, -Wswitch is used:
Reading the thread above, the only mention I find is the 3rd commit that
precisely change definition because -Wswitch is enabled with clang.
And it's not only a clang thing, gcc has it in Wall also [1].

Yes I read that, I'd really like we use -Wswitch but IIUC we can not,
so with that in mind I don't understand your request. Is that for the
hypothetical case we can use -Wswitch in the future? Sorry I'm not
trying to be picky here, I just fail to see the problem you raised :(

We *are* using -Wswitch.

Oh... I guess I meant -Wswitch-enum then (which forces to handle the
-- meaningless in that case -- QAPI foo__MAX enum values).


Yes :)

Anyway time to stop bikeshedding and call it a day (originally I just
wanted to remove the duplicated qemu_arch_available symbol :) ).


I agree, and sorry for the discussion that has been triggered.

My original point was that a switch allows to catch missing cases, but *ONLY* if it does not include a default:. So either stick to the array, or change the switch to remove the default case. Even though I prefer the switch (without default), I don't mind if you prefer the array at this point. You had my review on first version anyway.

To see that, delete the default: case in to_json()'s outer switch (patch
appended), and compile:

      ../qobject/qjson.c: In function ‘to_json’:
      ../qobject/qjson.c:154:5: warning: enumeration value ‘QTYPE_NONE’ not 
handled in switch [-Wswitch]
        154 |     switch (qobject_type(obj)) {
            |     ^~~~~~
      ../qobject/qjson.c:154:5: warning: enumeration value ‘QTYPE__MAX’ not 
handled in switch [-Wswitch]

We run gcc -Wall, which implies -Wswitch.


Thanks Markus, that was my point indeed.

[...]


diff --git a/qobject/qjson.c b/qobject/qjson.c
index c858dafb5e..6287c93c67 100644
--- a/qobject/qjson.c
+++ b/qobject/qjson.c
@@ -213,8 +213,6 @@ static void to_json(JSONWriter *writer, const char *name,
           json_writer_bool(writer, name, qbool_get_bool(val));
           break;
       }
-    default:
-        abort();
       }
   }



Reply via email to