summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/MCTargetDesc
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2019-08-30 22:25:55 +0000
committerReid Kleckner <rnk@google.com>2019-08-30 22:25:55 +0000
commit657a06c61928eb0ac36f58b5da71fc43785324f4 (patch)
tree658bf3bd09e69a273feab38b7536af895b983a68 /llvm/lib/Target/X86/MCTargetDesc
parent0300c3536a33c2be5dea1577702d0d052b95da18 (diff)
downloadbcm5719-llvm-657a06c61928eb0ac36f58b5da71fc43785324f4.tar.gz
bcm5719-llvm-657a06c61928eb0ac36f58b5da71fc43785324f4.zip
[MC] Avoid crashes from improperly nested or wrong target .seh_handlerdata directives
llvm-svn: 370540
Diffstat (limited to 'llvm/lib/Target/X86/MCTargetDesc')
-rw-r--r--llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp
index 796a27a1725..db624378d51 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp
@@ -35,8 +35,9 @@ void X86WinCOFFStreamer::EmitWinEHHandlerData(SMLoc Loc) {
MCStreamer::EmitWinEHHandlerData(Loc);
// We have to emit the unwind info now, because this directive
- // actually switches to the .xdata section!
- EHStreamer.EmitUnwindInfo(*this, getCurrentWinFrameInfo());
+ // actually switches to the .xdata section.
+ if (WinEH::FrameInfo *CurFrame = getCurrentWinFrameInfo())
+ EHStreamer.EmitUnwindInfo(*this, CurFrame);
}
void X86WinCOFFStreamer::EmitWindowsUnwindTables() {
OpenPOWER on IntegriCloud