diff options
author | Jakub Jelinek <jakub@gcc.gnu.org> | 2012-06-25 08:48:04 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2012-06-25 08:48:04 +0200 |
commit | f315d61812f705a9e033b84c2d08f8144b042b5b (patch) | |
tree | e7c4f438fc953290040022c894b28e566a34a835 /gcc | |
parent | 511e47fc2fa059e83d412b4598d2c3fcc90dc839 (diff) | |
download | gcc-f315d61812f705a9e033b84c2d08f8144b042b5b.zip gcc-f315d61812f705a9e033b84c2d08f8144b042b5b.tar.gz gcc-f315d61812f705a9e033b84c2d08f8144b042b5b.tar.bz2 |
re PR c++/53594 ([C++11] Spurious -Wuninitialized warning for member with NSDMI)
PR c++/53594
* class.c (check_bases_and_members): Avoid -Wuninitialized
diagnostics for non-static const members or references if they
use NSDMI.
* g++.dg/cpp0x/nsdmi7.C: New test.
From-SVN: r188925
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/cp/class.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/nsdmi7.C | 17 |
4 files changed, 32 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 794b39f7..93233a89 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,4 +1,11 @@ -2012-06-16 Ville Voutilainen <ville.voutilainen@gmail.com> +2012-06-25 Jakub Jelinek <jakub@redhat.com> + + PR c++/53594 + * class.c (check_bases_and_members): Avoid -Wuninitialized + diagnostics for non-static const members or references if they + use NSDMI. + +2012-06-16 Ville Voutilainen <ville.voutilainen@gmail.com> * parser.c (cp_parser_direct_declarator): Move virt-specifier parsing after late-specified return type parsing. diff --git a/gcc/cp/class.c b/gcc/cp/class.c index 021344b..6307e84 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -5122,7 +5122,8 @@ check_bases_and_members (tree t) { tree type; - if (TREE_CODE (field) != FIELD_DECL) + if (TREE_CODE (field) != FIELD_DECL + || DECL_INITIAL (field) != NULL_TREE) continue; type = TREE_TYPE (field); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7faf774..82bb2d7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-06-25 Jakub Jelinek <jakub@redhat.com> + + PR c++/53594 + * g++.dg/cpp0x/nsdmi7.C: New test. + 2012-06-24 Kai Tietz <ktietz@redhat.com> * gcc.target/i386/pr23943.c (size_t): Use compatible type-definition diff --git a/gcc/testsuite/g++.dg/cpp0x/nsdmi7.C b/gcc/testsuite/g++.dg/cpp0x/nsdmi7.C new file mode 100644 index 0000000..ea19577 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/nsdmi7.C @@ -0,0 +1,17 @@ +// PR c++/53594 +// { dg-do compile } +// { dg-options "-std=c++11 -Wuninitialized" } + +struct A +{ + const int a = 6; // { dg-bogus "non-static const member" } + static int b; + int &c = b; // { dg-bogus "non-static reference" } +}; + +struct B +{ + const int d; // { dg-warning "non-static const member" } + int &e; // { dg-warning "non-static reference" } + int f = 7; +}; |