)]}'
{
  "commit": "08106042d9f5fdff60c129bf33190639f1a98b2a",
  "tree": "4921381e92dc6ef37a41a82b82c989f532f435cf",
  "parents": [
    "602707187fa54572a0addd5049d135f20a5b592b"
  ],
  "author": {
    "name": "Andrew Burgess",
    "email": "aburgess@redhat.com",
    "time": "Thu May 19 13:20:17 2022 +0100"
  },
  "committer": {
    "name": "Andrew Burgess",
    "email": "aburgess@redhat.com",
    "time": "Thu Jul 21 15:19:42 2022 +0100"
  },
  "message": "gdb: move the type cast into gdbarch_tdep\n\nI built GDB for all targets on a x86-64/GNU-Linux system, and\nthen (accidentally) passed GDB a RISC-V binary, and asked GDB to \"run\"\nthe binary on the native target.  I got this error:\n\n  (gdb) show architecture\n  The target architecture is set to \"auto\" (currently \"i386\").\n  (gdb) file /tmp/hello.rv32.exe\n  Reading symbols from /tmp/hello.rv32.exe...\n  (gdb) show architecture\n  The target architecture is set to \"auto\" (currently \"riscv:rv32\").\n  (gdb) run\n  Starting program: /tmp/hello.rv32.exe\n  ../../src/gdb/i387-tdep.c:596: internal-error: i387_supply_fxsave: Assertion `tdep-\u003est0_regnum \u003e\u003d I386_ST0_REGNUM\u0027 failed.\n\nWhat\u0027s going on here is this; initially the architecture is i386, this\nis based on the default architecture, which is set based on the native\ntarget.  After loading the RISC-V executable the architecture of the\ncurrent inferior is updated based on the architecture of the\nexecutable.\n\nWhen we \"run\", GDB does a fork \u0026 exec, with the inferior being\ncontrolled through ptrace.  GDB sees an initial stop from the inferior\nas soon as the inferior comes to life.  In response to this stop GDB\nends up calling save_stop_reason (linux-nat.c), which ends up trying\nto read register from the inferior, to do this we end up calling\ntarget_ops::fetch_registers, which, for the x86-64 native target,\ncalls amd64_linux_nat_target::fetch_registers.\n\nAfter this I eventually end up in i387_supply_fxsave, different x86\nbased targets will end in different functions to fetch registers, but\nit doesn\u0027t really matter which function we end up in, the problem is\nthis line, which is repeated in many places:\n\n  i386_gdbarch_tdep *tdep \u003d (i386_gdbarch_tdep *) gdbarch_tdep (arch);\n\nThe problem here is that the ARCH in this line comes from the current\ninferior, which, as we discussed above, will be a RISC-V gdbarch, the\ntdep field will actually be of type riscv_gdbarch_tdep, not\ni386_gdbarch_tdep.  After this cast we are relying on undefined\nbehaviour, in my case I happen to trigger an assert, but this might\nnot always be the case.\n\nThe thing I tried that exposed this problem was of course, trying to\nstart an executable of the wrong architecture on a native target.  I\ndon\u0027t think that the correct solution for this problem is to detect,\nat the point of cast, that the gdbarch_tdep object is of the wrong\ntype, but, I did wonder, is there a way that we could protect\nourselves from incorrectly casting the gdbarch_tdep object?\n\nI think that there is something we can do here, and this commit is the\nfirst step in that direction, though no actual check is added by this\ncommit.\n\nThis commit can be split into two parts:\n\n (1) In gdbarch.h and arch-utils.c.  In these files I have modified\n gdbarch_tdep (the function) so that it now takes a template argument,\n like this:\n\n    template\u003ctypename TDepType\u003e\n    static inline TDepType *\n    gdbarch_tdep (struct gdbarch *gdbarch)\n    {\n      struct gdbarch_tdep *tdep \u003d gdbarch_tdep_1 (gdbarch);\n      return static_cast\u003cTDepType *\u003e (tdep);\n    }\n\n  After this change we are no better protected, but the cast is now\n  done within the gdbarch_tdep function rather than at the call sites,\n  this leads to the second, much larger change in this commit,\n\n  (2) Everywhere gdbarch_tdep is called, we make changes like this:\n\n    -  i386_gdbarch_tdep *tdep \u003d (i386_gdbarch_tdep *) gdbarch_tdep (arch);\n    +  i386_gdbarch_tdep *tdep \u003d gdbarch_tdep\u003ci386_gdbarch_tdep\u003e (arch);\n\nThere should be no functional change after this commit.\n\nIn the next commit I will build on this change to add an assertion in\ngdbarch_tdep that checks we are casting to the correct type.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d8cf6227e73bdc463744a6d74ac224a808afa994",
      "old_mode": 33188,
      "old_path": "gdb/aarch64-fbsd-nat.c",
      "new_id": "708ddc40d58877a0a892191fe501b54445d861a8",
      "new_mode": 33188,
      "new_path": "gdb/aarch64-fbsd-nat.c"
    },
    {
      "type": "modify",
      "old_id": "891546b3c640c9343181dfe0b2230ded203b78cf",
      "old_mode": 33188,
      "old_path": "gdb/aarch64-fbsd-tdep.c",
      "new_id": "4a6b4115234c698a3a1021a3408b165674a4350e",
      "new_mode": 33188,
      "new_path": "gdb/aarch64-fbsd-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "d58ad0143a2d31de9e9fb4f89c6f87a787a22e1b",
      "old_mode": 33188,
      "old_path": "gdb/aarch64-linux-nat.c",
      "new_id": "a457fcd48ad878ddf3d4210db453b23cec7d0ea4",
      "new_mode": 33188,
      "new_path": "gdb/aarch64-linux-nat.c"
    },
    {
      "type": "modify",
      "old_id": "35e56b528ba43442cd603a86e575d9fb374d381d",
      "old_mode": 33188,
      "old_path": "gdb/aarch64-linux-tdep.c",
      "new_id": "15773c75da8375f4ab4744e5712930dd9f6c7d6e",
      "new_mode": 33188,
      "new_path": "gdb/aarch64-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "507b7fc5a51ed290fee64d802e50001bb9e71f03",
      "old_mode": 33188,
      "old_path": "gdb/aarch64-newlib-tdep.c",
      "new_id": "c9236b17801c7e76ea80daf67f13c85dd68be4be",
      "new_mode": 33188,
      "new_path": "gdb/aarch64-newlib-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "15b577c8a00af65ef400334af9498577efbc1f52",
      "old_mode": 33188,
      "old_path": "gdb/aarch64-tdep.c",
      "new_id": "8670197a88892b9473fad2d89da93dcb659e9b3b",
      "new_mode": 33188,
      "new_path": "gdb/aarch64-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "d47f5132592a4c383fac43c5ac386febd0eed03b",
      "old_mode": 33188,
      "old_path": "gdb/aix-thread.c",
      "new_id": "4c9195a7f12c98ea75b533bfb1a69bd8b8ca5ece",
      "new_mode": 33188,
      "new_path": "gdb/aix-thread.c"
    },
    {
      "type": "modify",
      "old_id": "6cea40d3f34bc595f9f488e31d982259cfc53c4c",
      "old_mode": 33188,
      "old_path": "gdb/alpha-linux-tdep.c",
      "new_id": "c103aafc1ff680edbd1948fcefb706b38362b009",
      "new_mode": 33188,
      "new_path": "gdb/alpha-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "6b604cfa9c6d3477fc1114d0603f67c10863ef5c",
      "old_mode": 33188,
      "old_path": "gdb/alpha-netbsd-tdep.c",
      "new_id": "72d7019377f31fa8760e6b88f98859a695c28852",
      "new_mode": 33188,
      "new_path": "gdb/alpha-netbsd-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "8baa8cc32c466e23c37446a4381a328829b8f524",
      "old_mode": 33188,
      "old_path": "gdb/alpha-obsd-tdep.c",
      "new_id": "c0d672c3f72915dc064889adb7dd9f7d36cf2abd",
      "new_mode": 33188,
      "new_path": "gdb/alpha-obsd-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "f04bad6bed8476940dbd565b1994a18dc5b887fc",
      "old_mode": 33188,
      "old_path": "gdb/alpha-tdep.c",
      "new_id": "44efc8e4bbb5b65ca12fdbbdf5dbd76ab2e89647",
      "new_mode": 33188,
      "new_path": "gdb/alpha-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "74906f6a02d97f5f7756b89a50f765c74de8253f",
      "old_mode": 33188,
      "old_path": "gdb/amd64-darwin-tdep.c",
      "new_id": "7fc35536bc6e46e37142168e885eeeab519aae2f",
      "new_mode": 33188,
      "new_path": "gdb/amd64-darwin-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "d125d582a214c24046164713b96ef128680a167b",
      "old_mode": 33188,
      "old_path": "gdb/amd64-fbsd-nat.c",
      "new_id": "7023a182e78afd78f22ad096b31a81d4f2f75e7c",
      "new_mode": 33188,
      "new_path": "gdb/amd64-fbsd-nat.c"
    },
    {
      "type": "modify",
      "old_id": "55764beaad22fe5f28b60eead893cc602f7204f7",
      "old_mode": 33188,
      "old_path": "gdb/amd64-fbsd-tdep.c",
      "new_id": "8e40283d8380dcb38614374d1958c27c09ae77e5",
      "new_mode": 33188,
      "new_path": "gdb/amd64-fbsd-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "18a0c3f39418d1ad9df65ed2537712d8e6e95b2e",
      "old_mode": 33188,
      "old_path": "gdb/amd64-linux-tdep.c",
      "new_id": "35703a36785b5102b67b49d504e99b27ea7b645b",
      "new_mode": 33188,
      "new_path": "gdb/amd64-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "3ab0267060d3b71a1ce19c5deadcdfe5a4ef4474",
      "old_mode": 33188,
      "old_path": "gdb/amd64-netbsd-tdep.c",
      "new_id": "59d723caa55509f43274c765ba0a03fac17a3079",
      "new_mode": 33188,
      "new_path": "gdb/amd64-netbsd-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "3cb64fe924f028f4d74e0d8c7c634abafde4e289",
      "old_mode": 33188,
      "old_path": "gdb/amd64-obsd-tdep.c",
      "new_id": "f0bc7c474a64d6efcae370e0c42a886dfd1edc45",
      "new_mode": 33188,
      "new_path": "gdb/amd64-obsd-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "22a48e476a5c8a01410258423c27e9b74b1016fc",
      "old_mode": 33188,
      "old_path": "gdb/amd64-sol2-tdep.c",
      "new_id": "ce96eb045ec4dcb48c278c4459f361f8bd062384",
      "new_mode": 33188,
      "new_path": "gdb/amd64-sol2-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "b95ab1e87b81db582768ca5696d588988f6730d1",
      "old_mode": 33188,
      "old_path": "gdb/amd64-tdep.c",
      "new_id": "0563b32a54bf1eb9288b59d4c16c27a18fd0d551",
      "new_mode": 33188,
      "new_path": "gdb/amd64-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "eca94f2ea7c6b0ff04f39a762ff663a3ead941ee",
      "old_mode": 33188,
      "old_path": "gdb/amd64-windows-tdep.c",
      "new_id": "a9aef0bab88a8355c2eebde26a368d535642dff7",
      "new_mode": 33188,
      "new_path": "gdb/amd64-windows-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "04ca38f13555cf88b0e7a735cd9ef43a0acbd358",
      "old_mode": 33188,
      "old_path": "gdb/arc-linux-tdep.c",
      "new_id": "d72bdaf24acfbf45bca750f2d486ed945d5fdd8c",
      "new_mode": 33188,
      "new_path": "gdb/arc-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "7d7406c501cf4ddc3d66a083c08381807ed7f04c",
      "old_mode": 33188,
      "old_path": "gdb/arc-newlib-tdep.c",
      "new_id": "2499dff43eca156458ac9d3719a8e6ed152b0888",
      "new_mode": 33188,
      "new_path": "gdb/arc-newlib-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "2f96e24a73414589684c41020d3c0cd0d2b1c0ad",
      "old_mode": 33188,
      "old_path": "gdb/arc-tdep.c",
      "new_id": "11e0551266ea82e93fc24f0f9a0d44e9b482a5ef",
      "new_mode": 33188,
      "new_path": "gdb/arc-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "ff946ee37671e4530ea6ff75b9957decf89ff326",
      "old_mode": 33188,
      "old_path": "gdb/arch-utils.c",
      "new_id": "360b8d694beae7b83ad54a96705046370b30d13e",
      "new_mode": 33188,
      "new_path": "gdb/arch-utils.c"
    },
    {
      "type": "modify",
      "old_id": "a306e1e2ee05a145f9d0cea06373e741a578fe9c",
      "old_mode": 33188,
      "old_path": "gdb/arm-fbsd-nat.c",
      "new_id": "b161b7ed9080895702dd253f246b484f5f7e66d7",
      "new_mode": 33188,
      "new_path": "gdb/arm-fbsd-nat.c"
    },
    {
      "type": "modify",
      "old_id": "483820c1092ad0c5e264ad5dc48bb9d4ef92752e",
      "old_mode": 33188,
      "old_path": "gdb/arm-fbsd-tdep.c",
      "new_id": "61c8f0cecad433bb5ccb7936126797e7cac47eec",
      "new_mode": 33188,
      "new_path": "gdb/arm-fbsd-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "8dac8456282c332aecb58744a9914880f336c12c",
      "old_mode": 33188,
      "old_path": "gdb/arm-linux-nat.c",
      "new_id": "0188c78fe7a08155548a1116b3697129e736d661",
      "new_mode": 33188,
      "new_path": "gdb/arm-linux-nat.c"
    },
    {
      "type": "modify",
      "old_id": "33406f90b15ccf319087539e8b486a61a6df7efe",
      "old_mode": 33188,
      "old_path": "gdb/arm-linux-tdep.c",
      "new_id": "1feb69fe6dd1d65fff0c19bca7752f3f30f6263c",
      "new_mode": 33188,
      "new_path": "gdb/arm-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "764bbe8cd3d50c590339596bfbb6243db37e0602",
      "old_mode": 33188,
      "old_path": "gdb/arm-netbsd-nat.c",
      "new_id": "251159154c92be8692e73f3b4d3fd3ea96b46e97",
      "new_mode": 33188,
      "new_path": "gdb/arm-netbsd-nat.c"
    },
    {
      "type": "modify",
      "old_id": "a6a78f0b8930381a0bf62ffdd05f51d25c89e721",
      "old_mode": 33188,
      "old_path": "gdb/arm-netbsd-tdep.c",
      "new_id": "aa4d15df4c62582edec2a456fe61f8a7317c23f4",
      "new_mode": 33188,
      "new_path": "gdb/arm-netbsd-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "510ce4fa3c56b6c2ced6a8bc56ec4e4a707dd0ae",
      "old_mode": 33188,
      "old_path": "gdb/arm-none-tdep.c",
      "new_id": "0d5eb04826e9403e0c952d55cc64f1f44a26d6c8",
      "new_mode": 33188,
      "new_path": "gdb/arm-none-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "37cb30b9a2aae36c2e46bc06c963098273fcd2fc",
      "old_mode": 33188,
      "old_path": "gdb/arm-obsd-tdep.c",
      "new_id": "634c76b7561623884efd80b619d131a2fc0ffc84",
      "new_mode": 33188,
      "new_path": "gdb/arm-obsd-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "607d6de2a0911391d9ed201bb02fc4d7b8fbb846",
      "old_mode": 33188,
      "old_path": "gdb/arm-tdep.c",
      "new_id": "d3b4fce98a3f46e642506052a5d8ab2a11f44c57",
      "new_mode": 33188,
      "new_path": "gdb/arm-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "354c6fbca7fc4ec1a2483db7276b09e68dc5facf",
      "old_mode": 33188,
      "old_path": "gdb/arm-wince-tdep.c",
      "new_id": "5063b308809407418caaa4b81572bd906c1777b9",
      "new_mode": 33188,
      "new_path": "gdb/arm-wince-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "e103045cb235e3009f7f91692bfc6f19d101ce08",
      "old_mode": 33188,
      "old_path": "gdb/avr-tdep.c",
      "new_id": "4722f7ee748a8452c2cdb023287b457aef687d74",
      "new_mode": 33188,
      "new_path": "gdb/avr-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "573eed94793bba52272e4c892bf840ee33493292",
      "old_mode": 33188,
      "old_path": "gdb/bfin-tdep.c",
      "new_id": "f232e22c37c216d476f764fe927fd37e19b448a3",
      "new_mode": 33188,
      "new_path": "gdb/bfin-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "f55f9b9083cea970ee20a91102825bd15b759b07",
      "old_mode": 33188,
      "old_path": "gdb/cris-linux-tdep.c",
      "new_id": "b3ed7450e996489d198eb152ee4f7eed641f71a7",
      "new_mode": 33188,
      "new_path": "gdb/cris-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "efd728a522977cc6400579b70445519fdabf88bd",
      "old_mode": 33188,
      "old_path": "gdb/cris-tdep.c",
      "new_id": "73110d97f2f8951064eea4346db8c1ea46b13b83",
      "new_mode": 33188,
      "new_path": "gdb/cris-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "502b01e33e1449bcb7f38b045bc34e40a2faba92",
      "old_mode": 33188,
      "old_path": "gdb/csky-tdep.c",
      "new_id": "93534306af5f9f626fe8a05be715fd004d8b17ef",
      "new_mode": 33188,
      "new_path": "gdb/csky-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "2328791a540b5577f345f5fcfda1568b5b80fa10",
      "old_mode": 33188,
      "old_path": "gdb/frv-tdep.c",
      "new_id": "34f437764a9fcfaa82f32e551784ff97259c1592",
      "new_mode": 33188,
      "new_path": "gdb/frv-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "f77e313e0dda7d58583e7fe63d39cc535a9dbaeb",
      "old_mode": 33188,
      "old_path": "gdb/ft32-tdep.c",
      "new_id": "024ca47ce4d530c663bc1293b616e8f694a77995",
      "new_mode": 33188,
      "new_path": "gdb/ft32-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "3a7b7f92ef7759ef7085a6a9c3c031ccc5998163",
      "old_mode": 33188,
      "old_path": "gdb/gdbarch.h",
      "new_id": "b2c91db0c4f91e656263a14c83d70c9839b88d03",
      "new_mode": 33188,
      "new_path": "gdb/gdbarch.h"
    },
    {
      "type": "modify",
      "old_id": "34f57d2512a080bf16f474c515fef8a40c9ae305",
      "old_mode": 33188,
      "old_path": "gdb/hppa-bsd-tdep.c",
      "new_id": "c405511529d651e6aa4b877389832d0de091868e",
      "new_mode": 33188,
      "new_path": "gdb/hppa-bsd-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "40e32c115d2f5a583afc15fe34b35c1c95615d72",
      "old_mode": 33188,
      "old_path": "gdb/hppa-linux-tdep.c",
      "new_id": "f17d2ae6b020366c39da57a959da89aa2da7eb9d",
      "new_mode": 33188,
      "new_path": "gdb/hppa-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "f9ececbb04fc531c0ea5b10a6f5da7584b07ed37",
      "old_mode": 33188,
      "old_path": "gdb/hppa-tdep.c",
      "new_id": "9f93a945a6a3ec9b10d8abaa47a72bb023f40f8d",
      "new_mode": 33188,
      "new_path": "gdb/hppa-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "b38f8d05887dc9739eeac684e82bf54e0db337df",
      "old_mode": 33188,
      "old_path": "gdb/i386-bsd-tdep.c",
      "new_id": "dbbd3c786c31612ec67f343595965469efbc3351",
      "new_mode": 33188,
      "new_path": "gdb/i386-bsd-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "dc780583766c09ec481f91fe702f8f3593e89b15",
      "old_mode": 33188,
      "old_path": "gdb/i386-darwin-tdep.c",
      "new_id": "2a9198aceb38a913b52b721b20d9ec91935b59e7",
      "new_mode": 33188,
      "new_path": "gdb/i386-darwin-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "d68498cd5e9d52c075707f0e6a1e36014b6288c6",
      "old_mode": 33188,
      "old_path": "gdb/i386-fbsd-tdep.c",
      "new_id": "b7a524db68c1ba99520cbed9e831873500f792ae",
      "new_mode": 33188,
      "new_path": "gdb/i386-fbsd-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "51c253d2dfe684517d870035e7af08c53622213f",
      "old_mode": 33188,
      "old_path": "gdb/i386-gnu-tdep.c",
      "new_id": "3d97fe36a85d76830f4e40212e56630c75312907",
      "new_mode": 33188,
      "new_path": "gdb/i386-gnu-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "15ac38dc12f6d7f6d3b87d3bc605e8cec021d72f",
      "old_mode": 33188,
      "old_path": "gdb/i386-go32-tdep.c",
      "new_id": "0c0c08e35795709701859a68d59ee23d33c98a40",
      "new_mode": 33188,
      "new_path": "gdb/i386-go32-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "5d7f54194aff0dc7f093998f16bc0aeebeade1eb",
      "old_mode": 33188,
      "old_path": "gdb/i386-linux-tdep.c",
      "new_id": "6033104230f6e8bbbf89d86248cf90549004ffd1",
      "new_mode": 33188,
      "new_path": "gdb/i386-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "2cee1b94760cc4dd5af450b2f2f56935a10c171a",
      "old_mode": 33188,
      "old_path": "gdb/i386-netbsd-tdep.c",
      "new_id": "a9ebc3dd827082eec9f80822b63b2223b6aecf67",
      "new_mode": 33188,
      "new_path": "gdb/i386-netbsd-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "6716329149b6a1f895486a48f6e2d35bea1c2e43",
      "old_mode": 33188,
      "old_path": "gdb/i386-nto-tdep.c",
      "new_id": "259867f262b8b11917cfbc7aadfad44ef9493f30",
      "new_mode": 33188,
      "new_path": "gdb/i386-nto-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "b1f4d6c5e8d4a33f2ceccfb49121a8bf89670e05",
      "old_mode": 33188,
      "old_path": "gdb/i386-obsd-tdep.c",
      "new_id": "798094509c6c8d0a44095f23e758924c770cdb65",
      "new_mode": 33188,
      "new_path": "gdb/i386-obsd-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "e8a3ba20045e2dce01e3118982a64788e8f9d102",
      "old_mode": 33188,
      "old_path": "gdb/i386-sol2-tdep.c",
      "new_id": "5ee108d3578345dd781e2ba3ad32519ec1ae1591",
      "new_mode": 33188,
      "new_path": "gdb/i386-sol2-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "8501e12e24119bb9b546e2d193d6b4db3a2a6018",
      "old_mode": 33188,
      "old_path": "gdb/i386-tdep.c",
      "new_id": "d500f6998c5fd4a1bcb30cbeec606e213fded0c3",
      "new_mode": 33188,
      "new_path": "gdb/i386-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "8e1cc17b91c85436a9563b24c569ba51ccd583e5",
      "old_mode": 33188,
      "old_path": "gdb/i386-windows-tdep.c",
      "new_id": "9eec6e28109812adce45148bbd35b85e4be99a69",
      "new_mode": 33188,
      "new_path": "gdb/i386-windows-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "f056ea5934799460f3c0eee523c5a9523112ca6e",
      "old_mode": 33188,
      "old_path": "gdb/i387-tdep.c",
      "new_id": "42ed4eebc2c629c47cb128bc778c3926680ac532",
      "new_mode": 33188,
      "new_path": "gdb/i387-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "64a57f5bf2fffbdc798a136cace088eef6a154dd",
      "old_mode": 33188,
      "old_path": "gdb/ia64-linux-tdep.c",
      "new_id": "508d4e6f7c61c3b4d8a080fbe11c60fc61630364",
      "new_mode": 33188,
      "new_path": "gdb/ia64-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "b94225b5e1340e2dcf934b3e7b875f01478e79de",
      "old_mode": 33188,
      "old_path": "gdb/ia64-tdep.c",
      "new_id": "b7c1c0decaeb7813dfee6f3efd14c5f47a68c8d4",
      "new_mode": 33188,
      "new_path": "gdb/ia64-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "0a3ea80c173a2578430afc0d24620e2d0ecac1e2",
      "old_mode": 33188,
      "old_path": "gdb/loongarch-linux-tdep.c",
      "new_id": "3a81ff31972de5291ebc5a4e91b9b411c984e85e",
      "new_mode": 33188,
      "new_path": "gdb/loongarch-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "41422f0445dc847f6f9af72f3df12e6c384ca50e",
      "old_mode": 33188,
      "old_path": "gdb/loongarch-tdep.c",
      "new_id": "5711e6f05d701ba120a7231ec7cdc1c776f17e86",
      "new_mode": 33188,
      "new_path": "gdb/loongarch-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "4971be796cd352064ed3dfb7b7ce5bd9c54dab73",
      "old_mode": 33188,
      "old_path": "gdb/m32c-tdep.c",
      "new_id": "37456d16cb369921d0232cb6388627649f30b303",
      "new_mode": 33188,
      "new_path": "gdb/m32c-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "98f1367423eb48ff6eccf0bae616c78744f017a3",
      "old_mode": 33188,
      "old_path": "gdb/m68hc11-tdep.c",
      "new_id": "9eb18b937be13acbc2a88fda830716bdee1bf21e",
      "new_mode": 33188,
      "new_path": "gdb/m68hc11-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "9ef70f0dda4f4290520e0249230d11dcb26999dd",
      "old_mode": 33188,
      "old_path": "gdb/m68k-bsd-tdep.c",
      "new_id": "2614c223f8e8bd75238b3e02e2f7e48fcf176492",
      "new_mode": 33188,
      "new_path": "gdb/m68k-bsd-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "85ad4741b1f0db64190b324dc46088f7e719f020",
      "old_mode": 33188,
      "old_path": "gdb/m68k-linux-tdep.c",
      "new_id": "28401d3ecc6ac46d5fa8d4bbc6895566e7357177",
      "new_mode": 33188,
      "new_path": "gdb/m68k-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "568bde66f931757c969787663ce3d3d4f1e89d99",
      "old_mode": 33188,
      "old_path": "gdb/m68k-tdep.c",
      "new_id": "9e59f5904c3b69621a6558e96b3fbb622c16cf1a",
      "new_mode": 33188,
      "new_path": "gdb/m68k-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "6b3a62391c047ab562bb12b0edb704a970dc0fbe",
      "old_mode": 33188,
      "old_path": "gdb/mep-tdep.c",
      "new_id": "d5ba78c6df9d42567cb7c03a1108a0748820460b",
      "new_mode": 33188,
      "new_path": "gdb/mep-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "d8f90ccf881237660c61e36615f1042e99ab7e32",
      "old_mode": 33188,
      "old_path": "gdb/mips-linux-tdep.c",
      "new_id": "ca313a2827970ab72a0df892346dfecfb7e43cd7",
      "new_mode": 33188,
      "new_path": "gdb/mips-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "071319ccc7376f9b94249ac4a24407bb90c6cc8b",
      "old_mode": 33188,
      "old_path": "gdb/mips-tdep.c",
      "new_id": "982702685843670daef7b4771684c9aaa3cc7379",
      "new_mode": 33188,
      "new_path": "gdb/mips-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "7a41070bb30abd6ecb851c48d5af3a049e51ce1c",
      "old_mode": 33188,
      "old_path": "gdb/mn10300-tdep.c",
      "new_id": "22511d894d42ffb4ede4738a1f534684fc17d6ed",
      "new_mode": 33188,
      "new_path": "gdb/mn10300-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "10fef99c5d769b1b0c820650c71d345a5fe9013d",
      "old_mode": 33188,
      "old_path": "gdb/mn10300-tdep.h",
      "new_id": "87b861ead90c002cc8dc87a15a7b94f324ff06bb",
      "new_mode": 33188,
      "new_path": "gdb/mn10300-tdep.h"
    },
    {
      "type": "modify",
      "old_id": "28268a95139b50baf1335f1c84265069dbe456d7",
      "old_mode": 33188,
      "old_path": "gdb/msp430-tdep.c",
      "new_id": "4ae8b3d56267c7b2a0317d404d5d49052a280122",
      "new_mode": 33188,
      "new_path": "gdb/msp430-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "e95ad7cc6621e9e40b1e1c27b0859ec576af24b6",
      "old_mode": 33188,
      "old_path": "gdb/nds32-tdep.c",
      "new_id": "11bfd2d1f54e48ed282b4493c028503fffb77952",
      "new_mode": 33188,
      "new_path": "gdb/nds32-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "a32f79aa28a296c75a9dc0d2de86194b92ea7e4d",
      "old_mode": 33188,
      "old_path": "gdb/nios2-linux-tdep.c",
      "new_id": "da69638b20bbff0c42e9f240114652fe7e666f45",
      "new_mode": 33188,
      "new_path": "gdb/nios2-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "159d31b2d0fe5a507b1f2abfcf4861aca6f21366",
      "old_mode": 33188,
      "old_path": "gdb/nios2-tdep.c",
      "new_id": "0bad229b44ab00189df24e6f513f3e72947c1e3c",
      "new_mode": 33188,
      "new_path": "gdb/nios2-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "2b906fa69d3170b69474d731ac7f07b0c432e6ec",
      "old_mode": 33188,
      "old_path": "gdb/or1k-tdep.c",
      "new_id": "4699b755d42c7a6707fbf8f3bd70df432281d794",
      "new_mode": 33188,
      "new_path": "gdb/or1k-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "ce045ac55abc657b86baa1904dc82d3b2a1c37d9",
      "old_mode": 33188,
      "old_path": "gdb/ppc-fbsd-nat.c",
      "new_id": "d0a5778e2d3853ff2d6fa069eb5ad0277d1b3e11",
      "new_mode": 33188,
      "new_path": "gdb/ppc-fbsd-nat.c"
    },
    {
      "type": "modify",
      "old_id": "4afcc3019a497ed13a4cff00fbca74c4998c4178",
      "old_mode": 33188,
      "old_path": "gdb/ppc-fbsd-tdep.c",
      "new_id": "f5b482921a71f47b87fa3f52d198cadf6353dd93",
      "new_mode": 33188,
      "new_path": "gdb/ppc-fbsd-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "f959bb0c1ad6e06147b23aa5e36d4473fba054fa",
      "old_mode": 33188,
      "old_path": "gdb/ppc-linux-nat.c",
      "new_id": "de4158c411adddb4a0a5f5a0f9592e6b58c05dc7",
      "new_mode": 33188,
      "new_path": "gdb/ppc-linux-nat.c"
    },
    {
      "type": "modify",
      "old_id": "2f28337bde04127f5fb97e01e9dff7aa4badb245",
      "old_mode": 33188,
      "old_path": "gdb/ppc-linux-tdep.c",
      "new_id": "beef4bd393c9739c5293512c661d9b0557ba2162",
      "new_mode": 33188,
      "new_path": "gdb/ppc-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "fb2dce501a4c70f4a90dec59b42e348eb9cb2ba3",
      "old_mode": 33188,
      "old_path": "gdb/ppc-netbsd-nat.c",
      "new_id": "91f18fbb83f25dbd20d2254a28260f44a4de6649",
      "new_mode": 33188,
      "new_path": "gdb/ppc-netbsd-nat.c"
    },
    {
      "type": "modify",
      "old_id": "cb3d8d5e5df604d242d10e79f560df09919cea0f",
      "old_mode": 33188,
      "old_path": "gdb/ppc-netbsd-tdep.c",
      "new_id": "d8dc494979a117d97b60027144cd6c7aa34fdfb2",
      "new_mode": 33188,
      "new_path": "gdb/ppc-netbsd-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "93e1024b5893d394579840c297b1a8f774f59873",
      "old_mode": 33188,
      "old_path": "gdb/ppc-obsd-nat.c",
      "new_id": "e480f19dc73c58834b13bfa0d2764aebce64a472",
      "new_mode": 33188,
      "new_path": "gdb/ppc-obsd-nat.c"
    },
    {
      "type": "modify",
      "old_id": "a2924e35bbce768e6b2f50c72db535841628c0c7",
      "old_mode": 33188,
      "old_path": "gdb/ppc-obsd-tdep.c",
      "new_id": "90fb5e3a3995776a9a1dd443739fe33eb5d567a9",
      "new_mode": 33188,
      "new_path": "gdb/ppc-obsd-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "91cc28292c9f71bd3c05e0e41f21e0771b297515",
      "old_mode": 33188,
      "old_path": "gdb/ppc-sysv-tdep.c",
      "new_id": "1fe81b95f6c4b2609f53379029487d343ae2a33c",
      "new_mode": 33188,
      "new_path": "gdb/ppc-sysv-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "32931f726918e1d9ca5ca0aba46565aee3b5c0e6",
      "old_mode": 33188,
      "old_path": "gdb/ppc64-tdep.c",
      "new_id": "0437ca7e3f33cbefbc2cc1fb52517113a5780677",
      "new_mode": 33188,
      "new_path": "gdb/ppc64-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "387b8bdbc2fea37e563db0425381c7c2a6634d14",
      "old_mode": 33188,
      "old_path": "gdb/riscv-linux-tdep.c",
      "new_id": "5bda2e5c824d2d6f6e397a6158657290bc12a990",
      "new_mode": 33188,
      "new_path": "gdb/riscv-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "69f2123dcdb9126e63f46904fe1bb55ec3957f3d",
      "old_mode": 33188,
      "old_path": "gdb/riscv-tdep.c",
      "new_id": "2d41be96b20b3cd43cabfa2c98d9eed92ffb3eb6",
      "new_mode": 33188,
      "new_path": "gdb/riscv-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "6ea0473081dae61ad395fdb69d0f627c1555c71c",
      "old_mode": 33188,
      "old_path": "gdb/rl78-tdep.c",
      "new_id": "2462e7a191d15bf24bf74e82fb346e736c069333",
      "new_mode": 33188,
      "new_path": "gdb/rl78-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "f604f7d503e922ee6bec09b59af5373c9b3766ff",
      "old_mode": 33188,
      "old_path": "gdb/rs6000-aix-nat.c",
      "new_id": "cb141427696c1727e05e498727c8251f6959c001",
      "new_mode": 33188,
      "new_path": "gdb/rs6000-aix-nat.c"
    },
    {
      "type": "modify",
      "old_id": "867f21dc6345b14aca9e108686ed152ba0cd4151",
      "old_mode": 33188,
      "old_path": "gdb/rs6000-aix-tdep.c",
      "new_id": "41384993c26ab38acc59c7f222a0a46859d6a3f0",
      "new_mode": 33188,
      "new_path": "gdb/rs6000-aix-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "844d0a4ede24ef369e135e63b06df3bd2401a892",
      "old_mode": 33188,
      "old_path": "gdb/rs6000-lynx178-tdep.c",
      "new_id": "dc13dd3fa73d1f48dab6ef0cea40821390b20d6d",
      "new_mode": 33188,
      "new_path": "gdb/rs6000-lynx178-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "6815dfaa820e3ad413421803290a5027ee8a320c",
      "old_mode": 33188,
      "old_path": "gdb/rs6000-tdep.c",
      "new_id": "640459f1c281ffed518b6d83f920f1feee8bd8d3",
      "new_mode": 33188,
      "new_path": "gdb/rs6000-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "2a24ebba2b60312df3224ab3ad1a0f5ffaa43856",
      "old_mode": 33188,
      "old_path": "gdb/rx-tdep.c",
      "new_id": "c67d4057195de36bb253908576b7e3c9c226a507",
      "new_mode": 33188,
      "new_path": "gdb/rx-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "5be4984fb579efb1272e7487e83fd4333a526379",
      "old_mode": 33188,
      "old_path": "gdb/s390-linux-tdep.c",
      "new_id": "05bf03973fc305cd69fe55987f2c5fee5b170db5",
      "new_mode": 33188,
      "new_path": "gdb/s390-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "14b03a167d7362c26ac6c1b913432f8d5f7fbd89",
      "old_mode": 33188,
      "old_path": "gdb/s390-tdep.c",
      "new_id": "2aeb3a14637c3e74786b5c1d6ba34ab74a7fca1e",
      "new_mode": 33188,
      "new_path": "gdb/s390-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "2975a8f5d3db8e3adac69872dd843a7aa4f707f0",
      "old_mode": 33188,
      "old_path": "gdb/sh-linux-tdep.c",
      "new_id": "f146f023addcc0936979a204c1ff9e7f62c835bf",
      "new_mode": 33188,
      "new_path": "gdb/sh-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "4fbb53b49fffb467fb6d29e6dd70072fa2a830a5",
      "old_mode": 33188,
      "old_path": "gdb/sh-netbsd-tdep.c",
      "new_id": "49760337c4b8e6b3bc5663671c13b3bc84c7b7d1",
      "new_mode": 33188,
      "new_path": "gdb/sh-netbsd-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "2341a9beef62748850b9d352f1bf281e8697079d",
      "old_mode": 33188,
      "old_path": "gdb/sh-tdep.c",
      "new_id": "062df860c817698e3ef20c59279360a2b3140b77",
      "new_mode": 33188,
      "new_path": "gdb/sh-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "18196b2f07506a481d828b975743617de848e19c",
      "old_mode": 33188,
      "old_path": "gdb/sparc-linux-tdep.c",
      "new_id": "66481ea7b8aca2d4fe679315e9970744d1fc4aa5",
      "new_mode": 33188,
      "new_path": "gdb/sparc-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "a97a772dba273a0295982ec77fae65ad7dc6cab3",
      "old_mode": 33188,
      "old_path": "gdb/sparc-netbsd-tdep.c",
      "new_id": "57c178511fa374fd5f4db9fa30cb33c522ba0921",
      "new_mode": 33188,
      "new_path": "gdb/sparc-netbsd-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "28eb6f67601d5d411e0f1c974720446580147ab1",
      "old_mode": 33188,
      "old_path": "gdb/sparc-sol2-tdep.c",
      "new_id": "a92e95ce71b2efe745198adb5e14f5d9b6d0fa8a",
      "new_mode": 33188,
      "new_path": "gdb/sparc-sol2-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "e540263a2fe4091b0eec8b96b085883a390f0fc5",
      "old_mode": 33188,
      "old_path": "gdb/sparc-tdep.c",
      "new_id": "397f5489550953fea6a011f1ac1a9ea9c0321b07",
      "new_mode": 33188,
      "new_path": "gdb/sparc-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "8a2882827723787df6c49180efc50d59ee9ba1e8",
      "old_mode": 33188,
      "old_path": "gdb/sparc64-fbsd-tdep.c",
      "new_id": "76c682fd521e3bfc730fda9d73a3362318e79703",
      "new_mode": 33188,
      "new_path": "gdb/sparc64-fbsd-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "9ea72331e93888d608df835154960cd44e64415d",
      "old_mode": 33188,
      "old_path": "gdb/sparc64-linux-tdep.c",
      "new_id": "f5940cfcdeef8270eae2f0ef6794aaa003ad8103",
      "new_mode": 33188,
      "new_path": "gdb/sparc64-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "29cd3b6f3ba8b19113eea4fd2840c251eba039df",
      "old_mode": 33188,
      "old_path": "gdb/sparc64-netbsd-tdep.c",
      "new_id": "db368118f239029b1a70a28009e4687386f45ae2",
      "new_mode": 33188,
      "new_path": "gdb/sparc64-netbsd-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "05ebbd2e84ab43e9b7782037d10475bfae22b384",
      "old_mode": 33188,
      "old_path": "gdb/sparc64-obsd-tdep.c",
      "new_id": "d6470a51b6598e891c243fc8c0c03c6740fb3d89",
      "new_mode": 33188,
      "new_path": "gdb/sparc64-obsd-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "458f032058273b99929c0eb056028efaba431099",
      "old_mode": 33188,
      "old_path": "gdb/sparc64-sol2-tdep.c",
      "new_id": "e656c359efa98509905ded8f0e70defe4c72a005",
      "new_mode": 33188,
      "new_path": "gdb/sparc64-sol2-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "95496d33ad4cffb1645ad87736bcfcdebf547b73",
      "old_mode": 33188,
      "old_path": "gdb/sparc64-tdep.c",
      "new_id": "5ca5f2dca8c71c0b4e69781d02001b1864d71ced",
      "new_mode": 33188,
      "new_path": "gdb/sparc64-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "5a93294361a5c0acab9bd67f32552ad14cc76451",
      "old_mode": 33188,
      "old_path": "gdb/tic6x-linux-tdep.c",
      "new_id": "b2422d1ccc0e9dc0c29216cd239a495f3621ea75",
      "new_mode": 33188,
      "new_path": "gdb/tic6x-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "3e49030ab1484f397aeb57d100426955a26805c4",
      "old_mode": 33188,
      "old_path": "gdb/tic6x-tdep.c",
      "new_id": "b7efcf18576555371f42e8edd194ff2c35659307",
      "new_mode": 33188,
      "new_path": "gdb/tic6x-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "a67310a2440ed5a8c916e04bb08a92bab8ab8ebd",
      "old_mode": 33188,
      "old_path": "gdb/v850-tdep.c",
      "new_id": "4de5faa6a47c89bb90764cbf4ee0a8924e4dd033",
      "new_mode": 33188,
      "new_path": "gdb/v850-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "9705fa33cc2f52f094d9362224d932ab30d2f6d1",
      "old_mode": 33188,
      "old_path": "gdb/windows-nat.c",
      "new_id": "b62d216a7d3a787c354bcda2eddbac313d4d436d",
      "new_mode": 33188,
      "new_path": "gdb/windows-nat.c"
    },
    {
      "type": "modify",
      "old_id": "5a08824a68009fdf7e3106f5fc0884de475f667d",
      "old_mode": 33188,
      "old_path": "gdb/xtensa-linux-nat.c",
      "new_id": "d005c9d8f78b592788d321caaedd3ad1e5697c83",
      "new_mode": 33188,
      "new_path": "gdb/xtensa-linux-nat.c"
    },
    {
      "type": "modify",
      "old_id": "ef55319fd090221af937cd047184e648dc251065",
      "old_mode": 33188,
      "old_path": "gdb/xtensa-linux-tdep.c",
      "new_id": "600b59b8894667d7a695a0878fa3779495479a76",
      "new_mode": 33188,
      "new_path": "gdb/xtensa-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "b6558838e444dedb2acef2170ff01c2249dd0b57",
      "old_mode": 33188,
      "old_path": "gdb/xtensa-tdep.c",
      "new_id": "f881870e2447d7d549e750f6d925fe83d325762f",
      "new_mode": 33188,
      "new_path": "gdb/xtensa-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "d27e567c358223109897826bd84c1be1a0c2c6ab",
      "old_mode": 33188,
      "old_path": "gdb/z80-tdep.c",
      "new_id": "6a11883e7b44bfac0934863d06cb90181f7bbc00",
      "new_mode": 33188,
      "new_path": "gdb/z80-tdep.c"
    }
  ]
}
