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

    <tr>
        <th>Summary</th>
        <td>
            [flang][OpenMP] Crash with DO CONCURRENT lowering
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          eugeneepshteyn
      </td>
    </tr>
</table>

<pre>
    (This started happening recently, I will try to at least identify the commit range soon.)
Consider the following test:
```
subroutine test(a)
  character(*) :: a(:)
  logical :: success 
  success = .true.
  do concurrent (i=1:Size(a)) local_init(success)
    a(i) = 'loop'
    if (.not. success) then
      error stop "fail"
    endif
  enddo
end
```
Compiling with `flang -c test.f90` results in the following functions in the backtrace:
```
...
 #5 0x00005cea3a2be38c mlir::Operation::getBlock() llvm-project/flang/../mlir/include/mlir/IR/Operation.h:213:30
 #6 0x00005cea3a2fe631 mlir::OpBuilder::setInsertionPoint(mlir::Operation*) llvm-project/flang/../mlir/include/mlir/IR/Builders.h:405:27
 #7 0x00005cea3b7db736 void Fortran::lower::omp::ReductionProcessor::processReductionArguments<fir::DeclareReductionOp, llvm::SmallVector<fir::ReduceOperationEnum, 12u>>(mlir::Location, Fortran::lower::AbstractConverter&, llvm::SmallVector<fir::ReduceOperationEnum, 12u> const&, llvm::SmallVectorImpl<mlir::Value>&, llvm::SmallVectorImpl<bool>&, llvm::SmallVectorImpl<mlir::Attribute>&, llvm::SmallVectorImpl<Fortran::semantics::Symbol const*> const&) llvm-project/flang/lib/Lower/Support/ReductionProcessor.cpp:650:42
 #8 0x00005cea3a286aad (anonymous namespace)::FirConverter::handleLocalitySpecs((anonymous namespace)::IncrementLoopInfo const&) llvm-project/flang/lib/Lower/Bridge.cpp:2130:24
 #9 0x00005cea3a282f13 (anonymous namespace)::FirConverter::genFIRIncrementLoopBegin(llvm::SmallVector<(anonymous namespace)::IncrementLoopInfo, 8u>&, llvm::SmallVectorImpl<Fortran::parser::CompilerDirective const*>&) llvm-project/flang/lib/Lower/Bridge.cpp:2541:9
#10 0x00005cea3a2812fb (anonymous namespace)::FirConverter::genFIR(Fortran::parser::DoConstruct const&) llvm-project/flang/lib/Lower/Bridge.cpp:2257:17
#11 0x00005cea3a280cb0 auto (anonymous namespace)::FirConverter::genFIR(Fortran::lower::pft::Evaluation&, bool)::'lambda'(auto const&)::operator()<Fortran::parser::DoConstruct>(auto const&) const llvm-project/flang/lib/Lower/Bridge.cpp:5635:54
...
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysVk1v2zgQ_TX0haggkZYsHXxQ7Bgw0G2KpNvrgqJGMrcUKfAjWe-vX5CSP5Juuk26gAFLnOHovTfD4TBrRa8A1ii_Qfl2wbw7aLMG34MCGO3BwVEtGt0e14iUXw7CYuuYcdDiAxtHUEL12AAH5eQRkQ3e4ychJXbmiJ3GzGEJzDosWlBOdEfsDoC5HgbhsGGqB2y1VgkiFUrrjVZWtGCiU6el1E8hvAPrEK1RWqMinX9pbX1jtHdCweRASjZFwZgfmGHcgUGkRKRGpMJhP60xCyu0PjlK3QvO5MlqPedgLY628wvd4sQZD0lcbjXmWnFvDCiHESkFotsM0fpB_A0nEKTCUnMm_xBKBGRzrNNnccQhJlxbjMhKaj0ispqtoguBE6Vdgi9bgypq9sAYjNEGW6dHjAjpmJCIkNkKqhVdfAbVthqlNaj2hXwbPYxCBnmfhDtgVKSdZKrHH3iUM-mq4IgNWC-dxUK9SErnFXdCq7OpYfybM4zD96lKkqgdIjTH6V9pmqY5B0YZaYCWHA9SmCkDdyMYFqJOrz24G6n5t5jGCkv5OHwYjf4TuENkF_EisksSRHYxBtkJxaVv4bKwv0dkdw6bHBCtSUYRrWk6QyqeQ-qgoNkzSDdeyBbmVwturyyYEO2zFipk99_wT1X3bsTzN20EvEzzAHs1A15dA25WbbOiBX7UosU7bZxhs3hSP51A62GcHu6h9TFrn40OVaVnh3F6PZtr0_sBlLOIbroTuS1wyQycne7GcN4Dxcn-MDApvwJ3IeplW_SHszK3yg9hX0Y8orfhdy3gR81n_TavsqkbG-rMbbR6BBNPefHrSMKpDl3k9VD7YZSIbi5gvzLpITL4z02N1vLnPC_ha-eMaLz7yU88k8vCwJQT3M7ex6HR8kSxfk731TKVokFk9zEqT3YPfhy1CfbvqyjhY6iwIk9DuZK5UMvnJ6ssGGtDY2NKq-OgvcWKDWDH0DNINSHdCXPJa1w5MNVKCIUhhTs-jMBt7Ac_DLNX3ECo4I9aj3vV6bfzvTGi7WFmRjIaqJHlTK16QY10GX07tR7Ubn__DOsN9EIhUr5WzG_lHaqm9O-ooJEZe8I53RVgtsIAd-IRrivp_Zrmy3BvhisREZqlLyTNSNe8V1JEylfJbHUYM5zx3P1qUZB8hWidrWYG2QsGKW9SzLzT_xeNqyY4dm56uH1k0s89M2Y4tppT5DBasKFpWRguSBnBXJGer4fYEfU0LVU_KoQr7abO_TLg9PwOLfOChksuX57HhfMAsWjXtK1oxRawzlY5KYs8z8vFYZ0xWnLeLTkvKrqiOSnagpVpw1rKsrTLF2JNUpKnq6zMqjTPy6RiKVnlLe047TJGAC1TGJiQSQCcaNMvhLUe1tmyygu6kKwBaeNoTMhMgoQp2awjw8b3Fi1TKayzlxBOOBnn6WlHvkX5zd0I6rfPKN_ijWH2MM1c2zu8ufu0-f3-_vbTFxyTK1S_8EauD86NsXeTHSK7XriDbxKuhyBiOMHT35XEEbdFZDdDf1yTfwIAAP__oDyzow">