]> git.ipfire.org Git - thirdparty/gcc.git/commit
c-family: -Wsequence-point and COMPONENT_REF [PR107163]
authorJason Merrill <jason@redhat.com>
Thu, 23 Mar 2023 19:57:39 +0000 (15:57 -0400)
committerJason Merrill <jason@redhat.com>
Fri, 21 Apr 2023 20:27:24 +0000 (16:27 -0400)
commite81e393cd864abcd2de02602bd51e435dc28f418
treec6b9111d9d6228efd28c7e1359c647c6b52e46f3
parentda17a9049ee0a8ca9f93edf137df92e824a7593e
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.c (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.c
gcc/testsuite/g++.dg/warn/Wsequence-point-5.C [new file with mode: 0644]