diff options
author | Mike Stump <mrs@wrs.com> | 1999-12-03 03:31:44 +0000 |
---|---|---|
committer | Mike Stump <mrs@gcc.gnu.org> | 1999-12-03 03:31:44 +0000 |
commit | 2fbfe9b812e266e823ba26d423587466f2b1ba4c (patch) | |
tree | 27873de9defd66eddec3c6d525eb56440f812c45 /gcc | |
parent | 38a7fbac35e914fb8a71c2ce9eb88c36f33fb808 (diff) | |
download | gcc-2fbfe9b812e266e823ba26d423587466f2b1ba4c.zip gcc-2fbfe9b812e266e823ba26d423587466f2b1ba4c.tar.gz gcc-2fbfe9b812e266e823ba26d423587466f2b1ba4c.tar.bz2 |
Fix p24939.
From-SVN: r30765
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cp/init.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.mike/s24939.C | 13 |
3 files changed, 20 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index db5dad4..5e34a57 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +1999-12-02 Mike Stump <mrs@wrs.com> + + * init.c (perform_member_init): Handle parse errors better. + 1999-12-01 Mark Mitchell <mark@codesourcery.com> * cp-tree.h (min_tree_cons): Remove. diff --git a/gcc/cp/init.c b/gcc/cp/init.c index 639087a..b0be498 100644 --- a/gcc/cp/init.c +++ b/gcc/cp/init.c @@ -144,6 +144,9 @@ perform_member_init (member, name, init, explicit) decl = build_component_ref (current_class_ref, name, NULL_TREE, explicit); + if (decl == error_mark_node) + return; + /* Deal with this here, as we will get confused if we try to call the assignment op for an anonymous union. This can happen in a synthesized copy constructor. */ diff --git a/gcc/testsuite/g++.old-deja/g++.mike/s24939.C b/gcc/testsuite/g++.old-deja/g++.mike/s24939.C new file mode 100644 index 0000000..3ed8fd1 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.mike/s24939.C @@ -0,0 +1,13 @@ +// Build don't link: + +class A; + +class B { +public: + B(); +private: + A a; // ERROR - +}; + +class A { }; +B::B() { } |