)]}'
{
  "commit": "1fb43cf75982f17c27ee0c72328de41750213689",
  "tree": "9dbc96b03e4422beaa1f6b223e68e161d3ab9c2c",
  "parents": [
    "22480d7c3977df6a111a1c1ab56982372732f4e5"
  ],
  "author": {
    "name": "Andrew Burgess",
    "email": "aburgess@redhat.com",
    "time": "Wed Mar 16 17:32:25 2022 +0000"
  },
  "committer": {
    "name": "Andrew Burgess",
    "email": "aburgess@redhat.com",
    "time": "Sun Apr 03 17:18:20 2022 +0100"
  },
  "message": "gdb/dwarf: pass an array of values to the dwarf evaluator\n\nWhen we need to evaluate a DWARF expression in order to resolve some\ndynamic property of a type we call the dwarf2_evaluate_property\nfunction, which is declared in gdb/dwarf/loc.h and defined in\ngdb/dwarf/loc.c.\n\nCurrently, this function takes (amongst other things) an argument of\ntype property_addr_info called addr_stack and a boolean called\npush_initial_value.  When push_initial_value then the top value of\naddr_stack is pushed onto the dwarf expression evaluation stack before\nthe expression is evaluated.\n\nSo far this has worked fine, as the only two cases we needed to handle\nare the case the DWARF expression doesn\u0027t require the object\naddress (what the top of addr_stack represents), and the case where\nthe DWARF expression does require the address.\n\nIn the next commit this is going to change.  As we add support for\nFortran assumed rank arrays, we need to start resolving the dynamic\nproperties of arrays.  To do this, we need to push the array rank onto\nthe dwarf expression evaluation stack before the expression is\nevaluated.\n\nThis commit is a refactoring commit aimed at making it easier to\nsupport Fortran assumed rank arrays.  Instead of passing a boolean,\nand using this to decide if we should push the object address or not,\nwe instead pass an array (view) of values that should be pushed to the\ndwarf expression evaluation stack.\n\nIn the couple of places where we previously passed push_initial_value\nas true (mostly this was defaulting to false), we now have to pass the\naddress from the addr_stack as an item in the array view.\n\nIn the next commit, when we want to handle passing the array rank,\nthis will easily be supported too.\n\nThere should be no user visible changes after this commit.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "634b51ef279f69ecbc76dfa74ed4ad215f2b9adc",
      "old_mode": 33188,
      "old_path": "gdb/dwarf2/loc.c",
      "new_id": "bb9778d9edde2f595818cf634025ba7709e069a4",
      "new_mode": 33188,
      "new_path": "gdb/dwarf2/loc.c"
    },
    {
      "type": "modify",
      "old_id": "cf02f609cb05d815824773fe9d7f855a6a2d41ff",
      "old_mode": 33188,
      "old_path": "gdb/dwarf2/loc.h",
      "new_id": "a9834d32066bb5ca5613bd0faf2652fe50ba2983",
      "new_mode": 33188,
      "new_path": "gdb/dwarf2/loc.h"
    },
    {
      "type": "modify",
      "old_id": "1769796ab336225e5a149a6fc9fb6489debb5ece",
      "old_mode": 33188,
      "old_path": "gdb/gdbtypes.c",
      "new_id": "ae3b4cdaa561b7132bc1ece1e1eadebbbb90a817",
      "new_mode": 33188,
      "new_path": "gdb/gdbtypes.c"
    },
    {
      "type": "modify",
      "old_id": "b8640d6f7292dfff8de56db07eab2eb6f33aee5d",
      "old_mode": 33188,
      "old_path": "gdb/gnu-v3-abi.c",
      "new_id": "baf015b9813d33fd6c790e6db2175ac9f6300573",
      "new_mode": 33188,
      "new_path": "gdb/gnu-v3-abi.c"
    }
  ]
}
