These 7 bundles carry the same evidence an accepted bundle needs: patch variants for every affected release, an executable regression at -O0 and -O2, an explanation with the offending C++ and both Ada outputs, and a coverage panel entry. Patchset 1.2.0 lists them as staged, applies none of them, and makes no claim about their subject.
The C++ Ada mapper emits multiple concrete tagged bases as illegal Ada progenitors and omits their secondary subobject storage.
Why it is held back
Concrete secondary bases are represented as fixed nested as-base storage rather than native Ada multiple inheritance, so the binding is ABI-faithful but not fully type-safe. Held out of the published patchset for separate upstream review.
Class-specific Ada destructor names consume new dispatch slots in derived classes and displace virtual methods introduced after them from their C++ vtable indices.
Why it is held back
Stabilizing destructor identities changes generated vtable slot naming for every derived class, which only has an observable contract once the ABI-layout bundles are accepted. Held out of the published patchset for separate upstream review.
The C++ Ada mapper gives complete empty-class objects zero storage and maps overlapping no_unique_address members as ordinary Ada storage.
Why it is held back
This patch rewrites needs_tail_padding_layout and reuses the as-base size machinery introduced by the staged tail-padding bundle, and does not apply without it. Held out of the published patchset with the rest of the layout family.
Readable Ada names synthesized for C++ entities can collide with user-written identifiers and with each other.
Why it is held back
The name allocator renames the as-base types, synthetic base components, and destructor entities introduced by the staged ABI-layout bundles, and its patch does not apply without them. Held out of the published patchset for separate upstream review.
The C++ Ada mapper loses reusable base-class tail padding, including non-polymorphic and multiple-base layouts, so an Ada view can have a larger size and different field offsets than C++.
Why it is held back
The nested primary-base component this bundle selects is emitted by the staged virtual-base layout path, so a compiler carrying this patch without the staged ABI-layout bundles does not produce the corrected record. Held out of the published patchset with the rest of the layout family.
The C++ Ada mapper uses complete virtual-base class types for shortened direct base subobjects in a virtual diamond.
Why it is held back
Shortened as-base views for diamond legs depend on the virtual-base layout representation and share its C++ ABI coupling. Held out of the published patchset for separate upstream review.
The C++ Ada mapper drops the size, alignment, and component positions of classes with virtual bases.
Why it is held back
Virtual-base layout is C++ ABI-coupled and cannot be expressed as native Ada inheritance; dynamic virtual-base conversion stays an explicit ABI-wrapper boundary. Held out of the published patchset for separate upstream review.