In Ihrer ersten Version hatten Sie nach einer Terminator -Anweisung Anweisung, die nicht falsch war, da diese Anweisung nie ausgeführt wurde.
In Ihrer zweiten Version (hier nicht erwähnt, verwenden Sie bitte Stackoverflow anstelle von privaten E -Mails ...) verwenden Sie %Call (im Store Inst), bevor Sie ihn definieren ( %Call = ...). Daher ist Ihre Definition eindeutig nicht jedem Voraus Verwenden Sie ... aber wie gesagt, der Laden sollte nicht hinter dem Aufruf sein, da aufgerufen wird ein Terminatorinst.
Die Lösung besteht darin, Ihr Geschäft in den nächsten Basisblock zu setzen (Sie können eine neue erstellen):
%invoke.cont
%call = invoke i8* @_ZNKSs5c_strEv(%"class.std::basic_string"* @loadedFile)
to label %invoke.cont2_before unwind label %lpad1
invoke.cont2_before: ; preds = %invoke.cont
store i8* %call, i8** %reduced_var
br label %invoke.cont2
invoke.cont2: ; preds = %main_block, %invoke.cont2_before
%call4 = invoke i32 @_ZStorSt13_Ios_OpenmodeS_(i32 8, i32 16)
to label %invoke.cont3_before unwind label %lpad1
etc...