https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91415
Bug ID: 91415 Summary: Invalid warning for C++17 sequencing of shift operator E1<<E2. Product: gcc Version: 8.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: maxim.yegorushkin at gmail dot com Target Milestone: --- When compiling the following code with g++ (Ubuntu 8.3.0-6ubuntu1~18.04.1) 8.3.0, flags -std=gnu++17 -W{all,extra,error} int main() { int i = 0; int j = i++ << i++; } The following warning/error is produced: test.cc:3:14: error: operation on āiā may be undefined [-Werror=sequence-point] int j = i++ << i++; ~^~ Whereas C++17 in Shift operators [expr.shift] requires that in E1 << E2 the expression E1 is sequenced before the expression E2.