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é<phi...@linaro.org>
---

Yay!

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

r~

Reply via email to