)]}'
{
  "commit": "b227c79c4331acdf1f1928b7a01ba3c03e00e6cb",
  "tree": "db995bd4955b89798e481b069928ad0e68586ed3",
  "parents": [
    "858392b691d0f02bcb5b094191ea454dbaf49a33"
  ],
  "author": {
    "name": "Richard Biener",
    "email": "rguenther@suse.de",
    "time": "Tue Jan 27 11:29:27 2026 +0100"
  },
  "committer": {
    "name": "Richard Biener",
    "email": "rguenth@gcc.gnu.org",
    "time": "Tue Jan 27 15:59:55 2026 +0100"
  },
  "message": "debug/123376 - mangle decls referenced in initializers early\n\nThe following makes sure to mangle decls referenced in initializers,\neven when of aggregate type, during the early debug phase since\nlater we eventually leave stray supposedly unused CV qualified\ntypes as their own main variant which confuses C++ mangling.  The\ncomment that refers to rtl_for_decl_init punting might be\naccurate, but loc_list_from_tree_1 will happily see to\ncst_pool_loc_descr where constant pool lookup will eventually\ncreate DECL_RTL of referenced symbols, triggering mangling.\n\n\tPR debug/123376\n\t* dwarf2out.cc (tree_add_const_value_attribute): Walk all\n\tinitializers for early mangling of referenced decls.\n\t(mangle_referenced_decls): Also walk subtrees of CONSTRUCTORS.\n\n\t* g++.dg/lto/pr123376_0.C: New testcase.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8c6bab4bdb5e41f78faaf48f8d664ff001819332",
      "old_mode": 33188,
      "old_path": "gcc/dwarf2out.cc",
      "new_id": "345b12134dd68af8d75da3c04a51335ea8524e1c",
      "new_mode": 33188,
      "new_path": "gcc/dwarf2out.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cf892d753ab6e74f64326053e77ee0f25f94df3b",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/g++.dg/lto/pr123376_0.C"
    }
  ]
}
