[PATCH vkd3d 5/8] vkd3d-shader/hlsl: Support addition for all numeric types in fold_constants().
Giovanni Mascellani
gmascellani at codeweavers.com
Thu Jan 20 02:47:54 CST 2022
Hi,
Il 19/01/22 19:30, Francisco Casas ha scritto:
> That's clever, but maybe too clever!
> While it should work, I am inclined to leave it as it is, for readability and
> for having the peace of mind that it won't surprise us in the future.
>
> We would have to remember to keep hlsl_constant_value as a union and, for instance,
> I have the same concern as this person:
> https://stackoverflow.com/questions/11373203/accessing-inactive-union-member-and-undefined-behavior
> and the answers don't seem conclusive.
I agree with Zebediah, in our case it's ok to do that.
More specifically, notice that that question was about C++, not about C,
and often the two languages tend to differ in this kind of things.
Answers are both about C and C++, but at least for C this is not
undefined behavior (see for example the first part of
https://stackoverflow.com/a/11996970/807307). It is still
implementation-defined, but here and in many other places we assume that
we use GCC (or a compatible thing), which defines it the way we like:
https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Structures-unions-enumerations-and-bit_002dfields-implementation.html#Structures-unions-enumerations-and-bit_002dfields-implementation
Giovanni.
More information about the wine-devel
mailing list