[Bug c++/97278] New: increment or decrement operator on the same object

tangyixuan at mail dot dlut.edu.cn gcc-bugzilla@gcc.gnu.org
Sat Oct 3 06:43:31 GMT 2020


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

            Bug ID: 97278
           Summary: increment or decrement operator on the same object
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: tangyixuan at mail dot dlut.edu.cn
  Target Milestone: ---

Hi, the parameters of 'func' are based on the values of 'i'. if 'a' is 4, does
it mean that 'i' is increased after '++i' and 'i++'? So, why the value of 'b'
is 2?

$ cat s.cpp

#include <iostream>
using namespace std;
int func(int a, int b)
{
    cout << a << " " << b <<"\n";
    return a << b;
}
int main()
{
    int i = 2;
    cout << func(++i, i++) << "\n";
};

$ g++ s.cpp
$ ./a.out
4 2
16

$ clang++ s.cpp
$ ./a.out
3 3
24


More information about the Gcc-bugs mailing list