public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/36825]  New: Problems with dimensions > 7
@ 2008-07-14 17:26 burnus at gcc dot gnu dot org
  2008-07-14 17:29 ` [Bug fortran/36825] " burnus at gcc dot gnu dot org
                   ` (9 more replies)
  0 siblings, 10 replies; 12+ messages in thread
From: burnus at gcc dot gnu dot org @ 2008-07-14 17:26 UTC (permalink / raw)
  To: gcc-bugs

gfortran 4.4 allows 15 instead of 7 dimensions, however, it has some problems
with that:

gfortran -std=f95 -Wall -pedantic should print a message for:

integer,parameter                        :: N=10
complex,dimension(-N:N,-N:N,0:1,0:1,-N:N,-N:N,0:1,0:1)   :: P
end

But it does not. This seems to be an off-by-one error as for 9 dimensions an
error is printed:
  Error: Fortran 2008: Array specification at (1) with more than 7 dimensions

  * * *

More seriously, adding a PRINT causes an IDE:

a.f90:1: internal compiler error: in gfc_get_dtype, at
fortran/trans-types.c:1254

integer,parameter                        :: N=10
complex,dimension(-N:N,-N:N,0:1,0:1,-N:N,-N:N,0:1,0:1)   :: P
print *, p
end


-- 
           Summary: Problems with dimensions > 7
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code, diagnostic
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: burnus at gcc dot gnu dot org


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


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

* [Bug fortran/36825] Problems with dimensions > 7
  2008-07-14 17:26 [Bug fortran/36825] New: Problems with dimensions > 7 burnus at gcc dot gnu dot org
@ 2008-07-14 17:29 ` burnus at gcc dot gnu dot org
  2008-07-16 20:37 ` burnus at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: burnus at gcc dot gnu dot org @ 2008-07-14 17:29 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from burnus at gcc dot gnu dot org  2008-07-14 17:28 -------
The I/O ICE is due to:
  trans-types.c:  gcc_assert (rank <= GFC_DTYPE_RANK_MASK);
where the maximal DTYPE rank is defined as:
  libgfortran.h:#define GFC_DTYPE_RANK_MASK 0x07

The other problem can be cured using:

Index: array.c
===================================================================
--- array.c     (Revision 137756)
+++ array.c     (Arbeitskopie)
@@ -437,7 +437,7 @@ gfc_match_array_spec (gfc_array_spec **a
          goto cleanup;
        }

-      if (as->rank > 7
+      if (as->rank >= 7
          && gfc_notify_std (GFC_STD_F2008, "Fortran 2008: Array "
                             "specification at %C with more than 7 dimensions")
             == FAILURE)


-- 


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


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

* [Bug fortran/36825] Problems with dimensions > 7
  2008-07-14 17:26 [Bug fortran/36825] New: Problems with dimensions > 7 burnus at gcc dot gnu dot org
  2008-07-14 17:29 ` [Bug fortran/36825] " burnus at gcc dot gnu dot org
@ 2008-07-16 20:37 ` burnus at gcc dot gnu dot org
  2008-07-17  5:56 ` burnus at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: burnus at gcc dot gnu dot org @ 2008-07-16 20:37 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from burnus at gcc dot gnu dot org  2008-07-16 20:36 -------
Jerry, you know libgfortran better than me. Can one simply change in
libgfortran.h:
  #define GFC_DTYPE_RANK_MASK 0x07
to 0x0F  (= 15)  or does this cause some problems with the gcc 4.3
compatibility or ... ? Actually, why is this defined as "0x07" and not as "7"?


-- 

burnus at gcc dot gnu dot org changed:

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


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


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

* [Bug fortran/36825] Problems with dimensions > 7
  2008-07-14 17:26 [Bug fortran/36825] New: Problems with dimensions > 7 burnus at gcc dot gnu dot org
  2008-07-14 17:29 ` [Bug fortran/36825] " burnus at gcc dot gnu dot org
  2008-07-16 20:37 ` burnus at gcc dot gnu dot org
@ 2008-07-17  5:56 ` burnus at gcc dot gnu dot org
  2008-07-19 17:13 ` jvdelisle at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: burnus at gcc dot gnu dot org @ 2008-07-17  5:56 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from burnus at gcc dot gnu dot org  2008-07-17 05:55 -------
Subject: Bug 36825

Author: burnus
Date: Thu Jul 17 05:54:42 2008
New Revision: 137910

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=137910
Log:
2008-07-17  Tobias Burnus  <burnus@net-b.de>

        PR fortran/36825
        PR fortran/36824
        * array.c (gfc_match_array_spec): Fix array-rank check.
        * resolve.c (resolve_fl_derived): Fix constentness check
        for the array dimensions.

2008-07-17  Tobias Burnus  <burnus@net-b.de>

        PR fortran/36825
        PR fortran/36824
        * gfortran.dg/rank_2.f90: Add additional array-rank test.
        * gfortran.dg/array_4.f90: New.


Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/array.c
    trunk/gcc/fortran/resolve.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gfortran.dg/rank_2.f90


-- 


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


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

* [Bug fortran/36825] Problems with dimensions > 7
  2008-07-14 17:26 [Bug fortran/36825] New: Problems with dimensions > 7 burnus at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2008-07-17  5:56 ` burnus at gcc dot gnu dot org
@ 2008-07-19 17:13 ` jvdelisle at gcc dot gnu dot org
  2008-07-21  5:18 ` jvdelisle at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-07-19 17:13 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from jvdelisle at gcc dot gnu dot org  2008-07-19 17:12 -------
Tobias, I just caught up with your question to me today.  I think you have
answered it. :)  Thanks for patch.  One thing we should do is check internal
unit array I/O with higher dimensions to see if the loop spec code holds up.  I
will do that.


