<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/139776>139776</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[flang][openacc] Flang hangs and continuously allocates memory when compiling gfortran test: goacc/loop-3.f95
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
tarunprabhu
</td>
</tr>
</table>
<pre>
Steps to reproduce:
Assuming that the [LLVM test suite](https://github.com/llvm/llvm-test-suite) is checked out in `./llvm-test-suite`, compile the test as follows:
```
$ flang -fopenacc ./llvm-test-suite/Fortran/gfortran/regression/goacc/loop-3.f95
```
Observed behavior: Some warning messages are printed following which flang hangs and continuously allocates memory until either manually killed or an OOM error occurs. This was run with `/usr/bin/time -v` and terminated with `SIGTERM` after approx. 1 minute. The output in this case is provided below. Note the maximum resident set size and the number of page faults.
```
./llvm-test-suite/Fortran/gfortran/regression/goacc/loop-3.f95:18:9: warning: Misplaced OpenACC end directive
!$acc end loop ! { dg-error "Unexpected" }
^^^^^^^^
./llvm-test-suite/Fortran/gfortran/regression/goacc/loop-3.f95:25:9: warning: Misplaced OpenACC end directive
!$acc end loop ! { dg-error "Unexpected" }
^^^^^^^^
./llvm-test-suite/Fortran/gfortran/regression/goacc/loop-3.f95:32:9: warning: Misplaced OpenACC end directive
!$acc end loop ! { dg-error "Unexpected" }
^^^^^^^^
flang-21: error: unable to execute command: Terminated
flang-21: error: flang frontend command failed due to signal (use -v to see invocation)
flang version 21.0.0git (git@github.com:llvm-project-tlp/llvm-project.git 84c1564d1825880d463d9f85153812f1f6805289)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /path/to/bin
Build config: +assertions
flang-21: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
flang-21: note: diagnostic msg: /tmp/loop-3-2b0785
flang-21: note: diagnostic msg: /tmp/loop-3-2b0785.sh
flang-21: note: diagnostic msg:
********************
Command exited with non-zero status 254
Command being timed: "/path/to/bin/flang -fopenacc ./llvm-test-suite/Fortran/gfortran/regression/goacc/loop-3.f95"
User time (seconds): 18.04
System time (seconds): 53.96
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 1:12.41
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 93215748
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 3
Minor (reclaiming a frame) page faults: 23283575
Voluntary context switches: 178
Involuntary context switches: 96
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 254
```
What follows is a minimal section of code from the original test that seems to reproduce this behavior.
```fortran
subroutine test1
implicit none
integer :: i, j
outer_loop1: do i = 1, 5
!$acc loop
inner_loop1: do j = 1,5
if (i .eq. j) cycle outer_loop1 ! { dg-error "CYCLE statement" }
end do inner_loop1
end do outer_loop1
end subroutine test1
```
Another gfortran test, `goacc/loop-3-2.f95` also exhibits similar behavior.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzcWF9v2zgS_zTMy8CGRFm2_OAH5Y-7AdJN0KS7uKcFTY0kJhSpJSk72U9_GEpOkzTtddE9HHCGAAvkDDl_yN_8RsJ71RjEDctPWX5-IobQWrcJwg2md2LXDic7Wz1tbgP2HoIFh72z1SCRZSVL6Cm9HzplGgitCBBaBJafXl399hEC-gB-UAFZfs540YbQe9LjW8a3jQrtsJtL2zG-1Xp__JuR2mxU42tQHmSL8gErsEMAZYAtk_k7ssuE8TOQtuuVxmhH3F94qK3W9uCfLSbR8UlKxhdQa2EamNW2RyOkhPdW59utdcEJQ5bXz68OG4feKxvHrZCSdK3tZ9m8XudvN0vK651Ht8cKdtiKvbKOZSXc2g7hIJyhMHbovWjQg3AIvVMmYDW5QNOHVsl2MrkVpvEgTAXSmqDMYAevn0BobaUI6KHDzronGExQGlCFFh10wgxC6yd4UFpTVB0IA9fXHwGdsw6slIPzc7hrlYeD8OAGAwcVWogh3g7eMb7dKfI4qA5htmfLJFoR0HXKCDL4qHB7-eHu4tPHKFEHdCD63tnHOaTQKTMEpI2QUtuP2Q20rRQeKfO9s3tVxWhpe5jDrzaMqe3Eo-qGDhx6VaEJ4DGAV3_haEeLYIZuhw5sDb1oEGox6ODn8PUJ-AeznZVpwbJyTTmd0kmvH5XvtZBYwXWPpjw7AzQVVMqhDGqPLCkBABhPGV_Q-aNZWpWGgK1OoWpmY24Y558NPvYoA1aMc2Crc1Jn-cX7zz_sHs__r93L-P_Eveffd_yMF37GU7IorkYvgxE7wjoL-IhyCEjw1wlT0eTd82X8lvoIIrWzJmDEkKgLtVCEC9UQV6b6IDQwXgye7nocQwRl9gQyMZrr4w6wR0cBBp7Ok3nSqECKjQpskbzA-6yMKeudvUcZZkH3xyxOQ3PSLBYyzZeLKi14XhRJtVhm1bou8jTPipTXab0skpwX63H_O-EaDOTWY7H8Y7mYDebB2IOZaWWGx1ljBhJqHYoKOluhJtHeevXIkvLS-CAIDc9VjAzj216ElhDOTmCXlKeD0hFpa9WMQqfCe3QUA_8mxsYGqpBQKdEY64OS0PlRi2rOTzwRv26uLsrbCyjv7sqzX-DulwvYXl9dXf9--esH2F5eXdzC3XUcPv38AT5d3Fx_uhur302s3xK9xwq8HZxExgtPhZZSL7y3UkUAJ9T30qk-PAs4hLGwVCDCuN4P-sy3oeufb9uM75JVkf-k-ty3fyvoPx33s-l-4KN6rnDGmtlf6Cz4IMLggeeLuNf6KLzDSI1Uh9XoCn_nbPHtf5GCcD5a9Nmji4bQlfQorakorWRVWsyTye7bJx-w-4Zcns3Xy1HuBp2kumtrOLv5PFbte7uDxsY7uF4zno-SF1r0dNoYLw5Ca5Daygc6T8c9WpaVHYGC90RGxrejZVRT-XyRjmuVe3RUzX0rHBLfeJyqPuPFw-4p4FEveS0_mEmjEkH8kIYPQj78kGSwQejvSn78Jll5q7DOeJqvFsXrHf6z3vNG97HMFA7_HJSjk3fJ-Paaov2CBZFGNmkoc9SQWqjI4wXUTnT4jhLPeJHlqymxv1k9mCDcU2SfMRUHFWSLUTZdTV5cmv13BY8n6vYgYndwdGZLNN6Px1GZfgjfmhy548vZWysfMHxh0h5N-M60Q4lqP17Qo0iseh4q1GqP7tXcTTwfUxpeZmGRHH25eFRhgoQYtwkV3jYDv1PHNHUnRHcFcWLV0XEicmENXS9pK6Qi3UVaa51qFBXk2NzElssjdq97s_E6HjuM-Zu9j9CRlH7YOTsEZcZeKY1kRHW9VlIFwraR3VAL0qADgvysBEV91v24KFD00f1BeBMxuLKggGXnkJJU_hU7IsFpUBnzRvP-WTN_5kWqpjArmOOfc7inQymfpMaX-77LtM7-dXZ1EXOAHaX_Fd2KDM6-soAmpuGXLiUlDb4TqDepLI2N3dURmKMchYAtk9egPOMRlqkh0p6YW6t2KnjwqlNauC9pO6k2WbXO1uIEN-lqsUqX2TLJTtrNjssqwySt1mK1WK34ol5zmRW7uqqWlcDdidrwhOdJnmbpOs14NherGnnCi7zKcVckFVsk2Aml51Rj5tY1J8r7ATdptl6tlida7FD7-E2A81iaqIrk5yduE4vSbmg8WyRa-eC_LBFU0PFDwqiRn7P8dKpnLD-H7d9qWQ8tmqmZJ0x6HdashK8L3cng9OYHPzFMNJPxbfTbM76dXN9v-L8DAAD__xGuV5M">