Zebediah Figura (@zfigura) commented about libs/vkd3d-shader/hlsl.y:
unsigned int ret = 0; bool progress;
+ LIST_FOR_EACH_ENTRY(node, &block->instrs, struct hlsl_ir_node, entry) + { + switch (node->type) + { + case HLSL_IR_CONSTANT: + case HLSL_IR_EXPR: + case HLSL_IR_SWIZZLE: + case HLSL_IR_LOAD: + continue; + default: + hlsl_error(ctx, &node->loc, VKD3D_SHADER_ERROR_HLSL_INVALID_SYNTAX, + "Expected literal expression.");
Can you please spell out the other cases instead of using DEFAULT? Not least because some brief tests suggest INDEX should also be allowed. (Interestingly, though, ternary expressions are not.) -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/256#note_37237