Martin Storsjö : vkd3d-shader/spirv: Fix the signature of vkd3d_spirv_build_op_type_image.
Alexandre Julliard
julliard at winehq.org
Mon Aug 15 15:20:02 CDT 2022
Module: vkd3d
Branch: master
Commit: 1c61b20616dad50fd33d3acd3d63991767c87864
URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/1c61b20616dad50fd33d3acd3d63991767c87864
Author: Martin Storsjö <martin at martin.st>
Date: Mon Aug 15 13:08:14 2022 +0300
vkd3d-shader/spirv: Fix the signature of vkd3d_spirv_build_op_type_image.
Don't assume that enums and uint32_t parameters are identical. Clang
16 changes the diagonstic for incompatible function pointer types
from a warning into an error by default.
This fixes the following error, when built (for aarch64, but probably
also for other architectures) in MSVC mode:
../src/libs/vkd3d/libs/vkd3d-shader/spirv.c:1083:13: error: incompatible function pointer types passing 'uint32_t (struct vkd3d_spirv_builder *, uint32_t, SpvDim, uint32_t, uint32_t, uint32_t, uint32_t, SpvImageFormat)' (aka 'unsigned int (struct vkd3d_spirv_builder *, unsigned int, enum SpvDim_, unsigned int, unsigned int, unsigned int, unsigned int, enum SpvImageFormat_)') to parameter of type 'vkd3d_spirv_build7_pfn' (aka 'unsigned int (*)(struct vkd3d_spirv_builder *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int)') [-Wincompatible-function-pointer-types]
vkd3d_spirv_build_op_type_image);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/libs/vkd3d/libs/vkd3d-shader/spirv.c:612:68: note: passing argument to parameter 'build_pfn' here
SpvOp op, const uint32_t *operands, vkd3d_spirv_build7_pfn build_pfn)
^
Signed-off-by: Martin Storsjö <martin at martin.st>
---
libs/vkd3d-shader/spirv.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c
index a3ad02aa..04dd133f 100644
--- a/libs/vkd3d-shader/spirv.c
+++ b/libs/vkd3d-shader/spirv.c
@@ -1066,8 +1066,8 @@ static uint32_t vkd3d_spirv_get_op_type_sampler(struct vkd3d_spirv_builder *buil
/* Access qualifiers are not supported. */
static uint32_t vkd3d_spirv_build_op_type_image(struct vkd3d_spirv_builder *builder,
- uint32_t sampled_type_id, SpvDim dim, uint32_t depth, uint32_t arrayed,
- uint32_t ms, uint32_t sampled, SpvImageFormat format)
+ uint32_t sampled_type_id, uint32_t dim, uint32_t depth, uint32_t arrayed,
+ uint32_t ms, uint32_t sampled, uint32_t format)
{
uint32_t operands[] = {sampled_type_id, dim, depth, arrayed, ms, sampled, format};
return vkd3d_spirv_build_op_rv(builder, &builder->global_stream,
More information about the wine-cvs
mailing list