Commit 77278f4a by Jason Merrill Committed by Jason Merrill

re PR c++/43069 (ICE: tree check: expected tree that contains 'decl minimal'…

re PR c++/43069 (ICE: tree check: expected tree that contains 'decl minimal' structure, have 'overload' in set_decl_namespace, at cp/name-lookup.c:3105)

	PR c++/43069
	* name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
	decl we looked up doesn't match.

From-SVN: r156841
parent 85a52ea5
2010-02-17 Jason Merrill <jason@redhat.com>
PR c++/43069
* name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
decl we looked up doesn't match.
PR c++/43093
* cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
have an INIT_EXPR anymore.
......
......@@ -3102,7 +3102,8 @@ set_decl_namespace (tree decl, tree scope, bool friendp)
if (!is_overloaded_fn (decl))
{
/* We might have found OLD in an inline namespace inside SCOPE. */
DECL_CONTEXT (decl) = DECL_CONTEXT (old);
if (TREE_CODE (decl) == TREE_CODE (old))
DECL_CONTEXT (decl) = DECL_CONTEXT (old);
/* Don't compare non-function decls with decls_match here, since
it can't check for the correct constness at this
point. pushdecl will find those errors later. */
......
2010-02-17 Jason Merrill <jason@redhat.com>
PR c++/43069
* g++.dg/parse/namespace11.C: New.
PR c++/43093
* g++.dg/ext/attrib37.C: New.
......
// PR c++/43069
namespace std {
template < typename >
void swap ();
}
template std::swap // { dg-error "" }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment