)]}'
{
  "commit": "4dfe212dade71e0e4e5ea4609e403f5e523eeb74",
  "tree": "fc871000e726cc0f2df1f53c357b217e560f9bbb",
  "parents": [
    "31180ba0720a8fdf030881229c6ca84b79c558d7"
  ],
  "author": {
    "name": "Timur Golubovich",
    "email": "timur.golubovich@syntacore.com",
    "time": "Wed Oct 29 15:13:34 2025 +0300"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Oct 29 12:13:34 2025 +0000"
  },
  "message": "[lldb][DWARFASTParserClang] Added a check for the specialization existence (#154123)\n\n[lldb][DWARFASTParserClang] Added a check for the specialization\nexistence\n\nWhile debugging an application with incorrect dwarf information, where\n    DW_TAG_template_value_parameter was lost, I found that lldb does not\ncheck that the corresponding specialization exists. As a result, at the\nstage when ASTImporter works, the type is completed in such a way that\n    it inherits from itself. And during the calculation of layout, an\ninfinite recursion occurs. To catch this error, I added a corresponding\ncheck\nat the stage of restoring the type from dwarf information. I also added\na\ntrivial assert in clang to check that the class does not inherit from\nitself.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "82e9d867c3ac09a745442a3af18ce34fd14aa8f5",
      "old_mode": 33188,
      "old_path": "lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp",
      "new_id": "36bc17680f3fab5b6cf9ba6d2490b6908166559e",
      "new_mode": 33188,
      "new_path": "lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp"
    },
    {
      "type": "modify",
      "old_id": "82dfe7e5407174567949df760d9bc052705c5f26",
      "old_mode": 33188,
      "old_path": "lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp",
      "new_id": "6ec054d5eac05b33e3e297540f504a061cbaca3a",
      "new_mode": 33188,
      "new_path": "lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp"
    },
    {
      "type": "modify",
      "old_id": "eb2e00adba64bde39ca10138060f7eb773f30285",
      "old_mode": 33188,
      "old_path": "lldb/unittests/SymbolFile/DWARF/CMakeLists.txt",
      "new_id": "88492188e794ba71cb204afd232027e4b249ead3",
      "new_mode": 33188,
      "new_path": "lldb/unittests/SymbolFile/DWARF/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "0cae01de2902a15f3c0588bf9903904e072e1f4a",
      "old_mode": 33188,
      "old_path": "lldb/unittests/SymbolFile/DWARF/DWARFASTParserClangTests.cpp",
      "new_id": "1abce6999874ef78485747773065f7ccfe15ad68",
      "new_mode": 33188,
      "new_path": "lldb/unittests/SymbolFile/DWARF/DWARFASTParserClangTests.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "91245f09abbbf120b2b434a289b74a9525f16a11",
      "new_mode": 33188,
      "new_path": "lldb/unittests/SymbolFile/DWARF/Inputs/DW_AT_spec_decl_exists-test.yaml"
    }
  ]
}
