)]}'
{
  "commit": "ba005d32b0f3d6a8f7a35b649ffe46304bd7d6fb",
  "tree": "3a956750c89dcf43a6df7b02431ec5869a1ee7dc",
  "parents": [
    "0dac4dded2b023080236474d4aea442d764a5049"
  ],
  "author": {
    "name": "Tom Tromey",
    "email": "tromey@adacore.com",
    "time": "Tue Apr 15 09:08:52 2025 -0600"
  },
  "committer": {
    "name": "Tom Tromey",
    "email": "tromey@adacore.com",
    "time": "Tue May 06 09:01:54 2025 -0600"
  },
  "message": "Handle dynamic field properties\n\nI found a situation where gdb could not properly decode an Ada type.\nIn this first scenario, the discriminant of a type is a bit-field.\nPROP_ADDR_OFFSET does not handle this situation, because it only\nallows an offset -- not a bit-size.\n\nMy original approach to this just added a bit size as well, but after\nsome discussion with Eric Botcazou, we found another failing case: a\ntagged type can have a second discriminant that appears at a variable\noffset.\n\nSo, this patch changes this code to accept a general \u0027struct field\u0027\ninstead of trying to replicate the field-finding machinery by itself.\n\nThis is handled at property-evaluation time by simply using a \u0027field\u0027\nand resolving its dynamic properties.  Then the usual field-extraction\nfunction is called to get the value.\n\nBecause the baton now just holds a field, I renamed PROP_ADDR_OFFSET\nto PROP_FIELD.\n\nThe DWARF reader now defers filling in the property baton until the\nfields have been attached to the type.\n\nFinally, I noticed that if the discriminant field has a biased\nrepresentation, then unpack_field_as_long would not handle this\neither.  This bug is also fixed here, and the test case checks this.\n\nRegression tested on x86-64 Fedora 41.\n\n\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5338dfe4b45c69bebe6d51856dd106ce45b98535",
      "old_mode": 33188,
      "old_path": "gdb/dwarf2/cu.h",
      "new_id": "9f7678936a74227f349fb890de99c9268f149f7b",
      "new_mode": 33188,
      "new_path": "gdb/dwarf2/cu.h"
    },
    {
      "type": "modify",
      "old_id": "e1a5fdd5b8d266c8c4e6adeffa7d2696370d0495",
      "old_mode": 33188,
      "old_path": "gdb/dwarf2/loc.c",
      "new_id": "fa1b4eb3123bbfbbb5e216966651440079b36e3b",
      "new_mode": 33188,
      "new_path": "gdb/dwarf2/loc.c"
    },
    {
      "type": "modify",
      "old_id": "02304121a881394805d7d8390fb23b8df1290e9d",
      "old_mode": 33188,
      "old_path": "gdb/dwarf2/loc.h",
      "new_id": "be70704e7d7de738206c865ef4f718871228e37c",
      "new_mode": 33188,
      "new_path": "gdb/dwarf2/loc.h"
    },
    {
      "type": "modify",
      "old_id": "f90b22781e0dd6daf7852a3966b6357f96cc000a",
      "old_mode": 33188,
      "old_path": "gdb/dwarf2/read.c",
      "new_id": "6f380acbd345fbd16d8dfddf3ec230a99ce90874",
      "new_mode": 33188,
      "new_path": "gdb/dwarf2/read.c"
    },
    {
      "type": "modify",
      "old_id": "0f01c97169ff09c6eda680c0911dfcbc46cc802a",
      "old_mode": 33188,
      "old_path": "gdb/gdbtypes.c",
      "new_id": "fb1e8cb09637f15876fa7d2b0393955a66a43a0a",
      "new_mode": 33188,
      "new_path": "gdb/gdbtypes.c"
    },
    {
      "type": "modify",
      "old_id": "f973ba6e3c851a6f2d256a33519375e2abc6409c",
      "old_mode": 33188,
      "old_path": "gdb/gdbtypes.h",
      "new_id": "52d03c40466deed229816c1e18376146a0487f80",
      "new_mode": 33188,
      "new_path": "gdb/gdbtypes.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d0bcdbd4a80b4e344ff2d708076ddcaca079be3b",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.ada/packed_record_2.exp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e528ecf749abe20a40da7d24897b53676859cbdb",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.ada/packed_record_2/exam.adb"
    },
    {
      "type": "modify",
      "old_id": "d8d57faaba16f652321367789aa31cb84d17d105",
      "old_mode": 33188,
      "old_path": "gdb/value.c",
      "new_id": "41dce7798f6d141665a7e8f5c31d55e04effb894",
      "new_mode": 33188,
      "new_path": "gdb/value.c"
    }
  ]
}
