re PR middle-end/32920 (error: type mismatch in binary expression)
2007-07-28 Richard Guenther <rguenther@suse.de> PR middle-end/32920 * fold-const.c (fold_cond_expr_with_comparison): Convert operand zero of MIN/MAX_EXPR to correct type. * gcc.c-torture/compile/pr32920.c: New testcase. From-SVN: r127021
This commit is contained in:
parent
5fcb93f138
commit
539d5e79b5
4 changed files with 29 additions and 4 deletions
|
@ -1,3 +1,9 @@
|
|||
2007-07-28 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/32920
|
||||
* fold-const.c (fold_cond_expr_with_comparison): Convert
|
||||
operand zero of MIN/MAX_EXPR to correct type.
|
||||
|
||||
2007-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||
|
||||
* calls.c (special_function_p, setjmp_call_p, alloca_call_p,
|
||||
|
|
|
@ -4958,7 +4958,9 @@ fold_cond_expr_with_comparison (tree type, tree arg0, tree arg1, tree arg2)
|
|||
build_int_cst (type, 1), 0),
|
||||
OEP_ONLY_CONST))
|
||||
return pedantic_non_lvalue (fold_build2 (MIN_EXPR,
|
||||
type, arg1, arg2));
|
||||
type,
|
||||
fold_convert (type, arg1),
|
||||
arg2));
|
||||
break;
|
||||
|
||||
case LE_EXPR:
|
||||
|
@ -4970,7 +4972,9 @@ fold_cond_expr_with_comparison (tree type, tree arg0, tree arg1, tree arg2)
|
|||
build_int_cst (type, 1), 0),
|
||||
OEP_ONLY_CONST))
|
||||
return pedantic_non_lvalue (fold_build2 (MIN_EXPR,
|
||||
type, arg1, arg2));
|
||||
type,
|
||||
fold_convert (type, arg1),
|
||||
arg2));
|
||||
break;
|
||||
|
||||
case GT_EXPR:
|
||||
|
@ -4982,7 +4986,9 @@ fold_cond_expr_with_comparison (tree type, tree arg0, tree arg1, tree arg2)
|
|||
build_int_cst (type, 1), 0),
|
||||
OEP_ONLY_CONST))
|
||||
return pedantic_non_lvalue (fold_build2 (MAX_EXPR,
|
||||
type, arg1, arg2));
|
||||
type,
|
||||
fold_convert (type, arg1),
|
||||
arg2));
|
||||
break;
|
||||
|
||||
case GE_EXPR:
|
||||
|
@ -4994,7 +5000,9 @@ fold_cond_expr_with_comparison (tree type, tree arg0, tree arg1, tree arg2)
|
|||
build_int_cst (type, 1), 0),
|
||||
OEP_ONLY_CONST))
|
||||
return pedantic_non_lvalue (fold_build2 (MAX_EXPR,
|
||||
type, arg1, arg2));
|
||||
type,
|
||||
fold_convert (type, arg1),
|
||||
arg2));
|
||||
break;
|
||||
case NE_EXPR:
|
||||
break;
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2007-07-28 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* gcc.c-torture/compile/pr32920.c: New testcase.
|
||||
|
||||
2007-07-28 Simon Martin <simartin@users.sourceforge.net>
|
||||
|
||||
PR c++/30917
|
||||
|
|
7
gcc/testsuite/gcc.c-torture/compile/pr32920.c
Normal file
7
gcc/testsuite/gcc.c-torture/compile/pr32920.c
Normal file
|
@ -0,0 +1,7 @@
|
|||
int a;
|
||||
void
|
||||
foo(void)
|
||||
{
|
||||
char buf[10];
|
||||
a = a < sizeof(buf) ? a : sizeof (buf);
|
||||
}
|
Loading…
Add table
Reference in a new issue