diff options
| -rw-r--r-- | gcc/cp/ChangeLog | 3 | ||||
| -rw-r--r-- | gcc/cp/class.c | 3 | ||||
| -rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/testsuite/g++.dg/lookup/using7.C | 11 |
4 files changed, 22 insertions, 0 deletions
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 <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 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 <mark@codesourcery.com> + PR c++/1255 + * g++.dg/lookup/using7.C: New test. + +2003-06-17 Mark Mitchell <mark@codesourcery.com> + 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 <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 "" } |
