Skip to content
Snippets Groups Projects
Commit c3ab51cd authored by Tom Stellard's avatar Tom Stellard
Browse files

Merging r247435:

------------------------------------------------------------------------
r247435 | david.majnemer | 2015-09-11 13:34:34 -0400 (Fri, 11 Sep 2015) | 8 lines

[X86] Make sure startproc/endproc are paired

We used different conditions to determine if we should emit startproc vs
endproc.  Use the same condition to ensure that they will always be
paired.

This fixes PR24374.

------------------------------------------------------------------------

llvm-svn: 253742
parent 99224f9e
No related branches found
No related tags found
No related merge requests found
...@@ -169,7 +169,7 @@ void WinException::endFunction(const MachineFunction *MF) { ...@@ -169,7 +169,7 @@ void WinException::endFunction(const MachineFunction *MF) {
Asm->OutStreamer->PopSection(); Asm->OutStreamer->PopSection();
} }
if (shouldEmitMoves) if (shouldEmitMoves || shouldEmitPersonality)
Asm->OutStreamer->EmitWinCFIEndProc(); Asm->OutStreamer->EmitWinCFIEndProc();
} }
......
; RUN: llc < %s | FileCheck %s
target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-w64-windows-gnu"
@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @g, i8* null }]
declare i32 @__gxx_personality_seh0(...)
; Function Attrs: nounwind
define void @f() #0 personality i8* bitcast (i32 (...)* @__gxx_personality_seh0 to i8*) {
entry:
invoke void @g()
to label %exit unwind label %lpad
lpad: ; preds = %entry
landingpad { i8*, i32 }
cleanup
unreachable
exit: ; preds = %entry
unreachable
}
; CHECK-LABEL: f:
; CHECK: .seh_proc f
; CHECK: .seh_handler __gxx_personality_seh0, @unwind, @except
; CHECK: callq g
; CHECK: .seh_handlerdata
; CHECK: .seh_endproc
define void @g() {
unreachable
}
; CHECK-LABEL: g:
; CHECK: .seh_proc g
; CHECK: .seh_endproc
attributes #0 = { nounwind }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment