diff options
author | Martin Sebor <msebor@redhat.com> | 2017-05-01 18:45:46 +0000 |
---|---|---|
committer | Martin Sebor <msebor@gcc.gnu.org> | 2017-05-01 12:45:46 -0600 |
commit | 4d82d0bc4350ce18a5fb64049d24e98dee1235f9 (patch) | |
tree | c201cd6842a51e06c9037be584868c3321320aaa | |
parent | d539a57b063ba16628aa3c58f211b16fadde2afb (diff) | |
download | gcc-4d82d0bc4350ce18a5fb64049d24e98dee1235f9.zip gcc-4d82d0bc4350ce18a5fb64049d24e98dee1235f9.tar.gz gcc-4d82d0bc4350ce18a5fb64049d24e98dee1235f9.tar.bz2 |
gimple-ssa-sprintf.c (format_integer): Set knownrange when it's known.
gcc/ChangeLog:
* gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
known.
gcc/testsuite/ChangeLog:
* tree-ssa/builtin-sprintf-warn-18.c: Adjust to avoid failures
on ILP32 targets.
From-SVN: r247444
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/gimple-ssa-sprintf.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c | 17 |
4 files changed, 18 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c58e417..0157559 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2017-05-01 Martin Sebor <msebor@redhat.com> + + * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's + known. + 2017-05-01 Uros Bizjak <ubizjak@gmail.com> PR target/68491 diff --git a/gcc/gimple-ssa-sprintf.c b/gcc/gimple-ssa-sprintf.c index c3c717d..a3153c1 100644 --- a/gcc/gimple-ssa-sprintf.c +++ b/gcc/gimple-ssa-sprintf.c @@ -1390,6 +1390,7 @@ format_integer (const directive &dir, tree arg) res.range.max = tree_digits (arg, base, dir.prec[1], maybesign, maybebase); res.range.likely = res.range.min; + res.knownrange = true; } res.range.unlikely = res.range.max; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4c2283a..9d69bf7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-05-01 Martin Sebor <msebor@redhat.com> + + * tree-ssa/builtin-sprintf-warn-18.c: Adjust to avoid failures + on ILP32 targets. + 2017-05-01 Tom de Vries <tom@codesourcery.com> * gcc.dg/pr78768.c: Require linker plugin. diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c index 55c3974..961fa48 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c @@ -114,18 +114,15 @@ void test_characters () void test_width_and_precision_out_of_range (char *d) { -#if __LONG_MAX__ == 2147483647 -# define MAX_P1_STR "2147483648" -#elif __LONG_MAX__ == 9223372036854775807 -# define MAX_P1_STR "9223372036854775808" -#endif - - T ("%" MAX_P1_STR "i", 0); /* { dg-warning "width out of range" } */ - /* { dg-warning "result to exceed .INT_MAX. " "" { target *-*-* } .-1 } */ - T ("%." MAX_P1_STR "i", 0); /* { dg-warning "precision out of range" } */ + /* The range here happens to be a property of the compiler, not + one of the target. */ + T ("%9223372036854775808i", 0); /* { dg-warning "width out of range" } */ + /* { dg-warning "result to exceed .INT_MAX." "" { target *-*-* } .-1 } */ + T ("%.9223372036854775808i", 0); /* { dg-warning "precision out of range" } */ + /* { dg-warning "causes result to exceed .INT_MAX." "" { target *-*-* } .-1 } */ /* The following is diagnosed by -Wformat (disabled here). */ - /* T ("%" MAX_P1_STR "$i", 0); */ + /* T ("%9223372036854775808$i", 0); */ } /* Verify that an excessively long directive is truncated and the truncation |