diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2013-10-06 21:41:19 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2013-10-06 21:41:19 +0000 |
commit | 0e02d8e3759562d76f6299916b36b35a230e1148 (patch) | |
tree | 4963ba028981963fff09851c5561e64cc473b0b3 /gcc/testsuite | |
parent | 6cb4308702d0333775a1da15f43bcfd949115aeb (diff) | |
download | gcc-0e02d8e3759562d76f6299916b36b35a230e1148.zip gcc-0e02d8e3759562d76f6299916b36b35a230e1148.tar.gz gcc-0e02d8e3759562d76f6299916b36b35a230e1148.tar.bz2 |
re PR c++/58126 (No diagnostic when inheriting an uninitialized const or reference member)
/cp
2013-10-06 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58126
* class.c (check_bases): Propagate CLASSTYPE_READONLY_FIELDS_NEED_INIT
and CLASSTYPE_REF_FIELDS_NEED_INIT from bases to derived.
* init.c (diagnose_uninitialized_cst_or_ref_member_1): Extend error
messages about uninitialized const and references members to mention
the base class.
/testsuite
2013-10-06 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58126
* g++.dg/init/uninitialized1.C: New.
From-SVN: r203232
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/init/uninitialized1.C | 12 |
2 files changed, 17 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index bc86765..016545a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2013-10-06 Paolo Carlini <paolo.carlini@oracle.com> + PR c++/58126 + * g++.dg/init/uninitialized1.C: New. + +2013-10-06 Paolo Carlini <paolo.carlini@oracle.com> + PR c++/56060 * g++.dg/cpp0x/variadic144.C: New. diff --git a/gcc/testsuite/g++.dg/init/uninitialized1.C b/gcc/testsuite/g++.dg/init/uninitialized1.C new file mode 100644 index 0000000..200c424 --- /dev/null +++ b/gcc/testsuite/g++.dg/init/uninitialized1.C @@ -0,0 +1,12 @@ +// PR c++/58126 + +struct A { + const int value1; + int& value2; +}; + +struct B : A { }; + +A a; // { dg-error "uninitialized const member in 'struct A'|uninitialized reference member in 'struct A'" } + +B b; // { dg-error "uninitialized const member in base 'struct A' of 'struct B'|uninitialized reference member in base 'struct A' of 'struct B'" } |