From 3cedc9d8ecaa9ab1412fbcac70a82b874e03a95f Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Tue, 17 Jun 2003 22:24:58 +0000 Subject: re PR c++/10712 (ICE in constructor_name_full, at cp/decl2.c:1255) PR c++/1255 * class.c (handle_using_decl): Robustify. PR c++/1255 * g++.dg/lookup/using3.C: New test. From-SVN: r68118 --- gcc/cp/ChangeLog | 3 +++ gcc/cp/class.c | 3 +++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/lookup/using7.C | 11 +++++++++++ 4 files changed, 22 insertions(+) create mode 100644 gcc/testsuite/g++.dg/lookup/using7.C (limited to 'gcc') diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index a3585fc..cf67ace 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2003-06-17 Mark Mitchell + PR c++/1255 + * class.c (handle_using_decl): Robustify. + PR c++/11105 * cp-tree.h (DECL_CONV_FN_TYPE): New method. * mangle.c (struct globals): Remove internal_mangling_p. diff --git a/gcc/cp/class.c b/gcc/cp/class.c index c4887f1..53f097b 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -1108,6 +1108,9 @@ handle_using_decl (tree using_decl, tree t) tree flist = NULL_TREE; tree old_value; + if (ctype == error_mark_node) + return; + binfo = lookup_base (t, ctype, ba_any, NULL); if (! binfo) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9c1fcd2..ef46313 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2003-06-17 Mark Mitchell + PR c++/1255 + * g++.dg/lookup/using7.C: New test. + +2003-06-17 Mark Mitchell + PR c++/11105 * g++.dg/abi/conv1.C: Remove it. * g++.dg/template/conv7.C: New test. diff --git a/gcc/testsuite/g++.dg/lookup/using7.C b/gcc/testsuite/g++.dg/lookup/using7.C new file mode 100644 index 0000000..5f187fe --- /dev/null +++ b/gcc/testsuite/g++.dg/lookup/using7.C @@ -0,0 +1,11 @@ +template struct A +{ + int i; +}; + +template struct B : A +{ + using A::i; // { dg-error "" } +}; + +B b; // { dg-error "" } -- cgit v1.1