長い倍精度フィールドを持つユニオンがあります。
フィールドを初期化して関数に渡します。
my_union foo;
foo.long_double = 10.10;
bar = baz(foo);
このコードをコンパイルすると、次のようになります。
the ABI of passing union with long double has changed in GCC 4.4
ここで言及されている変更に関連しているようです: http://gcc.gnu.org/gcc-4.4/changes.html
これは、フィールドとして long double を持つ共用体を渡すことができないということですか? どうしてこれなの?大きな値を格納するために long double を使用したいので、どうすればこれを解決できますか。