)]}'
{
  "commit": "c68beaef7a1760bfebf43d358f2315cccd99faae",
  "tree": "c1d6acfaec12632586bfdac23bebd4bd5c8ff134",
  "parents": [
    "c0377b992a9326d84e3e9f9a9a3ad5be100afcf7"
  ],
  "author": {
    "name": "Eric Botcazou",
    "email": "ebotcazou@adacore.com",
    "time": "Sun Apr 05 10:21:46 2026 +0200"
  },
  "committer": {
    "name": "Eric Botcazou",
    "email": "ebotcazou@adacore.com",
    "time": "Sun Apr 05 10:25:38 2026 +0200"
  },
  "message": "Ada: Fix too large secondary stack allocation for aggregate return\n\nThis is a regression present on the mainline and 15 branch.  The problematic\nallocation may occur when the result type of the function is a discriminated\nrecord type with defaulted discriminants.  Although it had been present for\na long time when the type is limited, the problem was recently propagated\nto nonlimited types because of an optimization.\n\nWhile the fix is a one-liner, the change also makes it so that SS_Allocate\nraises a Storage_Error when the size overflows, like the other allocators.\n\ngcc/ada/\n\t* exp_ch6.adb (Expand_Simple_Function_Return): Use a constant return\n\tobject when the simple return is rewritten as an extended one.\n\t* libgnat/s-secsta.adb (SS_Allocate): Raise Storage_Error if the\n\trequested size is negative.\n\t* libgnat/s-secsta__cheri.adb (SS_Allocate): Likewise.\n\ngcc/testsuite/\n\t* gnat.dg/aggr35.adb: New test.\n\t* gnat.dg/aggr35_pkg.ads, gnat.dg/aggr35_pkg.adb: New helper.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "131f64178bbeea3f093c05031a7153b698c11a77",
      "old_mode": 33188,
      "old_path": "gcc/ada/exp_ch6.adb",
      "new_id": "7edcddca06aecfb2c81a4b77e58eb8f97711b37c",
      "new_mode": 33188,
      "new_path": "gcc/ada/exp_ch6.adb"
    },
    {
      "type": "modify",
      "old_id": "2749658114af8088597bb6513d5c28f68ba3a4af",
      "old_mode": 33188,
      "old_path": "gcc/ada/libgnat/s-secsta.adb",
      "new_id": "b8ffd9782cc392b5c98e49cdd3aa1f6a26ec2ece",
      "new_mode": 33188,
      "new_path": "gcc/ada/libgnat/s-secsta.adb"
    },
    {
      "type": "modify",
      "old_id": "a24b50e2f7448efd6c93360bbc9e4691ea6742da",
      "old_mode": 33188,
      "old_path": "gcc/ada/libgnat/s-secsta__cheri.adb",
      "new_id": "05620e2b10fcda62109676039ec9c617de54ba1b",
      "new_mode": 33188,
      "new_path": "gcc/ada/libgnat/s-secsta__cheri.adb"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e6b107394b409a110559f634b9883d5a15b3ecf6",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gnat.dg/aggr35.adb"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2f3c4bf143909258ab3d5e0cd3081fee42dd8955",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gnat.dg/aggr35_pkg.adb"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3873eea048a2a42eb336a89619b9e978c1e1b082",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gnat.dg/aggr35_pkg.ads"
    }
  ]
}
