)]}'
{
  "commit": "4442e8b6cbffd113ec7bd25f449cc18f104f7150",
  "tree": "925c02e77c24c3b99e75cb7145715e1db7fecc48",
  "parents": [
    "3f18211853985a2bedc1621c999c2ac97b184333"
  ],
  "author": {
    "name": "Jakub Jelinek",
    "email": "jakub@redhat.com",
    "time": "Mon Sep 14 18:17:32 2026 +0200"
  },
  "committer": {
    "name": "Jakub Jelinek",
    "email": "jakub@gcc.gnu.org",
    "time": "Mon Sep 14 18:17:32 2026 +0200"
  },
  "message": "libstdc++, testsuite: Implement C++26 P3450R1: Extend std::is_within_lifetime paper\n\nNow that r17-4186 fixed constexpr evaluation of static_cast downcasts to diagnose\nUB, this patch implements the C++26 P3450R1: Extend std::is_within_lifetime paper\npurely in library by using __builtin_constant_p to verify if the static_cast\nmandated by the standard is a constant expression.\n\n2026-09-14  Jakub Jelinek  \u003cjakub@redhat.com\u003e\n\nlibstdc++-v3/\n\t* include/bits/version.def (within_lifetime): Change value from 202306\n\tto 202603.\n\t* include/bits/version.h: Regenerate.\n\t* include/std/type_traits: Implement C++26 P3450R1: Extend\n\tstd::is_within_lifetime paper.\n\t(std::is_within_lifetime): Add _Up template argument defaulted to void\n\tand verify static_cast\u003cconst volatile _Up*\u003e(__p) is a constant\n\texpression.\ngcc/testsuite/\n\t* g++.dg/cpp26/within-lifetime1.C: Fix up C++26 paper number and name.\n\t* g++.dg/cpp26/within-lifetime2.C: Likewise.\n\t* g++.dg/cpp26/within-lifetime3.C: Likewise.\n\t* g++.dg/cpp26/within-lifetime4.C: Likewise.\n\t* g++.dg/cpp26/within-lifetime5.C: Likewise.\n\t* g++.dg/cpp26/within-lifetime6.C: Likewise.\n\t* g++.dg/cpp26/within-lifetime7.C: Likewise.\n\t* g++.dg/cpp26/within-lifetime8.C: Likewise.\n\t* g++.dg/cpp26/within-lifetime9.C: Likewise.\n\t* g++.dg/cpp26/within-lifetime10.C: New test.\n\t* g++.dg/cpp26/within-lifetime11.C: New test.\n\t* g++.dg/cpp26/within-lifetime12.C: New test.\n\nReviewed-by: Jonathan Wakely \u003cjwakely@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e5ce7bdb830c867d4372d4daaac108db4377716f",
      "old_mode": 33188,
      "old_path": "gcc/testsuite/g++.dg/cpp26/within-lifetime1.C",
      "new_id": "54e21525abfcc8adf31431695e41007c7ad8fe55",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/g++.dg/cpp26/within-lifetime1.C"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "45cbbaaf52f7130a83eea8fef4edc0ec8f69abb5",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/g++.dg/cpp26/within-lifetime10.C"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0624abebca43f827ca8279e199e5e210c5130774",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/g++.dg/cpp26/within-lifetime11.C"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5381118a4b1fc3430d562b71ea3d1176f38aad10",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/g++.dg/cpp26/within-lifetime12.C"
    },
    {
      "type": "modify",
      "old_id": "dc0544848f7fc781dd9978c46ea46beb417f5d53",
      "old_mode": 33188,
      "old_path": "gcc/testsuite/g++.dg/cpp26/within-lifetime2.C",
      "new_id": "469e783dde1b146a0bcb4f69ae183d8b8c163563",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/g++.dg/cpp26/within-lifetime2.C"
    },
    {
      "type": "modify",
      "old_id": "36afd2ef3f261e4e1717371807cd38de95002588",
      "old_mode": 33188,
      "old_path": "gcc/testsuite/g++.dg/cpp26/within-lifetime3.C",
      "new_id": "972039c3b7006c06eda5a391ed94b42a42cf8e45",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/g++.dg/cpp26/within-lifetime3.C"
    },
    {
      "type": "modify",
      "old_id": "b420dea5fe2dedf5a27b5a5c25d253f2ef92d074",
      "old_mode": 33188,
      "old_path": "gcc/testsuite/g++.dg/cpp26/within-lifetime4.C",
      "new_id": "1cb895d4bf1e750cc17398745f36de6f6f3f3cee",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/g++.dg/cpp26/within-lifetime4.C"
    },
    {
      "type": "modify",
      "old_id": "1f780cf13d582259fc868a6fd2237be2bb8bd44f",
      "old_mode": 33188,
      "old_path": "gcc/testsuite/g++.dg/cpp26/within-lifetime5.C",
      "new_id": "1b96fe2f3c3cf05994b91e387ff9f629ffdb1553",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/g++.dg/cpp26/within-lifetime5.C"
    },
    {
      "type": "modify",
      "old_id": "6e9ddf917bdc95c1b9ec69d9c3cc4b5825c5b919",
      "old_mode": 33188,
      "old_path": "gcc/testsuite/g++.dg/cpp26/within-lifetime6.C",
      "new_id": "ef2544e445e49fe981c35838ed95f1434b3b9969",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/g++.dg/cpp26/within-lifetime6.C"
    },
    {
      "type": "modify",
      "old_id": "d920f5aee0cd55b116539c83e76c06e2c28cc497",
      "old_mode": 33188,
      "old_path": "gcc/testsuite/g++.dg/cpp26/within-lifetime7.C",
      "new_id": "48098e8f2f6617bbfdff5fda4e739f7a6d157ddb",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/g++.dg/cpp26/within-lifetime7.C"
    },
    {
      "type": "modify",
      "old_id": "98bfde2077fca22ee2fe2e94232803f6ffc549c5",
      "old_mode": 33188,
      "old_path": "gcc/testsuite/g++.dg/cpp26/within-lifetime8.C",
      "new_id": "5a28f92ffb4d5abf0653b0393e00dd5107aaea52",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/g++.dg/cpp26/within-lifetime8.C"
    },
    {
      "type": "modify",
      "old_id": "905d54400bcdb972559f34310fb7f11172a45bf8",
      "old_mode": 33188,
      "old_path": "gcc/testsuite/g++.dg/cpp26/within-lifetime9.C",
      "new_id": "d9751e4d87376b49679a8fee7693c0ef49ba12b2",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/g++.dg/cpp26/within-lifetime9.C"
    },
    {
      "type": "modify",
      "old_id": "36f8c9c31cf4872fd933872b12ecd8ab0f33b755",
      "old_mode": 33188,
      "old_path": "libstdc++-v3/include/bits/version.def",
      "new_id": "9c523581c65a39b442128861dc8d55a09e879c22",
      "new_mode": 33188,
      "new_path": "libstdc++-v3/include/bits/version.def"
    },
    {
      "type": "modify",
      "old_id": "e79ea5043d74572a7cbdf437fc494d926bd14b73",
      "old_mode": 33188,
      "old_path": "libstdc++-v3/include/bits/version.h",
      "new_id": "e0003054af683336186764a8e6ffed05a416248a",
      "new_mode": 33188,
      "new_path": "libstdc++-v3/include/bits/version.h"
    },
    {
      "type": "modify",
      "old_id": "921ef287f839c555a55d09f0de358ad37aa9400f",
      "old_mode": 33188,
      "old_path": "libstdc++-v3/include/std/type_traits",
      "new_id": "83dbad17ade93a31f37c3637fb3ac6dd7435c986",
      "new_mode": 33188,
      "new_path": "libstdc++-v3/include/std/type_traits"
    }
  ]
}
