[Bug middle-end/82123] [7/8 regression] spurious -Wformat-overflow warning for converted vars

aldyh at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Jan 15 19:36:00 GMT 2018


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82123

--- Comment #6 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #2)
> This is the typical case of value range info being more precise during vrp
> pass (where we have ASSERT_EXPRs) rather than elsewhere (where we don't have
> them and pin_3 here is set before the condition).  Supposedly the planed on
> demand value range stuff could help there, but I have no idea for ETA on
> that.

I haven't looked into this deeply, but for the record, the future on-demand
range work seems to have enough information to see that the path into the
sprintf has pin within the [0,255] range:

----- BB3 -----
   Ranges on entry :
     s_2(D) : [0, 255] short unsigned int
     pin_3 : [0, 255] unsigned int

  <bb 3> [0.00%] [count: INV]:
  __builtin_sprintf (&name, "%02X", pin_3);


More information about the Gcc-bugs mailing list