public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/45744]  New: internal compiler error: in gfc_conv_expr_op, at fortran/trans-expr.c:1366
@ 2010-09-22  4:47 jpr at csc dot fi
  2010-09-22  4:48 ` [Bug fortran/45744] " jpr at csc dot fi
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: jpr at csc dot fi @ 2010-09-22  4:47 UTC (permalink / raw)
  To: gcc-bugs

Hi,

the following fortran code hits an assert() in fortran/trans-expr.c:1366

MODULE m
CONTAINS
  FUNCTION rnd(n)
    INTEGER, INTENT(in) :: n
    REAL(8), DIMENSION(n) :: rnd
    CALL RANDOM_NUMBER(rnd)
  END FUNCTION rnd

  SUBROUTINE GeneticOptimize(parsize )
    INTEGER :: parsize

    REAL(8) :: popcross=0
    LOGICAL, ALLOCATABLE :: mask(:)

    allocate(mask(parsize))
    mask = (rnd(parsize) < popcross)
  END SUBROUTINE GeneticOptimize
END MODULE m



gfortran -O1 -v a.f90
Driving: gfortran -O1 -v a.f90 -l gfortran -l m -shared-libgcc
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/home/wrk/jpr/gcc-4.5/bin/../libexec/gcc/i686-pc-linux-gnu/4.6.0/lto-wrapper
Target: i686-pc-linux-gnu
Configured with: ../gcc/configure --enable-languages=c,c++,fortran
--disable-bootstrap --prefix=/wrk/jpr/gcc-4.5 --with-gmp=/wrk/jpr/extralib
--with-mpfr=/wrk/jpr/extralib
Thread model: posix
gcc version 4.6.0 20100921 (experimental) (GCC)
COLLECT_GCC_OPTIONS='-O1' '-v' '-shared-libgcc' '-mtune=generic'
'-march=pentiumpro'
 /home/wrk/jpr/gcc-4.5/bin/../libexec/gcc/i686-pc-linux-gnu/4.6.0/f951 a.f90
-quiet -dumpbase a.f90 -mtune=generic -march=pentiumpro -auxbase a -O1 -version
-fintrinsic-modules-path
/home/wrk/jpr/gcc-4.5/bin/../lib/gcc/i686-pc-linux-gnu/4.6.0/finclude -o
/tmp/ccrHZk23.s
GNU Fortran (GCC) version 4.6.0 20100921 (experimental) (i686-pc-linux-gnu)
        compiled by GNU C version 3.4.6 20060404 (Red Hat 3.4.6-11), GMP
version 4.3.1, MPFR version 2.4.1, MPC version 0.8
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
GNU Fortran (GCC) version 4.6.0 20100921 (experimental) (i686-pc-linux-gnu)
        compiled by GNU C version 3.4.6 20060404 (Red Hat 3.4.6-11), GMP
version 4.3.1, MPFR version 2.4.1, MPC version 0.8
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
a.f90: In function 'geneticoptimize':
a.f90:internal compiler error: in gfc_conv_expr_op, at
fortran/trans-expr.c:1366
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

Regards, Juha


-- 
           Summary: internal compiler error: in gfc_conv_expr_op, at
                    fortran/trans-expr.c:1366
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jpr at csc dot fi


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 ` 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

end of thread, other threads:[~2010-09-23 15:27 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
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
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).