Hi! On 12/13/21 2:15 PM, Martin Sebor wrote: > On 12/13/21 8:55 AM, Bill Schmidt via Gcc-patches wrote: >> Hi! >> >> PR103623 shows that we ICE if __builtin_pack_longdouble or >> __builtin_unpack_longdouble >> is used when long double is not defined to be the IBM-128 (double-double) >> format. >> To solve this, I introduce a new built-in function attribute "ibmld" that >> enforces >> this requirement. >> >> Tested the fix on a powerpc-e300c3-linux-gnu cross. Bootstrapped and tested >> on >> powerpc64le-linux-gnu with no regressions. Is this okay for trunk? > > Just a minor note about the format of the new error message > below: > > ... >> diff --git a/gcc/config/rs6000/rs6000-call.c >> b/gcc/config/rs6000/rs6000-call.c >> index d9736eaf21c..b6f0c6c4c08 100644 >> --- a/gcc/config/rs6000/rs6000-call.c >> +++ b/gcc/config/rs6000/rs6000-call.c >> @@ -15741,6 +15741,13 @@ rs6000_expand_new_builtin (tree exp, rtx target, >> return const0_rtx; >> } >> + if (bif_is_ibmld (*bifaddr) && !FLOAT128_2REG_P (TFmode)) >> + { >> + error ("%<%s%> requires long double to be IBM 128-bit format", > > as a keyword long double should be quoted in the message.
Thanks, Martin, good point. Sorry for overlooking that! Bill > > Martin