Marc-André Lureau <[email protected]> writes:
> The C standard has the initial value at 0 and the subsequent values
> incremented by 1. No need to set this explicitely.
>
> This will prevent from artificial "gaps" when compiling out some enum
> values and having unnecessarily large MAX values & enums arrays.
Yes, but it also risks entertaining mishaps like compiling this one
typedef enum Color {
COLOR_WHITE,
#if defined(NEED_CPU_H)
#if defined(TARGET_S390X)
COLOR_BLUE,
#endif /* defined(TARGET_S390X) */
#endif /* defined(NEED_CPU_H) */
COLOR_BLACK,
} Color;
in s390x-code (COLOR_BLACK = 2) and in target-independent code
(COLOR_BLACK = 1), then linking the two together.
> Signed-off-by: Marc-André Lureau <[email protected]>
> ---
> scripts/qapi.py | 7 ++-----
> 1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/scripts/qapi.py b/scripts/qapi.py
> index 52099332f1..9d075440d3 100644
> --- a/scripts/qapi.py
> +++ b/scripts/qapi.py
> @@ -1979,14 +1979,11 @@ typedef enum %(c_name)s {
> ''',
> c_name=c_name(name))
>
> - i = 0
> for value in enum_values:
> ret += mcgen('''
> - %(c_enum)s = %(i)d,
> + %(c_enum)s,
> ''',
> - c_enum=c_enum_const(name, value, prefix),
> - i=i)
> - i += 1
> + c_enum=c_enum_const(name, value, prefix))
>
> ret += mcgen('''
> } %(c_name)s;