瀏覽代碼

LibDebug: Keep track of the SetEpilogueBegin LineProgram OpCode

This prevents a crash with clang 16.
Andrew Kaster 2 年之前
父節點
當前提交
aa0ed4ab4e
共有 2 個文件被更改,包括 5 次插入0 次删除
  1. 4 0
      Userland/Libraries/LibDebug/Dwarf/LineProgram.cpp
  2. 1 0
      Userland/Libraries/LibDebug/Dwarf/LineProgram.h

+ 4 - 0
Userland/Libraries/LibDebug/Dwarf/LineProgram.cpp

@@ -252,6 +252,10 @@ ErrorOr<void> LineProgram::handle_standard_opcode(u8 opcode)
         m_prologue_end = true;
         break;
     }
+    case StandardOpcodes::SetEpilogueBegin: {
+        m_epilogue_begin = true;
+        break;
+    }
     default:
         dbgln("Unhandled LineProgram opcode {}", opcode);
         VERIFY_NOT_REACHED();

+ 1 - 0
Userland/Libraries/LibDebug/Dwarf/LineProgram.h

@@ -190,6 +190,7 @@ private:
     bool m_is_statement { false };
     bool m_basic_block { false };
     bool m_prologue_end { false };
+    bool m_epilogue_begin { false };
 
     Vector<LineInfo> m_lines;
 };