Nella prima versione, hai avuto istruzioni dopo un'istruzione Terminator, che non era corretta poiché questa istruzione non è mai stata eseguita.
Nella tua seconda versione (non menzionata qui, usa StackOverFlow anziché e -mail private ...) stanno usando %call (nel negozio Inst) prima di definirla ( %call = ...), quindi chiaramente la tua definizione non precede tutti Usa ... ma come ho detto, il negozio non dovrebbe essere dopo l'invoke, perché Invochi è un TerminatorInst.
La soluzione è mettere il tuo negozio nel blocco di base successivo (puoi crearne uno nuovo):
%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
eccetera...