diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2016-12-02 12:20:42 +0000 |
---|---|---|
committer | Aldy Hernandez <aldyh@gcc.gnu.org> | 2016-12-02 12:20:42 +0000 |
commit | cc9037a6e93f50efae6494a849c09a7ffa4b253f (patch) | |
tree | b3b2507ea996745e577a332a6189812f7b13b5d2 | |
parent | efa68ffca9f9032e795ae84c5642038bd613c253 (diff) | |
download | gcc-cc9037a6e93f50efae6494a849c09a7ffa4b253f.zip gcc-cc9037a6e93f50efae6494a849c09a7ffa4b253f.tar.gz gcc-cc9037a6e93f50efae6494a849c09a7ffa4b253f.tar.bz2 |
re PR middle-end/78328 (wrong wording for unbounded alloc case in -Walloca-larger-than note)
PR middle-end/78328
* gimple-ssa-warn-alloca.c (alloca_call_type): Handle
VR_ANTI_RANGE.
From-SVN: r243174
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/gimple-ssa-warn-alloca.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/Walloca-12.c | 11 |
3 files changed, 19 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 03387cf..afac973 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-12-02 Aldy Hernandez <aldyh@redhat.com> + + PR middle-end/78328 + * gimple-ssa-warn-alloca.c (alloca_call_type): Handle + VR_ANTI_RANGE. + 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/s390/s390.c (s390_save_gprs_to_fprs): Fix RTL sharing diff --git a/gcc/gimple-ssa-warn-alloca.c b/gcc/gimple-ssa-warn-alloca.c index e75f2fa..ae379f9 100644 --- a/gcc/gimple-ssa-warn-alloca.c +++ b/gcc/gimple-ssa-warn-alloca.c @@ -339,6 +339,8 @@ alloca_call_type (gimple *stmt, bool is_vla, tree *invalid_casted_type) { // Fall through. } + else if (range_type == VR_ANTI_RANGE) + return alloca_type_and_limit (ALLOCA_UNBOUNDED); else if (range_type != VR_VARYING) return alloca_type_and_limit (ALLOCA_BOUND_MAYBE_LARGE, max); diff --git a/gcc/testsuite/gcc.dg/Walloca-12.c b/gcc/testsuite/gcc.dg/Walloca-12.c new file mode 100644 index 0000000..5d71cda --- /dev/null +++ b/gcc/testsuite/gcc.dg/Walloca-12.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-options "-Walloca-larger-than=128 -O2" } */ + +void f (void*); + +void g (unsigned int n) +{ + if (n == 7) + n = 11; + f (__builtin_alloca (n)); /* { dg-warning "unbounded use of 'alloca'" } */ +} |