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