aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2016-06-14 13:47:01 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2016-06-14 13:47:01 +0000
commit30934c5da53286d78371d396578a757c63942bc9 (patch)
treec10cec8d883105dbb3d15047b89f3ff821d25aed /gcc
parent8c83f71d3b17a8bf136ca0243397dad75ea698f0 (diff)
downloadgcc-30934c5da53286d78371d396578a757c63942bc9.zip
gcc-30934c5da53286d78371d396578a757c63942bc9.tar.gz
gcc-30934c5da53286d78371d396578a757c63942bc9.tar.bz2
re PR middle-end/71526 (ICE: verify_gimple failed)
2016-06-14 Richard Biener <rguenther@suse.de> PR middle-end/71526 * genmatch.c (expr::gen_transform): Use in_type for comparisons if available. * gfortran.dg/pr71526.f90: New testcase. From-SVN: r237441
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/genmatch.c10
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/pr71526.f9021
4 files changed, 40 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6836663..82a84fa 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2016-06-14 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/71526
+ * genmatch.c (expr::gen_transform): Use in_type for comparisons
+ if available.
+
2015-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
diff --git a/gcc/genmatch.c b/gcc/genmatch.c
index 9bb1279..f5aa29b 100644
--- a/gcc/genmatch.c
+++ b/gcc/genmatch.c
@@ -2288,8 +2288,14 @@ expr::gen_transform (FILE *f, int indent, const char *dest, bool gimple,
{
/* comparisons use boolean_type_node (or what gets in), but
their operands need to figure out the types themselves. */
- sprintf (optype, "boolean_type_node");
- type = optype;
+ if (in_type)
+ type = in_type;
+ else
+ {
+ sprintf (optype, "boolean_type_node");
+ type = optype;
+ }
+ in_type = NULL;
}
else if (*opr == COND_EXPR
|| *opr == VEC_COND_EXPR)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 248064d..30e53be 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2016-06-14 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/71526
+ * gfortran.dg/pr71526.f90: New testcase.
+
2016-06-14 Andre Vieira <andre.simoesdiasvieira@arm.com>
* gcc.dg/zero_bits_compound-1.c: Support aarch64.
diff --git a/gcc/testsuite/gfortran.dg/pr71526.f90 b/gcc/testsuite/gfortran.dg/pr71526.f90
new file mode 100644
index 0000000..dbf989f
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr71526.f90
@@ -0,0 +1,21 @@
+! { dg-do link }
+! { dg-require-effective-target lto }
+! { dg-options "-O2 -flto" }
+
+MODULE util
+ INTERFACE sort
+ MODULE PROCEDURE sort_cv
+ END INTERFACE
+CONTAINS
+ SUBROUTINE sort_cv ( arr, n, index )
+ CHARACTER(LEN=*), INTENT(INOUT) :: arr(1:n)
+ INTEGER, INTENT(OUT) :: INDEX(1:n)
+ INTEGER, ALLOCATABLE, DIMENSION(:, :) :: entries
+ ALLOCATE(entries(max_length,SIZE(arr)))
+ END SUBROUTINE sort_cv
+END MODULE util
+USE util
+INTEGER, ALLOCATABLE :: ind(:)
+character(len=3), ALLOCATABLE :: d(:)
+CALL sort(d,N,ind)
+END