Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- llvm module:
- ; ModuleID = 'main'
- source_filename = "main"
- %"array[0x55b06ad5a0a8]" = type <{ i8*, i64 }>
- @string = private unnamed_addr constant [4 x i8] c"foo\00"
- @string.1 = private unnamed_addr constant [8 x i8] c"barries\00"
- declare void @print_int(i64)
- declare void @print_string(i8*)
- declare void @print_bytes(%"array[0x55b06ad5a0a8]"*)
- declare void @print_byte(i8)
- declare i64 @len_bytes(%"array[0x55b06ad5a0a8]"*)
- declare void @print_map(void*)
- declare void @print_bool(i1)
- define void @main() {
- entry:
- %alloca = alloca %"array[0x55b06ad5a0a8]"
- %gep = getelementptr %"array[0x55b06ad5a0a8]", %"array[0x55b06ad5a0a8]"* %alloca, i32 0, i32 0
- store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @string, i32 0, i32 0), i8** %gep
- %gep1 = getelementptr %"array[0x55b06ad5a0a8]", %"array[0x55b06ad5a0a8]"* %alloca, i32 0, i32 1
- store i64 3, i64* %gep1
- %alloca2 = alloca %"array[0x55b06ad5a0a8]"*
- store %"array[0x55b06ad5a0a8]"* %alloca, %"array[0x55b06ad5a0a8]"** %alloca2
- %alloca3 = alloca %"array[0x55b06ad5a0a8]"
- %gep4 = getelementptr %"array[0x55b06ad5a0a8]", %"array[0x55b06ad5a0a8]"* %alloca3, i32 0, i32 0
- store i8* getelementptr inbounds ([8 x i8], [8 x i8]* @string.1, i32 0, i32 0), i8** %gep4
- %gep5 = getelementptr %"array[0x55b06ad5a0a8]", %"array[0x55b06ad5a0a8]"* %alloca3, i32 0, i32 1
- store i64 7, i64* %gep5
- %alloca6 = alloca %"array[0x55b06ad5a0a8]"*
- store %"array[0x55b06ad5a0a8]"* %alloca3, %"array[0x55b06ad5a0a8]"** %alloca6
- %load = load %"array[0x55b06ad5a0a8]"*, %"array[0x55b06ad5a0a8]"** %alloca6
- call void @print_bytes(%"array[0x55b06ad5a0a8]"* %load)
- %load7 = load %"array[0x55b06ad5a0a8]"*, %"array[0x55b06ad5a0a8]"** %alloca6
- %result = call i64 @len_bytes(%"array[0x55b06ad5a0a8]"* %load7)
- call void @print_int(i64 %result)
- %load8 = load %"array[0x55b06ad5a0a8]"*, %"array[0x55b06ad5a0a8]"** %alloca2
- %result9 = call i64 @len_bytes(%"array[0x55b06ad5a0a8]"* %load8)
- call void @print_int(i64 %result9)
- %load10 = load %"array[0x55b06ad5a0a8]"*, %"array[0x55b06ad5a0a8]"** %alloca6
- %result11 = call i8 @get_bytes(%"array[0x55b06ad5a0a8]"* %load10, i64 0)
- call void @print_byte(i8 %result11)
- call void @print_int(i64 15)
- ret void
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement