summaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2005-02-15 19:39:31 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2005-02-15 19:39:31 +0000
commite5e459bf3b9d5ff4a4cb3ae26268090ed180ae4e (patch)
tree4bdc26358fdc926dcccf0781aa23884bfcb38b20 /gcc/testsuite
parent39a87435bc42d0802f82b60bf657b3aa5ecbea86 (diff)
downloadgcc-e5e459bf3b9d5ff4a4cb3ae26268090ed180ae4e.tar.gz
re PR c++/17788 (poor diagnostic for missing reference initializer)
gcc/cp/ChangeLog: PR c++/17788 * class.c (add_implicitly_declared_members, check_field_decl) (check_field_decls, check_bases): Remove arguments, tests and assignments of cant_have_default_ctor-related variables. gcc/testsuite/ChangeLog: PR c++/17788 * g++.dg/init/ctor4.C: New. * g++.old-deja/g++.bugs/900205_04.C: Adjust. From-SVN: r95071
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/g++.dg/init/ctor4.C20
-rw-r--r--gcc/testsuite/g++.old-deja/g++.bugs/900205_04.C12
3 files changed, 34 insertions, 4 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4de8e11cef1..1a66c5eddfb 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2005-02-15 Alexandre Oliva <aoliva@redhat.com>
+
+ PR c++/17788
+ * g++.dg/init/ctor4.C: New.
+ * g++.old-deja/g++.bugs/900205_04.C: Adjust.
+
2005-02-15 Joseph S. Myers <joseph@codesourcery.com>
* gcc.dg/overflow-warn-1.c, gcc.dg/overflow-warn-2.c,
diff --git a/gcc/testsuite/g++.dg/init/ctor4.C b/gcc/testsuite/g++.dg/init/ctor4.C
new file mode 100644
index 00000000000..b217b204000
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/ctor4.C
@@ -0,0 +1,20 @@
+// PR c++/17788
+// { dg-do compile }
+
+class foo {
+public:
+ foo();
+};
+
+class bar: public foo {
+private:
+ int &a;
+};
+
+foo::foo() {
+}
+
+int main(int argc, char **argv)
+{
+ bar x; // { dg-error "uninitialized" }
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900205_04.C b/gcc/testsuite/g++.old-deja/g++.bugs/900205_04.C
index e5f59ab63bc..a2c84fadb9e 100644
--- a/gcc/testsuite/g++.old-deja/g++.bugs/900205_04.C
+++ b/gcc/testsuite/g++.old-deja/g++.bugs/900205_04.C
@@ -9,19 +9,23 @@
// keywords: default constructor, inheritance
-struct struct0 {
+// In ISO C++ 1998, such a derived class is not ill-formed, but if the
+// implicitly-declared constructor is used, then it is implicitly
+// defined and found to be ill-formed.
+
+struct struct0 { // { dg-error "note" }
int data_member;
struct0 (int, void *); // suppresses implicit default constructor
};
-struct0::struct0 (int, void *)
+struct0::struct0 (int, void *) // { dg-error "note" }
{
}
-struct struct0_derived_struct_0 : public struct0 { // { dg-error "" }
+struct struct0_derived_struct_0 : public struct0 { // { dg-error "" }
};
-// struct0_derived_struct_0 object; // would give g++ error if compiled
+struct0_derived_struct_0 object;
int main () { return 0; }