| David Majnemer | cb305de | 2016-03-01 04:30:16 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s | FileCheck %s | 
|  | 2 | target datalayout = "e-m:x-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32" | 
|  | 3 | target triple = "i386-pc-windows-msvc" | 
|  | 4 |  | 
|  | 5 | declare void @throw() | 
|  | 6 |  | 
|  | 7 | define void @test1() personality i32 (...)* @__CxxFrameHandler3 { | 
|  | 8 | %e = alloca i8, align 4 | 
|  | 9 | invoke void @throw() | 
|  | 10 | to label %.noexc unwind label %catch.dispatch | 
|  | 11 |  | 
|  | 12 | .noexc: | 
|  | 13 | unreachable | 
|  | 14 |  | 
|  | 15 | catch.object.Exception: | 
|  | 16 | %cp = catchpad within %cs [i8* null, i32 0, i8* %e] | 
|  | 17 | catchret from %cp to label %catchhandler | 
|  | 18 |  | 
|  | 19 | catch.dispatch: | 
|  | 20 | %cs = catchswitch within none [label %catch.object.Exception] unwind to caller | 
|  | 21 |  | 
|  | 22 | catchhandler: | 
|  | 23 | call void @use(i8* %e) | 
|  | 24 | ret void | 
|  | 25 | } | 
|  | 26 |  | 
|  | 27 | ; CHECK-LABEL: $handlerMap$0$test1: | 
|  | 28 | ; CHECK:      .long 0 | 
|  | 29 | ; CHECK-NEXT: .long 0 | 
|  | 30 | ; CHECK-NEXT: .long -20 | 
|  | 31 |  | 
|  | 32 | declare void @use(i8*) | 
|  | 33 |  | 
|  | 34 | declare i32 @__CxxFrameHandler3(...) |