re PR c++/50901 (ICE: in build_new_op, at cp/call.c:5016)

/cp
2011-10-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50901
	* call.c (build_new_op_1): Handle ABS_EXPR together with the
	other unary EXPR.

/testsuite
2011-10-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50901
	* g++.dg/cpp0x/pr50901.C: New.

From-SVN: r180670
This commit is contained in:
Paolo Carlini 2011-10-30 00:22:53 +00:00 committed by Paolo Carlini
parent 450dfc1951
commit 6908120ace
4 changed files with 21 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2011-10-29 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/50901
* call.c (build_new_op_1): Handle ABS_EXPR together with the
other unary EXPR.
2011-10-28 Paolo Carlini <paolo.carlini@oracle.com>
Revert:

View File

@ -5223,6 +5223,7 @@ build_new_op_1 (enum tree_code code, int flags, tree arg1, tree arg2, tree arg3,
case POSTDECREMENT_EXPR:
case REALPART_EXPR:
case IMAGPART_EXPR:
case ABS_EXPR:
return cp_build_unary_op (code, arg1, candidates != 0, complain);
case ARRAY_REF:

View File

@ -1,3 +1,8 @@
2011-10-29 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/50901
* g++.dg/cpp0x/pr50901.C: New.
2011-10-29 Uros Bizjak <ubizjak@gmail.com>
* gcc.target/i386/fma-check.h (main): Use return 0 instead of exit (0).

View File

@ -0,0 +1,9 @@
// { dg-options "-std=c++0x" }
template<class T> int foo(int a)
{
const unsigned b = a < 0 ? -a : a;
return 0;
}
int i = foo<float>(1);