aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@yorick.cygnus.com>1998-07-17 17:19:31 +0000
committerJason Merrill <jason@gcc.gnu.org>1998-07-17 13:19:31 -0400
commit6b945830ff8df4a37a2f98a7655da96c056a6931 (patch)
tree333ccf88c4cd949890d7b253fe2bfe5d624facfb /gcc
parentc3baf4b55a2413dc791ce48f95be38c8c6bcd765 (diff)
downloadgcc-6b945830ff8df4a37a2f98a7655da96c056a6931.zip
gcc-6b945830ff8df4a37a2f98a7655da96c056a6931.tar.gz
gcc-6b945830ff8df4a37a2f98a7655da96c056a6931.tar.bz2
* decl.c (qualify_lookup): Tweak again.
From-SVN: r21266
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog2
-rw-r--r--gcc/cp/decl.c14
2 files changed, 10 insertions, 6 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 7d5fb71f..6562ef6 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,7 @@
1998-07-17 Jason Merrill <jason@yorick.cygnus.com>
+ * 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 274e875..113f230 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;
}