public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/40520]  New: [4.5 regression] Revision 148775 breaks Fortran
@ 2009-06-22 14:42 hjl dot tools at gmail dot com
  2009-06-22 14:55 ` [Bug fortran/40520] " dominiq at lps dot ens dot fr
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: hjl dot tools at gmail dot com @ 2009-06-22 14:42 UTC (permalink / raw)
  To: gcc-bugs

On Linux/ia32, revision 148775:

http://gcc.gnu.org/ml/gcc-cvs/2009-06/msg00758.html

caused:

FAIL: gfortran.dg/array_simplify_1.f90  -O  (internal compiler error)
FAIL: gfortran.dg/array_simplify_1.f90  -O  (test for excess errors)
FAIL: gfortran.dg/intrinsic_spread_1.f90  -O0  (internal compiler error)
FAIL: gfortran.dg/intrinsic_spread_1.f90  -O0  (test for excess errors)
FAIL: gfortran.dg/intrinsic_spread_1.f90  -O1  (internal compiler error)
FAIL: gfortran.dg/intrinsic_spread_1.f90  -O1  (test for excess errors)
FAIL: gfortran.dg/intrinsic_spread_1.f90  -O2  (internal compiler error)
FAIL: gfortran.dg/intrinsic_spread_1.f90  -O2  (test for excess errors)
FAIL: gfortran.dg/intrinsic_spread_1.f90  -O3 -fomit-frame-pointer  (internal
compiler error)
FAIL: gfortran.dg/intrinsic_spread_1.f90  -O3 -fomit-frame-pointer  (test for
excess errors)
FAIL: gfortran.dg/intrinsic_spread_1.f90  -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  (internal compiler error)
FAIL: gfortran.dg/intrinsic_spread_1.f90  -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  (test for excess errors)
FAIL: gfortran.dg/intrinsic_spread_1.f90  -O3 -fomit-frame-pointer
-funroll-loops  (internal compiler error)
FAIL: gfortran.dg/intrinsic_spread_1.f90  -O3 -fomit-frame-pointer
-funroll-loops  (test for excess errors)
FAIL: gfortran.dg/intrinsic_spread_1.f90  -O3 -g  (internal compiler error)
FAIL: gfortran.dg/intrinsic_spread_1.f90  -O3 -g  (test for excess errors)
FAIL: gfortran.dg/intrinsic_spread_1.f90  -Os  (internal compiler error)
FAIL: gfortran.dg/intrinsic_spread_1.f90  -Os  (test for excess errors)
FAIL: gfortran.dg/intrinsic_spread_2.f90  -O0  (internal compiler error)
FAIL: gfortran.dg/intrinsic_spread_2.f90  -O0  (test for excess errors)
FAIL: gfortran.dg/intrinsic_spread_2.f90  -O1  (internal compiler error)
FAIL: gfortran.dg/intrinsic_spread_2.f90  -O1  (test for excess errors)
FAIL: gfortran.dg/intrinsic_spread_2.f90  -O2  (internal compiler error)
FAIL: gfortran.dg/intrinsic_spread_2.f90  -O2  (test for excess errors)
FAIL: gfortran.dg/intrinsic_spread_2.f90  -O3 -fomit-frame-pointer  (internal
compiler error)
FAIL: gfortran.dg/intrinsic_spread_2.f90  -O3 -fomit-frame-pointer  (test for
excess errors)
FAIL: gfortran.dg/intrinsic_spread_2.f90  -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  (internal compiler error)
FAIL: gfortran.dg/intrinsic_spread_2.f90  -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  (test for excess errors)
FAIL: gfortran.dg/intrinsic_spread_2.f90  -O3 -fomit-frame-pointer
-funroll-loops  (internal compiler error)
FAIL: gfortran.dg/intrinsic_spread_2.f90  -O3 -fomit-frame-pointer
-funroll-loops  (test for excess errors)
FAIL: gfortran.dg/intrinsic_spread_2.f90  -O3 -g  (internal compiler error)
FAIL: gfortran.dg/intrinsic_spread_2.f90  -O3 -g  (test for excess errors)
FAIL: gfortran.dg/intrinsic_spread_2.f90  -Os  (internal compiler error)
FAIL: gfortran.dg/intrinsic_spread_2.f90  -Os  (test for excess errors)
FAIL: gfortran.dg/spread_init_expr.f03  -O  (internal compiler error)
FAIL: gfortran.dg/spread_init_expr.f03  -O  (test for excess errors)
FAIL: gfortran.dg/spread_scalar_source.f90  -O0  (internal compiler error)
FAIL: gfortran.dg/spread_scalar_source.f90  -O0  (test for excess errors)
FAIL: gfortran.dg/spread_scalar_source.f90  -O1  (internal compiler error)
FAIL: gfortran.dg/spread_scalar_source.f90  -O1  (test for excess errors)
FAIL: gfortran.dg/spread_scalar_source.f90  -O2  (internal compiler error)
FAIL: gfortran.dg/spread_scalar_source.f90  -O2  (test for excess errors)
FAIL: gfortran.dg/spread_scalar_source.f90  -O3 -fomit-frame-pointer  (internal
compiler error)
FAIL: gfortran.dg/spread_scalar_source.f90  -O3 -fomit-frame-pointer  (test for
excess errors)
FAIL: gfortran.dg/spread_scalar_source.f90  -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  (internal compiler error)
FAIL: gfortran.dg/spread_scalar_source.f90  -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  (test for excess errors)
FAIL: gfortran.dg/spread_scalar_source.f90  -O3 -fomit-frame-pointer
-funroll-loops  (internal compiler error)
FAIL: gfortran.dg/spread_scalar_source.f90  -O3 -fomit-frame-pointer
-funroll-loops  (test for excess errors)
FAIL: gfortran.dg/spread_scalar_source.f90  -O3 -g  (internal compiler error)
FAIL: gfortran.dg/spread_scalar_source.f90  -O3 -g  (test for excess errors)
FAIL: gfortran.dg/spread_scalar_source.f90  -Os  (internal compiler error)
FAIL: gfortran.dg/spread_scalar_source.f90  -Os  (test for excess errors)
FAIL: gfortran.dg/zero_sized_1.f90  -O0  (internal compiler error)
FAIL: gfortran.dg/zero_sized_1.f90  -O0  (test for excess errors)
FAIL: gfortran.dg/zero_sized_1.f90  -O1  (internal compiler error)
FAIL: gfortran.dg/zero_sized_1.f90  -O1  (test for excess errors)
FAIL: gfortran.dg/zero_sized_1.f90  -O2  (internal compiler error)
FAIL: gfortran.dg/zero_sized_1.f90  -O2  (test for excess errors)
FAIL: gfortran.dg/zero_sized_1.f90  -O3 -fomit-frame-pointer  (internal
compiler error)
FAIL: gfortran.dg/zero_sized_1.f90  -O3 -fomit-frame-pointer  (test for excess
errors)
FAIL: gfortran.dg/zero_sized_1.f90  -O3 -fomit-frame-pointer -funroll-all-loops
-finline-functions  (internal compiler error)
FAIL: gfortran.dg/zero_sized_1.f90  -O3 -fomit-frame-pointer -funroll-all-loops
-finline-functions  (test for excess errors)
FAIL: gfortran.dg/zero_sized_1.f90  -O3 -fomit-frame-pointer -funroll-loops 
(internal compiler error)
FAIL: gfortran.dg/zero_sized_1.f90  -O3 -fomit-frame-pointer -funroll-loops 
(test for excess errors)
FAIL: gfortran.dg/zero_sized_1.f90  -O3 -g  (internal compiler error)
FAIL: gfortran.dg/zero_sized_1.f90  -O3 -g  (test for excess errors)
FAIL: gfortran.dg/zero_sized_1.f90  -Os  (internal compiler error)
FAIL: gfortran.dg/zero_sized_1.f90  -Os  (test for excess errors)


-- 
           Summary: [4.5 regression] Revision 148775 breaks Fortran
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: hjl dot tools at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40520


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug fortran/40520] [4.5 regression] Revision 148775 breaks Fortran
  2009-06-22 14:42 [Bug fortran/40520] New: [4.5 regression] Revision 148775 breaks Fortran hjl dot tools at gmail dot com
@ 2009-06-22 14:55 ` dominiq at lps dot ens dot fr
  2009-06-22 19:28 ` tkoenig at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: dominiq at lps dot ens dot fr @ 2009-06-22 14:55 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from dominiq at lps dot ens dot fr  2009-06-22 14:55 -------
see pr40472.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40520


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug fortran/40520] [4.5 regression] Revision 148775 breaks Fortran
  2009-06-22 14:42 [Bug fortran/40520] New: [4.5 regression] Revision 148775 breaks Fortran hjl dot tools at gmail dot com
  2009-06-22 14:55 ` [Bug fortran/40520] " dominiq at lps dot ens dot fr
