From 6f0821f4468b774cefe0a00560ed4bd290835fe2 Mon Sep 17 00:00:00 2001 From: Martin Sebor Date: Fri, 17 Aug 2018 21:58:27 +0000 Subject: re PR testsuite/86996 (gcc.dg/tree-ssa/builtin-sprintf-warn-1.c FAILs) PR testsuite/86996 gcc/testsuite/CHangeLog: * gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Adjust. From-SVN: r263636 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-1.c | 7 ++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b8677d7..3478f11 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-08-17 Martin Sebor + + PR testsuite/86996 + * gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Adjust. + 2018-08-17 David Malcolm * g++.dg/conversion/Wwrite-strings.C: New test. 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 3fb3e6d..a94d123 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 @@ -1558,9 +1558,10 @@ void test_snprintf_c_const (char *d) T (3, "%lc%c", (wint_t)'1', '2'); /* Here %lc may result in anywhere between 0 and MB_CUR_MAX characters - so the minimum number of bytes on output is 2 (plus the terminating - nul), but the likely number is 3 (plus the nul). */ - T (3, "%lc%c%c", (wint_t)'\x80', '2', '3'); /* { dg-warning ".%c. directive output may be truncated writing 1 byte into a region of size between 0 and 2" } */ + so the output range is [0, 2, 6, 6] with the middle being used for + the diagnostic (and the extremes for optimization). The cast is + to prevent sign extension. */ + T (3, "%lc%c%c", (wint_t)(unsigned char)'\x80', '2', '3'); /* { dg-warning ".%c. directive output may be truncated writing 1 byte into a region of size between 0 and 2" } */ /* It's reasonably safe that L'1' converts into the single byte '1'. */ T (3, "%lc%c%c", (wint_t)'1', '2', '3'); /* { dg-warning "output may be truncated" } */ T (3, "%lc%lc%c", (wint_t)'1', (wint_t)'2', '3'); /* { dg-warning "output may be truncated" } */ -- cgit v1.1