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