-- 


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


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

* [Bug fortran/36825] Problems with dimensions > 7
  2008-07-14 17:26 [Bug fortran/36825] New: Problems with dimensions > 7 burnus at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2008-07-19 17:13 ` jvdelisle at gcc dot gnu dot org
@ 2008-07-21  5:18 ` jvdelisle at gcc dot gnu dot org
  2008-07-27 19:55 ` [Bug fortran/36825] F2008: I/O with rank > 7 arrays [will break presumably break library ABI] burnus at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-07-21  5:18 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from jvdelisle at gcc dot gnu dot org  2008-07-21 05:17 -------
Internal unit array I/O with dimensions greater than 7 appears to work OK.


-- 


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


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

* [Bug fortran/36825] F2008: I/O with rank > 7 arrays  [will break presumably break library ABI]
  2008-07-14 17:26 [Bug fortran/36825] New: Problems with dimensions > 7 burnus at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2008-07-21  5:18 ` jvdelisle at gcc dot gnu dot org
@ 2008-07-27 19:55 ` burnus at gcc dot gnu dot org
  2008-07-27 23:26 ` jvdelisle at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: burnus at gcc dot gnu dot org @ 2008-07-27 19:55 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from burnus at gcc dot gnu dot org  2008-07-27 19:54 -------
See also http://gcc.gnu.org/ml/fortran/2008-07/msg00211.html
Problem is the libgfortran ABI. Email mentions PR 35718, which presumably also
means an ABI breakage.


-- 

burnus at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|Problems with dimensions > 7|F2008: I/O with rank > 7
                   |                            |arrays  [will break
                   |                            |presumably break library
                   |                            |ABI]


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


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

* [Bug fortran/36825] F2008: I/O with rank > 7 arrays  [will break presumably break library ABI]
  2008-07-14 17:26 [Bug fortran/36825] New: Problems with dimensions > 7 burnus at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2008-07-27 19:55 ` [Bug fortran/36825] F2008: I/O with rank > 7 arrays [will break presumably break library ABI] burnus at gcc dot gnu dot org
@ 2008-07-27 23:26 ` jvdelisle at gcc dot gnu dot org
  2008-07-28  6:42 ` [Bug fortran/36825] F2008: libgfortran I/O+intrinsics: Rank " burnus at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-07-27 23:26 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from jvdelisle at gcc dot gnu dot org  2008-07-27 23:25 -------
I see only one place in the I/O library that uses GFC_DTYPE_RANK_MASK.

There are many many places in the intrinsics.


-- 


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


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

* [Bug fortran/36825] F2008: libgfortran I/O+intrinsics: Rank > 7 arrays  [will break presumably break library ABI]
  2008-07-14 17:26 [Bug fortran/36825] New: Problems with dimensions > 7 burnus at gcc dot gnu dot org
                   ` (6 preceding siblings ...)
  2008-07-27 23:26 ` jvdelisle at gcc dot gnu dot org
@ 2008-07-28  6:42 ` burnus at gcc dot gnu dot org
  2008-07-28  9:47 ` tkoenig at gcc dot gnu dot org
  2009-08-15  2:18 ` [Bug fortran/36825] F2008: Rank > 7 arrays [will break library ABI] libgfortran I/O+intrinsics: jvdelisle at gcc dot gnu dot org
  9 siblings, 0 replies; 12+ messages in thread
From: burnus at gcc dot gnu dot org @ 2008-07-28  6:42 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from burnus at gcc dot gnu dot org  2008-07-28 06:41 -------
> I see only one place in the I/O library that uses GFC_DTYPE_RANK_MASK.
> There are many many places in the intrinsics.

Hmm, true. Maybe one should disable the rank 15 in the frontend again. I see
GFC_DESCRIPTOR used in:   associated.c, cshift0.c, date_and_time.c, eoshift0.c,
eoshift2.c, iso_c_binding.c, move_alloc.c, pack_generic.c, random.c,
reshape_generic.c, size.c, spread_generic.c, stat.c, transpose_generic.c,
unpack_generic.c, transfer.c, unit.c, in_pack_generic.c, in_unpack_generic.c,
cshift1.m4, eoshift1.m4, eoshift3.m4, iforeach.m4, ifunction_logical.m4,
ifunction.m4, in_pack.m4, in_unpack.m4, matmull.m4, matmul.m4, pack.m4,
reshape.m4, shape.m4, spread.m4, transpose.m4, unpack.m4.


