<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/77330>77330</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[flang] llvm-flang error seen with Cray pointers and allocatable arrays
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang:frontend,
flang,
flang:parser
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
dpalermo
</td>
</tr>
</table>
<pre>
LLVM flang does not accept assumed-size in the array spec for Cray pointers. The reproducer has two forms that produce identical errors:
```
program test_crayptr
implicit none
pointer(ivar,var)
real*8 var(*) !works with gfortran, but not accepted by flang-new
!pointer(ivar,var(*)) !alternative equivalent statement pair
!real*8 var
real*8, allocatable :: location(:)
integer i
allocate(location(10))
ivar = loc(location)
do i=1,10
var(i) = i
enddo
write(*,*) location
end program test_crayptr
```
Info on Cray pointers https://docs.oracle.com/cd/E19957-01/805-4941/z40000a54ba7/index.html
Error:
>> flang-new pointer_program.f90
error: Semantic errors in pointer_program.f90
./pointer_program.f90:4:10: error: Implied-shape array 'var' must be a named constant or a dummy argument
real*8 var(*) !works with gfortran, but not accepted by flang-new
^^^
Program output from gfortran:
>> gfortran pointer_program.f90 -fcray-pointer
>> ./a.out
1.0000000000000000 2.0000000000000000 3.0000000000000000 4.0000000000000000 5.0000000000000000 6.0000000000000000 7.0000000000000000 8.0000000000000000 9.0000000000000000 10.000000000000000
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0VU-P6yYQ_zTkMoqFIY7jQw7pZiM96VWq1KrXp7EZx7QYXMC73ffpKxw7m-xujo0sAvN_ht8MGII-W6I9K35hxXGFY-yc36sBDfnerWqn3vbfv__5K7QG7RmUowDWRcCmoSEChjD2pNZB_yTQFmJHgN7jG4SBGmidh6d0Gpy2kXzIAP7oCDwN3qmxIQ8dBoivLon2AWKHEWYeaEU26gYNkPfOByYPjB8ZX9Ytn7_pOHh39thDpBB_NB7fhugvHADdD0Y3OoJ1lhbiHBMTO_2Cnomnaa0Wtic0TBx2MJF3TByYqICJ_NX5vwO86tjBuXU-erRMPEE9xpvKkIL67VK0taXX2SgT-ddeZ_OzBzSRvMWoXwjon1G_oCEbIUSM1KfdgPqaGxP5Xagfwk-hoTGuwYi1IUhFlAeYCNrZ5FoebtJO0Z3Jg74t9WKBmNjdaOb8EvNV9wU9MHlM1u8krxLKgWbymDPxlPOFCHOJ9ZS-PC6-Acgq5ZbDq9dTAFOpnub7uPq4iZasgsdo-ACby_rNtg6cvQcrdDEOE-rEiYmTck3InMfGUNa4nolTo5g4PedVVZRrnjNx2vFivak2aftzwznnWGxqLJk4aavo36yLvYFbv88J2B9xLZ-ZfH7HzhLPjzmnrK3m2GnWht-px9Qqc6OkTnyolDFx-oopDxsmD3nawNXwt9Q4qb87HJbOZqKc7quEfgwRagIEiz0paJwNEW0E5wFBjX3_BujPY8LsfIv_S1cVz_N3U8XfZgC4MQ5jhNa7_t2wvC_1Qv-qaLBuE3zWS9_e6qVSYubGeEVynvEPPxCfSfNPPuRsPnOKh8Lbh5zyM2f3ULh6yMn5R9ZK7aWqZIUr2ucl35SSy4qvun0tuCyUkOW2EnxL22Jb1kXbUl42DVX5dqX3gosNz_ku3-Yy51ndVrtt0zSSZM6V2LENpx61yYx56TPnzysdwkj7spSSrwzWZML0Wgkx4YDJQ-udjWQVE2IaDDPj_iQPA_qQBq9ID53fJ_vrejwHtuFGhxjePUYdzfQkXlSLI0zClydw6g0IRPaC1vuRgVbdjdupZcJq9GZ_P03OOnZjPQ-SZH7-Ww_e_UVNTDMjJR6YOE25_xcAAP__Zp1DoQ">