Commit 98ddffc1 by Nathan Sidwell Committed by Nathan Sidwell

* pt.c (unify): Replace gcc_unreachable with gcc_assert.

From-SVN: r87491
parent 8e3c61c5
2004-09-14 Nathan Sidwell <nathan@codesourcery.com>
* pt.c (unify): Replace gcc_unreachable with gcc_assert.
2004-09-13 Mark Mitchell <mark@codesourcery.com> 2004-09-13 Mark Mitchell <mark@codesourcery.com>
PR c++/16162 PR c++/16162
...@@ -520,7 +524,6 @@ ...@@ -520,7 +524,6 @@
2004-08-25 Nathan Sidwell <nathan@codesourcery.com> 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
* call.c (convert_class_to_reference): Adjust build_int_cst calls. * call.c (convert_class_to_reference): Adjust build_int_cst calls.
(build_user_type_conversion_1, convert_like_real, (build_user_type_conversion_1, convert_like_real,
build_java_interface_fn_ref, build_special_member_call): Likewise. build_java_interface_fn_ref, build_special_member_call): Likewise.
...@@ -546,6 +549,7 @@ ...@@ -546,6 +549,7 @@
* repo.c (extract_string): Reset backquote after one character. * repo.c (extract_string): Reset backquote after one character.
(get_base_filename): Fix indentation. (get_base_filename): Fix indentation.
2004-08-24 Nathan Sidwell <nathan@codesourcery.com> 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
* decl.c (cxx_init_decl_processing): Adjust * decl.c (cxx_init_decl_processing): Adjust
......
...@@ -10109,36 +10109,32 @@ unify (tree tparms, tree targs, tree parm, tree arg, int strict) ...@@ -10109,36 +10109,32 @@ unify (tree tparms, tree targs, tree parm, tree arg, int strict)
return 1; return 1;
default: default:
if (IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (TREE_CODE (parm)))) gcc_assert (IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (TREE_CODE (parm))));
{
/* We must be looking at an expression. This can happen with
/* We're looking at an expression. This can happen with something like:
something like:
template <int I> template <int I>
void foo(S<I>, S<I + 2>); void foo(S<I>, S<I + 2>);
This is a "nondeduced context": This is a "nondeduced context":
[deduct.type] [deduct.type]
The nondeduced contexts are: The nondeduced contexts are:
--A type that is a template-id in which one or more of --A type that is a template-id in which one or more of
the template-arguments is an expression that references the template-arguments is an expression that references
a template-parameter. a template-parameter.
In these cases, we assume deduction succeeded, but don't In these cases, we assume deduction succeeded, but don't
actually infer any unifications. */ actually infer any unifications. */
if (!uses_template_parms (parm) if (!uses_template_parms (parm)
&& !template_args_equal (parm, arg)) && !template_args_equal (parm, arg))
return 1; return 1;
else else
return 0; return 0;
}
gcc_unreachable ();
return 1;
} }
} }
......
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