-- 

burnus at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|F2008: I/O with rank > 7    |F2008: libgfortran
                   |arrays  [will break         |I/O+intrinsics: Rank > 7
                   |presumably break library    |arrays  [will break
                   |ABI]                        |presumably break library
                   |                            |ABI]


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


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

* [Bug fortran/36825] F2008: libgfortran I/O+intrinsics: Rank > 7 arrays  [will break presumably break library ABI]
  2008-07-14 17:26 [Bug fortran/36825] New: Problems with dimensions > 7 burnus at gcc dot gnu dot org
                   ` (7 preceding siblings ...)
  2008-07-28  6:42 ` [Bug fortran/36825] F2008: libgfortran I/O+intrinsics: Rank " burnus at gcc dot gnu dot org
@ 2008-07-28  9:47 ` tkoenig at gcc dot gnu dot org
  2009-08-15  2:18 ` [Bug fortran/36825] F2008: Rank > 7 arrays [will break library ABI] libgfortran I/O+intrinsics: jvdelisle at gcc dot gnu dot org
  9 siblings, 0 replies; 12+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-07-28  9:47 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from tkoenig at gcc dot gnu dot org  2008-07-28 09:46 -------
See

http://gcc.gnu.org/wiki/ArrayDescriptorUpdate


-- 

tkoenig 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
   Last reconfirmed|0000-00-00 00:00:00         |2008-07-28 09:46:31
               date|                            |


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


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

* [Bug fortran/36825] F2008: Rank > 7 arrays  [will break library ABI]  libgfortran I/O+intrinsics:
  2008-07-14 17:26 [Bug fortran/36825] New: Problems with dimensions > 7 burnus at gcc dot gnu dot org
                   ` (8 preceding siblings ...)
  2008-07-28  9:47 ` tkoenig at gcc dot gnu dot org
@ 2009-08-15  2:18 ` jvdelisle at gcc dot gnu dot org
  9 siblings, 0 replies; 12+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2009-08-15  2:18 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from jvdelisle at gcc dot gnu dot org  2009-08-15 02:17 -------
Updating summary to reflect the focus of this PR.


-- 

jvdelisle at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|F2008: libgfortran          |F2008: Rank > 7 arrays
                   |I/O+intrinsics: Rank > 7    |[will break library ABI]
                   |arrays  [will break         |libgfortran I/O+intrinsics:
                   |presumably break library    |
                   |ABI]                        |


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


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

* [Bug fortran/36825] [F2008] Rank > 7 arrays  [will break library ABI]  libgfortran I/O+intrinsics:
       [not found] <bug-36825-4@http.gcc.gnu.org/bugzilla/>
@ 2012-09-15 13:09 ` burnus at gcc dot gnu.org
  0 siblings, 0 replies; 12+ messages in thread
From: burnus at gcc dot gnu.org @ 2012-09-15 13:09 UTC (permalink / raw)
  To: gcc-bugs

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

Tobias Burnus <burnus at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |burnus at gcc dot gnu.org

--- Comment #12 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-09-15 13:09:15 UTC ---
We also need to update dwarf2out.h, which has:

266struct array_descr_info
267{
268  int ndimensions;
269  tree element_type;
270  tree base_decl;
271  tree data_location;
272  tree allocated;
273  tree associated;
274  struct array_descr_dimen
275    {
276      tree lower_bound;
277      tree upper_bound;
278      tree stride;
279    } dimen[10];
280};

Thus, GCC limits the maximal rank to 10.


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

end of thread, other threads:[~2012-09-15 13:09 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-07-14 17:26 [Bug fortran/36825] New: Problems with dimensions > 7 burnus at gcc dot gnu dot org
2008-07-14 17:29 ` [Bug fortran/36825] " burnus at gcc dot gnu dot org
2008-07-16 20:37 ` burnus at gcc dot gnu dot org
2008-07-17  5:56 ` burnus at gcc dot gnu dot org
2008-07-19 17:13 ` jvdelisle at gcc dot gnu dot org
2008-07-21  5:18 ` jvdelisle at gcc dot gnu dot org
2008-07-27 19:55 ` [Bug fortran/36825] F2008: I/O with rank > 7 arrays [will break presumably break library ABI] burnus at gcc dot gnu dot org
2008-07-27 23:26 ` jvdelisle at gcc dot gnu dot org
2008-07-28  6:42 ` [Bug fortran/36825] F2008: libgfortran I/O+intrinsics: Rank " burnus at gcc dot gnu dot org
2008-07-28  9:47 ` tkoenig at gcc dot gnu dot org
2009-08-15  2:18 ` [Bug fortran/36825] F2008: Rank > 7 arrays [will break library ABI] libgfortran I/O+intrinsics: jvdelisle at gcc dot gnu dot org
     [not found] <bug-36825-4@http.gcc.gnu.org/bugzilla/>
2012-09-15 13:09 ` [Bug fortran/36825] [F2008] " burnus at gcc dot gnu.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).