{
  "bundles": [
    {
      "affected_versions": [
        "13.2.0",
        "14.2.0",
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/cxx-ada-anonymous-enums/patches/VARIANT.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/cxx-ada-anonymous-enums",
      "expected_failure_before_patch": "GNAT rejects the generated unit because anonymous enum constants are absent and signature types remain incomplete.",
      "expected_success_after_patch": "Sequential and sparse anonymous enum values compile and round-trip through C++ at -O0 and -O2.",
      "files_modified": [
        "gcc/c-family/c-ada-spec.cc",
        "gcc/testsuite/g++.dg/ada-spec/anonymous-enums.C"
      ],
      "fixture_sha256": "f7f3d308c6fd0fe6e0a462004cf61dac07d020d81821057a587da893fdbcc1ce",
      "id": "cxx-ada-anonymous-enums",
      "introduced_in_patchset": "1.2.0",
      "known_good_versions": [],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "Top-level C++ anonymous enumerations lose their constants and appear as incomplete internal types in generated Ada specifications.",
      "readme_path": "bundles/cxx-ada-anonymous-enums/README.md",
      "regression_tests": [
        "gcc/testsuite/g++.dg/ada-spec/anonymous-enums.C"
      ],
      "repository_fixture": "bundles/cxx-ada-anonymous-enums/tests/anonymous-enums.C",
      "repository_test_runner": "bundles/cxx-ada-anonymous-enums/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.2.0",
            "variant": null
          }
        },
        "1.2.0": {
          "13": {
            "role": "patched",
            "source_version": "13.2.0",
            "variant": "gcc-13-14"
          },
          "14": {
            "role": "patched",
            "source_version": "14.2.0",
            "variant": "gcc-13-14"
          },
          "15": {
            "role": "patched",
            "source_version": "15.3.0",
            "variant": "gcc-15-16"
          },
          "16": {
            "role": "patched",
            "source_version": "16.2.0",
            "variant": "gcc-15-16"
          }
        }
      },
      "schema": 1,
      "source_provenance": "Repository-authored GCC patch and executable regression; exact application verified locally against the pinned Darwin release identities. Pinned FSF release application is required by Linux CI.",
      "standalone_patch": true,
      "status": "accepted",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.2.0 GCC_MAJOR patched",
      "tests": [
        "bundles/cxx-ada-anonymous-enums/tests/anonymous-enums.C",
        "bundles/cxx-ada-anonymous-enums/tests/anonymous_enums_consumer.adb"
      ],
      "title": "C++ Ada anonymous enums",
      "upstream_issue": "Pending GCC Bugzilla filing.",
      "upstream_submission_state": "Not yet filed or submitted upstream.",
      "variants": [
        {
          "id": "gcc-13-14",
          "patch": "bundles/cxx-ada-anonymous-enums/patches/gcc-13-14.patch",
          "sha256": "1e4c06ecf86505a90044a2608ced35cbad55a024391019953bb4b182c63d9a11",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "13.2.0",
            "14.2.0"
          ]
        },
        {
          "id": "gcc-15-16",
          "patch": "bundles/cxx-ada-anonymous-enums/patches/gcc-15-16.patch",
          "sha256": "80c81930d3d2a5217bdd0137747cad2fd5110afec71eac849c56facb2a47c39d",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "13.2.0",
        "14.2.0",
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/cxx-ada-casefold-identity/patches/VARIANT.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/cxx-ada-casefold-identity",
      "expected_failure_before_patch": "GNAT rejects records, aliases, fields, or functions whose C++ identifiers differ only by case.",
      "expected_success_after_patch": "Scope-local Case suffixes preserve every case-distinct identity and all generated references compile and link at -O0 and -O2.",
      "files_modified": [
        "gcc/c-family/c-ada-spec.cc",
        "gcc/testsuite/g++.dg/ada-spec/casefold-identity.C"
      ],
      "fixture_sha256": "ddeac6163886392cc380ef233de8f592ed012714d069412a9d735067691333bd",
      "id": "cxx-ada-casefold-identity",
      "introduced_in_patchset": "1.2.0",
      "known_good_versions": [],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "The C++ Ada spec dumper emits case-distinct C++ identifiers as duplicate Ada identifiers.",
      "readme_path": "bundles/cxx-ada-casefold-identity/README.md",
      "regression_tests": [
        "gcc/testsuite/g++.dg/ada-spec/casefold-identity.C"
      ],
      "repository_fixture": "bundles/cxx-ada-casefold-identity/tests/casefold-identity.C",
      "repository_test_runner": "bundles/cxx-ada-casefold-identity/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.2.0",
            "variant": null
          }
        },
        "1.2.0": {
          "13": {
            "role": "patched",
            "source_version": "13.2.0",
            "variant": "gcc-13-14"
          },
          "14": {
            "role": "patched",
            "source_version": "14.2.0",
            "variant": "gcc-13-14"
          },
          "15": {
            "role": "patched",
            "source_version": "15.3.0",
            "variant": "gcc-15-16"
          },
          "16": {
            "role": "patched",
            "source_version": "16.2.0",
            "variant": "gcc-15-16"
          }
        }
      },
      "schema": 1,
      "source_provenance": "Repository-authored GCC patch and executable regression; exact application verified locally against the pinned Darwin release identities. Pinned FSF release application is required by Linux CI.",
      "standalone_patch": false,
      "status": "accepted",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.2.0 GCC_MAJOR patched",
      "tests": [
        "bundles/cxx-ada-casefold-identity/tests/casefold-identity.C",
        "bundles/cxx-ada-casefold-identity/tests/casefold_identity_consumer.adb"
      ],
      "title": "C++ Ada casefold identity",
      "upstream_issue": "Not yet filed.",
      "upstream_submission_state": "Not yet filed or submitted upstream.",
      "variants": [
        {
          "id": "gcc-13-14",
          "patch": "bundles/cxx-ada-casefold-identity/patches/gcc-13-14.patch",
          "sha256": "d746f3f39368ecd57753d2a8d5d00108810bfcb3e6f1dc90d6f30e1af5b0f278",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "13.2.0",
            "14.2.0"
          ]
        },
        {
          "id": "gcc-15-16",
          "patch": "bundles/cxx-ada-casefold-identity/patches/gcc-15-16.patch",
          "sha256": "59b0e68f46e16297b5edb7c27cf8a0f3046116a761cbd622c8a47520b8ac808c",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "13.2.0",
        "14.2.0",
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/cxx-ada-char8-type/patches/VARIANT.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/cxx-ada-char8-type",
      "expected_failure_before_patch": "GNAT rejects the generated specification because char8_t is undefined.",
      "expected_success_after_patch": "The binding uses Interfaces.C.unsigned_char and round-trips a char8_t value through C++ at -O0 and -O2.",
      "files_modified": [
        "gcc/c-family/c-ada-spec.cc",
        "gcc/testsuite/g++.dg/ada-spec/char8-type.C"
      ],
      "fixture_sha256": "e7e136cb00f5b735a27c5b2d8f201063345c5022dff689045cbfc8bb0382afa8",
      "id": "cxx-ada-char8-type",
      "introduced_in_patchset": "1.2.0",
      "known_good_versions": [],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "The C++ Ada spec dumper emits char8_t references even though GNAT's Interfaces.C has no such Ada type.",
      "readme_path": "bundles/cxx-ada-char8-type/README.md",
      "regression_tests": [
        "gcc/testsuite/g++.dg/ada-spec/char8-type.C"
      ],
      "repository_fixture": "bundles/cxx-ada-char8-type/tests/char8-type.C",
      "repository_test_runner": "bundles/cxx-ada-char8-type/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.2.0",
            "variant": null
          }
        },
        "1.2.0": {
          "13": {
            "role": "patched",
            "source_version": "13.2.0",
            "variant": "gcc-13-14"
          },
          "14": {
            "role": "patched",
            "source_version": "14.2.0",
            "variant": "gcc-13-14"
          },
          "15": {
            "role": "patched",
            "source_version": "15.3.0",
            "variant": "gcc-15-16"
          },
          "16": {
            "role": "patched",
            "source_version": "16.2.0",
            "variant": "gcc-15-16"
          }
        }
      },
      "schema": 1,
      "source_provenance": "Repository-authored GCC patch and executable regression; exact application verified locally against the pinned Darwin release identities. Pinned FSF release application is required by Linux CI.",
      "standalone_patch": true,
      "status": "accepted",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.2.0 GCC_MAJOR patched",
      "tests": [
        "bundles/cxx-ada-char8-type/tests/char8-type.C",
        "bundles/cxx-ada-char8-type/tests/char8_type_consumer.adb"
      ],
      "title": "C++ Ada char8_t mapping",
      "upstream_issue": "Pending GCC Bugzilla filing.",
      "upstream_submission_state": "Not yet filed or submitted upstream.",
      "variants": [
        {
          "id": "gcc-13-14",
          "patch": "bundles/cxx-ada-char8-type/patches/gcc-13-14.patch",
          "sha256": "7167ebbb4862a00b75e69f3d2496892a71e768659740fbb1ae0cd2038daeae4f",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "13.2.0",
            "14.2.0"
          ]
        },
        {
          "id": "gcc-15-16",
          "patch": "bundles/cxx-ada-char8-type/patches/gcc-15-16.patch",
          "sha256": "398e5d2774547c0f45d17c7253839ebe13e7c8b9b2868ecd06edff1c31196aeb",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "13.2.0",
        "14.2.0",
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/cxx-ada-concrete-multiple-inheritance/patches/VARIANT.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/cxx-ada-concrete-multiple-inheritance",
      "expected_failure_before_patch": "GNAT rejects a concrete secondary base as an Ada interface progenitor, and the generated record has no usable secondary-base storage.",
      "expected_success_after_patch": "The primary base uses Ada inheritance, each concrete secondary base uses exact nested as-base storage, and primary and secondary dispatch and storage agree at -O0 and -O2.",
      "files_modified": [
        "gcc/c-family/c-ada-spec.cc",
        "gcc/c-family/c-ada-spec.h",
        "gcc/cp/decl2.cc",
        "gcc/testsuite/g++.dg/ada-spec/concrete-multiple-inheritance.C"
      ],
      "fixture_sha256": "d4b4692761c4d597897ff6240ab3b84d2a568e89623ae364221752622f2a3c70",
      "id": "cxx-ada-concrete-multiple-inheritance",
      "known_good_versions": [],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "The C++ Ada mapper emits multiple concrete tagged bases as illegal Ada progenitors and omits their secondary subobject storage.",
      "readme_path": "bundles/cxx-ada-concrete-multiple-inheritance/README.md",
      "regression_tests": [
        "gcc/testsuite/g++.dg/ada-spec/concrete-multiple-inheritance.C"
      ],
      "repository_fixture": "bundles/cxx-ada-concrete-multiple-inheritance/tests/concrete-multiple-inheritance.C",
      "repository_test_runner": "bundles/cxx-ada-concrete-multiple-inheritance/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.2.0",
            "variant": null
          }
        },
        "1.2.0": {
          "13": {
            "role": "staged",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "staged",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "staged",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "staged",
            "source_version": "16.2.0",
            "variant": null
          }
        }
      },
      "schema": 1,
      "source_provenance": "Repository-authored GCC patch and executable regression; exact application verified locally against the pinned Darwin patchset inputs. Pinned FSF release application is required by Linux CI.",
      "staged_depends_on": [
        "cxx-ada-virtual-inheritance-layout",
        "cxx-ada-virtual-diamond-layout"
      ],
      "staged_in_patchset": "1.2.0",
      "staged_reason": "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.",
      "standalone_patch": false,
      "status": "staged",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.2.0 GCC_MAJOR patched",
      "tests": [
        "bundles/cxx-ada-concrete-multiple-inheritance/tests/concrete-multiple-inheritance.C",
        "bundles/cxx-ada-concrete-multiple-inheritance/tests/concrete_multiple_inheritance_consumer.adb"
      ],
      "title": "C++ Ada concrete multiple inheritance",
      "upstream_issue": "Pending GCC Bugzilla filing.",
      "upstream_submission_state": "Not yet filed or submitted upstream.",
      "variants": [
        {
          "id": "gcc-13-14",
          "patch": "bundles/cxx-ada-concrete-multiple-inheritance/patches/gcc-13-14.patch",
          "sha256": "43e85324dc1c00ad5bf3ed3cd20a5fb4735115870ef7ad6f4f826236cd72d181",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "13.2.0",
            "14.2.0"
          ]
        },
        {
          "id": "gcc-15-16",
          "patch": "bundles/cxx-ada-concrete-multiple-inheritance/patches/gcc-15-16.patch",
          "sha256": "8cdb3d3458dcbfd3e1045b7288263130e7a561a8e53c6f515f6be9efdfb731e8",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "13.2.0",
        "14.2.0",
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/cxx-ada-derived-virtual-slots/patches/VARIANT.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/cxx-ada-derived-virtual-slots",
      "expected_failure_before_patch": "A class-wide Ada call to a virtual first introduced in a derived C++ class reads a later non-function vtable entry and terminates abnormally.",
      "expected_success_after_patch": "Root destructors reserve stable Ada slots, derived destructor imports remain nonprimitive, later virtual slots match C++, colliding user methods are suffixed, and class-wide dispatch agrees at -O0 and -O2.",
      "files_modified": [
        "gcc/c-family/c-ada-spec.cc",
        "gcc/testsuite/g++.dg/ada-spec/derived-virtual-slots.C"
      ],
      "fixture_sha256": "4bc11a40aba2e1daeb6ff3f5fcfd569d112e527dc22a534e50e313d0a00ce18e",
      "id": "cxx-ada-derived-virtual-slots",
      "known_good_versions": [],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "Class-specific Ada destructor names consume new dispatch slots in derived classes and displace virtual methods introduced after them from their C++ vtable indices.",
      "readme_path": "bundles/cxx-ada-derived-virtual-slots/README.md",
      "regression_tests": [
        "gcc/testsuite/g++.dg/ada-spec/derived-virtual-slots.C"
      ],
      "repository_fixture": "bundles/cxx-ada-derived-virtual-slots/tests/derived-virtual-slots.C",
      "repository_test_runner": "bundles/cxx-ada-derived-virtual-slots/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.2.0",
            "variant": null
          }
        },
        "1.2.0": {
          "13": {
            "role": "staged",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "staged",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "staged",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "staged",
            "source_version": "16.2.0",
            "variant": null
          }
        }
      },
      "schema": 1,
      "source_provenance": "Repository-authored GCC patch and executable regression; exact application verified locally against the pinned Darwin patchset inputs. Pinned FSF release application is required by Linux CI.",
      "staged_depends_on": [],
      "staged_in_patchset": "1.2.0",
      "staged_reason": "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.",
      "standalone_patch": false,
      "status": "staged",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.2.0 GCC_MAJOR patched",
      "tests": [
        "bundles/cxx-ada-derived-virtual-slots/tests/derived-virtual-slots.C",
        "bundles/cxx-ada-derived-virtual-slots/tests/derived_virtual_slots_consumer.adb"
      ],
      "title": "C++ Ada derived virtual slots",
      "upstream_issue": "Pending GCC Bugzilla filing.",
      "upstream_submission_state": "Not yet filed or submitted upstream.",
      "variants": [
        {
          "id": "gcc-13-14",
          "patch": "bundles/cxx-ada-derived-virtual-slots/patches/gcc-13-14.patch",
          "sha256": "8fbb185ad72db778d78a99411147eab667e62ee3f8a2e16a6b97383ea3ed5a30",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "13.2.0",
            "14.2.0"
          ]
        },
        {
          "id": "gcc-15-16",
          "patch": "bundles/cxx-ada-derived-virtual-slots/patches/gcc-15-16.patch",
          "sha256": "13c5ceffb7db6ca7957b088487545c92b30c2235b4d550dec494c12f1ce600e6",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "13.2.0",
        "14.2.0",
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/cxx-ada-empty-class-storage/patches/VARIANT.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/cxx-ada-empty-class-storage",
      "expected_failure_before_patch": "Complete empty objects and ordinary empty members have insufficient Ada storage even though arrays, empty-base optimization, and no_unique_address overlap happen to match.",
      "expected_success_after_patch": "Ada and C++ agree on empty complete objects, ordinary members and arrays, empty-base optimization, and single or repeated no_unique_address layout at -O0 and -O2; only an actually overlapping no_unique_address field is omitted from the Ada view.",
      "files_modified": [
        "gcc/c-family/c-ada-spec.cc",
        "gcc/testsuite/g++.dg/ada-spec/empty-class-storage.C"
      ],
      "fixture_sha256": "dc0023efa0b203d59256510eba3150d603de959710f2c34ed8c065d85f75abf5",
      "id": "cxx-ada-empty-class-storage",
      "known_good_versions": [],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "The C++ Ada mapper gives complete empty-class objects zero storage and maps overlapping no_unique_address members as ordinary Ada storage.",
      "readme_path": "bundles/cxx-ada-empty-class-storage/README.md",
      "regression_tests": [
        "gcc/testsuite/g++.dg/ada-spec/empty-class-storage.C"
      ],
      "repository_fixture": "bundles/cxx-ada-empty-class-storage/tests/empty-class-storage.C",
      "repository_test_runner": "bundles/cxx-ada-empty-class-storage/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.2.0",
            "variant": null
          }
        },
        "1.2.0": {
          "13": {
            "role": "staged",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "staged",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "staged",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "staged",
            "source_version": "16.2.0",
            "variant": null
          }
        }
      },
      "schema": 1,
      "source_provenance": "Repository-authored GCC patch and executable regression; exact application verified locally against the pinned Darwin release identities. Pinned FSF release application is required by Linux CI.",
      "staged_depends_on": [
        "cxx-ada-inherited-tail-padding"
      ],
      "staged_in_patchset": "1.2.0",
      "staged_reason": "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.",
      "standalone_patch": false,
      "status": "staged",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.2.0 GCC_MAJOR patched",
      "tests": [
        "bundles/cxx-ada-empty-class-storage/tests/empty-class-storage.C",
        "bundles/cxx-ada-empty-class-storage/tests/empty_class_storage_consumer.adb"
      ],
      "title": "C++ Ada empty-class storage",
      "upstream_issue": "Pending GCC Bugzilla filing.",
      "upstream_submission_state": "Not yet filed or submitted upstream.",
      "variants": [
        {
          "id": "gcc-13-14",
          "patch": "bundles/cxx-ada-empty-class-storage/patches/gcc-13-14.patch",
          "sha256": "ff4737ff84ec281e7ff8f55c72281f11475cebeb8411ec18ef16251d3d35476f",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "13.2.0",
            "14.2.0"
          ]
        },
        {
          "id": "gcc-15-16",
          "patch": "bundles/cxx-ada-empty-class-storage/patches/gcc-15-16.patch",
          "sha256": "2c33ab55bd9809353035574ea11ef92b2466d4de0648e25e0b11cd800266a666",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "13.2.0",
        "14.2.0",
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/cxx-ada-enclosing-type-method-names/patches/VARIANT.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/cxx-ada-enclosing-type-method-names",
      "expected_failure_before_patch": "GNAT rejects each generated class package because the method identifier conflicts with the enclosing type identifier.",
      "expected_success_after_patch": "Only a colliding method receives a stable Method suffix, retains its C++ external symbol, and compiles, links, and executes at -O0 and -O2.",
      "files_modified": [
        "gcc/c-family/c-ada-spec.cc",
        "gcc/testsuite/g++.dg/ada-spec/enclosing-type-method-names.C"
      ],
      "fixture_sha256": "f3b5b4fb482a9bfd5472436033250b0b4bccf578f9b730f4866af69e85546192",
      "id": "cxx-ada-enclosing-type-method-names",
      "introduced_in_patchset": "1.2.0",
      "known_good_versions": [],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "The C++ Ada mapper emits a method whose name differs from its enclosing type only by case as an illegal duplicate Ada identifier.",
      "readme_path": "bundles/cxx-ada-enclosing-type-method-names/README.md",
      "regression_tests": [
        "gcc/testsuite/g++.dg/ada-spec/enclosing-type-method-names.C"
      ],
      "repository_fixture": "bundles/cxx-ada-enclosing-type-method-names/tests/enclosing-type-method-names.C",
      "repository_test_runner": "bundles/cxx-ada-enclosing-type-method-names/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.2.0",
            "variant": null
          }
        },
        "1.2.0": {
          "13": {
            "role": "patched",
            "source_version": "13.2.0",
            "variant": "gcc-13-14"
          },
          "14": {
            "role": "patched",
            "source_version": "14.2.0",
            "variant": "gcc-13-14"
          },
          "15": {
            "role": "patched",
            "source_version": "15.3.0",
            "variant": "gcc-15-16"
          },
          "16": {
            "role": "patched",
            "source_version": "16.2.0",
            "variant": "gcc-15-16"
          }
        }
      },
      "schema": 1,
      "source_provenance": "Repository-authored GCC patch and executable regression; exact application verified locally against the pinned Darwin patchset inputs. Pinned FSF release application is required by Linux CI.",
      "standalone_patch": false,
      "status": "accepted",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.2.0 GCC_MAJOR patched",
      "tests": [
        "bundles/cxx-ada-enclosing-type-method-names/tests/enclosing-type-method-names.C",
        "bundles/cxx-ada-enclosing-type-method-names/tests/enclosing_type_method_names_consumer.adb"
      ],
      "title": "C++ Ada enclosing-type method names",
      "upstream_issue": "Pending GCC Bugzilla filing.",
      "upstream_submission_state": "Not yet filed or submitted upstream.",
      "variants": [
        {
          "id": "gcc-13-14",
          "patch": "bundles/cxx-ada-enclosing-type-method-names/patches/gcc-13-14.patch",
          "sha256": "37a6a27d2096228da345ab892187cde301fa510a490445956a257d286fa0bbed",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "13.2.0",
            "14.2.0"
          ]
        },
        {
          "id": "gcc-15-16",
          "patch": "bundles/cxx-ada-enclosing-type-method-names/patches/gcc-15-16.patch",
          "sha256": "f016b7142d267aad9eb3513c9158d969681bbff1608d8f0dd740bdbfcd725978",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "13.2.0",
        "14.2.0",
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/cxx-ada-explicit-alignment/patches/VARIANT.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/cxx-ada-explicit-alignment",
      "expected_failure_before_patch": "The generated Ada type uses natural alignment and disagrees with C++ sizeof and alignof.",
      "expected_success_after_patch": "The generated Alignment aspect makes Ada Object_Size and Alignment agree with C++ at -O0 and -O2.",
      "files_modified": [
        "gcc/c-family/c-ada-spec.cc",
        "gcc/testsuite/g++.dg/ada-spec/explicit-alignment.C"
      ],
      "fixture_sha256": "d9882744731168b6b8d1bd6f68f092c35b8a738fb865e8861c452b77b727442e",
      "id": "cxx-ada-explicit-alignment",
      "introduced_in_patchset": "1.2.0",
      "known_good_versions": [],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "The C++ Ada spec dumper omits user-specified record alignment unless the layout is also packed or contains bit fields.",
      "readme_path": "bundles/cxx-ada-explicit-alignment/README.md",
      "regression_tests": [
        "gcc/testsuite/g++.dg/ada-spec/explicit-alignment.C"
      ],
      "repository_fixture": "bundles/cxx-ada-explicit-alignment/tests/explicit-alignment.C",
      "repository_test_runner": "bundles/cxx-ada-explicit-alignment/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.2.0",
            "variant": null
          }
        },
        "1.2.0": {
          "13": {
            "role": "patched",
            "source_version": "13.2.0",
            "variant": "gcc-13-14"
          },
          "14": {
            "role": "patched",
            "source_version": "14.2.0",
            "variant": "gcc-13-14"
          },
          "15": {
            "role": "patched",
            "source_version": "15.3.0",
            "variant": "gcc-15-16"
          },
          "16": {
            "role": "patched",
            "source_version": "16.2.0",
            "variant": "gcc-15-16"
          }
        }
      },
      "schema": 1,
      "source_provenance": "Repository-authored GCC patch and executable regression; exact application verified locally against the pinned Darwin release identities. Pinned FSF release application is required by Linux CI.",
      "standalone_patch": true,
      "status": "accepted",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.2.0 GCC_MAJOR patched",
      "tests": [
        "bundles/cxx-ada-explicit-alignment/tests/explicit-alignment.C",
        "bundles/cxx-ada-explicit-alignment/tests/explicit_alignment_consumer.adb"
      ],
      "title": "C++ Ada explicit alignment",
      "upstream_issue": "Pending GCC Bugzilla filing.",
      "upstream_submission_state": "Not yet filed or submitted upstream.",
      "variants": [
        {
          "id": "gcc-13-14",
          "patch": "bundles/cxx-ada-explicit-alignment/patches/gcc-13-14.patch",
          "sha256": "aa50ec3ed9c2ca4f5f03f406add2d9480e9052908e0316d388a1e713574d14bb",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "13.2.0",
            "14.2.0"
          ]
        },
        {
          "id": "gcc-15-16",
          "patch": "bundles/cxx-ada-explicit-alignment/patches/gcc-15-16.patch",
          "sha256": "ce99dbd96103e0cf6b4303cc5a4ab694135b28faca7d5e631bc9aca5a15206ad",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "13.2.0",
        "14.2.0",
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/cxx-ada-generated-name-identity/patches/VARIANT.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/cxx-ada-generated-name-identity",
      "expected_failure_before_patch": "GNAT rejects duplicate Ada declarations created by qualifier, template, formal, layout, class-package, constructor, destructor, or assignment names.",
      "expected_success_after_patch": "Source spellings retain readable names, only colliding generated entities receive deterministic numeric suffixes, and all references compile, link, and execute at -O0 and -O2.",
      "files_modified": [
        "gcc/c-family/c-ada-spec.cc",
        "gcc/testsuite/g++.dg/ada-spec/generated-name-identity.C"
      ],
      "fixture_sha256": "ec6926ba46b3c226429796fc6b0b53aafb56cd941678fd8ce296300bb4c07cbc",
      "id": "cxx-ada-generated-name-identity",
      "known_good_versions": [],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "Readable Ada names synthesized for C++ entities can collide with user-written identifiers and with each other.",
      "readme_path": "bundles/cxx-ada-generated-name-identity/README.md",
      "regression_tests": [
        "gcc/testsuite/g++.dg/ada-spec/generated-name-identity.C"
      ],
      "repository_fixture": "bundles/cxx-ada-generated-name-identity/tests/generated-name-identity.C",
      "repository_test_runner": "bundles/cxx-ada-generated-name-identity/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.2.0",
            "variant": null
          }
        },
        "1.2.0": {
          "13": {
            "role": "staged",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "staged",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "staged",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "staged",
            "source_version": "16.2.0",
            "variant": null
          }
        }
      },
      "schema": 1,
      "source_provenance": "Repository-authored GCC patch and executable regression; exact application verified locally against the pinned Darwin patchset inputs. Pinned FSF release application is required by Linux CI.",
      "staged_depends_on": [
        "cxx-ada-virtual-inheritance-layout",
        "cxx-ada-virtual-diamond-layout",
        "cxx-ada-concrete-multiple-inheritance",
        "cxx-ada-derived-virtual-slots"
      ],
      "staged_in_patchset": "1.2.0",
      "staged_reason": "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.",
      "standalone_patch": false,
      "status": "staged",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.2.0 GCC_MAJOR patched",
      "tests": [
        "bundles/cxx-ada-generated-name-identity/tests/generated-name-identity.C",
        "bundles/cxx-ada-generated-name-identity/tests/generated_name_identity_consumer.adb"
      ],
      "title": "C++ Ada generated-name identity",
      "upstream_issue": "Pending GCC Bugzilla filing.",
      "upstream_submission_state": "Not yet filed or submitted upstream.",
      "variants": [
        {
          "id": "gcc-13-14",
          "patch": "bundles/cxx-ada-generated-name-identity/patches/gcc-13-14.patch",
          "sha256": "09d1e9201d819c801c4e0f7e7814775c0cebd852e9feb626abab388a4a53e645",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "13.2.0",
            "14.2.0"
          ]
        },
        {
          "id": "gcc-15-16",
          "patch": "bundles/cxx-ada-generated-name-identity/patches/gcc-15-16.patch",
          "sha256": "3a37e47260e909a343891777ac74bd2a486a20ea42202d1f834cd86bcf00fc27",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "13.2.0",
        "14.2.0",
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/cxx-ada-inherited-tail-padding/patches/VARIANT.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/cxx-ada-inherited-tail-padding",
      "expected_failure_before_patch": "The generated Ada derived type is larger than its C++ class and writes a derived field at the wrong offset.",
      "expected_success_after_patch": "Ada and C++ agree on polymorphic, non-polymorphic, and multiple-base tail-padding sizes, offsets, and field values at -O0 and -O2.",
      "files_modified": [
        "gcc/c-family/c-ada-spec.cc",
        "gcc/c-family/c-ada-spec.h",
        "gcc/cp/decl2.cc",
        "gcc/testsuite/g++.dg/ada-spec/inherited-tail-padding.C"
      ],
      "fixture_sha256": "268ecfbbea1c448203e52faeb141862008ec80f297ee4875a8032d0a15998484",
      "id": "cxx-ada-inherited-tail-padding",
      "known_good_versions": [],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new tests are proposed for the GCC testsuite under GCC project terms.",
      "problem": "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++.",
      "readme_path": "bundles/cxx-ada-inherited-tail-padding/README.md",
      "regression_tests": [
        "gcc/testsuite/g++.dg/ada-spec/inherited-tail-padding.C"
      ],
      "repository_fixture": "bundles/cxx-ada-inherited-tail-padding/tests/inherited-tail-padding.C",
      "repository_test_runner": "bundles/cxx-ada-inherited-tail-padding/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.2.0",
            "variant": null
          }
        },
        "1.2.0": {
          "13": {
            "role": "staged",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "staged",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "staged",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "staged",
            "source_version": "16.2.0",
            "variant": null
          }
        }
      },
      "schema": 1,
      "source_provenance": "Repository-authored GCC patch and executable regression; exact application verified locally against the pinned Darwin release identities. Pinned FSF release application is required by Linux CI.",
      "staged_depends_on": [
        "cxx-ada-virtual-inheritance-layout"
      ],
      "staged_in_patchset": "1.2.0",
      "staged_reason": "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.",
      "standalone_patch": false,
      "status": "staged",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.2.0 GCC_MAJOR patched",
      "tests": [
        "bundles/cxx-ada-inherited-tail-padding/tests/cpp_tail_padding.adb",
        "bundles/cxx-ada-inherited-tail-padding/tests/inherited-tail-padding.C",
        "bundles/cxx-ada-inherited-tail-padding/tests/inherited_tail_padding_consumer.adb",
        "bundles/cxx-ada-inherited-tail-padding/tests/inherited_tail_padding_unpatched_consumer.adb"
      ],
      "title": "C++ Ada inherited tail padding",
      "upstream_issue": "Pending GCC Bugzilla filing.",
      "upstream_submission_state": "Not yet filed or submitted upstream.",
      "variants": [
        {
          "id": "gcc-13-14",
          "patch": "bundles/cxx-ada-inherited-tail-padding/patches/gcc-13-14.patch",
          "sha256": "1987e8144695191a0fe034394e27bb3f29f7a3aa4a5fe3382108458b2c7683ff",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "13.2.0",
            "14.2.0"
          ]
        },
        {
          "id": "gcc-15-16",
          "patch": "bundles/cxx-ada-inherited-tail-padding/patches/gcc-15-16.patch",
          "sha256": "b095db3638dfd6734bd4190191e8aad005e37d492ccf5329bda801203cf16307",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "13.2.0",
        "14.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/cxx-ada-int128-types/patches/gcc-13-14.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/cxx-ada-int128-types",
      "expected_failure_before_patch": "GNAT rejects the generated specification because uu_int128_unsigned is undefined.",
      "expected_success_after_patch": "Signed and unsigned 128-bit values round-trip by value through Ada and C++ at -O0 and -O2.",
      "files_modified": [
        "gcc/c-family/c-ada-spec.cc",
        "gcc/testsuite/g++.dg/ada-spec/int128-types.C"
      ],
      "fixture_sha256": "8bce39aa86a2cd371c8f98b5f7e6f7f71bd021e1fefcb0b63666ebcb52ce42e3",
      "id": "cxx-ada-int128-types",
      "introduced_in_patchset": "1.2.0",
      "known_good_versions": [
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "GCC 13 and 14 emit the internal C++ name for unsigned __int128 as an undefined Ada identifier.",
      "readme_path": "bundles/cxx-ada-int128-types/README.md",
      "regression_tests": [
        "gcc/testsuite/g++.dg/ada-spec/int128-types.C"
      ],
      "repository_fixture": "bundles/cxx-ada-int128-types/tests/int128-types.C",
      "repository_test_runner": "bundles/cxx-ada-int128-types/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.2.0",
            "variant": null
          }
        },
        "1.2.0": {
          "13": {
            "role": "patched",
            "source_version": "13.2.0",
            "variant": "gcc-13-14"
          },
          "14": {
            "role": "patched",
            "source_version": "14.2.0",
            "variant": "gcc-13-14"
          },
          "15": {
            "role": "control",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "control",
            "source_version": "16.2.0",
            "variant": null
          }
        }
      },
      "schema": 1,
      "source_provenance": "Repository-authored backport of the __int128 prefix recognition present in the pinned GCC 15 and 16 sources, with an executable regression; exact application verified locally against the pinned Darwin GCC 13 and 14 identities. Pinned FSF release application is required by Linux CI.",
      "standalone_patch": true,
      "status": "accepted",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.2.0 GCC_MAJOR patched",
      "tests": [
        "bundles/cxx-ada-int128-types/tests/int128-types.C",
        "bundles/cxx-ada-int128-types/tests/int128_types_consumer.adb"
      ],
      "title": "C++ Ada unsigned __int128 types",
      "upstream_issue": "Pending GCC Bugzilla filing.",
      "upstream_submission_state": "Not yet filed or submitted upstream.",
      "variants": [
        {
          "id": "gcc-13-14",
          "patch": "bundles/cxx-ada-int128-types/patches/gcc-13-14.patch",
          "sha256": "0ff464719272eaf8ea9696a06e91338c9e77c33e71cbc565493a2c044a3e5969",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "13.2.0",
            "14.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "13.2.0",
        "14.2.0",
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/cxx-ada-member-pointers/patches/VARIANT.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/cxx-ada-member-pointers",
      "expected_failure_before_patch": "GNAT rejects blank data-member and member-function pointer component types.",
      "expected_success_after_patch": "Data, nonvirtual-function, virtual-function, and null member pointers round-trip through Ada and are applied or classified correctly by C++ at -O0 and -O2.",
      "files_modified": [
        "gcc/c-family/c-ada-spec.cc",
        "gcc/testsuite/g++.dg/ada-spec/member-pointers.C"
      ],
      "fixture_sha256": "506f9ec81a7386556d4ef646c625cbedf9637e871f3ed6f6fcb2deada9e37f3e",
      "id": "cxx-ada-member-pointers",
      "introduced_in_patchset": "1.2.0",
      "known_good_versions": [],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "C++ data-member and member-function pointer representations contain blank underlying Ada types and make the generated specification invalid.",
      "readme_path": "bundles/cxx-ada-member-pointers/README.md",
      "regression_tests": [
        "gcc/testsuite/g++.dg/ada-spec/member-pointers.C"
      ],
      "repository_fixture": "bundles/cxx-ada-member-pointers/tests/member-pointers.C",
      "repository_test_runner": "bundles/cxx-ada-member-pointers/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.2.0",
            "variant": null
          }
        },
        "1.2.0": {
          "13": {
            "role": "patched",
            "source_version": "13.2.0",
            "variant": "gcc-13-14"
          },
          "14": {
            "role": "patched",
            "source_version": "14.2.0",
            "variant": "gcc-13-14"
          },
          "15": {
            "role": "patched",
            "source_version": "15.3.0",
            "variant": "gcc-15-16"
          },
          "16": {
            "role": "patched",
            "source_version": "16.2.0",
            "variant": "gcc-15-16"
          }
        }
      },
      "schema": 1,
      "source_provenance": "Repository-authored GCC patch and executable regression for the Itanium C++ ABI used by all supported hosts; exact application verified locally against the pinned Darwin release identities. Pinned FSF release application is required by Linux CI.",
      "standalone_patch": true,
      "status": "accepted",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.2.0 GCC_MAJOR patched",
      "tests": [
        "bundles/cxx-ada-member-pointers/tests/member-pointers.C",
        "bundles/cxx-ada-member-pointers/tests/member_pointers_consumer.adb"
      ],
      "title": "C++ Ada pointers to members",
      "upstream_issue": "Pending GCC Bugzilla filing.",
      "upstream_submission_state": "Not yet filed or submitted upstream.",
      "variants": [
        {
          "id": "gcc-13-14",
          "patch": "bundles/cxx-ada-member-pointers/patches/gcc-13-14.patch",
          "sha256": "0f9516b6baedf127ba1dae85228ec5df9b8701c7fe36d0b89ef43b31238e4d7a",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "13.2.0",
            "14.2.0"
          ]
        },
        {
          "id": "gcc-15-16",
          "patch": "bundles/cxx-ada-member-pointers/patches/gcc-15-16.patch",
          "sha256": "d814882b5f602aa065f08a2b31ba6a1105b524e51d5d9a5616a885e7da19ba8d",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "13.2.0",
        "14.2.0",
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/cxx-ada-namespace-identity/patches/VARIANT.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/cxx-ada-namespace-identity",
      "expected_failure_before_patch": "GNAT rejects duplicate type, function, or class-package identifiers after namespaces are flattened.",
      "expected_success_after_patch": "Named namespaces become nested Ada packages; reopened namespaces merge, anonymous namespaces remain transparent, and the generated binding compiles and executes at -O0 and -O2.",
      "files_modified": [
        "gcc/c-family/c-ada-spec.cc",
        "gcc/testsuite/g++.dg/ada-spec/namespace-identity.C"
      ],
      "fixture_sha256": "de378837ad669a88cc15536ee9767d8737235e369ae7a2f7a5cb2c1841e7068b",
      "id": "cxx-ada-namespace-identity",
      "introduced_in_patchset": "1.2.0",
      "known_good_versions": [],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "The C++ Ada spec dumper flattens named namespaces, causing unrelated declarations with the same unqualified name to collide in Ada.",
      "readme_path": "bundles/cxx-ada-namespace-identity/README.md",
      "regression_tests": [
        "gcc/testsuite/g++.dg/ada-spec/namespace-identity.C"
      ],
      "repository_fixture": "bundles/cxx-ada-namespace-identity/tests/namespace-identity.C",
      "repository_test_runner": "bundles/cxx-ada-namespace-identity/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.2.0",
            "variant": null
          }
        },
        "1.2.0": {
          "13": {
            "role": "patched",
            "source_version": "13.2.0",
            "variant": "gcc-13-14"
          },
          "14": {
            "role": "patched",
            "source_version": "14.2.0",
            "variant": "gcc-13-14"
          },
          "15": {
            "role": "patched",
            "source_version": "15.3.0",
            "variant": "gcc-15-16"
          },
          "16": {
            "role": "patched",
            "source_version": "16.2.0",
            "variant": "gcc-15-16"
          }
        }
      },
      "schema": 1,
      "source_provenance": "Repository-authored GCC patch and executable regression; exact application verified locally against the pinned Darwin release identities. Pinned FSF release application is required by Linux CI.",
      "standalone_patch": true,
      "status": "accepted",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.2.0 GCC_MAJOR patched",
      "tests": [
        "bundles/cxx-ada-namespace-identity/tests/namespace-identity.C",
        "bundles/cxx-ada-namespace-identity/tests/namespace_identity_consumer.adb"
      ],
      "title": "C++ Ada namespace identity",
      "upstream_issue": "GCC PR 109260.",
      "upstream_submission_state": "Not yet filed or submitted upstream.",
      "variants": [
        {
          "id": "gcc-13-14",
          "patch": "bundles/cxx-ada-namespace-identity/patches/gcc-13-14.patch",
          "sha256": "c62ba1ba763642fc600acf53f3d63d350efd7b84524b99af62eced9d3ffe6c4b",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "13.2.0",
            "14.2.0"
          ]
        },
        {
          "id": "gcc-15-16",
          "patch": "bundles/cxx-ada-namespace-identity/patches/gcc-15-16.patch",
          "sha256": "9d3292a8b3b87083cce8f5cdf301a571ae8eab59bc5beb037e7f6fb894d429fc",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "13.2.0",
        "14.2.0",
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/cxx-ada-profile-formal-type-names/patches/VARIANT.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/cxx-ada-profile-formal-type-names",
      "expected_failure_before_patch": "GNAT rejects a constructor, result-returning function, and later-formal profile because an earlier formal hides an Ada type name.",
      "expected_success_after_patch": "Only formals that hide their own or a later profile type receive a stable the_ prefix, and the generated binding compiles, links, and executes at -O0 and -O2.",
      "files_modified": [
        "gcc/c-family/c-ada-spec.cc",
        "gcc/testsuite/g++.dg/ada-spec/profile-formal-type-names.C"
      ],
      "fixture_sha256": "f8384a7b9c1d6edbf03e0c12c4a27bc6009a93f16696f2ef6e3b8d941d968576",
      "id": "cxx-ada-profile-formal-type-names",
      "introduced_in_patchset": "1.2.0",
      "known_good_versions": [],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "A C++ formal parameter can hide a type used later in the generated Ada subprogram profile, causing GNAT to reject the binding.",
      "readme_path": "bundles/cxx-ada-profile-formal-type-names/README.md",
      "regression_tests": [
        "gcc/testsuite/g++.dg/ada-spec/profile-formal-type-names.C"
      ],
      "repository_fixture": "bundles/cxx-ada-profile-formal-type-names/tests/profile-formal-type-names.C",
      "repository_test_runner": "bundles/cxx-ada-profile-formal-type-names/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.2.0",
            "variant": null
          }
        },
        "1.2.0": {
          "13": {
            "role": "patched",
            "source_version": "13.2.0",
            "variant": "gcc-13-14"
          },
          "14": {
            "role": "patched",
            "source_version": "14.2.0",
            "variant": "gcc-13-14"
          },
          "15": {
            "role": "patched",
            "source_version": "15.3.0",
            "variant": "gcc-15-16"
          },
          "16": {
            "role": "patched",
            "source_version": "16.2.0",
            "variant": "gcc-15-16"
          }
        }
      },
      "schema": 1,
      "source_provenance": "Repository-authored GCC patch and executable regression; exact application verified locally against the pinned Darwin patchset inputs. Pinned FSF release application is required by Linux CI.",
      "standalone_patch": true,
      "status": "accepted",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.2.0 GCC_MAJOR patched",
      "tests": [
        "bundles/cxx-ada-profile-formal-type-names/tests/profile-formal-type-names.C",
        "bundles/cxx-ada-profile-formal-type-names/tests/profile_formal_type_names_consumer.adb"
      ],
      "title": "C++ Ada profile formal/type names",
      "upstream_issue": "Pending GCC Bugzilla filing.",
      "upstream_submission_state": "Not yet filed or submitted upstream.",
      "variants": [
        {
          "id": "gcc-13-14",
          "patch": "bundles/cxx-ada-profile-formal-type-names/patches/gcc-13-14.patch",
          "sha256": "5b610371119c0263e5509fc35a66d05b2cf0379e6ae533c0e55befcdf7e06835",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "13.2.0",
            "14.2.0"
          ]
        },
        {
          "id": "gcc-15-16",
          "patch": "bundles/cxx-ada-profile-formal-type-names/patches/gcc-15-16.patch",
          "sha256": "ee55fac0a61b8704e6286b09b0fae2f0a9c63cbf40e978759f715d0b25d376a5",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "13.2.0",
        "14.2.0",
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/cxx-ada-qualified-method-names/patches/VARIANT.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/cxx-ada-qualified-method-names",
      "expected_failure_before_patch": "GNAT rejects duplicate method or assignment declarations because C++ qualifier identity is absent from the Ada names.",
      "expected_success_after_patch": "Stable qualifier suffixes produce compilable Ada and call the correct cv/ref-qualified methods and copy/move assignment symbols at -O0 and -O2.",
      "files_modified": [
        "gcc/c-family/c-ada-spec.h",
        "gcc/c-family/c-ada-spec.cc",
        "gcc/cp/decl2.cc",
        "gcc/testsuite/g++.dg/ada-spec/qualified-method-names.C"
      ],
      "fixture_sha256": "38096d50c80f04ed37b55d29eae96b1dc56e8fa25ff019584d4180fdf1501e7c",
      "id": "cxx-ada-qualified-method-names",
      "introduced_in_patchset": "1.2.0",
      "known_good_versions": [],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "The C++ Ada spec dumper emits colliding names for cv/ref-qualified methods and for copy/move assignment operators.",
      "readme_path": "bundles/cxx-ada-qualified-method-names/README.md",
      "regression_tests": [
        "gcc/testsuite/g++.dg/ada-spec/qualified-method-names.C"
      ],
      "repository_fixture": "bundles/cxx-ada-qualified-method-names/tests/qualified-method-names.C",
      "repository_test_runner": "bundles/cxx-ada-qualified-method-names/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.2.0",
            "variant": null
          }
        },
        "1.2.0": {
          "13": {
            "role": "patched",
            "source_version": "13.2.0",
            "variant": "gcc-13-14"
          },
          "14": {
            "role": "patched",
            "source_version": "14.2.0",
            "variant": "gcc-13-14"
          },
          "15": {
            "role": "patched",
            "source_version": "15.3.0",
            "variant": "gcc-15-16"
          },
          "16": {
            "role": "patched",
            "source_version": "16.2.0",
            "variant": "gcc-15-16"
          }
        }
      },
      "schema": 1,
      "source_provenance": "Repository-authored GCC patch and executable regression; exact application verified locally against the pinned Darwin release identities. Pinned FSF release application is required by Linux CI.",
      "standalone_patch": true,
      "status": "accepted",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.2.0 GCC_MAJOR patched",
      "tests": [
        "bundles/cxx-ada-qualified-method-names/tests/qualified-method-names.C",
        "bundles/cxx-ada-qualified-method-names/tests/qualified_method_names_consumer.adb"
      ],
      "title": "C++ Ada qualified method names",
      "upstream_issue": "Not yet filed.",
      "upstream_submission_state": "Not yet filed or submitted upstream.",
      "variants": [
        {
          "id": "gcc-13-14",
          "patch": "bundles/cxx-ada-qualified-method-names/patches/gcc-13-14.patch",
          "sha256": "d06449cb1c9eafacb3de478c1b5e0ef0404af6d4068b3f3bf46392d97c31eb15",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "13.2.0",
            "14.2.0"
          ]
        },
        {
          "id": "gcc-15-16",
          "patch": "bundles/cxx-ada-qualified-method-names/patches/gcc-15-16.patch",
          "sha256": "af23fec81ce3ada9bc5d4ae61c0ce3c11c8981646d28175b88a56981411810bc",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "13.2.0",
        "14.2.0",
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/cxx-ada-template-nested-types/patches/VARIANT.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/cxx-ada-template-nested-types",
      "expected_failure_before_patch": "GNAT rejects both generated template packages because their anon_array field types are undefined.",
      "expected_success_after_patch": "Both packages declare their anonymous arrays, compile, and pass their records to C++ at -O0 and -O2.",
      "files_modified": [
        "gcc/c-family/c-ada-spec.cc",
        "gcc/testsuite/g++.dg/ada-spec/template-nested-types.C"
      ],
      "fixture_sha256": "76e26b3452197d34e248b1739b50e9e78f51fd4cdca9bfd46e70b6b6c582a963",
      "id": "cxx-ada-template-nested-types",
      "introduced_in_patchset": "1.2.0",
      "known_good_versions": [],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "Concrete C++ class-template packages reference anonymous array field types without declaring them in the generated Ada specification.",
      "readme_path": "bundles/cxx-ada-template-nested-types/README.md",
      "regression_tests": [
        "gcc/testsuite/g++.dg/ada-spec/template-nested-types.C"
      ],
      "repository_fixture": "bundles/cxx-ada-template-nested-types/tests/template-nested-types.C",
      "repository_test_runner": "bundles/cxx-ada-template-nested-types/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.2.0",
            "variant": null
          }
        },
        "1.2.0": {
          "13": {
            "role": "patched",
            "source_version": "13.2.0",
            "variant": "gcc-13-14"
          },
          "14": {
            "role": "patched",
            "source_version": "14.2.0",
            "variant": "gcc-13-14"
          },
          "15": {
            "role": "patched",
            "source_version": "15.3.0",
            "variant": "gcc-15-16"
          },
          "16": {
            "role": "patched",
            "source_version": "16.2.0",
            "variant": "gcc-15-16"
          }
        }
      },
      "schema": 1,
      "source_provenance": "Repository-authored GCC patch and executable regression; exact application verified locally against the pinned Darwin release identities. Pinned FSF release application is required by Linux CI.",
      "standalone_patch": true,
      "status": "accepted",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.2.0 GCC_MAJOR patched",
      "tests": [
        "bundles/cxx-ada-template-nested-types/tests/template-nested-types.C",
        "bundles/cxx-ada-template-nested-types/tests/template_nested_types_consumer.adb"
      ],
      "title": "C++ Ada template nested types",
      "upstream_issue": "Pending GCC Bugzilla filing.",
      "upstream_submission_state": "Not yet filed or submitted upstream.",
      "variants": [
        {
          "id": "gcc-13-14",
          "patch": "bundles/cxx-ada-template-nested-types/patches/gcc-13-14.patch",
          "sha256": "85f8c81874baba2e24a5cbacd797935139790822eb7383d6d844d7a1c0de8044",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "13.2.0",
            "14.2.0"
          ]
        },
        {
          "id": "gcc-15-16",
          "patch": "bundles/cxx-ada-template-nested-types/patches/gcc-15-16.patch",
          "sha256": "a79edec02ccea6b8a2706132c55f358052c976906065a04ea4620de611fba0be",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "13.2.0",
        "14.2.0",
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/cxx-ada-template-qualification/patches/VARIANT.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/cxx-ada-template-qualification",
      "expected_failure_before_patch": "The generated Ada spec is rejected because Box from Box_int and Box_double is hidden by multiple use clauses.",
      "expected_success_after_patch": "The generated spec qualifies aliases, fields, parameters, and results; its Ada consumer prints PASS at -O0 and -O2.",
      "files_modified": [
        "gcc/c-family/c-ada-spec.cc",
        "gcc/testsuite/g++.dg/ada-spec/template-instantiation-qualification.C"
      ],
      "fixture_sha256": "25deb923ea065a63be87145af14a794da96340b832b63d5ac39c20e42ed45e62",
      "id": "cxx-ada-template-qualification",
      "introduced_in_patchset": "1.2.0",
      "known_good_versions": [],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "The C++ Ada spec dumper drops the generated package qualifier from references to concrete template instances, making specs with multiple instantiations ambiguous.",
      "readme_path": "bundles/cxx-ada-template-qualification/README.md",
      "regression_tests": [
        "gcc/testsuite/g++.dg/ada-spec/template-instantiation-qualification.C"
      ],
      "repository_fixture": "bundles/cxx-ada-template-qualification/tests/template_instantiation_qualification.C",
      "repository_test_runner": "bundles/cxx-ada-template-qualification/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.2.0",
            "variant": null
          }
        },
        "1.2.0": {
          "13": {
            "role": "patched",
            "source_version": "13.2.0",
            "variant": "gcc-13-14"
          },
          "14": {
            "role": "patched",
            "source_version": "14.2.0",
            "variant": "gcc-13-14"
          },
          "15": {
            "role": "patched",
            "source_version": "15.3.0",
            "variant": "gcc-15-16"
          },
          "16": {
            "role": "patched",
            "source_version": "16.2.0",
            "variant": "gcc-15-16"
          }
        }
      },
      "schema": 1,
      "source_provenance": "Repository-authored GCC patch and executable regression; exact application verified locally against the pinned Darwin release identities. Pinned FSF release application is required by Linux CI.",
      "standalone_patch": true,
      "status": "accepted",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.2.0 GCC_MAJOR patched",
      "tests": [
        "bundles/cxx-ada-template-qualification/tests/template_instantiation_qualification.C",
        "bundles/cxx-ada-template-qualification/tests/template_instantiation_qualification.adb"
      ],
      "title": "C++ Ada template-instance qualification",
      "upstream_issue": "Pending GCC Bugzilla filing.",
      "upstream_submission_state": "Not yet filed or submitted upstream.",
      "variants": [
        {
          "id": "gcc-13-14",
          "patch": "bundles/cxx-ada-template-qualification/patches/gcc-13-14.patch",
          "sha256": "06137cd0c8d608c964402803ef0ae788afd944d43a791387f7866d168d28295a",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "13.2.0",
            "14.2.0"
          ]
        },
        {
          "id": "gcc-15-16",
          "patch": "bundles/cxx-ada-template-qualification/patches/gcc-15-16.patch",
          "sha256": "f6dad26d76a5ef450e8294175ed65f2e337fbaf6e9998372fa4e65fe81512873",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "13.2.0",
        "14.2.0",
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/cxx-ada-template-record-termination/patches/VARIANT.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/cxx-ada-template-record-termination",
      "expected_failure_before_patch": "GNAT rejects the generated Ada specification at the unterminated C_Pass_By_Copy aspect.",
      "expected_success_after_patch": "Every generated template record is terminated and the Ada consumer compiles at -O0 and -O2.",
      "files_modified": [
        "gcc/c-family/c-ada-spec.cc",
        "gcc/testsuite/g++.dg/ada-spec/template-record-termination.C"
      ],
      "fixture_sha256": "c8497f40d88ee08980eb6d7414f8a01c95e81161974093fee81d2adc6dde4f13",
      "id": "cxx-ada-template-record-termination",
      "introduced_in_patchset": "1.2.0",
      "known_good_versions": [],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "The C++ Ada spec dumper omits the terminating semicolon from trivial record declarations emitted for concrete class-template instances.",
      "readme_path": "bundles/cxx-ada-template-record-termination/README.md",
      "regression_tests": [
        "gcc/testsuite/g++.dg/ada-spec/template-record-termination.C"
      ],
      "repository_fixture": "bundles/cxx-ada-template-record-termination/tests/template-record-termination.C",
      "repository_test_runner": "bundles/cxx-ada-template-record-termination/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.2.0",
            "variant": null
          }
        },
        "1.2.0": {
          "13": {
            "role": "patched",
            "source_version": "13.2.0",
            "variant": "gcc-13-14"
          },
          "14": {
            "role": "patched",
            "source_version": "14.2.0",
            "variant": "gcc-13-14"
          },
          "15": {
            "role": "patched",
            "source_version": "15.3.0",
            "variant": "gcc-15-16"
          },
          "16": {
            "role": "patched",
            "source_version": "16.2.0",
            "variant": "gcc-15-16"
          }
        }
      },
      "schema": 1,
      "source_provenance": "Repository-authored GCC patch and executable regression; exact application verified locally against the pinned Darwin release identities. Pinned FSF release application is required by Linux CI.",
      "standalone_patch": true,
      "status": "accepted",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.2.0 GCC_MAJOR patched",
      "tests": [
        "bundles/cxx-ada-template-record-termination/tests/template-record-termination.C",
        "bundles/cxx-ada-template-record-termination/tests/template_record_termination_consumer.adb"
      ],
      "title": "C++ Ada template record termination",
      "upstream_issue": "Pending GCC Bugzilla filing.",
      "upstream_submission_state": "Not yet filed or submitted upstream.",
      "variants": [
        {
          "id": "gcc-13-14",
          "patch": "bundles/cxx-ada-template-record-termination/patches/gcc-13-14.patch",
          "sha256": "d3e4f3784943166957eb53b8ec5031f91eedc4946b272e6122149625cf06a8ae",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "13.2.0",
            "14.2.0"
          ]
        },
        {
          "id": "gcc-15-16",
          "patch": "bundles/cxx-ada-template-record-termination/patches/gcc-15-16.patch",
          "sha256": "410ff115e39d1b6f9e3f5c31c3bebec41e2f10cf2d2641b0e78b1e2f0ba31ef7",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "13.2.0",
        "14.2.0",
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/cxx-ada-vector-types/patches/VARIANT.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/cxx-ada-vector-types",
      "expected_failure_before_patch": "GNAT rejects vector typedefs and signatures containing the mapper's <vector> placeholder.",
      "expected_success_after_patch": "Fixed integer and floating-point machine vectors compile and round-trip by value through free functions and a C wrapper around a virtual C++ call at -O0 and -O2; scalable vectors fail closed without a mapper assertion.",
      "files_modified": [
        "gcc/c-family/c-ada-spec.cc",
        "gcc/testsuite/g++.dg/ada-spec/scalable-vector.C",
        "gcc/testsuite/g++.dg/ada-spec/vector-types.C"
      ],
      "fixture_sha256": "6a7481d30d18820f3b9c824ea4aa88b24474b6665f5f035a05d3216507745ea6",
      "id": "cxx-ada-vector-types",
      "introduced_in_patchset": "1.2.0",
      "known_good_versions": [],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "Fixed-size C++ vector typedefs and signatures are emitted as invalid <vector> placeholders, with no usable Ada machine type or calling convention.",
      "readme_path": "bundles/cxx-ada-vector-types/README.md",
      "regression_tests": [
        "gcc/testsuite/g++.dg/ada-spec/vector-types.C",
        "gcc/testsuite/g++.dg/ada-spec/scalable-vector.C"
      ],
      "repository_fixture": "bundles/cxx-ada-vector-types/tests/vector-types.C",
      "repository_test_runner": "bundles/cxx-ada-vector-types/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.2.0",
            "variant": null
          }
        },
        "1.2.0": {
          "13": {
            "role": "patched",
            "source_version": "13.2.0",
            "variant": "gcc-13-14"
          },
          "14": {
            "role": "patched",
            "source_version": "14.2.0",
            "variant": "gcc-13-14"
          },
          "15": {
            "role": "patched",
            "source_version": "15.3.0",
            "variant": "gcc-15-16"
          },
          "16": {
            "role": "patched",
            "source_version": "16.2.0",
            "variant": "gcc-15-16"
          }
        }
      },
      "schema": 1,
      "source_provenance": "Repository-authored GCC patch and executable regression; exact application verified locally against the pinned Darwin release identities. Pinned FSF release application is required by Linux CI.",
      "standalone_patch": true,
      "status": "accepted",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.2.0 GCC_MAJOR patched",
      "tests": [
        "bundles/cxx-ada-vector-types/tests/vector-types.C",
        "bundles/cxx-ada-vector-types/tests/vector_types_consumer.adb"
      ],
      "title": "C++ Ada machine vector types",
      "upstream_issue": "Pending GCC Bugzilla filing.",
      "upstream_submission_state": "Not yet filed or submitted upstream.",
      "variants": [
        {
          "id": "gcc-13-14",
          "patch": "bundles/cxx-ada-vector-types/patches/gcc-13-14.patch",
          "sha256": "23cb388f3ebaf8c1969a94c0174531bbb8c7304b20753080f57517ee2ce1ccac",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "13.2.0",
            "14.2.0"
          ]
        },
        {
          "id": "gcc-15-16",
          "patch": "bundles/cxx-ada-vector-types/patches/gcc-15-16.patch",
          "sha256": "809d3fa51b9cdd2d6a68646cd0949804d5b38e6f8e2109082877147c122b7e0b",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "13.2.0",
        "14.2.0",
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/cxx-ada-virtual-diamond-layout/patches/VARIANT.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/cxx-ada-virtual-diamond-layout",
      "expected_failure_before_patch": "Ada's complete base component types duplicate the virtual root and disagree with the C++ diamond size and visible field offsets.",
      "expected_success_after_patch": "Shortened as-base storage types omit the shared virtual root while preserving both direct-base fields, and Ada and C++ agree at -O0 and -O2.",
      "files_modified": [
        "gcc/c-family/c-ada-spec.cc",
        "gcc/testsuite/g++.dg/ada-spec/virtual-diamond-layout.C"
      ],
      "fixture_sha256": "7184d760ac39122366a2cf12ec337b417244147ac5303de2bc413aa344c9148e",
      "id": "cxx-ada-virtual-diamond-layout",
      "known_good_versions": [],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "The C++ Ada mapper uses complete virtual-base class types for shortened direct base subobjects in a virtual diamond.",
      "readme_path": "bundles/cxx-ada-virtual-diamond-layout/README.md",
      "regression_tests": [
        "gcc/testsuite/g++.dg/ada-spec/virtual-diamond-layout.C"
      ],
      "repository_fixture": "bundles/cxx-ada-virtual-diamond-layout/tests/virtual-diamond-layout.C",
      "repository_test_runner": "bundles/cxx-ada-virtual-diamond-layout/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.2.0",
            "variant": null
          }
        },
        "1.2.0": {
          "13": {
            "role": "staged",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "staged",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "staged",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "staged",
            "source_version": "16.2.0",
            "variant": null
          }
        }
      },
      "schema": 1,
      "source_provenance": "Repository-authored GCC patch and executable regression; exact application verified locally against the pinned Darwin patchset inputs. Pinned FSF release application is required by Linux CI.",
      "staged_depends_on": [
        "cxx-ada-virtual-inheritance-layout"
      ],
      "staged_in_patchset": "1.2.0",
      "staged_reason": "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.",
      "standalone_patch": false,
      "status": "staged",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.2.0 GCC_MAJOR patched",
      "tests": [
        "bundles/cxx-ada-virtual-diamond-layout/tests/virtual-diamond-layout.C",
        "bundles/cxx-ada-virtual-diamond-layout/tests/virtual_diamond_layout_consumer.adb"
      ],
      "title": "C++ Ada virtual-diamond base storage",
      "upstream_issue": "Pending GCC Bugzilla filing.",
      "upstream_submission_state": "Not yet filed or submitted upstream.",
      "variants": [
        {
          "id": "gcc-13-14",
          "patch": "bundles/cxx-ada-virtual-diamond-layout/patches/gcc-13-14.patch",
          "sha256": "6d7f7ef1f3010926319a3c312e7c3a5bb59a9a64870415d03cd72a12efcdfc64",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "13.2.0",
            "14.2.0"
          ]
        },
        {
          "id": "gcc-15-16",
          "patch": "bundles/cxx-ada-virtual-diamond-layout/patches/gcc-15-16.patch",
          "sha256": "d07a4f5152b50054991ce469f43e5afe2a09f6a9d777b19e0e3935d0ae6a7e08",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "13.2.0",
        "14.2.0",
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/cxx-ada-virtual-inheritance-layout/patches/VARIANT.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/cxx-ada-virtual-inheritance-layout",
      "expected_failure_before_patch": "The generated Ada object is too small and under-aligned, and both visible components have incorrect positions.",
      "expected_success_after_patch": "Ada and C++ agree on complete size, alignment, direct-member position, virtual-base position, and cross-language field values at -O0 and -O2.",
      "files_modified": [
        "gcc/c-family/c-ada-spec.cc",
        "gcc/c-family/c-ada-spec.h",
        "gcc/cp/decl2.cc",
        "gcc/testsuite/g++.dg/ada-spec/virtual-inheritance-layout.C"
      ],
      "fixture_sha256": "dd918bb69e1685c3080f20e8f5b0933ac5499009e14536543e4c4ad2b9fa7943",
      "id": "cxx-ada-virtual-inheritance-layout",
      "known_good_versions": [],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "The C++ Ada mapper drops the size, alignment, and component positions of classes with virtual bases.",
      "readme_path": "bundles/cxx-ada-virtual-inheritance-layout/README.md",
      "regression_tests": [
        "gcc/testsuite/g++.dg/ada-spec/virtual-inheritance-layout.C"
      ],
      "repository_fixture": "bundles/cxx-ada-virtual-inheritance-layout/tests/virtual-inheritance-layout.C",
      "repository_test_runner": "bundles/cxx-ada-virtual-inheritance-layout/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.2.0",
            "variant": null
          }
        },
        "1.2.0": {
          "13": {
            "role": "staged",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "staged",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "staged",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "staged",
            "source_version": "16.2.0",
            "variant": null
          }
        }
      },
      "schema": 1,
      "source_provenance": "Repository-authored GCC patch and executable regression; exact application verified locally against the pinned Darwin patchset inputs. Pinned FSF release application is required by Linux CI.",
      "staged_depends_on": [],
      "staged_in_patchset": "1.2.0",
      "staged_reason": "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.",
      "standalone_patch": false,
      "status": "staged",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.2.0 GCC_MAJOR patched",
      "tests": [
        "bundles/cxx-ada-virtual-inheritance-layout/tests/virtual-inheritance-layout.C",
        "bundles/cxx-ada-virtual-inheritance-layout/tests/virtual_inheritance_layout_consumer.adb"
      ],
      "title": "C++ Ada virtual-inheritance layout",
      "upstream_issue": "Pending GCC Bugzilla filing.",
      "upstream_submission_state": "Not yet filed or submitted upstream.",
      "variants": [
        {
          "id": "gcc-13",
          "patch": "bundles/cxx-ada-virtual-inheritance-layout/patches/gcc-13.patch",
          "sha256": "919cfe35481ec31d1bf47768f419043951b0bb8a1416e1d34cf1075c5fff76b0",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "13.2.0"
          ]
        },
        {
          "id": "gcc-14",
          "patch": "bundles/cxx-ada-virtual-inheritance-layout/patches/gcc-14.patch",
          "sha256": "db832d2ab314145855a67e1c46d5bb1cff3a6cd4c3b04eb94d8665a0acec176e",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "14.2.0"
          ]
        },
        {
          "id": "gcc-15-16",
          "patch": "bundles/cxx-ada-virtual-inheritance-layout/patches/gcc-15-16.patch",
          "sha256": "c833a38a4be5e984feb11ef253b34cbae120547e46732f1fb69954c8022472a5",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "13.2.0",
        "14.2.0",
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/cxx-ada-visible-type-method-names/patches/VARIANT.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/cxx-ada-visible-type-method-names",
      "expected_failure_before_patch": "GNAT rejects a later profile because a method and a type from different generated class packages are both use-visible under the same Ada identifier.",
      "expected_success_after_patch": "Only a method matching any visible generated type receives a stable Method suffix, retains its C++ external symbol, and executes at -O0 and -O2.",
      "files_modified": [
        "gcc/c-family/c-ada-spec.cc",
        "gcc/testsuite/g++.dg/ada-spec/visible-type-method-names.C"
      ],
      "fixture_sha256": "c1f347b7a4588c023f7c0e266f97966bc0f89ce377add6ac3cafbb9566776fca",
      "id": "cxx-ada-visible-type-method-names",
      "introduced_in_patchset": "1.2.0",
      "known_good_versions": [],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "A C++ method can collide with a type made use-visible from another generated class package, making later Ada profiles ambiguous.",
      "readme_path": "bundles/cxx-ada-visible-type-method-names/README.md",
      "regression_tests": [
        "gcc/testsuite/g++.dg/ada-spec/visible-type-method-names.C"
      ],
      "repository_fixture": "bundles/cxx-ada-visible-type-method-names/tests/visible-type-method-names.C",
      "repository_test_runner": "bundles/cxx-ada-visible-type-method-names/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.2.0",
            "variant": null
          }
        },
        "1.2.0": {
          "13": {
            "role": "patched",
            "source_version": "13.2.0",
            "variant": "gcc-13-14"
          },
          "14": {
            "role": "patched",
            "source_version": "14.2.0",
            "variant": "gcc-13-14"
          },
          "15": {
            "role": "patched",
            "source_version": "15.3.0",
            "variant": "gcc-15-16"
          },
          "16": {
            "role": "patched",
            "source_version": "16.2.0",
            "variant": "gcc-15-16"
          }
        }
      },
      "schema": 1,
      "source_provenance": "Repository-authored GCC patch and executable regression; exact application verified locally against the pinned Darwin patchset inputs. Pinned FSF release application is required by Linux CI.",
      "standalone_patch": false,
      "status": "accepted",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.2.0 GCC_MAJOR patched",
      "tests": [
        "bundles/cxx-ada-visible-type-method-names/tests/visible-type-method-names.C",
        "bundles/cxx-ada-visible-type-method-names/tests/visible_type_method_names_consumer.adb"
      ],
      "title": "C++ Ada visible type/method names",
      "upstream_issue": "Pending GCC Bugzilla filing.",
      "upstream_submission_state": "Not yet filed or submitted upstream.",
      "variants": [
        {
          "id": "gcc-13-14",
          "patch": "bundles/cxx-ada-visible-type-method-names/patches/gcc-13-14.patch",
          "sha256": "504c1639d8cb2068bc6e2f3fe46a74f9b2a7f8f18a600dfc7e7ee79323c6c02f",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "13.2.0",
            "14.2.0"
          ]
        },
        {
          "id": "gcc-15-16",
          "patch": "bundles/cxx-ada-visible-type-method-names/patches/gcc-15-16.patch",
          "sha256": "afbd2983b7d3f967c388db9a18c897659b92be96a742fdf230c19bec1f065149",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/predicate-conditional-aggregate-box/patches/gcc-15-16.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/predicate-conditional-aggregate-box",
      "expected_failure_before_patch": "GCC 15 and 16 abort with a GNAT BUG DETECTED box reporting 'in gnat_to_gnu, at ada/gcc-interface/trans.cc' and produce no executable, at -O0 and -O2 alike. The defect is in the target-independent front end and was measured on aarch64-apple-darwin only; the Linux lanes of this patchset are the first measurement on x86-64 and AArch64 Linux.",
      "expected_success_after_patch": "The executable test prints PASS predicate conditional aggregate box at -O0 and -O2, having checked that each box supplied the component default High = 25 and that two violating branches still raised Assertion_Error.",
      "files_modified": [
        "gcc/ada/exp_util.adb",
        "gcc/testsuite/gnat.dg/predicate_conditional_aggregate_box.adb"
      ],
      "fixture_sha256": "6b50c3a458c708697c43add1f9f292feba7f75b99c90fb9e606f3da58cb8f162",
      "id": "predicate-conditional-aggregate-box",
      "introduced_in_patchset": "1.2.0",
      "known_good_versions": [
        "13.2.0",
        "14.2.0"
      ],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "Relocating a delayed conditional expression into a reference for a predicate check leaves its boxed aggregates unexpanded.",
      "readme_path": "bundles/predicate-conditional-aggregate-box/README.md",
      "regression_tests": [
        "gcc/testsuite/gnat.dg/predicate_conditional_aggregate_box.adb"
      ],
      "repository_fixture": "bundles/predicate-conditional-aggregate-box/tests/predicate_conditional_aggregate_box.adb",
      "repository_test_runner": "bundles/predicate-conditional-aggregate-box/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.2.0",
            "variant": null
          }
        },
        "1.2.0": {
          "13": {
            "role": "control",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "control",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "patched",
            "source_version": "15.3.0",
            "variant": "gcc-15-16"
          },
          "16": {
            "role": "patched",
            "source_version": "16.2.0",
            "variant": "gcc-15-16"
          }
        }
      },
      "schema": 1,
      "source_provenance": "Reduced reproducer, version sweep, and necessary ingredients recorded in the gnat-patches issue; correction derived from the pinned GCC sources. The pinned FSF and Darwin gcc/ada/exp_util.adb blobs are identical for every declared release, so a single canonical patch covers both source flavors.",
      "standalone_patch": true,
      "status": "accepted",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.2.0 GCC_MAJOR patched",
      "tests": [
        "bundles/predicate-conditional-aggregate-box/tests/predicate_conditional_aggregate_box.adb"
      ],
      "title": "Boxed aggregate in a predicated conditional expression",
      "upstream_issue": "https://github.com/flyology-ada/gnat-patches/issues/4",
      "upstream_submission_state": "Tracked for GCC Bugzilla filing and gcc-patches submission; no GCC PR or mailing-list archive is recorded yet.",
      "variants": [
        {
          "id": "gcc-15-16",
          "patch": "bundles/predicate-conditional-aggregate-box/patches/gcc-15-16.patch",
          "sha256": "bbf48d37722fa7c3846c7a7cf716f8a60f02cecde3c4cffea63b663cf3b079a8",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "13.2.0",
        "14.2.0",
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/protected-duration-validity/patches/gcc-13-16.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/protected-duration-validity",
      "expected_failure_before_patch": "On Linux x86-64 with -gnatVa the unoptimized program raises CONSTRAINT_ERROR 'invalid data' for a valid negative Duration, and optimized compilation aborts in fold_convert_loc before producing an executable. The same round trip succeeds on AArch64 before the patch, so those lanes are unpatched target controls.",
      "expected_success_after_patch": "The executable test prints PASS protected Duration validity at -O0 and -O2 with -gnatVa on all supported targets.",
      "files_modified": [
        "gcc/ada/exp_ch9.adb",
        "gcc/testsuite/gnat.dg/protected_duration_validity.adb"
      ],
      "fixture_sha256": "c64d6891008d30b5be8fd57768033c394a79fccd01dcc0de9d8633cff5d1dbe9",
      "id": "protected-duration-validity",
      "introduced_in_patchset": "1.1.0",
      "known_good_versions": [],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "Automatically selected lock-free protected bodies retain invalid Duration validity checks.",
      "readme_path": "bundles/protected-duration-validity/README.md",
      "regression_tests": [
        "gcc/testsuite/gnat.dg/protected_duration_validity.adb"
      ],
      "repository_fixture": "bundles/protected-duration-validity/tests/protected_duration_validity.adb",
      "repository_test_runner": "bundles/protected-duration-validity/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.0.1": {
          "13": {
            "role": "absent",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "absent",
            "source_version": "14.2.0",
            "variant": null
          },
          "15": {
            "role": "absent",
            "source_version": "15.3.0",
            "variant": null
          },
          "16": {
            "role": "absent",
            "source_version": "16.1.0",
            "variant": null
          }
        },
        "1.1.0": {
          "13": {
            "role": "patched",
            "source_version": "13.2.0",
            "variant": "gcc-13-16"
          },
          "14": {
            "role": "patched",
            "source_version": "14.2.0",
            "variant": "gcc-13-16"
          },
          "15": {
            "role": "patched",
            "source_version": "15.3.0",
            "variant": "gcc-13-16"
          },
          "16": {
            "role": "patched",
            "source_version": "16.2.0",
            "variant": "gcc-13-16"
          }
        },
        "1.2.0": {
          "13": {
            "role": "patched",
            "source_version": "13.2.0",
            "variant": "gcc-13-16"
          },
          "14": {
            "role": "patched",
            "source_version": "14.2.0",
            "variant": "gcc-13-16"
          },
          "15": {
            "role": "patched",
            "source_version": "15.3.0",
            "variant": "gcc-13-16"
          },
          "16": {
            "role": "patched",
            "source_version": "16.2.0",
            "variant": "gcc-13-16"
          }
        }
      },
      "schema": 1,
      "source_provenance": "Reproducer and cross-target observations recorded in the Flyology issue; correction derived from the pinned GCC sources and verified against every pinned FSF and Darwin source identity.",
      "standalone_patch": true,
      "status": "accepted",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.1.0 GCC_MAJOR patched",
      "tests": [
        "bundles/protected-duration-validity/tests/protected_duration_validity.adb"
      ],
      "title": "Protected Duration validity checks",
      "upstream_issue": "https://github.com/flyology-ada/flyology/issues/21",
      "upstream_submission_state": "Tracked for GCC Bugzilla filing and gcc-patches submission; no GCC PR or mailing-list archive is recorded yet.",
      "variants": [
        {
          "id": "gcc-13-16",
          "patch": "bundles/protected-duration-validity/patches/gcc-13-16.patch",
          "sha256": "6338408d12909a33b08aacb4e7fed00c3c3c861ef6646192ff640afc1309bc2e",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "13.2.0",
            "14.2.0",
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    },
    {
      "affected_versions": [
        "14.2.0",
        "15.3.0",
        "16.1.0",
        "16.2.0"
      ],
      "application_command": "patch --fuzz=0 -p1 -i bundles/storage-model-actuals/patches/gcc-14-16.patch",
      "build_command": "PATH=/path/to/bootstrap/bin:$PATH ./scripts/build-gnat.sh SOURCE BUILD INSTALL",
      "directory": "bundles/storage-model-actuals",
      "expected_failure_before_patch": "GCC 14 through 16 raise CONSTRAINT_ERROR (erroneous memory access) at the first selected-component actual.",
      "expected_success_after_patch": "The executable test prints PASS reads= 16 writes= 8 read_bytes= 100 write_bytes= 80 at -O0 and -O2.",
      "files_modified": [
        "gcc/ada/exp_ch6.adb",
        "gcc/testsuite/gnat.dg/storage_model_actuals.adb"
      ],
      "fixture_sha256": "83ebec06b0326610c2b239faa5a488e9dc07eafe699d211b0f162dceb5c5f79f",
      "id": "storage-model-actuals",
      "introduced_in_patchset": "1.0.0",
      "known_good_versions": [
        "13.2.0"
      ],
      "licensing": "GCC-derived compiler hunks remain GPL-3.0-or-later. The new test is proposed for the GCC testsuite under GCC project terms.",
      "problem": "Selected and indexed actuals rooted at Designated_Storage_Model dereferences bypass Copy_From and Copy_To.",
      "readme_path": "bundles/storage-model-actuals/README.md",
      "regression_tests": [
        "gcc/testsuite/gnat.dg/storage_model_actuals.adb"
      ],
      "repository_fixture": "bundles/storage-model-actuals/tests/storage_model_actuals.adb",
      "repository_test_runner": "bundles/storage-model-actuals/run-test.sh",
      "roles": {
        "1.0.0": {
          "13": {
            "role": "control",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "patched",
            "source_version": "14.2.0",
            "variant": "gcc-14-16"
          },
          "15": {
            "role": "patched",
            "source_version": "15.3.0",
            "variant": "gcc-14-16"
          },
          "16": {
            "role": "patched",
            "source_version": "16.1.0",
            "variant": "gcc-14-16"
          }
        },
        "1.0.1": {
          "13": {
            "role": "control",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "patched",
            "source_version": "14.2.0",
            "variant": "gcc-14-16"
          },
          "15": {
            "role": "patched",
            "source_version": "15.3.0",
            "variant": "gcc-14-16"
          },
          "16": {
            "role": "patched",
            "source_version": "16.1.0",
            "variant": "gcc-14-16"
          }
        },
        "1.1.0": {
          "13": {
            "role": "control",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "patched",
            "source_version": "14.2.0",
            "variant": "gcc-14-16"
          },
          "15": {
            "role": "patched",
            "source_version": "15.3.0",
            "variant": "gcc-14-16"
          },
          "16": {
            "role": "patched",
            "source_version": "16.2.0",
            "variant": "gcc-14-16"
          }
        },
        "1.2.0": {
          "13": {
            "role": "control",
            "source_version": "13.2.0",
            "variant": null
          },
          "14": {
            "role": "patched",
            "source_version": "14.2.0",
            "variant": "gcc-14-16"
          },
          "15": {
            "role": "patched",
            "source_version": "15.3.0",
            "variant": "gcc-14-16"
          },
          "16": {
            "role": "patched",
            "source_version": "16.2.0",
            "variant": "gcc-14-16"
          }
        }
      },
      "schema": 1,
      "source_provenance": "Proposed GCC patch and executable gnat.dg test recorded in the upstream issue; source contexts verified against the pinned FSF and Darwin release identities.",
      "standalone_patch": true,
      "status": "accepted",
      "test_command": "./scripts/run-regressions.sh INSTALL 1.1.0 GCC_MAJOR patched",
      "tests": [
        "bundles/storage-model-actuals/tests/storage_model_actuals.adb"
      ],
      "title": "Storage-model component actuals",
      "upstream_issue": "https://github.com/flyology-ada/flyology/issues/27",
      "upstream_submission_state": "Tracked for GCC Bugzilla filing and gcc-patches submission; no GCC PR or mailing-list archive is recorded yet.",
      "variants": [
        {
          "id": "gcc-14-16",
          "patch": "bundles/storage-model-actuals/patches/gcc-14-16.patch",
          "sha256": "58bac1ca3a1c21ca3d097867e1246f6deef98cc048a76fec3d30f3c7b4482a9e",
          "source_flavors": [
            "linux",
            "darwin_arm64"
          ],
          "versions": [
            "14.2.0",
            "15.3.0",
            "16.1.0",
            "16.2.0"
          ]
        }
      ]
    }
  ],
  "canonical_url": "https://gnat-patches.flyology.org/",
  "generated_at": "2026-08-20T16:06:15Z",
  "latest_patchset": "1.2.0",
  "latest_published_patchset": "1.1.0",
  "panels": [
    {
      "coverage": {
        "generated": {
          "atomic_catalog": "panels/cxx-ada-spec/generated/catalog.py",
          "atomic_expectations": "panels/cxx-ada-spec/generated/catalog-expectations.toml",
          "grammar_generator": "panels/cxx-ada-spec/generated/grammar.py",
          "pairwise_expectations": "panels/cxx-ada-spec/generated/expectations.toml",
          "pairwise_generator": "panels/cxx-ada-spec/generated/pairwise.py"
        },
        "groups": [
          {
            "cases": [
              "anonymous_aggregates",
              "anonymous_enum",
              "bit_fields",
              "complex_and_vector",
              "extended_characters",
              "flexible_array",
              "fundamental_scalars",
              "incomplete_forward_declaration",
              "integer_128",
              "multidimensional_arrays",
              "multiple_indirection",
              "nullptr_type",
              "packing_alignment",
              "scoped_enums",
              "string_constant_array"
            ],
            "id": "types-layout"
          },
          {
            "cases": [
              "conversion_operators",
              "copy_move_constructors",
              "data_member_pointer",
              "deleted_defaulted",
              "free_overloads",
              "free_rvalue_references",
              "friend_function",
              "function_pointer",
              "member_function_pointer",
              "method_cv_overloads",
              "noexcept_default_arguments",
              "operators",
              "ref_qualified_methods",
              "variadic_function"
            ],
            "id": "pointers-references-functions"
          },
          {
            "cases": [
              "alias_template",
              "constrained_template",
              "default_template_arguments",
              "full_specialization",
              "function_template_instance",
              "member_template",
              "nested_template",
              "non_type_template",
              "partial_specialization",
              "template_template_parameter",
              "variable_template"
            ],
            "id": "templates"
          },
          {
            "cases": [
              "abstract_virtual_destructor",
              "concrete_multiple_inheritance",
              "covariant_return",
              "diamond_inheritance",
              "empty_base",
              "final_override",
              "nested_class",
              "nonpublic_inheritance",
              "virtual_inheritance"
            ],
            "id": "classes-inheritance"
          },
          {
            "cases": [
              "ada_reserved_names",
              "anonymous_namespace",
              "casefold_collision",
              "extern_c_linkage",
              "inline_namespace",
              "namespace_alias",
              "nested_namespace",
              "typedef_and_using"
            ],
            "id": "names-scopes-linkage"
          },
          {
            "cases": [
              "constexpr_consteval",
              "exception_throw",
              "globals_constants",
              "static_data_member",
              "thread_local_storage",
              "volatile_global"
            ],
            "id": "runtime-storage-modern"
          }
        ],
        "limits": {
          "not_yet_covered": [
            "C++ modules and header units",
            "coroutines",
            "lambda closure and local-class emission",
            "RTTI, typeid, and dynamic_cast runtime behavior",
            "direct ownership transfer and by-value ABI for nontrivial standard-library values beyond the tested facade boundary",
            "atomics and concurrency memory-order behavior",
            "Windows/MSVC ABI targets outside this repository's supported hosts",
            "three-way and higher feature interactions beyond the pairwise generator",
            "runtime ABI execution for every compile-only atomic catalog entry",
            "portable recovery of a propagated exception's C++ language identity across GNAT runtime versions",
            "Linux AArch64 long double call interoperability on GNAT releases whose Ada and C++ target conventions disagree",
            "direct Ada dispatch to vector-bearing C++ methods; use a C++ wrapper so method dispatch stays under the C++ ABI",
            "concrete base classes of a C++ class with no virtual destructor: the mapper emits no base list at all, so both base subobjects vanish from the Ada record even with the staged layout bundles applied",
            "instrumented branch coverage measurement for c-ada-spec.cc",
            "mutation testing that proves each mapper branch has a sensitive oracle",
            "coverage-guided grammar fuzzing with automatic failure minimization"
          ]
        },
        "mapper_tree_codes": {
          "ARRAY_TYPE": [
            "multidimensional_arrays",
            "flexible_array"
          ],
          "BOOLEAN_TYPE": [
            "fundamental_scalars"
          ],
          "COMPLEX_TYPE": [
            "complex_and_vector"
          ],
          "CONST_DECL": [
            "scoped_enums"
          ],
          "ENUMERAL_TYPE": [
            "scoped_enums",
            "anonymous_enum"
          ],
          "FIELD_DECL": [
            "anonymous_aggregates",
            "bit_fields"
          ],
          "FUNCTION_DECL": [
            "free_overloads"
          ],
          "INTEGER_CST": [
            "globals_constants",
            "scoped_enums"
          ],
          "INTEGER_TYPE": [
            "fundamental_scalars",
            "integer_128"
          ],
          "NAMESPACE_DECL": [
            "nested_namespace",
            "anonymous_namespace"
          ],
          "NULLPTR_TYPE": [
            "nullptr_type"
          ],
          "PARM_DECL": [
            "free_overloads"
          ],
          "POINTER_TYPE": [
            "multiple_indirection",
            "function_pointer"
          ],
          "REAL_CST": [
            "globals_constants"
          ],
          "REAL_TYPE": [
            "fundamental_scalars"
          ],
          "RECORD_TYPE": [
            "anonymous_aggregates",
            "empty_base"
          ],
          "REFERENCE_TYPE": [
            "free_rvalue_references"
          ],
          "STRING_CST": [
            "string_constant_array"
          ],
          "TEMPLATE": [
            "function_template_instance",
            "partial_specialization"
          ],
          "TREE_BINFO": [
            "diamond_inheritance",
            "virtual_inheritance"
          ],
          "TYPE_DECL": [
            "typedef_and_using"
          ],
          "UNION_TYPE": [
            "anonymous_aggregates"
          ],
          "VAR_DECL": [
            "globals_constants",
            "thread_local_storage"
          ],
          "VECTOR_TYPE": [
            "complex_and_vector"
          ],
          "VOID_TYPE": [
            "incomplete_forward_declaration"
          ]
        },
        "runtime": {
          "oracles": [
            "generated Ada compiles",
            "required Ada declarations are present",
            "C++ symbols link",
            "runtime values round-trip",
            "virtual and interface dispatch agree",
            "sizeof and Object_Size agree",
            "alignof and Alignment agree",
            "public field offsets agree",
            "accepted defects fail before and pass after their patches"
          ],
          "staged_suites": [
            "panels/cxx-ada-spec/cases/recursive-secondary-base",
            "bundles/cxx-ada-inherited-tail-padding",
            "bundles/cxx-ada-empty-class-storage",
            "bundles/cxx-ada-virtual-inheritance-layout",
            "bundles/cxx-ada-virtual-diamond-layout",
            "bundles/cxx-ada-concrete-multiple-inheritance",
            "bundles/cxx-ada-derived-virtual-slots",
            "bundles/cxx-ada-generated-name-identity"
          ],
          "suites": [
            "panels/cxx-ada-spec/cases/core-language",
            "panels/cxx-ada-spec/cases/abi-layout",
            "panels/cxx-ada-spec/cases/call-abi",
            "panels/cxx-ada-spec/cases/interface-secondary-base",
            "panels/cxx-ada-spec/cases/exception-interoperability",
            "panels/cxx-ada-spec/cases/uninstantiated-templates",
            "panels/cxx-ada-spec/cases/stdlib-value-facade",
            "bundles/cxx-ada-template-qualification",
            "bundles/cxx-ada-template-record-termination",
            "bundles/cxx-ada-explicit-alignment",
            "bundles/cxx-ada-namespace-identity",
            "bundles/cxx-ada-qualified-method-names",
            "bundles/cxx-ada-casefold-identity",
            "bundles/cxx-ada-template-nested-types",
            "bundles/cxx-ada-anonymous-enums",
            "bundles/cxx-ada-char8-type",
            "bundles/cxx-ada-int128-types",
            "bundles/cxx-ada-vector-types",
            "bundles/cxx-ada-member-pointers",
            "bundles/cxx-ada-enclosing-type-method-names",
            "bundles/cxx-ada-profile-formal-type-names",
            "bundles/cxx-ada-visible-type-method-names"
          ]
        },
        "schema": 1
      },
      "directory": "panels/cxx-ada-spec",
      "id": "cxx-ada-spec",
      "matrix": {
        "coverage": {
          "atomic_cases": 63,
          "dump_modes": [
            "full",
            "slim"
          ],
          "grammar_cases": 32,
          "manifest": "panels/cxx-ada-spec/coverage.toml",
          "pairwise_cases": 16,
          "pairwise_value_pairs": 88,
          "runtime_suites": 22,
          "staged_runtime_suites": 8
        },
        "driver_options": [
          "-fdump-ada-spec",
          "-fdump-ada-spec-slim"
        ],
        "features": [
          {
            "category": "class",
            "evidence": "panels/cxx-ada-spec/cases/core-language",
            "evidence_references": [
              {
                "bundle": null,
                "cases": [],
                "path": "panels/cxx-ada-spec/cases/core-language"
              }
            ],
            "id": "constructors-destructors",
            "state": "verified-working"
          },
          {
            "category": "class",
            "evidence": "panels/cxx-ada-spec/cases/core-language",
            "evidence_references": [
              {
                "bundle": null,
                "cases": [],
                "path": "panels/cxx-ada-spec/cases/core-language"
              }
            ],
            "id": "data-members-layout",
            "note": "Generated bindings expose layout. Compare Object_Size with compiler-produced sizeof values because Itanium mangling does not encode member layout.",
            "state": "verified-working-with-guard"
          },
          {
            "category": "function",
            "evidence": "panels/cxx-ada-spec/cases/core-language",
            "evidence_references": [
              {
                "bundle": null,
                "cases": [],
                "path": "panels/cxx-ada-spec/cases/core-language"
              }
            ],
            "id": "overloaded-methods",
            "state": "verified-working"
          },
          {
            "category": "function",
            "evidence": "panels/cxx-ada-spec/cases/core-language",
            "evidence_references": [
              {
                "bundle": null,
                "cases": [],
                "path": "panels/cxx-ada-spec/cases/core-language"
              }
            ],
            "id": "static-methods",
            "state": "verified-working"
          },
          {
            "category": "dispatch",
            "evidence": "panels/cxx-ada-spec/cases/core-language",
            "evidence_references": [
              {
                "bundle": null,
                "cases": [],
                "path": "panels/cxx-ada-spec/cases/core-language"
              }
            ],
            "id": "virtual-methods",
            "state": "verified-working"
          },
          {
            "category": "inheritance",
            "evidence": "panels/cxx-ada-spec/cases/core-language",
            "evidence_references": [
              {
                "bundle": null,
                "cases": [],
                "path": "panels/cxx-ada-spec/cases/core-language"
              }
            ],
            "id": "single-inheritance",
            "note": "The positive case avoids inherited tail-padding reuse and checks both Ada and C++ object sizes.",
            "state": "verified-working"
          },
          {
            "category": "data-layout",
            "evidence": "bundles/cxx-ada-inherited-tail-padding",
            "evidence_references": [
              {
                "bundle": "cxx-ada-inherited-tail-padding",
                "cases": [],
                "path": "bundles/cxx-ada-inherited-tail-padding"
              }
            ],
            "id": "inherited-tail-padding-layout",
            "note": "The staged bundle preserves the base subobject data size separately from its complete-object size and emits exact component positions for C++ tail-padding reuse. The nested primary-base component it selects is emitted by the staged virtual-base layout path, so patchset 1.2.0 does not ship it.",
            "state": "staged"
          },
          {
            "category": "data-layout",
            "evidence": "bundles/cxx-ada-empty-class-storage",
            "evidence_references": [
              {
                "bundle": "cxx-ada-empty-class-storage",
                "cases": [],
                "path": "bundles/cxx-ada-empty-class-storage"
              }
            ],
            "id": "empty-class-object-size",
            "note": "The staged bundle separates a zero-size empty value from its nonzero complete-object allocation. It omits artificial empty bases and only a no_unique_address selector that actually overlaps another field; naming that omitted C++ subobject requires an accessor wrapper. It reuses the staged tail-padding machinery, so patchset 1.2.0 does not ship it.",
            "state": "staged"
          },
          {
            "category": "template",
            "evidence": "bundles/cxx-ada-template-qualification",
            "evidence_references": [
              {
                "bundle": "cxx-ada-template-qualification",
                "cases": [],
                "path": "bundles/cxx-ada-template-qualification"
              }
            ],
            "id": "explicit-template-instantiations",
            "state": "verified-working"
          },
          {
            "category": "template",
            "evidence": "bundles/cxx-ada-template-qualification",
            "evidence_references": [
              {
                "bundle": "cxx-ada-template-qualification",
                "cases": [],
                "path": "bundles/cxx-ada-template-qualification"
              }
            ],
            "id": "external-template-instance-references",
            "note": "Aliases, fields, parameters, and results need the generated instance-package qualifier.",
            "state": "patched"
          },
          {
            "category": "name-lookup",
            "evidence": "bundles/cxx-ada-namespace-identity",
            "evidence_references": [
              {
                "bundle": "cxx-ada-namespace-identity",
                "cases": [],
                "path": "bundles/cxx-ada-namespace-identity"
              }
            ],
            "id": "namespace-collisions",
            "note": "Patchset 1.2.0 preserves complete named namespace paths in generated Ada identifiers.",
            "state": "patched",
            "upstream": "GCC PR 109260"
          },
          {
            "category": "template",
            "evidence": "bundles/cxx-ada-template-record-termination",
            "evidence_references": [
              {
                "bundle": "cxx-ada-template-record-termination",
                "cases": [],
                "path": "bundles/cxx-ada-template-record-termination"
              }
            ],
            "id": "trivial-template-record-syntax",
            "note": "Patchset 1.2.0 terminates the Convention aspect for trivial records emitted in concrete template packages.",
            "state": "patched"
          },
          {
            "category": "inheritance",
            "evidence": "panels/cxx-ada-spec/cases/interface-secondary-base",
            "evidence_references": [
              {
                "bundle": null,
                "cases": [],
                "path": "panels/cxx-ada-spec/cases/interface-secondary-base"
              }
            ],
            "id": "multiple-inheritance-interface-secondary",
            "note": "The dumper maps a pure abstract, data-free secondary base to a limited interface; the runtime test verifies Ada dispatch and secondary-base pointer adjustment.",
            "state": "verified-working"
          },
          {
            "category": "inheritance",
            "evidence": "generated/catalog.py:concrete_multiple_inheritance,bundles/cxx-ada-concrete-multiple-inheritance,bundles/cxx-ada-virtual-diamond-layout,panels/cxx-ada-spec/cases/recursive-secondary-base",
            "evidence_references": [
              {
                "bundle": null,
                "cases": [
                  "concrete_multiple_inheritance"
                ],
                "path": "panels/cxx-ada-spec/generated/catalog.py"
              },
              {
                "bundle": "cxx-ada-concrete-multiple-inheritance",
                "cases": [],
                "path": "bundles/cxx-ada-concrete-multiple-inheritance"
              },
              {
                "bundle": "cxx-ada-virtual-diamond-layout",
                "cases": [],
                "path": "bundles/cxx-ada-virtual-diamond-layout"
              },
              {
                "bundle": null,
                "cases": [],
                "path": "panels/cxx-ada-spec/cases/recursive-secondary-base"
              }
            ],
            "id": "multiple-inheritance-concrete-secondary",
            "note": "The staged bundle maps the C++ primary base to Ada inheritance and each additional concrete base to exact nested as-base storage. Access-view conversions at nested component addresses support secondary virtual dispatch, including a secondary base that itself has concrete primary and secondary bases; dynamic virtual-base conversions remain an ABI boundary. Patchset 1.2.0 does not ship this; an unstaged compiler still omits every secondary base subobject.",
            "state": "staged-with-access-view"
          },
          {
            "category": "name-lookup",
            "evidence": "bundles/cxx-ada-enclosing-type-method-names",
            "evidence_references": [
              {
                "bundle": "cxx-ada-enclosing-type-method-names",
                "cases": [],
                "path": "bundles/cxx-ada-enclosing-type-method-names"
              }
            ],
            "id": "enclosing-type-method-name-collisions",
            "note": "Patchset 1.2.0 gives only a method that collides case-insensitively with its enclosing type a stable Method suffix while retaining the C++ external symbol.",
            "state": "patched"
          },
          {
            "category": "name-lookup",
            "evidence": "bundles/cxx-ada-profile-formal-type-names",
            "evidence_references": [
              {
                "bundle": "cxx-ada-profile-formal-type-names",
                "cases": [],
                "path": "bundles/cxx-ada-profile-formal-type-names"
              }
            ],
            "id": "profile-formal-type-name-collisions",
            "note": "Patchset 1.2.0 prefixes a formal when its Ada identifier would hide its own type, a later formal's type, or the result type.",
            "state": "patched"
          },
          {
            "category": "name-lookup",
            "evidence": "bundles/cxx-ada-visible-type-method-names",
            "evidence_references": [
              {
                "bundle": "cxx-ada-visible-type-method-names",
                "cases": [],
                "path": "bundles/cxx-ada-visible-type-method-names"
              }
            ],
            "id": "visible-type-method-name-collisions",
            "note": "Patchset 1.2.0 gives a method a stable Method suffix when its identifier collides with a type made visible from another generated class package.",
            "state": "patched"
          },
          {
            "category": "dispatch",
            "evidence": "bundles/cxx-ada-derived-virtual-slots",
            "evidence_references": [
              {
                "bundle": "cxx-ada-derived-virtual-slots",
                "cases": [],
                "path": "bundles/cxx-ada-derived-virtual-slots"
              }
            ],
            "id": "derived-class-new-virtual-slots",
            "note": "The staged bundle gives complete and deleting destructors hierarchy-stable Ada names so they override their inherited slots. Virtuals introduced later in a derived class then retain the C++ vtable indices, including through recursively nested concrete secondary bases. Patchset 1.2.0 does not ship this.",
            "state": "staged"
          },
          {
            "category": "template",
            "evidence": "panels/cxx-ada-spec/cases/uninstantiated-templates",
            "evidence_references": [
              {
                "bundle": null,
                "cases": [],
                "path": "panels/cxx-ada-spec/cases/uninstantiated-templates"
              }
            ],
            "id": "uninstantiated-templates",
            "note": "The dumper emits no declaration until the C++ template is explicitly instantiated; the executable case proves that the explicit instance is then emitted and usable.",
            "state": "not-emitted"
          },
          {
            "category": "library",
            "evidence": "panels/cxx-ada-spec/cases/stdlib-value-facade",
            "evidence_references": [
              {
                "bundle": null,
                "cases": [],
                "path": "panels/cxx-ada-spec/cases/stdlib-value-facade"
              }
            ],
            "id": "standard-library-nontrivial-values",
            "note": "A slim std::string-by-value dump references missing transitive Ada units. The executable case keeps std::string ownership in C++ and crosses a C-compatible data-and-length facade instead.",
            "state": "facade-required"
          },
          {
            "category": "runtime",
            "evidence": "generated/catalog.py:exception_throw,panels/cxx-ada-spec/cases/exception-interoperability",
            "evidence_references": [
              {
                "bundle": null,
                "cases": [
                  "exception_throw"
                ],
                "path": "panels/cxx-ada-spec/generated/catalog.py"
              },
              {
                "bundle": null,
                "cases": [],
                "path": "panels/cxx-ada-spec/cases/exception-interoperability"
              }
            ],
            "id": "exceptions",
            "note": "A C++ throw propagates into an Ada others handler at both optimization levels. A status-returning C facade is also verified for APIs that choose not to expose exceptions. GNAT's internal foreign-language identity API is version-dependent and is not part of this portable claim.",
            "state": "verified-runtime-interoperability"
          },
          {
            "category": "function",
            "evidence": "generated/catalog.py:operators,conversion_operators",
            "evidence_references": [
              {
                "bundle": null,
                "cases": [
                  "operators",
                  "conversion_operators"
                ],
                "path": "panels/cxx-ada-spec/generated/catalog.py"
              }
            ],
            "id": "operators-conversions",
            "state": "verified-ada-compile"
          },
          {
            "category": "type-system",
            "evidence": "generated/catalog.py:free_rvalue_references,bundles/cxx-ada-qualified-method-names",
            "evidence_references": [
              {
                "bundle": null,
                "cases": [
                  "free_rvalue_references"
                ],
                "path": "panels/cxx-ada-spec/generated/catalog.py"
              },
              {
                "bundle": "cxx-ada-qualified-method-names",
                "cases": [],
                "path": "bundles/cxx-ada-qualified-method-names"
              }
            ],
            "id": "references-rvalue-references",
            "note": "Patchset 1.2.0 preserves lvalue- and rvalue-qualified method identity in stable Ada suffixes.",
            "state": "verified-ada-compile"
          },
          {
            "category": "type-system",
            "evidence": "bundles/cxx-ada-qualified-method-names,generated/catalog.py:noexcept_default_arguments",
            "evidence_references": [
              {
                "bundle": "cxx-ada-qualified-method-names",
                "cases": [],
                "path": "bundles/cxx-ada-qualified-method-names"
              },
              {
                "bundle": null,
                "cases": [
                  "noexcept_default_arguments"
                ],
                "path": "panels/cxx-ada-spec/generated/catalog.py"
              }
            ],
            "id": "cv-qualifiers-noexcept",
            "note": "Patchset 1.2.0 preserves cv-qualified method identity in stable Ada suffixes; noexcept/default arguments compile.",
            "state": "verified-ada-compile"
          },
          {
            "category": "runtime",
            "evidence": "panels/cxx-ada-spec/cases/call-abi",
            "evidence_references": [
              {
                "bundle": null,
                "cases": [],
                "path": "panels/cxx-ada-spec/cases/call-abi"
              }
            ],
            "id": "scalar-call-abi",
            "note": "Boolean, signed-char, unsigned-long-long, float, and double mappings execute at both optimization levels. Long double also executes and must match except on Linux AArch64 toolchains where GNAT and C++ use incompatible target calling conventions; that explicit boundary does not suppress the remaining ABI oracles.",
            "state": "verified-with-target-boundary"
          },
          {
            "category": "data-layout",
            "evidence": "cases/abi-layout,cases/call-abi,generated/catalog.py",
            "evidence_references": [
              {
                "bundle": null,
                "cases": [],
                "path": "panels/cxx-ada-spec/cases/abi-layout"
              },
              {
                "bundle": null,
                "cases": [],
                "path": "panels/cxx-ada-spec/cases/call-abi"
              },
              {
                "bundle": null,
                "cases": [],
                "path": "panels/cxx-ada-spec/generated/catalog.py"
              }
            ],
            "id": "enums-bitfields-unions",
            "note": "Named enums, bit-fields, and unions compile; their size, alignment, and by-value runtime behavior are checked.",
            "state": "verified-runtime"
          },
          {
            "category": "name-lookup",
            "evidence": "generated/catalog.py:nested_class,anonymous_namespace,nested_namespace",
            "evidence_references": [
              {
                "bundle": null,
                "cases": [
                  "nested_class",
                  "anonymous_namespace",
                  "nested_namespace"
                ],
                "path": "panels/cxx-ada-spec/generated/catalog.py"
              }
            ],
            "id": "nested-classes-anonymous-scopes",
            "state": "verified-ada-compile"
          },
          {
            "category": "data-layout",
            "evidence": "bundles/cxx-ada-explicit-alignment",
            "evidence_references": [
              {
                "bundle": "cxx-ada-explicit-alignment",
                "cases": [],
                "path": "bundles/cxx-ada-explicit-alignment"
              }
            ],
            "id": "explicit-alignment",
            "note": "Patchset 1.2.0 emits the user-specified alignment independently of packed layout.",
            "state": "patched"
          },
          {
            "category": "inheritance",
            "evidence": "bundles/cxx-ada-virtual-inheritance-layout",
            "evidence_references": [
              {
                "bundle": "cxx-ada-virtual-inheritance-layout",
                "cases": [],
                "path": "bundles/cxx-ada-virtual-inheritance-layout"
              }
            ],
            "id": "virtual-inheritance-layout",
            "note": "The staged bundle preserves complete size, alignment, direct-member position, and virtual-base position while leaving the hidden ABI pointer as an opaque gap. Patchset 1.2.0 does not ship this.",
            "state": "staged"
          },
          {
            "category": "inheritance",
            "evidence": "bundles/cxx-ada-virtual-diamond-layout",
            "evidence_references": [
              {
                "bundle": "cxx-ada-virtual-diamond-layout",
                "cases": [],
                "path": "bundles/cxx-ada-virtual-diamond-layout"
              }
            ],
            "id": "virtual-diamond-as-base-layout",
            "note": "The staged bundle emits shortened storage types for non-polymorphic direct bases that omit their shared virtual base, preserving all visible diamond fields without duplicating the root. Patchset 1.2.0 does not ship this.",
            "state": "staged"
          },
          {
            "category": "name-lookup",
            "evidence": "bundles/cxx-ada-casefold-identity",
            "evidence_references": [
              {
                "bundle": "cxx-ada-casefold-identity",
                "cases": [],
                "path": "bundles/cxx-ada-casefold-identity"
              }
            ],
            "id": "ada-casefold-collisions",
            "note": "Patchset 1.2.0 assigns stable scope-local suffixes to later case variants and all of their references.",
            "state": "patched"
          },
          {
            "category": "name-lookup",
            "evidence": "bundles/cxx-ada-generated-name-identity",
            "evidence_references": [
              {
                "bundle": "cxx-ada-generated-name-identity",
                "cases": [],
                "path": "bundles/cxx-ada-generated-name-identity"
              }
            ],
            "id": "generated-name-collisions",
            "note": "The staged bundle reserves source spellings and gives only colliding synthesized declarations readable scope-local suffixes. It renames entities the staged ABI-layout bundles introduce and does not apply without them, so patchset 1.2.0 does not ship it.",
            "state": "staged"
          },
          {
            "category": "function",
            "evidence": "bundles/cxx-ada-qualified-method-names",
            "evidence_references": [
              {
                "bundle": "cxx-ada-qualified-method-names",
                "cases": [],
                "path": "bundles/cxx-ada-qualified-method-names"
              }
            ],
            "id": "method-cv-overloads",
            "state": "patched"
          },
          {
            "category": "function",
            "evidence": "bundles/cxx-ada-qualified-method-names",
            "evidence_references": [
              {
                "bundle": "cxx-ada-qualified-method-names",
                "cases": [],
                "path": "bundles/cxx-ada-qualified-method-names"
              }
            ],
            "id": "method-ref-qualifier-overloads",
            "state": "patched"
          },
          {
            "category": "function",
            "evidence": "bundles/cxx-ada-qualified-method-names",
            "evidence_references": [
              {
                "bundle": "cxx-ada-qualified-method-names",
                "cases": [],
                "path": "bundles/cxx-ada-qualified-method-names"
              }
            ],
            "id": "copy-move-special-members",
            "note": "Patchset 1.2.0 gives move assignment a distinct Ada name.",
            "state": "patched"
          },
          {
            "category": "type-system",
            "evidence": "bundles/cxx-ada-member-pointers",
            "evidence_references": [
              {
                "bundle": "cxx-ada-member-pointers",
                "cases": [],
                "path": "bundles/cxx-ada-member-pointers"
              }
            ],
            "id": "data-member-pointers",
            "note": "Patchset 1.2.0 preserves the Itanium ABI ptrdiff_t offset, including its -1 null representation; dereferencing remains a C++ operation.",
            "state": "patched"
          },
          {
            "category": "type-system",
            "evidence": "bundles/cxx-ada-member-pointers",
            "evidence_references": [
              {
                "bundle": "cxx-ada-member-pointers",
                "cases": [],
                "path": "bundles/cxx-ada-member-pointers"
              }
            ],
            "id": "member-function-pointers",
            "note": "Patchset 1.2.0 preserves the opaque two-word Itanium ABI representation, including nonvirtual, virtual, and null values; invocation remains a C++ operation.",
            "state": "patched"
          },
          {
            "category": "type-system",
            "evidence": "bundles/cxx-ada-char8-type",
            "evidence_references": [
              {
                "bundle": "cxx-ada-char8-type",
                "cases": [],
                "path": "bundles/cxx-ada-char8-type"
              }
            ],
            "id": "extended-character-types",
            "note": "Patchset 1.2.0 maps C++20 char8_t to ABI-equivalent Interfaces.C.unsigned_char; wchar_t, char16_t, and char32_t retain their existing mappings.",
            "state": "patched"
          },
          {
            "category": "type-system",
            "evidence": "bundles/cxx-ada-vector-types,generated/catalog.py:complex_and_vector",
            "evidence_references": [
              {
                "bundle": "cxx-ada-vector-types",
                "cases": [],
                "path": "bundles/cxx-ada-vector-types"
              },
              {
                "bundle": null,
                "cases": [
                  "complex_and_vector"
                ],
                "path": "panels/cxx-ada-spec/generated/catalog.py"
              }
            ],
            "id": "complex-vector-types",
            "note": "Complex float types already mapped to Ada.Numerics complex units. Patchset 1.2.0 replaces vector placeholders with aligned GNAT machine-vector arrays. Free and C-wrapper profiles use the direct vector calling convention; direct Ada dispatch to a vector-bearing C++ method is not portable across the tested compiler/target matrix.",
            "state": "patched-with-method-wrapper-boundary"
          },
          {
            "category": "type-system",
            "evidence": "bundles/cxx-ada-anonymous-enums",
            "evidence_references": [
              {
                "bundle": "cxx-ada-anonymous-enums",
                "cases": [],
                "path": "bundles/cxx-ada-anonymous-enums"
              }
            ],
            "id": "anonymous-enum-constants",
            "note": "Patchset 1.2.0 emits sequential enumerations or integer-subtype constants and maps signature references consistently to the synthetic type.",
            "state": "patched"
          },
          {
            "category": "type-system",
            "evidence": "bundles/cxx-ada-int128-types",
            "evidence_references": [
              {
                "bundle": "cxx-ada-int128-types",
                "cases": [],
                "path": "bundles/cxx-ada-int128-types"
              }
            ],
            "id": "integer-128",
            "note": "Patchset 1.2.0 backports GCC 15's prefix recognition to GCC 13 and 14; GCC 15 and 16 are known-good controls.",
            "state": "patched"
          },
          {
            "category": "template",
            "evidence": "generated/catalog.py:partial_specialization,full_specialization",
            "evidence_references": [
              {
                "bundle": null,
                "cases": [
                  "partial_specialization",
                  "full_specialization"
                ],
                "path": "panels/cxx-ada-spec/generated/catalog.py"
              }
            ],
            "id": "class-template-specializations",
            "note": "Patchset 1.2.0 terminates the generated trivial records.",
            "state": "patched"
          },
          {
            "category": "template",
            "evidence": "bundles/cxx-ada-template-nested-types",
            "evidence_references": [
              {
                "bundle": "cxx-ada-template-nested-types",
                "cases": [],
                "path": "bundles/cxx-ada-template-nested-types"
              }
            ],
            "id": "advanced-template-parameters",
            "note": "Patchset 1.2.0 declares anonymous array field types inside concrete packages with non-type or defaulted template arguments.",
            "state": "patched"
          },
          {
            "category": "template",
            "evidence": "generated/catalog.py:template_template_parameter",
            "evidence_references": [
              {
                "bundle": null,
                "cases": [
                  "template_template_parameter"
                ],
                "path": "panels/cxx-ada-spec/generated/catalog.py"
              }
            ],
            "id": "template-template-parameters",
            "note": "Patchset 1.2.0 terminates the generated trivial record.",
            "state": "patched"
          },
          {
            "category": "template",
            "evidence": "generated/catalog.py:nested_template,alias_template,constrained_template",
            "evidence_references": [
              {
                "bundle": null,
                "cases": [
                  "nested_template",
                  "alias_template",
                  "constrained_template"
                ],
                "path": "panels/cxx-ada-spec/generated/catalog.py"
              }
            ],
            "id": "nested-alias-constrained-templates",
            "note": "Patchset 1.2.0 terminates trivial records and maps alias-template instances to the concrete type in their generated packages.",
            "state": "patched"
          }
        ],
        "gcc_versions": [
          "13.2.0",
          "14.2.0",
          "15.3.0",
          "16.2.0"
        ],
        "panel": "cxx-ada-spec",
        "schema": 2
      },
      "readme": "# C++ to Ada specification feature panel\n\nThis panel turns exploratory `g++ -fdump-ada-spec` observations into repeatable\nevidence. It separates three outcomes that need different treatment:\n\n- a supported mapping, which gets a positive end-to-end C++/Ada case;\n- a mapper defect, which gets an independent patch bundle with an executable\n  before/after regression;\n- a C++ construct Ada cannot represent directly, which is documented as a\n  facade boundary rather than disguised as a mapper bug.\n\n`matrix.toml` records feature-level conclusions. `coverage.toml` assigns every\natomic probe to a feature group, lists the runtime oracles, and states the\nremaining limits. `generated/coverage.py` fails if a catalog probe is omitted\nor assigned twice.\n\nThe panel runs in three states. `unpatched` characterizes the pinned upstream\ncompiler. `patched` is a compiler carrying exactly patchset `1.2.0`, which is\nwhat a release ships. `staged` additionally carries the staged bundles listed\nunder [staged subjects](#staged-subjects). A `patched` run makes no claim about\na staged subject: it reports those suites as skipped rather than asserting\neither the defect or the fix.\n\nThe executable panel currently has four layers:\n\n- 63 isolated atomic probes cover types and layout, pointers and functions,\n  templates, inheritance, names and linkage, and runtime/storage declarations.\n  Each probe runs in its own directory, so one malformed dump cannot mask a\n  later feature. Required declarations are checked before the generated Ada is\n  compiled. Versioned expectation files distinguish successful mappings from\n  repeatable invalid Ada and omissions.\n- 16 generated cases cover all 88 value pairs across payload kind, reference\n  carrier, C++ scope, qualifier, and full/slim dump mode. This is pairwise\n  interaction coverage, not a hand-selected sample.\n- 32 fixed-seed grammar cases combine three to seven declarations per\n  translation unit, with periodic inheritance and overload clusters. They\n  exercise higher-order interactions in the currently representable subset and\n  alternate full and slim dump modes.\n- Twenty-two shipped runtime suites, plus eight staged ones, link C++ and Ada at\n  `-O0` and `-O2`. They check scalar,\n  enum, record, union, pointer, reference, and callback calling conventions;\n  object size, alignment, and field offsets; ordinary, interface, and concrete\n  secondary-base virtual dispatch, including recursively nested concrete bases;\n  template qualification, record termination,\n  nested types, explicit\n  alignment, namespace and method identity—including enclosing-type,\n  use-visible type/method, and subprogram-profile collisions—anonymous\n  enumeration values, and\n  `char8_t`, 128-bit integers, machine vectors through a C++ method wrapper,\n  and opaque pointer-to-member\n  values; uninstantiated-template emission, a nontrivial standard-library value\n  facade, C++ exception propagation into an Ada handler; and the exact behavior\n  of known defects.\n\nThe call-ABI suite reports the `long double` result separately. On Linux\nAArch64 with the pinned GCC 13--15 toolchains, GNAT and C++ disagree on that\ntarget calling convention even though the mapper emits the standard\n`Interfaces.C.long_double` declaration. That target/runtime boundary is\nreported explicitly instead of stopping the suite, so enum, record, union,\npointer, reference, and callback oracles still execute. A mismatch on any\nother target remains a failure.\n\nThe defect regressions reproduce malformed template records before patching,\nanonymous nested template types before patching, anonymous enum omissions\nbefore patching, pointer-to-member syntax failures, standalone empty-class\nstorage drift, inherited tail-padding drift, explicit alignment before\npatching, virtual-inheritance, virtual-diamond, and concrete\nmultiple-inheritance layout drift, unsigned 128-bit integer failures on GCC 13\nand 14 before patching, and several version- or type-specific omissions.\nIndependent problems must become independent patch bundles.\n\nThe coverage summary reports all three baselines. Patchset `1.2.0` leaves one\natomic case classified non-passing on every supported major:\n`concrete_multiple_inheritance`, whose subject is staged. A staged compiler\npasses all 63.\n\nThat atomic case does not merely require legal Ada. Dropping both base\nsubobjects also compiles, so the case requires the primary base as Ada\ninheritance and the secondary base as its own storage view; a compiler without\nthe staged bundle reports `spec-mismatch`, not a false `pass`.\n\nIts C++ classes declare virtual destructors deliberately. Without one the\nmapper emits no base list at all, so both base subobjects vanish from the Ada\nrecord even with the staged layout bundles applied. That is a distinct gap from\nthe one this probe characterizes and is recorded under `coverage.toml` limits;\nit has no bundle yet.\n\nThe confirmed-history ledger is larger than that residual atomic count:\ntwenty-two independent C++ mapper defects have bundles introduced for 1.2.0 —\nfifteen accepted into the patchset and seven staged — and no confirmed\nfixed-layout runtime defect remains. Every linked bundle, accepted or staged,\ncontains the offending C++, the unpatched Ada output, the corrected Ada output,\nand an executable `-O0`/`-O2` before/after regression:\n\n- [`cxx-ada-template-qualification`](../../bundles/cxx-ada-template-qualification/README.md): references outside a concrete template package lose their instance qualifier;\n- [`cxx-ada-template-record-termination`](../../bundles/cxx-ada-template-record-termination/README.md): trivial concrete template records leave their Convention aspect unterminated;\n- [`cxx-ada-explicit-alignment`](../../bundles/cxx-ada-explicit-alignment/README.md): explicitly over-aligned records retain only their natural Ada alignment;\n- [`cxx-ada-namespace-identity`](../../bundles/cxx-ada-namespace-identity/README.md): distinct named C++ namespaces collapse into duplicate Ada identifiers;\n- [`cxx-ada-qualified-method-names`](../../bundles/cxx-ada-qualified-method-names/README.md): cv/ref-qualified overloads and move assignment collapse onto Ada homographs;\n- [`cxx-ada-casefold-identity`](../../bundles/cxx-ada-casefold-identity/README.md): C++ identifiers differing only by case collide in Ada;\n- [`cxx-ada-template-nested-types`](../../bundles/cxx-ada-template-nested-types/README.md): anonymous field types are emitted outside the concrete template package that needs them;\n- [`cxx-ada-anonymous-enums`](../../bundles/cxx-ada-anonymous-enums/README.md): top-level anonymous enumerators and their synthetic type are omitted;\n- [`cxx-ada-char8-type`](../../bundles/cxx-ada-char8-type/README.md): `char8_t` maps to a nonexistent Ada identifier;\n- [`cxx-ada-int128-types`](../../bundles/cxx-ada-int128-types/README.md): GCC 13 and 14 fail to recognize the unsigned internal 128-bit type name;\n- [`cxx-ada-vector-types`](../../bundles/cxx-ada-vector-types/README.md): machine vectors map to placeholders that cannot appear in profiles;\n- [`cxx-ada-member-pointers`](../../bundles/cxx-ada-member-pointers/README.md): data- and function-member pointer representations are emitted without Ada types;\n- [`cxx-ada-enclosing-type-method-names`](../../bundles/cxx-ada-enclosing-type-method-names/README.md): a method collides case-insensitively with its enclosing Ada type;\n- [`cxx-ada-profile-formal-type-names`](../../bundles/cxx-ada-profile-formal-type-names/README.md): a formal hides its own, a later formal's, or the result type;\n- [`cxx-ada-visible-type-method-names`](../../bundles/cxx-ada-visible-type-method-names/README.md): a method hides a type made visible from another generated class package.\n\n### Staged subjects\n\nPatchset `1.2.0` does not ship these. They carry the same evidence as an\naccepted bundle and run in the panel's `staged` state; a `patched` run skips\nthem and their eight runtime suites.\n\n- [`cxx-ada-inherited-tail-padding`](../../bundles/cxx-ada-inherited-tail-padding/README.md): Ada inheritance prevents C++ reuse of base tail padding and moves derived fields;\n- [`cxx-ada-empty-class-storage`](../../bundles/cxx-ada-empty-class-storage/README.md): empty complete objects receive zero storage while overlapping empty subobjects are represented as ordinary fields;\n- [`cxx-ada-virtual-inheritance-layout`](../../bundles/cxx-ada-virtual-inheritance-layout/README.md): virtual bases lose complete size, alignment, and field positions;\n- [`cxx-ada-virtual-diamond-layout`](../../bundles/cxx-ada-virtual-diamond-layout/README.md): direct diamond bases incorrectly include their shared virtual base as complete storage;\n- [`cxx-ada-concrete-multiple-inheritance`](../../bundles/cxx-ada-concrete-multiple-inheritance/README.md): additional concrete bases are emitted as illegal Ada progenitors instead of nested ABI storage;\n- [`cxx-ada-derived-virtual-slots`](../../bundles/cxx-ada-derived-virtual-slots/README.md): class-specific destructor names shift later derived virtuals away from their C++ vtable slots;\n- [`cxx-ada-generated-name-identity`](../../bundles/cxx-ada-generated-name-identity/README.md): readable synthesized names collide with user-written methods, aliases, formals, layout helpers, class packages, and special members.\n\nThe following list is only the work still open or intentionally bounded, not\nthe complete defect history.\n\nThe remaining confirmed inventory is deliberately explicit:\n\n- tested semantic boundaries rather than hidden mapper successes:\n  uninstantiated templates are not emitted, nontrivial standard-library values\n  require a facade, and dynamic virtual-base conversions remain ABI operations.\n  C++ exception propagation is tested and supported through Ada's portable\n  `others` handler. GNAT's internal API for recovering the foreign language\n  identity varies by runtime version and is not claimed as portable behavior;\n  Linux AArch64 `long double` interoperability on affected GNAT releases is a\n  compiler call-ABI boundary, not a mapper-spelling success. Direct Ada\n  dispatch to vector-bearing C++ methods likewise requires a C++ wrapper,\n  because tested GNAT versions do not classify that method ABI consistently.\n\nRun the complete current panel against a compiler root:\n\n```sh\n./panels/cxx-ada-spec/run-panel.sh TOOLCHAIN_ROOT GCC_VERSION unpatched\n```\n\nUse `patched` after applying patchset `1.2.0`, and `staged` after additionally\napplying the staged bundles with `scripts/apply-staged.sh`. An expected\npre-patch compiler rejection counts as a passing defect characterization; a\npatched or staged run must generate compilable Ada and execute its consumer for\nevery subject that state covers.\n\nThe matrix is deliberately broader than the current patchset. New confirmed\ndefects must become independent `bundles/<id>/` entries instead of being folded\ninto the template-qualification patch. The panel is operationally broad but not\nmathematically exhaustive; `coverage.toml` explicitly lists constructs still\nrequiring probes or runtime ABI oracles.\n",
      "readme_path": "panels/cxx-ada-spec/README.md",
      "summary": "This panel turns exploratory g++ -fdump-ada-spec observations into repeatable evidence. It separates three outcomes that need different treatment:",
      "title": "C++ to Ada specification feature panel"
    }
  ],
  "patchsets": [
    {
      "latest": true,
      "superseded_by": null,
      "targets": [
        {
          "bundles": [
            "protected-duration-validity",
            "cxx-ada-template-qualification",
            "cxx-ada-template-record-termination",
            "cxx-ada-explicit-alignment",
            "cxx-ada-namespace-identity",
            "cxx-ada-qualified-method-names",
            "cxx-ada-casefold-identity",
            "cxx-ada-template-nested-types",
            "cxx-ada-anonymous-enums",
            "cxx-ada-char8-type",
            "cxx-ada-int128-types",
            "cxx-ada-member-pointers",
            "cxx-ada-vector-types",
            "cxx-ada-enclosing-type-method-names",
            "cxx-ada-profile-formal-type-names",
            "cxx-ada-visible-type-method-names"
          ],
          "control_tests": [
            "storage-model-actuals",
            "predicate-conditional-aggregate-box"
          ],
          "gcc_major": 13,
          "patchset_version": "1.2.0",
          "path": "patchsets/1.2.0/gcc-13.toml",
          "release": null,
          "schema": 1,
          "source_version": "13.2.0",
          "staged_bundles": [
            "cxx-ada-inherited-tail-padding",
            "cxx-ada-empty-class-storage",
            "cxx-ada-virtual-inheritance-layout",
            "cxx-ada-virtual-diamond-layout",
            "cxx-ada-concrete-multiple-inheritance",
            "cxx-ada-derived-virtual-slots",
            "cxx-ada-generated-name-identity"
          ]
        },
        {
          "bundles": [
            "storage-model-actuals",
            "protected-duration-validity",
            "cxx-ada-template-qualification",
            "cxx-ada-template-record-termination",
            "cxx-ada-explicit-alignment",
            "cxx-ada-namespace-identity",
            "cxx-ada-qualified-method-names",
            "cxx-ada-casefold-identity",
            "cxx-ada-template-nested-types",
            "cxx-ada-anonymous-enums",
            "cxx-ada-char8-type",
            "cxx-ada-int128-types",
            "cxx-ada-member-pointers",
            "cxx-ada-vector-types",
            "cxx-ada-enclosing-type-method-names",
            "cxx-ada-profile-formal-type-names",
            "cxx-ada-visible-type-method-names"
          ],
          "control_tests": [
            "predicate-conditional-aggregate-box"
          ],
          "gcc_major": 14,
          "patchset_version": "1.2.0",
          "path": "patchsets/1.2.0/gcc-14.toml",
          "release": null,
          "schema": 1,
          "source_version": "14.2.0",
          "staged_bundles": [
            "cxx-ada-inherited-tail-padding",
            "cxx-ada-empty-class-storage",
            "cxx-ada-virtual-inheritance-layout",
            "cxx-ada-virtual-diamond-layout",
            "cxx-ada-concrete-multiple-inheritance",
            "cxx-ada-derived-virtual-slots",
            "cxx-ada-generated-name-identity"
          ]
        },
        {
          "bundles": [
            "storage-model-actuals",
            "protected-duration-validity",
            "cxx-ada-template-qualification",
            "cxx-ada-template-record-termination",
            "cxx-ada-explicit-alignment",
            "cxx-ada-namespace-identity",
            "cxx-ada-qualified-method-names",
            "cxx-ada-casefold-identity",
            "cxx-ada-template-nested-types",
            "cxx-ada-anonymous-enums",
            "cxx-ada-char8-type",
            "cxx-ada-member-pointers",
            "cxx-ada-vector-types",
            "cxx-ada-enclosing-type-method-names",
            "cxx-ada-profile-formal-type-names",
            "cxx-ada-visible-type-method-names",
            "predicate-conditional-aggregate-box"
          ],
          "control_tests": [
            "cxx-ada-int128-types"
          ],
          "gcc_major": 15,
          "patchset_version": "1.2.0",
          "path": "patchsets/1.2.0/gcc-15.toml",
          "release": null,
          "schema": 1,
          "source_version": "15.3.0",
          "staged_bundles": [
            "cxx-ada-inherited-tail-padding",
            "cxx-ada-empty-class-storage",
            "cxx-ada-virtual-inheritance-layout",
            "cxx-ada-virtual-diamond-layout",
            "cxx-ada-concrete-multiple-inheritance",
            "cxx-ada-derived-virtual-slots",
            "cxx-ada-generated-name-identity"
          ]
        },
        {
          "bundles": [
            "storage-model-actuals",
            "protected-duration-validity",
            "cxx-ada-template-qualification",
            "cxx-ada-template-record-termination",
            "cxx-ada-explicit-alignment",
            "cxx-ada-namespace-identity",
            "cxx-ada-qualified-method-names",
            "cxx-ada-casefold-identity",
            "cxx-ada-template-nested-types",
            "cxx-ada-anonymous-enums",
            "cxx-ada-char8-type",
            "cxx-ada-member-pointers",
            "cxx-ada-vector-types",
            "cxx-ada-enclosing-type-method-names",
            "cxx-ada-profile-formal-type-names",
            "cxx-ada-visible-type-method-names",
            "predicate-conditional-aggregate-box"
          ],
          "control_tests": [
            "cxx-ada-int128-types"
          ],
          "gcc_major": 16,
          "patchset_version": "1.2.0",
          "path": "patchsets/1.2.0/gcc-16.toml",
          "release": null,
          "schema": 1,
          "source_version": "16.2.0",
          "staged_bundles": [
            "cxx-ada-inherited-tail-padding",
            "cxx-ada-empty-class-storage",
            "cxx-ada-virtual-inheritance-layout",
            "cxx-ada-virtual-diamond-layout",
            "cxx-ada-concrete-multiple-inheritance",
            "cxx-ada-derived-virtual-slots",
            "cxx-ada-generated-name-identity"
          ]
        }
      ],
      "version": "1.2.0"
    },
    {
      "latest": false,
      "superseded_by": "1.2.0",
      "targets": [
        {
          "bundles": [
            "protected-duration-validity"
          ],
          "control_tests": [
            "storage-model-actuals"
          ],
          "gcc_major": 13,
          "patchset_version": "1.1.0",
          "path": "patchsets/1.1.0/gcc-13.toml",
          "release": {
            "alire_crate": "gnat_flyology_native",
            "alire_version": "13.2.0-patchset.1.1.0",
            "assets": [
              "binutils-2.46.1.tar.xz",
              "binutils-2.46.1.tar.xz.sha512",
              "gnat-flyology-native-gcc-13.2.0-patchset-1.1.0-linux-aarch64.tar.gz",
              "gnat-flyology-native-gcc-13.2.0-patchset-1.1.0-linux-aarch64.tar.gz.sha256",
              "gnat-flyology-native-gcc-13.2.0-patchset-1.1.0-linux-x86_64.tar.gz",
              "gnat-flyology-native-gcc-13.2.0-patchset-1.1.0-linux-x86_64.tar.gz.sha256",
              "gnat-flyology-native-gcc-13.2.0-patchset-1.1.0-macos-aarch64.tar.gz",
              "gnat-flyology-native-gcc-13.2.0-patchset-1.1.0-macos-aarch64.tar.gz.sha256",
              "gnat-patchset-1.1.0-gcc-13.tar.gz",
              "gnat-patchset-1.1.0-gcc-13.tar.gz.sha256",
              "gnat_flyology_native-13.2.0-patchset.1.1.0.toml"
            ],
            "name": "GNAT patchset 1.1.0 for GCC 13",
            "platforms": [
              "Linux x86-64",
              "Linux AArch64",
              "macOS AArch64"
            ],
            "published_at": "2026-08-08T15:55:35Z",
            "state": "published",
            "tag": "patchset-1.1.0-gcc-13",
            "url": "https://github.com/flyology-ada/gnat-patches/releases/tag/patchset-1.1.0-gcc-13"
          },
          "schema": 1,
          "source_version": "13.2.0",
          "staged_bundles": []
        },
        {
          "bundles": [
            "storage-model-actuals",
            "protected-duration-validity"
          ],
          "control_tests": [],
          "gcc_major": 14,
          "patchset_version": "1.1.0",
          "path": "patchsets/1.1.0/gcc-14.toml",
          "release": {
            "alire_crate": "gnat_flyology_native",
            "alire_version": "14.2.0-patchset.1.1.0",
            "assets": [
              "binutils-2.46.1.tar.xz",
              "binutils-2.46.1.tar.xz.sha512",
              "gnat-flyology-native-gcc-14.2.0-patchset-1.1.0-linux-aarch64.tar.gz",
              "gnat-flyology-native-gcc-14.2.0-patchset-1.1.0-linux-aarch64.tar.gz.sha256",
              "gnat-flyology-native-gcc-14.2.0-patchset-1.1.0-linux-x86_64.tar.gz",
              "gnat-flyology-native-gcc-14.2.0-patchset-1.1.0-linux-x86_64.tar.gz.sha256",
              "gnat-flyology-native-gcc-14.2.0-patchset-1.1.0-macos-aarch64.tar.gz",
              "gnat-flyology-native-gcc-14.2.0-patchset-1.1.0-macos-aarch64.tar.gz.sha256",
              "gnat-patchset-1.1.0-gcc-14.tar.gz",
              "gnat-patchset-1.1.0-gcc-14.tar.gz.sha256",
              "gnat_flyology_native-14.2.0-patchset.1.1.0.toml"
            ],
            "name": "GNAT patchset 1.1.0 for GCC 14",
            "platforms": [
              "Linux x86-64",
              "Linux AArch64",
              "macOS AArch64"
            ],
            "published_at": "2026-08-08T15:58:09Z",
            "state": "published",
            "tag": "patchset-1.1.0-gcc-14",
            "url": "https://github.com/flyology-ada/gnat-patches/releases/tag/patchset-1.1.0-gcc-14"
          },
          "schema": 1,
          "source_version": "14.2.0",
          "staged_bundles": []
        },
        {
          "bundles": [
            "storage-model-actuals",
            "protected-duration-validity"
          ],
          "control_tests": [],
          "gcc_major": 15,
          "patchset_version": "1.1.0",
          "path": "patchsets/1.1.0/gcc-15.toml",
          "release": {
            "alire_crate": "gnat_flyology_native",
            "alire_version": "15.3.0-patchset.1.1.0",
            "assets": [
              "binutils-2.46.1.tar.xz",
              "binutils-2.46.1.tar.xz.sha512",
              "gnat-flyology-native-gcc-15.3.0-patchset-1.1.0-linux-aarch64.tar.gz",
              "gnat-flyology-native-gcc-15.3.0-patchset-1.1.0-linux-aarch64.tar.gz.sha256",
              "gnat-flyology-native-gcc-15.3.0-patchset-1.1.0-linux-x86_64.tar.gz",
              "gnat-flyology-native-gcc-15.3.0-patchset-1.1.0-linux-x86_64.tar.gz.sha256",
              "gnat-flyology-native-gcc-15.3.0-patchset-1.1.0-macos-aarch64.tar.gz",
              "gnat-flyology-native-gcc-15.3.0-patchset-1.1.0-macos-aarch64.tar.gz.sha256",
              "gnat-patchset-1.1.0-gcc-15.tar.gz",
              "gnat-patchset-1.1.0-gcc-15.tar.gz.sha256",
              "gnat_flyology_native-15.3.0-patchset.1.1.0.toml"
            ],
            "name": "GNAT patchset 1.1.0 for GCC 15",
            "platforms": [
              "Linux x86-64",
              "Linux AArch64",
              "macOS AArch64"
            ],
            "published_at": "2026-08-08T16:01:22Z",
            "state": "published",
            "tag": "patchset-1.1.0-gcc-15",
            "url": "https://github.com/flyology-ada/gnat-patches/releases/tag/patchset-1.1.0-gcc-15"
          },
          "schema": 1,
          "source_version": "15.3.0",
          "staged_bundles": []
        },
        {
          "bundles": [
            "storage-model-actuals",
            "protected-duration-validity"
          ],
          "control_tests": [],
          "gcc_major": 16,
          "patchset_version": "1.1.0",
          "path": "patchsets/1.1.0/gcc-16.toml",
          "release": {
            "alire_crate": "gnat_flyology_native",
            "alire_version": "16.2.0-patchset.1.1.0",
            "assets": [
              "binutils-2.46.1.tar.xz",
              "binutils-2.46.1.tar.xz.sha512",
              "gnat-flyology-native-gcc-16.2.0-patchset-1.1.0-linux-aarch64.tar.gz",
              "gnat-flyology-native-gcc-16.2.0-patchset-1.1.0-linux-aarch64.tar.gz.sha256",
              "gnat-flyology-native-gcc-16.2.0-patchset-1.1.0-linux-x86_64.tar.gz",
              "gnat-flyology-native-gcc-16.2.0-patchset-1.1.0-linux-x86_64.tar.gz.sha256",
              "gnat-flyology-native-gcc-16.2.0-patchset-1.1.0-macos-aarch64.tar.gz",
              "gnat-flyology-native-gcc-16.2.0-patchset-1.1.0-macos-aarch64.tar.gz.sha256",
              "gnat-patchset-1.1.0-gcc-16.tar.gz",
              "gnat-patchset-1.1.0-gcc-16.tar.gz.sha256",
              "gnat_flyology_native-16.2.0-patchset.1.1.0.toml"
            ],
            "name": "GNAT patchset 1.1.0 for GCC 16.2.0",
            "platforms": [
              "Linux x86-64",
              "Linux AArch64",
              "macOS AArch64"
            ],
            "published_at": "2026-08-13T12:47:26Z",
            "state": "published",
            "tag": "patchset-1.1.0-gcc-16.2.0",
            "url": "https://github.com/flyology-ada/gnat-patches/releases/tag/patchset-1.1.0-gcc-16.2.0"
          },
          "schema": 1,
          "source_version": "16.2.0",
          "staged_bundles": []
        }
      ],
      "version": "1.1.0"
    },
    {
      "latest": false,
      "superseded_by": "1.1.0",
      "targets": [
        {
          "bundles": [],
          "control_tests": [
            "storage-model-actuals"
          ],
          "gcc_major": 13,
          "patchset_version": "1.0.1",
          "path": "patchsets/1.0.1/gcc-13.toml",
          "release": null,
          "schema": 1,
          "source_version": "13.2.0",
          "staged_bundles": []
        },
        {
          "bundles": [
            "storage-model-actuals"
          ],
          "control_tests": [],
          "gcc_major": 14,
          "patchset_version": "1.0.1",
          "path": "patchsets/1.0.1/gcc-14.toml",
          "release": {
            "alire_crate": "gnat_flyology_native",
            "alire_version": "14.2.0-patchset.1.0.1",
            "assets": [
              "binutils-2.46.1.tar.xz",
              "binutils-2.46.1.tar.xz.sha512",
              "gnat-flyology-native-gcc-14.2.0-patchset-1.0.1-linux-aarch64.tar.gz",
              "gnat-flyology-native-gcc-14.2.0-patchset-1.0.1-linux-aarch64.tar.gz.sha256",
              "gnat-flyology-native-gcc-14.2.0-patchset-1.0.1-linux-x86_64.tar.gz",
              "gnat-flyology-native-gcc-14.2.0-patchset-1.0.1-linux-x86_64.tar.gz.sha256",
              "gnat-flyology-native-gcc-14.2.0-patchset-1.0.1-macos-aarch64.tar.gz",
              "gnat-flyology-native-gcc-14.2.0-patchset-1.0.1-macos-aarch64.tar.gz.sha256",
              "gnat-patchset-1.0.1-gcc-14.tar.gz",
              "gnat-patchset-1.0.1-gcc-14.tar.gz.sha256",
              "gnat_flyology_native-14.2.0-patchset.1.0.1.toml"
            ],
            "name": "GNAT patchset 1.0.1 for GCC 14",
            "platforms": [
              "Linux x86-64",
              "Linux AArch64",
              "macOS AArch64"
            ],
            "published_at": "2026-08-08T01:28:56Z",
            "state": "published",
            "tag": "patchset-1.0.1-gcc-14",
            "url": "https://github.com/flyology-ada/gnat-patches/releases/tag/patchset-1.0.1-gcc-14"
          },
          "schema": 1,
          "source_version": "14.2.0",
          "staged_bundles": []
        },
        {
          "bundles": [
            "storage-model-actuals"
          ],
          "control_tests": [],
          "gcc_major": 15,
          "patchset_version": "1.0.1",
          "path": "patchsets/1.0.1/gcc-15.toml",
          "release": {
            "alire_crate": "gnat_flyology_native",
            "alire_version": "15.3.0-patchset.1.0.1",
            "assets": [
              "binutils-2.46.1.tar.xz",
              "binutils-2.46.1.tar.xz.sha512",
              "gnat-flyology-native-gcc-15.3.0-patchset-1.0.1-linux-aarch64.tar.gz",
              "gnat-flyology-native-gcc-15.3.0-patchset-1.0.1-linux-aarch64.tar.gz.sha256",
              "gnat-flyology-native-gcc-15.3.0-patchset-1.0.1-linux-x86_64.tar.gz",
              "gnat-flyology-native-gcc-15.3.0-patchset-1.0.1-linux-x86_64.tar.gz.sha256",
              "gnat-flyology-native-gcc-15.3.0-patchset-1.0.1-macos-aarch64.tar.gz",
              "gnat-flyology-native-gcc-15.3.0-patchset-1.0.1-macos-aarch64.tar.gz.sha256",
              "gnat-patchset-1.0.1-gcc-15.tar.gz",
              "gnat-patchset-1.0.1-gcc-15.tar.gz.sha256",
              "gnat_flyology_native-15.3.0-patchset.1.0.1.toml"
            ],
            "name": "GNAT patchset 1.0.1 for GCC 15",
            "platforms": [
              "Linux x86-64",
              "Linux AArch64",
              "macOS AArch64"
            ],
            "published_at": "2026-08-08T01:29:00Z",
            "state": "published",
            "tag": "patchset-1.0.1-gcc-15",
            "url": "https://github.com/flyology-ada/gnat-patches/releases/tag/patchset-1.0.1-gcc-15"
          },
          "schema": 1,
          "source_version": "15.3.0",
          "staged_bundles": []
        },
        {
          "bundles": [
            "storage-model-actuals"
          ],
          "control_tests": [],
          "gcc_major": 16,
          "patchset_version": "1.0.1",
          "path": "patchsets/1.0.1/gcc-16.toml",
          "release": {
            "alire_crate": "gnat_flyology_native",
            "alire_version": "16.1.0-patchset.1.0.1",
            "assets": [
              "binutils-2.46.1.tar.xz",
              "binutils-2.46.1.tar.xz.sha512",
              "gnat-flyology-native-gcc-16.1.0-patchset-1.0.1-linux-aarch64.tar.gz",
              "gnat-flyology-native-gcc-16.1.0-patchset-1.0.1-linux-aarch64.tar.gz.sha256",
              "gnat-flyology-native-gcc-16.1.0-patchset-1.0.1-linux-x86_64.tar.gz",
              "gnat-flyology-native-gcc-16.1.0-patchset-1.0.1-linux-x86_64.tar.gz.sha256",
              "gnat-flyology-native-gcc-16.1.0-patchset-1.0.1-macos-aarch64.tar.gz",
              "gnat-flyology-native-gcc-16.1.0-patchset-1.0.1-macos-aarch64.tar.gz.sha256",
              "gnat-patchset-1.0.1-gcc-16.tar.gz",
              "gnat-patchset-1.0.1-gcc-16.tar.gz.sha256",
              "gnat_flyology_native-16.1.0-patchset.1.0.1.toml"
            ],
            "name": "GNAT patchset 1.0.1 for GCC 16",
            "platforms": [
              "Linux x86-64",
              "Linux AArch64",
              "macOS AArch64"
            ],
            "published_at": "2026-08-08T01:29:15Z",
            "state": "published",
            "tag": "patchset-1.0.1-gcc-16",
            "url": "https://github.com/flyology-ada/gnat-patches/releases/tag/patchset-1.0.1-gcc-16"
          },
          "schema": 1,
          "source_version": "16.1.0",
          "staged_bundles": []
        }
      ],
      "version": "1.0.1"
    },
    {
      "latest": false,
      "superseded_by": "1.0.1",
      "targets": [
        {
          "bundles": [],
          "control_tests": [
            "storage-model-actuals"
          ],
          "gcc_major": 13,
          "patchset_version": "1.0.0",
          "path": "patchsets/1.0.0/gcc-13.toml",
          "release": null,
          "schema": 1,
          "source_version": "13.2.0",
          "staged_bundles": []
        },
        {
          "bundles": [
            "storage-model-actuals"
          ],
          "control_tests": [],
          "gcc_major": 14,
          "patchset_version": "1.0.0",
          "path": "patchsets/1.0.0/gcc-14.toml",
          "release": null,
          "schema": 1,
          "source_version": "14.2.0",
          "staged_bundles": []
        },
        {
          "bundles": [
            "storage-model-actuals"
          ],
          "control_tests": [],
          "gcc_major": 15,
          "patchset_version": "1.0.0",
          "path": "patchsets/1.0.0/gcc-15.toml",
          "release": null,
          "schema": 1,
          "source_version": "15.3.0",
          "staged_bundles": []
        },
        {
          "bundles": [
            "storage-model-actuals"
          ],
          "control_tests": [],
          "gcc_major": 16,
          "patchset_version": "1.0.0",
          "path": "patchsets/1.0.0/gcc-16.toml",
          "release": {
            "alire_crate": "gnat_flyology_native",
            "alire_version": "16.1.0-patchset.1.0.0",
            "assets": [
              "binutils-2.46.1.tar.xz",
              "binutils-2.46.1.tar.xz.sha512",
              "gnat-flyology-native-gcc-16.1.0-patchset-1.0.0-linux-aarch64.tar.gz",
              "gnat-flyology-native-gcc-16.1.0-patchset-1.0.0-linux-aarch64.tar.gz.sha256",
              "gnat-flyology-native-gcc-16.1.0-patchset-1.0.0-linux-x86_64.tar.gz",
              "gnat-flyology-native-gcc-16.1.0-patchset-1.0.0-linux-x86_64.tar.gz.sha256",
              "gnat-flyology-native-gcc-16.1.0-patchset-1.0.0-macos-aarch64.tar.gz",
              "gnat-flyology-native-gcc-16.1.0-patchset-1.0.0-macos-aarch64.tar.gz.sha256",
              "gnat-patchset-1.0.0-gcc-16.tar.gz",
              "gnat-patchset-1.0.0-gcc-16.tar.gz.sha256",
              "gnat_flyology_native-16.1.0-patchset.1.0.0.toml"
            ],
            "name": "GNAT patchset 1.0.0 for GCC 16 (retracted: invalid Alire archive layout)",
            "platforms": [
              "Linux x86-64",
              "Linux AArch64",
              "macOS AArch64"
            ],
            "published_at": "2026-08-07T22:20:56Z",
            "state": "prerelease",
            "tag": "patchset-1.0.0-gcc-16",
            "url": "https://github.com/flyology-ada/gnat-patches/releases/tag/patchset-1.0.0-gcc-16"
          },
          "schema": 1,
          "source_version": "16.1.0",
          "staged_bundles": []
        }
      ],
      "version": "1.0.0"
    }
  ],
  "publication_checked": true,
  "repository_url": "https://github.com/flyology-ada/gnat-patches",
  "schema_version": 1,
  "sources": [
    {
      "darwin_arm64": {
        "build_provenance": "https://github.com/alire-project/GNAT-FSF-builds/blob/gnat-13.2.0-2/.github/workflows/macos_arm.yml",
        "commit": "46003d70a6411362e9de99ced8242f52129d5f9a",
        "repository": "https://github.com/iains/gcc-13-branch.git",
        "runner": "macos-14",
        "tag": "gcc-13.2-darwin-r0",
        "tree": "608a198adec22ab00cff48d887e30de4dadf2434",
        "xcode": "15.4"
      },
      "linux": {
        "archive": "gcc-13.2.0.tar.xz",
        "sha512": "d99e4826a70db04504467e349e9fbaedaa5870766cda7c5cab50cdebedc4be755ebca5b789e1232a34a20be1a0b60097de9280efe47bdb71c73251e30b0862a2",
        "url": "https://gcc.gnu.org/pub/gcc/releases/gcc-13.2.0/gcc-13.2.0.tar.xz"
      },
      "major": 13,
      "path": "sources/gcc-13.2.0.toml",
      "release_commit": "c891d8dc23e1a46ad9f3e757d09e57b500d40044",
      "release_tag": "releases/gcc-13.2.0",
      "release_tree": "e0036ea6a50a6a9e2b4ffe6e1a7c5276452f1023",
      "schema": 1,
      "version": "13.2.0"
    },
    {
      "darwin_arm64": {
        "commit": "aac1e84d685e43400873ca882b9c81154f9baa26",
        "repository": "https://github.com/iains/gcc-14-branch.git",
        "runner": "macos-15",
        "tag": "gcc-14.2-darwin-r2",
        "tree": "a3f48716d9accaff42c4a64d0fc42aada527708d",
        "xcode": "16.4"
      },
      "linux": {
        "archive": "gcc-14.2.0.tar.xz",
        "sha512": "932bdef0cda94bacedf452ab17f103c0cb511ff2cec55e9112fc0328cbf1d803b42595728ea7b200e0a057c03e85626f937012e49a7515bc5dd256b2bf4bc396",
        "url": "https://gcc.gnu.org/pub/gcc/releases/gcc-14.2.0/gcc-14.2.0.tar.xz"
      },
      "major": 14,
      "path": "sources/gcc-14.2.0.toml",
      "release_commit": "04696df09633baf97cdbbdd6e9929b9d472161d3",
      "release_tag": "releases/gcc-14.2.0",
      "release_tree": "1357078fcfcdd78685d385d705c2fa137251cb01",
      "schema": 1,
      "version": "14.2.0"
    },
    {
      "darwin_arm64": {
        "commit": "cde9e41a33772840ae9b02011f16ffe131613d07",
        "repository": "https://github.com/iains/gcc-15-branch.git",
        "runner": "macos-15",
        "tag": "gcc-15.3-darwin-r0",
        "tree": "6fb2564c5e0e0570bb3fee246e49eb231c1fa205",
        "xcode": "16.4"
      },
      "linux": {
        "archive": "gcc-15.3.0.tar.xz",
        "sha512": "0de9e296153b52c021b1c7e63c9c62151d7a0ac03f23ce6e9f772c1b0eb783f6acdd81cc4567bfe4128a6f64968c2cfc8eff40b36229cba7425349f7d637c654",
        "url": "https://gcc.gnu.org/pub/gcc/releases/gcc-15.3.0/gcc-15.3.0.tar.xz"
      },
      "major": 15,
      "path": "sources/gcc-15.3.0.toml",
      "release_commit": "4db0e8df15bef836558857c291c323add11d035c",
      "release_tag": "releases/gcc-15.3.0",
      "release_tree": "0c76aca021168cf1d823c7d3ddc03a3d589d1cff",
      "schema": 1,
      "version": "15.3.0"
    },
    {
      "darwin_arm64": {
        "commit": "d172afd6656630c80e2a1d5e8239ed4b4ec7f996",
        "repository": "https://github.com/iains/gcc-16-branch.git",
        "runner": "macos-15",
        "tag": "gcc-16.1-darwin-r0",
        "tree": "73253da30072e29b84f6034e4a2cc32358e1898a",
        "xcode": "16.4"
      },
      "linux": {
        "archive": "gcc-16.1.0.tar.xz",
        "sha512": "b3454958891ab47e1e5b6cb9396c0ad3b04f32fe2a7bf1153a143f21013fdb6b295ca94c98964698a688e4c1d7555ffd8ffbc20187507cce6b1c32cbcc09897a",
        "url": "https://gcc.gnu.org/pub/gcc/releases/gcc-16.1.0/gcc-16.1.0.tar.xz"
      },
      "major": 16,
      "path": "sources/gcc-16.1.0.toml",
      "release_commit": "6afcc4f6da931eb93f3ab001a0dd9650ea71d1ea",
      "release_tag": "releases/gcc-16.1.0",
      "release_tree": "6375ff1974d25046624a86b92c7333009403e66b",
      "schema": 1,
      "version": "16.1.0"
    },
    {
      "darwin_arm64": {
        "commit": "ff47b205083811f1cea6675250699d0c383d4a81",
        "repository": "https://github.com/flyology-ada/gcc-16-branch.git",
        "runner": "macos-15",
        "tag": "gcc-16.2-darwin-rc0",
        "tree": "b4e53f180a97e01e0a0d00c3d71f047603e67741",
        "xcode": "16.4"
      },
      "linux": {
        "archive": "gcc-16.2.0.tar.xz",
        "sha512": "c51c30ca7422d0cbecf504b2e0f33c3aca31e0f90a76b65217f465163fa6fa17b3f5de39e145c47e5bab90ac0ce7fff3b03c8d553ae36e01faaea5a50f8648d1",
        "url": "https://gcc.gnu.org/pub/gcc/releases/gcc-16.2.0/gcc-16.2.0.tar.xz"
      },
      "major": 16,
      "path": "sources/gcc-16.2.0.toml",
      "release_commit": "78d4ac73dd391005b895a6148cd9831e28e1208b",
      "release_tag": "releases/gcc-16.2.0",
      "release_tree": "050dfd1626105b34fbf3215cb23d4e8a472c2329",
      "schema": 1,
      "version": "16.2.0"
    }
  ]
}
