GCC and GNAT patch bundles
Patchset 1.2.0.
Independent GCC patch bundles, each with an executable regression, validated against pinned GCC source releases. Every page here is generated from the repository's manifests.
This patchset is not published yet. The newest installable toolchain is patchset 1.1.0.
18 accepted bundles
7 staged bundles
4 patchsets
5 pinned GCC releases
Patchset 1.2.0
What each compiler receives.
A bundle is not the same on every GCC major. Where a release does not have the defect, its patch is not applied and the bundle's regression runs against the unpatched compiler as a control.
| Bundle | GCC 1313.2.0 | GCC 1414.2.0 | GCC 1515.3.0 | GCC 1616.2.0 |
|---|---|---|---|---|
C++ Ada anonymous enumscxx-ada-anonymous-enums | Patchedgcc-13-14 | Patchedgcc-13-14 | Patchedgcc-15-16 | Patchedgcc-15-16 |
C++ Ada casefold identitycxx-ada-casefold-identity | Patchedgcc-13-14 | Patchedgcc-13-14 | Patchedgcc-15-16 | Patchedgcc-15-16 |
C++ Ada char8_t mappingcxx-ada-char8-type | Patchedgcc-13-14 | Patchedgcc-13-14 | Patchedgcc-15-16 | Patchedgcc-15-16 |
C++ Ada enclosing-type method namescxx-ada-enclosing-type-method-names | Patchedgcc-13-14 | Patchedgcc-13-14 | Patchedgcc-15-16 | Patchedgcc-15-16 |
C++ Ada explicit alignmentcxx-ada-explicit-alignment | Patchedgcc-13-14 | Patchedgcc-13-14 | Patchedgcc-15-16 | Patchedgcc-15-16 |
C++ Ada unsigned __int128 typescxx-ada-int128-types | Patchedgcc-13-14 | Patchedgcc-13-14 | Known-good control | Known-good control |
C++ Ada pointers to memberscxx-ada-member-pointers | Patchedgcc-13-14 | Patchedgcc-13-14 | Patchedgcc-15-16 | Patchedgcc-15-16 |
C++ Ada namespace identitycxx-ada-namespace-identity | Patchedgcc-13-14 | Patchedgcc-13-14 | Patchedgcc-15-16 | Patchedgcc-15-16 |
C++ Ada profile formal/type namescxx-ada-profile-formal-type-names | Patchedgcc-13-14 | Patchedgcc-13-14 | Patchedgcc-15-16 | Patchedgcc-15-16 |
C++ Ada qualified method namescxx-ada-qualified-method-names | Patchedgcc-13-14 | Patchedgcc-13-14 | Patchedgcc-15-16 | Patchedgcc-15-16 |
C++ Ada template nested typescxx-ada-template-nested-types | Patchedgcc-13-14 | Patchedgcc-13-14 | Patchedgcc-15-16 | Patchedgcc-15-16 |
C++ Ada template-instance qualificationcxx-ada-template-qualification | Patchedgcc-13-14 | Patchedgcc-13-14 | Patchedgcc-15-16 | Patchedgcc-15-16 |
C++ Ada template record terminationcxx-ada-template-record-termination | Patchedgcc-13-14 | Patchedgcc-13-14 | Patchedgcc-15-16 | Patchedgcc-15-16 |
C++ Ada machine vector typescxx-ada-vector-types | Patchedgcc-13-14 | Patchedgcc-13-14 | Patchedgcc-15-16 | Patchedgcc-15-16 |
C++ Ada visible type/method namescxx-ada-visible-type-method-names | Patchedgcc-13-14 | Patchedgcc-13-14 | Patchedgcc-15-16 | Patchedgcc-15-16 |
Boxed aggregate in a predicated conditional expressionpredicate-conditional-aggregate-box | Known-good control | Known-good control | Patchedgcc-15-16 | Patchedgcc-15-16 |
Protected Duration validity checksprotected-duration-validity | Patchedgcc-13-16 | Patchedgcc-13-16 | Patchedgcc-13-16 | Patchedgcc-13-16 |
Storage-model component actualsstorage-model-actuals | Known-good control | Patchedgcc-14-16 | Patchedgcc-14-16 | Patchedgcc-14-16 |
- Patched
- The patchset applies this bundle's patch to this compiler.
- Known-good control
- This release does not have the defect. It ships unpatched and the bundle's regression runs against it as a control.
- Staged
- The bundle is held out of the published patchset and its evidence makes no claim about this release.
- Not applicable
- The patchset does not cover this bundle for this compiler.
Unreleased
Held out of the patchset.
Staged bundles carry the same evidence as accepted ones, but no published patchset applies them and no patched run makes a claim about their subject.
- C++ Ada concrete multiple inheritanceConcrete 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.
- C++ Ada derived virtual slotsStabilizing 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.
- C++ Ada empty-class storageThis 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.
- C++ Ada generated-name identityThe 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.
- C++ Ada inherited tail paddingThe 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.
- C++ Ada virtual-diamond base storageShortened 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.
- C++ Ada virtual-inheritance layoutVirtual-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.
Coverage panels
What the mapper does today.
The cxx-ada-spec panel records the state of every mapping feature the repository has exercised, and names the evidence for each one.
45 features
63 atomic cases
22 runtime suites