------- Comment #17 from dave at hiauly1 dot hia dot nrc dot ca 2005-12-27
15:00 -------
Subject: Re: [4.1 Regression] (short) ((int)(unsigned short) + (int)) is done
in the wrong type
> Re. comments #14 and #15 -- Dave you really should also say what compiler you
> used, or people will just have to make a guess. They'd probably conclude you
> are testing GCC 3.3 in this case ;-)
The test was only added to 4.2.0 (Kazu's previous comment), so I thought
the compiler under test would be obvious. Some day I'll have to update
the directory names. I just got used to typing "gcc-3.3" ;-)
> Anyway, if the initial RTL is wrong, we either feed wrong code to expand out
> of
> the tree optimizers, or there is a bug in expand itself. Could you check
> whether the .vars tree dump is still alright? You can generate it with
> -fdump-tree-vars.
Here is the .vars tree dump for function f:
;; Function f (f)
f (a)
{
int D.1496;
<bb 2>:
if (a > 0) goto <L3>; else goto <L4>;
<L4>:;
D.1496 = 32768;
goto <bb 4> (<L2>);
<L3>:;
D.1496 = 0;
<L2>:;
return D.1496;
}
Dave
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25125