Commit 4228ca19 by Nathan Sidwell Committed by Nathan Sidwell

re PR c++/68724 (ice in unify, at cp/pt.c:19902)

	PR c++/68724
	* pt.c (unify): TRAIT_EXPR is an expr.

	PR c++/68724
	* g++.dg/cpp0x/pr68724.C: New.

From-SVN: r239167
parent 98e6e662
2016-08-05 Nathan Sidwell <nathan@acm.org>
PR c++/68724
* pt.c (unify): TRAIT_EXPR is an expr.
2016-08-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/72800
......
......@@ -20269,7 +20269,7 @@ unify (tree tparms, tree targs, tree parm, tree arg, int strict,
/* An unresolved overload is a nondeduced context. */
if (is_overloaded_fn (parm) || type_unknown_p (parm))
return unify_success (explain_p);
gcc_assert (EXPR_P (parm));
gcc_assert (EXPR_P (parm) || TREE_CODE (parm) == TRAIT_EXPR);
expr:
/* We must be looking at an expression. This can happen with
something like:
......
2016-08-05 Nathan Sidwell <nathan@acm.org>
PR c++/68724
* g++.dg/cpp0x/pr68724.C: New.
2016-08-05 Richard Biener <rguenther@suse.de>
* gcc.dg/tree-ssa/ivopt_5.c: Make robust against edge swapping.
......
// PR 68724 ICE in unificiation
// { dg-do compile { target c++11 } }
template <typename _Tp, _Tp>
struct integral_constant
{
};
integral_constant<bool, true> inst;
template <typename _Tp>
struct integral_constant<bool, __is_enum(_Tp)> // { 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