Commit 3c398f34 by Mark Mitchell Committed by Mark Mitchell

re PR c++/14002 (Friend declaration with template-id causes confusion of function arguments)

	PR c++/14002
	* semantics.c (finish_id_expression): Do not return an
	IDENTIFIER_NODE when lookup finds a PARM_DECL.

	PR c++/14002
	* g++.dg/parse/template13.C: New test.

From-SVN: r77183
parent 83042fca
2004-02-03 Mark Mitchell <mark@codesourcery.com> 2004-02-03 Mark Mitchell <mark@codesourcery.com>
PR c++/14002
* semantics.c (finish_id_expression): Do not return an
IDENTIFIER_NODE when lookup finds a PARM_DECL.
2004-02-03 Mark Mitchell <mark@codesourcery.com>
PR c++/13978 PR c++/13978
* pt.c (build_non_dependent_expr): Do not build * pt.c (build_non_dependent_expr): Do not build
NON_DEPENDENT_EXPRs for FUNCTION_DECLs or TEMPLATE_DECLs. NON_DEPENDENT_EXPRs for FUNCTION_DECLs or TEMPLATE_DECLs.
......
...@@ -2527,7 +2527,8 @@ finish_id_expression (tree id_expression, ...@@ -2527,7 +2527,8 @@ finish_id_expression (tree id_expression,
/* If we found a variable, then name lookup during the /* If we found a variable, then name lookup during the
instantiation will always resolve to the same VAR_DECL instantiation will always resolve to the same VAR_DECL
(or an instantiation thereof). */ (or an instantiation thereof). */
if (TREE_CODE (decl) == VAR_DECL) if (TREE_CODE (decl) == VAR_DECL
|| TREE_CODE (decl) == PARM_DECL)
return decl; return decl;
return id_expression; return id_expression;
} }
......
2004-02-03 Mark Mitchell <mark@codesourcery.com> 2004-02-03 Mark Mitchell <mark@codesourcery.com>
PR c++/14002
* g++.dg/parse/template13.C: New test.
2004-02-03 Mark Mitchell <mark@codesourcery.com>
PR c++/13978 PR c++/13978
* g++.dg/template/koenig4.C: New test. * g++.dg/template/koenig4.C: New test.
......
// PR c++/13975
public: // { dg-error "" }
int i;
protected: // { dg-error "" }
int j;
private: // { dg-error "" }
int k;
// PR c++/14002
template <typename T> void foo (T x) { x; }
void bar() { foo(0); }
struct A
{
friend void foo<int> (int);
};
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