Skip to content

Instantly share code, notes, and snippets.

@carlokok

carlokok/test.ll Secret

Created October 17, 2016 16:01
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 carlokok/868cddebeb9acc8ccbac6253de0480b0 to your computer and use it in GitHub Desktop.
Save carlokok/868cddebeb9acc8ccbac6253de0480b0 to your computer and use it in GitHub Desktop.
; ModuleID = 'CC0'
source_filename = "CC0"
target datalayout = "e-m:x-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32"
target triple = "i686-pc-windows-msvc"
%._ConsoleApplication3.Step1Exception = type { %._RemObjects.Elements.System.Exception }
%._RemObjects.Elements.System.Exception = type { %._RemObjects.Elements.System.Object, %._RemObjects.Elements.System.String*, i8* }
%._RemObjects.Elements.System.Object = type { i8* }
%._RemObjects.Elements.System.String = type { %._RemObjects.Elements.System.Object, i32, i16 }
%._ConsoleApplication3.Step2Exception = type { %._RemObjects.Elements.System.Exception }
%"._gt22_RemObjects.Elements.System.Array`1s" = type { %._RemObjects.Elements.System.Array, %._RemObjects.Elements.System.String* }
%._RemObjects.Elements.System.Array = type { %._RemObjects.Elements.System.Object, i32 }
%._ConsoleApplication3.Program = type { %._RemObjects.Elements.System.Object }
%._RemObjects.Elements.System.MSVCExceptionInfo = type { i32, i32, %._RemObjects.Elements.System.MSVCUnwindMap*, i32, %._RemObjects.Elements.System.MSVCTryMap*, i32, %._RemObjects.Elements.System.MSVCIpToSate* }
%._RemObjects.Elements.System.MSVCUnwindMap = type { i32, void ()* }
%._RemObjects.Elements.System.MSVCTryMap = type { i32, i32, i32, i32, %._RemObjects.Elements.System.MSVCHandlerType* }
%._RemObjects.Elements.System.MSVCHandlerType = type { i32, %._RemObjects.Elements.System.ElementsExceptionType*, i32, void ()* }
%._RemObjects.Elements.System.ElementsExceptionType = type { i8*, i8 (i8*)* }
%._RemObjects.Elements.System.MSVCIpToSate = type { i32, i32 }
%._rtl.EXCEPTION_RECORD = type { i32, i32, i8*, i8*, i32, [15 x i32] }
%._RemObjects.Elements.System.ElementsRegistrationFrame = type { i8*, %._RemObjects.Elements.System.ElementsRegistrationFrame*, i8*, i32 }
%._rtl.CONTEXT = type { i32, i32, i32, i32, i32, i32, i32, %._rtl.FLOATING_SAVE_AREA, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [512 x i8] }
%._rtl.FLOATING_SAVE_AREA = type { i32, i32, i32, i32, i32, i32, i32, [80 x i8], i32 }
@_rtti_t24_RemObjects.Elements.System.Exception = external global i8
@_rtti_o = external global i8
@.str0 = private unnamed_addr constant [35 x i8] c"ConsoleApplication3.Step1Exception\00", align 1
@_ext_rtti_t22_ConsoleApplication3.Step1Exception = constant { i64, [35 x i8]*, i8* } { i64 0, [35 x i8]* @.str0, i8* null }
@_rtti_t22_ConsoleApplication3.Step1Exception = local_unnamed_addr constant { { i64, [35 x i8]*, i8* }*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } { { i64, [35 x i8]*, i8* }* @_ext_rtti_t22_ConsoleApplication3.Step1Exception, i8* @_rtti_t24_RemObjects.Elements.System.Exception, i8* null, i8* null, i8* bitcast (void (%._RemObjects.Elements.System.Object*)* @__default_finalize to i8*), i8* bitcast (%._RemObjects.Elements.System.String* (%._RemObjects.Elements.System.Exception*)* @mi_t24_RemObjects.Elements.System.Exception8_ToString to i8*), i8* bitcast (i32 (%._RemObjects.Elements.System.Object*)* @mi_ob_GetHashCode to i8*), i8* bitcast (i8 (%._RemObjects.Elements.System.Object*, %._RemObjects.Elements.System.Object*)* @mi_o6_Equalsno to i8*), i8* bitcast (%._RemObjects.Elements.System.String* (%._RemObjects.Elements.System.Exception*)* @mi_t24_RemObjects.Elements.System.Exceptionb_get_Message to i8*) }
@.str1 = private unnamed_addr constant [35 x i8] c"ConsoleApplication3.Step2Exception\00", align 1
@_ext_rtti_t22_ConsoleApplication3.Step2Exception = constant { i64, [35 x i8]*, i8* } { i64 0, [35 x i8]* @.str1, i8* null }
@_rtti_t22_ConsoleApplication3.Step2Exception = local_unnamed_addr constant { { i64, [35 x i8]*, i8* }*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } { { i64, [35 x i8]*, i8* }* @_ext_rtti_t22_ConsoleApplication3.Step2Exception, i8* @_rtti_t24_RemObjects.Elements.System.Exception, i8* null, i8* null, i8* bitcast (void (%._RemObjects.Elements.System.Object*)* @__default_finalize to i8*), i8* bitcast (%._RemObjects.Elements.System.String* (%._RemObjects.Elements.System.Exception*)* @mi_t24_RemObjects.Elements.System.Exception8_ToString to i8*), i8* bitcast (i32 (%._RemObjects.Elements.System.Object*)* @mi_ob_GetHashCode to i8*), i8* bitcast (i8 (%._RemObjects.Elements.System.Object*, %._RemObjects.Elements.System.Object*)* @mi_o6_Equalsno to i8*), i8* bitcast (%._RemObjects.Elements.System.String* (%._RemObjects.Elements.System.Exception*)* @mi_t24_RemObjects.Elements.System.Exceptionb_get_Message to i8*) }
@.str2 = private unnamed_addr constant [28 x i8] c"ConsoleApplication3.Program\00", align 1
@_ext_rtti_t1b_ConsoleApplication3.Program = constant { i64, [28 x i8]*, i8* } { i64 0, [28 x i8]* @.str2, i8* null }
@_rtti_t1b_ConsoleApplication3.Program = local_unnamed_addr constant { { i64, [28 x i8]*, i8* }*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } { { i64, [28 x i8]*, i8* }* @_ext_rtti_t1b_ConsoleApplication3.Program, i8* @_rtti_o, i8* null, i8* null, i8* bitcast (void (%._RemObjects.Elements.System.Object*)* @__default_finalize to i8*), i8* bitcast (%._RemObjects.Elements.System.String* (%._RemObjects.Elements.System.Object*)* @mi_o8_ToString to i8*), i8* bitcast (i32 (%._RemObjects.Elements.System.Object*)* @mi_ob_GetHashCode to i8*), i8* bitcast (i8 (%._RemObjects.Elements.System.Object*, %._RemObjects.Elements.System.Object*)* @mi_o6_Equalsno to i8*) }
@_rtti_s = external global i8
@.str3 = private unnamed_addr constant { i8*, i32, [2 x i8] } { i8* @_rtti_s, i32 0, [2 x i8] zeroinitializer }, align 4
@0 = private unnamed_addr constant { i8*, i8* } { i8* @_rtti_t24_RemObjects.Elements.System.Exception, i8* null }
define void @mi_t22_ConsoleApplication3.Step1Exception5_.ctorns(%._ConsoleApplication3.Step1Exception*, %._RemObjects.Elements.System.String*) local_unnamed_addr #0 {
BasicBlock0:
%2 = getelementptr inbounds %._ConsoleApplication3.Step1Exception, %._ConsoleApplication3.Step1Exception* %0, i32 0, i32 0
tail call void @mi_t24_RemObjects.Elements.System.Exception5_.ctorns(%._RemObjects.Elements.System.Exception* %2, %._RemObjects.Elements.System.String* %1)
ret void
}
define void @mi_t22_ConsoleApplication3.Step2Exception5_.ctorns(%._ConsoleApplication3.Step2Exception*, %._RemObjects.Elements.System.String*) local_unnamed_addr #0 {
BasicBlock3:
%2 = getelementptr inbounds %._ConsoleApplication3.Step2Exception, %._ConsoleApplication3.Step2Exception* %0, i32 0, i32 0
tail call void @mi_t24_RemObjects.Elements.System.Exception5_.ctorns(%._RemObjects.Elements.System.Exception* %2, %._RemObjects.Elements.System.String* %1)
ret void
}
define i8* @myframeaddress(i32)
{
ret i8* null
}
; Function Attrs: noreturn
define i32 @__elements_entry_point(%"._gt22_RemObjects.Elements.System.Array`1s"* nocapture readnone) local_unnamed_addr #1 personality i8* bitcast (i32 (%._RemObjects.Elements.System.MSVCExceptionInfo*, %._rtl.EXCEPTION_RECORD*, %._RemObjects.Elements.System.ElementsRegistrationFrame*, %._rtl.CONTEXT*, i8*)* @__CxxFrameHandler3 to i8*) {
BasicBlock6:
%1 = alloca %._RemObjects.Elements.System.Exception*, align 4
store %._RemObjects.Elements.System.Exception* null, %._RemObjects.Elements.System.Exception** %1, align 4
%2 = invoke i8* @__newinst(i8* nonnull @_rtti_t24_RemObjects.Elements.System.Exception, i32 12)
to label %BasicBlock8 unwind label %6
BasicBlock8: ; preds = %BasicBlock6
%3 = bitcast i8* %2 to %._RemObjects.Elements.System.Exception*
invoke void @mi_t24_RemObjects.Elements.System.Exception5_.ctorns(%._RemObjects.Elements.System.Exception* %3, %._RemObjects.Elements.System.String* bitcast ({ i8*, i32, [2 x i8] }* @.str3 to %._RemObjects.Elements.System.String*))
to label %BasicBlock9 unwind label %6
BasicBlock9: ; preds = %BasicBlock8
%4 = tail call i8* @myframeaddress(i32 0)
%5 = bitcast i8* %2 to %._RemObjects.Elements.System.Object*
invoke void @ElementsRaiseException(i8* null, i8* %4, %._RemObjects.Elements.System.Object* %5)
to label %BasicBlock15 unwind label %6
; <label>:6: ; preds = %BasicBlock9, %BasicBlock8, %BasicBlock6
%7 = catchswitch within none [label %BasicBlock12] unwind label %10
BasicBlock12: ; preds = %6
%8 = catchpad within %7 [{ i8*, i8* }* @0, i32 0, %._RemObjects.Elements.System.Exception** %1]
%9 = call i8* @myframeaddress(i32 0)
invoke void @ElementsRaiseException(i8* null, i8* %9, %._RemObjects.Elements.System.Object* null)
to label %BasicBlock14 unwind label %10
BasicBlock14: ; preds = %BasicBlock12
catchret from %8 to label %BasicBlock15
; <label>:10: ; preds = %BasicBlock12, %6
%11 = catchswitch within none [label %BasicBlock16] unwind to caller
BasicBlock15: ; preds = %BasicBlock14, %BasicBlock9
unreachable
BasicBlock16: ; preds = %10
%12 = catchpad within %11 [{ i8*, i8* }* @0, i32 0, %._RemObjects.Elements.System.Exception** %1]
%13 = call i8* @myframeaddress(i32 0)
call void @ElementsRaiseException(i8* null, i8* %13, %._RemObjects.Elements.System.Object* null)
catchret from %12 to label %BasicBlock17
BasicBlock17: ; preds = %BasicBlock16
unreachable
}
define void @mi_t1b_ConsoleApplication3.Program5_.ctor(%._ConsoleApplication3.Program*) local_unnamed_addr #0 {
BasicBlock18:
%1 = getelementptr inbounds %._ConsoleApplication3.Program, %._ConsoleApplication3.Program* %0, i32 0, i32 0
tail call void @mi_o5_.ctor(%._RemObjects.Elements.System.Object* %1)
ret void
}
declare void @__default_finalize(%._RemObjects.Elements.System.Object*)
declare %._RemObjects.Elements.System.String* @mi_o8_ToString(%._RemObjects.Elements.System.Object*)
declare i32 @mi_ob_GetHashCode(%._RemObjects.Elements.System.Object*)
declare i8 @mi_o6_Equalsno(%._RemObjects.Elements.System.Object*, %._RemObjects.Elements.System.Object*)
declare %._RemObjects.Elements.System.String* @mi_t24_RemObjects.Elements.System.Exception8_ToString(%._RemObjects.Elements.System.Exception*)
declare %._RemObjects.Elements.System.String* @mi_t24_RemObjects.Elements.System.Exceptionb_get_Message(%._RemObjects.Elements.System.Exception*)
declare void @mi_t24_RemObjects.Elements.System.Exception5_.ctorns(%._RemObjects.Elements.System.Exception*, %._RemObjects.Elements.System.String*) local_unnamed_addr
declare x86_stdcallcc i32 @__CxxFrameHandler3(%._RemObjects.Elements.System.MSVCExceptionInfo*, %._rtl.EXCEPTION_RECORD*, %._RemObjects.Elements.System.ElementsRegistrationFrame*, %._rtl.CONTEXT*, i8*)
declare i8* @__newinst(i8*, i32) local_unnamed_addr
declare void @ElementsRaiseException(i8*, i8*, %._RemObjects.Elements.System.Object*) local_unnamed_addr
declare void @mi_o5_.ctor(%._RemObjects.Elements.System.Object*) local_unnamed_addr
attributes #0 = { "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" }
attributes #1 = { noreturn "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" }
attributes #2 = { nounwind readnone }
!llvm.module.flags = !{!0, !1}
!0 = !{i32 2, !"Dwarf Version", i32 4}
!1 = !{i32 2, !"Debug Info Version", i32 3}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment