re PR c++/12515 (Use of ?: operator in templated class causes ICE)

PR c++/12515
	* pt.c (build_non_dependent_expr): Handle GNU extension to ?:
	operator.

	PR c++/12515
	* g++.dg/ext/cond1.C: New test.

From-SVN: r73820
This commit is contained in:
Mark Mitchell 2003-11-21 22:16:02 +00:00 committed by Mark Mitchell
parent 0ba5c8a2be
commit 40bec50896
4 changed files with 18 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2003-11-21 Mark Mitchell <mark@codesourcery.com>
PR c++/12515
* pt.c (build_non_dependent_expr): Handle GNU extension to ?:
operator.
2003-11-21 Jan Hubicka <jh@suse.cz>
* parser.c (cp_parser_postfix_expression): Initialize 's' to

View File

@ -11893,7 +11893,9 @@ build_non_dependent_expr (tree expr)
return build (COND_EXPR,
TREE_TYPE (expr),
TREE_OPERAND (expr, 0),
build_non_dependent_expr (TREE_OPERAND (expr, 1)),
(TREE_OPERAND (expr, 1)
? build_non_dependent_expr (TREE_OPERAND (expr, 1))
: build_non_dependent_expr (TREE_OPERAND (expr, 0))),
build_non_dependent_expr (TREE_OPERAND (expr, 2)));
if (TREE_CODE (expr) == COMPOUND_EXPR
&& !COMPOUND_EXPR_OVERLOADED (expr))

View File

@ -1,3 +1,8 @@
2003-11-21 Mark Mitchell <mark@codesourcery.com>
PR c++/12515
* g++.dg/ext/cond1.C: New test.
2003-11-20 Richard Henderson <rth@redhat.com>
* gcc.dg/20020201-2.c: Remove.

View File

@ -0,0 +1,4 @@
// PR c++/12515
// { dg-do compile }
// { dg-options "" }
template<int> void foo() { 0 ?: 0; }