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

    <tr>
        <th>Summary</th>
        <td>
            [flang] Crash on nested PDT with len parameter
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          ashe2
      </td>
    </tr>
</table>

<pre>
    Running `flang-new` on the source file below results in an illegal instruction:

```
$ flang-new test.f90
flang-new: error: unable to execute command: Illegal instruction: 4
flang-new: error: flang frontend command failed due to signal (use -v to see invocation)
flang-new version 17.0.0 (git@github.com:llvm/llvm-project.git 02ce49afb9a078932c74f4d9b43189a5567e54e9)
Target: x86_64-apple-darwin22.5.0
```

It appears to be infinite recursion in `FoldOperation(FoldingContext &, TypeParamInquiry &&)`

Source file:
```
subroutine test
    implicit none
    type Part(dim)
        integer, len :: dim
    end type
    type Collection(dim)
        integer, len    :: dim
        type(Part(dim)) :: parts
    end type
    integer :: len = 10
 type(Collection(len)) :: c
end subroutine
```

This is based on an example from the Fortran discourse:
 https://fortran-lang.discourse.group/t/working-with-parameterised-derived-type-containing-array-of-parameterised-derived-type/5823

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMVEtv8zYQ_DX0ZSFBoh6RDjqkCQTk1KDNvaDElbwtRap82PG_Lyi_6iAIPsOQzeVqZna5HOEczRqxY9VvrHrdieD3xnbC7ZHvBiNP3R9Ba9IzsDqblNBzovHI6gyMBr9HcCbYEWEihTCgMkew6ILyDkiD0EBK4SwUkHbehtGT0ax4Ztkry67POrt8z0tewo0IPDqfTu1l7y6geAa01tj4J2gxKARvAD9xDB5hNMsitIybb9_yQ_kT4BaFyRrtUcsrGkyCFEqQYeOKfRMKGG-CQ0gOWwwRSB_MKDYe3n5hgQNaR0ZD_pRmaRZfnsmzMpvJ78OQjmZhxbNSh4XxPv4kqzV_4-jTmTxkfMSyFdPQiuypaQs-PpVTKduhLPKmFVVVP2FVYnvj_RB2Rh8r-mzqv-oyEeuqMJHCHklznlZp9v0RbM83D2JdUVgXSxtiZRNp8ggWx3Cug3Sci94o-fuK9lJ1E9ek55fYv08PjNeMv8DHacV3YcXypv8NZE_neB3VPhL_eR-p-6g8KnRhsCZ40rhNyDkIAEDLqmgkD9povIf9aUV4F9Yz3khabh2Cy4e0xxltlKlQQ6QtniFm3tLiJESYL6AvRikcL4X_AjTAt-hXPMabR5m8veavwnr3k54L0zX_XMgr5JeeXfEfFCvUjyzjOTmi35v8w5R87MkBORiEQxlNQWjAT7GsCuMNWjaT6I31VmiQ5EYTrLufK-y9X11c8p7xfjonJvHCpLfsdLYmrIz3nvH-aOw_pOfkSH6frHGe0KMlhzKRaOmAMomFJqPRXlC0rkRYK06JmX5IZ7yvGl6cRe1kV8i2aMUOu7xual7mTd7u9l01TnKsx7qqqiKv8rriJeZDWdTNICWv5Y46nvEiq7Mmr4ssL9PiqZJymPKS8zKXomRlhosglcbbnRo778i5gF1d5G2zU2JA5TYv5jz6xbbJOI_WbLvNEYYwO1Zmipx3dxRPXm0mvnkNq17hxQq3jwei0XmU8P76AbFn21zcGrELVnWPZ_A_Lzqb0BcvYrzfZDnG-032fwEAAP__e0fwZw">