fold_builtin_fabs and fold_builtin_abs had code to handle constant arguments, but this simply duplicated what the following fold_build1_loc would do for ABS_EXPR.
Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi. OK to install? Thanks, Richard gcc/ * builtins.c (fold_builtin_fabs): Remove constant handling. (fold_builtin_abs): Likewise. diff --git a/gcc/builtins.c b/gcc/builtins.c index ed0030d..a03dffc 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -7847,8 +7847,6 @@ fold_builtin_fabs (location_t loc, tree arg, tree type) return NULL_TREE; arg = fold_convert_loc (loc, type, arg); - if (TREE_CODE (arg) == REAL_CST) - return fold_abs_const (arg, type); return fold_build1_loc (loc, ABS_EXPR, type, arg); } @@ -7861,8 +7859,6 @@ fold_builtin_abs (location_t loc, tree arg, tree type) return NULL_TREE; arg = fold_convert_loc (loc, type, arg); - if (TREE_CODE (arg) == INTEGER_CST) - return fold_abs_const (arg, type); return fold_build1_loc (loc, ABS_EXPR, type, arg); }