<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/113842>113842</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [Flang] Value of component-part when component-part of derived type is uninitialized
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            flang
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          ohno-fj
      </td>
    </tr>
</table>

<pre>
    ```
Version of flang-new : 20.0.0(c2717a89b8437d041d532c7b2c535ca4f4b35872)/AArch64
```

This is for value of `component-part` when `component-part` of `derived type` is uninitialized.  
When `component` of `derived type` inherited from parent has three nest levels, `the uninitialized value (ma)` does not seem to be initialized with 0.  
The above program is `3-P-405-tas-extends01_131.f90`

However, for two nest levels, it seems to be initialized with 0.  
The above program is `3-P-405-tas-extends01_132.f90`

The following are the test program, Flang-new, Gfortran and ifx compilation/execution result.

3-P-405-tas-extends01_131.f90:
```fortran
program main
  type tp1
     integer(kind=4) :: ma
     integer(kind=4) :: mb = 3
  end type tp1

  type, extends(tp1) :: tp2
 integer(kind=4) :: mc = 4
  end type tp2

  type, extends(tp2) :: tp3
     integer(kind=4) :: md = 5
  end type tp3

  type(tp1) t1
  type(tp2) t2
  type(tp3) t3
  print *, t1
  print *, t2
 print *, t3
end program main
```

```
$ flang-new 3-P-405-tas-extends01_131.f90; ./a.out
 56 3
 791621423 3 4
 -1431655766 3 4 5
$
```

```
$ gfortran 3-P-405-tas-extends01_131.f90; ./a.out
           0           3
 0           3           4
           0           3           4 5
$
```

```
$ ifx 3-P-405-tas-extends01_131.f90; ./a.out
 0           3
           0           3           4
 0           3           4 5
$
```

3-P-405-tas-extends01_132.f90:
```fortran
program main
  type tp1
     integer(kind=4) :: ma
     integer(kind=4) :: mb = 3
  end type tp1

  type, extends(tp1) :: tp2
 integer(kind=4) :: mc = 4
  end type tp2

!  type, extends(tp2) :: tp3
!     integer(kind=4) :: md = 5
!  end type tp3

  type(tp1) t1
  type(tp2) t2
!  type(tp3) t3
  print *, t1
  print *, t2
!  print *, t3
end program main
```

```
$ flang-new 3-P-405-tas-extends01_132.f90; ./a.out
 0 3
 0 3 4
$
```

```
$ gfortran 3-P-405-tas-extends01_132.f90; ./a.out
           0           3
           0           3 4
$
```

```
$ ifx 3-P-405-tas-extends01_132.f90; ./a.out
 0           3
           0           3 4
$
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsV01v4zYQ_TX0ZWCDHOrzoIO3gdtjD4vtsaCkkcWtTBokbWf76wvKcmI7jpNsA_TSILCpMTnvvdHwgVTe67Uhqlj6haUPM7ULvXWV7Y2dd99ntW1_VCzj0z9_YHz5jZzX1oDtoBuUWc8NHYDJJSBf8AVnWDSYi1wVZV0kMm95ItpUYpPX2KQybVTSJbVMixwZlgxXy6Vr-iw5Jr_COn5-7bUH7aGzDvZq2FHEZhlv7GZrDZkw3yoXWMbh0JO5_ctxRUtO76mF8GNLMao97Iw2Omg16L-pXQAcIf-4TnQnh-nJ6UAtdM5uYKscmQC98hB6RwSGfICB9jR4hr_EDKGnS9hJFcNio2JRMg6tJQ_GBvBEGwgWaoLzFQcdeuBPfL_2BKq2e4Kts2unNlEay7ic_z5PeDoPys_pMZBpPRd_CikWXXld5t_sgfbkIslY6XCw19z1kY7_fD54g0_M0dlhsAdt1qAcQSxciJSmpJHT6tSD8eHXzrrglAFlWtDdI8T3pwcVtDUMV_RIzS6OwZHfDWFxDne_VHJ51aAT0jF6ErlReorA2B8QtuL0DADaBFrHChd_adMy-ZAwLOPeidtno949swYmH0Ce5pNpr9DOOcS6THoYFnHKc6awxWnqfcBmBExuAOLbgHgBKN-tsh1B0xug8hboSVoQL-Ijg4Av4nKMPzHaOm0CMFxGBc9pLsOnLJfRKUfk-LIXbpradRCTMzt9oxe_wILhSi3sLkxs0uypHfJSZCgSlCCf3thcJFJkaZpnWYyeisrwnu3eYLg-7a8PE3z-42fjE-eL2Nk4ub_6fOZPa4o28WE5t0S8g-Rbct8n4r6J_u9U73AqhuIDZjXO_phfjUs-y7LO2P471xoT_SfOha_vpGcTeDKszzemV_HvG9Nre_pned4zmzsl-jRis7aSbSlLNaNK5JLzXOSIs75qikSJpk3TsuO1UKJs6yJVRVakUsimpJmukGMiOOYosUhwwQtZt5R1SGXDpUpZwmmj9LAYhv1mYd16pr3fUSWELBKcDaqmwY_3DMSxXxhivHK4Ki6Y17u1ZwkftA_-OUXQYRgvJ-Mxj6UP8O10Abg84x-P_lcx28H5af3FcX-2c0PVh7D1cQ_jiuFqrUO_qxeN3TBcRRrT13zr7HdqAsPVKMszXE3K9hX-EwAA__91L40T">