[qt/clang/llvm]: Summary of bulk changes made

KDE Git Services - Bulk Change <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git repository change summary for qt/clang/llvm
Pushed by mirror-service into branch 'upstream/users/adams381/cir-record-member-kind-cirgen'.
Changed from 0000000000000000000000000000000000000000 to 9d4d0bdd9345c55f676085121dff2062df610736
Acknowledgement was received that this change introduces only existing code that has been pushed to another public open source repository.

This change contains the following new commits:

Git commit 9d4d0bdd9345c55f676085121dff2062df610736 by Adam Smith on 09/08/2026 at 21:16..
[CIR] Mark record members as data, pad, or empty in CIRGen

The per-member marks landed with no producer, so every record still reads as
though all of its members held data.  A record type still can't say whether it
carries anything for argument passing.  The x86_64 classifier has to know that
before it can drop an empty class from a signature.

CIRGen fills the marks in now.  Every member goes through one `addField` that
takes its kind, so a new push site can't quietly inherit a default.

A field's mark comes from `isEmptyFieldForABI`, ported from `isEmptyField` in
`ABIInfoImpl.cpp`.  Taking the ABI predicate rather than the layout one is
what gets C right.  Given `struct E {}`, a struct holding one `E` is empty for
the ABI in C but not in C++.

An assert on every record checks the marks against `isEmptyRecordForABI`, so
the existing `-fclangir` tests exercise them.

One case is now NYI.  A `[[no_unique_address]]` field that
`isEmptyFieldForLayout` drops from the layout can still hold ABI data.  With
the field gone there is no member left to mark, so CIRGen says so rather than
emit a record that understates what it holds.

This is the second of three PRs.  Nothing reads the marks yet.  The `padded`
bool stays, and `computeStructDataSize` still uses it.  The next PR will
properly use the marks and remove `padded`.

Assisted-by: Cursor / claude-opus-5
https://invent.kde.org/qt/clang/llvm/-/commit/9d4d0bdd9345c55f676085121dff2062df610736
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.