@ 2009-06-22 19:28 ` tkoenig at gcc dot gnu dot org
  2009-06-22 19:49 ` dominiq at lps dot ens dot fr
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2009-06-22 19:28 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from tkoenig at gcc dot gnu dot org  2009-06-22 19:28 -------
Confirmed.

Backtrace:

0  0xb7e574ab in __gmpz_get_si () from /usr/local/lib/libgmp.so.3
#1  0x08132738 in gfc_simplify_spread (source=0x8c370b8, dim_expr=0x8c37128,
    ncopies_expr=0x8c37198) at ../../../gcc/trunk/gcc/fortran/simplify.c:5121
#2  0xbfcf342c in ?? ()
#3  0xbfcf342c in ?? ()
#4  0xbfcf3400 in ?? ()
#5  0x080f62c1 in gfc_get_string (format=0xb7a2ee28 "spread")
    at ../../../gcc/trunk/gcc/fortran/iresolve.c:56
#6  0x080e1ed1 in find_sym (start=0x736e6972, n=-1076939732,
    name=0x80000000 <Address 0x80000000 out of bounds>)
    at ../../../gcc/trunk/gcc/fortran/intrinsic.c:844
#7  0x08bc931c in ?? ()
#8  0x08c37208 in ?? ()
#9  0x00000000 in ?? ()

