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

    <tr>
        <th>Summary</th>
        <td>
            Support LOWER optional argument in C_F_POINTER interface
        </td>
    </tr>

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

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

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

<pre>
    Fortran 2023 introduced the LOWER optional argument to C_F_POINTER. It would be useful for this to be supported in flang.
Example:
```
program CPointersLB
  use iso_c_binding
  implicit none

  real, allocatable, target :: A(:,:,:)
  type(c_ptr) :: ptr
 integer :: nx, ny, nz, i
  real, pointer :: chunk(:,:)

  nx = 10
  ny = 10
  nz = 10

  allocate(A(nx, ny, nz))

  A = reshape([(real(i), i=1, nx*ny*nz)], shape(A))

  ptr = c_loc(A(1,1,1))

  call c_f_pointer(ptr, chunk, [nx, ny], [0, 0])

  print *, chunk(0,1)

  deallocate(A)
end program
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx0U0Fv8zYM_TXyhfgCWbYb--CDkzRAgWItugE7GrJM29oUyZDkNumvH6Q4azJgQCKZFN_jI0Fy5-SoEWtS7EhxSPjiJ2PrThirpVKYdKa_1EdjveUaGGUZSO2t6ReBPfgJ4fXtz-cPMLOXRnMF3I7LCbUHb2DfHtv3t5ff_nj-2MCLhy-zqB46hMXhsCgYjAU_SRdiOwS3zLOxHnuQGgbF9bghtHk-89OskGQNoQ15ouuPNrM1o-Un2L8bqT1a97ojtIFADtKZVrSd1L3UY_TK06ykkB600RiYgtMiV4TtgStlBPe8UxhMz-2IHkLKrIGGsDJ8sv3dWUW8v8xIWCna2VvCqhsiWLQJjcIR7c2rz4FbX-L5HU75IGK-lnELF9Oi_35MXd106zOQ7AApvVqXB-v7x4qOtbggNJTyXxnVHW8ToRbdxGNhYShYeRVYyhgbVGeHNKLPhDWBqLnyFIfgvWGbR-rZ20guWmXEKiWwrP_7UMGVAtEO7doRwsrY3_2tJ3sgxe7fOq5pSbGj4abR_klrpfZAWHMHL-kt5xrU42OPwgPqHtYJu5-7pK-zvsoqnmCdbgtGK_ZUpslUD5ilRVHSgW0ZG7KuKLY032Ihsi6nRVomsmaUFXRLK0ZZnqebrOyKtMvLvizyjA9bklM8cak2Sn2eNsaOiXRuwTrNt2VaJYp3qFzcU8Y0fkF8JYyFtbV1AP3qltGRnCrpvPuh8dIrrH-_btf_7qvU9_sah9cOXGCyWFVP3s8uzuCRsOMo_bR0G2FOhB1DmvX6NVvzFwpP2DGKc4QdV_WfNfsnAAD__0a-Sqw">