私はこの件について本当に混乱しています。Xcode で LLVM 4.1 コンパイラを使用しています。このような単純な基本コードを 32 ビットまたは x64 または x64-x86 モードで ARC をオフにしてコンパイルすると、すべて問題ありませんが、自動参照カウント モードでコンパイルすると、エラーが発生しますBAD_ACCESS
。
これはサンプルコードです:
-(void) doNothing{
__asm__ volatile(
"pushl %ebp;"
"movl %esp , %ebp ;"
"movl %eax , -4(%ebp);"
"movl %ebp, %esp;"
"popl %ebp;"
"leave;"
"ret " // retl in x86
);
}
エラーの原因を突き止めようとしたところ、ARC モードで動作するのはプッシュ/ポップだけであることがわかりました。
過去にインライン アセンブリで巨大なコードを書いたことがあり、ARC を使用してモジュールに結合する必要があるため、非常にイライラします。解決できない場合は、ARC なしで動作するようにすべてのモジュールを修正する必要があるかもしれません。
誰でもそれについて私を助けることができますか?