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

    <tr>
        <th>Summary</th>
        <td>
            [Flang] No compilation error when VALUE attribute is specified as anything other than a dummy argument
        </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 : 21.0.0(8c7c791284877e36f73c41ffa56b52c13e613993)/AArch64
```

The attached program is incorrect.  
When `VALUE attribute` is specified as anything other than a dummy argument, a warning level message is outputted, but no compilation error occurs.  

According to `Fortran Standard 2023: 8.5.19 VALUE attribute`, `VALUE attribute` can only be specified for a dummy argument.  
Shouldn't the above be a compilation error?  
Gfortran and ifx results in compilation errors.   

The following are the test program, Flang, Gfortran and ifx compilation/execution result.

snes1105e_006_2.f90:
```fortran
module mod1
  value :: val0
end module mod1

program main
  integer val0
end program main

subroutine sub1(mod1)
  use mod1
  value :: mod1
end subroutine sub1
```

```
$ flang snes1105e_006_2.f90; ./a.out
./snes1105e_006_2.f90:2:12: warning: Only a dummy argument should have an INTENT, VALUE, or OPTIONAL attribute
    value :: val0
 ^^^^
$
```

```
$ gfortran snes1105e_006_2.f90
snes1105e_006_2.f90:2:15:

    2 |   value :: val0
 |               1
Error: 'val0' at (1) cannot have the VALUE attribute because it is not a dummy argument
snes1105e_006_2.f90:10:7:

   10 | use mod1
      |       1
Fatal Error: Cannot open module file 'mod1.mod' for reading at (1): No such file or directory
compilation terminated.
$
```

```
$ ifx snes1105e_006_2.f90
snes1105e_006_2.f90(2): error #6445: A dummy argument is required in this context.   [VAL0]
  value :: val0
-----------^
snes1105e_006_2.f90(2): error #6274: This statement must not appear in the specification part of a module.
  value :: val0
--^
snes1105e_006_2.f90(10): error #6412: A dummy argument name is invalid in this context.   [MOD1]
  use mod1
------^
compilation aborted for snes1105e_006_2.f90 (code 1)
$
```

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJycVt1u2zgTfRr6ZhCBpP7sC1-oTfyhQL9kgWa7lwVFjSwWEunlj9u8_WIkp3HjuFusYDiMzJk5Z-bMkCoEs7eIW1a-Y-XtSqU4OL91g3U3_ddV67qnLav46cObz-iDcRZcD_2o7B5Y3oAUGc84k-u1rnW9EXJdrOsa86qvc12Ivldl1ZZSixwrkW82OZMbJndN4_VQFYw35xEYbx4HBBWj0gN2cPBu79UEJoCx2nmPOmYAjDd_DWiBVfxz8_HPOzLwpk0RWcVpczigNr3BDlQAZZ_iYOweXBzQQxyUBQVdmqYnUH6fJrSRyfeg4JvyljaOeMQRJgxB7ZH8uRQPKUbsaF-bIlgH2k0HM6pIGUHvnQendfJhwcd402jtfEf-oiOoO-ejVxY-RWU75TuQXOaUwnVWZmIDl1Qo2tsctbLg7PgELZ6R7Z2_YLbA-TS4NHaWyTpCpAy37ohkrC55sHw32_yvPwFWtgPTfwePIY2RSnFpRLThpYK9G0f3jbgrj3PEiCE-15N47UhBtLgIc-abyR1-R53mOEv4bAkSLAYheIlfOK--yKzfcJY353I6uWW8mVyXRoTJdYLxBuCoxoQkXkr-UY2kPLQd_LyP8eZZfpMydrY0NuIe_bnRqz0ELbXepWgsQkitYHI9e5Sb2UUK15Cc3pLT1y4uuuSnf2Vx6sc3k_IOMiZ3KnMpMt7Q-u3cSZY3gr6e24CWD6Sx15KCMKsJBnVEUBY-3D_e3T9SLWel0sJ5ePjj8cPDffPxTLhE-e30AyvvXj4zp38nvX9WzluErklkplmetLIAksDq91eBzT-dP1SOu6VRGmCynnfKGlQEJtdUaGpP6-KSIBL_qw6GFrUiIZhI04W2Xgyka_gFfdXn-AWfQf4kLHpekNO7nYpqhB-43y8I3QHts-57MyLxISfZ5DriRBPFo5qn2As_cnDvICQ9LFbOQ2doODv_xHhzPh0i-slYFbHLfreuNAR-v6RyLU-QlinMZF4VBVUYmtfCNQE8_p2Mx46mWBxMAO1sxO9xnl_lu8_NR87K26tz4ublWZT6u5BkXdCLRwoZooo4A5pSiEv9DwdUfgH1Y6TrJYUH5SMduupUqewX6H4FSvDLRC0df5EoqyZcTt2jGs21ZP3_4VY8J-tMfufpOZeCap2Pp2PqDYSkLu06hNOsvNTKqtvm3SbfqBVuRV2IslrXVbkatnot607pntcoVSnrrpd9WbaiFOtK8GK9MlvJZclzwbngFS-zIi9EUai8rlohi37DCo6TMmM2jscpc36_MiEk3Iqcl7lYjarFMcwXJSnnYcvypveUDdsxKen65Ldke9OmfWAFH02I4cVbNHGcL1rLuVfeUgNdXiG-0bXm9bT4LxeaVfLjdojxEEghcsfkbm_ikNpMu4nJHQE7_bk5ePcVdWRyN3MOTO5OtI9b-U8AAAD__1lnEdE">