From 6b85f0a777f0d34dc544bae8a2a7bfaf079692e5 Mon Sep 17 00:00:00 2001 From: Lee Millward Date: Mon, 17 Jul 2006 18:21:15 +0000 Subject: [PATCH] re PR c++/28051 (ICE on invalid conversion operator) PR c++/28051 * search.c (lookup_member): Robustify * g++.dg/template/using10.C: Adjust error markers. From-SVN: r115530 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/search.c | 3 +++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/template/using10.C | 2 +- 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 6f58dcb46984..03438d522d46 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2006-07-17 Lee Millward + + PR c++/28051 + * search.c (lookup_member): Robustify. + 2006-07-15 Volker Reichelt PR c++/28249 diff --git a/gcc/cp/search.c b/gcc/cp/search.c index d706ee11e1b7..ef0f82eefeb9 100644 --- a/gcc/cp/search.c +++ b/gcc/cp/search.c @@ -1192,6 +1192,9 @@ lookup_member (tree xbasetype, tree name, int protect, bool want_type) tree type = NULL_TREE, basetype_path = NULL_TREE; struct lookup_field_info lfi; + if (name == error_mark_node) + return NULL_TREE; + /* rval_binfo is the binfo associated with the found member, note, this can be set with useful information, even when rval is not set, because it must deal with ALL members, not just non-function diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 888077d7a5dd..7d3b19b6caa5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-07-17 Lee Millward + + PR c++/28051 + * g++.dg/template/using10.C: Adjust error markers. + 2006-07-15 Volker Reichelt PR c++/28249 diff --git a/gcc/testsuite/g++.dg/template/using10.C b/gcc/testsuite/g++.dg/template/using10.C index ceed63f9265e..50467e2cd24d 100644 --- a/gcc/testsuite/g++.dg/template/using10.C +++ b/gcc/testsuite/g++.dg/template/using10.C @@ -4,7 +4,7 @@ template struct A {}; template struct B : A { - using A::operator typename A::X; // { dg-error "no type named" } + using A::operator typename A::X; // { dg-error "no type named|members matching" } }; B<0> b; -- 2.47.2