https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77709
Bug ID: 77709 Summary: specified destination size warning does not work when cross-compiling from 64 host to 32bit target Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: thopre01 at gcc dot gnu.org Target Milestone: --- Host: x86_64-linux-gnu Target: arm-none-eabi Hi, gcc.dg/tree-ssa/builtin-sprintf-warn-1.c is failing on an arm-none-eabi GCC cross-compiler on x86_64-linux-gnu machine because the following warning are missing: FAIL: gcc.dg/tree-ssa/builtin-sprintf-warn-1.c (test for warnings, line 1222) FAIL: gcc.dg/tree-ssa/builtin-sprintf-warn-1.c (test for warnings, line 1272) FAIL: gcc.dg/tree-ssa/builtin-sprintf-warn-1.c (test for warnings, line 1383) I believe the reason is that -1 would create a MAX_UINT on a 32bit target which would be smaller than an HOST_WIDE_INT_MAX of the 64bit host so the following test would fail: if (dstsize >= HOST_WIDE_INT_MAX) warning_at (gimple_location (info.callstmt), OPT_Wformat_length_, "specified destination size %wu too large", dstsize); I'm not sure if the fault lies in the gimple code or the testsuite though.