http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59193

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|---                         |INVALID

--- Comment #9 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Max TenEyck Woodbury from comment #8)
> 
> Re:  Jakub Jelinek
> 
> You admit that different 'tree codes' are generated, so there is a difference
> between the two sequences.  You further admit that -O0 does do some
> optimization, otherwise the machine code emitted would store and discard
> the temporary value because that is what the language standard says should
> happen.  While this is quite trivial in practice, it shows that you place
> your opinion over the exact semantics called for by the standard and lack
> the ability to see that.  That is distinctly disturbing.

The language semantics != middle-end semantics.  There is no temporary variable
if the value is unused and will never be as it is "expanded" to ignore it if
the resulting value is unused.  This is the middle-end semantics of these tree
codes.  If the front-end wants the temporary variable always then it needs to
do the assignment.  The language semantics does not require a temporary
variable to hold the value if the value is unused so the middle-end semantics
of these tree codes fit the bill.

Reply via email to