aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2013-10-06 21:41:19 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2013-10-06 21:41:19 +0000
commit0e02d8e3759562d76f6299916b36b35a230e1148 (patch)
tree4963ba028981963fff09851c5561e64cc473b0b3 /gcc/testsuite
parent6cb4308702d0333775a1da15f43bcfd949115aeb (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/init/uninitialized1.C12
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'" }