diff options
author | Richard Biener <rguenther@suse.de> | 2016-06-14 13:47:01 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2016-06-14 13:47:01 +0000 |
commit | 30934c5da53286d78371d396578a757c63942bc9 (patch) | |
tree | c10cec8d883105dbb3d15047b89f3ff821d25aed /gcc | |
parent | 8c83f71d3b17a8bf136ca0243397dad75ea698f0 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/genmatch.c | 10 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr71526.f90 | 21 |
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 |