diff --git a/lib/Transforms/ObjCARC/ObjCARCOpts.cpp b/lib/Transforms/ObjCARC/ObjCARCOpts.cpp index 582f7ea8352..6d4ff659b40 100644 --- a/lib/Transforms/ObjCARC/ObjCARCOpts.cpp +++ b/lib/Transforms/ObjCARC/ObjCARCOpts.cpp @@ -648,8 +648,6 @@ PtrState::Merge(const PtrState &Other, bool TopDown) { namespace { /// \brief Per-BasicBlock state. class BBState { - static const unsigned OverflowOccurredValue; - /// The number of unique control paths from the entry which can reach this /// block. unsigned TopDownPathCount; @@ -676,7 +674,7 @@ namespace { SmallVector Succs; public: - BBState() : TopDownPathCount(0), BottomUpPathCount(0) { } + BBState() : TopDownPathCount(0), BottomUpPathCount(0) {} typedef MapTy::iterator ptr_iterator; typedef MapTy::const_iterator ptr_const_iterator; @@ -747,9 +745,8 @@ namespace { /// Returns true if overflow occured. Returns false if overflow did not /// occur. bool GetAllPathCountWithOverflow(unsigned &PathCount) const { - if (TopDownPathCount == OverflowOccurredValue || - BottomUpPathCount == OverflowOccurredValue) - return false; + assert(TopDownPathCount != 0); + assert(BottomUpPathCount != 0); unsigned long long Product = (unsigned long long)TopDownPathCount*BottomUpPathCount; PathCount = Product; @@ -769,8 +766,6 @@ namespace { bool isExit() const { return Succs.empty(); } }; - - const unsigned BBState::OverflowOccurredValue = -1; } void BBState::InitFromPred(const BBState &Other) { @@ -786,25 +781,13 @@ void BBState::InitFromSucc(const BBState &Other) { /// The top-down traversal uses this to merge information about predecessors to /// form the initial state for a new block. void BBState::MergePred(const BBState &Other) { - if (TopDownPathCount == OverflowOccurredValue) - return; - // Other.TopDownPathCount can be 0, in which case it is either dead or a // loop backedge. Loop backedges are special. TopDownPathCount += Other.TopDownPathCount; - // In order to be consistent, we clear the top down pointers when by adding - // TopDownPathCount becomes OverflowOccurredValue even though "true" overflow - // has not occured. - if (TopDownPathCount == OverflowOccurredValue) { - clearTopDownPointers(); - return; - } - // Check for overflow. If we have overflow, fall back to conservative // behavior. if (TopDownPathCount < Other.TopDownPathCount) { - TopDownPathCount = OverflowOccurredValue; clearTopDownPointers(); return; } @@ -830,25 +813,13 @@ void BBState::MergePred(const BBState &Other) { /// The bottom-up traversal uses this to merge information about successors to /// form the initial state for a new block. void BBState::MergeSucc(const BBState &Other) { - if (BottomUpPathCount == OverflowOccurredValue) - return; - // Other.BottomUpPathCount can be 0, in which case it is either dead or a // loop backedge. Loop backedges are special. BottomUpPathCount += Other.BottomUpPathCount; - // In order to be consistent, we clear the top down pointers when by adding - // BottomUpPathCount becomes OverflowOccurredValue even though "true" overflow - // has not occured. - if (BottomUpPathCount == OverflowOccurredValue) { - clearBottomUpPointers(); - return; - } - // Check for overflow. If we have overflow, fall back to conservative // behavior. if (BottomUpPathCount < Other.BottomUpPathCount) { - BottomUpPathCount = OverflowOccurredValue; clearBottomUpPointers(); return; } diff --git a/test/Transforms/ObjCARC/path-overflow.ll b/test/Transforms/ObjCARC/path-overflow.ll index e62a70da20a..605e8605897 100644 --- a/test/Transforms/ObjCARC/path-overflow.ll +++ b/test/Transforms/ObjCARC/path-overflow.ll @@ -1,7 +1,6 @@ ; RUN: opt -objc-arc -S < %s ; rdar://12277446 ; rdar://12480535 -; rdar://14590914 ; The total number of paths grows exponentially with the number of branches, and a ; computation of this number can overflow any reasonable fixed-sized @@ -11,20 +10,14 @@ target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32-S32" target triple = "thumbv7-apple-ios5.0.0" -%struct.NSConstantString = type { i32*, i32, i8*, i32 } -%struct.CGPoint = type { float, float } +%struct.NSConstantString.11.33.55.77.99.121.143.332.1130.1340.2768 = type { i32*, i32, i8*, i32 } -@_unnamed_cfstring = external constant %struct.NSConstantString, section "__DATA,__cfstring" +@_unnamed_cfstring_591 = external constant %struct.NSConstantString.11.33.55.77.99.121.143.332.1130.1340.2768, section "__DATA,__cfstring" declare i8* @objc_retain(i8*) nonlazybind declare i8* @objc_retainAutoreleasedReturnValue(i8*) nonlazybind declare void @objc_release(i8*) nonlazybind declare i8* @returner() -declare i8* @objc_msgSend(i8*, i8*, ...) nonlazybind -declare void @NSLog(i8*, ...) -declare void @objc_msgSend_stret(i8*, i8*, ...) -declare i32 @__gxx_personality_sj0(...) - define hidden void @test1() { entry: @@ -37,7 +30,7 @@ msgSend.nullinit: ; preds = %entry br label %msgSend.cont msgSend.cont: ; preds = %msgSend.nullinit, %msgSend.call - %0 = bitcast %struct.NSConstantString* @_unnamed_cfstring to i8* + %0 = bitcast %struct.NSConstantString.11.33.55.77.99.121.143.332.1130.1340.2768* @_unnamed_cfstring_591 to i8* %1 = call i8* @objc_retain(i8* %0) nounwind br i1 undef, label %msgSend.nullinit33, label %msgSend.call32 @@ -860,1058 +853,5 @@ bb222: ; preds = %bb20, %bb19 ret void } -; Function Attrs: ssp -define void @test3() #1 { -entry: - %call2 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry - %call5 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*)*)(i8* undef, i8* undef) - to label %invoke.cont4 unwind label %lpad3 - -invoke.cont4: ; preds = %invoke.cont - br i1 undef, label %land.end, label %land.rhs - -land.rhs: ; preds = %invoke.cont4 - %call7 = invoke i32 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i32 (i8*, i8*)*)(i8* undef, i8* undef) - to label %land.end unwind label %lpad3 - -land.end: ; preds = %land.rhs, %invoke.cont4 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i unwind label %lpad.i - -invoke.cont.i: ; preds = %land.end - br i1 undef, label %invoke.cont8, label %if.then.i - -if.then.i: ; preds = %invoke.cont.i - br label %invoke.cont8 - -lpad.i: ; preds = %land.end - %tmp13 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -invoke.cont8: ; preds = %if.then.i, %invoke.cont.i - %call18 = invoke i8* (i8*, i8*, i8*, ...)* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*, ...)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef) - to label %invoke.cont17 unwind label %lpad16 - -invoke.cont17: ; preds = %invoke.cont8 - %call22 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont21 unwind label %lpad20 - -invoke.cont21: ; preds = %invoke.cont17 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i1980 unwind label %lpad.i1982 - -invoke.cont.i1980: ; preds = %invoke.cont21 - br i1 undef, label %invoke.cont24, label %if.then.i1981 - -if.then.i1981: ; preds = %invoke.cont.i1980 - br label %invoke.cont24 - -lpad.i1982: ; preds = %invoke.cont21 - %tmp28 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -invoke.cont24: ; preds = %if.then.i1981, %invoke.cont.i1980 - %call37 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*)*)(i8* undef, i8* undef) - to label %invoke.cont36 unwind label %lpad35 - -invoke.cont36: ; preds = %invoke.cont24 - br i1 undef, label %land.end43, label %land.rhs39 - -land.rhs39: ; preds = %invoke.cont36 - %call41 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %land.end43 unwind label %lpad35 - -land.end43: ; preds = %land.rhs39, %invoke.cont36 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i1986 unwind label %lpad.i1988 - -invoke.cont.i1986: ; preds = %land.end43 - br i1 undef, label %invoke.cont44, label %if.then.i1987 - -if.then.i1987: ; preds = %invoke.cont.i1986 - br label %invoke.cont44 - -lpad.i1988: ; preds = %land.end43 - %tmp42 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -invoke.cont44: ; preds = %if.then.i1987, %invoke.cont.i1986 - %call53 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont52 unwind label %lpad51 - -invoke.cont52: ; preds = %invoke.cont44 - br i1 undef, label %land.end70, label %land.rhs58 - -land.rhs58: ; preds = %invoke.cont52 - %call63 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 42) - to label %invoke.cont62 unwind label %lpad61 - -invoke.cont62: ; preds = %land.rhs58 - %call68 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef) - to label %land.end70 unwind label %lpad66.body.thread - -land.end70: ; preds = %invoke.cont62, %invoke.cont52 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i1992 unwind label %lpad66.body - -invoke.cont.i1992: ; preds = %land.end70 - br i1 undef, label %invoke.cont71, label %if.then.i1993 - -if.then.i1993: ; preds = %invoke.cont.i1992 - br label %invoke.cont71 - -invoke.cont71: ; preds = %if.then.i1993, %invoke.cont.i1992 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i1998 unwind label %lpad.i2000 - -invoke.cont.i1998: ; preds = %invoke.cont71 - br i1 undef, label %invoke.cont91, label %if.then.i1999 - -if.then.i1999: ; preds = %invoke.cont.i1998 - br label %invoke.cont91 - -lpad.i2000: ; preds = %invoke.cont71 - %tmp74 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - br label %ehcleanup102 - -invoke.cont91: ; preds = %if.then.i1999, %invoke.cont.i1998 - %call96 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef) - to label %invoke.cont95 unwind label %lpad94 - -invoke.cont95: ; preds = %invoke.cont91 - %call98 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* %call96) - to label %invoke.cont97 unwind label %lpad94 - -invoke.cont97: ; preds = %invoke.cont95 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2004 unwind label %lpad.i2006 - -invoke.cont.i2004: ; preds = %invoke.cont97 - br i1 undef, label %invoke.cont100, label %if.then.i2005 - -if.then.i2005: ; preds = %invoke.cont.i2004 - br label %invoke.cont100 - -lpad.i2006: ; preds = %invoke.cont97 - %tmp82 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -invoke.cont100: ; preds = %if.then.i2005, %invoke.cont.i2004 - invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont110 unwind label %lpad109 - -invoke.cont110: ; preds = %invoke.cont100 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2010 unwind label %lpad.i2012 - -invoke.cont.i2010: ; preds = %invoke.cont110 - br i1 undef, label %invoke.cont117, label %if.then.i2011 - -if.then.i2011: ; preds = %invoke.cont.i2010 - br label %invoke.cont117 - -lpad.i2012: ; preds = %invoke.cont110 - %tmp98 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -invoke.cont117: ; preds = %if.then.i2011, %invoke.cont.i2010 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2022 unwind label %lpad156.body - -lpad: ; preds = %entry - %tmp118 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - br label %ehcleanup - -lpad3: ; preds = %land.rhs, %invoke.cont - %tmp119 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - br label %ehcleanup - -ehcleanup: ; preds = %lpad3, %lpad - unreachable - -lpad16: ; preds = %invoke.cont8 - %tmp121 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - br label %ehcleanup26 - -lpad20: ; preds = %invoke.cont17 - %tmp122 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - br label %ehcleanup26 - -ehcleanup26: ; preds = %lpad20, %lpad16 - unreachable - -lpad35: ; preds = %land.rhs39, %invoke.cont24 - %tmp124 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad51: ; preds = %invoke.cont44 - %tmp125 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad61: ; preds = %land.rhs58 - %tmp127 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad66.body.thread: ; preds = %invoke.cont62 - %tmp128 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad66.body: ; preds = %land.end70 - %tmp129 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad94: ; preds = %invoke.cont95, %invoke.cont91 - %tmp133 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - br label %ehcleanup102 - -ehcleanup102: ; preds = %lpad94, %lpad.i2000 - unreachable - -lpad109: ; preds = %invoke.cont100 - %tmp134 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -invoke.cont.i2022: ; preds = %invoke.cont117 - br i1 undef, label %invoke.cont157, label %if.then.i2023 - -if.then.i2023: ; preds = %invoke.cont.i2022 - br label %invoke.cont157 - -invoke.cont157: ; preds = %if.then.i2023, %invoke.cont.i2022 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2028 unwind label %lpad164.body - -invoke.cont.i2028: ; preds = %invoke.cont157 - br i1 undef, label %invoke.cont165, label %if.then.i2029 - -if.then.i2029: ; preds = %invoke.cont.i2028 - br label %invoke.cont165 - -invoke.cont165: ; preds = %if.then.i2029, %invoke.cont.i2028 - invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, void (i8*, i8*)*)*)(i8* undef, i8* undef, void (i8*, i8*)* undef) - to label %invoke.cont184 unwind label %lpad183 - -invoke.cont184: ; preds = %invoke.cont165 - %call186 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont185 unwind label %lpad183 - -invoke.cont185: ; preds = %invoke.cont184 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2034 unwind label %lpad.i2036 - -invoke.cont.i2034: ; preds = %invoke.cont185 - br i1 undef, label %invoke.cont190, label %if.then.i2035 - -if.then.i2035: ; preds = %invoke.cont.i2034 - br label %invoke.cont190 - -lpad.i2036: ; preds = %invoke.cont185 - %tmp168 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - br label %lpad183.body - -invoke.cont190: ; preds = %if.then.i2035, %invoke.cont.i2034 - invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont197 unwind label %lpad196 - -invoke.cont197: ; preds = %invoke.cont190 - %call202 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont201 unwind label %lpad200 - -invoke.cont201: ; preds = %invoke.cont197 - %call205 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont204 unwind label %lpad203 - -invoke.cont204: ; preds = %invoke.cont201 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2040 unwind label %lpad.i2042 - -invoke.cont.i2040: ; preds = %invoke.cont204 - br i1 undef, label %invoke.cont207, label %if.then.i2041 - -if.then.i2041: ; preds = %invoke.cont.i2040 - br label %invoke.cont207 - -lpad.i2042: ; preds = %invoke.cont204 - %tmp181 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -invoke.cont207: ; preds = %if.then.i2041, %invoke.cont.i2040 - %call209 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef) - to label %invoke.cont208 unwind label %lpad203 - -invoke.cont208: ; preds = %invoke.cont207 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2046 unwind label %lpad212.body - -invoke.cont.i2046: ; preds = %invoke.cont208 - br i1 undef, label %invoke.cont213, label %if.then.i2047 - -if.then.i2047: ; preds = %invoke.cont.i2046 - br label %invoke.cont213 - -invoke.cont213: ; preds = %if.then.i2047, %invoke.cont.i2046 - invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont221 unwind label %lpad220 - -invoke.cont221: ; preds = %invoke.cont213 - %call229 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont228 unwind label %lpad227 - -invoke.cont228: ; preds = %invoke.cont221 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2052 unwind label %lpad.i2054 - -invoke.cont.i2052: ; preds = %invoke.cont228 - br i1 undef, label %invoke.cont231, label %if.then.i2053 - -if.then.i2053: ; preds = %invoke.cont.i2052 - br label %invoke.cont231 - -lpad.i2054: ; preds = %invoke.cont228 - %tmp198 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -invoke.cont231: ; preds = %if.then.i2053, %invoke.cont.i2052 - %call233 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef) - to label %invoke.cont232 unwind label %lpad227 - -invoke.cont232: ; preds = %invoke.cont231 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2058 unwind label %lpad236.body - -invoke.cont.i2058: ; preds = %invoke.cont232 - br i1 undef, label %invoke.cont237, label %if.then.i2059 - -if.then.i2059: ; preds = %invoke.cont.i2058 - br label %invoke.cont237 - -invoke.cont237: ; preds = %if.then.i2059, %invoke.cont.i2058 - %call246 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont245 unwind label %lpad244 - -invoke.cont245: ; preds = %invoke.cont237 - %call248 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 13) - to label %invoke.cont247 unwind label %lpad244 - -invoke.cont247: ; preds = %invoke.cont245 - %call251 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 2) - to label %invoke.cont250 unwind label %lpad249 - -invoke.cont250: ; preds = %invoke.cont247 - %call254 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 7) - to label %invoke.cont253 unwind label %lpad252 - -invoke.cont253: ; preds = %invoke.cont250 - %call257 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8**, i32)*)(i8* undef, i8* undef, i8** undef, i32 3) - to label %invoke.cont256 unwind label %lpad255 - -invoke.cont256: ; preds = %invoke.cont253 - %call260 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* undef) - to label %invoke.cont259 unwind label %lpad258 - -invoke.cont259: ; preds = %invoke.cont256 - %call267 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont266 unwind label %lpad265 - -invoke.cont266: ; preds = %invoke.cont259 - %call275 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef) - to label %invoke.cont274 unwind label %lpad273 - -invoke.cont274: ; preds = %invoke.cont266 - %call279 = invoke i32 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i32 (i8*, i8*)*)(i8* undef, i8* undef) - to label %invoke.cont278 unwind label %lpad277 - -invoke.cont278: ; preds = %invoke.cont274 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2064 unwind label %lpad.i2066 - -invoke.cont.i2064: ; preds = %invoke.cont278 - br i1 undef, label %invoke.cont281, label %if.then.i2065 - -if.then.i2065: ; preds = %invoke.cont.i2064 - br label %invoke.cont281 - -lpad.i2066: ; preds = %invoke.cont278 - %tmp253 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -invoke.cont281: ; preds = %if.then.i2065, %invoke.cont.i2064 - %call291 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont290 unwind label %lpad289 - -invoke.cont290: ; preds = %invoke.cont281 - %call303 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 8) - to label %invoke.cont302 unwind label %lpad301 - -invoke.cont302: ; preds = %invoke.cont290 - %call310 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, double)*)(i8* undef, i8* undef, double 5.000000e-01) - to label %invoke.cont309 unwind label %lpad308 - -invoke.cont309: ; preds = %invoke.cont302 - %call313 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 42) - to label %invoke.cont312 unwind label %lpad311 - -invoke.cont312: ; preds = %invoke.cont309 - %call316 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8**, i8**, i32)*)(i8* undef, i8* undef, i8** undef, i8** undef, i32 2) - to label %invoke.cont315 unwind label %lpad314 - -invoke.cont315: ; preds = %invoke.cont312 - %call322 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef) - to label %invoke.cont321 unwind label %lpad320 - -invoke.cont321: ; preds = %invoke.cont315 - br i1 undef, label %land.end344, label %land.rhs335 - -land.rhs335: ; preds = %invoke.cont321 - %call342 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %land.end344 unwind label %lpad340.body.thread - -land.end344: ; preds = %land.rhs335, %invoke.cont321 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2070 unwind label %lpad340.body - -invoke.cont.i2070: ; preds = %land.end344 - br i1 undef, label %invoke.cont345, label %if.then.i2071 - -if.then.i2071: ; preds = %invoke.cont.i2070 - br label %invoke.cont345 - -invoke.cont345: ; preds = %if.then.i2071, %invoke.cont.i2070 - %call362 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef) - to label %invoke.cont361 unwind label %lpad360 - -invoke.cont361: ; preds = %invoke.cont345 - %call365 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont364 unwind label %lpad363 - -invoke.cont364: ; preds = %invoke.cont361 - %call371 = invoke i32 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i32 (i8*, i8*)*)(i8* undef, i8* undef) - to label %invoke.cont370 unwind label %lpad369 - -invoke.cont370: ; preds = %invoke.cont364 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2076 unwind label %lpad.i2078 - -invoke.cont.i2076: ; preds = %invoke.cont370 - br i1 undef, label %invoke.cont373, label %if.then.i2077 - -if.then.i2077: ; preds = %invoke.cont.i2076 - br label %invoke.cont373 - -lpad.i2078: ; preds = %invoke.cont370 - %tmp340 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -invoke.cont373: ; preds = %if.then.i2077, %invoke.cont.i2076 - %call377 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32, i8*)*)(i8* undef, i8* undef, i32 42, i8* undef) - to label %invoke.cont376 unwind label %lpad363 - -invoke.cont376: ; preds = %invoke.cont373 - invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i32)*)(i8* undef, i8* undef, i8* undef, i32 5) - to label %invoke.cont382 unwind label %lpad381 - -invoke.cont382: ; preds = %invoke.cont376 - %call384 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont383 unwind label %lpad381 - -invoke.cont383: ; preds = %invoke.cont382 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2082 unwind label %lpad.i2084 - -invoke.cont.i2082: ; preds = %invoke.cont383 - br i1 undef, label %invoke.cont392, label %if.then.i2083 - -if.then.i2083: ; preds = %invoke.cont.i2082 - br label %invoke.cont392 - -lpad.i2084: ; preds = %invoke.cont383 - %tmp360 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -invoke.cont392: ; preds = %if.then.i2083, %invoke.cont.i2082 - invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i32)*)(i8* undef, i8* undef, i8* undef, i32 -2) - to label %invoke.cont395 unwind label %lpad381 - -invoke.cont395: ; preds = %invoke.cont392 - %call397 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont396 unwind label %lpad381 - -invoke.cont396: ; preds = %invoke.cont395 - %call400 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef) - to label %invoke.cont399 unwind label %lpad398 - -invoke.cont399: ; preds = %invoke.cont396 - %call403 = invoke i32 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i32 (i8*, i8*)*)(i8* undef, i8* undef) - to label %invoke.cont402 unwind label %lpad401 - -invoke.cont402: ; preds = %invoke.cont399 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2088 unwind label %lpad.i2090 - -invoke.cont.i2088: ; preds = %invoke.cont402 - br i1 undef, label %invoke.cont405, label %if.then.i2089 - -if.then.i2089: ; preds = %invoke.cont.i2088 - br label %invoke.cont405 - -lpad.i2090: ; preds = %invoke.cont402 - %tmp370 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -invoke.cont405: ; preds = %if.then.i2089, %invoke.cont.i2088 - invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i32)*)(i8* undef, i8* undef, i8* undef, i32 -1) - to label %invoke.cont408 unwind label %lpad381 - -invoke.cont408: ; preds = %invoke.cont405 - %call410 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont409 unwind label %lpad381 - -invoke.cont409: ; preds = %invoke.cont408 - %call413 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef) - to label %invoke.cont412 unwind label %lpad411 - -invoke.cont412: ; preds = %invoke.cont409 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2094 unwind label %lpad.i2096 - -invoke.cont.i2094: ; preds = %invoke.cont412 - br i1 undef, label %invoke.cont418, label %if.then.i2095 - -if.then.i2095: ; preds = %invoke.cont.i2094 - br label %invoke.cont418 - -lpad.i2096: ; preds = %invoke.cont412 - %tmp380 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -invoke.cont418: ; preds = %if.then.i2095, %invoke.cont.i2094 - invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i32)*)(i8* undef, i8* undef, i8* undef, i32 0) - to label %invoke.cont422 unwind label %lpad381 - -invoke.cont422: ; preds = %invoke.cont418 - %call424 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont423 unwind label %lpad381 - -invoke.cont423: ; preds = %invoke.cont422 - %call427 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef) - to label %invoke.cont426 unwind label %lpad425 - -invoke.cont426: ; preds = %invoke.cont423 - %call430 = invoke i32 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i32 (i8*, i8*)*)(i8* undef, i8* undef) - to label %invoke.cont429 unwind label %lpad428 - -invoke.cont429: ; preds = %invoke.cont426 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2100 unwind label %lpad.i2102 - -invoke.cont.i2100: ; preds = %invoke.cont429 - br i1 undef, label %invoke.cont432, label %if.then.i2101 - -if.then.i2101: ; preds = %invoke.cont.i2100 - br label %invoke.cont432 - -lpad.i2102: ; preds = %invoke.cont429 - %tmp390 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -invoke.cont432: ; preds = %if.then.i2101, %invoke.cont.i2100 - %call436 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 0) - to label %invoke.cont435 unwind label %lpad381 - -invoke.cont435: ; preds = %invoke.cont432 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2106 unwind label %lpad.i2108 - -invoke.cont.i2106: ; preds = %invoke.cont435 - %call444 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 5) - to label %invoke.cont443 unwind label %lpad381 - -lpad.i2108: ; preds = %invoke.cont435 - %tmp396 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -invoke.cont443: ; preds = %invoke.cont.i2106 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2112 unwind label %lpad.i2114 - -invoke.cont.i2112: ; preds = %invoke.cont443 - br i1 undef, label %invoke.cont449, label %if.then.i2113 - -if.then.i2113: ; preds = %invoke.cont.i2112 - br label %invoke.cont449 - -lpad.i2114: ; preds = %invoke.cont443 - %tmp402 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -invoke.cont449: ; preds = %if.then.i2113, %invoke.cont.i2112 - %call453 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 -2) - to label %invoke.cont452 unwind label %lpad381 - -invoke.cont452: ; preds = %invoke.cont449 - %call456 = invoke i32 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i32 (i8*, i8*)*)(i8* undef, i8* undef) - to label %invoke.cont455 unwind label %lpad454 - -invoke.cont455: ; preds = %invoke.cont452 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2118 unwind label %lpad.i2120 - -invoke.cont.i2118: ; preds = %invoke.cont455 - br i1 undef, label %invoke.cont458, label %if.then.i2119 - -if.then.i2119: ; preds = %invoke.cont.i2118 - br label %invoke.cont458 - -lpad.i2120: ; preds = %invoke.cont455 - %tmp408 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -invoke.cont458: ; preds = %if.then.i2119, %invoke.cont.i2118 - %call461 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 -1) - to label %invoke.cont460 unwind label %lpad381 - -invoke.cont460: ; preds = %invoke.cont458 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2124 unwind label %lpad.i2126 - -invoke.cont.i2124: ; preds = %invoke.cont460 - br i1 undef, label %invoke.cont466, label %if.then.i2125 - -if.then.i2125: ; preds = %invoke.cont.i2124 - br label %invoke.cont466 - -lpad.i2126: ; preds = %invoke.cont460 - %tmp414 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - br label %ehcleanup477 - -invoke.cont466: ; preds = %if.then.i2125, %invoke.cont.i2124 - %call470 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 0) - to label %invoke.cont469 unwind label %lpad381 - -invoke.cont469: ; preds = %invoke.cont466 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2130 unwind label %lpad.i2132 - -invoke.cont.i2130: ; preds = %invoke.cont469 - br i1 undef, label %invoke.cont475, label %if.then.i2131 - -if.then.i2131: ; preds = %invoke.cont.i2130 - br label %invoke.cont475 - -lpad.i2132: ; preds = %invoke.cont469 - %tmp420 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - br label %ehcleanup477 - -invoke.cont475: ; preds = %if.then.i2131, %invoke.cont.i2130 - %call491 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 1) - to label %invoke.cont490 unwind label %lpad489 - -invoke.cont490: ; preds = %invoke.cont475 - invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont499 unwind label %lpad498 - -invoke.cont499: ; preds = %invoke.cont490 - %call504 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont503 unwind label %lpad489 - -invoke.cont503: ; preds = %invoke.cont499 - %call507 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 3) - to label %invoke.cont506 unwind label %lpad505 - -invoke.cont506: ; preds = %invoke.cont503 - invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont509 unwind label %lpad508 - -invoke.cont509: ; preds = %invoke.cont506 - %call513 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont512 unwind label %lpad489 - -invoke.cont512: ; preds = %invoke.cont509 - br i1 undef, label %msgSend.null-receiver, label %msgSend.call - -msgSend.call: ; preds = %invoke.cont512 - invoke void bitcast (void (i8*, i8*, ...)* @objc_msgSend_stret to void (%struct.CGPoint*, i8*, i8*)*)(%struct.CGPoint* sret undef, i8* undef, i8* undef) - to label %msgSend.cont unwind label %lpad514 - -msgSend.null-receiver: ; preds = %invoke.cont512 - br label %msgSend.cont - -msgSend.cont: ; preds = %msgSend.null-receiver, %msgSend.call - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2136 unwind label %lpad.i2138 - -invoke.cont.i2136: ; preds = %msgSend.cont - br i1 undef, label %invoke.cont521, label %if.then.i2137 - -if.then.i2137: ; preds = %invoke.cont.i2136 - br label %invoke.cont521 - -lpad.i2138: ; preds = %msgSend.cont - %tmp468 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -invoke.cont521: ; preds = %if.then.i2137, %invoke.cont.i2136 - invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef) - to label %invoke.cont528 unwind label %lpad527 - -invoke.cont528: ; preds = %invoke.cont521 - %call532 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont531 unwind label %lpad489 - -invoke.cont531: ; preds = %invoke.cont528 - %call535 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef) - to label %invoke.cont534 unwind label %lpad533 - -invoke.cont534: ; preds = %invoke.cont531 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2142 unwind label %lpad.i2144 - -invoke.cont.i2142: ; preds = %invoke.cont534 - br i1 undef, label %invoke.cont540, label %if.then.i2143 - -if.then.i2143: ; preds = %invoke.cont.i2142 - br label %invoke.cont540 - -lpad.i2144: ; preds = %invoke.cont534 - %tmp486 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -invoke.cont540: ; preds = %if.then.i2143, %invoke.cont.i2142 - %call544 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i32 3) - to label %invoke.cont543 unwind label %lpad489 - -invoke.cont543: ; preds = %invoke.cont540 - invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef) - to label %invoke.cont546 unwind label %lpad545 - -invoke.cont546: ; preds = %invoke.cont543 - %call549 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont548 unwind label %lpad489 - -invoke.cont548: ; preds = %invoke.cont546 - %call555 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont554 unwind label %lpad553 - -invoke.cont554: ; preds = %invoke.cont548 - %tmp499 = call i8* @objc_retain(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) #3 - invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* %tmp499, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont.i2148 unwind label %lpad.i2150 - -invoke.cont.i2148: ; preds = %invoke.cont554 - call void @objc_release(i8* %tmp499) #3, !clang.imprecise_release !0 - invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont566 unwind label %lpad565 - -lpad.i2150: ; preds = %invoke.cont554 - %tmp500 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - call void @objc_release(i8* %tmp499) #3, !clang.imprecise_release !0 - unreachable - -invoke.cont566: ; preds = %invoke.cont.i2148 - invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) - to label %invoke.cont572 unwind label %lpad571 - -invoke.cont572: ; preds = %invoke.cont566 - %call582 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef) - to label %invoke.cont581 unwind label %lpad580 - -invoke.cont581: ; preds = %invoke.cont572 - unreachable - -lpad156.body: ; preds = %invoke.cont117 - %tmp1157 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad164.body: ; preds = %invoke.cont157 - %tmp1158 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad183: ; preds = %invoke.cont184, %invoke.cont165 - %tmp1159 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - br label %lpad183.body - -lpad183.body: ; preds = %lpad183, %lpad.i2036 - unreachable - -lpad196: ; preds = %invoke.cont190 - %tmp1160 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad200: ; preds = %invoke.cont197 - %tmp1161 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad203: ; preds = %invoke.cont207, %invoke.cont201 - %tmp1162 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad212.body: ; preds = %invoke.cont208 - %tmp1163 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad220: ; preds = %invoke.cont213 - %tmp1164 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - br label %eh.resume - -lpad227: ; preds = %invoke.cont231, %invoke.cont221 - %tmp1166 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - br label %ehcleanup239 - -lpad236.body: ; preds = %invoke.cont232 - %tmp1167 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - br label %ehcleanup239 - -ehcleanup239: ; preds = %lpad236.body, %lpad227 - unreachable - -lpad244: ; preds = %invoke.cont245, %invoke.cont237 - %tmp1168 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad249: ; preds = %invoke.cont247 - %tmp1169 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad252: ; preds = %invoke.cont250 - %tmp1170 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - br label %ehcleanup263 - -lpad255: ; preds = %invoke.cont253 - %tmp1171 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - br label %ehcleanup263 - -lpad258: ; preds = %invoke.cont256 - %tmp1172 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -ehcleanup263: ; preds = %lpad255, %lpad252 - unreachable - -lpad265: ; preds = %invoke.cont259 - %tmp1173 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad273: ; preds = %invoke.cont266 - %tmp1175 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad277: ; preds = %invoke.cont274 - %tmp1176 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad289: ; preds = %invoke.cont281 - %tmp1177 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad301: ; preds = %invoke.cont290 - %tmp1180 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad308: ; preds = %invoke.cont302 - %tmp1182 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad311: ; preds = %invoke.cont309 - %tmp1183 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad314: ; preds = %invoke.cont312 - %tmp1184 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad320: ; preds = %invoke.cont315 - %tmp1186 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad340.body.thread: ; preds = %land.rhs335 - %tmp1188 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad340.body: ; preds = %land.end344 - %tmp1189 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad360: ; preds = %invoke.cont345 - %tmp1191 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - br label %eh.resume - -lpad363: ; preds = %invoke.cont373, %invoke.cont361 - %tmp1192 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad369: ; preds = %invoke.cont364 - %tmp1194 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad381: ; preds = %invoke.cont466, %invoke.cont458, %invoke.cont449, %invoke.cont.i2106, %invoke.cont432, %invoke.cont422, %invoke.cont418, %invoke.cont408, %invoke.cont405, %invoke.cont395, %invoke.cont392, %invoke.cont382, %invoke.cont376 - %tmp1196 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - br label %ehcleanup477 - -lpad398: ; preds = %invoke.cont396 - %tmp1199 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad401: ; preds = %invoke.cont399 - %tmp1200 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad411: ; preds = %invoke.cont409 - %tmp1201 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad425: ; preds = %invoke.cont423 - %tmp1203 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - br label %ehcleanup477 - -lpad428: ; preds = %invoke.cont426 - %tmp1204 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad454: ; preds = %invoke.cont452 - %tmp1207 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -ehcleanup477: ; preds = %lpad425, %lpad381, %lpad.i2132, %lpad.i2126 - unreachable - -lpad489: ; preds = %invoke.cont546, %invoke.cont540, %invoke.cont528, %invoke.cont509, %invoke.cont499, %invoke.cont475 - %tmp1211 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - br label %ehcleanup560 - -lpad498: ; preds = %invoke.cont490 - %tmp1214 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad505: ; preds = %invoke.cont503 - %tmp1215 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad508: ; preds = %invoke.cont506 - %tmp1216 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad514: ; preds = %msgSend.call - %tmp1217 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad527: ; preds = %invoke.cont521 - %tmp1219 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - br label %ehcleanup560 - -lpad533: ; preds = %invoke.cont531 - %tmp1220 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad545: ; preds = %invoke.cont543 - %tmp1222 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad553: ; preds = %invoke.cont548 - %tmp1224 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -ehcleanup560: ; preds = %lpad527, %lpad489 - br label %eh.resume - -lpad565: ; preds = %invoke.cont.i2148 - %tmp1225 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad571: ; preds = %invoke.cont566 - %tmp1227 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - unreachable - -lpad580: ; preds = %invoke.cont572 - %tmp1228 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) - cleanup - br label %eh.resume - -eh.resume: ; preds = %lpad580, %ehcleanup560, %lpad360, %lpad220 - resume { i8*, i32 } undef -} !0 = metadata !{}