<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/131356>131356</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[flang] Spurious error with ASSOCIATE in a PURE procedure
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
kcooley-cvd
</td>
</tr>
</table>
<pre>
When given the following code:
```fortran
MODULE test_m
REAL :: module_var
CONTAINS
PURE SUBROUTINE test()
ASSOCIATE(var => module_var)
END ASSOCIATE
END SUBROUTINE test
END MODULE test_m
```
Flang wrongly announces an error:
```
./test.f90:14:17: error: A pure subprogram may not have a variable with the SAVE attribute
ASSOCIATE(var => module_var)
^^^
```
But `test` is a valid `PURE` subroutine since `var` is not assigned to. Version information:
```
flang version 20.1.0 (https://github.com/llvm/llvm-project.git 24a30daaa559829ad079f2ff7f73eb4e18095f88)
Target: x86_64-unknown-linux-gnu
Thread model: posix
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUVEtvpDgQ_jXmUmpkzPvAgUx3S5Fmk1U6mT1GBgrwjttu-UHS_35l6JntnT0NskAqf_X4vqqCWysmhdiQ_IHk-4h7N2vTfO-1lnjd9csQdXq4Nn_NqGASCypwM8KopdQfQk3Q6wFJ2hK6noJuZ9TGGa4Ibf943r99PYBD697PhLYA8HJov0LwSVs468FLfF-4IbT98vz02j4-nTbYn28vBzi9Pbw8v70-Pm0hCKsIq7d7AGhPp-cvj-3rgbBq4QZIuifp4T7oHfjwtL9zWK3B9GsG2gbrr2X_ZLYRPUquJvgwWk3yClwp7VWPFrgCNEab_ytCaBsTdgwB47GmJG2TLLzKoMIPH2jh4g2C9d3F6MnwM5z5FZR2MPMFgcPCjeCdRPgQbl5bcWq_HYA7Z0TnHQZev6XK_UPyw-38t_AH74AUdJWnoCDsWogUQ7CGNgWr9Z3R3gmFYIXqMdyFXJtDoHCbtQGcjuEbGiu0AqFGbc7cCa1uot0lHleZlxuU0TiJKRBWzc5dbICzI2HHSbjZd3Gvz4QdpVx-fHYXo__G3sWTcMAyntKBc57ndcVqPtCyHtk4lmOZYpdhUtE6H6vbeL1yM6ELHfmsivci23n1XekPtZNC-c_dpHwAzQb5EHRFGaAXbcXnPYNoaNKhTmseYZOUWVKXlOVlNDdjmtXYjZyyBKshGboRC15mfTpWZV-XPBINoyynaZIlRVqmZVx1LEsZ7Yauo33BGckonrmQcSAaazNFwlqPTZImaV5Eknco7brUjK0qEsbCfptmVabzkyUZlcI6-28IJ5xc_wSbR76H08Ubob3dJnQbup_jBUIB39b0YnSPgzcYeSOb32sPYce1dkvY8Vb-0rB_AgAA___bPWMC">