aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
diff options
context:
space:
mode:
authorDaniel Paoliello <danpao@microsoft.com>2023-05-16 10:58:10 -0700
committerEli Friedman <efriedma@quicinc.com>2023-05-16 10:58:10 -0700
commitf8499d5709e37b4e9a6d2a39c385cfd2c00bad6e (patch)
tree2ba4ae10b61ffc214ea371078a8c67387c2ed3ef /llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
parent195621aacb96a4e2f49f5d888e2fc7af20e6e797 (diff)
downloadllvm-f8499d5709e37b4e9a6d2a39c385cfd2c00bad6e.zip
llvm-f8499d5709e37b4e9a6d2a39c385cfd2c00bad6e.tar.gz
llvm-f8499d5709e37b4e9a6d2a39c385cfd2c00bad6e.tar.bz2
Emit the correct flags for the PROC CodeView Debug Symbol
The S_LPROC32_ID and S_GPROC32_ID CodeView Debug Symbols have a flags field which LLVM has had the values for (in the ProcSymFlags enum) but has never actually set. These flags are used by Microsoft-internal tooling that leverages debug information to do binary analysis. Modified LLVM to set the correct flags: - ProcSymFlags::HasOptimizedDebugInfo - always set, as this indicates that debug info is present for optimized builds (if debug info is not emitted for optimized builds, then LLVM won't emit a debug symbol at all). - ProcSymFlags::IsNoReturn and ProcSymFlags::IsNoInline - set if the function has the NoReturn or NoInline attributes respectively. - ProcSymFlags::HasFP - set if the function requires a frame pointer (per TargetFrameLowering::hasFP). Per discussion in review, XFAIL'ing lldb test until someone working on lldb has a chance to look at it. Differential Revision: https://reviews.llvm.org/D148761
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h')
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h b/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
index 495822a..29445b3 100644
--- a/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
+++ b/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
@@ -191,6 +191,8 @@ private:
bool HasStackRealignment = false;
bool HaveLineInfo = false;
+
+ bool HasFramePointer = false;
};
FunctionInfo *CurFn = nullptr;