Canonically identical types are allowed in compound expressions in C
We did not have a catch-all for when the two operand types are identical after canonicalization. Instead, we handled that on a case by case basis. Thus, we would diagnose code like: ``` mat4 test(int a) { typedef float mat4 __attribute((matrix_type(4, 4))); mat4 transform; return (a > 0) ? transform : transform; } ``` This simplifies the logic and will be more forwards compatible with other extended datatypes. Fixes https://github.com/llvm/llvm-project/issues/69008
Loading
Please sign in to comment