* [Bug fortran/45744] internal compiler error: in gfc_conv_expr_op, at fortran/trans-expr.c:1366
2010-09-22 4:47 [Bug fortran/45744] New: internal compiler error: in gfc_conv_expr_op, at fortran/trans-expr.c:1366 jpr at csc dot fi
@ 2010-09-22 4:48 ` jpr at csc dot fi
2010-09-22 4:52 ` jpr at csc dot fi
` (8 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: jpr at csc dot fi @ 2010-09-22 4:48 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from jpr at csc dot fi 2010-09-22 04:48 -------
P.S. don't mind my directory naming. This is trunk gfortran
from ~6 hours ago.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45744
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug fortran/45744] internal compiler error: in gfc_conv_expr_op, at fortran/trans-expr.c:1366
2010-09-22 4:47 [Bug fortran/45744] New: internal compiler error: in gfc_conv_expr_op, at fortran/trans-expr.c:1366 jpr at csc dot fi
2010-09-22 4:48 ` [Bug fortran/45744] " jpr at csc dot fi
@ 2010-09-22 4:52 ` jpr at csc dot fi
2010-09-22 6:46 ` dominiq at lps dot ens dot fr
` (7 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: jpr at csc dot fi @ 2010-09-22 4:52 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from jpr at csc dot fi 2010-09-22 04:52 -------
somewhat simpler testcase:
MODULE m
CONTAINS
FUNCTION rnd(n)
INTEGER, INTENT(in) :: n
REAL(8), DIMENSION(n) :: rnd
CALL RANDOM_NUMBER(rnd)
END FUNCTION rnd
SUBROUTINE GeneticOptimize(n)
INTEGER :: n
LOGICAL :: mask(n)
REAL(8) :: popcross=0
mask = (rnd(n) < popcross)
END SUBROUTINE GeneticOptimize
END MODULE m
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45744
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug fortran/45744] internal compiler error: in gfc_conv_expr_op, at fortran/trans-expr.c:1366
2010-09-22 4:47 [Bug fortran/45744] New: internal compiler error: in gfc_conv_expr_op, at fortran/trans-expr.c:1366 jpr at csc dot fi
2010-09-22 4:48 ` [Bug fortran/45744] " jpr at csc dot fi
2010-09-22 4:52 ` jpr at csc dot fi
@ 2010-09-22 6:46 ` dominiq at lps dot ens dot fr
2010-09-22 7:45 ` [Bug fortran/45744] [4.6 Regression] ICE with -O1 " burnus at gcc dot gnu dot org
` (6 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: dominiq at lps dot ens dot fr @ 2010-09-22 6:46 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from dominiq at lps dot ens dot fr 2010-09-22 06:46 -------
Confirmed as a regression: the tests compile with 4.5.0 and revision 163718,
but not with revision 164232.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45744
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug fortran/45744] [4.6 Regression] ICE with -O1 in gfc_conv_expr_op, at fortran/trans-expr.c:1366
2010-09-22 4:47 [Bug fortran/45744] New: internal compiler error: in gfc_conv_expr_op, at fortran/trans-expr.c:1366 jpr at csc dot fi
` (2 preceding siblings ...)
2010-09-22 6:46 ` dominiq at lps dot ens dot fr
@ 2010-09-22 7:45 ` burnus at gcc dot gnu dot org
2010-09-22 17:43 ` tkoenig at gcc dot gnu dot org
` (5 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: burnus at gcc dot gnu dot org @ 2010-09-22 7:45 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from burnus at gcc dot gnu dot org 2010-09-22 07:45 -------
(In reply to comment #3)
> Confirmed as a regression:
The assert is in gfc_conv_expr_op:
gcc_assert (expr->value.op.op1->ts.type == expr->value.op.op2->ts.type);
For
mask = (rnd(parsize) < popcross)
the OP is INTRINSIC_LT and both op1 and op2 are BT_REAL; however, with -O1, op1
is BT_LOGICAL.
If one disables "frontend-passes.c" by adding a return to gfc_run_passes, it
works.
--
burnus at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |tkoenig at gcc dot gnu dot
| |org
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Keywords| |ice-on-valid-code
Known to fail| |4.6.0
Known to work| |4.5.0
Last reconfirmed|0000-00-00 00:00:00 |2010-09-22 07:45:44
date| |
Summary|internal compiler error: in |[4.6 Regression] ICE with -
|gfc_conv_expr_op, at |O1 in gfc_conv_expr_op, at
|fortran/trans-expr.c:1366 |fortran/trans-expr.c:1366
Target Milestone|--- |4.6.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45744
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug fortran/45744] [4.6 Regression] ICE with -O1 in gfc_conv_expr_op, at fortran/trans-expr.c:1366
2010-09-22 4:47 [Bug fortran/45744] New: internal compiler error: in gfc_conv_expr_op, at fortran/trans-expr.c:1366 jpr at csc dot fi
` (3 preceding siblings ...)
2010-09-22 7:45 ` [Bug fortran/45744] [4.6 Regression] ICE with -O1 " burnus at gcc dot gnu dot org
@ 2010-09-22 17:43 ` tkoenig at gcc dot gnu dot org
2010-09-22 17:58 ` tkoenig at gcc dot gnu dot org
` (4 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2010-09-22 17:43 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from tkoenig at gcc dot gnu dot org 2010-09-22 17:43 -------
I see what's wrong, should be easy enough to fix.
--
tkoenig at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|unassigned at gcc dot gnu |tkoenig at gcc dot gnu dot
|dot org |org
Status|NEW |ASSIGNED
Last reconfirmed|2010-09-22 07:45:44 |2010-09-22 17:43:23
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45744
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug fortran/45744] [4.6 Regression] ICE with -O1 in gfc_conv_expr_op, at fortran/trans-expr.c:1366
2010-09-22 4:47 [Bug fortran/45744] New: internal compiler error: in gfc_conv_expr_op, at fortran/trans-expr.c:1366 jpr at csc dot fi
` (4 preceding siblings ...)
2010-09-22 17:43 ` tkoenig at gcc dot gnu dot org
@ 2010-09-22 17:58 ` tkoenig at gcc dot gnu dot org
2010-09-22 18:54 ` mikael at gcc dot gnu dot org
` (3 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2010-09-22 17:58 UTC (permalink / raw)
To: gcc-bugs
------- Comment #6 from tkoenig at gcc dot gnu dot org 2010-09-22 17:57 -------
Tentative patch:
Index: frontend-passes.c
===================================================================
--- frontend-passes.c (Revision 164404)
+++ frontend-passes.c (Arbeitskopie)
@@ -122,8 +122,11 @@
else if (seen_op && e->expr_type == EXPR_FUNCTION && e->rank > 0
&& ! (e->value.function.esym
&& (e->value.function.esym->attr.elemental
- || e->value.function.esym->attr.allocatable))
- && ! (e->value.function.isym && e->value.function.isym->elemental))
+ || e->value.function.esym->attr.allocatable
+ || e->value.function.esym->ts.type != c->expr1->ts.type))
+ && ! (e->value.function.isym
+ && (e->value.function.isym->elemental
+ || e->value.function.isym->ts.type != c->expr1->ts.type)))
{
gfc_code *n;
Don't know if I will have the time to submit tonight.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45744
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug fortran/45744] [4.6 Regression] ICE with -O1 in gfc_conv_expr_op, at fortran/trans-expr.c:1366
2010-09-22 4:47 [Bug fortran/45744] New: internal compiler error: in gfc_conv_expr_op, at fortran/trans-expr.c:1366 jpr at csc dot fi
` (5 preceding siblings ...)
2010-09-22 17:58 ` tkoenig at gcc dot gnu dot org
@ 2010-09-22 18:54 ` mikael at gcc dot gnu dot org
2010-09-22 21:39 ` dominiq at lps dot ens dot fr
` (2 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: mikael at gcc dot gnu dot org @ 2010-09-22 18:54 UTC (permalink / raw)
To: gcc-bugs
------- Comment #7 from mikael at gcc dot gnu dot org 2010-09-22 18:54 -------
(In reply to comment #6)
> Tentative patch:
>
> Index: frontend-passes.c
> ===================================================================
> --- frontend-passes.c (Revision 164404)
> +++ frontend-passes.c (Arbeitskopie)
> @@ -122,8 +122,11 @@
> else if (seen_op && e->expr_type == EXPR_FUNCTION && e->rank > 0
> && ! (e->value.function.esym
> && (e->value.function.esym->attr.elemental
> - || e->value.function.esym->attr.allocatable))
> - && ! (e->value.function.isym && e->value.function.isym->elemental))
> + || e->value.function.esym->attr.allocatable
> + || e->value.function.esym->ts.type != c->expr1->ts.type))
> + && ! (e->value.function.isym
> + && (e->value.function.isym->elemental
> + || e->value.function.isym->ts.type != c->expr1->ts.type)))
> {
>
> gfc_code *n;
>
I think the type comparison should take kinds into account too (REAL(4) vs
REAL(8) for example).
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45744
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug fortran/45744] [4.6 Regression] ICE with -O1 in gfc_conv_expr_op, at fortran/trans-expr.c:1366
2010-09-22 4:47 [Bug fortran/45744] New: internal compiler error: in gfc_conv_expr_op, at fortran/trans-expr.c:1366 jpr at csc dot fi
` (6 preceding siblings ...)
2010-09-22 18:54 ` mikael at gcc dot gnu dot org
@ 2010-09-22 21:39 ` dominiq at lps dot ens dot fr
2010-09-22 22:00 ` tkoenig at gcc dot gnu dot org
2010-09-23 15:27 ` dominiq at lps dot ens dot fr
9 siblings, 0 replies; 11+ messages in thread
From: dominiq at lps dot ens dot fr @ 2010-09-22 21:39 UTC (permalink / raw)
To: gcc-bugs
------- Comment #8 from dominiq at lps dot ens dot fr 2010-09-22 21:39 -------
The patch in comment #6 fixes this PR, but gfortran.dg/dependency_35.f90 fails:
...
output is:
/opt/gcc/work/gcc/testsuite/gfortran.dg/dependency_35.f90:19.6:
a = matmul(b,c) + d
1
Warning: Creating array temporary at (1)
/opt/gcc/work/gcc/testsuite/gfortran.dg/dependency_35.f90:22.6:
e = sum(b,1) + 3
1
Warning: Creating array temporary at (1)
FAIL: gfortran.dg/dependency_35.f90 -O (test for excess errors)
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45744
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug fortran/45744] [4.6 Regression] ICE with -O1 in gfc_conv_expr_op, at fortran/trans-expr.c:1366
2010-09-22 4:47 [Bug fortran/45744] New: internal compiler error: in gfc_conv_expr_op, at fortran/trans-expr.c:1366 jpr at csc dot fi
` (7 preceding siblings ...)
2010-09-22 21:39 ` dominiq at lps dot ens dot fr
@ 2010-09-22 22:00 ` tkoenig at gcc dot gnu dot org
2010-09-23 15:27 ` dominiq at lps dot ens dot fr
9 siblings, 0 replies; 11+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2010-09-22 22:00 UTC (permalink / raw)
To: gcc-bugs
------- Comment #9 from tkoenig at gcc dot gnu dot org 2010-09-22 21:59 -------
This should be better:
Index: frontend-passes.c
===================================================================
--- frontend-passes.c (Revision 164404)
+++ frontend-passes.c (Arbeitskopie)
@@ -122,8 +122,13 @@
else if (seen_op && e->expr_type == EXPR_FUNCTION && e->rank > 0
&& ! (e->value.function.esym
&& (e->value.function.esym->attr.elemental
- || e->value.function.esym->attr.allocatable))
- && ! (e->value.function.isym && e->value.function.isym->elemental))
+ || e->value.function.esym->attr.allocatable
+ || e->value.function.esym->ts.type != c->expr1->ts.type
+ || e->value.function.esym->ts.kind != c->expr1->ts.kind))
+ && ! (e->value.function.isym
+ && (e->value.function.isym->elemental
+ || e->ts.type != c->expr1->ts.type
+ || e->ts.kind != c->expr1->ts.kind)))
{
gfc_code *n;
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45744
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug fortran/45744] [4.6 Regression] ICE with -O1 in gfc_conv_expr_op, at fortran/trans-expr.c:1366
2010-09-22 4:47 [Bug fortran/45744] New: internal compiler error: in gfc_conv_expr_op, at fortran/trans-expr.c:1366 jpr at csc dot fi
` (8 preceding siblings ...)
2010-09-22 22:00 ` tkoenig at gcc dot gnu dot org
@ 2010-09-23 15:27 ` dominiq at lps dot ens dot fr
9 siblings, 0 replies; 11+ messages in thread
From: dominiq at lps dot ens dot fr @ 2010-09-23 15:27 UTC (permalink / raw)
To: gcc-bugs
------- Comment #10 from dominiq at lps dot ens dot fr 2010-09-23 15:27 -------
> This should be better:
It is;-) it fixes this PR without regression. Does it answer also the question
in comment #7?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45744
^ permalink raw reply [flat|nested] 11+ messages in thread