public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/21104] New: Segmentation fault on correct code
@ 2005-04-19 12:02 paulthomas2 at wanadoo dot fr
  2005-04-19 12:21 ` [Bug fortran/21104] " pinskia at gcc dot gnu dot org
                   ` (11 more replies)
  0 siblings, 12 replies; 13+ messages in thread
From: paulthomas2 at wanadoo dot fr @ 2005-04-19 12:02 UTC (permalink / raw)
  To: gcc-bugs

The following reduced program causes a segmentation fault at runtime.  It runs 
correctly if the *x on line 11 is removed.  From this, I would surmise that 
something is not right with the allocation of space for the temporary.  Further 
simplification of the structure of the program eliminates the fault; eg. making 
the function public and moving the expression from the subroutine to the main 
program works correctly.

A quick look with -fdump-tree-original indicates that, in the faulty case, no 
memory is allocated to the function output and its pointer remains NULL.

I have tried putting an explicit interface for generalized_hookes_law in the 
subroutine perdida but this has no effect.

$ cat test_intr.f90
!
!      Copyright (C) 1997 by Quetzal Computational Associates, Inc.
!
module perdida_m
    private :: generalized_hookes_law
    public  :: perdida
    integer, parameter, private  :: LONGreal = selected_real_kind (15, 90)

contains

  subroutine perdida (z, x)
    real (kind = LONGreal), dimension (:,:), intent (inOUT) :: z
    real (kind = LONGreal), dimension (:,:), intent (inOUT) :: x
    z = generalized_hookes_law (x) * x
  end subroutine perdida

  function generalized_hookes_law (x) result (z)
    real (kind = LONGreal), dimension (3,3) :: z
    real (kind = LONGreal), dimension (:,:), intent (in) :: x
    z = x
  end function generalized_hookes_law

end module perdida_m

program iztaccihuatl
  use perdida_m
  integer, parameter  :: LONGreal = selected_real_kind (15, 90)
  real (kind = LONGreal)   ::  x(3,3) = 42.0_LONGreal
  real (kind = LONGreal)   ::  y(3,3)
  call perdida (y, x)
end program iztaccihuatl
THOMASP@PC-THOMAS-P /cygdrive/d/gfortran
$ d:/check/bin/gfortran -std=f95 test_intr.f90

THOMASP@PC-THOMAS-P /cygdrive/d/gfortran
$ ./a
Segmentation fault (core dumped)

-- 
           Summary: Segmentation fault on correct code
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: paulthomas2 at wanadoo dot fr
                CC: Thomas dot Koenig at online dot de,gcc-bugs at gcc dot
                    gnu dot org


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


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

* [Bug fortran/21104] Segmentation fault on correct code
  2005-04-19 12:02 [Bug fortran/21104] New: Segmentation fault on correct code paulthomas2 at wanadoo dot fr
@ 2005-04-19 12:21 ` pinskia at gcc dot gnu dot org
  2005-04-19 13:32 ` paulthomas2 at wanadoo dot fr
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-04-19 12:21 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-19 12:21 -------
I don't think this is correct code.  See PR 20960.  Yes ICC does not seg fault on it.  I will note that XLC 
does the same thing as gfortran.

I also think this is a dup of bug 18197.

-- 


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


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

