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

From-SVN: r87491
This commit is contained in:
Nathan Sidwell 2004-09-14 12:35:28 +00:00 committed by Nathan Sidwell
parent 8e3c61c577
commit 98ddffc1c1
2 changed files with 24 additions and 24 deletions

View File

@ -1,3 +1,7 @@
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>
PR c++/16162
@ -520,7 +524,6 @@
2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
* call.c (convert_class_to_reference): Adjust build_int_cst calls.
(build_user_type_conversion_1, convert_like_real,
build_java_interface_fn_ref, build_special_member_call): Likewise.
@ -546,6 +549,7 @@
* repo.c (extract_string): Reset backquote after one character.
(get_base_filename): Fix indentation.
2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
* decl.c (cxx_init_decl_processing): Adjust

View File

@ -10109,36 +10109,32 @@ unify (tree tparms, tree targs, tree parm, tree arg, int strict)
return 1;
default:
if (IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (TREE_CODE (parm))))
{
/* We're looking at an expression. This can happen with
something like:
gcc_assert (IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (TREE_CODE (parm))));
/* We must be looking at an expression. This can happen with
something like:
template <int I>
void foo(S<I>, S<I + 2>);
template <int I>
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
the template-arguments is an expression that references
a template-parameter.
--A type that is a template-id in which one or more of
the template-arguments is an expression that references
a template-parameter.
In these cases, we assume deduction succeeded, but don't
actually infer any unifications. */
In these cases, we assume deduction succeeded, but don't
actually infer any unifications. */
if (!uses_template_parms (parm)
&& !template_args_equal (parm, arg))
return 1;
else
return 0;
}
gcc_unreachable ();
return 1;
if (!uses_template_parms (parm)
&& !template_args_equal (parm, arg))
return 1;
else
return 0;
}
}