2
0

2011-12-14-LandingpadHeader.ll 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. ; RUN: opt < %s -loop-simplify -S | FileCheck %s
  2. ; PR11575
  3. @catchtypeinfo = external unnamed_addr constant { i8*, i8*, i8* }
  4. define void @main() uwtable ssp personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
  5. entry:
  6. invoke void @f1()
  7. to label %try.cont19 unwind label %catch
  8. ; CHECK: catch.preheader:
  9. ; CHECK-NEXT: landingpad
  10. ; CHECK: br label %catch
  11. ; CHECK: catch.preheader.split-lp:
  12. ; CHECK-NEXT: landingpad
  13. ; CHECK: br label %catch
  14. catch: ; preds = %if.else, %entry
  15. %0 = landingpad { i8*, i32 }
  16. catch i8* bitcast ({ i8*, i8*, i8* }* @catchtypeinfo to i8*)
  17. invoke void @f3()
  18. to label %if.else unwind label %eh.resume
  19. if.else: ; preds = %catch
  20. invoke void @f2()
  21. to label %try.cont19 unwind label %catch
  22. try.cont19: ; preds = %if.else, %entry
  23. ret void
  24. eh.resume: ; preds = %catch
  25. %1 = landingpad { i8*, i32 }
  26. cleanup
  27. catch i8* bitcast ({ i8*, i8*, i8* }* @catchtypeinfo to i8*)
  28. resume { i8*, i32 } undef
  29. }
  30. declare i32 @__gxx_personality_v0(...)
  31. declare void @f1()
  32. declare void @f2()
  33. declare void @f3()