* [Bug fortran/21104] Segmentation fault on correct code
  2005-04-19 12:02 [Bug fortran/21104] New: Segmentation fault on correct code paulthomas2 at wanadoo dot fr
  2005-04-19 12:21 ` [Bug fortran/21104] " pinskia at gcc dot gnu dot org
@ 2005-04-19 13:32 ` paulthomas2 at wanadoo dot fr
  2005-04-19 16:15 ` fxcoudert at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: paulthomas2 at wanadoo dot fr @ 2005-04-19 13:32 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From paulthomas2 at wanadoo dot fr  2005-04-19 13:31 -------
Subject: Re:  Segmentation fault on correct code

>
> ------- Additional Comments From pinskia at gcc dot gnu dot org 
> 2005-04-19 12:21 -------
> I don't think this is correct code.  See PR 20960.  Yes ICC does not seg 
> fault on it.  I will note that XLC
> does the same thing as gfortran.
>
I am not sure if it is correct or not; probably not - see below.  This PR, 
20960 and 18197 are clearly related - I did not find them because I looked 
in the summary for segmentation fault rather than bus error.

The difference with 20960 is that an interface for the function, in the 
subroutine, did not fix the problem.  At module level, the private 
declaration prohibits the interface.

> I also think this is a dup of bug 18197.

I agree.  I am just out of the door and on the road for a couple of days. 
As soon as I am back, I willl run these by the Digital compiler, with 
/strict set.  These usually sorts out the wolves in sheep's clothing. 




-- 


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


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

* [Bug fortran/21104] Segmentation fault on correct code
  2005-04-19 12:02 [Bug fortran/21104] New: Segmentation fault on correct code paulthomas2 at wanadoo dot fr
  2005-04-19 12:21 ` [Bug fortran/21104] " pinskia at gcc dot gnu dot org
  2005-04-19 13:32 ` paulthomas2 at wanadoo dot fr
@ 2005-04-19 16:15 ` fxcoudert at gcc dot gnu dot org
  2005-04-19 19:23 ` pinskia at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: fxcoudert at gcc dot gnu dot org @ 2005-04-19 16:15 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From fxcoudert at gcc dot gnu dot org  2005-04-19 16:15 -------
Further reduced testcase:

module perdida_m
contains
  subroutine perdida (z, x)
    real, dimension (:) :: x, z
    z = generalized_hookes_law (x) + 1.0
  end subroutine perdida

  function generalized_hookes_law (x) result (z)
    real, dimension (3) :: z, x
    z = x
  end function generalized_hookes_law
end module perdida_m

program test
  use perdida_m
  real ::  x(3) = 42.0
  real ::  y(3)
  call perdida (y, x)
  print *, y
end


Lahey/Fujitsu Fortran 95 Source Check Output

Compiling program unit perdida_m at line 1:
Compiling program unit test at line 13:
Encountered 0 errors, 0 warnings, 0 informations in file SOURCE.F90.
Compiling file SOURCE.F90.

-- 


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


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

* [Bug fortran/21104] Segmentation fault on correct code
  2005-04-19 12:02 [Bug fortran/21104] New: Segmentation fault on correct code paulthomas2 at wanadoo dot fr
                   ` (2 preceding siblings ...)
  2005-04-19 16:15 ` fxcoudert at gcc dot gnu dot org
@ 2005-04-19 19:23 ` pinskia at gcc dot gnu dot org
  2005-04-23 16:47 ` pault at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-04-19 19:23 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-19 19:23 -------
(In reply to comment #3)
> Further reduced testcase:
> Lahey/Fujitsu Fortran 95 Source Check Output

I think everyone should read <http://www.cs.rpi.edu/~szymansk/OOF90/bugs.html#6> which David E. 
send me to show why PR 20960 was undefined/invalid code.

-- 


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


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

* [Bug fortran/21104] Segmentation fault on correct code
  2005-04-19 12:02 [Bug fortran/21104] New: Segmentation fault on correct code paulthomas2 at wanadoo dot fr
                   ` (3 preceding siblings ...)
  2005-04-19 19:23 ` pinskia at gcc dot gnu dot org
@ 2005-04-23 16:47 ` pault at gcc dot gnu dot org
  2005-04-23 16:58 ` pinskia at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: pault at gcc dot gnu dot org @ 2005-04-23 16:47 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pault at gcc dot gnu dot org  2005-04-23 16:47 -------
It is my belief that this is correct code, after all.

An explicit interface is REQUIRED to invoke a procedure with a pointer or 
target dummy argument or a pointer function result. 

In other circumstances it is advised, as good practice.

Here the compiler can resolve the interface because the result has explicit 
shape.  It should therefore be able to deal with it and produce executable 
code.  At very least, it should emit a message demanding an explicit interface 
and give in gracefully.

PS Andrew, for someone who claims not to know fortran, you seem to get into 
some of its murkier corners!  We'll have you writing fortran code yet...

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
   Last reconfirmed|0000-00-00 00:00:00         |2005-04-23 16:47:32
               date|                            |


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


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

* [Bug fortran/21104] Segmentation fault on correct code
  2005-04-19 12:02 [Bug fortran/21104] New: Segmentation fault on correct code paulthomas2 at wanadoo dot fr
                   ` (4 preceding siblings ...)
  2005-04-23 16:47 ` pault at gcc dot gnu dot org
@ 2005-04-23 16:58 ` pinskia at gcc dot gnu dot org
  2005-04-27 16:05 ` paulthomas2 at wanadoo dot fr
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-04-23 16:58 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-23 16:58 -------
(In reply to comment #5)
> PS Andrew, for someone who claims not to know fortran, you seem to get into 
> some of its murkier corners!  We'll have you writing fortran code yet...

I get help from people who can try other compilers and from people who actually know fortran.

-- 


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


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

* [Bug fortran/21104] Segmentation fault on correct code
  2005-04-19 12:02 [Bug fortran/21104] New: Segmentation fault on correct code paulthomas2 at wanadoo dot fr
                   ` (5 preceding siblings ...)
  2005-04-23 16:58 ` pinskia at gcc dot gnu dot org
@ 2005-04-27 16:05 ` paulthomas2 at wanadoo dot fr
  2005-07-23  6:31 ` pinskia at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: paulthomas2 at wanadoo dot fr @ 2005-04-27 16:05 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From paulthomas2 at wanadoo dot fr  2005-04-27 16:03 -------
This is a bug for the following reasons:

A] From the standard, we have:
12.3.1.1 Explicit interface
A procedure other than a statement function shall have an explicit interface if
......
(2) The procedure has
......
   (c) An array-valued result (functions only),
......
(3) The procedure is elemental.
......
HOWEVER....
NOTE 12.3
An interface block cannot be used to describe the interface of an internal 
procedure, a module procedure, or an intrinsic procedure because the 
interfaces of such procedures are already
explicit..........

B] DF f90 says that it is standard conforming.
Sorry, the option is /stand:f95 and not /strict.  Anyway it goes through.
$ f90 /stand:f95 /compile_only /nologo test_intr.f90
test_intr.f90

In conclusion, this is correct code.  Inserting an explicit interface in the 
module fails, correctly, but is allowed, correctly, in the subroutine perdida.




-- 


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


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

* [Bug fortran/21104] Segmentation fault on correct code
  2005-04-19 12:02 [Bug fortran/21104] New: Segmentation fault on correct code paulthomas2 at wanadoo dot fr
                   ` (6 preceding siblings ...)
  2005-04-27 16:05 ` paulthomas2 at wanadoo dot fr
@ 2005-07-23  6:31 ` pinskia at gcc dot gnu dot org
  2005-09-05 13:20 ` rsandifo at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-07-23  6:31 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
   Last reconfirmed|2005-04-23 16:47:32         |2005-07-23 06:01:08
               date|                            |


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


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

* [Bug fortran/21104] Segmentation fault on correct code
  2005-04-19 12:02 [Bug fortran/21104] New: Segmentation fault on correct code paulthomas2 at wanadoo dot fr
                   ` (7 preceding siblings ...)
  2005-07-23  6:31 ` pinskia at gcc dot gnu dot org
@ 2005-09-05 13:20 ` rsandifo at gcc dot gnu dot org
  2005-09-09  6:22 ` cvs-commit at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: rsandifo at gcc dot gnu dot org @ 2005-09-05 13:20 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From rsandifo at gcc dot gnu dot org  2005-09-05 13:20 -------
Working on a patch.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |rsandifo at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2005-07-23 06:01:08         |2005-09-05 13:20:15
               date|                            |


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


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

* [Bug fortran/21104] Segmentation fault on correct code
  2005-04-19 12:02 [Bug fortran/21104] New: Segmentation fault on correct code paulthomas2 at wanadoo dot fr
                   ` (8 preceding siblings ...)
  2005-09-05 13:20 ` rsandifo at gcc dot gnu dot org
@ 2005-09-09  6:22 ` cvs-commit at gcc dot gnu dot org
  2005-09-09  6:24 ` rsandifo at gcc dot gnu dot org
  2005-09-09  6:34 ` cvs-commit at gcc dot gnu dot org
  11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-09-09  6:22 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-09-09 06:22 -------
