diff options
author | Jason Merrill <jason@yorick.cygnus.com> | 1998-07-17 17:19:31 +0000 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 1998-07-17 13:19:31 -0400 |
commit | 6b945830ff8df4a37a2f98a7655da96c056a6931 (patch) | |
tree | 333ccf88c4cd949890d7b253fe2bfe5d624facfb /gcc | |
parent | c3baf4b55a2413dc791ce48f95be38c8c6bcd765 (diff) | |
download | gcc-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/ChangeLog | 2 | ||||
-rw-r--r-- | gcc/cp/decl.c | 14 |
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; } |