crash.ll 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. ; RUN: opt -reg2mem -disable-output < %s
  2. ; PR14782
  3. declare void @f1()
  4. declare i32 @__gxx_personality_sj0(...)
  5. declare void @f2()
  6. declare void @f3()
  7. declare void @f4_()
  8. declare void @_Z12xxxdtsP10xxxpq()
  9. define hidden void @_ZN12xxxyzIi9xxxwLi29ELi0EE4f3NewES0_i() ssp align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) {
  10. bb:
  11. invoke void @f4_()
  12. to label %bb1 unwind label %.thread
  13. .thread: ; preds = %bb
  14. %tmp = landingpad { i8*, i32 }
  15. cleanup
  16. br label %bb13
  17. bb1: ; preds = %bb
  18. invoke void @f1()
  19. to label %.noexc unwind label %bb10
  20. .noexc: ; preds = %bb1
  21. invoke void @f4_()
  22. to label %bb6 unwind label %bb2
  23. bb2: ; preds = %.noexc
  24. %tmp3 = landingpad { i8*, i32 }
  25. cleanup
  26. invoke void @f3()
  27. to label %.body unwind label %bb4
  28. bb4: ; preds = %bb2
  29. %tmp5 = landingpad { i8*, i32 }
  30. catch i8* null
  31. unreachable
  32. bb6: ; preds = %.noexc
  33. invoke void @_Z12xxxdtsP10xxxpq()
  34. to label %_ZN6xxxdIN12xxxyzIi9xxxwLi29ELi0EE4fr1jS3_.exit unwind label %bb10
  35. _ZN6xxxdIN12xxxyzIi9xxxwLi29ELi0EE4fr1jS3_.exit: ; preds = %bb6
  36. invoke void @f2()
  37. to label %bb7 unwind label %bb8
  38. bb7: ; preds = %_ZN6xxxdIN12xxxyzIi9xxxwLi29ELi0EE4fr1jS3_.exit
  39. ret void
  40. bb8: ; preds = %_ZN6xxxdIN12xxxyzIi9xxxwLi29ELi0EE4fr1jS3_.exit
  41. %tmp9 = landingpad { i8*, i32 }
  42. cleanup
  43. br label %_ZN10xxxpqdlev.exit
  44. bb10: ; preds = %bb6, %bb1
  45. %.1 = phi i1 [ true, %bb1 ], [ false, %bb6 ]
  46. %tmp11 = landingpad { i8*, i32 }
  47. cleanup
  48. br label %.body
  49. .body: ; preds = %bb10, %bb2
  50. %.1.lpad-body = phi i1 [ %.1, %bb10 ], [ true, %bb2 ]
  51. invoke void @f2()
  52. to label %bb12 unwind label %bb14
  53. bb12: ; preds = %.body
  54. br i1 %.1.lpad-body, label %bb13, label %_ZN10xxxpqdlev.exit
  55. bb13: ; preds = %bb12, %.thread
  56. invoke void @xxx_MemFree()
  57. to label %_ZN10xxxpqdlev.exit unwind label %bb14
  58. _ZN10xxxpqdlev.exit: ; preds = %bb13, %bb12, %bb8
  59. resume { i8*, i32 } undef
  60. bb14: ; preds = %bb13, %.body
  61. %tmp15 = landingpad { i8*, i32 }
  62. catch i8* null
  63. unreachable
  64. }
  65. declare void @xxx_MemFree()