)]}'
{
  "commit": "50a2eb56b9a350ecced4db4942e92d463dab8d8f",
  "tree": "c53870df8be387063637315342095a823f8e910c",
  "parents": [
    "f51ab50afb9542d93879e0afcda8e3dbb2f3cd31"
  ],
  "author": {
    "name": "Marek Polacek",
    "email": "polacek@redhat.com",
    "time": "Mon Aug 17 16:37:42 2026 -0400"
  },
  "committer": {
    "name": "Marek Polacek",
    "email": "polacek@redhat.com",
    "time": "Wed Aug 19 13:23:43 2026 -0400"
  },
  "message": "c++/reflection: reject bare [: bases_of(...)[0] :]\n\nOn my P4101 branch splice1.C is crashing in gimplify_expr because we\nfail to reject\n\n  [: bases_of (^^T, ctx)[0] :];\n\nwhich I think should be ill-formed since there\u0027s no object.  Splicing a NSDM\nalso needs an object.\n\n[expr.prim.splice]/2.4 is not explicit about it, but every time the\nstandard talks about \"designates a direct base class relationship\" for\na splice, it\u0027s phrased in terms of E1.E2, like [expr.ref]/6.  And\nP3293 also only mentions obj.[: ... :].\n\ngcc/cp/ChangeLog:\n\n\t* reflect.cc (check_splice_expr): Reject splicing a direct base\n\tclass relationship without an object.\n\ngcc/testsuite/ChangeLog:\n\n\t* g++.dg/reflect/mangle3.C: Adjust.\n\t* g++.dg/reflect/splice1.C: Remove XFAIL.\n\nReviewed-by: Jason Merrill \u003cjason@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "be3c2c5f86cc93472d1a8a320d8b73c2b6afd6b0",
      "old_mode": 33188,
      "old_path": "gcc/cp/reflect.cc",
      "new_id": "7e962fdc19e532937e3a9d1c2777e1a50466cc30",
      "new_mode": 33188,
      "new_path": "gcc/cp/reflect.cc"
    },
    {
      "type": "modify",
      "old_id": "2430b0e136c4db06d7fac2782e83e59d69f6c2fd",
      "old_mode": 33188,
      "old_path": "gcc/testsuite/g++.dg/reflect/mangle3.C",
      "new_id": "390f249fb0c91f2306696a8d0cfb09907b7540fb",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/g++.dg/reflect/mangle3.C"
    },
    {
      "type": "modify",
      "old_id": "fd9fab1efa383b3a25c4d2b89f88212d77a145d1",
      "old_mode": 33188,
      "old_path": "gcc/testsuite/g++.dg/reflect/splice1.C",
      "new_id": "8ef4f7fc030095c91e7ce5b7b96e142629a1e351",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/g++.dg/reflect/splice1.C"
    }
  ]
}
