)]}'
{
  "commit": "34fd4c49fbe6ff643fc6f5f2cccca03c86535ee0",
  "tree": "4880136859f08c3a088fa23fe27054112b5af1bb",
  "parents": [
    "39d3259d193d13dc60b9ad12c492274ee220eb8b"
  ],
  "author": {
    "name": "Jason Merrill",
    "email": "jason@redhat.com",
    "time": "Tue Aug 04 19:45:17 2026 -0400"
  },
  "committer": {
    "name": "Jason Merrill",
    "email": "jason@redhat.com",
    "time": "Fri Aug 14 09:21:36 2026 -0400"
  },
  "message": "c++: clarify reshape_init designator handling\n\nWhile looking at r17-3010, I found the handling of designators in\nreshape_init* unclear, particularly in reshape_init_r.  Jakub\u0027s patch\nrecurses directly from reshape_init_class to itself to avoid this confusion.\n\nWith this patch, if we see a designator in reshape_init_r, it designates a\nmember of TYPE, which means brace elision if !first_initializer_p.  For this\nto be true I needed to adjust reshape_init_array_1 to use\nreshape_single_init from c++/103337.  And then if we see a designator and\nTYPE is a class or array, we know we\u0027re initializing an element so we don\u0027t\nconsider initializing TYPE directly.\n\ngcc/cp/ChangeLog:\n\n\t* decl.cc (reshape_single_init): Declare sooner.\n\t(reshape_init_array_1): Use it.\n\t(reshape_init_class): Drop \"subclass\" case.\n\t(reshape_init_r): d-\u003ecur-\u003eindex always means initializing\n\tan element.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cb3eb74c3a1cce389d50d7bf285707324aec9816",
      "old_mode": 33188,
      "old_path": "gcc/cp/decl.cc",
      "new_id": "cd533217ec4027e916aa0d7d2f687f959a4a67fb",
      "new_mode": 33188,
      "new_path": "gcc/cp/decl.cc"
    }
  ]
}
