diff options
author | Charles Davis <cdavis@mines.edu> | 2011-05-24 21:22:53 +0000 |
---|---|---|
committer | Charles Davis <cdavis@mines.edu> | 2011-05-24 21:22:53 +0000 |
commit | 40de0e013a456971697491b428fb903570e8766e (patch) | |
tree | 77612e0d44b8fee9e4ed35add72d2884ecad3033 | |
parent | ce98deb9f512070fe82518594550dd030b26dd96 (diff) | |
download | external_llvm-40de0e013a456971697491b428fb903570e8766e.zip external_llvm-40de0e013a456971697491b428fb903570e8766e.tar.gz external_llvm-40de0e013a456971697491b428fb903570e8766e.tar.bz2 |
Test basic SEH directive-parsing functionality. Fix a latent bug exposed by
this test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132004 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/MC/MCStreamer.cpp | 3 | ||||
-rw-r--r-- | test/MC/AsmParser/directive_seh.s | 18 |
2 files changed, 20 insertions, 1 deletions
diff --git a/lib/MC/MCStreamer.cpp b/lib/MC/MCStreamer.cpp index 1402033..19aeaaf 100644 --- a/lib/MC/MCStreamer.cpp +++ b/lib/MC/MCStreamer.cpp @@ -21,7 +21,8 @@ using namespace llvm; MCStreamer::MCStreamer(MCContext &Ctx) : Context(Ctx), EmitEHFrame(true), - EmitDebugFrame(false) { + EmitDebugFrame(false), + CurrentW64UnwindInfo(0) { const MCSection *section = NULL; SectionStack.push_back(std::make_pair(section, section)); } diff --git a/test/MC/AsmParser/directive_seh.s b/test/MC/AsmParser/directive_seh.s new file mode 100644 index 0000000..5fd2efa --- /dev/null +++ b/test/MC/AsmParser/directive_seh.s @@ -0,0 +1,18 @@ +# RUN: llvm-mc -triple x86_64-pc-win32 %s | FileCheck %s + +# CHECK: .seh_proc func +# CHECK: .seh_stackalloc 8 +# CHECK: .seh_endprologue +# CHECK: .seh_endproc + + .text + .globl func + .def func; .scl 2; .type 32; .endef + .seh_proc func +func: + subq $8, %rsp + .seh_stackalloc 8 + .seh_endprologue + addq $8, %rsp + ret + .seh_endproc |