)]}'
{
  "commit": "304a75b1b2a748e8bb94fd80a31a6e20da7fe6e8",
  "tree": "bd833a5ea7b08694cad1d6d78d6ddd22f2f3d189",
  "parents": [
    "d7e89271ec6dac05574200e1e9a2d11e0ff467e7"
  ],
  "author": {
    "name": "Eric Botcazou",
    "email": "ebotcazou@adacore.com",
    "time": "Fri Feb 27 19:54:33 2026 +0100"
  },
  "committer": {
    "name": "Eric Botcazou",
    "email": "ebotcazou@adacore.com",
    "time": "Fri Feb 27 21:44:56 2026 +0100"
  },
  "message": "Ada: Fix assertion failure for unfrozen mutably tagged type as actual\n\nThis is a follow-up to the fix done last December at:\n  https://gcc.gnu.org/pipermail/gcc-patches/2025-December/704521.html\n\nThe fix is not sufficient when nested layers of generics are involved,\nso this changes the implementation of mutably tagged types to have the\ndeclaration of their CW-equivalent type immediately analyzed.  But this\nin turn requires making sure that the root type is frozen before the\nCW-equivalent type in all cases.\n\ngcc/ada/\n\tPR ada/123306\n\t* freeze.adb (Freeze_Entity): For a class-wide equivalent type of\n\ta non-interface root type, freeze the root type before it.\n\t* sem_ch3.adb (Derived_Type_Declaration): Minor tweak.\n\t* sem_ch12.adb (Analyze_One_Association): Revert latest change.\n\t* sem_ch13.adb (Analyze_Attribute_Definition_Clause) \u003cSize\u003e: When\n\tthe prefix is a class-wide type, insert the declaration of the CW-\n\tequivalent type immediately after that of the root type, and the\n\tsize check for the root type into its own freezing actions.\n\ngcc/testsuite/\n\t* gnat.dg/specs/mutably_tagged2.ads: New test.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0b501f194d69ade4ce354a7aafe95e46e6bd7b55",
      "old_mode": 33188,
      "old_path": "gcc/ada/freeze.adb",
      "new_id": "383b393a78968a4f867fc814d016fd3129e68942",
      "new_mode": 33188,
      "new_path": "gcc/ada/freeze.adb"
    },
    {
      "type": "modify",
      "old_id": "7d525a9d54c99a55dae8eb5020d56ce046c53de8",
      "old_mode": 33188,
      "old_path": "gcc/ada/sem_ch12.adb",
      "new_id": "bde56723e4e6a4ec971a0ed277255cc99d5a8ae4",
      "new_mode": 33188,
      "new_path": "gcc/ada/sem_ch12.adb"
    },
    {
      "type": "modify",
      "old_id": "547bcaf886da0402bc745e09bb62c89036d292ce",
      "old_mode": 33188,
      "old_path": "gcc/ada/sem_ch13.adb",
      "new_id": "da25e3015676bd2c2aecc217d0cf547c513bd13e",
      "new_mode": 33188,
      "new_path": "gcc/ada/sem_ch13.adb"
    },
    {
      "type": "modify",
      "old_id": "225bff097bf150f3073f13d0c80678daff675d3c",
      "old_mode": 33188,
      "old_path": "gcc/ada/sem_ch3.adb",
      "new_id": "bab4c22374d484b35dc8cac3eec4a11c710201c1",
      "new_mode": 33188,
      "new_path": "gcc/ada/sem_ch3.adb"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "69a3c6a23d51f0e5c38fa3d7f472726d2fc82bd3",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gnat.dg/specs/mutably_tagged2.ads"
    }
  ]
}
