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

    <tr>
        <th>Summary</th>
        <td>
            [Flang] unrecognized  !DIR$ directives choke flang-new
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          ye-luo
      </td>
    </tr>
</table>

<pre>
    ```
program aa
implicit none

!dir$ attributes align: 4096 :: a
integer i,j
integer, allocatable :: a(:)
!DIR$ ATTRIBUTES FASTMEM :: a
allocate(a(10))
!DIR$ UNROLL_AND_JAM (2)
do i=1,10
!DIR$ vector nontemporal (a)
do j=1,10
  a(i)=j
enddo
enddo
end program
```
flang-new should print warning at most instead of blocking compilation. Simply treat unrecognized directive as comment
But right now I got.
```
flang-new main.f90 
error: Could not parse main.f90
./main.f90:4:30: error: expected end of statement
  !dir$ attributes align: 4096 :: a
 ^
./main.f90:4:1: in the context: specification construct
  !dir$ attributes align: 4096 :: a
  ^
./main.f90:4:1: in the context: declaration construct
  !dir$ attributes align: 4096 :: a
 ^
./main.f90:2:1: in the context: specification part
  implicit none
  ^
./main.f90:1:1: in the context: main program
  program aa
  ^
./main.f90:7:26: error: expected end of statement
  !DIR$ ATTRIBUTES FASTMEM :: a
                           ^
./main.f90:7:1: in the context: specification construct
  !DIR$ ATTRIBUTES FASTMEM :: a
 ^
./main.f90:7:1: in the context: declaration construct
  !DIR$ ATTRIBUTES FASTMEM :: a
  ^
./main.f90:2:1: in the context: specification part
  implicit none
  ^
./main.f90:1:1: in the context: main program
  program aa
  ^
./main.f90:9:22: error: expected end of statement
  !DIR$ UNROLL_AND_JAM (2)
 ^
./main.f90:9:1: in the context: execution part construct
  !DIR$ UNROLL_AND_JAM (2)
  ^
./main.f90:8:1: in the context: execution part
  allocate(a(10))
  ^
./main.f90:1:1: in the context: main program
  program aa
  ^
./main.f90:11:26: error: expected end of statement
  !DIR$ vector nontemporal (a)
 ^
./main.f90:11:1: in the context: execution part construct
  !DIR$ vector nontemporal (a)
  ^
./main.f90:10:1: in the context: DO construct
  do i=1,10
  ^
./main.f90:10:1: in the context: execution part construct
  do i=1,10
  ^
./main.f90:8:1: in the context: execution part
  allocate(a(10))
  ^
./main.f90:1:1: in the context: main program
  program aa
  ^
```



</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcV1tv4joQ_jXmZVSUOOGShzykpUg92u5Kbfd5ZZwhuOvYkT3p5fz6IwObbmkDlB7p6CxCwTgz831ziWcivFeVQczZ6JyNZgPR0sq6_BnPdGsHC1s-52wcbb_RjEVF42zlRA1CbP6rutFKKgJjDW62tlcel8oxnoIgcmrREnoQWlWGJQWkUTYGlhRh_cuSIazQgWL84v7VFuMXILS2UpBYaHzR49Ow5FmHOLu6CYjF3d3N1fn3u8tbmBe3d9eX1ztYW2vI-DRYiaNg5K2d719vvn358qP4OvvxV3ENjE95J1VaUCyZxYxfxNGu4gNKsi7EhLBurBMaNlAvyvc7yrD2RwWRZLb1H01Z2veWsE3DFvd1ipZamOrM4CP4lW11EFaG4FE4o0wFgqC2nkAZTyhKsEtYaCt_hnvS1o3SgpQ1Q7gNuX0GcigIWuNQ2sqov7GEUjmUpB4QhA86NRraYJ-3BE5Vq1APj3AFlaXhAZK1UGa4zCLYeuecdSFVF2vuxhI0wnns5DZiQ8bn3U5SpCwpkrCATh-fGpSEJYR42SV4EoQvTAE-XKHARpe96HEQVAZohSBD3p8o7PgGpVoquY5puOHJtfITHE4hUaLUwv1rFPoY8GPD0AjXwb9zgPT7GPcjBKnXjwXA7mHVb3gS6I8_XD_HnjfQ_9nH6OSaOprXCeiHiun4mPyBdZQF-vzUOtrXb_ZC9viCTyjbLlL7srUXuRd6eix01-L29d3_IF1x_Knn_lCb34_76aQdhO_Hj_rxZ9_eYr4z7Jxm_JBzHwL6_5XfzhD0-3VQ5kmZJZkYYB5PoumY8yjLBqt8kYlJmY5LITlmEc9QJGk5yco0mcok5vFA5TziacQ5jydxOsqGAieRzEbLNB2XaToWLI2wFkoPtX6oh9ZVA-V9i_mUj0fpQIsFav_rDcDlQehs0VaepZFWnvyLGinS63eFeZje2Gj2eiz8rTS7CdGDXNmfCN28N2idzldEjV_P7nPG55WiVbsYSlszPg9g25-zxtl7lMT4fE3YMz5fc_4nAAD__4bjpgo">