https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56574

Manuel López-Ibáñez <manu at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |manu at gcc dot gnu.org

--- Comment #9 from Manuel López-Ibáñez <manu at gcc dot gnu.org> ---
(In reply to Eric Botcazou from comment #8)
> > ISO C99 6.5.13 says that 'value' is not evaluated when !flag is false.  But
> > clearly we are not considering the "side-effect" of using an uninitialized
> > variable when deciding to output straight-line code sequences.
> 
> But evaluating an uninitialized variable is not a side-effect, unless
> accessing the variable itself has a side-effect, so there is no wrong code
> here.

Perhaps the uninit pass can be taught that for a & b when a may be
uninitialized is actually guarded by if(b!=0). I think this will fix the bug
here, no?

Reply via email to