diff options
author | Marek Polacek <polacek@redhat.com> | 2017-03-07 17:30:53 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2017-03-07 17:30:53 +0000 |
commit | d8a90142db624db1f1db43de334e98d02a4dcfd2 (patch) | |
tree | b506863f823b1b90ca1ad85d57dff8f3092d452d /gcc/gimple-ssa-warn-alloca.c | |
parent | ec38330401cb7579471079424a62c644d41c0dc3 (diff) | |
download | gcc-d8a90142db624db1f1db43de334e98d02a4dcfd2.zip gcc-d8a90142db624db1f1db43de334e98d02a4dcfd2.tar.gz gcc-d8a90142db624db1f1db43de334e98d02a4dcfd2.tar.bz2 |
re PR middle-end/79809 (ICE in alloca_call_type, at gimple-ssa-warn-alloca.c:282)
PR middle-end/79809
* gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
(alloca_call_type): Likewise.
* g++.dg/Walloca1.C: New test.
From-SVN: r245955
Diffstat (limited to 'gcc/gimple-ssa-warn-alloca.c')
-rw-r--r-- | gcc/gimple-ssa-warn-alloca.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/gimple-ssa-warn-alloca.c b/gcc/gimple-ssa-warn-alloca.c index d553a34..dd41775 100644 --- a/gcc/gimple-ssa-warn-alloca.c +++ b/gcc/gimple-ssa-warn-alloca.c @@ -78,7 +78,8 @@ pass_walloca::gate (function *fun ATTRIBUTE_UNUSED) if (first_time_p) return warn_alloca != 0; - return warn_alloca_limit > 0 || warn_vla_limit > 0; + return ((unsigned HOST_WIDE_INT) warn_alloca_limit > 0 + || (unsigned HOST_WIDE_INT) warn_vla_limit > 0); } // Possible problematic uses of alloca. @@ -278,8 +279,8 @@ alloca_call_type (gimple *stmt, bool is_vla, tree *invalid_casted_type) wide_int min, max; struct alloca_type_and_limit ret = alloca_type_and_limit (ALLOCA_UNBOUNDED); - gcc_assert (!is_vla || warn_vla_limit > 0); - gcc_assert (is_vla || warn_alloca_limit > 0); + gcc_assert (!is_vla || (unsigned HOST_WIDE_INT) warn_vla_limit > 0); + gcc_assert (is_vla || (unsigned HOST_WIDE_INT) warn_alloca_limit > 0); // Adjust warn_alloca_max_size for VLAs, by taking the underlying // type into account. |