diff options
author | Adrian Prantl <aprantl@apple.com> | 2014-12-16 00:20:49 +0000 |
---|---|---|
committer | Adrian Prantl <aprantl@apple.com> | 2014-12-16 00:20:49 +0000 |
commit | b9fa945d510cd0d84d6f9a72014e477b4375fc4d (patch) | |
tree | 3480ce241d7dc9f0374741fc05e9ed1fe4ecbfdc /llvm/lib/CodeGen/AsmPrinter | |
parent | d9a00a9c3840a5b7790962bff7bc183a32d024e1 (diff) | |
download | bcm5719-llvm-b9fa945d510cd0d84d6f9a72014e477b4375fc4d.tar.gz bcm5719-llvm-b9fa945d510cd0d84d6f9a72014e477b4375fc4d.zip |
ARM/AArch64: Attach the FrameSetup MIFlag to CFI instructions.
Debug info marks the first instruction without the FrameSetup flag
as being the end of the function prologue. Any CFI instructions in the
middle of the function prologue would cause debug info to end the prologue
too early and worse, attach the line number of the CFI instruction, which
incidentally is often 0.
llvm-svn: 224294
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index b7e9d656e90..5413c9b5aff 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -1117,8 +1117,12 @@ static DebugLoc findPrologueEndLoc(const MachineFunction *MF) { for (const auto &MBB : *MF) for (const auto &MI : MBB) if (!MI.isDebugValue() && !MI.getFlag(MachineInstr::FrameSetup) && - !MI.getDebugLoc().isUnknown()) + !MI.getDebugLoc().isUnknown()) { + // Did the target forget to set the FrameSetup flag for CFI insns? + assert(!MI.isCFIInstruction() && + "First non-frame-setup instruction is a CFI instruction."); return MI.getDebugLoc(); + } return DebugLoc(); } |