This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Problem with ssa optimization making an uninitialized variable


On Sat, 2004-06-19 at 10:52, Richard Kenner wrote:
> Look at ada/g-socket.adb, line 1083.  Note that V4 has its address taken, so
> that reference is not an unitialized reference.  But I get a warning about it.
> 
> If I look at .t25.phiop1, I see:
> 
> <L81>:;
>   v4.1099_135 = v4;
>   v4.1105_136 = (natural___XDLU_0__2147483647)v4.1099_135;
>   opt.size = v4.1105_136;
> 
> That looks right.
> 
> But in .t26.alias, I have:
> 
> <L81>:;
>   v4.1099_135 = v4_131;
>   v4.1105_136 = (natural___XDLU_0__2147483647)v4.1099_135;
>   opt.size = v4.1105_136;
> 
> That looks wrong with v4_131 undefined.
> 
If you get this, it means that we have been able to remove
TREE_ADDRESSABLE from v4 and now we consider v4 a local variable. 
Either compute_may_aliases got it wrong or the FE is not telling the
optimizers something about v4.  Or maybe v4 really is uninitialized in
the source code?

The specific function that clears TREE_ADDRESSABLE is
tree-ssa-alias.c:setup_pointers_and_addressables.


Diego.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]