첫 번째 버전에서는 터미네이터 명령 후 지침이 있었는데,이 명령어가 실행되지 않았기 때문에 잘못되었습니다.
두 번째 버전에서 (여기서 언급되지 않음, 개인 이메일 대신 stackoverFlow를 사용하십시오 ...)는 정의하기 전에 ( %call = ...)를 정의하기 전에 %호출을 사용합니다. 사용 ...하지만 내가 말했듯이, 상점은 호출 후에는 안된다.
솔루션은 매장을 다음 기본 블록에 두는 것입니다 (새 블록을 만들 수 있음).
%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
등...