Zebediah Figura (@zfigura) commented about libs/vkd3d-shader/hlsl.y:
- if (!(instr = hlsl_new_if(ctx, condition, $5.then_block, $5.else_block, &@1))) + for (i = 0; i < attributes->count; ++i) { - destroy_block($5.then_block); - destroy_block($5.else_block); + const struct hlsl_attribute *attr = attributes->attrs[i]; + + if (!strcmp(attr->name, "branch") + || !strcmp(attr->name, "flatten")) + { + hlsl_fixme(ctx, &@1, "Unhandled attribute '%s'.", attr->name); + } + else + { + hlsl_warning(ctx, &@1, VKD3D_SHADER_ERROR_HLSL_NOT_IMPLEMENTED, "Unrecognized attribute '%s'.", attr->name);
I missed this before when it came up for loops, but I think we need to invent a new constant for this; VKD3D_SHADER_ERROR_HLSL_NOT_IMPLEMENTED is an error ID, not a warning ID. -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/303#note_42106