projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[TwoAddressInstructionPass] Try 3 Addr Conversion After Commuting.
[oota-llvm.git]
/
test
/
CodeGen
/
X86
/
win_eh_prepare.ll
diff --git
a/test/CodeGen/X86/win_eh_prepare.ll
b/test/CodeGen/X86/win_eh_prepare.ll
index f96fed5095f2f3695ba23c10841a240efd6500e6..3e3f9af058223e8ea61269c7a9938de38608ff88 100644
(file)
--- a/
test/CodeGen/X86/win_eh_prepare.ll
+++ b/
test/CodeGen/X86/win_eh_prepare.ll
@@
-1,4
+1,4
@@
-; RUN: opt -S -winehprepare -mtriple x86_64-pc-windows-msvc < %s | FileCheck %s
+; RUN: opt -S -winehprepare -
dwarfehprepare -
mtriple x86_64-pc-windows-msvc < %s | FileCheck %s
; FIXME: Add and test outlining here.
; FIXME: Add and test outlining here.
@@
-11,7
+11,7
@@
declare i32 @__C_specific_handler(...)
declare i32 @__gxx_personality_seh0(...)
declare i32 @llvm.eh.typeid.for(i8*) readnone nounwind
declare i32 @__gxx_personality_seh0(...)
declare i32 @llvm.eh.typeid.for(i8*) readnone nounwind
-define i32 @use_seh() {
+define i32 @use_seh()
personality i32 (...)* @__C_specific_handler
{
entry:
invoke void @maybe_throw()
to label %cont unwind label %lpad
entry:
invoke void @maybe_throw()
to label %cont unwind label %lpad
@@
-20,7
+20,7
@@
cont:
ret i32 0
lpad:
ret i32 0
lpad:
- %ehvals = landingpad { i8*, i32 }
personality i32 (...)* @__C_specific_handler
+ %ehvals = landingpad { i8*, i32 }
cleanup
catch i8* bitcast (i32 (i8*, i8*)* @filt_g to i8*)
%ehsel = extractvalue { i8*, i32 } %ehvals, 1
cleanup
catch i8* bitcast (i32 (i8*, i8*)* @filt_g to i8*)
%ehsel = extractvalue { i8*, i32 } %ehvals, 1
@@
-36,20
+36,22
@@
eh.resume:
}
define internal i32 @filt_g(i8*, i8*) {
}
define internal i32 @filt_g(i8*, i8*) {
- %g = load i32* @g
+ %g = load i32
, i32
* @g
ret i32 %g
}
; CHECK-LABEL: define i32 @use_seh()
; CHECK: invoke void @maybe_throw()
; CHECK-NEXT: to label %cont unwind label %lpad
ret i32 %g
}
; CHECK-LABEL: define i32 @use_seh()
; CHECK: invoke void @maybe_throw()
; CHECK-NEXT: to label %cont unwind label %lpad
-; CHECK: eh.resume:
-; CHECK-NEXT: unreachable
+; CHECK: landingpad
+; CHECK-NEXT: cleanup
+; CHECK-NEXT: catch
+; CHECK-NEXT: call i8* (...) @llvm.eh.actions({{.*}})
; A MinGW64-ish EH style. It could happen if a binary uses both MSVC CRT and
; mingw CRT and is linked with LTO.
; A MinGW64-ish EH style. It could happen if a binary uses both MSVC CRT and
; mingw CRT and is linked with LTO.
-define i32 @use_gcc() {
+define i32 @use_gcc()
personality i32 (...)* @__gxx_personality_seh0
{
entry:
invoke void @maybe_throw()
to label %cont unwind label %lpad
entry:
invoke void @maybe_throw()
to label %cont unwind label %lpad
@@
-58,7
+60,7
@@
cont:
ret i32 0
lpad:
ret i32 0
lpad:
- %ehvals = landingpad { i8*, i32 }
personality i32 (...)* @__gxx_personality_seh0
+ %ehvals = landingpad { i8*, i32 }
cleanup
catch i8* bitcast (i8** @_ZTIi to i8*)
%ehsel = extractvalue { i8*, i32 } %ehvals, 1
cleanup
catch i8* bitcast (i8** @_ZTIi to i8*)
%ehsel = extractvalue { i8*, i32 } %ehvals, 1