diff options
author | Marek Polacek <polacek@redhat.com> | 2018-01-03 13:30:00 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2018-01-03 13:30:00 +0000 |
commit | e164534f16c838373ab888e0b36ab5e103d32e25 (patch) | |
tree | f84a6b0770f94d4389606d696a09ec5047526a22 | |
parent | e30947eb0b94078f5d87c84fe111434ef5e1191e (diff) | |
download | gcc-e164534f16c838373ab888e0b36ab5e103d32e25.zip gcc-e164534f16c838373ab888e0b36ab5e103d32e25.tar.gz gcc-e164534f16c838373ab888e0b36ab5e103d32e25.tar.bz2 |
re PR c++/83592 (Annoying -Wparentheses warnings)
PR c++/83592
* decl.c (grokdeclarator): Don't warn about MVP in typename context.
* g++.dg/warn/mvp2.C: New test.
From-SVN: r256176
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/decl.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/warn/mvp2.C | 24 |
4 files changed, 36 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 2fe42b2..506684a 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2018-01-03 Marek Polacek <polacek@redhat.com> + + PR c++/83592 + * decl.c (grokdeclarator): Don't warn about MVP in typename context. + 2018-01-03 Jakub Jelinek <jakub@redhat.com> PR preprocessor/83602 diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index f7b03e1..b1c5096 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -10866,10 +10866,11 @@ grokdeclarator (const cp_declarator *declarator, inner_declarator = declarator->declarator; - /* We don't want to warn in parmeter context because we don't + /* We don't want to warn in parameter context because we don't yet know if the parse will succeed, and this might turn out to be a constructor call. */ if (decl_context != PARM + && decl_context != TYPENAME && declarator->parenthesized != UNKNOWN_LOCATION /* If the type is class-like and the inner name used a global namespace qualifier, we need the parens. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d2c1c96..d4d3804 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-01-03 Marek Polacek <polacek@redhat.com> + + PR c++/83592 + * g++.dg/warn/mvp2.C: New test. + 2018-01-03 Jakub Jelinek <jakub@redhat.com> PR preprocessor/83602 diff --git a/gcc/testsuite/g++.dg/warn/mvp2.C b/gcc/testsuite/g++.dg/warn/mvp2.C new file mode 100644 index 0000000..6e1ffb5 --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/mvp2.C @@ -0,0 +1,24 @@ +// PR c++/83592 +// { dg-do compile } +// { dg-options "-Wparentheses" } + +// Test that -Wparentheses does not give bogus warnings in +// typename context. + +int * +foo (long &a) +{ + return reinterpret_cast<int (*)> (&a); +} + +int * +bar (long &a) +{ + return (int (*)) &a; +} + +int * +baz (int &a) +{ + return static_cast<int (*const)> (&a); +} |