diff options
author | Marek Polacek <polacek@redhat.com> | 2018-07-03 14:21:15 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2018-07-03 14:21:15 +0000 |
commit | 3f27391f45bee92884daf6dcf40a652a38a69658 (patch) | |
tree | 2d2556adeab27e19a97452f9eeb0fc7b3f90c73e | |
parent | 2831d6814a2f0f01b7ad4dcda1bf488ffb3addd1 (diff) | |
download | gcc-3f27391f45bee92884daf6dcf40a652a38a69658.zip gcc-3f27391f45bee92884daf6dcf40a652a38a69658.tar.gz gcc-3f27391f45bee92884daf6dcf40a652a38a69658.tar.bz2 |
re PR middle-end/86202 (ICE in get_range_info calling an invalid memcpy() declaration)
PR middle-end/86202
* gimple-fold.c (size_must_be_zero_p): Check the type of the size.
* gcc.dg/Wint-conversion-2.c: New test.
From-SVN: r262344
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/gimple-fold.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/Wint-conversion-2.c | 11 |
4 files changed, 22 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a0b7d35..91f983d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2018-07-03 Marek Polacek <polacek@redhat.com> + + PR middle-end/86202 + * gimple-fold.c (size_must_be_zero_p): Check the type of the size. + 2018-07-03 Richard Biener <rguenther@suse.de> PR ipa/86389 diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c index a31f507..6ce34bf 100644 --- a/gcc/gimple-fold.c +++ b/gcc/gimple-fold.c @@ -645,7 +645,7 @@ size_must_be_zero_p (tree size) if (integer_zerop (size)) return true; - if (TREE_CODE (size) != SSA_NAME) + if (TREE_CODE (size) != SSA_NAME || !INTEGRAL_TYPE_P (TREE_TYPE (size))) return false; wide_int min, max; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c1bfad8..9e6f966 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-07-03 Marek Polacek <polacek@redhat.com> + + PR middle-end/86202 + * gcc.dg/Wint-conversion-2.c: New test. + 2018-07-03 Richard Biener <rguenther@suse.de> PR ipa/86389 diff --git a/gcc/testsuite/gcc.dg/Wint-conversion-2.c b/gcc/testsuite/gcc.dg/Wint-conversion-2.c new file mode 100644 index 0000000..0c9dac4 --- /dev/null +++ b/gcc/testsuite/gcc.dg/Wint-conversion-2.c @@ -0,0 +1,11 @@ +/* PR middle-end/86202 */ +/* { dg-do compile } */ +/* { dg-options "-Wint-conversion" } */ + +void *memcpy (void *, void *, __SIZE_TYPE__ *); +void *a, *b; +void f (void) +{ + long unsigned int c = 0; + memcpy (a, b, c); /* { dg-warning "passing argument" } */ +} |