On Tue, Jan 02, 2018 at 04:40:50PM -0700, Jeff Law wrote: > > Attached is the patch with the casts removed (still bootstrapping). > > > > Martin > > > > gcc-printf-lli.diff > > > > > > gcc/ChangeLog: > > > > * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Use > > offset_int::from instead of wide_int::to_shwi. > > (maybe_diag_overlap): Remove assertion. > > Use HOST_WIDE_INT_PRINT_DEC instead of %lli. > > * gimple-ssa-sprintf.c (format_directive): Same. > > (parse_directive): Same. > > (sprintf_dom_walker::compute_format_length): Same. > > (try_substitute_return_value): Same. > > > > gcc/testsuite/ChangeLog: > > > > * gcc.dg/Wrestrict-3.c: New test. > OK.
This broke bootstrap on i686-linux, dir.len is size_t, which isn't always appropriate for HOST_WIDE_INT_PRINT_DEC format. Fixed thusly, committed to trunk as obvious after i686-linux bootstrap went past the previous failure point. 2018-01-04 Jakub Jelinek <ja...@redhat.com> * gimple-ssa-sprintf.c (parse_directive): Cast second dir.len to uhwi. --- gcc/gimple-ssa-sprintf.c.jj 2018-01-03 22:24:36.000000000 +0100 +++ gcc/gimple-ssa-sprintf.c 2018-01-04 00:15:55.950179583 +0100 @@ -3040,7 +3040,7 @@ parse_directive (sprintf_dom_walker::cal "length = " HOST_WIDE_INT_PRINT_UNSIGNED "\n", dir.dirno, (unsigned HOST_WIDE_INT)(size_t)(dir.beg - info.fmtstr), - (int)dir.len, dir.beg, dir.len); + (int)dir.len, dir.beg, (unsigned HOST_WIDE_INT) dir.len); } return len - !*str; Jakub