Commit d5467e20 by Jason Merrill Committed by Jason Merrill

call.c (build_new_op): Give better error for syntactically correct...

	* call.c (build_new_op): Give better error for syntactically
 	correct, but semantically invalid, use of undeclared template.

From-SVN: r15506
parent 6c1d5706
Tue Sep 16 14:06:56 1997 Jason Merrill <jason@yorick.cygnus.com> Tue Sep 16 14:06:56 1997 Jason Merrill <jason@yorick.cygnus.com>
* call.c (build_new_op): Give better error for syntactically
correct, but semantically invalid, use of undeclared template.
* call.c (compare_qual): Handle pmfs. * call.c (compare_qual): Handle pmfs.
* decl.c (store_parm_decls): last_parm_cleanup_insn is the insn * decl.c (store_parm_decls): last_parm_cleanup_insn is the insn
......
...@@ -4421,7 +4421,7 @@ build_user_type_conversion_1 (totype, expr, flags) ...@@ -4421,7 +4421,7 @@ build_user_type_conversion_1 (totype, expr, flags)
(USER_CONV, (USER_CONV,
(DECL_CONSTRUCTOR_P (cand->fn) (DECL_CONSTRUCTOR_P (cand->fn)
? totype : non_reference (TREE_TYPE (TREE_TYPE (cand->fn)))), ? totype : non_reference (TREE_TYPE (TREE_TYPE (cand->fn)))),
NULL_TREE, cand->fn, cand->convs, cand->basetype_path); expr, cand->fn, cand->convs, cand->basetype_path);
ICS_USER_FLAG (cand->second_conv) = 1; ICS_USER_FLAG (cand->second_conv) = 1;
if (cand->viable == -1) if (cand->viable == -1)
ICS_BAD_FLAG (cand->second_conv) = 1; ICS_BAD_FLAG (cand->second_conv) = 1;
...@@ -4672,6 +4672,14 @@ build_new_op (code, flags, arg1, arg2, arg3) ...@@ -4672,6 +4672,14 @@ build_new_op (code, flags, arg1, arg2, arg3)
|| arg3 == error_mark_node) || arg3 == error_mark_node)
return error_mark_node; return error_mark_node;
/* This can happen if a template takes all non-type parameters, e.g.
undeclared_template<1, 5, 72>a; */
if (code == LT_EXPR && TREE_CODE (arg1) == TEMPLATE_DECL)
{
cp_error ("`%D' must be declared before use", arg1);
return error_mark_node;
}
if (code == MODIFY_EXPR) if (code == MODIFY_EXPR)
{ {
code2 = TREE_CODE (arg3); code2 = TREE_CODE (arg3);
......
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