From 3ca63e1c76b7693b5d3f5ba2567421defc764249 Mon Sep 17 00:00:00 2001 From: Martin Sebor Date: Wed, 4 Mar 2020 10:23:49 -0700 Subject: [PATCH] PR middle-end/81401 - false positive -Wformat-overflow in a loop gcc/testsuite/ChangeLog: * gcc.dg/tree-ssa/builtin-sprintf-warn-24.c: New test. --- gcc/testsuite/ChangeLog | 5 +++++ .../gcc.dg/tree-ssa/builtin-sprintf-warn-24.c | 22 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-24.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 83882d2ecf6..b28eb52f8a5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2020-03-04 Martin Sebor + + PR middle-end/81401 + * gcc.dg/tree-ssa/builtin-sprintf-warn-24.c: New test. + 2020-03-04 Will Schmidt * gcc.target/powerpc/20050603-3.c: Remove XFAILS. diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-24.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-24.c new file mode 100644 index 00000000000..d9109781d84 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-24.c @@ -0,0 +1,22 @@ +/* PR middle-end/81401 - false positive -Wformat-overflow in a loop + { dg-do compile } + { dg-options "-O2 -Wall -Wformat-overflow" } */ + +char a[3]; + +void f (void) +{ + int i, i0 = 0x00; + + for (i = i0; i <= 0xff; ++i) + __builtin_sprintf (a, "%02x", i); // { dg-bogus "\\\[-Wformat-overflow" } +} + +char b[2]; + +void g (void) +{ + int i; + for (i = 0; i < 10; ++i) + __builtin_sprintf (b, "%d", i); // { dg-bogus "\\\[-Wformat-overflow" } +} -- 2.30.2