On 20.08.21 02:21, H.J. Lu wrote: > This may have broken bootstrap on 32-bit hosts: > https://gcc.gnu.org/pipermail/gcc-regression/2021-August/075209.html The latter has: > ../../src-master/gcc/fortran/simplify.c:4557:22: error: unknown conversion type character ‘l’ in format [-Werror=format=] > 4557 | gfc_error ("Substring start index (" HOST_WIDE_INT_PRINT_DEC > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ HOST_WIDE_INT_PRINT_DEC is: #define HOST_WIDE_INT_PRINT_DEC "%" PRId64 and the latter is something like: "ld" or "lld" I fail to see why that shouldn't work – and also building with: CC="gcc-10 -m32 -fno-lto -O2" CXX="g++-10 -m32 -fno-lto -O2" .../configure --prefix=... --disable-multilib --disable-libstdcxx-pch --enable-multiarch --enable-languages=c,c++,fortran --disable-lto did succeed. Looking at the format checking: gfortran.h:void gfc_error (const char *, ...) ATTRIBUTE_GCC_GFC(1,2); with gfortran.h:#define ATTRIBUTE_GCC_GFC(m, n) __attribute__ ((__format__ (__gcc_gfc__, m, n))) ATTRIBUTE_NONNULL(m) I do see that the C/C++ part (which also uses HOST_WIDE_INT_PRINT_DEC) have some special code for HWI, which is used for via init_dynamic_diag_info contains support for hwi not for gfc_{error,warning} via init_dynamic_gfc_info I did wonder whether that causes the differences (→ attached patch). On the other hand, %ld and %lld are pretty standard – and the comment in the function talks about %w – which is not used (except in spec files and in 'go'). Hence: No idea what's the problem or goes wrong. Maybe the patch is still useful – at least it gives an error when HWI is neither long nor long long ... (Build with and without that patch with the options shown aboved (and 'error:' in stage 1, 2, 3 plus the usual bootstrap on x86-64.) Comments? Tobias ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955