Hi! On Fri, Nov 03, 2017 at 06:07:38PM -0400, Michael Meissner wrote: > This patch fixes PR 82748, which is a compiler abort if you use the old > __builtin_fabsq function when you are changing the long double default from > IBM > double-double format to IEEE. > > The problem is __builtin_fabsq returns a KFmode type, but when you use > -mabi=ieeelongdouble, the float128 type is TFmode.
> --- gcc/config/rs6000/rs6000.c (revision 254357) > +++ gcc/config/rs6000/rs6000.c (working copy) > @@ -16109,39 +16109,11 @@ rs6000_invalid_builtin (enum rs6000_buil > from ia64.c. */ > > static tree > -rs6000_fold_builtin (tree fndecl, int n_args ATTRIBUTE_UNUSED, > - tree *args, bool ignore ATTRIBUTE_UNUSED) > +rs6000_fold_builtin (tree fndecl ATTRIBUTE_UNUSED, > + int n_args ATTRIBUTE_UNUSED, > + tree *args ATTRIBUTE_UNUSED, > + bool ignore ATTRIBUTE_UNUSED) No extra spaces please. If the arguments are always unused, you can simply leave out their name (or comment the name), like static tree rs6000_fold_builtin (tree /*fndecl*/, int /*n_args*/, tree * /*args*/, bool /*ignore*/) or static tree rs6000_fold_builtin (tree, int, tree *, bool) > + case FLOAT128_BUILTIN_TRUNCF128_ODD: > + return rs6000_expand_unop_builtin (TARGET_IEEEQUAD > + ? CODE_FOR_trunctfdf2_odd > + : CODE_FOR_trunckfdf2_odd, exp, > target); The indent is wrong in this one. Rest looks good. Okay for trunk. Thanks! Segher