diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 7d5fb71f9ae..6562ef6dae0 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,7 @@ 1998-07-17 Jason Merrill + * decl.c (qualify_lookup): Tweak again. + * pt.c (lookup_template_class): Don't mess with the context of the instantiation. * decl2.c (current_decl_namespace): Remove special handling for diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 274e875fbeb..113f23038a3 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -4880,12 +4880,14 @@ qualify_lookup (val, flags) { if (val == NULL_TREE) return val; - if (LOOKUP_NAMESPACES_ONLY (flags) && TREE_CODE (val) != NAMESPACE_DECL) - return NULL_TREE; - if (LOOKUP_TYPES_ONLY (flags) && TREE_CODE (val) != TYPE_DECL - && ! ((flags & LOOKUP_TEMPLATES_EXPECTED) - && TREE_CODE (val) == TEMPLATE_DECL - && DECL_CLASS_TEMPLATE_P (val))) + if ((flags & LOOKUP_PREFER_NAMESPACES) && TREE_CODE (val) == NAMESPACE_DECL) + return val; + if ((flags & LOOKUP_PREFER_TYPES) + && (TREE_CODE (val) == TYPE_DECL + || ((flags & LOOKUP_TEMPLATES_EXPECTED) + && DECL_CLASS_TEMPLATE_P (val)))) + return val; + if (flags & (LOOKUP_PREFER_NAMESPACES | LOOKUP_PREFER_TYPES)) return NULL_TREE; return val; }