)]}'
{
  "commit": "4e436fdabe216b5684b4efb6978843b2380fe32a",
  "tree": "fab532fa29c1587a0c280189d377f0b8ed333055",
  "parents": [
    "c08ec64081d95b7a9abf35e54efaf44051aea195"
  ],
  "author": {
    "name": "Nils-Christian Kempke",
    "email": "nils-christian.kempke@intel.com",
    "time": "Mon Apr 11 14:06:55 2022 +0200"
  },
  "committer": {
    "name": "Nils-Christian Kempke",
    "email": "nils-christian.kempke@intel.com",
    "time": "Mon Apr 11 14:06:55 2022 +0200"
  },
  "message": "gdb/fortran: fix complex type in Fortran builtin types\n\nBefore this patch things like\n\n  (gdb) ptype complex*8\n  complex*16\n  (gdb) ptype complex*4\n  complex*8\n\nwere possible in GDB, which seems confusing for a user.  The reason\nis a mixup in the implementation of the Fortran COMPLEX type.  In\nFortran the \"*X\" after a type would normally (I don\u0027t think this\nis language required) specify the type\u0027s size in memory.  For the\nCOMPLEX type the kind parameters usually (at least for GNU, Intel, Flang)\nspecify not the size of the whole type but the size of the individual\ntwo REALs used to form the COMPLEX.  Thus, a COMPLEX*4 will usually\nconsist of two REAL*4s.  Internally this type was represented by a\nbuiltin_complex_s8 - but here I think the s8 actually meant the raw\nsize of the type.  This is confusing and I renamed the types (e.g.\nbuilting_complex_s8 became builtin_complex_s4 according to its most\ncommon useage) and their printed names to their language equivalent.\nAdditionally, I added the default COMPLEX type \"COMPLEX\" being the same\nas a COMPLEX*4 (as is normally the case) and removed the latter.  I added\na few tests for this new behavior as well.\n\nThe new behavior is\n\n  (gdb) ptype complex*8\n  complex*8\n  (gdb) ptype complex*4\n  complex*4\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d6103a06e443ef6a777ca401ffc5fec688ec2675",
      "old_mode": 33188,
      "old_path": "gdb/f-exp.y",
      "new_id": "a768134983b0bc40f1e9d273b8fef5e2dceb903b",
      "new_mode": 33188,
      "new_path": "gdb/f-exp.y"
    },
    {
      "type": "modify",
      "old_id": "e329f0646e251d3691b43089f9ea477012dc638d",
      "old_mode": 33188,
      "old_path": "gdb/f-lang.c",
      "new_id": "3c3ca0c0d7116689e3f53b1dc3f16b8eb24199ab",
      "new_mode": 33188,
      "new_path": "gdb/f-lang.c"
    },
    {
      "type": "modify",
      "old_id": "512325f1a11ee367def2ab9442aa3c8c3d750aee",
      "old_mode": 33188,
      "old_path": "gdb/f-lang.h",
      "new_id": "4e415f21f43717f110156e5e3e0ccaf52c2667ad",
      "new_mode": 33188,
      "new_path": "gdb/f-lang.h"
    },
    {
      "type": "modify",
      "old_id": "625e02196adc7af1261734931d0dfb83df174bf7",
      "old_mode": 33188,
      "old_path": "gdb/testsuite/gdb.fortran/types.exp",
      "new_id": "4205d308be77f6f720c870c47ce183921b770dda",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.fortran/types.exp"
    }
  ]
}
