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

    <tr>
        <th>Summary</th>
        <td>
            [Flang] execution error when a disassociated pointer variable is specified as an argument to loc intrinsic function
        </td>
    </tr>

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

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

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

<pre>
    ```
Version of flang-new : 18.0.0(103811a27abcbcc6792c88dcdd30034e5cc8adc3)
```
When a disassociated pointer variable is specified as an argument to `loc` intrinsic function, the program terminates abnormally at runtime.  
ifort also terminated abnormally at runtime, but gfortran terminated normally with the function returning 0.

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

snggu447_2.f90:
```fortran
module m1
  integer(8):: save
contains
  subroutine s1(n)
    integer,pointer::p(:,:)
 if (n==0) p=>null()
    call z(p)
  end subroutine s1
  subroutine z(p)
    integer,optional::p(:,:)
    save= loc(p)
 write(6,'(z16.16)') loc(p)
  end subroutine z
end module m1

program main
  use m1
  call s1(0)
  print *,'pass'
end program main
```

```
$ flang-new snggu447_2.f90; ./a.out
Segmentation fault (core dumped)
$
```

```
$ gfortran snggu447_2.f90; ./a.out
0000000000000000
 pass
$
```

```
$ ifort snggu447_2.f90; ./a.out
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC Routine            Line        Source
libc.so.6 00007FBF4E242520  Unknown               Unknown  Unknown
a.out 00000000004041D7  Unknown               Unknown  Unknown
a.out 000000000040418D  Unknown               Unknown  Unknown
libc.so.6 00007FBF4E229D90  Unknown               Unknown  Unknown
libc.so.6 00007FBF4E229E40  __libc_start_main     Unknown  Unknown
a.out 00000000004040A5  Unknown               Unknown Unknown
$
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVk9v47YT_TT0ZRCBomSJPvjgjeNggd_hh6bdHgOKGsncUqTAP3E3n76gZMeOk22QtoIhixTnzZs3MxSF96o3iGuy_EKW24WIYW_d2u6Nvem-Lxrb_liTih5_dEvo5hs6r6wB20GnhelvDB6AFBvIeUYzShjPacHzXLBaNLKRsqpXTHLeyrYtKC1KXErJRSsLwlYz5JWH3_doQECrvPDeSiUCtjBaZQI6eBJOiUYjKA9-RKk6hS0ID8KAcH0c0AQIFkhFtZWkoqBMcMp4JaGLRgZlDWG3EPYIo7O9EwMEdIMyIqAH0RjrBqH1DxABXDRBDZgBzMxUZ10Aob0927Tv2yQfTQzQJxMnzKXBy_KDCvuJyYkZOAzRGWV6oNlRnOn-a1pktbaH9E44nMwC-nCKIjncnRKSBvcnz8K0MDOXdhiVFrMGO_wTZTx69VGHVw696ftYlvUjy7oVJcXmKlVH8Hl2sG3UCEM-DyFpjj06wjhPWS42qUC8eMJ5gbQmCGX8abmPjbMxKIPgc8K4eSkNgAuw22MRzHgjYTw9sdvpfjJQHUwIxZYUW0rYCsbp-c5ErZPJJbQUWsMzYXy8mEbTXjF6S_Pa5pKlHZOoQv8tTYBZj2ILqU5foR2cCkgYr5IRqwnjz3mV5VVakYartybXpJ_n-TR7lZz5fir9QShzgoj-MoWTNFM26IWb0SkTgLDNTG0U3idKL87e4l419_uTrLzYTK5L7wtkhO1EZmOYlz9gn9p8qmPoRNSJEZfWIbRxGLE97yys_ByLl3b9kAS9uo4KTYr8M99zj37ouLPOBT01FD6hwxR7Xpdzn8HD1_uHu_tvaQPwb2WyUkbnsJ2Rvg6iR3h1_f8WfjmW0MX1v4vxg41OHvtYq0Zm3mYVJAXq3ZddecdKtmQU4Dfzh7EH8xr-PHt8mHGm6OCsZUnLfFv_ewy-_RzGu_Gw1Xb1yXh-gnNXUoDHx_T20QfhwmNqk8_FRDfLj7i8gvhZFS7addGuipVY4DqvKS2rnLJ6sV93ZcMlb0SzZEVLWVmuCuyaipVtgzWv6oVaM8qKPGeUVnlN6yzv2IpRuuRclMjzkpQUB6F0pvXTkFnXL5T3Edc146xYaNGg9tOBg7Gp6Umx6Zw1AU1LGEvHELdOpjdN7D0pqVY--DNYUEFPB5bpa0eWWzh_yNA56-DwXxwgtJXvHB0W0en1PoTRT7v5jrBdr8I-Npm0A2G7xPL4dzM6-x1lIGw3xe8J200S_BUAAP__C93FAQ">