[WinEH] C++ EH state numbering fixes

Differential Revision: http://reviews.llvm.org/D9787



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237854 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Andrew Kaylor
2015-05-20 23:22:24 +00:00
parent 7681f6a1b0
commit d0f4ffa472
9 changed files with 428 additions and 169 deletions

View File

@@ -180,28 +180,26 @@ unreachable: ; preds = %catch, %entry
; CHECK: }
}
; The outlined test1.catch handler should not contain a return instruction.
; The outlined test1.catch handler should return to a valid block address.
; CHECK-LABEL: define internal i8* @"\01?test1@@YAXXZ.catch"(i8*, i8*)
; CHECK-NOT: ret
; CHECK-NOT: ret i8* inttoptr (i32 1 to i8*)
; CHECK: }
; The outlined test1.catch1 handler should return to a valid block address.
; The outlined test1.catch1 handler should not contain a return instruction.
; CHECK-LABEL: define internal i8* @"\01?test1@@YAXXZ.catch.1"(i8*, i8*)
; WILL-CHECK: ret i8* inttoptr (
; CHECK-NOT: ret i8* inttoptr (i32 1 to i8*)
; CHECK: }
; The outlined test2.catch handler should not contain a return instruction.
; CHECK-LABEL: define internal i8* @"\01?test2@@YAXXZ.catch"(i8*, i8*)
; CHECK-NOT: ret
; CHECK: }
; The outlined test2.catch1 handler should return to a valid block address.
; CHECK-LABEL: define internal i8* @"\01?test2@@YAXXZ.catch.2"(i8*, i8*)
; WILL-CHECK: ret i8* inttoptr (
; The outlined test2.catch handler should return to a valid block address.
; CHECK-LABEL: define internal i8* @"\01?test2@@YAXXZ.catch"(i8*, i8*)
; CHECK-NOT: ret i8* inttoptr (i32 1 to i8*)
; CHECK: }
; The outlined test2.catch2 handler should not contain a return instruction.
; CHECK-LABEL: define internal i8* @"\01?test2@@YAXXZ.catch.2"(i8*, i8*)
; CHECK-NOT: ret
; CHECK: }
attributes #0 = { nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind }