Advertisement
Guest User

Untitled

a guest
Apr 24th, 2019
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. llvm module:
  2. ; ModuleID = 'main'
  3. source_filename = "main"
  4.  
  5. %"array[0x55b06ad5a0a8]" = type <{ i8*, i64 }>
  6.  
  7. @string = private unnamed_addr constant [4 x i8] c"foo\00"
  8. @string.1 = private unnamed_addr constant [8 x i8] c"barries\00"
  9.  
  10. declare void @print_int(i64)
  11.  
  12. declare void @print_string(i8*)
  13.  
  14. declare void @print_bytes(%"array[0x55b06ad5a0a8]"*)
  15.  
  16. declare void @print_byte(i8)
  17.  
  18. declare i64 @len_bytes(%"array[0x55b06ad5a0a8]"*)
  19.  
  20. declare void @print_map(void*)
  21.  
  22. declare void @print_bool(i1)
  23.  
  24. define void @main() {
  25. entry:
  26. %alloca = alloca %"array[0x55b06ad5a0a8]"
  27. %gep = getelementptr %"array[0x55b06ad5a0a8]", %"array[0x55b06ad5a0a8]"* %alloca, i32 0, i32 0
  28. store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @string, i32 0, i32 0), i8** %gep
  29. %gep1 = getelementptr %"array[0x55b06ad5a0a8]", %"array[0x55b06ad5a0a8]"* %alloca, i32 0, i32 1
  30. store i64 3, i64* %gep1
  31. %alloca2 = alloca %"array[0x55b06ad5a0a8]"*
  32. store %"array[0x55b06ad5a0a8]"* %alloca, %"array[0x55b06ad5a0a8]"** %alloca2
  33. %alloca3 = alloca %"array[0x55b06ad5a0a8]"
  34. %gep4 = getelementptr %"array[0x55b06ad5a0a8]", %"array[0x55b06ad5a0a8]"* %alloca3, i32 0, i32 0
  35. store i8* getelementptr inbounds ([8 x i8], [8 x i8]* @string.1, i32 0, i32 0), i8** %gep4
  36. %gep5 = getelementptr %"array[0x55b06ad5a0a8]", %"array[0x55b06ad5a0a8]"* %alloca3, i32 0, i32 1
  37. store i64 7, i64* %gep5
  38. %alloca6 = alloca %"array[0x55b06ad5a0a8]"*
  39. store %"array[0x55b06ad5a0a8]"* %alloca3, %"array[0x55b06ad5a0a8]"** %alloca6
  40. %load = load %"array[0x55b06ad5a0a8]"*, %"array[0x55b06ad5a0a8]"** %alloca6
  41. call void @print_bytes(%"array[0x55b06ad5a0a8]"* %load)
  42. %load7 = load %"array[0x55b06ad5a0a8]"*, %"array[0x55b06ad5a0a8]"** %alloca6
  43. %result = call i64 @len_bytes(%"array[0x55b06ad5a0a8]"* %load7)
  44. call void @print_int(i64 %result)
  45. %load8 = load %"array[0x55b06ad5a0a8]"*, %"array[0x55b06ad5a0a8]"** %alloca2
  46. %result9 = call i64 @len_bytes(%"array[0x55b06ad5a0a8]"* %load8)
  47. call void @print_int(i64 %result9)
  48. %load10 = load %"array[0x55b06ad5a0a8]"*, %"array[0x55b06ad5a0a8]"** %alloca6
  49. %result11 = call i8 @get_bytes(%"array[0x55b06ad5a0a8]"* %load10, i64 0)
  50. call void @print_byte(i8 %result11)
  51. call void @print_int(i64 15)
  52. ret void
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement