diff options
| author | Reid Kleckner <rnk@google.com> | 2019-08-30 22:25:55 +0000 |
|---|---|---|
| committer | Reid Kleckner <rnk@google.com> | 2019-08-30 22:25:55 +0000 |
| commit | 657a06c61928eb0ac36f58b5da71fc43785324f4 (patch) | |
| tree | 658bf3bd09e69a273feab38b7536af895b983a68 /llvm/lib/Target/X86/MCTargetDesc | |
| parent | 0300c3536a33c2be5dea1577702d0d052b95da18 (diff) | |
| download | bcm5719-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.cpp | 5 |
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() { |

