https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32497
--- Comment #12 from Valeriy E. Ushakov <uwe at netbsd dot org> --- I've attached updated patch against gcc 6.4.0. If I un-apply that patch to the NetBSD tree with patch -R (i.e. revert the files to their original state as in gcc 6.4.0) I get $ nbmake-landisk insn-emit.o # compile backend/insn-emit.o /home/uwe/work/netbsd/build/tools/bin/shle--netbsdelf-c++ -Os -freorder-blocks -Wall -Wpointer-arith -Wno-sign-compare -Wa,--fatal-warnings -Wno-uninitialized -Wno-maybe-uninitialized -Werror -fPIE -Wno-narrowing -Wno-unused -std=gnu++98 -Wno-stack-protector -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -I. -I/home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/usr.bin/backend/../gcc/arch/sh3el -DIN_GCC -DHAVE_CONFIG_H -I/home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/dist/gcc -I/home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/dist/gcc/. -I/home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/dist/gcc/../include -I/home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/dist/gcc/../libcpp/include -I/home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/dist/gcc/../libdecnumber -I/home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/dist/gcc/../libdecnumber/dpd -I/home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/dist/gcc/../libbacktrace -DTARGET_NAME=\"shle--netbsdelf\" -I/home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/dist/libgcc -I/home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/usr.bin/backend/../../lib/libgcc/libgcov/arch/sh3el --sysroot=/home/uwe/work/netbsd/build/distrib/landisk -DLOCALEDIR=\"/usr/share/locale\" -DNETBSD_NATIVE -I. -DENABLE_SHARED_LIBGCC -c insn-emit.c -o insn-emit.o insn-emit.c:6346:3: error: this decimal constant is unsigned only in ISO C90 [-Werror] return gen_rtx_SET (operand0, ^~~~~~ cc1plus: all warnings being treated as errors [...] $ cat -n insn-emit.c | sed -n '6341,6354p' 6341 rtx 6342 gen_mshflo_l_di (rtx operand0 ATTRIBUTE_UNUSED, 6343 rtx operand1 ATTRIBUTE_UNUSED, 6344 rtx operand2 ATTRIBUTE_UNUSED) 6345 { 6346 return gen_rtx_SET (operand0, 6347 gen_rtx_IOR (DImode, 6348 gen_rtx_AND (DImode, 6349 operand1, 6350 GEN_INT (4294967295L)), 6351 gen_rtx_ASHIFT (DImode, 6352 operand2, 6353 const_int_rtx[MAX_SAVED_CONST_INT + (32)]))); 6354 } and $ nbmake-landisk insn-recog.o # compile backend/insn-recog.o /home/uwe/work/netbsd/build/tools/bin/shle--netbsdelf-c++ -Os -freorder-blocks -Wall -Wpointer-arith -Wno-sign-compare -Wa,--fatal-warnings -Wno-uninitialized -Wno-maybe-uninitialized -Werror -fPIE -Wno-narrowing -Wno-unused -std=gnu++98 -Wno-stack-protector -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -I. -I/home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/usr.bin/backend/../gcc/arch/sh3el -DIN_GCC -DHAVE_CONFIG_H -I/home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/dist/gcc -I/home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/dist/gcc/. -I/home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/dist/gcc/../include -I/home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/dist/gcc/../libcpp/include -I/home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/dist/gcc/../libdecnumber -I/home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/dist/gcc/../libdecnumber/dpd -I/home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/dist/gcc/../libbacktrace -DTARGET_NAME=\"shle--netbsdelf\" -I/home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/dist/libgcc -I/home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/usr.bin/backend/../../lib/libgcc/libgcov/arch/sh3el --sysroot=/home/uwe/work/netbsd/build/distrib/landisk -DLOCALEDIR=\"/usr/share/locale\" -DNETBSD_NATIVE -I. -DENABLE_SHARED_LIBGCC -c insn-recog.c -o insn-recog.o insn-recog.c:1532:7: error: this decimal constant is unsigned only in ISO C90 [-Werror] || XWINT (x4, 0) != -2147483648L ^~ insn-recog.c:5762:5: error: this decimal constant is unsigned only in ISO C90 [-Werror] case -2147483648L: ^~~~ /home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/dist/gcc/config/sh/sh.md:15774:15: error: this decimal constant is unsigned only in ISO C90 [-Werror] DONE; ^ /home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/dist/gcc/config/sh/sh.md:4832:17: error: this decimal constant is unsigned only in ISO C90 [-Werror] (and:SI (match_dup 1) (const_int 1)))) ^~~~ /home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/dist/gcc/config/sh/sh.md:16430:17: error: this decimal constant is unsigned only in ISO C90 [-Werror] (define_split ^ /home/uwe/work/netbsd/ro/src/external/gpl3/gcc.old/dist/gcc/config/sh/sh.md:14012:15: error: this decimal constant is unsigned only in ISO C90 [-Werror] [(set (match_operand:DF 0 "fp_arith_reg_operand" "=f") ^~ cc1plus: all warnings being treated as errors