Subject: Bug 21104

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	rsandifo@gcc.gnu.org	2005-09-09 06:22:29

Modified files:
	gcc/fortran    : ChangeLog trans.h trans-array.h trans-array.c 
	                 trans-expr.c 
	gcc/testsuite  : ChangeLog 
Added files:
	gcc/testsuite/gfortran.dg: array_alloc_1.f90 array_alloc_2.f90 
	                           array_alloc_3.f90 

Log message:
	PR fortran/21104
	* trans.h (gfc_interface_sym_mapping, gfc_interface_mapping): Moved
	from trans-expr.c.
	(gfc_init_interface_mapping, gfc_free_interface_mapping)
	(gfc_add_interface_mapping, gfc_finish_interface_mapping)
	(gfc_apply_interface_mapping): Declare.
	* trans-array.h (gfc_set_loop_bounds_from_array_spec): Declare.
	(gfc_trans_allocate_temp_array): Add pre and post block arguments.
	* trans-array.c (gfc_set_loop_bounds_from_array_spec): New function.
	(gfc_trans_allocate_array_storage): Replace loop argument with
	separate pre and post blocks.
	(gfc_trans_allocate_temp_array): Add pre and post block arguments.
	Update call to gfc_trans_allocate_array_storage.
	(gfc_trans_array_constructor, gfc_conv_loop_setup): Adjust for new
	interface to gfc_trans_allocate_temp_array.
	* trans-expr.c (gfc_interface_sym_mapping, gfc_interface_mapping):
	Moved to trans.h.
	(gfc_init_interface_mapping, gfc_free_interface_mapping)
	(gfc_add_interface_mapping, gfc_finish_interface_mapping)
	(gfc_apply_interface_mapping): Make extern.
	(gfc_conv_function_call): Build an interface mapping for array
	return values too.  Call gfc_set_loop_bounds_from_array_spec.
	Adjust call to gfc_trans_allocate_temp_array so that code is
	added to SE rather than LOOP.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/ChangeLog.diff?cvsroot=gcc&r1=1.545&r2=1.546
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/trans.h.diff?cvsroot=gcc&r1=1.33&r2=1.34
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/trans-array.h.diff?cvsroot=gcc&r1=1.13&r2=1.14
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/trans-array.c.diff?cvsroot=gcc&r1=1.58&r2=1.59
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/trans-expr.c.diff?cvsroot=gcc&r1=1.61&r2=1.62
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.6036&r2=1.6037
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/array_alloc_1.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/array_alloc_2.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/array_alloc_3.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1



