On Mon, 2018-12-03 at 23:07:46 UTC, Joel Stanley wrote: > The add_ssaaaa, sub_ddmmss, umul_ppmm and udiv_qrnnd macros originate > from GCC's longlong.h which in turn was copied from GMP's longlong.h a > few decades ago. > > This was found when compiling with clang: > > arch/powerpc/math-emu/fnmsub.c:46:2: error: invalid use of a cast in a > inline asm context requiring an l-value: remove the cast or build with > -fheinous-gnu-extensions > FP_ADD_D(R, T, B); > ^~~~~~~~~~~~~~~~~ > ... > > ./arch/powerpc/include/asm/sfp-machine.h:283:27: note: expanded from > macro 'sub_ddmmss' > : "=r" ((USItype)(sh)), \ > ~~~~~~~~~~^~~ > > Segher points out: this was fixed in GCC over 16 years ago > ( https://gcc.gnu.org/r56600 ), and in GMP (where it comes from) > presumably before that. > > Update the add_ssaaaa, sub_ddmmss, umul_ppmm and udiv_qrnnd macros to > the latest GCC version in order to git rid of the invalid casts. These > were taken as-is from GCC's longlong in order to make future syncs > obvious. Other parts of sfp-machine.h were left as-is as the file > contains more features than present in longlong.h. > > Link: https://github.com/ClangBuiltLinux/linux/issues/260 > Signed-off-by: Joel Stanley <j...@jms.id.au> > Reviewed-by: Nick Desaulniers <ndesaulni...@google.com> > Reviewed-by: Segher Boessenkool <seg...@kernel.crashing.org>
Applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/b682c8692442711684befe413cf93c cheers