From 821c66e50cdaf89ca3e0282967fa17c6fd666308 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Pi=C3=B1eiro?= Date: Wed, 12 Jan 2022 23:01:46 +0100 Subject: [PATCH] vulkan: return default string for undefined enum Instead of a unreachable. This would avoid an assert on debug builds that uses vkfoo_to_str to print structure types. This will become more common as some tests will start to use VK_STRUCTURE_TYPE_MAX_ENUM to mark structures from unsupported extensions more often. v2 (Jason): * Include enum name on the default message * Handle MAX_ENUM as a special case v3 (Jason): * vk_ObjectType_to_ObjectName don't need to use ${enum.name} Reviewed-by: Jason Ekstrand --- src/vulkan/util/gen_enum_to_str.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/vulkan/util/gen_enum_to_str.py b/src/vulkan/util/gen_enum_to_str.py index 1f05aa34f93..1c3ae327a71 100644 --- a/src/vulkan/util/gen_enum_to_str.py +++ b/src/vulkan/util/gen_enum_to_str.py @@ -77,8 +77,9 @@ C_TEMPLATE = Template(textwrap.dedent(u"""\ case ${v}: return "${enum.values[v]}"; % endfor + case ${enum.max_enum_name}: return "${enum.max_enum_name}"; default: - unreachable("Undefined enum value."); + return "Unknown ${enum.name} value."; } } @@ -115,7 +116,7 @@ C_TEMPLATE = Template(textwrap.dedent(u"""\ return "${object_types[0].enum_to_name[object_type]}"; % endfor default: - unreachable("Undefined enum value."); + return "Unknown VkObjectType value."; } } """)) @@ -245,12 +246,24 @@ class VkExtension(object): def CamelCase_to_SHOUT_CASE(s): return (s[:1] + re.sub(r'(?