llvm-project
b9d41328 - [clang][CFG] Fix assertion failure in checkIncorrectLogicOperator (#142897)

Commit
113 days ago
[clang][CFG] Fix assertion failure in checkIncorrectLogicOperator (#142897) `checkIncorrectLogicOperator` checks if an expression, for example `x != 0 || x != 1.0`, is always true or false by comparing the two literals `0` and `1.0`. But in case `x` is a 16-bit float, the two literals have distinct types---16-bit float and double, respectively. Directly comparing `APValue`s extracted from the two literals results in an assertion failure because of their distinct types. This commit fixes the issue by doing a conversion from the "smaller" one to the "bigger" one. The two literals must be compatible because both of them are comparing with `x`. rdar://152456316
Author
Parents
Loading