public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug c++/112765] New: [14 regression] -Wparentheses warning even when extra parens are present @ 2023-11-29 15:51 sss@li-snyder.org 2023-11-29 15:55 ` [Bug c++/112765] " mpolacek at gcc dot gnu.org ` (4 more replies) 0 siblings, 5 replies; 6+ messages in thread From: sss@li-snyder.org @ 2023-11-29 15:51 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112765 Bug ID: 112765 Summary: [14 regression] -Wparentheses warning even when extra parens are present Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: sss@li-snyder.org Target Milestone: --- hi - With a recent checkout of gcc14 (20231129), on a x86_64-pc-linux-gnu host, the following source gives a bogus -Wparentheses warning with -Wall: -------------------------------------------------------------- struct ptr { ptr& operator= (ptr&& __u); explicit operator bool() const; }; ptr getShare (); template<class T> class AnaToolHandle final { public: int getMode (ptr& sharedTool) const; }; template<class T> int AnaToolHandle<T>::getMode (ptr& sharedTool) const { if ((sharedTool = getShare ())) return 0; return 1; } void initialize(AnaToolHandle<int>& jetCleaningTool) { ptr sharedTool; jetCleaningTool.getMode (sharedTool); } -------------------------------------------------------------- $ g++ -c -Wall x.cc x.cc: In instantiation of ‘int AnaToolHandle<T>::getMode(ptr&) const [with T = int]’: x.cc:28:27: required from here 28 | jetCleaningTool.getMode (sharedTool); | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ x.cc:19:31: warning: suggest parentheses around assignment used as truth value [-Wparentheses] 19 | if ((sharedTool = getShare ())) | ^ It is true that there is an assignment used as a truth value, and in the original code this was intentional, which the author signalled by adding an extra pair of parentheses. However, gcc emits the warning even though the extra parentheses are there. (Adding yet another pair of parentheses around the condition does not silence the warning.) This warning does not occcur with gcc 13.2.1 20230728. ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/112765] [14 regression] -Wparentheses warning even when extra parens are present 2023-11-29 15:51 [Bug c++/112765] New: [14 regression] -Wparentheses warning even when extra parens are present sss@li-snyder.org @ 2023-11-29 15:55 ` mpolacek at gcc dot gnu.org 2023-11-29 16:34 ` ppalka at gcc dot gnu.org ` (3 subsequent siblings) 4 siblings, 0 replies; 6+ messages in thread From: mpolacek at gcc dot gnu.org @ 2023-11-29 15:55 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112765 Marek Polacek <mpolacek at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mpolacek at gcc dot gnu.org, | |ppalka at gcc dot gnu.org Keywords| |diagnostic Target Milestone|--- |14.0 Last reconfirmed| |2023-11-29 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Confirmed, started with r14-4111: commit 6e92a6a2a72d3b7a5e1b29042d8a6a43fe1085aa Author: Patrick Palka <ppalka@redhat.com> Date: Mon Sep 18 14:47:52 2023 -0400 c++: non-dependent assignment checking [PR63198, PR18474] ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/112765] [14 regression] -Wparentheses warning even when extra parens are present 2023-11-29 15:51 [Bug c++/112765] New: [14 regression] -Wparentheses warning even when extra parens are present sss@li-snyder.org 2023-11-29 15:55 ` [Bug c++/112765] " mpolacek at gcc dot gnu.org @ 2023-11-29 16:34 ` ppalka at gcc dot gnu.org 2023-11-29 21:42 ` cvs-commit at gcc dot gnu.org ` (2 subsequent siblings) 4 siblings, 0 replies; 6+ messages in thread From: ppalka at gcc dot gnu.org @ 2023-11-29 16:34 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112765 Patrick Palka <ppalka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|unassigned at gcc dot gnu.org |ppalka at gcc dot gnu.org Status|NEW |ASSIGNED ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/112765] [14 regression] -Wparentheses warning even when extra parens are present 2023-11-29 15:51 [Bug c++/112765] New: [14 regression] -Wparentheses warning even when extra parens are present sss@li-snyder.org 2023-11-29 15:55 ` [Bug c++/112765] " mpolacek at gcc dot gnu.org 2023-11-29 16:34 ` ppalka at gcc dot gnu.org @ 2023-11-29 21:42 ` cvs-commit at gcc dot gnu.org 2023-11-29 22:03 ` cvs-commit at gcc dot gnu.org 2023-11-29 22:04 ` ppalka at gcc dot gnu.org 4 siblings, 0 replies; 6+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2023-11-29 21:42 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112765 --- Comment #2 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Patrick Palka <ppalka@gcc.gnu.org>: https://gcc.gnu.org/g:220fe41fd4085e91a49e62dd815628ec4883a4ea commit r14-5976-g220fe41fd4085e91a49e62dd815628ec4883a4ea Author: Patrick Palka <ppalka@redhat.com> Date: Wed Nov 29 16:42:39 2023 -0500 c++: bogus -Wparentheses warning [PR112765] We need to consistently look through implicit INDIRECT_REF when setting/checking for -Wparentheses warning suppression. In passing use the recently introduced STRIP_REFERENCE_REF helper some more. PR c++/112765 gcc/cp/ChangeLog: * pt.cc (tsubst_expr) <case MODOP_EXPR>: Look through implicit INDIRECT_REF when propagating -Wparentheses warning suppression. * semantics.cc (maybe_warn_unparenthesized_assignment): Replace REFERENCE_REF_P handling with STRIP_REFERENCE_REF. (finish_parenthesized_expr): Likewise. gcc/testsuite/ChangeLog: * g++.dg/warn/Wparentheses-33.C: New test. ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/112765] [14 regression] -Wparentheses warning even when extra parens are present 2023-11-29 15:51 [Bug c++/112765] New: [14 regression] -Wparentheses warning even when extra parens are present sss@li-snyder.org ` (2 preceding siblings ...) 2023-11-29 21:42 ` cvs-commit at gcc dot gnu.org @ 2023-11-29 22:03 ` cvs-commit at gcc dot gnu.org 2023-11-29 22:04 ` ppalka at gcc dot gnu.org 4 siblings, 0 replies; 6+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2023-11-29 22:03 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112765 --- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Patrick Palka <ppalka@gcc.gnu.org>: https://gcc.gnu.org/g:0b242afffdddc251eca96b37c59802aa66197be7 commit r14-5977-g0b242afffdddc251eca96b37c59802aa66197be7 Author: Patrick Palka <ppalka@redhat.com> Date: Wed Nov 29 16:47:12 2023 -0500 c++: fix testcase [PR112765] PR c++/112765 gcc/testsuite/ChangeLog: * g++.dg/warn/Wparentheses-33.C: Compile with -Wparentheses. ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/112765] [14 regression] -Wparentheses warning even when extra parens are present 2023-11-29 15:51 [Bug c++/112765] New: [14 regression] -Wparentheses warning even when extra parens are present sss@li-snyder.org ` (3 preceding siblings ...) 2023-11-29 22:03 ` cvs-commit at gcc dot gnu.org @ 2023-11-29 22:04 ` ppalka at gcc dot gnu.org 4 siblings, 0 replies; 6+ messages in thread From: ppalka at gcc dot gnu.org @ 2023-11-29 22:04 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112765 Patrick Palka <ppalka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution|--- |FIXED --- Comment #4 from Patrick Palka <ppalka at gcc dot gnu.org> --- Should be fixed, thanks for the bug report. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-11-29 22:04 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-11-29 15:51 [Bug c++/112765] New: [14 regression] -Wparentheses warning even when extra parens are present sss@li-snyder.org 2023-11-29 15:55 ` [Bug c++/112765] " mpolacek at gcc dot gnu.org 2023-11-29 16:34 ` ppalka at gcc dot gnu.org 2023-11-29 21:42 ` cvs-commit at gcc dot gnu.org 2023-11-29 22:03 ` cvs-commit at gcc dot gnu.org 2023-11-29 22:04 ` ppalka at gcc dot gnu.org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).