Summary: `Typ.equivalent` relates types that denote the same sets of values in the semantic model, such as pointers and integers of the appropriate size. This diff strengthens the treatment of casts between such types in the first-order solver by translating `(s)(t)e` to `e` for equivalent types `s` and `t`. These casts are usually simplified out of the bitcode produced by clang. However, code using `_Atomic(...)` leads to `load atomic` llvm instructions that, for some reason, cast pointers to i64 and back. Reviewed By: ngorogiannis Differential Revision: D27564881 fbshipit-source-id: 6138eb4f1master
parent
6b32a003df
commit
4b700b37b5
Loading…
Reference in new issue