re PR middle-end/35265 (__builtin_popcount expansion bug)
2008-02-20 Richard Guenther <rguenther@suse.de> PR middle-end/35265 * builtins.c (validate_arg): If we want an INTEGER_TYPE, be happy with INTEGRAL_TYPE_P. * gcc.dg/builtins-66.c: New testcase. From-SVN: r132485
This commit is contained in:
parent
a99c05392b
commit
4cd8e76f1d
@ -1,3 +1,9 @@
|
||||
2008-02-20 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/35265
|
||||
* builtins.c (validate_arg): If we want an INTEGER_TYPE,
|
||||
be happy with INTEGRAL_TYPE_P.
|
||||
|
||||
2008-02-20 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* fold-const.c (split_tree): Associate floatig-point expressions
|
||||
|
@ -5192,6 +5192,7 @@ expand_builtin_fabs (tree exp, rtx target, rtx subtarget)
|
||||
return NULL_RTX;
|
||||
|
||||
arg = CALL_EXPR_ARG (exp, 0);
|
||||
CALL_EXPR_ARG (exp, 0) = arg = builtin_save_expr (arg);
|
||||
mode = TYPE_MODE (TREE_TYPE (arg));
|
||||
op0 = expand_expr (arg, subtarget, VOIDmode, EXPAND_NORMAL);
|
||||
return expand_abs (mode, op0, target, 0, safe_from_p (target, arg, 1));
|
||||
@ -10749,6 +10750,8 @@ validate_arg (const_tree arg, enum tree_code code)
|
||||
return false;
|
||||
else if (code == POINTER_TYPE)
|
||||
return POINTER_TYPE_P (TREE_TYPE (arg));
|
||||
else if (code == INTEGER_TYPE)
|
||||
return INTEGRAL_TYPE_P (TREE_TYPE (arg));
|
||||
return code == TREE_CODE (TREE_TYPE (arg));
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
2008-02-20 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/35265
|
||||
* gcc.dg/builtins-66.c: New testcase.
|
||||
|
||||
2008-02-20 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* gcc.dg/fold-reassoc-1.c: New testcase.
|
||||
|
11
gcc/testsuite/gcc.dg/builtins-66.c
Normal file
11
gcc/testsuite/gcc.dg/builtins-66.c
Normal file
@ -0,0 +1,11 @@
|
||||
/* { dg-do compile } */
|
||||
|
||||
enum { E0 = 0, E1 = 1, E2 = 2 } e;
|
||||
|
||||
int
|
||||
foo (void)
|
||||
{
|
||||
return __builtin_popcount ((int) e);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-not "__builtin_popcount" } } */
|
Loading…
Reference in New Issue
Block a user