This is the mail archive of the gcc-bugs@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]

[Bug c++/32133] New: Post-increment gained unintuitive behaviour


I noticed a change in the implementation of the post-increment (i++) operator
in gcc 4.0.1 (Apple build 5367).
The behaviour can be seen with the following code:
---
  i += i++;
---
In older versions (< 4) of g++ the 'original' variable is returned by ++,
meaning that the statement given has the effect of doubling the value of i. The
new version of ++ seems to return the 'copy', leading to i just being
incremented by one in the end.
The situation I think of as the most intuitive would be something like this:
---
  (i += i)++
---
I realise though that operator precedence prohibits such behaviour.
The following two lines demonstrate, however, why I think the old behaviour is
desired over the new one:
---
  (i++ < i); //Used to be true, now false
  (i > i++); //Idem
---
Modern versions even make this true:
---
  i++ == i++
---
Which, I think, is not what one wants.

Regards,
- Jouke


-- 
           Summary: Post-increment gained unintuitive behaviour
           Product: gcc
           Version: 4.0.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: j dot witteveen at gmail dot com


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


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