-- 


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


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

* [Bug fortran/21104] Segmentation fault on correct code
  2005-04-19 12:02 [Bug fortran/21104] New: Segmentation fault on correct code paulthomas2 at wanadoo dot fr
                   ` (9 preceding siblings ...)
  2005-09-09  6:22 ` cvs-commit at gcc dot gnu dot org
@ 2005-09-09  6:24 ` rsandifo at gcc dot gnu dot org
  2005-09-09  6:34 ` cvs-commit at gcc dot gnu dot org
  11 siblings, 0 replies; 13+ messages in thread
From: rsandifo at gcc dot gnu dot org @ 2005-09-09  6:24 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From rsandifo at gcc dot gnu dot org  2005-09-09 06:24 -------
Patch applied to mainline.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|---                         |4.1.0


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


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

* [Bug fortran/21104] Segmentation fault on correct code
  2005-04-19 12:02 [Bug fortran/21104] New: Segmentation fault on correct code paulthomas2 at wanadoo dot fr
                   ` (10 preceding siblings ...)
  2005-09-09  6:24 ` rsandifo at gcc dot gnu dot org
@ 2005-09-09  6:34 ` cvs-commit at gcc dot gnu dot org
  11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-09-09  6:34 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-09-09 06:34 -------
Subject: Bug 21104

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	rsandifo@gcc.gnu.org	2005-09-09 06:34:08

Modified files:
	gcc/fortran    : ChangeLog Make-lang.in dependency.h 
	                 dependency.c trans.h trans-array.c trans-expr.c 
	gcc/testsuite  : ChangeLog 
Added files:
	gcc/testsuite/gfortran.dg: vector_subscript_1.f90 
	                           vector_subscript_2.f90 

Log message:
	PR fortran/19239
	* Makefile.in (fortran/trans-expr.o): Depend on dependency.h.
	* dependency.h (gfc_ref_needs_temporary_p): Declare.
	* dependency.c (gfc_ref_needs_temporary_p): New function.
	(gfc_check_fncall_dependency): Use it instead of inlined check.
	By so doing, take advantage of the fact that character substrings
	within an array reference also need a temporary.
	* trans.h (GFC_SS_VECTOR): Adjust comment.
	* trans-array.c (gfc_free_ss): Remove GFC_SS_VECTOR case.
	(gfc_set_vector_loop_bounds): New function.
	(gfc_add_loop_ss_code): Call it after evaluating the subscripts of
	a GFC_SS_SECTION.  Deal with the GFC_SS_VECTOR case by evaluating
	the vector expression and caching its descriptor for use within
	the loop.
	(gfc_conv_array_index_ref, gfc_conv_vector_array_index): Delete.
	(gfc_conv_array_index_offset): Handle scalar, vector and range
	dimensions as separate cases of a switch statement.  In the vector
	case, use the loop variable to calculate a vector index and use the
	referenced element as the dimension's index.  Perform bounds checking
	on this final index.
	(gfc_conv_section_upper_bound): Return null for vector indexes.
	(gfc_conv_section_startstride): Give vector indexes a start value
	of 0 and a stride of 1.
	(gfc_conv_ss_startstride): Adjust for new GFC_SS_VECTOR representation.
	(gfc_conv_expr_descriptor): Expand comments.  Generalize the
	handling of the !want_pointer && !direct_byref case.  Use
	gfc_ref_needs_temporary_p to decide whether the variable case
	needs a temporary.
	(gfc_walk_variable_expr): Handle DIMEN_VECTOR by creating a
	GFC_SS_VECTOR index.
	* trans-expr.c: Include dependency.h.
	(gfc_trans_arrayfunc_assign): Fail if the target needs a temporary.
	
	2005-09-09  Richard Sandiford  <richard@codesourcery.com>
	
	PR fortran/21104
	* trans.h (gfc_interface_sym_mapping, gfc_interface_mapping): Moved
	from trans-expr.c.
	(gfc_init_interface_mapping, gfc_free_interface_mapping)
	(gfc_add_interface_mapping, gfc_finish_interface_mapping)
	(gfc_apply_interface_mapping): Declare.
	* trans-array.h (gfc_set_loop_bounds_from_array_spec): Declare.
	(gfc_trans_allocate_temp_array): Add pre and post block arguments.
	* trans-array.c (gfc_set_loop_bounds_from_array_spec): New function.
	(gfc_trans_allocate_array_storage): Replace loop argument with
	separate pre and post blocks.
	(gfc_trans_allocate_temp_array): Add pre and post block arguments.
	Update call to gfc_trans_allocate_array_storage.
	(gfc_trans_array_constructor, gfc_conv_loop_setup): Adjust for new
	interface to gfc_trans_allocate_temp_array.
	* trans-expr.c (gfc_interface_sym_mapping, gfc_interface_mapping):
	Moved to trans.h.
	(gfc_init_interface_mapping, gfc_free_interface_mapping)
	(gfc_add_interface_mapping, gfc_finish_interface_mapping)
	(gfc_apply_interface_mapping): Make extern.
	(gfc_conv_function_call): Build an interface mapping for array
	return values too.  Call gfc_set_loop_bounds_from_array_spec.
	Adjust call to gfc_trans_allocate_temp_array so that code is
	added to SE rather than LOOP.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/ChangeLog.diff?cvsroot=gcc&r1=1.546&r2=1.547
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/Make-lang.in.diff?cvsroot=gcc&r1=1.20&r2=1.21
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/dependency.h.diff?cvsroot=gcc&r1=1.4&r2=1.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/dependency.c.diff?cvsroot=gcc&r1=1.8&r2=1.9
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/trans.h.diff?cvsroot=gcc&r1=1.34&r2=1.35
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/trans-array.c.diff?cvsroot=gcc&r1=1.59&r2=1.60
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/trans-expr.c.diff?cvsroot=gcc&r1=1.62&r2=1.63
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.6037&r2=1.6038
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/vector_subscript_1.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/vector_subscript_2.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1



-- 


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


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

end of thread, other threads:[~2005-09-09  6:34 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-04-19 12:02 [Bug fortran/21104] New: Segmentation fault on correct code paulthomas2 at wanadoo dot fr
2005-04-19 12:21 ` [Bug fortran/21104] " pinskia at gcc dot gnu dot org
2005-04-19 13:32 ` paulthomas2 at wanadoo dot fr
2005-04-19 16:15 ` fxcoudert at gcc dot gnu dot org
2005-04-19 19:23 ` pinskia at gcc dot gnu dot org
2005-04-23 16:47 ` pault at gcc dot gnu dot org
2005-04-23 16:58 ` pinskia at gcc dot gnu dot org
2005-04-27 16:05 ` paulthomas2 at wanadoo dot fr
2005-07-23  6:31 ` pinskia at gcc dot gnu dot org
2005-09-05 13:20 ` rsandifo at gcc dot gnu dot org
2005-09-09  6:22 ` cvs-commit at gcc dot gnu dot org
2005-09-09  6:24 ` rsandifo at gcc dot gnu dot org
2005-09-09  6:34 ` cvs-commit 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).