The problem appears to be an unititialized (?) size when
ncopies is zero in gfc_simplify_spread:

(gdb) up
#1  0x08132738 in gfc_simplify_spread (source=0x8c370b8, dim_expr=0x8c37128,
    ncopies_expr=0x8c37198) at ../../../gcc/trunk/gcc/fortran/simplify.c:5121
5121      if (mpz_get_si (size)*ncopies >
gfc_option.flag_max_array_constructor)
(gdb) p size
$1 = {{_mp_alloc = 147026216, _mp_size = 1953392936, _mp_d = 0x736e6972}}
(gdb) p ncopies
$2 = 0

This patchlet avoids the ICE:

ndex: simplify.c
===================================================================
--- simplify.c  (revision 148807)
+++ simplify.c  (working copy)
@@ -5118,7 +5118,8 @@ gfc_simplify_spread (gfc_expr *source, g
   /* Do not allow the array size to exceed the limit for an array
      constructor.  */
   gfc_array_size (source, &size);
-  if (mpz_get_si (size)*ncopies > gfc_option.flag_max_array_constructor)
+  if (ncopies && mpz_get_si (size)*ncopies
+      > gfc_option.flag_max_array_constructor)
     return NULL;

   if (source->expr_type == EXPR_CONSTANT)

I'm regression-testing it right now.


-- 

tkoenig at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2009-06-22 19:28:26
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40520


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug fortran/40520] [4.5 regression] Revision 148775 breaks Fortran
  2009-06-22 14:42 [Bug fortran/40520] New: [4.5 regression] Revision 148775 breaks Fortran hjl dot tools at gmail dot com
  2009-06-22 14:55 ` [Bug fortran/40520] " dominiq at lps dot ens dot fr
  2009-06-22 19:28 ` tkoenig at gcc dot gnu dot org
