)]}'
{
  "commit": "a76518cadc5eaa6b6d07334e2b5bc08382aabe49",
  "tree": "effd22b3421d0e9ad8e9a14a090b69ceb5537fb2",
  "parents": [
    "5d24217c2c1c06358168cae65d3ff8632b28cd7d"
  ],
  "author": {
    "name": "David Spickett",
    "email": "david.spickett@linaro.org",
    "time": "Fri May 10 09:20:48 2024 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri May 10 09:20:48 2024 +0100"
  },
  "message": "[lldb][ELF] Return address class map changes from symbol table parsing methods (#91585)\n\nInstead of updating the member of the ObjectFileELF instance. This means\r\nthat if one object file asks another to parse the symbol table, that\r\nfirst object\u0027s can update its address class map with the same changes\r\nthat the other object did.\r\n\r\n(I\u0027m not returning a reference to the other object\u0027s m_address_class_map\r\nmember because there may be other things in there not related to the\r\nsymbol table being parsed)\r\n\r\nThis will fix the code added in\r\nhttps://github.com/llvm/llvm-project/pull/90622 which broke the test\r\n`Expr/TestStringLiteralExpr.test` on 32 bit Arm Linux.\r\n\r\nThis happened because we had the program file, then asked for a better\r\nobject file, which returned the same program file again. This creates a\r\nsecond ObjectFileELF for the same file, so when we tell the second\r\ninstance to parse the symbol table it actually calls into the first\r\ninstance, leaving the address class map of the second instance empty.\r\n\r\nWhich caused us to put an Arm breakpoint instuction at a Thumb return\r\naddress and broke the ability to call mmap.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1646ee9aa34a613055353a2c0669fdf95eb27749",
      "old_mode": 33188,
      "old_path": "lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp",
      "new_id": "d88f2d0830192e29365fcd80bc1708f8e63b50b5",
      "new_mode": 33188,
      "new_path": "lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp"
    },
    {
      "type": "modify",
      "old_id": "bc8e34981a9d873af9126ffed5d1294c4229d4dd",
      "old_mode": 33188,
      "old_path": "lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h",
      "new_id": "716bbe01638f3e8dd953e601eaa87504ecb31bf0",
      "new_mode": 33188,
      "new_path": "lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h"
    }
  ]
}
