c-family: -Wsequence-point and COMPONENT_REF [PR107163]
commit0e8fc610fb7112deb8c33c673a52983368dde9b7
authorJason Merrill <jason@redhat.com>
Thu, 23 Mar 2023 19:57:39 +0000 (23 15:57 -0400)
committerJason Merrill <jason@redhat.com>
Tue, 28 Mar 2023 15:26:03 +0000 (28 11:26 -0400)
treedeaa252b7d72c7ef6414e4a4089ebca4017b5256
parent5a923516ae61ddc6dd863891db13189cbf392411
c-family: -Wsequence-point and COMPONENT_REF [PR107163]

The patch for PR91415 fixed -Wsequence-point to treat shifts and ARRAY_REF
as sequenced in C++17, and COMPONENT_REF as well.  But this is unnecessary
for COMPONENT_REF, since the RHS is just a FIELD_DECL with no actual
evaluation, and in this testcase handling COMPONENT_REF as sequenced blows
up fast in a deep inheritance tree.  Instead, look through it.

PR c++/107163

gcc/c-family/ChangeLog:

* c-common.cc (verify_tree): Don't use sequenced handling
for COMPONENT_REF.

gcc/testsuite/ChangeLog:

* g++.dg/warn/Wsequence-point-5.C: New test.
gcc/c-family/c-common.cc
gcc/testsuite/g++.dg/warn/Wsequence-point-5.C [new file with mode: 0644]