[PATCH vkd3d 5/8] vkd3d-shader/hlsl: Support addition for all numeric types in fold_constants().

Francisco Casas fcasas at codeweavers.com
Thu Jan 20 07:37:19 CST 2022


January 20, 2022 5:48 AM, "Giovanni Mascellani" <gmascellani at codeweavers.com> wrote:

> 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-imple
> entation.html#Structures-unions-enumerations-and-bit_002dfields-implementation
> 
> Giovanni.

Roger that.
In that case I will also do it for multiplication and negation.

Francisco.



More information about the wine-devel mailing list