)]}'
{
  "commit": "2d995ac584d7623eefe3bf8f60d05941fa55a1b9",
  "tree": "5b6f913313f4591e5e6853262d1bc9e52b45105c",
  "parents": [
    "7e35df8c4129c6b6b88b40d2006b926c391cc761"
  ],
  "author": {
    "name": "Richard Biener",
    "email": "rguenther@suse.de",
    "time": "Tue Jul 07 08:54:45 2026 +0200"
  },
  "committer": {
    "name": "Richard Biener",
    "email": "rguenth@gcc.gnu.org",
    "time": "Wed Jul 08 09:02:35 2026 +0200"
  },
  "message": "Improve variadic function call handling in PTA\n\nThe following fixes handling of __builtin_va_start handling and\nimplements .VA_ARG handling in PTA constraint generation to\nimprove precision around variadic calls.  I\u0027ve added a testcase\nfor IPA PTA involving an indirect variadic call verifying precision.\n\nThe pr99679-1.C no longer emits an expected error that was triggered\nby PTA calling aggregate_value_p on the .VA_ARG call which we no\nlonger do.\n\n\t* gimple-ssa-pta-constraints.cc (find_func_aliases_for_builtin_call):\n\tCorrectly use SCALAR rhs from the variadic argument part of\n\tthe function info or from NONLOCAL in case of intra-PTA.\n\t(find_func_aliases_for_call): Handle .VA_ARG.\n\n\t* gcc.dg/ipa/ipa-pta-20.c: New testcase.\n\t* g++.target/i386/pr99679-1.C: Remove expected error.\n\t* g++.target/i386/pr99679-2.C: Likewise.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "dec3b2f6f14044b104e17c47ee3c833ccac2aa39",
      "old_mode": 33188,
      "old_path": "gcc/gimple-ssa-pta-constraints.cc",
      "new_id": "a377b891d8025d01097013b49c2060c2704fd12c",
      "new_mode": 33188,
      "new_path": "gcc/gimple-ssa-pta-constraints.cc"
    },
    {
      "type": "modify",
      "old_id": "36640a4e0a12b3d46e64b2bc1d37cb9dce962122",
      "old_mode": 33188,
      "old_path": "gcc/testsuite/g++.target/i386/pr99679-1.C",
      "new_id": "d3cd45b5d55740d12df170dd3d56366e7d61ac7a",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/g++.target/i386/pr99679-1.C"
    },
    {
      "type": "modify",
      "old_id": "cbd3c4958db878af7e8ea0fcd11e2a840992b315",
      "old_mode": 33188,
      "old_path": "gcc/testsuite/g++.target/i386/pr99679-2.C",
      "new_id": "2773b29470a77ca50bf58f40026b770a9c8bfb5b",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/g++.target/i386/pr99679-2.C"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "694a7c3b53a58cf24148c518c5ff178c5138c471",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.dg/ipa/ipa-pta-20.c"
    }
  ]
}
