qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 2/2] qapi: Generate enum count as definition in gen_enum_look


From: Richard Henderson
Subject: Re: [PATCH 2/2] qapi: Generate enum count as definition in gen_enum_lookup()
Date: Fri, 24 Feb 2023 11:16:55 -1000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1

On 2/24/23 05:54, Philippe Mathieu-Daudé wrote:
QAPI's gen_enum() generates QAPI enum values and the number
of this values (as foo__MAX).
The number of entries in an enum type is not part of the
enumerated values, but we generate it as such. See for
example:

   typedef enum OnOffAuto {
       ON_OFF_AUTO_AUTO,
       ON_OFF_AUTO_ON,
       ON_OFF_AUTO_OFF,
       ON_OFF_AUTO__MAX,        <---------
   } OnOffAuto;

Instead of declaring the enum count as the last enumerated
value, #define it, so it is not part of the enum. The previous
example becomes:

   typedef enum OnOffAuto {
       ON_OFF_AUTO_AUTO,
       ON_OFF_AUTO_ON,
       ON_OFF_AUTO_OFF,
   #define ON_OFF_AUTO__MAX 3   <---------
   } OnOffAuto;

Since Clang enables the -Wswitch warning by default [*], remove all
pointless foo__MAX cases in switch statement, in order to avoid:

  audio/audio.c:2231:10: error: case value not in enumerated type 'AudioFormat' 
(aka 'enum AudioFormat') [-Wswitch]
     case AUDIO_FORMAT__MAX:
          ^
  ui/input.c:233:14: error: case value not in enumerated type 'KeyValueKind' 
(aka 'enum KeyValueKind') [-Wswitch]
         case KEY_VALUE_KIND__MAX:
              ^
  ...

[*]https://clang.llvm.org/docs/DiagnosticsReference.html#wswitch
Signed-off-by: Philippe Mathieu-Daudé<philmd@linaro.org>
---

Yay!

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]