flash1729 wrote:

> [!NOTE]
> Stacked on #212768 (the first commit in this PR); will rebase to a single 
> commit once that lands.

Some context on validation and the in-tree changes that ride along:

**False positives**: The known `_Atomic` false positive in 
`hasUniqueObjectRepresentations` is being fixed by #212768, which this PR 
depends on. The predicate's remaining unhandled types (vectors, `_Complex`, 
some ObjC and OpenCL types) conservatively report non-unique. That's the same 
behavior the tidy check has shipped since 2021, and none of these types show up 
in memcmp'd structs anywhere in the monorepo.

**In-tree fallout**: The library code warning flags is libc++'s atomics 
implementation, where [atomics.wait] requires comparing value representations, 
so the memcmp is intentional. Those sites now cast to `const void*`, which is 
what the fixit suggests. Four libc++ tests that check object representations 
directly (`bit_cast.pass.cpp` and the atomic padding tests) suppress the 
warning with a `__has_warning`-guarded pragma, so configurations that test 
against older compilers are unaffected.

https://github.com/llvm/llvm-project/pull/214218
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to