[Bug fortran/53824] ICE with ALLOCATE of coarrays

2012-11-11 Thread tkoenig at gcc dot gnu.org


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



Thomas Koenig tkoenig at gcc dot gnu.org changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #3 from Thomas Koenig tkoenig at gcc dot gnu.org 2012-11-11 
15:08:55 UTC ---

Applying the patch from http://gcc.gnu.org/viewcvs?root=gccview=revrev=189549

runs into another problem:





ig25@linux-fd1f:~/Krempel/Co gdb ~/lib/gcc/x86_64-unknown-linux-gnu/4.7.3/f951

GNU gdb (GDB) 7.5

Copyright (C) 2012 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.  Type show copying

and show warranty for details.

This GDB was configured as x86_64-unknown-linux-gnu.

For bug reporting instructions, please see:

http://www.gnu.org/software/gdb/bugs/...

Reading symbols from

/home/ig25/lib/gcc/x86_64-unknown-linux-gnu/4.7.3/f951...done.

(gdb) r coarray_allocate_1.f90 

Starting program: /home/ig25/lib/gcc/x86_64-unknown-linux-gnu/4.7.3/f951

coarray_allocate_1.f90

coarray_allocate_1.f90:20.31:



 type(Domain),allocatable :: D[:,:,:]

   1

Schwerwiegender Fehler: Coarray bei (1) ausgeschaltet, -fcoarray= zum

Einschalten verwenden

[Inferior 1 (process 1073) exited with code 01]

(gdb) r ^CQuity_allocate_1.f90 

(gdb) q

ig25@linux-fd1f:~/Krempel/Co gdb ~/lib/gcc/x86_64-unknown-linux-gnu/4.7.3/f951

GNU gdb (GDB) 7.5

Copyright (C) 2012 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.  Type show copying

and show warranty for details.

This GDB was configured as x86_64-unknown-linux-gnu.

For bug reporting instructions, please see:

http://www.gnu.org/software/gdb/bugs/...

Reading symbols from

/home/ig25/lib/gcc/x86_64-unknown-linux-gnu/4.7.3/f951...done.

(gdb) r -fcoarray=single coarray_allocate_1.f90 

Starting program: /home/ig25/lib/gcc/x86_64-unknown-linux-gnu/4.7.3/f951

-fcoarray=single coarray_allocate_1.f90

 jac

Program received signal SIGSEGV, Segmentation fault.

0x0058ddd5 in gfc_build_array_ref (base=0x75df8968, offset=0x0,

decl=0x0) at ../../4-7/gcc/fortran/trans.c:341

341   STRIP_TYPE_NOPS (offset);

(gdb) bt

#0  0x0058ddd5 in gfc_build_array_ref (base=0x75df8968, offset=0x0,

decl=0x0) at ../../4-7/gcc/fortran/trans.c:341

#1  0x00590936 in gfc_conv_descriptor_ubound (desc=optimized out,

dim=optimized out) at ../../4-7/gcc/fortran/trans-array.c:364

#2  0x00591b07 in gfc_conv_descriptor_ubound_get (dim=0x0,

desc=0x75d03c80) at ../../4-7/gcc/fortran/trans-array.c:377

#3  get_full_array_size (block=0x7fffd2c0, decl=0x75d03c80,

rank=optimized out) at ../../4-7/gcc/fortran/trans-array.c:7141

#4  0x00598e40 in structure_alloc_comps (der_type=0x1496a90,

decl=0x75d03c80, dest=dest@entry=0x0, rank=0, purpose=purpose@entry=2)

at ../../4-7/gcc/fortran/trans-array.c:7313

#5  0x0059972f in gfc_nullify_alloc_comp (der_type=optimized out,

decl=optimized out, rank=optimized out)

at ../../4-7/gcc/fortran/trans-array.c:7618

#6  0x0059a0cb in gfc_array_allocate (se=optimized out,

expr=0x14c44b0, status=0x0, errmsg=0x0, errlen=0x0, label_finish=0x0, 

