// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fsyntax-only -verify -std=c++2a %s // expected-no-diagnostics struct Empty {}; struct A { [[no_unique_address]] Empty e; char x; }; static_assert(__has_unique_object_representations(A)); struct B { char x; [[no_unique_address]] Empty e; }; static_assert(__has_unique_object_representations(B)); struct C { char x; [[no_unique_address]] Empty e1; [[no_unique_address]] Empty e2; }; static_assert(!__has_unique_object_representations(C)); namespace TailPaddingReuse { struct A { private: int a; public: char b; }; struct B { [[no_unique_address]] A a; char c[3]; }; } // namespace TailPaddingReuse static_assert(__has_unique_object_representations(TailPaddingReuse::B));