Issue 137473
Summary New __ptrauth types are wrongly reported as __is_trivially_equality_comparable
Labels new issue
Assignees
Reporter halbi2
    ```
struct S1 {
  int * __ptrauth(1,1,50) p_;
  bool operator==(const S1&) const = default;
};
static_assert(!__is_trivially_equality_comparable(S1));
```
This test case fails. So libc++ `std::equal` will use `memcmp` to compare objects of type `S1` and will wrongly report that they are not-equal when they are supposed to be equal. This is a wrong-codegen bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to