)]}'
{
  "commit": "3396471b4cd4032adcc8eabb46d2a3ab0c876368",
  "tree": "38407aa4e5e42bf1f9865125211cd1f705c249db",
  "parents": [
    "06740cf11f601c6a5a0f3807f37aaac31d13a542"
  ],
  "author": {
    "name": "Nils-Christian Kempke",
    "email": "nils-christian.kempke@intel.com",
    "time": "Mon Mar 21 15:43:38 2022 +0100"
  },
  "committer": {
    "name": "Ijaz, Abdul B",
    "email": "abdul.b.ijaz@intel.com",
    "time": "Fri Dec 29 11:31:10 2023 +0100"
  },
  "message": "dwarf, fortran: add support for DW_TAG_entry_point\n\nFortran provides additional entry points for subroutines and functions.\nThese entry points may use only a subset (or a different set) of the\nparameters of the original subroutine.  The entry points may be described\nvia the DWARF tag DW_TAG_entry_point.\n\nThis commit adds support for parsing the DW_TAG_entry_point DWARF tag.\nCurrently, between ifx/ifort/gfortran, only ifort is actually emitting\nthis tag.  Both, ifx and gfortran use the DW_TAG_subprogram tag as\nworkaround/alternative.  Thus, this patch really only adds more ifort\nsupport.  Even so, some of the attached tests still fail for ifort, due\nto some wrong line info generated for the entry points in ifort.\n\nAfter this patch it is possible to set a breakpoint in gdb with the\nifort compiled example at the entry points \u0027foo\u0027 and \u0027foobar\u0027, which was not\npossible before.\n\nAs gcc and ifx do not emit the tag I also added a test to gdb.dwarf2\nwhich uses some underlying c compiled code and adds some Fortran style DWARF\nto it emitting the DW_TAG_entry_point.  Before this patch it was not\npossible to actually define breakpoint at the entry point tags.\n\nFor gfortran there actually exists a bug on bugzilla, asking for the use\nof DW_TAG_entry_point over DW_TAG_subprogram:\n\nhttps://gcc.gnu.org/bugzilla/show_bug.cgi?id\u003d37134\n\nThis patch was originally posted here\n\nhttps://sourceware.org/legacy-ml/gdb-patches/2017-07/msg00317.html\n\nbut its review/pinging got lost after a while.  I reworked it to fit the\ncurrent GDB.\n\nCo-authored-by: Bernhard Heckel \u003cbernhard.heckel@intel.com\u003e\nCo-authored-by: Tim Wiederhake  \u003ctim.wiederhake@intel.com\u003e\nApproved-by: Tom Tromey \u003ctom@tromey.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3a429fd41b13df33601970fce1729610e7828215",
      "old_mode": 33188,
      "old_path": "gdb/dwarf2/abbrev.c",
      "new_id": "3d6e16ae4111a66f0d09224f51567412fa643d3e",
      "new_mode": 33188,
      "new_path": "gdb/dwarf2/abbrev.c"
    },
    {
      "type": "modify",
      "old_id": "5675ea68bb8d7e6fcaa21e47051c77c3c9cacf39",
      "old_mode": 33188,
      "old_path": "gdb/dwarf2/cooked-index.h",
      "new_id": "3c6b9c35fd5be39383b4865ee023175d44ea884b",
      "new_mode": 33188,
      "new_path": "gdb/dwarf2/cooked-index.h"
    },
    {
      "type": "modify",
      "old_id": "842708a266eec537e09f1c409e6bd4cfb9ce91d1",
      "old_mode": 33188,
      "old_path": "gdb/dwarf2/index-write.c",
      "new_id": "a03320b5820e4083bdfa895619c101f5f396fd2f",
      "new_mode": 33188,
      "new_path": "gdb/dwarf2/index-write.c"
    },
    {
      "type": "modify",
      "old_id": "6d958744461065e4834321f20cfb0094a09574b6",
      "old_mode": 33188,
      "old_path": "gdb/dwarf2/read.c",
      "new_id": "ec7527612d35878c7b337d057bcff865c773ddf4",
      "new_mode": 33188,
      "new_path": "gdb/dwarf2/read.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "87b46911aa592d39ffbce83ebc71b49e5de8e9b9",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.dwarf2/dw2-entry-points.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f361820f72fa4379a4a4a312e9922c6458e5a934",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.dwarf2/dw2-entry-points.exp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "02d7b18230951b76e49fc670d278fe7d367b70b6",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.fortran/entry-point.exp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7b1c7f9921fe190eddedc12d4cd26c83375bdc99",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.fortran/entry-point.f90"
    }
  ]
}
