genxml: pack: deal with default field not being simple integers

Storing integers into enums doesn't seem to cause issues in C, but
with our builder tests written in C++ this causes warnings/errors.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4938>
This commit is contained in:
Lionel Landwerlin
2020-05-05 12:43:35 +03:00
committed by Marge Bot
parent 942d4538a4
commit 9e790fea7c
+7 -1
View File
@@ -617,7 +617,13 @@ class Parser(object):
continue
if field.default is None:
continue
default_fields.append(" .%-35s = %6d" % (field.name, field.default))
if field.is_builtin_type():
default_fields.append(" .%-35s = %6d" % (field.name, field.default))
else:
# Default values should not apply to structures
assert field.is_enum_type()
default_fields.append(" .%-35s = (enum %s) %6d" % (field.name, self.gen_prefix(safe_name(field.type)), field.default))
if default_fields:
print('#define %-40s\\' % (self.gen_prefix(name + '_header')))