@ 2009-06-22 19:49 ` dominiq at lps dot ens dot fr
  2009-06-22 20:15 ` burnus at gcc dot gnu dot org
  2009-06-22 20:31 ` burnus at gcc dot gnu dot org
  4 siblings, 0 replies; 6+ messages in thread
From: dominiq at lps dot ens dot fr @ 2009-06-22 19:49 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from dominiq at lps dot ens dot fr  2009-06-22 19:49 -------
I have tested the patch in comments pr40472#12 and pr40472#13 and it fixes the
failures in comment #0 and the failure reported in pr40472#9.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40520


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug fortran/40520] [4.5 regression] Revision 148775 breaks Fortran
  2009-06-22 14:42 [Bug fortran/40520] New: [4.5 regression] Revision 148775 breaks Fortran hjl dot tools at gmail dot com
                   ` (2 preceding siblings ...)
  2009-06-22 19:49 ` dominiq at lps dot ens dot fr
@ 2009-06-22 20:15 ` burnus at gcc dot gnu dot org
  2009-06-22 20:31 ` burnus at gcc dot gnu dot org
  4 siblings, 0 replies; 6+ messages in thread
From: burnus at gcc dot gnu dot org @ 2009-06-22 20:15 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from burnus at gcc dot gnu dot org  2009-06-22 20:15 -------
Thomas, I think your patch does not help.

(In reply to comment #2)
> This patchlet avoids the ICE:
>    gfc_array_size (source, &size);
> -  if (mpz_get_si (size)*ncopies > gfc_option.flag_max_array_constructor)
> +  if (ncopies && mpz_get_si (size)*ncopies
> +      > gfc_option.flag_max_array_constructor)

You only added a check for  ncopies == 0, but for
  print *, spread(1,dim=1,ncopies=4)
ncopies > 0 but there is still the problem:

SIZE is never initialized if SOURCE= is a scalar. I think the patch in PR 40472
is the correct one - and is has also been approved by Paul and tested by
Dominique. (Here, it fixes the valgrind error and regtests on x86-64.)


-- 

burnus at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tkoenig at gcc dot gnu dot
                   |                            |org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40520


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug fortran/40520] [4.5 regression] Revision 148775 breaks Fortran
  2009-06-22 14:42 [Bug fortran/40520] New: [4.5 regression] Revision 148775 breaks Fortran hjl dot tools at gmail dot com
                   ` (3 preceding siblings ...)
  2009-06-22 20:15 ` burnus at gcc dot gnu dot org
@ 2009-06-22 20:31 ` burnus at gcc dot gnu dot org
  4 siblings, 0 replies; 6+ messages in thread
From: burnus at gcc dot gnu dot org @ 2009-06-22 20:31 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from burnus at gcc dot gnu dot org  2009-06-22 20:31 -------
FIXED on the trunk (4.5) with the patch of PR 40472 comment 19.


-- 

burnus at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40520


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2009-06-22 20:31 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-06-22 14:42 [Bug fortran/40520] New: [4.5 regression] Revision 148775 breaks Fortran hjl dot tools at gmail dot com
2009-06-22 14:55 ` [Bug fortran/40520] " dominiq at lps dot ens dot fr
2009-06-22 19:28 ` tkoenig at gcc dot gnu dot org
2009-06-22 19:49 ` dominiq at lps dot ens dot fr
2009-06-22 20:15 ` burnus at gcc dot gnu dot org
2009-06-22 20:31 ` burnus at gcc dot gnu dot org

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).