------- Comment #9 from matz at suse dot de 2005-11-09 14:49 ------- A shorter testcase (which at least breaks on SuSEs 3.3-hammer compiler) is: --------------------------------------- typedef union value { long double d; } Value;
double ld2d(Value v) { return v.d; } --------------------------------------- The problem seems to be that the register containing the union is TImode, which gets converted to TFmode via subreg, which in turn is truncated to DFmode via float_truncate, which somehow confuses gcc. -- matz at suse dot de changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |matz at suse dot de http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24661