diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index a3585fce330fc311379ded4825c7e9298d616aa2..cf67ace445a6f9bd6126fc241e24fb15c822d447 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2003-06-17 Mark Mitchell <mark@codesourcery.com> + 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 c4887f1bb8d111e646ba8ac8376565cffae641a9..53f097b2bdf453e3d32610babe1e2abaf0cb647e 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 9c1fcd25707bec08864805d69e166f4289a50d36..ef4631370751acdfb77a22a54d425468809358da 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2003-06-17 Mark Mitchell <mark@codesourcery.com> + + PR c++/1255 + * g++.dg/lookup/using7.C: New test. + 2003-06-17 Mark Mitchell <mark@codesourcery.com> PR c++/11105 diff --git a/gcc/testsuite/g++.dg/lookup/using7.C b/gcc/testsuite/g++.dg/lookup/using7.C new file mode 100644 index 0000000000000000000000000000000000000000..5f187fef56480c01686a0f373973b783a14a8f7e --- /dev/null +++ b/gcc/testsuite/g++.dg/lookup/using7.C @@ -0,0 +1,11 @@ +template <typename T, bool=T::X> struct A +{ + int i; +}; + +template <typename T> struct B : A<T> +{ + using A<T>::i; // { dg-error "" } +}; + +B<void> b; // { dg-error "" }