expr3_elem_size=0x75e0e840, nelems=0x7fffd798, expr3=0x0) at

../../4-7/gcc/fortran/trans-array.c:5147

#7  0x005d77f2 in gfc_trans_allocate (code=optimized out) at

../../4-7/gcc/fortran/trans-stmt.c:4849

#8  0x0058ee58 in trans_code (code=0x14a19e0, cond=0x0) at

../../4-7/gcc/fortran/trans.c:1462

#9  0x005ab3f8 in gfc_generate_function_code (ns=optimized out) at

../../4-7/gcc/fortran/trans-decl.c:5344

#10 0x00550dd7 in translate_all_program_units (main_in_tu=true,

gfc_global_ns_list=0x1493120) at ../../4-7/gcc/fortran/parse.c:4455

#11 gfc_parse_file () at ../../4-7/gcc/fortran/parse.c:4668

#12 0x0058b256 in gfc_be_parse_file () at

../../4-7/gcc/fortran/f95-lang.c:250

#13 0x00838f30 in compile_file () at ../../4-7/gcc/toplev.c:557

#14 do_compile () at ../../4-7/gcc/toplev.c:1938

#15 toplev_main (argc=3, argv=0x7fffdca8) at ../../4-7/gcc/toplev.c:2014

#16 0x7643723d in __libc_start_main () from /lib64/libc.so.6

#17 0x004e6f41 in _start () at ../sysdeps/x86_64/elf/start.S:113



so it seems more than this patch is needed to fix this.



Therefore, no backport to 4.7 (since it is fixed on trunk).



Closing.


[Bug fortran/53824] ICE with ALLOCATE of coarrays

2012-07-16 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53824

--- Comment #2 from Thomas Koenig tkoenig at gcc dot gnu.org 2012-07-16 
20:58:08 UTC ---
Author: tkoenig
Date: Mon Jul 16 20:58:04 2012
New Revision: 189549

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=189549
Log:
2012-07-16  Thomas König  tkoe...@gcc.gnu.org

PR fortran/53824
* resolve.c (resolve_allocate_deallocate):  If both
start indices are NULL, skip the test for equality.

2012-07-16  Thomas König  tkoe...@gcc.gnu.org

PR fortran/53824
* gfortran.dg/coarray_allocate_1.f90:  New test.


Added:
trunk/gcc/testsuite/gfortran.dg/coarray_allocate_1.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog


[Bug fortran/53824] ICE with ALLOCATE of coarrays

2012-07-15 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53824

Thomas Koenig tkoenig at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |tkoenig at gcc dot gnu.org
   |gnu.org |


[Bug fortran/53824] ICE with ALLOCATE of coarrays

2012-07-01 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53824

Thomas Koenig tkoenig at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-07-01
 Ever Confirmed|0   |1

--- Comment #1 from Thomas Koenig tkoenig at gcc dot gnu.org 2012-07-01 
16:28:49 UTC ---
This looks straightforward and fixes the ICE:

Index: resolve.c
===
--- resolve.c   (Revision 188916)
+++ resolve.c   (Arbeitskopie)
@@ -7325,8 +7325,8 @@ resolve_allocate_deallocate (gfc_code *code, const
  }
 }

-  /* Check that an allocate-object appears only once in the statement.  
- FIXME: Checking derived types is disabled.  */
+  /* Check that an allocate-object appears only once in the statement.  */
+
   for (p = code-ext.alloc.list; p; p = p-next)
 {
   pe = p-expr;
@@ -7376,9 +7376,10 @@ resolve_allocate_deallocate (gfc_code *code, const
{
  gfc_array_ref *par = (pr-u.ar);
  gfc_array_ref *qar = (qr-u.ar);
- if (gfc_dep_compare_expr (par-start[0],
-   qar-start[0]) != 0)
- break;
+ if ((par-start[0] != NULL || qar-start[0] != NULL)
+  gfc_dep_compare_expr (par-start[0],
+  qar-start[0]) != 0)
+   break;
}
}
  else