From 9e790fea7c178141b5bb1b82ab6bcf4034bfdb18 Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Tue, 5 May 2020 12:43:35 +0300 Subject: [PATCH] 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 Reviewed-by: Jordan Justen Part-of: --- src/intel/genxml/gen_pack_header.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/intel/genxml/gen_pack_header.py b/src/intel/genxml/gen_pack_header.py index 0d95c4e9dd2..feeaed01e09 100644 --- a/src/intel/genxml/gen_pack_header.py +++ b/src/intel/genxml/gen_pack_header.py @@ -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'))) -- 2.30.2