)]}'
{
  "commit": "e61b4af73de761ca2b877b09c1ad710f44ba0f54",
  "tree": "b82ac5f4a15dca00cd1231e162d73176af548b8a",
  "parents": [
    "9f7393d8fc8b79a92b027cd8ac6fda9441d3fff9"
  ],
  "author": {
    "name": "Simon Marchi",
    "email": "simon.marchi@polymtl.ca",
    "time": "Sun Feb 04 13:10:28 2018 -0500"
  },
  "committer": {
    "name": "Simon Marchi",
    "email": "simon.marchi@polymtl.ca",
    "time": "Sun Feb 04 22:21:08 2018 -0500"
  },
  "message": "Don\u0027t trust templates from DW_AT_name\n\nWith gcc 8 (and clang?) the non-type template arguments (constants)\ndon\u0027t include the integer suffixes anymore.  For example, with\n\n  template \u003cunsigned int X\u003e\n  class foo\n  {\n    ...\n  };\n\n  foo\u003c10u\u003e\n\nused to generate foo\u003c10u\u003e as the DW_AT_name, now it generates foo\u003c10\u003e.\nThis is a problem when things look up \"foo\u003c10u\u003e\" and don\u0027t find it.  For\nexample, when trying to print an instance of that class through a base\nclass pointer, GDB would first demangle the symbol for that class\u0027\nvtable, which would give \"vtable for foo\u003c10u\u003e\".  GDB would then take the\n\"foo\u003c10u\u003e\" from that string and try to look up the type.  With the new\nDW_AT_name, it would fail to look it up, and fail to print the value.\n\nThis patch makes it so GDB doesn\u0027t trust the templates contained in\nDW_AT_name.  Instead, it re-builds the name from the DW_AT_template_*\nDIES in the format that it expects (with the integer suffixes).\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c4c0918e26afe58dc488f0d1ba2a39af4b1bddd7",
      "old_mode": 33188,
      "old_path": "gdb/c-valprint.c",
      "new_id": "12b908652c9097d15101b12017950b09ed312db0",
      "new_mode": 33188,
      "new_path": "gdb/c-valprint.c"
    },
    {
      "type": "modify",
      "old_id": "51d0f39f75e92a004d44062c65f6aaf1a293e275",
      "old_mode": 33188,
      "old_path": "gdb/dwarf2read.c",
      "new_id": "1960ccc4d10fed454afff1009102f4720a6ee3d2",
      "new_mode": 33188,
      "new_path": "gdb/dwarf2read.c"
    },
    {
      "type": "modify",
      "old_id": "3104e0b45e10955a8d503ad89581b25c6ebb9aab",
      "old_mode": 33188,
      "old_path": "gdb/valprint.c",
      "new_id": "0105cdea9484cdb946b1171c328529f71d985025",
      "new_mode": 33188,
      "new_path": "gdb/valprint.c"
    },
    {
      "type": "modify",
      "old_id": "f005c31f87168d5c17e3c4cef9f6f7b829a397b0",
      "old_mode": 33188,
      "old_path": "gdb/valprint.h",
      "new_id": "248d9304997d5c14303132a79b21d79e9729806e",
      "new_mode": 33188,
      "new_path": "gdb/valprint.h"
    }
  ]
}
