В вашей первой версии у вас была инструкция после инструкции Terminator, которая была неверной, поскольку эта инструкция никогда не выполняется.
Во второй версии (не упомянутой здесь, пожалуйста, используйте Stackoverflow вместо личных электронных писем ...), используют %call (в Store Inst) перед его определением ( %call = ...), так что ваше определение не предшествует каждому Используйте ... но, как я уже сказал, магазин не должен быть после вызова, потому что Avoke является терминатором.
Решение состоит в том, чтобы поместить ваш магазин в следующем базовом блоке (вы можете создать новый):
%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
так далее...