[Patch, fortran] PR33554 - [4.3 regression] Seg.fault: Default initialization of derived type uses uninitialized values

Jerry DeLisle jvdelisle@verizon.net
Tue Oct 2 04:43:00 GMT 2007


Paul Richard Thomas wrote:
> :ADDPATCH fortran:
> 
> This regression came about when I rejigged the handling of default
> initialization of derived types with intent(out).  The block of code
> doing the initilization was placed too early and so pre-empted the
> calculation of dummy array offsets and lower bounds.  This triggered
> the segfault.  The solution is to move this code to its own function
> and to add the translated block to the top of the function body, just
> before any deferred trickery is done to the function result.  The code
> for deferred arrays is then added on top of that.  The testcase is the
> reporter's with a bit of dejagnuification.
> 
> Regtested on cygwin_nt/PIV (will bootstrap and regtest tonight on
> x86_ia64) - OK for trunk?
> 
> Paul
> 
> 
Paul, OK with fix typo in test case:  Delete dash in front of run directive.

Index: gcc/testsuite/gfortran.dg/intent_out_2.f90
===================================================================
*** gcc/testsuite/gfortran.dg/intent_out_2.f90	(révision 0)
--- gcc/testsuite/gfortran.dg/intent_out_2.f90	(révision 0)
***************
*** 0 ****
--- 1,47 ----
+ ! { dg-do -run }
+ ! Tests the fix for PR33554, in which the default initialization
+ ! of temp, in construct_temp, caused a segfault because it was



More information about the Fortran mailing list