私はユーティリティライブラリの一部であり、C++ Builderでコンパイルして実行すると作成されたユニットテストに失敗しています。問題関数は以下の通りです。単体テストを実行すると、プログラムは行fldcw controlWord
にスタックしており、それを越えて移動することはできません。それは決して起こらない何かを待っているようです。何か案は?問題設定FPUコントロールワード
void FPUControl::setControlWord(short controlWord)
{
// set the control word - note this assembly construct works on
// Visual C++ and Borland C++, but may need to be changed for other
// compilers
#ifndef __GNUC__
__asm
{
fldcw controlWord
}
#else
asm volatile
(
"fldcw %[controlWord]"
:
: [controlWord] "m" (controlWord)
);
#endif
}
これを行う前にFPUをリセットして、すぐに例外が発生しないようにしてください。 FNINIT。 –