Skip to content

Instantly share code, notes, and snippets.

@alexcrichton
Created June 25, 2020 19:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexcrichton/c0765fb466cf1c604720cd5129075169 to your computer and use it in GitHub Desktop.
Save alexcrichton/c0765fb466cf1c604720cd5129075169 to your computer and use it in GitHub Desktop.
; ModuleID = 'bar.3a1fbbbh-cgu.0'
source_filename = "bar.3a1fbbbh-cgu.0"
target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc"
$__rust_panic_type_info = comdat any
@"??_7type_info@@6B@" = external global i8*
@__rust_panic_type_info = linkonce_odr global { i8**, i8*, [11 x i8] } { i8** @"??_7type_info@@6B@", i8* null, [11 x i8] c"rust_panic\00" }, comdat
; Function Attrs: uwtable
define i32 @bar() unnamed_addr #0 personality i32 (...)* @__CxxFrameHandler3 {
start:
%0 = alloca i8*, align 8
%1 = bitcast i8** %0 to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %1)
invoke void @foo()
to label %__rust_try.exit unwind label %catchswitch.i
catchswitch.i: ; preds = %start
%catchswitch1.i = catchswitch within none [label %catchpad.i] unwind to caller
catchpad.i: ; preds = %catchswitch.i
%catchpad2.i = catchpad within %catchswitch1.i [{ i8**, i8*, [11 x i8] }* @__rust_panic_type_info, i32 8, i8** %0]
catchret from %catchpad2.i to label %__rust_try.exit
__rust_try.exit: ; preds = %start, %catchpad.i
%merge.i = phi i32 [ 1, %catchpad.i ], [ 0, %start ]
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %1)
ret i32 %merge.i
}
declare i32 @__CxxFrameHandler3(...) unnamed_addr #1
; Function Attrs: uwtable
declare void @foo() unnamed_addr #0
; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #2
; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #2
attributes #0 = { uwtable "target-cpu"="x86-64" }
attributes #1 = { "target-cpu"="x86-64" }
attributes #2 = { argmemonly nounwind willreturn }
!llvm.module.flags = !{!0}
!0 = !{i32 7, !"PIC Level", i32 2}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment