https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98454

            Bug ID: 98454
           Summary: Apparent wrong initialization in function result
           Product: gcc
           Version: 9.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: fmartinez at gmv dot com
  Target Milestone: ---

Created attachment 49845
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49845&action=edit
Module with type implmentation and test driver

Good morning.

The components of a derived type seem to be wrongly initialized when they type
is the output of a function (see code attached).
I would expect that any declaration of the type 
   type(t_test) :: x
would lead to all components initialized with the values explicitly provided in
the type declaration. It seem not to be the case in the attached example.

 Before constructor
   unit      =           -1
   default   =            0
   trace     =  T
   def trace =  F
 After constructor
   unit      =  -1230083984
   default   =        21901
   trace     =  T
   def trace =  F

I have tried with Intel 19.1 and it provides the expected behaviour.

 Before constructor
   unit      =           -1
   default   =            0
   trace     =  T
   def trace =  F
 After constructor
   unit      =           -1
   default   =            0
   trace     =  T
   def trace =  F

The same behaviour is observed in gfortran 11

Best regards,
Fran

Reply via email to