re PR c++/51714 (internal compiler error: Segmentation fault with -std=c++11)

PR c++/51714
	* pt.c (value_dependent_expression_p): Treat STMT_EXPR as
	value-dependent.

From-SVN: r183149
This commit is contained in:
Jason Merrill 2012-01-13 00:05:46 -05:00 committed by Jason Merrill
parent 6fd52f69db
commit f83fa0bf8f
4 changed files with 28 additions and 0 deletions

View file

@ -1,3 +1,9 @@
2012-01-12 Jason Merrill <jason@redhat.com>
PR c++/51714
* pt.c (value_dependent_expression_p): Treat STMT_EXPR as
value-dependent.
2012-01-13 Dodji Seketeli <dodji@redhat.com>
PR c++/51633

View file

@ -19526,6 +19526,11 @@ value_dependent_expression_p (tree expression)
return false;
}
case STMT_EXPR:
/* Treat a GNU statement expression as dependent to avoid crashing
under fold_non_dependent_expr; it can't be constant. */
return true;
default:
/* A constant expression is value-dependent if any subexpression is
value-dependent. */

View file

@ -1,3 +1,8 @@
2012-01-12 Jason Merrill <jason@redhat.com>
PR c++/51714
* g++.dg/ext/stmtexpr14.C: New.
2012-01-13 Dodji Seketeli <dodji@redhat.com>
PR c++/51633

View file

@ -0,0 +1,12 @@
// PR c++/51714
template <typename T>
void Foo()
{
true || !__extension__ ({ int verbose = 2; verbose <= 3; });
}
int main()
{
Foo<int>();
}