re PR c++/84980 ([concepts] ICE with missing typename in concept)

/cp
2018-09-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84980
	* constraint.cc (finish_shorthand_constraint): Early return if the
	constraint is erroneous.

/testsuite
2018-09-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84980
	* g++.dg/concepts/pr84980.C: New.

From-SVN: r264051
This commit is contained in:
Paolo Carlini 2018-09-03 07:57:33 +00:00 committed by Paolo Carlini
parent add4cbca8c
commit d1dfeff079
4 changed files with 20 additions and 0 deletions

View file

@ -1,3 +1,9 @@
2018-09-03 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/84980
* constraint.cc (finish_shorthand_constraint): Early return if the
constraint is erroneous.
2018-09-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
* decl.c (eval_check_narrowing): Remove.

View file

@ -1259,6 +1259,9 @@ finish_shorthand_constraint (tree decl, tree constr)
if (!constr)
return NULL_TREE;
if (error_operand_p (constr))
return NULL_TREE;
tree proto = CONSTRAINED_PARM_PROTOTYPE (constr);
tree con = CONSTRAINED_PARM_CONCEPT (constr);
tree args = CONSTRAINED_PARM_EXTRA_ARGS (constr);

View file

@ -1,3 +1,8 @@
2018-09-03 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/84980
* g++.dg/concepts/pr84980.C: New.
2018-09-03 Martin Liska <mliska@suse.cz>
PR middle-end/59521

View file

@ -0,0 +1,6 @@
// { dg-do compile { target c++14 } }
// { dg-additional-options "-fconcepts" }
template<T> concept bool C = true; // { dg-error "has not been declared" }
template<C...> struct A;