Sorry, forgot the patch. Please find it attached. Best regards,
Thomas On 23/09/16 16:40, Thomas Preudhomme wrote:
Hi, New builtin-sprintf-warn-1.c testcase contains a few regex of the form "\[0-9\]+ bytes" or ". bytes". This does not account for the case where the number of byte is 0 in which case byte would be in the singular form. This caused a FAIL on arm-none-eabi targets. This patch makes the s optional in all cases where the number of bytes is unknown. I did not commit this fix as obvious as people might want to only do the changes for lines where the number of bytes *could* be 0 so I prefer to get review. ChangeLog entry is as follows: *** gcc/testsuite/ChangeLog *** 2016-09-23 Thomas Preud'homme <thomas.preudho...@arm.com> * gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Adjust regex to accept singular form of byte when quantity is unknown. Is this ok for trunk? Best regards, Thomas
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-1.c index e098be92bb0377414b1f9cacf5e4d2a3398e74ec..85dbcd9d6d3a5b1ad810037f03451207284a25b1 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-1.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-1.c @@ -77,13 +77,13 @@ void test_sprintf_c_const (void) T (-1, "%*c", INT_MAX - 1, '1'); T (-1, "%*c", INT_MAX, '1'); T (-1, "X%*c", INT_MAX - 1, '1'); - T (-1, "X%*c", INT_MAX, '1'); /* { dg-warning "directive output of \[0-9\]+ bytes causes result to exceed .INT_MAX." } */ + T (-1, "X%*c", INT_MAX, '1'); /* { dg-warning "directive output of \[0-9\]+ bytes? causes result to exceed .INT_MAX." } */ - T (-1, "%*c%*c", INT_MAX - 1, '1', INT_MAX - 1, '2'); /* { dg-warning "directive output of \[0-9\]+ bytes causes result to exceed .INT_MAX." } */ + T (-1, "%*c%*c", INT_MAX - 1, '1', INT_MAX - 1, '2'); /* { dg-warning "directive output of \[0-9\]+ bytes? causes result to exceed .INT_MAX." } */ T (-1, "%*cX", INT_MAX - 2, '1'); T (-1, "%*cX", INT_MAX - 1, '1'); - T (-1, "%*cX", INT_MAX, '1'); /* { dg-warning "output of \[0-9\]+ bytes causes result to exceed .INT_MAX." } */ + T (-1, "%*cX", INT_MAX, '1'); /* { dg-warning "output of \[0-9\]+ bytes? causes result to exceed .INT_MAX." } */ } /* Exercise the "%p" directive with constant arguments. */ @@ -98,9 +98,9 @@ void test_sprintf_p_const (void) /* The exact output for %p is unspecified by C. Two formats are known: same as %tx (for example AIX) and same as %#tx (for example Solaris). */ - T (0, "%p", (void*)0x1); /* { dg-warning ".%p. directive writing . bytes into a region of size 0" } */ - T (1, "%p", (void*)0x12); /* { dg-warning ".%p. directive writing . bytes into a region of size 1" } */ - T (2, "%p", (void*)0x123); /* { dg-warning ".%p. directive writing . bytes into a region of size 2" } */ + T (0, "%p", (void*)0x1); /* { dg-warning ".%p. directive writing . bytes? into a region of size 0" } */ + T (1, "%p", (void*)0x12); /* { dg-warning ".%p. directive writing . bytes? into a region of size 1" } */ + T (2, "%p", (void*)0x123); /* { dg-warning ".%p. directive writing . bytes? into a region of size 2" } */ /* GLIBC and uClibc treat the ' ' flag with the "%p" directive the same as with signed integer conversions (i.e., it prepends a space). Other @@ -299,7 +299,7 @@ void test_sprintf_chk_s_const (void) when the size of the destination object is unknown. */ T (-1, "%*s", INT_MAX - 1, ""); T (-1, "%*s", INT_MAX, ""); - T (-1, "X%*s", INT_MAX, ""); /* { dg-warning "directive output of \[0-9\]+ bytes causes result to exceed .INT_MAX." } */ + T (-1, "X%*s", INT_MAX, ""); /* { dg-warning "directive output of \[0-9\]+ bytes? causes result to exceed .INT_MAX." } */ /* Multiple directives. */