)]}'
{
  "log": [
    {
      "commit": "2e6a09afb8d9ee9e190a81b0d7e3118251ebcb9a",
      "tree": "f9697430c3659d4d27b4fbf3e8f5037d4ad5144d",
      "parents": [
        "df3fc78326c7405719f55ed66f67b6c847ead2b2"
      ],
      "author": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Jan 28 14:22:02 2026 -0500"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:14 2026 -0500"
      },
      "message": "Fix warnings\n"
    },
    {
      "commit": "df3fc78326c7405719f55ed66f67b6c847ead2b2",
      "tree": "ba437fa69aa5ab946d581354382bf465503ed3b6",
      "parents": [
        "048f664d2aec8264456f49d865eaf3912d8c8a87"
      ],
      "author": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Jan 28 12:56:58 2026 -0500"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:13 2026 -0500"
      },
      "message": "libgccjit: Add a way to set the language name and the context filename\n"
    },
    {
      "commit": "048f664d2aec8264456f49d865eaf3912d8c8a87",
      "tree": "347f485c55afb5cf9ad386012a2e1f7f81a2ed74",
      "parents": [
        "f251f220d3b5f4734420f29acffcfa2fdf920521"
      ],
      "author": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Tue Nov 04 12:46:24 2025 -0500"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:13 2026 -0500"
      },
      "message": "libgccjit: Fix UB in gcc_jit_context_new_array_constructor\n"
    },
    {
      "commit": "f251f220d3b5f4734420f29acffcfa2fdf920521",
      "tree": "a81cb6bf2694fefb0cdca47aef4ba9ce28d5a402",
      "parents": [
        "2faf445feddc6ed5e6742439fe6134927c3dd07c"
      ],
      "author": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Thu Oct 09 14:58:10 2025 -0400"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:13 2026 -0500"
      },
      "message": "libgccjit: Add a function to check if LTO is supported\n"
    },
    {
      "commit": "2faf445feddc6ed5e6742439fe6134927c3dd07c",
      "tree": "c34baa5d02ead1d4ff0e5c8d0964727d1629417c",
      "parents": [
        "3761de6dd06a083cc39674f2ed00c0230f4bb3f4"
      ],
      "author": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Fri Oct 03 10:10:17 2025 -0400"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:13 2026 -0500"
      },
      "message": "Disable LTO check that makes LTO failing in some cases\n"
    },
    {
      "commit": "3761de6dd06a083cc39674f2ed00c0230f4bb3f4",
      "tree": "b92221ebd7533ed63abb9f83ec987cdeb3703449",
      "parents": [
        "7abe156abdd84e9caaa08b502572ae4d70528ec0"
      ],
      "author": {
        "name": "antoyo",
        "email": "antoyo@users.noreply.github.com",
        "time": "Fri Sep 19 11:03:45 2025 -0400"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:13 2026 -0500"
      },
      "message": "Do not call host_detect_local_cpu when cross-compiling\n"
    },
    {
      "commit": "7abe156abdd84e9caaa08b502572ae4d70528ec0",
      "tree": "6e722b97c1c6ffa21e57a7d55f75229537129bcb",
      "parents": [
        "40cc80a7438783c51d04840308c0687b698ae535"
      ],
      "author": {
        "name": "Guillaume Gomez",
        "email": "guillaume1.gomez@gmail.com",
        "time": "Fri Aug 08 16:37:05 2025 +0200"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:13 2026 -0500"
      },
      "message": "Add `lvalue::set_name` (#78)\n"
    },
    {
      "commit": "40cc80a7438783c51d04840308c0687b698ae535",
      "tree": "4c1c39ec2c322322816deea469d22c2cb07f080b",
      "parents": [
        "66f495ce4d4d6bc5fdc9539d31a376c0e73b8ae6"
      ],
      "author": {
        "name": "Guillaume Gomez",
        "email": "guillaume1.gomez@gmail.com",
        "time": "Fri Jul 18 15:31:54 2025 +0200"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:13 2026 -0500"
      },
      "message": "gcc/jit/ChangeLog: (#77)\n\n* jit-recording.h: Add lvalue::get_name method\n\t* libgccjit.cc (gcc_jit_lvalue_get_name): Likewise\n\t* libgccjit.h (gcc_jit_lvalue_get_name): Likewise\n\t* libgccjit.map: Likewise\n\ngcc/testsuite/ChangeLog:\n\n\t* jit.dg/test-tls.c: Add test for gcc_jit_lvalue_get_name\n"
    },
    {
      "commit": "66f495ce4d4d6bc5fdc9539d31a376c0e73b8ae6",
      "tree": "80e7ec5e656e78be905597f4b8de1ad100b151c3",
      "parents": [
        "8320352691566042c21ecc9743ba7fbd84f7b61a"
      ],
      "author": {
        "name": "Fractal Fir(Michał Kostrubiec)",
        "email": "michkos2005@gmail.com",
        "time": "Wed Jul 09 00:27:45 2025 +0200"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:12 2026 -0500"
      },
      "message": "Added support for setting TREE_ADDRESSABLE (#76)\n"
    },
    {
      "commit": "8320352691566042c21ecc9743ba7fbd84f7b61a",
      "tree": "256f4d09198cf7628c74cbd523218fc0c16a01e9",
      "parents": [
        "0cdd972b49cd0417169d14366b4ae40d495ce2dd"
      ],
      "author": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Fri Jul 04 07:42:41 2025 -0400"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:12 2026 -0500"
      },
      "message": "Compile GCC on Ubuntu ARM\n"
    },
    {
      "commit": "0cdd972b49cd0417169d14366b4ae40d495ce2dd",
      "tree": "b99b61033dd9a81423b1e5c8377125a711d91205",
      "parents": [
        "1ef061045365c689157d7dc8d14eeb50195c4e8d"
      ],
      "author": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Sun Jun 15 12:26:23 2025 -0400"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:12 2026 -0500"
      },
      "message": "libgccjit: Don\u0027t abort on fatal errors\n"
    },
    {
      "commit": "1ef061045365c689157d7dc8d14eeb50195c4e8d",
      "tree": "a989276152cdf3517d33f54715c75ba14d0fb154",
      "parents": [
        "09034c9182cb0f1e1ef704d1276cfde3e30f5839"
      ],
      "author": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Thu Mar 27 14:36:56 2025 -0400"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:12 2026 -0500"
      },
      "message": "Fix get_size for long double\n"
    },
    {
      "commit": "09034c9182cb0f1e1ef704d1276cfde3e30f5839",
      "tree": "d626aeeda43635d2b87e46889896cb76bdc28b17",
      "parents": [
        "137971d0fb1a44fefebfa6f0f1361637de807bcc"
      ],
      "author": {
        "name": "Jakub Beránek",
        "email": "berykubik@gmail.com",
        "time": "Wed Mar 19 14:05:35 2025 +0100"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:12 2026 -0500"
      },
      "message": "Use rust-lang mirror for downloading GCC dependencies\n"
    },
    {
      "commit": "137971d0fb1a44fefebfa6f0f1361637de807bcc",
      "tree": "76153611ed53fa4b1f802a1499d09bc6df7f03f5",
      "parents": [
        "61e13d3a8588fd3cdb733735a50aeb3c627c74e8"
      ],
      "author": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Fri Feb 14 15:34:59 2025 -0500"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:12 2026 -0500"
      },
      "message": "libgccjit: Add support for the x87 CPU feature\n"
    },
    {
      "commit": "61e13d3a8588fd3cdb733735a50aeb3c627c74e8",
      "tree": "cfd1e7031d723ed8c7e60b06a0ab271f576d6d99",
      "parents": [
        "69a00518e141da0a6e6c64491175ba7efc4224d8"
      ],
      "author": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Mon Mar 25 10:05:54 2024 -0400"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:11 2026 -0500"
      },
      "message": "libgccjit: Fix for -fanalyzer used in libgccjit\n"
    },
    {
      "commit": "69a00518e141da0a6e6c64491175ba7efc4224d8",
      "tree": "a99b50129bf6dc6fd3378688ab8ec00e64674e1d",
      "parents": [
        "d1f6ae80583aebf651f7d3de2401b90d5d82780f"
      ],
      "author": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Tue Dec 10 17:47:39 2024 -0500"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:11 2026 -0500"
      },
      "message": "libgccjit: Allow casts between integers and pointers\n"
    },
    {
      "commit": "d1f6ae80583aebf651f7d3de2401b90d5d82780f",
      "tree": "6620cc5ded8e68e9a6d97ea5297d90b3982da24a",
      "parents": [
        "4e8b331d1d2252d5c3f3774a1c166fd299382367"
      ],
      "author": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Tue May 24 17:44:53 2022 -0400"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:11 2026 -0500"
      },
      "message": "libgccjit: Allow sending a const pointer as argument\n\ngcc/jit/ChangeLog:\n\n\t* jit-recording.h: Remove memento_of_get_const::accepts_writes_from,\n\tmemento_of_get_type::is_same_type_as: new method.\n\ngcc/testsuite/ChangeLog:\n\n\t* jit.dg/all-non-failing-tests.h: Add test-const-pointer-argument.c.\n\t* jit.dg/test-const-pointer-argument.c: New test.\n"
    },
    {
      "commit": "4e8b331d1d2252d5c3f3774a1c166fd299382367",
      "tree": "d3e0b75c033710e8c4663d7bd0ed3c9272df8503",
      "parents": [
        "17ba58206d9de4c1a0ddd2fdbea3d93b957b6284"
      ],
      "author": {
        "name": "Martin Rodriguez Reboredo",
        "email": "yakoyoku@gmail.com",
        "time": "Wed Jan 03 22:09:19 2024 +0000"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:11 2026 -0500"
      },
      "message": "jit: Fix volatile loads and stores\n\nRelated to PR d/110516 but for libgccjit.\n\n2024-01-03  Martin Rodriguez Reboredo  \u003cyakoyoku@gmail.com\u003e\n\ngcc/jit/\n\t* jit-playback.cc: Append TREE_THIS_VOLATILE and TREE_SIDE_EFFECTS to\n\ta dereference if underlying type is volatile.\n\nSigned-off-by: Martin Rodriguez Reboredo \u003cyakoyoku@gmail.com\u003e\n"
    },
    {
      "commit": "17ba58206d9de4c1a0ddd2fdbea3d93b957b6284",
      "tree": "7d6ff50478f91cd25d6e0e4a15643ae5b1fde877",
      "parents": [
        "88a66b2ca958b535e3053b05d69424b350de3a23"
      ],
      "author": {
        "name": "Guillaume Gomez",
        "email": "guillaume1.gomez@gmail.com",
        "time": "Mon Jul 22 17:10:08 2024 +0200"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:11 2026 -0500"
      },
      "message": "Fix licenses\n"
    },
    {
      "commit": "88a66b2ca958b535e3053b05d69424b350de3a23",
      "tree": "24101ccf06f71a95d950dbc4aa1e79bfa23cf50e",
      "parents": [
        "81959505a21a511e8e5214a4bac9c578f418beea"
      ],
      "author": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Tue Oct 08 19:34:43 2024 -0400"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:11 2026 -0500"
      },
      "message": "Handle missing types in jit_langhook_type_for_mode\n"
    },
    {
      "commit": "81959505a21a511e8e5214a4bac9c578f418beea",
      "tree": "c0110b1b68ddf05e5c3e491b2942aa95a8f8871b",
      "parents": [
        "76cd09609601d7b4228a07920db6cad98de002ce"
      ],
      "author": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Sun Sep 01 09:34:19 2024 -0400"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:11 2026 -0500"
      },
      "message": "Add support for the weak variable attribute\n"
    },
    {
      "commit": "76cd09609601d7b4228a07920db6cad98de002ce",
      "tree": "7be28e0fca0642924a6e6349fdbeccd785ebb163",
      "parents": [
        "daa98134c5ad1dc1b83d1d5686fd83be073fe004"
      ],
      "author": {
        "name": "Guillaume Gomez",
        "email": "guillaume1.gomez@gmail.com",
        "time": "Sun Apr 21 15:43:20 2024 +0200"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:10 2026 -0500"
      },
      "message": "Add `gcc_jit_rvalue_set_type`\n"
    },
    {
      "commit": "daa98134c5ad1dc1b83d1d5686fd83be073fe004",
      "tree": "c4e62ecdf50be8bb28e6bf4bc59b3449cdd534fd",
      "parents": [
        "d509a29e59e11749648363c42764a323c133bf56"
      ],
      "author": {
        "name": "Robert Zakrzewski",
        "email": "robert.zakrzewski1@stellantis.com",
        "time": "Fri Jun 21 11:08:26 2024 +0200"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:10 2026 -0500"
      },
      "message": "Fix is_same_type_as for vector type\n"
    },
    {
      "commit": "d509a29e59e11749648363c42764a323c133bf56",
      "tree": "30291f0ef1deb4d4af0e06d6b6b62d159d1b0ab1",
      "parents": [
        "0b6429068963e57fcac7d6c28a82db5eb9b2f26f"
      ],
      "author": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Fri Apr 26 17:37:43 2024 -0400"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:10 2026 -0500"
      },
      "message": "libgccjit: Add support for Aarch64 CPU features\n"
    },
    {
      "commit": "0b6429068963e57fcac7d6c28a82db5eb9b2f26f",
      "tree": "db84f6da797caea51df84932aa936ae46a612beb",
      "parents": [
        "57cf119018862fc6d81a636a11d745fb36c78724"
      ],
      "author": {
        "name": "Robert Zakrzewski",
        "email": "robert.zakrzewski1@stellantis.com",
        "time": "Mon Apr 29 12:19:28 2024 +0200"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:10 2026 -0500"
      },
      "message": "Make is_same_type_as() supporting floating point types. Improve type comparision\n"
    },
    {
      "commit": "57cf119018862fc6d81a636a11d745fb36c78724",
      "tree": "1edc5b80e58b68f1aebedbc6db8a126c358eb1b5",
      "parents": [
        "8ac1be89b8f34c664eac5ef48e40cbcccc787589"
      ],
      "author": {
        "name": "Robert Zakrzewski",
        "email": "robert.zakrzewski1@stellantis.com",
        "time": "Thu Apr 18 19:28:40 2024 +0200"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:10 2026 -0500"
      },
      "message": "Add git_jit_type_is_floating_point() function\n"
    },
    {
      "commit": "8ac1be89b8f34c664eac5ef48e40cbcccc787589",
      "tree": "f6f09af54a82b125a9a7aa682b51e54887d3780d",
      "parents": [
        "0b5f563e8776a8340682e359b53781f71a114dad"
      ],
      "author": {
        "name": "tempdragon",
        "email": "645703113@qq.com",
        "time": "Sun Feb 18 23:38:48 2024 +0800"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:10 2026 -0500"
      },
      "message": "feat(gccjit): Allow set_loccation to various classes\n\nIncluding:\n1. field\n2. function\n3. rvalue\n"
    },
    {
      "commit": "0b5f563e8776a8340682e359b53781f71a114dad",
      "tree": "b9fd7be35df885c396970e8c9410395e53ce3144",
      "parents": [
        "59e918f18ca97946e92efea3c889e776b8664630"
      ],
      "author": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Fri Nov 03 17:49:18 2023 -0400"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:10 2026 -0500"
      },
      "message": "Fix get_size of size_t\n"
    },
    {
      "commit": "59e918f18ca97946e92efea3c889e776b8664630",
      "tree": "9fc20d93d8e65c65eb53b91e54e1f60242862e00",
      "parents": [
        "afecd1e85dec3041ab872e63359bdb6ee2d68f64"
      ],
      "author": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Sun Apr 16 13:19:20 2023 -0400"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:09 2026 -0500"
      },
      "message": "Fix bug related to the personality function\n"
    },
    {
      "commit": "afecd1e85dec3041ab872e63359bdb6ee2d68f64",
      "tree": "b813a8b4ec55bbc880f931b5510cc3fca6369158",
      "parents": [
        "ea8242cec862add18c378f0627f3d9beb203e3a1"
      ],
      "author": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Fri Oct 14 20:38:48 2022 -0400"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:09 2026 -0500"
      },
      "message": "Add support for try/catch\n"
    },
    {
      "commit": "ea8242cec862add18c378f0627f3d9beb203e3a1",
      "tree": "7d7bb2fd35819deab0b71f4d0aff098610b3e453",
      "parents": [
        "4a47c17684acabe6faa33ab7a6a4074e72f0613e"
      ],
      "author": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Mon Mar 28 21:10:41 2022 -0400"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:09 2026 -0500"
      },
      "message": "Add support for packed struct\n"
    },
    {
      "commit": "4a47c17684acabe6faa33ab7a6a4074e72f0613e",
      "tree": "98a401f68bc62493af612384e86c357512ab997b",
      "parents": [
        "a4022e839d6e20c8a37e0517e22946fcecfaf46b"
      ],
      "author": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Fri Feb 16 12:15:56 2024 -0500"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:09 2026 -0500"
      },
      "message": "Distribute version without 128-bit integers\n"
    },
    {
      "commit": "a4022e839d6e20c8a37e0517e22946fcecfaf46b",
      "tree": "9b64bbd87a04134b072bd8df318f3b02b4450813",
      "parents": [
        "69ee6ac4bca7e01702615e6fb1acb8de9d544683"
      ],
      "author": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Mon May 31 09:38:14 2021 -0400"
      },
      "committer": {
        "name": "Antoni Boucher",
        "email": "bouanto@zoho.com",
        "time": "Wed Feb 25 09:57:09 2026 -0500"
      },
      "message": "Build and upload artifact on GitHub Actions\n"
    },
    {
      "commit": "69ee6ac4bca7e01702615e6fb1acb8de9d544683",
      "tree": "cac00f49b4eee4e1d0f75e08b050cb51d9d4cccd",
      "parents": [
        "9a946fb8a8bc91fb205af9fdaa7d72f8d511b7e0"
      ],
      "author": {
        "name": "Marc Poulhiès",
        "email": "dkm@kataplop.net",
        "time": "Fri Jan 30 12:52:16 2026 +0100"
      },
      "committer": {
        "name": "Marc Poulhiès",
        "email": "dkm@kataplop.net",
        "time": "Fri Jan 30 12:52:16 2026 +0100"
      },
      "message": "a68: Minor typo fix in doc\n\ngcc/algol68/ChangeLog:\n\t* ga68-coding-guidelines.texi: Typo fix.\n\nSigned-off-by: Marc Poulhiès \u003cdkm@kataplop.net\u003e\n"
    },
    {
      "commit": "9a946fb8a8bc91fb205af9fdaa7d72f8d511b7e0",
      "tree": "d5501035bdacd6fd7405488c86be9139a592a42b",
      "parents": [
        "a28bb06b3e20a26579e06dc1b5bd6344ce4f88f0"
      ],
      "author": {
        "name": "Eric Botcazou",
        "email": "ebotcazou@adacore.com",
        "time": "Fri Jan 30 12:43:53 2026 +0100"
      },
      "committer": {
        "name": "Eric Botcazou",
        "email": "ebotcazou@adacore.com",
        "time": "Fri Jan 30 12:43:53 2026 +0100"
      },
      "message": "Add missing PR reference\n"
    },
    {
      "commit": "a28bb06b3e20a26579e06dc1b5bd6344ce4f88f0",
      "tree": "fb9ec4a3e54d4ab26284bc09e21ad8c11ca2c54d",
      "parents": [
        "b61b3e19f94f9b79afd74602016603124a943510"
      ],
      "author": {
        "name": "Eric Botcazou",
        "email": "ebotcazou@adacore.com",
        "time": "Fri Jan 30 11:58:58 2026 +0100"
      },
      "committer": {
        "name": "Eric Botcazou",
        "email": "ebotcazou@adacore.com",
        "time": "Fri Jan 30 12:01:36 2026 +0100"
      },
      "message": "Ada: Fix spurious visibility error from limited_with clause in hierarchy\n\nThe problem is that the compiler installs the limited view of a package that\nis already installed by the virtue of being an ancestor of the main unit.\n\ngcc/ada/\n\tPR ada/123867\n\t* sem_ch10.adb (Analyze_Compilation_Unit): Output info message\n\twhen -gnatdi is specified.\n\t(Install_Parents): Likewise.  Set the Is_Visible_Lib_Unit flag\n\ton the unit.\n\t(Install_Private_With_Clauses): Do not output info message here.\n\t(Remove_Parents): Output info message when -gnatdi is specified\n\tand clear the Is_Visible_Lib_Unit flag on the unit.\n\ngcc/testsuite/\n\t* gnat.dg/specs/limited_with3.ads: New test.\n\t* gnat.dg/specs/limited_with3-child.ads: New helper.\n\t* gnat.dg/specs/limited_with3-child-grandchild.ads: Likewise.\n\t* gnat.dg/specs/limited_with3-child-grandchild-grandgrandchild.ads:\n\tLikewise.\n"
    },
    {
      "commit": "b61b3e19f94f9b79afd74602016603124a943510",
      "tree": "69ba4536b0e0e8df2740b464738d86f6c48413b0",
      "parents": [
        "12c95fc1adf7f64d4cffa1274560339c90e8dbfb"
      ],
      "author": {
        "name": "Richard Biener",
        "email": "rguenther@suse.de",
        "time": "Fri Jan 30 09:55:38 2026 +0100"
      },
      "committer": {
        "name": "Richard Biener",
        "email": "rguenther@suse.de",
        "time": "Fri Jan 30 11:57:31 2026 +0100"
      },
      "message": "debug/110885 - fix split-dwarf / debug-types interaction\n\nThe following fixes a link failure due to missing skeleton\nancestors.\n\n\tPR debug/110885\n\t* dwarf2out.cc (generate_skeleton_bottom_up): Generate the\n\tskeleton ancestor tree when moving a new child to the parent\n\teven for template instantiations.\n\n\t* g++.dg/debug/dwarf2/pr110885.C: New testcase.\n"
    },
    {
      "commit": "12c95fc1adf7f64d4cffa1274560339c90e8dbfb",
      "tree": "77a6a00a06c44d65ad461a3aaaf65230253c357e",
      "parents": [
        "238d2fc116cdef31c3d643e71ade0875b5cba110"
      ],
      "author": {
        "name": "Jakub Jelinek",
        "email": "jakub@redhat.com",
        "time": "Fri Jan 30 11:43:49 2026 +0100"
      },
      "committer": {
        "name": "Jakub Jelinek",
        "email": "jakub@gcc.gnu.org",
        "time": "Fri Jan 30 11:43:49 2026 +0100"
      },
      "message": "libatomic: Don\u0027t install libatomic_asneeded.{so,a} if corresponding libatomic.{so,a} wasn\u0027t installed\n\nFilip complained on IRC that libatomic_asneeded.a is installed as\nstale symlink in --disable-static build.\n\nThe following patch makes sure to install the libatomic_asneeded.{so,a}\nscript and/or symlink only if the corresponding libatomic.{so,a} has been\ninstalled.\n\n2026-01-30  Jakub Jelinek  \u003cjakub@redhat.com\u003e\n\n\t* Makefile.am (all-local, install-asneeded): Only create\n\tlibatomic_asneeded.so script if libatomic.so exist, only\n\tcreate libatomic_asneeded.a symlink if libatomic.a exist.\n\t* Makefile.in: Regenerate.\n"
    },
    {
      "commit": "238d2fc116cdef31c3d643e71ade0875b5cba110",
      "tree": "e2b8c92fc2c68d35575af1684d567ab2708ee159",
      "parents": [
        "cffe5fd7c98babd85acf86f3e7f8d02b04416ec2"
      ],
      "author": {
        "name": "Jakub Jelinek",
        "email": "jakub@redhat.com",
        "time": "Fri Jan 30 11:42:41 2026 +0100"
      },
      "committer": {
        "name": "Jakub Jelinek",
        "email": "jakub@gcc.gnu.org",
        "time": "Fri Jan 30 11:42:41 2026 +0100"
      },
      "message": "match.pd: Fix up __imag__ .MUL_OVERFLOW simplification [PR123864]\n\nThe integer_minus_onep case is really meant for multiplication by\n-1, not by (unsigned char)0xff or (unsigned short)0xffff or 0xffffffffU etc.\nWe\u0027ve already tested that the first operand is signed (otherwise the\nearlier case is used) and also that int_fits_type_p (@1, TREE_TYPE (@0)),\nbut if @0 is signed and @1 is unsigned all ones with smaller precision\nthan that, it fits into @0\u0027s type, integer_minus_onep will be true\nand it still should be handled through the ranges, not as @0 \u003d\u003d min.\n\n2026-01-30  Jakub Jelinek  \u003cjakub@redhat.com\u003e\n\n\tPR tree-optimization/123864\n\t* match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) -\u003e\n\tx \u003e stype_max / cst || x \u003c stype_min / cst): Only check\n\tinteger_minus_onep for signed types.\n\n\t* gcc.c-torture/execute/pr123864.c: New test.\n\t* gcc.dg/torture/pr123864.c: New test.\n"
    },
    {
      "commit": "cffe5fd7c98babd85acf86f3e7f8d02b04416ec2",
      "tree": "3896a704f9d2cd2e5f1a4c986eb0acca11fa1c41",
      "parents": [
        "919b6fa6adcc102f95b17c13e8bdc26fd4ec1394"
      ],
      "author": {
        "name": "Jakub Jelinek",
        "email": "jakub@redhat.com",
        "time": "Fri Jan 30 11:40:17 2026 +0100"
      },
      "committer": {
        "name": "Jakub Jelinek",
        "email": "jakub@gcc.gnu.org",
        "time": "Fri Jan 30 11:40:17 2026 +0100"
      },
      "message": "fold-const: Fix implicit cast to nullptr_t typedef [PR123790]\n\nThe following testcase is incorrectly rejected, because since r15-6744\nit adds build_nop to preserve the exact typedef type and\ncxx_eval_constant_expression can\u0027t fold NOP_EXPR from integer_zerop of one\nNULLPTR_TYPE to another NULLPTR_TYPE, while cxx_eval_constant_expression\nrelies on fold to do such folding.\n\nI see 3 options to fix that, one is deal with this in the r15-6744 spot\nand special case NULLPTR_TYPE there and build_zero_cst instead of build_nop\n(with similar condition like in the patch below), another possibility is\nspecial case this in cxx_eval_constant_expression, and\nanother one (done in this patch) is to handle this in fold-const.cc -\nfold_convert_loc and also in fold_convert_const.\n\n2026-01-30  Jakub Jelinek  \u003cjakub@redhat.com\u003e\n\n\tPR c++/123790\n\t* fold-const.cc (fold_convert_const): Handle conversion of\n\tinteger_zerop to NULLPTR_TYPE.\n\t(fold_convert_loc): Likewise.\n\n\t* g++.dg/cpp0x/nullptr47.C: New test.\n"
    },
    {
      "commit": "919b6fa6adcc102f95b17c13e8bdc26fd4ec1394",
      "tree": "208dd4d37e2bbbec2d01b84cefa4d7bc642e1454",
      "parents": [
        "340c45dc16a0a75a477192a2baaf28235be7f520"
      ],
      "author": {
        "name": "Iain Buclaw",
        "email": "ibuclaw@gdcproject.org",
        "time": "Fri Jan 30 10:25:49 2026 +0100"
      },
      "committer": {
        "name": "Iain Buclaw",
        "email": "ibuclaw@gdcproject.org",
        "time": "Fri Jan 30 11:24:27 2026 +0100"
      },
      "message": "d: Merge upstream dmd, druntime 1017635a96, phobos 5a142da0a\n\nD front-end changes:\n\n\t- Import dmd v2.112.0-beta.1.\n\nD runtime changes:\n\n\t- Import druntime v2.112.0-beta.1.\n\t- Added 64-bit `mul\u0027 and `udivmod\u0027 overloads to `core.int128\u0027.\n\nPhobos changes:\n\n\t- Added `lazyCache\u0027 to `std.algorithm.iteration\u0027.\n\t- Added `writeText\u0027, `writeWText\u0027, and `writeDText\u0027 to\n\t  `std.conv\u0027.\n\ngcc/d/ChangeLog:\n\n\t* dmd/MERGE: Merge upstream dmd 1017635a96.\n\t* dmd/VERSION: Bump version to v2.112.0-beta.1.\n\t* decl.cc (DeclVisitor::finish_vtable): Update for new front-end\n\tinterface.\n\t(DeclVisitor::visit): Likewise.\n\t* typeinfo.cc (TypeInfoVisitor::visit): Likewise.\n\nlibphobos/ChangeLog:\n\n\t* libdruntime/MERGE: Merge upstream druntime 1017635a96.\n\t* libdruntime/Makefile.am (DRUNTIME_DSOURCES_LINUX): Add\n\tcore/sys/linux/sys/syscall.d, core/sys/linux/syscall.d.\n\t* libdruntime/Makefile.in: Regenerate.\n\t* src/MERGE: Merge upstream phobos 5a142da0a.\n\t* src/Makefile.am (PHOBOS_DSOURCES): Remove\n\tstd/internal/windows/bcrypt.d.\n\t* src/Makefile.in: Regenerate.\n\ngcc/testsuite/ChangeLog:\n\n\t* gdc.dg/asm1.d: Adjust test.\n"
    },
    {
      "commit": "340c45dc16a0a75a477192a2baaf28235be7f520",
      "tree": "6af43d9c50dcb50998e9dee7200be4f86632572b",
      "parents": [
        "5380be91759731d8fc4a8d5728b672aacbdb2173"
      ],
      "author": {
        "name": "Jørgen Kvalsvik",
        "email": "j@lambda.is",
        "time": "Wed Jan 28 20:33:21 2026 +0100"
      },
      "committer": {
        "name": "Jørgen Kvalsvik",
        "email": "j@lambda.is",
        "time": "Fri Jan 30 11:20:58 2026 +0100"
      },
      "message": "Permit const counters in flush_on_edges [PR123855]\n\nRelax the (accidental) requirement and permit that function-local\ncounters don\u0027t have SSA names.  We really only look up the def\nstatement to check if it is a phi node, in which case we need to\nresolve the counter from there.  This obviously doesn\u0027t apply when it\nis a constant.\n\n\tPR gcov-profile/123855\n\ngcc/ChangeLog:\n\n\t* path-coverage.cc (flush_on_edges): Only look up SSA name def\n\tstmt when counter is non-const.\n\ngcc/testsuite/ChangeLog:\n\n\t* gcc.misc-tests/gcov-pr123855.c: New test.\n"
    },
    {
      "commit": "5380be91759731d8fc4a8d5728b672aacbdb2173",
      "tree": "ccf4a7eb4bffb05d9ad37bccd47ba231fc88e4bd",
      "parents": [
        "94fa0d52a233227f1f8da4c0b7ff4d079b9458e4"
      ],
      "author": {
        "name": "Jørgen Kvalsvik",
        "email": "j@lambda.is",
        "time": "Tue Nov 04 00:05:04 2025 +0100"
      },
      "committer": {
        "name": "Jørgen Kvalsvik",
        "email": "j@lambda.is",
        "time": "Fri Jan 30 11:20:58 2026 +0100"
      },
      "message": "gcov-dump: Print PATHS tag\n\nPrint the record associated with the PATHS tag.  While it just prints\nthe number of prime paths for the function, this is more useful than\nthe UNKNOWN it would otherwise print.\n\nBefore:\n...\ndemo.gcno:    01450000:  31:LINES\ndemo.gcno:                  block 6:`demo.c\u0027:13\ndemo.gcno:    01490000:   4:UNKNOWN\n\nAfter:\n...\ndemo.gcno:    01450000:  31:LINES\ndemo.gcno:                  block 6:`demo.c\u0027:13\ndemo.gcno:    01490000:   4:PATHS 5 paths\n\ngcc/ChangeLog:\n\n\t* gcov-dump.cc (tag_paths): New function.\n"
    },
    {
      "commit": "94fa0d52a233227f1f8da4c0b7ff4d079b9458e4",
      "tree": "d9ae6e671f035765196ced427211a003ecd8a086",
      "parents": [
        "1681b203a0c9f37af82e0e0fcea7bfcc1dbfa00c"
      ],
      "author": {
        "name": "Jørgen Kvalsvik",
        "email": "j@lambda.is",
        "time": "Mon Nov 03 23:48:25 2025 +0100"
      },
      "committer": {
        "name": "Jørgen Kvalsvik",
        "email": "j@lambda.is",
        "time": "Fri Jan 30 11:20:57 2026 +0100"
      },
      "message": "gcc: -f*-coverage implies -ftest-coverage\n\nThe --coverage flag is a useful alias for -fprofile-arcs\n-ftest-coverage where the latter makes gcc output the .gcno file.\nWhile it makes sense to use -fprofile-arcs without a .gcno file (pgo,\nmaybe more), it never really makes sense to request -fpath-coverage or\n-fcondition-coverage without also wanting the .gcno to interpret the\nresults.\n\ngcc/ChangeLog:\n\n\t* common.opt: ftest-coverage enabled by fpath-coverage or\n\tfcondition-coverage\n\ngcc/testsuite/ChangeLog:\n\n\t* g++.dg/gcov/gcov-18.C: Remove --coverage.\n\t* g++.dg/gcov/gcov-22.C: Likewise.\n\t* gcc.misc-tests/gcov-19.c: Remove -ftest-coverage.\n\t* gcc.misc-tests/gcov-29.c: Likewise.\n"
    },
    {
      "commit": "1681b203a0c9f37af82e0e0fcea7bfcc1dbfa00c",
      "tree": "e1e4a65a3a5cf78c35886ce23b0ddc3bfbe04416",
      "parents": [
        "ba68de670885964056549b17eeace61acaaea0ab"
      ],
      "author": {
        "name": "Jørgen Kvalsvik",
        "email": "j@lambda.is",
        "time": "Tue Oct 14 10:52:54 2025 +0200"
      },
      "committer": {
        "name": "Jørgen Kvalsvik",
        "email": "j@lambda.is",
        "time": "Fri Jan 30 11:20:57 2026 +0100"
      },
      "message": "gcov-dump: Print start-position for conditions\n\nThe printed position should be the start of the record, as is the case\nwith lines.\n\nBefore:\nex.gcno:  795:    01470000:  16:CONDITIONS 2 conditions\nex.gcno:  811:                  block 2: 1\nex.gcno:  819:                  block 5: 1\nex.gcno:  819:    01000000:  50:FUNCTION ... `main\u0027 ...\n\nAfter:\nex.gcno:  795:    01470000:  16:CONDITIONS 2 conditions\nex.gcno:  803:                  block 2: 1\nex.gcno:  811:                  block 5: 1\nex.gcno:  819:    01000000:  50:FUNCTION ... `main\u0027 ...\n\ngcc/ChangeLog:\n\n\t* gcov-dump.cc (tag_conditions):  Read position before blocks,\n\tterms.\n"
    },
    {
      "commit": "ba68de670885964056549b17eeace61acaaea0ab",
      "tree": "8a16f2279ee9be2b356866adc8712115ec3bd5b0",
      "parents": [
        "2df6b3b9e870618295ffbe7111520b7901c45df9"
      ],
      "author": {
        "name": "Jørgen Kvalsvik",
        "email": "j@lambda.is",
        "time": "Wed Nov 05 20:48:29 2025 +0100"
      },
      "committer": {
        "name": "Jørgen Kvalsvik",
        "email": "j@lambda.is",
        "time": "Fri Jan 30 11:20:57 2026 +0100"
      },
      "message": "Update expected number of prime paths in test case\n\nThis test has been failing since this commit which introduces an extra\nblock in the loop, increasing the number of prime paths:\n\nFAIL: gcc.misc-tests/gcov-29.c line 826: expected 0/5 covered paths, was 0/6\n\ncommit 385d9937f0e23cbf9c62f0b2553a33ff70e56ecf\nAuthor: Jan Hubicka \u003chubicka@ucw.cz\u003e\nDate:   Fri Jul 11 13:01:13 2025 +0200\n    Rewrite assign_discriminators\n\nI have looked at the CFGs of this function before and after Jan\u0027s\npatch and both cases are fine, this test breaking is not a real\nregression.\n\ngcc/testsuite/ChangeLog:\n\n\t* gcc.misc-tests/gcov-29.c: Expect 6 prime paths in test.\n\t* gcc.misc-tests/gcov-30.c: Likewise.\n"
    },
    {
      "commit": "2df6b3b9e870618295ffbe7111520b7901c45df9",
      "tree": "bbc814e4c6f2ec8c0874eab82b018b617ef49aaf",
      "parents": [
        "de23c4ad41319525077da03ecbabf41efbf9a3b3"
      ],
      "author": {
        "name": "Jørgen Kvalsvik",
        "email": "j@lambda.is",
        "time": "Wed Nov 05 20:15:50 2025 +0100"
      },
      "committer": {
        "name": "Jørgen Kvalsvik",
        "email": "j@lambda.is",
        "time": "Fri Jan 30 11:20:57 2026 +0100"
      },
      "message": "gcov: Only consider pure locations in line mapping\n\nFixes a regression introduced I bisected to this commit:\n\ncommit 385d9937f0e23cbf9c62f0b2553a33ff70e56ecf\nAuthor: Jan Hubicka \u003chubicka@ucw.cz\u003e\nDate:   Fri Jul 11 13:01:13 2025 +0200\n    Rewrite assign_discriminators\n\nThat patch adds discriminators to edge-\u003egoto_locus which will map to\nthe right source location, but breaks the equality comparison used in\nthe hash set.\n\nFixes these tests:\n\ngcc/testsuite/gcc.misc-tests/gcov-pr83813.c\ngcc/testsuite/gcc.misc-tests/gcov-pr84758.c\ngcc/testsuite/gcc.misc-tests/gcov-pr85332.c\ngcc/testsuite/gcc.misc-tests/gcov-pr85372.c\n\n\tPR gcov-profile/121084\n\tPR gcov-profile/121123\n\tPR gcov-profile/121409\n\ngcc/ChangeLog:\n\n\t* profile.cc (branch_prob): Record seen_locations without\n\tdiscriminators.\n"
    },
    {
      "commit": "de23c4ad41319525077da03ecbabf41efbf9a3b3",
      "tree": "8e52e973c342cca442d14169026fc752bf1b293a",
      "parents": [
        "1297b7204aca7fbad741ae02086fa5e134083a5f"
      ],
      "author": {
        "name": "Jakub Jelinek",
        "email": "jakub@redhat.com",
        "time": "Fri Jan 30 11:00:41 2026 +0100"
      },
      "committer": {
        "name": "Jakub Jelinek",
        "email": "jakub@gcc.gnu.org",
        "time": "Fri Jan 30 11:00:41 2026 +0100"
      },
      "message": "openmp: Handle asm goto in diagnose_sb_2 [PR123876]\n\nWe weren\u0027t handling asm goto in diagnose_sb_2, so could ICE\non invalid code instead of diagnosing it as invalid.\n\nNote, for C++ the FE already diagnoses that instead of deferring\nit will omp-low.cc.\n\n2026-01-30  Jakub Jelinek  \u003cjakub@redhat.com\u003e\n\n\tPR middle-end/123876\n\t* omp-low.cc (diagnose_sb_2): Handle GIMPLE_ASM.\n\n\t* gcc.dg/gomp/pr123876.c: New test.\n"
    },
    {
      "commit": "1297b7204aca7fbad741ae02086fa5e134083a5f",
      "tree": "b4ff2d59607fc40d69f1e4ec7eff092f588b36c5",
      "parents": [
        "0779f1312569b8da837fb744d62c35a3435e5aa3"
      ],
      "author": {
        "name": "Jakub Jelinek",
        "email": "jakub@redhat.com",
        "time": "Fri Jan 30 10:56:10 2026 +0100"
      },
      "committer": {
        "name": "Jakub Jelinek",
        "email": "jakub@gcc.gnu.org",
        "time": "Fri Jan 30 10:56:10 2026 +0100"
      },
      "message": "libcpp: Fix up comment handling in -fdirectives-only preprocessing [PR123273]\n\nBack in 2020 Nathan rewrote the -E -fdirectives-only preprocessing.\nIn PR103130 a year and half later I\u0027ve fixed the handling of comments\nso that /* \\*/ is considered as full comment even when * is escaped,\nto match the normal preprocessing.\nThe following testcases shows further bugs in the comment handling.\nOne is that /* *\\/ should not be considered as full comment (i.e.\nwhen the / after * is escaped).  And another one is that the code\nwas treating any number of backslashes as escape, which is wrong,\nonly a single backslash is an escape, two backslashes preprocess as\none backslash, three as one backslash and one escape, etc.\nSo, while /* *\\\n/ is a full comment, /* *\\\\\n/ or /* *\\\\\\\\\\\\\\\\\\\\\\\\\\\n/ is not.\n\n2026-01-30  Jakub Jelinek  \u003cjakub@redhat.com\u003e\n\n\tPR preprocessor/123273\n\t* lex.cc (cpp_directive_only_process): Only go to done_comment\n\tfor \u0027/\u0027 if star is true and esc is false.  When seeing \u0027\\\\\u0027 with\n\tesc set to true, clear esc as well as star instead of keeping esc\n\tset.\n\n\t* c-c++-common/cpp/dir-only-10.c: New test.\n\t* c-c++-common/cpp/dir-only-11.c: New test.\n"
    },
    {
      "commit": "0779f1312569b8da837fb744d62c35a3435e5aa3",
      "tree": "c59d8a1a14f97685db915c141e6d9a0aad157d12",
      "parents": [
        "6f3d4f125874a018ff704311a7c65bf7b0324ca3"
      ],
      "author": {
        "name": "Alex Coplan",
        "email": "alex.coplan@arm.com",
        "time": "Fri Dec 19 13:51:04 2025 +0000"
      },
      "committer": {
        "name": "Alex Coplan",
        "email": "alex.coplan@arm.com",
        "time": "Fri Jan 30 08:37:22 2026 +0000"
      },
      "message": "aarch64: Fix gating of fp8 intrinsics [PR123206]\n\nAs it stands, there are several intrinsics in\naarch64-simd-pragma-builtins.def which have the following form:\n\n  #define REQUIRED_EXTENSIONS nonstreaming_only (TARGET_SIMD)\n  [...]\n  #undef REQUIRED_EXTENSIONS\n\nthe problem being that nonstreaming_only expects an instance of\naarch64_feature_flags which (statically) describes the required\nextensions for the intrinsics.  Instead, we were passing TARGET_SIMD,\nwhich computes a boolean telling us dynamically whether the simd feature\nis currently available.\n\nThis patch fixes the issue by simply doing\ns/TARGET_SIMD/AARCH64_FL_SIMD/ in that file.  We also add a simple test\nwhich checks that we now diagnose the missing extension instead of\nICEing when compiling with +nosimd.\n\nAs an additional conservative hardening step (to prevent a similar issue\nfrom re-occurring), this patch adjusts the aarch64_pragma_builtins table\nto make it constexpr.  This makes the bug a compile-time error.\n\nThe next patch in the series adjusts the ctor of bbitmap to make it\nexplicit (and deals with the fallout), this patch however is\ndeliberately a minimal fix which is suitable for backporting.\n\ngcc/ChangeLog:\n\n\tPR target/123206\n\t* config/aarch64/aarch64-builtins.cc (struct aarch64_pragma_builtins_data):\n\tDeclare array as CONSTEXPR.\n\t* config/aarch64/aarch64-simd-pragma-builtins.def: Update\n\tincorrect uses of TARGET_SIMD to use AARCH64_FL_SIMD instead.\n\ngcc/testsuite/ChangeLog:\n\n\tPR target/123206\n\t* gcc.target/aarch64/pr123206.c: New test.\n"
    },
    {
      "commit": "6f3d4f125874a018ff704311a7c65bf7b0324ca3",
      "tree": "aa95f1f3b9bf8bdb50cf32fbb963f6c152a5d645",
      "parents": [
        "9f0f81c5150284374adbb0c738cff4840c9921db"
      ],
      "author": {
        "name": "Iain Buclaw",
        "email": "ibuclaw@gdcproject.org",
        "time": "Fri Jan 30 09:06:39 2026 +0100"
      },
      "committer": {
        "name": "Iain Buclaw",
        "email": "ibuclaw@gdcproject.org",
        "time": "Fri Jan 30 09:06:39 2026 +0100"
      },
      "message": "d: Refactor for changes to dmd front-end inteface\n\nThere are a number of interface changes being made to the dmd front-end\ninterface. This makes any necessary refactorings ahead of the merge to\nreduce the size of the diff.\n\ngcc/d/ChangeLog:\n\n\t* decl.cc (DeclVisitor::visit (EnumDeclaration *)): Treat sinit member\n\tfield as a generic pointer.\n\t(enum_initializer_decl): Likewise.\n\t* expr.cc (ExprVisitor::visit (ArrayLiteralExp *)): Compute static\n\tarray length separately from creating type.\n\t* modules.cc (struct module_info): Add ctor_decl, dtor_decl,\n\tsharedctor_decl, shareddtor_decl, standalonector_decl, and\n\tunittest_decl.\n\t(layout_moduleinfo_fields): Add mi argument. Use it to check whether\n\tmodule helpers have been generated.\n\t(layout_moduleinfo): Likewise.\n\t(build_module_tree): Cache generated module helpers in module_info.\n\t* typeinfo.cc (cpp_type_info_ptrs): New variable.\n\t(get_cpp_typeinfo_decl): Cache generated C++ type_info references in\n\tcpp_type_info_ptrs.\n\t* types.cc (TypeVisitor::visit (TypeEnum *)): Separate getting\n\tfront-end member value from building its CST tree.\n"
    },
    {
      "commit": "9f0f81c5150284374adbb0c738cff4840c9921db",
      "tree": "eb5b51517ba653d56a424dfd9ef78af9a05cbdab",
      "parents": [
        "4fe48225fa4e263b8d77d7a1465e1214d9cc742c"
      ],
      "author": {
        "name": "Iain Buclaw",
        "email": "ibuclaw@gdcproject.org",
        "time": "Fri Jan 30 08:14:34 2026 +0100"
      },
      "committer": {
        "name": "Iain Buclaw",
        "email": "ibuclaw@gdcproject.org",
        "time": "Fri Jan 30 08:31:12 2026 +0100"
      },
      "message": "d: Fix ICE in dwarf2out_abstract_function, at dwarf2out.cc:23771 [PR123263]\n\nEmit artificial functions as being part of the module context, so that\nthey are unaffected by dwarf early_finish pass removing the parent type\nthat they were generated for.\n\n\tPR d/123263\n\ngcc/d/ChangeLog:\n\n\t* d-codegen.cc (d_decl_context): Set DECL_CONTEXT of compiler\n\tgenerated functions to that of parent module.\n\ngcc/testsuite/ChangeLog:\n\n\t* gdc.dg/debug/pr123263.d: New test.\n"
    },
    {
      "commit": "4fe48225fa4e263b8d77d7a1465e1214d9cc742c",
      "tree": "46fb46ef45cb43005aff140fe7eff826ad458e60",
      "parents": [
        "44a5be2f2d7abc040ad739ece58893933e6e525f"
      ],
      "author": {
        "name": "Richard Biener",
        "email": "rguenther@suse.de",
        "time": "Thu Jan 29 15:43:01 2026 +0100"
      },
      "committer": {
        "name": "Richard Biener",
        "email": "rguenther@suse.de",
        "time": "Fri Jan 30 07:59:04 2026 +0100"
      },
      "message": "tree-optimization/109410 - ICE with noreturn and -g\n\nThis fixes the -g variant of the original testcase.\n\n\tPR tree-optimization/109410\n\t* tree-ssa-reassoc.cc (build_and_add_sum): Use\n\tgsi_start_nondebug_after_labels_bb to look for a possible\n\treturns-twice call.\n\n\t* gcc.dg/pr109410-2.c: New testcase.\n"
    },
    {
      "commit": "44a5be2f2d7abc040ad739ece58893933e6e525f",
      "tree": "e50425cb51b6ed730e8190114dd5e8c68b8f6378",
      "parents": [
        "94d887ec2bab35e6eb17f68848a917689526c4e0"
      ],
      "author": {
        "name": "Iain Buclaw",
        "email": "ibuclaw@gdcproject.org",
        "time": "Fri Jan 30 07:34:04 2026 +0100"
      },
      "committer": {
        "name": "Iain Buclaw",
        "email": "ibuclaw@gdcproject.org",
        "time": "Fri Jan 30 07:35:52 2026 +0100"
      },
      "message": "d, darwin: Add Apple as a predefined version\n\nThis is a new predefined version identifier intended to be turned on if\nany of the OSX, iOS, TVOS, WatchOS, or VisionOS versions are predefined.\n\ngcc/ChangeLog:\n\n\t* config/darwin-d.cc (darwin_d_os_builtins): Add Apple.\n"
    },
    {
      "commit": "94d887ec2bab35e6eb17f68848a917689526c4e0",
      "tree": "f9474e23cadaa8f942422cd8412f16ffe02a26e3",
      "parents": [
        "40f6ae016571ce6ea5951f406c4be7ff84914fbc"
      ],
      "author": {
        "name": "Iain Buclaw",
        "email": "ibuclaw@gdcproject.org",
        "time": "Thu Jan 29 18:07:57 2026 +0100"
      },
      "committer": {
        "name": "Iain Buclaw",
        "email": "ibuclaw@gdcproject.org",
        "time": "Fri Jan 30 07:30:39 2026 +0100"
      },
      "message": "d: Fix infinite loop in dump_generic_node [PR123264]\n\n\tPR d/123264\n\ngcc/d/ChangeLog:\n\n\t* types.cc (finish_aggregate_type): Propagate struct TYPE_NAME to all\n\tTYPE_NEXT_VARIANT types.\n\ngcc/testsuite/ChangeLog:\n\n\t* gdc.dg/pr123264.d: New test.\n"
    },
    {
      "commit": "40f6ae016571ce6ea5951f406c4be7ff84914fbc",
      "tree": "0fd6f496ba3ff70bcd2980741b145e1018ae6585",
      "parents": [
        "a57199cec3df3ad62d6ea4e467c076fc06876c36"
      ],
      "author": {
        "name": "Andrew Pinski",
        "email": "andrew.pinski@oss.qualcomm.com",
        "time": "Wed Jan 28 12:32:12 2026 -0800"
      },
      "committer": {
        "name": "Andrew Pinski",
        "email": "andrew.pinski@oss.qualcomm.com",
        "time": "Thu Jan 29 19:52:03 2026 -0800"
      },
      "message": "ifcvt: Improve noce_can_force_operand in ifcvt [PR122170]\n\nCurrently if the rtl is either an arithmetic or an unary\nrtl, noce_can_force_operand checks to see if there is an\noptab for that rtl code. This works for more things except\non some targets they have a ss_minus instruction but don\u0027t\nimplement the optab for it. In the case of arm you can\ngenerate a ss_minus with a builtin and then when it comes\nto trying to do ifcvt, force_operand fails over.\nIn this case the optab, sssub was only supported for\nfixed-point modes before and it was working as code_to_optab\nwould return there was not optabs. But after r15-1030-gabe6d39365476e,\nthe optab will be return. What the backend is doing is correct and will\nmost likely happen with other rtl codes/optabs later on.\n\nTo fix this instead of just returning true if the optab exists, we need\nto check if the optab entry for the mode exists.\n\n\tPR rtl-optimization/122170\n\ngcc/ChangeLog:\n\n\t* ifcvt.cc (noce_can_force_operand): Don\u0027t only check if\n\tthere is an optab for the code check the entry for the\n\tmode is non-null. Handle non integral div by checking\n\toptab like force_operand does.\n\nSigned-off-by: Andrew Pinski \u003candrew.pinski@oss.qualcomm.com\u003e\n"
    },
    {
      "commit": "a57199cec3df3ad62d6ea4e467c076fc06876c36",
      "tree": "1ddf369817d89c39f0c120ef9d81cab706f9ecd1",
      "parents": [
        "fde8a3008586b2b469b42813613e582d4724afa0"
      ],
      "author": {
        "name": "Lulu Cheng",
        "email": "chenglulu@loongson.cn",
        "time": "Tue Jan 27 10:31:37 2026 +0800"
      },
      "committer": {
        "name": "Lulu Cheng",
        "email": "chenglulu@loongson.cn",
        "time": "Fri Jan 30 11:09:16 2026 +0800"
      },
      "message": "LoongArch: Remove unused function type.\n\ngcc/ChangeLog:\n\n\t* config/loongarch/loongarch-ftypes.def: Remove unused type.\n"
    },
    {
      "commit": "fde8a3008586b2b469b42813613e582d4724afa0",
      "tree": "aae85797f8723611824821dee90d850cb5997689",
      "parents": [
        "4df77a254263e96af1ab4d1288a35cff10c515a4"
      ],
      "author": {
        "name": "Lulu Cheng",
        "email": "chenglulu@loongson.cn",
        "time": "Tue Jan 27 10:31:36 2026 +0800"
      },
      "committer": {
        "name": "Lulu Cheng",
        "email": "chenglulu@loongson.cn",
        "time": "Fri Jan 30 11:09:11 2026 +0800"
      },
      "message": "LoongArch: Fix bug123766.\n\nThe pointer parameter type for the original store class builtin\nfunctions is CVPOINTER (const volatile void *).\nTaking the following test as an example:\n\n\t```\n\tv4i64 v \u003d {0, 0, 0, 0};\n\tvoid try_store() {\n  \t  long r[4];\n  \t  __lasx_xvst(v, r, 0);\n\t}\n\t```\nAt this point, the type of r is CVPOINTER, which means data in memory\ncan only be read through r.  Therefore, if the array r is not\ninitialized, an uninitialized warning will be issued.\nThis patch changes the pointer type of store-class builtin functions\nfrom CVPOINTER to VPOINTER (volatile void *).\n\n\tPR target/123766\n\ngcc/ChangeLog:\n\n\t* config/loongarch/loongarch-builtins.cc\n\t(loongarch_build_vpointer_type): New function.  Return a type\n\tfor \u0027volatile void *\u0027.\n\t(LARCH_ATYPE_VPOINTER): New macro.\n\t* config/loongarch/loongarch-ftypes.def: Change the pointer\n\ttype of the store class function from CVPOINTER to VPOINTER.\n\ngcc/testsuite/ChangeLog:\n\n\t* gcc.target/loongarch/vector/lasx/pr123766.c: New test.\n\t* gcc.target/loongarch/vector/lsx/pr123766.c: New test.\n"
    },
    {
      "commit": "4df77a254263e96af1ab4d1288a35cff10c515a4",
      "tree": "7ee93275e9de64022e4262cc5f96ddb872eb1a5b",
      "parents": [
        "599659fb1006eb628b3d271cc77a3cc69ec436c1"
      ],
      "author": {
        "name": "Lulu Cheng",
        "email": "chenglulu@loongson.cn",
        "time": "Mon Jan 26 11:38:59 2026 +0800"
      },
      "committer": {
        "name": "Lulu Cheng",
        "email": "chenglulu@loongson.cn",
        "time": "Fri Jan 30 09:23:45 2026 +0800"
      },
      "message": "LoongArch: Fix bug123807.\n\nIn the function loongarch_expand_vector_init_same, if same is MEM and\nthe mode of same does not match imode, it will cause an ICE\nin force_reg (imode, same).\n\n\tPR target/123807\n\ngcc/ChangeLog:\n\n\t* config/loongarch/loongarch.cc\n\t(loongarch_expand_vector_init_same): When same is MEM and\n\tGET_MODE(same) !\u003d imode, first load the data from memory\n\tand then process it further.\n\ngcc/testsuite/ChangeLog:\n\n\t* gcc.target/loongarch/vector/lsx/pr123807.c: New test.\n"
    },
    {
      "commit": "599659fb1006eb628b3d271cc77a3cc69ec436c1",
      "tree": "a1fa9921ceab5a485730fc1482770308fc4c59ac",
      "parents": [
        "aeba874068a057c684ef30352e2b209813c88857"
      ],
      "author": {
        "name": "mengqinggang",
        "email": "mengqinggang@loongson.cn",
        "time": "Fri Jan 23 15:00:58 2026 +0800"
      },
      "committer": {
        "name": "Lulu Cheng",
        "email": "chenglulu@loongson.cn",
        "time": "Fri Jan 30 09:21:21 2026 +0800"
      },
      "message": "LoongArch: Fix movsf in lp64s abi\n\nWhen adding LoongArch32 ilp32s abi support, add TARGET_HARD_FLOAT condition for\nmovsf to prevent matching in target without FPU.\nBut movsf also needs to be used in lp64s abi, it can expand to some\nnon float instructions.\nDelete TARGET_HARD_FLOAT condition.\n\ngcc/ChangeLog:\n\n\t* config/loongarch/loongarch.md: Delete movsf TARGET_HARD_FLOAT\n\tcondition.\n\ngcc/testsuite/ChangeLog:\n\n\t* gcc.target/loongarch/la64/movsf.c: New test.\n"
    },
    {
      "commit": "aeba874068a057c684ef30352e2b209813c88857",
      "tree": "45a4154cc906f39a80d66613cd18ca370fd798a0",
      "parents": [
        "41f293e72c253301f71fefc5a5e1040cb468e4ed"
      ],
      "author": {
        "name": "GCC Administrator",
        "email": "gccadmin@gcc.gnu.org",
        "time": "Fri Jan 30 00:16:31 2026 +0000"
      },
      "committer": {
        "name": "GCC Administrator",
        "email": "gccadmin@gcc.gnu.org",
        "time": "Fri Jan 30 00:16:31 2026 +0000"
      },
      "message": "Daily bump."
    },
    {
      "commit": "41f293e72c253301f71fefc5a5e1040cb468e4ed",
      "tree": "8f84bd0d95f221e7fb3e3bb7427628727dabc0c6",
      "parents": [
        "57f571f7283c72e958f59090f3699bf0111b6bfd"
      ],
      "author": {
        "name": "Andrew Pinski",
        "email": "andrew.pinski@oss.qualcomm.com",
        "time": "Wed Jan 28 16:50:52 2026 -0800"
      },
      "committer": {
        "name": "Andrew Pinski",
        "email": "andrew.pinski@oss.qualcomm.com",
        "time": "Thu Jan 29 13:50:47 2026 -0800"
      },
      "message": "optabs: Fix expansion of abs and neg for Float16 [PR123869]\n\nThe problem here is we try to use the widening type before\ndoing the bitwise expansion of neg/and for floating point types.\nThis moves the code around to try the bitwise expansion first.\n\nNote this mostly matters for NaNs where you widening (promotion)\nwould cause a NaN to be slightly different when doing the rounding\nback.\n\nBootstrapped and tested on x86_64-linux-gnu.\n\n\tPR middle-end/123869\n\ngcc/ChangeLog:\n\n\t* optabs.cc (expand_unop): Move the NEG optab\n\thandling before the widening code.\n\tMove the ABS bitwise expansion from expand_abs_nojump\n\tto before the widening code.\n\t(expand_abs_nojump): Remove the bitwise expansion trial\n\tsince expand_unop is called right above.\n\nSigned-off-by: Andrew Pinski \u003candrew.pinski@oss.qualcomm.com\u003e\n"
    },
    {
      "commit": "57f571f7283c72e958f59090f3699bf0111b6bfd",
      "tree": "61e5115cdf70b14e807b61fafeb4f996794b27aa",
      "parents": [
        "c906b8f0199d16c93db1df99e789e2fc6bf31680"
      ],
      "author": {
        "name": "Jonathan Wakely",
        "email": "jwakely@redhat.com",
        "time": "Wed Jan 28 12:33:46 2026 +0000"
      },
      "committer": {
        "name": "Jonathan Wakely",
        "email": "redi@gcc.gnu.org",
        "time": "Thu Jan 29 20:17:40 2026 +0000"
      },
      "message": "libstdc++: Make std::expected trivially copy/move assignable (LWG 4026)\n\nThis is the subject of two NB comments on C++26 which seem likely to be\napproved. We\u0027re allowed to make this change as QoI anyway, even if it\nisn\u0027t approved for the standard, and it should apply to C++23 as well to\navoid ABI changes between C++23 and C++26.\n\nAs shown in the updates to the test, defaulted special members can have\nnoexcept(false) even if they would be noexcept(true) by default. The new\ndefaulted operator\u003d overloads added by this commit have conditional\nnoexcept-specifiers that match the conditions of the non-trivial\nassignments, propagating any noexcept(false) on trivial special members\nof the T and E types. We could strengthen the noexcept for the trivial\noperators, but propagating the conditions from the underlying types is\nprobably what users expect, if they\u0027ve bothered to put noexcept(false)\non their defaulted special members.\n\nlibstdc++-v3/ChangeLog:\n\n\t* include/std/expected (__expected::__trivially_replaceable)\n\t(__expected::__usable_for_assign)\n\t(__expected::__usable_for_trivial_assign)\n\t(__expected::__can_reassign_type): New concepts.\n\t(expected::operator\u003d): Adjust constraints\n\ton existing overloads and add defaulted overload.\n\t(expected\u003ccv void, E\u003e::operator\u003d): Likewise.\n\t* testsuite/20_util/expected/requirements.cc: Check for trivial\n\tand nothrow properties of assignments.\n"
    },
    {
      "commit": "c906b8f0199d16c93db1df99e789e2fc6bf31680",
      "tree": "1b84e377e2cded95009e06e1a2ad1e09954d24b3",
      "parents": [
        "9f9b5d6946f60777694338f00652475240bf2f3e"
      ],
      "author": {
        "name": "Andrew Pinski",
        "email": "andrew.pinski@oss.qualcomm.com",
        "time": "Wed Jan 28 12:16:43 2026 -0800"
      },
      "committer": {
        "name": "Andrew Pinski",
        "email": "andrew.pinski@oss.qualcomm.com",
        "time": "Thu Jan 29 12:01:17 2026 -0800"
      },
      "message": "testsuite: Move pr116353.c from being x86 specific to being generic\n\nWhile working on ifcvt\u0027s noce_can_force_operand, I noticed that\nthe testcase pr116353.c was added as x86 specific testcase but\nit has nothing in it that is x86 specific. It is currently\ncompiled at -O2 but there is no reason why it can\u0027t be compiled\nat any other optimization level.\nSo this moves the testcase to be a torture testcase.\n\nThe original issue showed up on x86 with respect to ifcvt\nwhere there was a vec_select which does not have an optab for it\nbut it might show up on other targets too.\n\nTested on x86_64-linux-gnu.\n\ngcc/testsuite/ChangeLog:\n\n\t* gcc.target/i386/pr116353.c: Move to...\n\t* gcc.dg/torture/pr116353.c: ...here.\n\nSigned-off-by: Andrew Pinski \u003candrew.pinski@oss.qualcomm.com\u003e\n"
    },
    {
      "commit": "9f9b5d6946f60777694338f00652475240bf2f3e",
      "tree": "fcb68d6e5d344195d1aa6da190ac49297abac400",
      "parents": [
        "59145b089d2c86eaf1d062a76ab4afd8b7c4c7f0"
      ],
      "author": {
        "name": "Roger Sayle",
        "email": "roger@nextmovesoftware.com",
        "time": "Thu Jan 29 18:48:14 2026 +0000"
      },
      "committer": {
        "name": "Roger Sayle",
        "email": "roger@nextmovesoftware.com",
        "time": "Thu Jan 29 18:48:14 2026 +0000"
      },
      "message": "Allow CONCATs in emit_group_load_1.\n\nThis one line patch is a pre-requisite to a solution to PR target/123506;\nan effort to improve middle-end code for returning structures.  Currently,\nemit_group_load_1 contains code to handle a CONCAT returned by force_reg.\nThis tweak avoids the call for force_reg if the source is already a CONCAT,\nwhich allows this subroutine to be re-used by target-specific implementations\nof emit_group_load.  Many thanks to Jeff Law for cross-platform testing.\n\n2026-01-29  Roger Sayle  \u003croger@nextmovesoftware.com\u003e\n\ngcc/ChangeLog\n\t* expr.cc (emit_group_load_1): Don\u0027t call force_reg if orig_src\n\tis already a CONCAT.\n"
    },
    {
      "commit": "59145b089d2c86eaf1d062a76ab4afd8b7c4c7f0",
      "tree": "6cebdc077782f808484212db9f1470ccd79324c6",
      "parents": [
        "74907f407db641657ae71b67bb8625ad1efc8957"
      ],
      "author": {
        "name": "Eric Botcazou",
        "email": "ebotcazou@adacore.com",
        "time": "Thu Jan 29 16:16:08 2026 +0100"
      },
      "committer": {
        "name": "Eric Botcazou",
        "email": "ebotcazou@adacore.com",
        "time": "Thu Jan 29 18:31:25 2026 +0100"
      },
      "message": "Ada: Fix internal error on equality test with empty container\n\nThis is a regression present on the mainline and 15 branch, although the\nroot cause has been present for years: the Sem_Type.Covers predicate\nreturns true for the type of an aggregate (Any_Composite) and any type\ndeclared with the Aggregate aspect (when invoked in Ada 2022 or later),\nbut its companion function Sem_Type.Specific_Type punts when it is called\non the same combination.\n\ngcc/ada/\n\tPR ada/123861\n\t* sem_type.adb (Covers): Fix couple of typos in comment.\n\t(Specific_Type): Adjust to Covers\u0027 handling of types declared\n\twith the Aggregate aspect in Ada 2022.\n\ngcc/testsuite/\n\t* gnat.dg/specs/aggr11.ads: New test.\n"
    },
    {
      "commit": "74907f407db641657ae71b67bb8625ad1efc8957",
      "tree": "e4f542138dc40f1ff0980ffc6b38b7a4f2e38752",
      "parents": [
        "31875b910c70dd1e65d4da67562ac02b9b108c68"
      ],
      "author": {
        "name": "Richard Earnshaw",
        "email": "rearnsha@arm.com",
        "time": "Thu Jan 29 10:25:41 2026 +0000"
      },
      "committer": {
        "name": "Richard Earnshaw",
        "email": "rearnsha@arm.com",
        "time": "Thu Jan 29 17:20:59 2026 +0000"
      },
      "message": "testsuite: arm: rework some target-supports checks to use -mfpu\u003dauto\n\nSeveral target-supports checks for Arm are still using the antiquated\n-mfpu\u003d... setting rather than picking up FPU extensions via the\narchitecture specification.  This causes problems when tests are\nlayered because they do not consistently override each other.\n\nArguably, that is incorrect anyway: you can\u0027t test two sets of flag\ncombinations independently and then expect to be able to apply both\nof them, but this change at least makes this behave in a reasonable\nway provided the second set of flags fully overrides the first.\n\ngcc/testsuite/ChangeLog:\n\n\t* lib/target-supports.exp:\n\t(check_effective_target_arm_v8_3a_complex_neon_ok_nocache):\n\tSplit and fill in arm and aarch64 compile options.  Remove the\n\tcpu_unset variable.\n\t(check_effective_target_arm_v8_2a_fp16_neon_ok_nocache): Likewise.\n\t(check_effective_target_arm_v8_3a_fp16_complex_neon_ok_nocache):\n\tLikewise.\n\t(check_effective_target_arm_neon_ok_nocache): Rework to use\n\t-mfpu\u003dauto.\n\t(check_effective_target_arm_neon_fp16_ok_nocache): Likewise.\n\nCo-authored-by: Artemiy Volkov \u003cartemiy.volkov@arm.com\u003e\n"
    },
    {
      "commit": "31875b910c70dd1e65d4da67562ac02b9b108c68",
      "tree": "ea4bb3bfd102e23d29be0c6708ed60d1e6aa35b2",
      "parents": [
        "a111fd4d47243b7b9a9daabbc79fd4a2c7339dd4"
      ],
      "author": {
        "name": "Artemiy Volkov",
        "email": "artemiy.volkov@arm.com",
        "time": "Thu Jan 08 11:51:06 2026 +0000"
      },
      "committer": {
        "name": "Richard Earnshaw",
        "email": "rearnsha@arm.com",
        "time": "Thu Jan 29 17:19:14 2026 +0000"
      },
      "message": "testsuite: require arm_v8_3a_fp16_complex_neon for complex fp16 tests\n\nChanges to target-supports.exp from r16-6519-g56dd47c073cabf introduced\nsome new failures for complex fp16 tests with some arm-eabi targets\nconfigured with -mfpu\u003dauto.  This patch fixes those by (a) requiring the\nfull arm_v8_3a_fp16_complex_neon_ok target instead of just float16 in\nvect/complex fp16 tests, and (b) simplifying down to one\ndg-require-effective-target and one dg-add-options and removing the\nexplicit -march in advsimd-intrinsics/vector-complex_f16.c.\n\nRegtested on aarch64, and the Linaro CI also delivers a positive verdict\nfor the relevant cortex-m33/-m3/-m55/-m7 configurations (after the\naccompanying patch to target-supports.exp that follows).  Huge thanks to\nChristophe for testing this on arm.\n\ngcc/testsuite/ChangeLog:\n\n\t* gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c:\n\tAdjust testcase.\n\t* gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c:\n\tLikewise.\n\t* gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c:\n\tLikewise.\n\t* gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c:\n\tLikewise.\n\t* gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c:\n\tLikewise.\n\t* gcc.dg/vect/complex/fast-math-complex-add-half-float.c: Likewise.\n\t* gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c:\n\tLikewise.\n\t* gcc.dg/vect/complex/fast-math-complex-mla-half-float.c:\n\tLikewise.\n\t* gcc.dg/vect/complex/fast-math-complex-mls-half-float.c:\n\tLikewise.\n\t* gcc.dg/vect/complex/fast-math-complex-mul-half-float.c:\n\tLikewise.\n\t* gcc.target/aarch64/advsimd-intrinsics/vector-complex_f16.c:\n\tLikewise.\n"
    },
    {
      "commit": "a111fd4d47243b7b9a9daabbc79fd4a2c7339dd4",
      "tree": "b4ae3c9733a6e0c904581df40ea6ac57ab92ceb5",
      "parents": [
        "4e47e85dd847665b86e6068d59027771208befaa"
      ],
      "author": {
        "name": "Jonathan Wakely",
        "email": "jwakely@redhat.com",
        "time": "Thu Jan 29 17:02:43 2026 +0000"
      },
      "committer": {
        "name": "Jonathan Wakely",
        "email": "redi@gcc.gnu.org",
        "time": "Thu Jan 29 17:14:03 2026 +0000"
      },
      "message": "libstdc++: Fix use of feature test macro in \u003csource_location\u003e\n\nlibstdc++-v3/ChangeLog:\n\n\t* include/std/source_location: Check __glibcxx_contracts instead\n\tof __cpp_lib_contracts.\n\t* testsuite/18_support/contracts/includes.cc: New test.\n"
    },
    {
      "commit": "4e47e85dd847665b86e6068d59027771208befaa",
      "tree": "9ae73b1bf30db209b1ada0ab76d88a5c186a2215",
      "parents": [
        "32852e2f477c45f8e309835a56ff2858cfb887d2"
      ],
      "author": {
        "name": "vspefs",
        "email": "vspefs@protonmail.com",
        "time": "Thu Jan 29 16:58:19 2026 +0000"
      },
      "committer": {
        "name": "Jonathan Wakely",
        "email": "redi@gcc.gnu.org",
        "time": "Thu Jan 29 17:13:27 2026 +0000"
      },
      "message": "libstdc++: fix a wrong export of a contracts facility in std module\n\nThis patch fixes a wrong export name in std module. std module currently\nexports std::contracts::invoke_default_violation_handler, which is wrong.\nThe correct name is std::contracts::invoke_default_contract_violation_handler.\n\nlibstdc++-v3/ChangeLog:\n\n\t* src/c++23/std.cc.in (invoke_default_violation_handler): Change\n\tto invoke_default_contract_violation_handler.\n\nSigned-off-by: Xie Han \u003cvspefs@protonmail.com\u003e\n"
    },
    {
      "commit": "32852e2f477c45f8e309835a56ff2858cfb887d2",
      "tree": "0b133e476cc31836b948cb0b183246f142020ea7",
      "parents": [
        "f101d3478eec3d5ae347549ec68dc4b787ef04b3"
      ],
      "author": {
        "name": "Christopher Bazley",
        "email": "chris.bazley@arm.com",
        "time": "Thu Jan 29 15:55:15 2026 +0000"
      },
      "committer": {
        "name": "Richard Earnshaw",
        "email": "rearnsha@arm.com",
        "time": "Thu Jan 29 16:45:30 2026 +0000"
      },
      "message": "arm: testsuite: Use test framework to set arch in stack-protector-7\n\nThis test was trying to set the architecture directly instead of\nusing the framework. The queried options were previously ignored.\n\ngcc/testsuite/ChangeLog:\n\t* gcc.target/arm/stack-protector-7.c: Fix dgdirectives.\n"
    },
    {
      "commit": "f101d3478eec3d5ae347549ec68dc4b787ef04b3",
      "tree": "9686487aa3139d2f0acc787fd152fc2f1badf27f",
      "parents": [
        "6a1578c1f6745b8b6cc09f83d26ac1333786e6a1"
      ],
      "author": {
        "name": "Sandra Loosemore",
        "email": "sloosemore@baylibre.com",
        "time": "Thu Jan 29 16:41:07 2026 +0000"
      },
      "committer": {
        "name": "Sandra Loosemore",
        "email": "sloosemore@baylibre.com",
        "time": "Thu Jan 29 16:42:23 2026 +0000"
      },
      "message": "doc: Add \"user experience\" documentation for options\n\nAfter working through PR122243, it seems appropriate to write down\nsome guidelines for adding/maintaining options and options\ndocumentation so that we can at least point to procedures to keep\nthings from getting out of sync again.\n\nThanks to jemarch@gnu.org and dmalcolm@redhat.com for their suggestions\nto improve this patch.\n\ngcc/ChangeLog\n\t* doc/options.texi (Options): Point to the \"user experience\"\n\tdocumentation.\n\t* doc/ux.texi (Guidelines for Options): Add some.\n"
    },
    {
      "commit": "6a1578c1f6745b8b6cc09f83d26ac1333786e6a1",
      "tree": "f7ff56201b4ccaceb96fa83e1481ae0f927be691",
      "parents": [
        "a7d442ab3180fe68382f24436a7f369ae77d7898"
      ],
      "author": {
        "name": "Robin Dapp",
        "email": "rdapp@oss.qualcomm.com",
        "time": "Mon Jan 26 15:24:10 2026 +0100"
      },
      "committer": {
        "name": "Robin Dapp",
        "email": "rdapp@oss.qualcomm.com",
        "time": "Thu Jan 29 17:37:50 2026 +0100"
      },
      "message": "RISC-V: Handle VL-setting FoF loads. [PR123806]\n\nFor PR122869 I thought I fixed the issue of VL-spills clobbering\nexplicit VL reads after fault-only-first (FoF) loads but it turns\nout the fix is insufficient.  Even though it avoided the original\nissue, we can still have spills that clobber VL before the read_vl\nRTL pattern.  That\u0027s mostly due to us hiding the VL data flow from\nthe optimizers so a regular spill to memory can and will introduce\na VL clobber.  In vsetvl we catch all the regular cases but not the\nFoF-load case of PR123806 and PR122869.\n\nThis patch adds specific FoF patterns that emit the same instruction but\nhave a register-setting VL pattern inside the insn\u0027s PARALLEL.\nIt serves as a marker for the vsetvl pass that can recognize that we\nclobber VL before reading its value.  In that case we now emit an\nexplicit csrr ..,vl.\n\nAfter vsetvl it\u0027s safe to emit the read_vls because at that point the\nVL dataflow has been established and we can be sure to not clobber VL\nanymore.\n\nThus, the main changes are:\n - Unify read_vl si and di and make it an UNSPEC.  We don\u0027t optimize\n   it anyway so a unified one is easier to include in the new FoF\n   VL-setter variants.\n - Introduce VL-setting variants of FoF loads and handle them like\n   read_vl()s in the vsetvl pass.\n - Emit read_vl()s after vsetvl insertion is done.\n\nWhat this doesn\u0027t get rid of is the XFAIL in ff-load-3.c that I\nintroduced for PR122869.  The code is still \"good\" at -O1 and\n\"bad\" at -O2 upwards.\n\n\tPR target/123806\n\ngcc/ChangeLog:\n\n\t* config/riscv/riscv-string.cc (expand_rawmemchr): Use unified\n\tvl_read.\n\t(expand_strcmp): Ditto.\n\t* config/riscv/riscv-vector-builtins-bases.cc:\n\t* config/riscv/riscv-vector-builtins.cc (function_expander::use_fof_load_insn):\n\tOnly emit the store and not the VL read.\n\t* config/riscv/riscv-vsetvl.cc (get_fof_set_vl_reg): New\n\tfunction.\n\t(init_rtl_ssa): New wrapper.\n\t(finish_rtl_ssa): Ditto.\n\t(emit_fof_read_vls): Emit read_vl after each fault-only-first\n\tload.\n\t(pass_vsetvl::simple_vsetvl): Call emit_fof_read_vls ().\n\t(pass_vsetvl::lazy_vsetvl): Ditto.\n\t* config/riscv/vector-iterators.md: Add read_vl unspec.\n\t* config/riscv/vector.md (read_vlsi): Unify.\n\t(@read_vl\u003cmode\u003e): Ditto.\n\t(read_vldi_zero_extend): Ditto.\n\t(@pred_fault_load_set_vl\u003cV_VLS:mode\u003e\u003cP:mode\u003e): New FoF variant\n\tthat saves VL in a register.\n\t(@pred_fault_load_set_vl\u003cVT:mode\u003e\u003cP:mode\u003e): Ditto.\n\ngcc/testsuite/ChangeLog:\n\n\t* g++.target/riscv/rvv/base/pr123806.C: New test.\n\t* g++.target/riscv/rvv/base/pr123808.C: New test.\n\t* g++.target/riscv/rvv/base/pr123808-2.C: New test.\n"
    },
    {
      "commit": "a7d442ab3180fe68382f24436a7f369ae77d7898",
      "tree": "6a6cb1b87562300ebb532e2a4dad88dc9d778584",
      "parents": [
        "172634608a49603d10b471b0379c71cf53d3e2c0"
      ],
      "author": {
        "name": "Robin Dapp",
        "email": "rdapp@oss.qualcomm.com",
        "time": "Wed Jan 28 17:54:42 2026 +0100"
      },
      "committer": {
        "name": "Robin Dapp",
        "email": "rdapp@oss.qualcomm.com",
        "time": "Thu Jan 29 17:37:49 2026 +0100"
      },
      "message": "RISC-V: testsuite: Add zvl requirement to PR123626.\n\nThis adds a new require-effective-target check to pr123626.c.\nAs the test is a run test compiled with _zvl256b we need\nto ensure the target actually supports 256b vectors.\n\nWe can only check for exactly 256b right now\n(rvv_zvl256b_ok), i.e. \"VLS\".  Therefore, the patch also adds\na new target check rvv_zvl_ge_256b_ok where ge means greater\nor equal.\n\ngcc/testsuite/ChangeLog:\n\n\t* lib/target-supports.exp: Add rvv_zvl_ge_256b_ok.\n\t* gcc.target/riscv/rvv/base/pr123626.c: Use new target check.\n"
    },
    {
      "commit": "172634608a49603d10b471b0379c71cf53d3e2c0",
      "tree": "4f3e2e2811fb9d3b8656e1e5fdfae73f86dd7fed",
      "parents": [
        "07cbb8cdcef287cf4b481a536cce69ef34b32478"
      ],
      "author": {
        "name": "Iain Buclaw",
        "email": "ibuclaw@gdcproject.org",
        "time": "Thu Jan 29 16:26:21 2026 +0100"
      },
      "committer": {
        "name": "Iain Buclaw",
        "email": "ibuclaw@gdcproject.org",
        "time": "Thu Jan 29 17:12:23 2026 +0100"
      },
      "message": "d: Fix Segmentation fault with redeclared symbols [PR123407]\n\nIssue an error if two symbols with the same assembler name have a\nmismatched TREE_CODE.\n\n\tPR d/123407\n\ngcc/d/ChangeLog:\n\n\t* decl.cc (get_symbol_decl): Handle declarations with matching\n\tassembler names, but different TREE_CODE.\n\ngcc/testsuite/ChangeLog:\n\n\t* gdc.dg/pr123407a.d: New test.\n\t* gdc.dg/pr123407b.d: New test.\n"
    },
    {
      "commit": "07cbb8cdcef287cf4b481a536cce69ef34b32478",
      "tree": "d334a0bff7230ed20b3ee2fe04595bfc4264d60f",
      "parents": [
        "6f7c038eee71e519571df5741413f0547fbe85a7"
      ],
      "author": {
        "name": "Filip Kastl",
        "email": "fkastl@suse.cz",
        "time": "Thu Jan 29 16:01:33 2026 +0100"
      },
      "committer": {
        "name": "Filip Kastl",
        "email": "fkastl@suse.cz",
        "time": "Thu Jan 29 16:03:52 2026 +0100"
      },
      "message": "pta: Fix comment of intra_create_variable_infos\n\nThe comment says that this function creates varinfos for *all*\nvariables in a function.  Meanwhile, it only creates varinfos for\nparameters, the return value and the static chain.\n\nCommiting as obvious.\n\ngcc/ChangeLog:\n\n\t* gimple-ssa-pta-constraints.cc (make_param_constraints): Adjust\n\tcomment: The function only creates varinfos for the parameters,\n\tthe return value and the static chain.\n\nSigned-off-by: Filip Kastl \u003cfkastl@suse.cz\u003e\n"
    },
    {
      "commit": "6f7c038eee71e519571df5741413f0547fbe85a7",
      "tree": "456dab7e3adac77a20d1fd2a2d37af61bae32360",
      "parents": [
        "b4ee1a549eac8d165740616376beeab73c5c6512"
      ],
      "author": {
        "name": "Marek Polacek",
        "email": "polacek@redhat.com",
        "time": "Thu Jan 29 09:39:12 2026 -0500"
      },
      "committer": {
        "name": "Marek Polacek",
        "email": "polacek@redhat.com",
        "time": "Thu Jan 29 09:48:48 2026 -0500"
      },
      "message": "c++/reflection: add fixed test [PR123871]\n\nIncredibly, a patch that I just pushed (r16-7140-g101f2970adc0a7) fixed\nthis ICE.\n\nI notice that we don\u0027t emit the diag_array_subscript diagnostic because\nslice calls fold_non_dependent_expr which calls _eval_outermost with\nallow_non_constant\u003dtrue.  I wonder if we want to change this.\n\n\tPR c++/123871\n\ngcc/testsuite/ChangeLog:\n\n\t* g++.dg/reflect/error11.C: New test.\n"
    },
    {
      "commit": "b4ee1a549eac8d165740616376beeab73c5c6512",
      "tree": "db8e72c43fb8b0894be48b82fd84fcb2df62606e",
      "parents": [
        "06320fa8b37593f00ebc13b37d6411eb29ff8a4c"
      ],
      "author": {
        "name": "Iain Buclaw",
        "email": "ibuclaw@gdcproject.org",
        "time": "Thu Jan 29 14:06:14 2026 +0100"
      },
      "committer": {
        "name": "Iain Buclaw",
        "email": "ibuclaw@gdcproject.org",
        "time": "Thu Jan 29 15:27:18 2026 +0100"
      },
      "message": "d: Fix ICE in gimplify_expr with const ref noreturn parameters [PR123046]\n\nThe ICE was caused by references to const/immutable qualified `noreturn\u0027\ndeclarations that were being leaked to the code generation when they\nshould have been omitted or replaced with `assert(0)\u0027.\n\n\tPR d/123046\n\ngcc/d/ChangeLog:\n\n\t* d-codegen.cc (build_address): Return `null\u0027 when generating the\n\taddress of a `noreturn\u0027 declaration.\n\t(d_build_call): Compare TYPE_MAIN_VARIANT of type with `noreturn\u0027.\n\t* decl.cc (get_fndecl_arguments): Likewise.\n\t* types.cc (finish_aggregate_mode): Likewise.\n\t(TypeVisitor::visit (TypeFunction *)): Likewise.\n\ngcc/testsuite/ChangeLog:\n\n\t* gdc.dg/pr123046.d: New test.\n"
    },
    {
      "commit": "06320fa8b37593f00ebc13b37d6411eb29ff8a4c",
      "tree": "af53a0b3d41f5b8113067f6b01e2ce043a592071",
      "parents": [
        "397b0827bcd40eb9b0c5c4bfae7a3dcb2030cef2"
      ],
      "author": {
        "name": "Richard Biener",
        "email": "rguenther@suse.de",
        "time": "Thu Jan 29 13:56:11 2026 +0100"
      },
      "committer": {
        "name": "Richard Biener",
        "email": "rguenth@gcc.gnu.org",
        "time": "Thu Jan 29 15:17:06 2026 +0100"
      },
      "message": "tree-optimization/122537 - do not elide maybe_zero condition for wrapping IV\n\nThe following removes the optimization eliding the maybe_zero condition\nfrom number_of_iterations_lt_to_ne when the IV can overflow since the\nIV delta input is not accurately reflecting this.\n\n\tPR tree-optimization/122537\n\t* tree-ssa-loop-niter.cc (number_of_iterations_lt_to_ne): Register\n\tmay_be_zero condition when the IV may overflow.\n\n\t* gcc.dg/torture/pr122537.c: New testcase.\n"
    },
    {
      "commit": "397b0827bcd40eb9b0c5c4bfae7a3dcb2030cef2",
      "tree": "1b216b9839ed9c405b316051e0fed6c72a43b2d9",
      "parents": [
        "ec8ec2755f0bc387dddaa8920b1154455e0ee7fe"
      ],
      "author": {
        "name": "Marek Polacek",
        "email": "polacek@redhat.com",
        "time": "Wed Jan 28 15:43:35 2026 -0500"
      },
      "committer": {
        "name": "Marek Polacek",
        "email": "polacek@redhat.com",
        "time": "Thu Jan 29 08:45:20 2026 -0500"
      },
      "message": "c++/reflection: tweak for eval_has_template_arguments\n\nAs discussed in\n\u003chttps://gcc.gnu.org/pipermail/gcc-patches/2026-January/705756.html\u003e:\n\n\u003e For reflection it\u0027s probably best to go with\n\u003e\n\u003e if (TYPE_P (r) \u0026\u0026 typedef_variant_p (r))\n\u003e   return alias_template_specialization_p (r, nt_opaque);\n\u003e\n\u003e and not get into primary_template_specialization_p at all.\n\nHere in a patch form.\n\ngcc/cp/ChangeLog:\n\n\t* reflect.cc (eval_has_template_arguments): Return immediately after\n\tchecking alias_template_specialization_p.\n\nReviewed-by: Jason Merrill \u003cjason@redhat.com\u003e\n"
    },
    {
      "commit": "ec8ec2755f0bc387dddaa8920b1154455e0ee7fe",
      "tree": "1cec15965c002c301f999710d40f471d25cb1592",
      "parents": [
        "101f2970adc0a7ac5785e40eb8ad63facb4f582a"
      ],
      "author": {
        "name": "Marek Polacek",
        "email": "polacek@redhat.com",
        "time": "Wed Jan 28 16:26:35 2026 -0500"
      },
      "committer": {
        "name": "Marek Polacek",
        "email": "polacek@redhat.com",
        "time": "Thu Jan 29 08:44:00 2026 -0500"
      },
      "message": "c++/reflection: add assert to eval_type_trait\n\nAs discussed in\n\u003chttps://gcc.gnu.org/pipermail/gcc-patches/2026-January/705756.html\u003e.\n\nSince we check eval_is_type in process_metafunction:\n\n  if (eval_is_type (ht) !\u003d boolean_true_node)\n     return throw_exception_nontype (loc, ctx, fun, non_constant_p,\n\t\t\t\t     jump_target);\n\nfinish_trait_expr should never return error_mark_node.  We can ensure\nthat it\u0027s so by adding an assert.\n\ngcc/cp/ChangeLog:\n\n\t* reflect.cc (eval_type_trait): Assert that finish_trait_expr didn\u0027t\n\treturn error_mark_node.\n\nReviewed-by: Jason Merrill \u003cjason@redhat.com\u003e\n"
    },
    {
      "commit": "101f2970adc0a7ac5785e40eb8ad63facb4f582a",
      "tree": "08cc77488340a8cb55d6a076055865a6d394cadd",
      "parents": [
        "bc10a49c37501e0603236fd9ca1f3a63bec24cc7"
      ],
      "author": {
        "name": "Marek Polacek",
        "email": "polacek@redhat.com",
        "time": "Wed Jan 28 17:30:06 2026 -0500"
      },
      "committer": {
        "name": "Marek Polacek",
        "email": "polacek@redhat.com",
        "time": "Thu Jan 29 08:42:04 2026 -0500"
      },
      "message": "c++/reflection: enhance splice error checking\n\nAs discussed in\n\u003chttps://gcc.gnu.org/pipermail/gcc-patches/2026-January/705756.html\u003e:\n\n\u003e Absolutely, I mean anything other than REFLECT_EXPR or error_mark_node\n\u003e should be an error.\n\nI\u0027m not giving another error for error_mark_node since we\u0027ve already\ncomplained (but make sure we have).\n\ngcc/cp/ChangeLog:\n\n\t* reflect.cc (class_members_of): Adjust comment.\n\t(splice): Give an error if the expression doesn\u0027t evaluate to\n\ta REFLECT_EXPR_P.\n\nReviewed-by: Jason Merrill \u003cjason@redhat.com\u003e\n"
    },
    {
      "commit": "bc10a49c37501e0603236fd9ca1f3a63bec24cc7",
      "tree": "8c5c87f4dd4be7aa4c9985cfbf44245c27f0df1c",
      "parents": [
        "a492b8c17118592061cc3834e7a169ca724440cb"
      ],
      "author": {
        "name": "Sangamesh Mallayya",
        "email": "swamy.sangamesh@gmail.com",
        "time": "Thu Jan 29 07:04:40 2026 -0600"
      },
      "committer": {
        "name": "Sangamesh Mallayya",
        "email": "swamy.sangamesh@gmail.com",
        "time": "Thu Jan 29 07:08:03 2026 -0600"
      },
      "message": "Fix AIX build break in gcc/diagnostics/sarif-sink.cc.\n\nIn AIX, build fails while trying to compile gcc/diagnostics/sarif-sink.cc.\nHere is the snapshot of the error we are getting.\n\nIn file included from /opt/freeware/src/packages/BUILD/gcc/gcc/system.h:46,\n                 from /opt/freeware/src/packages/BUILD/gcc/gcc/diagnostics/sarif-sink.cc:34:\n/opt/freeware/lib/gcc/powerpc-ibm-aix7.3.0.0/13/include-fixed/stdio.h:593:12: error: conflicting declaration of C function \u0027int fgetpos64(FILE*, fpos64_t*)\u0027\n  593 | extern int fgetpos64(FILE *, fpos64_t *);\n      |            ^~~~~~~~~\n\nThis happens when we include sys/types.h before defining _LARGE_FILES.\nWe can see similar errors with this sample program.\n\n#include \u003csys/types.h\u003e\n#define _LARGE_FILES 1\n#include \u003cstdio.h\u003e\nint main()\n{\n   return 0;\n}\n\nIn gcc/diagnostics/sarif-sink.cc we are including config.h after #include \u003csys/un.h\u003e which intern\n including sys/types.h and causing the conflicting errors.\nIncluding config.h before including sys/un.h should solve this error.\n\nThe patch is to fix the build break on AIX.\n\ngcc/ChangeLog:\n\t* diagnostics/sarif-sink.cc: Move config.h at the begining.\n"
    },
    {
      "commit": "a492b8c17118592061cc3834e7a169ca724440cb",
      "tree": "20dc4d9a6c5f59669dab9ca0490d366c8c49e174",
      "parents": [
        "95ed4da2291b1f108f6c50bb06953777e2c80113"
      ],
      "author": {
        "name": "Iain Buclaw",
        "email": "ibuclaw@gdcproject.org",
        "time": "Thu Jan 29 10:11:43 2026 +0100"
      },
      "committer": {
        "name": "Iain Buclaw",
        "email": "ibuclaw@gdcproject.org",
        "time": "Thu Jan 29 13:16:31 2026 +0100"
      },
      "message": "d: Fix buffer overflow detected with -defaultlib\u003d and -debuglib\u003d [PR123349]\n\n\tPR d/123349\n\ngcc/d/ChangeLog:\n\n\t* d-spec.cc (lang_specific_driver): Use xstrdup to copy -defaultlib\n\tand -debuglib argument, and unconditionally free the old value.\n\ngcc/testsuite/ChangeLog:\n\n\t* gdc.dg/driver_debuglib.d: New test.\n\t* gdc.dg/driver_defaultlib.d: New test.\n"
    },
    {
      "commit": "95ed4da2291b1f108f6c50bb06953777e2c80113",
      "tree": "7281baa1d30acd33fdfa78943255a29b8099439d",
      "parents": [
        "4c49f8e53698cce2fc93fb31cbd190c7ff3d04c4"
      ],
      "author": {
        "name": "Jonathan Wakely",
        "email": "jwakely@redhat.com",
        "time": "Thu Jan 29 12:12:45 2026 +0000"
      },
      "committer": {
        "name": "Jonathan Wakely",
        "email": "redi@gcc.gnu.org",
        "time": "Thu Jan 29 12:13:43 2026 +0000"
      },
      "message": "libstdc++: Fix non-ASCII characters in \u003ccontracts\u003e header\n\nThis fixes:\nFAIL: 17_intro/headers/c++1998/charset.cc  -std\u003dgnu++26 (test for excess errors)\n\nlibstdc++-v3/ChangeLog:\n\n\t* include/std/contracts: Replace non-ASCII characters.\n"
    },
    {
      "commit": "4c49f8e53698cce2fc93fb31cbd190c7ff3d04c4",
      "tree": "aa9ff270e9560ff73a998755fdd94926d1100902",
      "parents": [
        "312ba8d740bb4302a038e11c45891addf0c7e9f9"
      ],
      "author": {
        "name": "Richard Biener",
        "email": "rguenther@suse.de",
        "time": "Thu Jan 29 10:41:16 2026 +0100"
      },
      "committer": {
        "name": "Richard Biener",
        "email": "rguenth@gcc.gnu.org",
        "time": "Thu Jan 29 12:37:47 2026 +0100"
      },
      "message": "tree-optimization/123596 - fix partial virtual SSA update in eh_cleanup\n\nThe following replaces the not quite correct use of\nmark_virtual_operand_for_renaming by an appropriate way of dealing\nwith a possibly partially up-to-date virtual SSA form.  Namely\nwhen we just move stmts and not remove a VDEF we should arrange\nfor missing virtual PHIs to be created and just queue its arguments\nfor possible renaming.  For the testcase at hand there\u0027s no renaming\nnecessary in the end when done this way.\n\n\tPR tree-optimization/123596\n\t* tree-eh.cc (sink_clobbers): Create a virtual PHI when\n\tone is required but not present, queuing arguments\n\tfor renaming.\n\n\t* g++.dg/torture/pr123596.C: New testcase.\n"
    },
    {
      "commit": "312ba8d740bb4302a038e11c45891addf0c7e9f9",
      "tree": "b8f3c4ade66ad03c86e49b7eb9cc1996404c6801",
      "parents": [
        "4f2a04726b97a79f5c0cdb4af8e589aebefea7ef"
      ],
      "author": {
        "name": "Richard Biener",
        "email": "rguenther@suse.de",
        "time": "Thu Jan 29 08:47:44 2026 +0100"
      },
      "committer": {
        "name": "Richard Biener",
        "email": "rguenth@gcc.gnu.org",
        "time": "Thu Jan 29 12:37:47 2026 +0100"
      },
      "message": "tree-optimization/116747 - ICE in cselim due to duplicate sinking\n\nThe following avoids queueing duplicate stmts in the set of sinkings\nto consider as well as pick candidates in an order that ensures\nwe don\u0027t unnecessarily re-order stores.  While we currently only can\ntrigger the ICE with out-of-bound accesses future enhancements\nto how we deal with dependence analysis in this pass could expose\nthe issue to a wider range of testcases, so this makes it future-proof.\n\n\tPR tree-optimization/116747\n\t* tree-ssa-phiopt.cc (cond_if_else_store_replacement): Avoid\n\tduplicate stmts in the set of store pairs to process.\n\n\t* gcc.dg/tree-ssa/cselim-4.c: New testcase.\n"
    },
    {
      "commit": "4f2a04726b97a79f5c0cdb4af8e589aebefea7ef",
      "tree": "262f806c2a137eb94ee980c57d3c7d0f7257831b",
      "parents": [
        "7632c2e12b231ae2648920daa7233f9778624c7a"
      ],
      "author": {
        "name": "Jakub Jelinek",
        "email": "jakub@redhat.com",
        "time": "Thu Jan 29 12:34:59 2026 +0100"
      },
      "committer": {
        "name": "Jakub Jelinek",
        "email": "jakub@gcc.gnu.org",
        "time": "Thu Jan 29 12:34:59 2026 +0100"
      },
      "message": "c++: Fix ICE in eval_annotations_of [PR123866]\n\neval_annotations_of throws if the passed in reflection handle is not\neval_is_function (and various others).  Now, eval_is_function uses\nmaybe_get_first_fn to look through BASELINK/OVERLOAD etc., but\neval_annotations_of wasn\u0027t doing that and ICEd on\n  else if (TYPE_P (r))\n    r \u003d TYPE_ATTRIBUTES (r);\n  else if (DECL_P (r))\n    r \u003d DECL_ATTRIBUTES (r);\n  else\n    gcc_unreachable ();\nbecause r isn\u0027t a decl nor type (nor REFLECT_BASE earlier).\n\n2026-01-29  Jakub Jelinek  \u003cjakub@redhat.com\u003e\n\n\tPR c++/123866\n\t* reflect.cc (eval_annotations_of): Use maybe_get_first_fn.\n\n\t* g++.dg/reflect/annotations10.C: New test.\n"
    },
    {
      "commit": "7632c2e12b231ae2648920daa7233f9778624c7a",
      "tree": "a79fd803c6aa4f9bf20b5fb836abc22d162b3ca7",
      "parents": [
        "ef8af34e0d173723a607789cf7cabc61366babbf"
      ],
      "author": {
        "name": "Jose E. Marchesi",
        "email": "jemarch@gnu.org",
        "time": "Thu Jan 29 03:33:17 2026 +0100"
      },
      "committer": {
        "name": "Jose E. Marchesi",
        "email": "jemarch@gnu.org",
        "time": "Thu Jan 29 12:06:10 2026 +0100"
      },
      "message": "a68: implement GNU68-2026-001-short-of-symbol\n\nThis patch implements the GNU extension:\n\n  GNU68-2026-001-brief-selection - Brief style for selection\n\nwhich adds the preferred brief style for selection recommended by\nHansen in \"ALGOL 68 Hardware Represenatation Recommendations\"\npublished in the Algol Bulletin issue 42.\n\nThis extension is already listed in https://algol68-lang.org.\n\nSigned-off-by: Jose E. Marchesi \u003cjemarch@gnu.org\u003e\n\ngcc/algol68/ChangeLog\n\n\t* ga68.vw: Update formal grammar to express the GNU extension.\n\t* a68-parser.cc (a68_dont_mark_here): Likewise.\n\t* a68-parser-scanner.cc (SINGLE_QUOTE_CHAR): Define.\n\t(get_next_token): Recognize \u0027 as QUOTE_SYMBOL.\n\t(tokenise_source): Acknowledge QUOTE_SYMBOL.\n\t* a68-parser-keywords.cc (a68_set_up_tables): Likewise.\n\t* a68-parser-bottom-up.cc (reduce_primary_parts): Adjust parser to\n\tbrief form of selection.\n\t* a68-parser-attrs.def (QUOTE_SYMBOL): New attribute.\n\t* ga68.texi (Brief selection): New section.\n\ngcc/testsuite/ChangeLog\n\n\t* algol68/compile/error-selector-1.a68: New test.\n\t* algol68/execute/selection-2.a68: Update test.\n\t* algol68/execute/selection-5.a68: Likewise.\n"
    },
    {
      "commit": "ef8af34e0d173723a607789cf7cabc61366babbf",
      "tree": "7fb72f3d7d290984c6e64d0a0bcda351a5786479",
      "parents": [
        "73650105ba44665fe9cdb9f001953bb32e99fec0"
      ],
      "author": {
        "name": "Jakub Jelinek",
        "email": "jakub@redhat.com",
        "time": "Thu Jan 29 09:49:51 2026 +0100"
      },
      "committer": {
        "name": "Jakub Jelinek",
        "email": "jakub@gcc.gnu.org",
        "time": "Thu Jan 29 09:49:51 2026 +0100"
      },
      "message": "c++: Implement CWG3131 - Value categories and types for the range in iterable expansion statements\n\nFor the https://gcc.gnu.org/pipermail/gcc/2025-November/246977.html\nissues I\u0027ve filed https://github.com/cplusplus/CWG/issues/805\nwhich resulted in two CWG issues,\nhttps://cplusplus.github.io/CWG/issues/3131.html\nand\nhttps://cplusplus.github.io/CWG/issues/3140.html\nThis patch implements the former, changing\nthe iterating expansion statement http://eel.is/c++draft/stmt.expand#5.2\nline from\nconstexpr auto\u0026\u0026 range \u003d expansion-initializer;\nto\nconstexpr decltype(auto) range \u003d (expansion-initializer);\n(for our partly pre-CWG3044 implementation with static before it).\n\n2026-01-29  Jakub Jelinek  \u003cjakub@redhat.com\u003e\n\n\t* cp-tree.h (build_range_temp): Implement CWG3131 - Value\n\tcategories and types for the range in iterable expansion statements.\n\tAdd bool argument defaulted to false.\n\t* parser.cc (build_range_temp): Add expansion_stmt_p argument,\n\tif true build const decltype(auto) __for_range \u003d range_expr instead of\n\tauto \u0026\u0026__for_range \u003d range_expr.\n\t(cp_build_range_for_decls): For expansion stmts build __for_range as\n\tstatic constexpr decltype(auto) __for_range \u003d (range_expr);\n\trather than static constexpr auto \u0026\u0026__for_range \u003d range_expr;.\n\n\t* g++.dg/cpp26/expansion-stmt1.C (N::begin, N::end, O::begin,\n\tO::end): Change argument type from B \u0026 to const B \u0026 or from\n\tD \u0026 to const D \u0026.\n\t* g++.dg/cpp26/expansion-stmt2.C (N::begin, N::end, O::begin,\n\tO::end): Likewise.\n\t* g++.dg/cpp26/expansion-stmt3.C (N::begin, N::end, O::begin,\n\tO::end): Likewise.\n\t* g++.dg/cpp26/expansion-stmt16.C: Expect different diagnostics\n\tfor C++11.\n\t* g++.dg/cpp26/expansion-stmt18.C (N::begin, N::end): Change\n\targument type from B \u0026 to const B \u0026.\n\t* g++.dg/cpp26/expansion-stmt25.C (N::begin, N::end): Likewise.\n\t* g++.dg/cpp26/expansion-stmt26.C: New test.\n\t* g++.dg/reflect/p3491-2.C (baz): Move workaround to a new\n\tfunction garply, use the previously #if 0 guarded implementation.\n\t(garply): New function.\n"
    },
    {
      "commit": "73650105ba44665fe9cdb9f001953bb32e99fec0",
      "tree": "dc259adcd0319c5b5ecf96832e34767337d8e9a1",
      "parents": [
        "f32faca4e85e290d24d93d8a3b87d18ec6c568aa"
      ],
      "author": {
        "name": "Pietro Monteiro",
        "email": "pietro@sociotechnical.xyz",
        "time": "Wed Jan 28 20:16:04 2026 -0500"
      },
      "committer": {
        "name": "Pietro Monteiro",
        "email": "pietro@sociotechnical.xyz",
        "time": "Wed Jan 28 20:16:04 2026 -0500"
      },
      "message": "libffi: Remove more unneeded files when merging\n\nDelete .allow-ai-service and .gail-labels which are present in newer\nversions of libffi.\n\nlibffi/ChangeLog:\n\tPR libffi/117635\n\t* merge.sh: Delete .allow-ai-service and .gail-labels when\n\tmerging new upstream versions.\n\nSigned-off-by: Pietro Monteiro \u003cpietro@sociotechnical.xyz\u003e\n"
    },
    {
      "commit": "f32faca4e85e290d24d93d8a3b87d18ec6c568aa",
      "tree": "b9d0fe94393fe477e81fb492256070fe21ee5eb4",
      "parents": [
        "e41a344ccfab6fe2ac23f958eed8d69b6171890f"
      ],
      "author": {
        "name": "Pietro Monteiro",
        "email": "pietro@sociotechnical.xyz",
        "time": "Wed Jan 28 20:16:04 2026 -0500"
      },
      "committer": {
        "name": "Pietro Monteiro",
        "email": "pietro@sociotechnical.xyz",
        "time": "Wed Jan 28 20:16:04 2026 -0500"
      },
      "message": "libffi: Add missing GCC patches to LOCAL_PATCHES\n\nAdd all the patches to GCC\u0027s copy of libffi to LOCAL_PATCHES.  I\nskipped patches that only regenerate the configure script because it\ndoesn\u0027t come from upstream.\n\nlibffi/ChangeLog:\n\tPR libffi/117635\n\t* LOCAL_PATCHES: Add missing patches.\n\nSigned-off-by: Pietro Monteiro \u003cpietro@sociotechnical.xyz\u003e\n"
    },
    {
      "commit": "e41a344ccfab6fe2ac23f958eed8d69b6171890f",
      "tree": "31494f0734446c078d747c2589b18280f130547b",
      "parents": [
        "67bb07e67270878f9d3b032f84ee86b970d84b15"
      ],
      "author": {
        "name": "Jose E. Marchesi",
        "email": "jemarch@gnu.org",
        "time": "Sat Jan 24 20:10:10 2026 +0100"
      },
      "committer": {
        "name": "Jose E. Marchesi",
        "email": "jemarch@gnu.org",
        "time": "Thu Jan 29 01:37:57 2026 +0100"
      },
      "message": "a68: support FFI with C via formal holes\n\nThis commit adds FFI support to access C variables and call C\nfunctions from Algol 68, using the construct specified by the Modules\nand Separated compilation facilities intended to that effect: formal\nholes (`nest\u0027 constructs).\n\nBriefly put, an `int foo\u0027 C variable can be accessed from Algol 68\nlike:\n\n  int foo \u003d nest C \"foo\";\n  if foo \u003e 10 then ... fi;\n\nA ref to a C variable `int counter\u0027, that allows to modify it as well\nas read it:\n\n  ref int counter \u003d nest C \"\u0026counter\";\n  counter +:\u003d 1;\n\nThe address stored in an `int *ptr\u0027 variable, as an Algol 68\nreference:\n\n  ref int ptr \u003d nest C \"ptr\";\n  ptr :\u003d 100; { Changes the integer pointed by the C ptr }\n\nCalling the standard C `random\u0027 function:\n\n  proc long int random \u003d nest C \"random\";\n  if random \u003c 100 then ... fi;\n\nSome tests and an sketchy section in the manual are also included.\n\nSigned-off-by: Jose E. Marchesi \u003cjemarch@gnu.org\u003e\n\ngcc/algol68/ChangeLog\n\n\t* ga68.vw: Fix grammar for formal holes.\n\t* ga68.texi (Particular programs): New section.\n\t(Comments): Likewise.\n\t* a68.h: Prototypes for a68_is_c_mode, a68_make_fomal_hole_decl,\n\ta68_lower_formal_hole.\n\t* a68-parser-attrs.def (FORMAL_HOLE): New attribute.\n\t(LANGUAGE_INDICANT): Likewise.\n\t* a68-parser-extract.cc (a68_elaborate_bold_tags): Elaborate\n\tlanguage indicants.\n\t* a68-parser-moids-check.cc (mode_check_unit): Check mode in\n\tformal holes.\n\t* a68-low-units.cc (a68_lower_formal_hole): New function.\n\t* a68-low.cc (a68_make_formal_hole_decl): Likewise.\n\t* a68-moids-misc.cc (a68_is_c_mode): Likewise.\n\t* a68-parser-bottom-up.cc (reduce_formal_holes): Likewise.\n\ngcc/testsuite/ChangeLog\n\n\t* algol68/compile/error-nest-1.a68: New test.\n\t* algol68/compile/nest-c-1.a68: Likewise.\n\t* algol68/compile/error-nest-5.a68: Likewise.\n\t* algol68/compile/error-nest-4.a68: Likewise.\n\t* algol68/compile/error-nest-3.a68: Likewise.\n\t* algol68/compile/error-nest-2.a68: Likewise.\n"
    },
    {
      "commit": "67bb07e67270878f9d3b032f84ee86b970d84b15",
      "tree": "506ebaf5b8f4e0cda8965602ec0504ee111f45ab",
      "parents": [
        "a697610ed40e0389cedb4984ad69f391703b0566"
      ],
      "author": {
        "name": "GCC Administrator",
        "email": "gccadmin@gcc.gnu.org",
        "time": "Thu Jan 29 00:16:45 2026 +0000"
      },
      "committer": {
        "name": "GCC Administrator",
        "email": "gccadmin@gcc.gnu.org",
        "time": "Thu Jan 29 00:16:45 2026 +0000"
      },
      "message": "Daily bump."
    },
    {
      "commit": "a697610ed40e0389cedb4984ad69f391703b0566",
      "tree": "6e1fdb0d7ecd85e3f0b06bd8d90dd405bfe9dd24",
      "parents": [
        "ea0f31d040c10e4f9b42f1cf818970bcaf5277a8"
      ],
      "author": {
        "name": "Eric Botcazou",
        "email": "ebotcazou@adacore.com",
        "time": "Wed Jan 28 23:52:41 2026 +0100"
      },
      "committer": {
        "name": "Eric Botcazou",
        "email": "ebotcazou@adacore.com",
        "time": "Wed Jan 28 23:56:27 2026 +0100"
      },
      "message": "Ada: Fix crash on Unchecked_Union parameter with -gnateV -gnata\n\nThe problem is that the compiler generates \u0027Valid_Scalars for a formal\nparameter of an Unchecked_Union type, which cannot work because it is not\npossible to find out where the scalars are in it, given that the parameter\ndoes not contain the discriminants of its Unchecked_Union type.  This also\nchanges -gnateV to work without the need for -gnata, as there is no mention\nof this dependence in the documentation.\n\ngcc/ada/\n\tPR ada/123857\n\t* checks.adb (Apply_Parameter_Validity_Checks.Add_Validity_Check):\n\tSet Is_Checked on the generated {Pre,Post}_Condition pragma and\n\tbail out if the parameter is of an Unchecked_Union type.\n\ngcc/testsuite/\n\t* gnat.dg/unchecked_union4.adb: New test.\n"
    },
    {
      "commit": "ea0f31d040c10e4f9b42f1cf818970bcaf5277a8",
      "tree": "344b45a68c3dba3b7cc01027380467b79e8bee2e",
      "parents": [
        "ddf94524f9accb47c1fc59191739ec34c5907eb8"
      ],
      "author": {
        "name": "Eric Botcazou",
        "email": "ebotcazou@adacore.com",
        "time": "Wed Jan 28 23:31:49 2026 +0100"
      },
      "committer": {
        "name": "Eric Botcazou",
        "email": "ebotcazou@adacore.com",
        "time": "Wed Jan 28 23:56:27 2026 +0100"
      },
      "message": "Ada: Fix stack corruption with concatenation and \u0027Image of composite type\n\nThe issue is that the expansion of \u0027Image for composite types is heavyweight\nand involves a mix of Expression_With_Actions and controlled object that\ndoes not work properly when it is the argument of a call to a subprogram,\nso this replaces it by the canonical scheme used for controlled temporaries.\n\ngcc/ada/\n\tPR ada/123832\n\t* exp_imgv.adb: Add with and use clauses for Exp_Ch7.\n\t(Expand_Image_Attribute): Establish a transient scope before\n\trewriting the attribute as a call to Put_Image.\n\t(Expand_Wide_Image_Attribute): Likewise.\n\t(Expand_Wide_Wide_Image_Attribute): Likewise.\n\t* exp_put_image.ads (Build_Image_Call): Add note about the\n\tneed for a transient scope when the function is invoked.\n\t* exp_put_image.adb (Build_Image_Call): Call Insert_Actions\n\tto immediately insert the actions instead of wrapping them\n\tin an Expression_With_Actions node.\n\ngcc/testsuite/\n\t* gnat.dg/put_image2.adb: New test.\n"
    },
    {
      "commit": "ddf94524f9accb47c1fc59191739ec34c5907eb8",
      "tree": "d545ab2eccce043d4850995e6b93736d2852388d",
      "parents": [
        "a1adc5aa30caae043cbd45dbbf9a738bebba34cc"
      ],
      "author": {
        "name": "Iain Buclaw",
        "email": "ibuclaw@gdcproject.org",
        "time": "Wed Jan 28 23:06:23 2026 +0100"
      },
      "committer": {
        "name": "Iain Buclaw",
        "email": "ibuclaw@gdcproject.org",
        "time": "Wed Jan 28 23:26:47 2026 +0100"
      },
      "message": "d: Fix ICE in ExprVisitor::visit, at d/expr.cc:2224 [PR123419]\n\nThe original assert expected the type of `__traits(initSymbol)\u0027 to be\nexactly `const(void[])\u0027, but because D strips const from arrays to allow\npassing slices as mutable ranges to template functions, so it got turned\ninto `const(void)[]\u0027.\n\n\tPR d/123419\n\ngcc/d/ChangeLog:\n\n\t* expr.cc (ExprVisitor::visit (VarExp *)): Adjust assertion.\n\ngcc/testsuite/ChangeLog:\n\n\t* gdc.dg/pr123419.d: New test.\n"
    },
    {
      "commit": "a1adc5aa30caae043cbd45dbbf9a738bebba34cc",
      "tree": "94eb77d249422c0b45026fe79225d95b5fdaf87f",
      "parents": [
        "b20e68022a3f49010028dc01dab570c68071e3db"
      ],
      "author": {
        "name": "Iain Buclaw",
        "email": "ibuclaw@gdcproject.org",
        "time": "Wed Jan 28 22:09:37 2026 +0100"
      },
      "committer": {
        "name": "Iain Buclaw",
        "email": "ibuclaw@gdcproject.org",
        "time": "Wed Jan 28 22:35:31 2026 +0100"
      },
      "message": "d: Fix ICE: in output_constructor_regular_field, at varasm.cc:5500 [PR123798]\n\n\tPR d/123798\n\ngcc/d/ChangeLog:\n\n\t* types.cc (insert_aggregate_bitfield): Set DECL_NONADDRESSABLE_P and\n\tDECL_PADDING_P on bit-field decls.\n\t(finish_aggregate_type): Pass the aligned bit offset to layout_decl.\n\ngcc/testsuite/ChangeLog:\n\n\t* gdc.dg/pr123798.d: New test.\n"
    },
    {
      "commit": "b20e68022a3f49010028dc01dab570c68071e3db",
      "tree": "11aea5daf409bc95a5baf50b0176369d6049a0ad",
      "parents": [
        "cb0d29db88e367a709f32e49bfa540e54db02f82"
      ],
      "author": {
        "name": "Uros Bizjak",
        "email": "ubizjak@gmail.com",
        "time": "Wed Jan 28 21:57:47 2026 +0100"
      },
      "committer": {
        "name": "Uros Bizjak",
        "email": "ubizjak@gmail.com",
        "time": "Wed Jan 28 21:59:19 2026 +0100"
      },
      "message": "i386: Use x \u003e\u003e ~y for x \u003e\u003e 31-y [PR36503]\n\nx86 targets mask 32-bit shifts with a 5-bit mask (and 64-bit with 6-bit mask),\nso they can use x \u003e\u003e ~y instead of x \u003e\u003e 31-y.\n\nThe optimization converts:\n\n\tmovl    $31, %ecx\n        subl    %esi, %ecx\n        sall    %cl, %eax\n\nto:\n        notl    %ecx\n        sall    %cl, %eax\n\n\tPR target/36503\n\ngcc/ChangeLog:\n\n\t* config/i386/i386.md (*\u003cinsn:any_shift\u003e\u003cmode:SWI48\u003e3_sub):\n\tAlso allow operands[3] \u0026 (\u003cmode_bitsize\u003e-1) \u003d\u003d (\u003cmode_bitsize\u003e-1)\n\tin insn condition. Emit NOT RTX instead of NEG RTX in this case.\n\t(*\u003cinsn:any_shift\u003e\u003cmode:SWI48\u003e3_sub_1): Ditto.\n\ngcc/testsuite/ChangeLog:\n\n\t* gcc.target/i386/pr36503-5.c: New test.\n\t* gcc.target/i386/pr36503-6.c: New test.\n"
    },
    {
      "commit": "cb0d29db88e367a709f32e49bfa540e54db02f82",
      "tree": "ca9347155408a63969a9d1c659e1aa26335e6837",
      "parents": [
        "00956e55dd2fbbee751e953ca2f6b8a87151f85b"
      ],
      "author": {
        "name": "Robin Dapp",
        "email": "rdapp@oss.qualcomm.com",
        "time": "Mon Jan 26 17:59:58 2026 +0100"
      },
      "committer": {
        "name": "Robin Dapp",
        "email": "rdapp@oss.qualcomm.com",
        "time": "Wed Jan 28 20:04:50 2026 +0100"
      },
      "message": "RISC-V: Fix ABI vector passing on stack and GPR [PR123824].\n\nKrister reported that we violate the psABI when one vector argument\nhalfway fits into a register:\n\n\"Aggregates whose total size is no more than 2×XLEN bits are passed in a\npair of registers; if only one register is available, the first XLEN\nbits are passed in a register and the remaining bits are passed on the\nstack. If no registers are available, the aggregate is passed on the\nstack.\"\n\nThis patch fixes this oversight and adds a few tests.\n\nRegtested on rv64gcv_zvl512b.\n\n\tPR target/123824\n\ngcc/ChangeLog:\n\n\t* config/riscv/riscv.cc (riscv_vls_mode_fits_in_gprs_p): New\n\thelper.\n\t(riscv_pass_vls_aggregate_in_gpr): Use helper and distribute\n\thalf-fitting vector to GPR and stack.\n\t(riscv_pass_aggregate_in_vr): Reformat comment.\n\t(riscv_get_arg_info): Use helper.\n\t(riscv_pass_by_reference): Ditto.\n\ngcc/testsuite/ChangeLog:\n\n\t* gcc.target/riscv/abi/vls-gpr-1.c: New test.\n\t* gcc.target/riscv/abi/vls-gpr-10.c: New test.\n\t* gcc.target/riscv/abi/vls-gpr-11.c: New test.\n\t* gcc.target/riscv/abi/vls-gpr-12.c: New test.\n\t* gcc.target/riscv/abi/vls-gpr-13.c: New test.\n\t* gcc.target/riscv/abi/vls-gpr-14.c: New test.\n\t* gcc.target/riscv/abi/vls-gpr-2.c: New test.\n\t* gcc.target/riscv/abi/vls-gpr-3.c: New test.\n\t* gcc.target/riscv/abi/vls-gpr-4.c: New test.\n\t* gcc.target/riscv/abi/vls-gpr-5.c: New test.\n\t* gcc.target/riscv/abi/vls-gpr-6.c: New test.\n\t* gcc.target/riscv/abi/vls-gpr-7.c: New test.\n\t* gcc.target/riscv/abi/vls-gpr-8.c: New test.\n\t* gcc.target/riscv/abi/vls-gpr-9.c: New test.\n"
    }
  ],
  "next": "00956e55dd2fbbee751e953ca2f6b8a87151f85b"
}
