<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/75138>75138</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Flang][OpenMP] Compilation error of atomic construct
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ohno-fj
</td>
</tr>
</table>
<pre>
```
Version of flang-new : 18.0.0(770dc47659d41a5ca7b7daf5b3134c900ca8c33d)
```
`atomic` construct results in a compilation error.
The following are the test program, Flang-new, Gfortran and ifort compilation result.
omp_PL_ATOMIC_001c_3.f90:
```fortran
program main
complex*8 ia, ib
integer*4 :: loop=10000
ia = (0,0)
!$omp parallel
!$omp do
do i=1, loop
!$omp atomic
ia = ia + (1,1)
enddo
!$omp end do
!$omp end parallel
end
```
```
$ flang-new -fopenmp omp_PL_ATOMIC_001c_3.f90
error: loc("/work/home/ohno/CT/test/fort/tp/reproducerJ/fomp_add00/omp_PL_ATOMIC_001c_3.f90":7:7): no atomic update operation with region argument as operand found inside atomic.update region
error: loc("/work/home/ohno/CT/test/fort/tp/reproducerJ/fomp_add00/omp_PL_ATOMIC_001c_3.f90":7:7): LLVM Translation failed for operation: omp.atomic.update
error: loc("/work/home/ohno/CT/test/fort/tp/reproducerJ/fomp_add00/omp_PL_ATOMIC_001c_3.f90":6:7): LLVM Translation failed for operation: omp.wsloop
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /lustre/home/ohno/LLVM_20231130/release/bin/flang-new -fc1 -triple aarch64-unknown-linux-gnu -emit-obj -fopenmp -mrelocation-model pic -pic-level 2 -pic-is-pie -target-cpu generic -target-feature +neon -target-feature +v8a -o /tmp/omp_PL_ATOMIC_001c_3-814ed2.o -x f95-cpp-input omp_PL_ATOM\
IC_001c_3.f90
#0 0x0000000003f7d7b0 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/lustre/home/ohno/LLVM_20231130/release/bin/flang-new+0x3f7d7b0)
#1 0x0000000003f7b6b8 llvm::sys::RunSignalHandlers() (/lustre/home/ohno/LLVM_20231130/release/bin/flang-new+0x3f7b6b8)
#2 0x0000000003f7b83c SignalHandler(int) Signals.cpp:0:0
#3 0x00004000249907a0 (linux-vdso.so.1+0x7a0)
#4 0x0000000007207ba4 llvm::CodeExtractor::findAllocas(llvm::CodeExtractorAnalysisCache const&, llvm::SetVector<llvm::Value*, llvm::SmallVector<llvm::Value*, 0u>, llvm::DenseSet<llvm::Value*, llvm::DenseMapInfo<llvm::Value*, void>>, 0u>&, llvm::SetVector<llvm::Value*, llvm::SmallVector<llvm::Value*, 0u>, llvm::DenseSet<llvm::Value*, llvm::DenseMapInfo<llvm::Value*, void>>, 0u>&, llvm::BasicBlock*&) const (/lustre/home/ohno/LLVM_20231130/release/bin/flang-new+0x7207ba4)
#5 0x0000000006e341a0 llvm::OpenMPIRBuilder::createParallel(llvm::OpenMPIRBuilder::LocationDescription const&, llvm::IRBuilderBase::InsertPoint, llvm::function_ref<void (llvm::IRBuilderBase::InsertPoint, llvm::IRBuilderBase::InsertPoint)>, llvm::function_ref<llvm::IRBuilderBase::InsertPoint (llvm::IRBuilderBase::InsertPoint, llvm::IRBuilderBase::InsertPoint, llvm::Value&, llvm::Value&, llvm::Value*&)>, std::function<void (llvm::IRBuilderBase::InsertPoint)>, llvm::Value*, llvm::Value*, llvm::omp::ProcBindKind, bool) (/lustre/home/ohno/LLVM_20231130/release/bin/flang-new+0x6e341a0)
#6 0x00000000055b2e2c (anonymous namespace)::OpenMPDialectLLVMIRTranslationInterface::convertOperation(mlir::Operation*, llvm::IRBuilderBase&, mlir::LLVM::ModuleTranslation&) const OpenMPToLLVMIRTranslation.cpp:0:0
#7 0x0000000005c65114 mlir::LLVM::ModuleTranslation::convertOperation(mlir::Operation&, llvm::IRBuilderBase&) (/lustre/home/ohno/LLVM_20231130/release/bin/flang-new+0x5c65114)
#8 0x0000000005c70844 mlir::LLVM::ModuleTranslation::convertBlock(mlir::Block&, bool, llvm::IRBuilderBase&) (/lustre/home/ohno/LLVM_20231130/release/bin/flang-new+0x5c70844)
#9 0x0000000005c71438 mlir::LLVM::ModuleTranslation::convertOneFunction(mlir::LLVM::LLVMFuncOp) (/lustre/home/ohno/LLVM_20231130/release/bin/flang-new+0x5c71438)
#10 0x0000000005c71a58 mlir::LLVM::ModuleTranslation::convertFunctions() (/lustre/home/ohno/LLVM_20231130/release/bin/flang-new+0x5c71a58)
#11 0x0000000005c72864 mlir::translateModuleToLLVMIR(mlir::Operation*, llvm::LLVMContext&, llvm::StringRef) (/lustre/home/ohno/LLVM_20231130/release/bin/flang-new+0x5c72864)
#12 0x00000000045b6b48 Fortran::frontend::CodeGenAction::generateLLVMIR() (/lustre/home/ohno/LLVM_20231130/release/bin/flang-new+0x45b6b48)
#13 0x00000000045b86c8 Fortran::frontend::CodeGenAction::executeAction() (/lustre/home/ohno/LLVM_20231130/release/bin/flang-new+0x45b86c8)
#14 0x0000000003fae89c Fortran::frontend::FrontendAction::execute() (/lustre/home/ohno/LLVM_20231130/release/bin/flang-new+0x3fae89c)
#15 0x0000000003fa25f4 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/lustre/home/ohno/LLVM_20231130/release/bin/flang-new+0x3fa25f4)
#16 0x0000000003fb3534 Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/lustre/home/ohno/LLVM_20231130/release/bin/flang-new+0x3fb3534)
#17 0x0000000003bea120 fc1_main(llvm::ArrayRef<char const*>, char const*) (/lustre/home/ohno/LLVM_20231130/release/bin/flang-new+0x3bea120)
#18 0x0000000003b75674 main (/lustre/home/ohno/LLVM_20231130/release/bin/flang-new+0x3b75674)
#19 0x0000400024d74384 __libc_start_main (/lib64/libc.so.6+0x24384)
#20 0x0000000003be8f54 _start (/lustre/home/ohno/LLVM_20231130/release/bin/flang-new+0x3be8f54)
flang-new: error: unable to execute command: Segmentation fault (core dumped)
flang-new: error: flang frontend command failed due to signal (use -v to see invocation)
flang-new version 18.0.0 (https://github.com/llvm/llvm-project.git 770dc47659d41a5ca7b7daf5b3134c900ca8c33d)
Target: aarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /lustre/home/ohno/LLVM_20231130/release/bin
flang-new: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
flang-new: note: diagnostic msg: /tmp/omp_PL_ATOMIC_001c_3-39f821
flang-new: note: diagnostic msg: /tmp/omp_PL_ATOMIC_001c_3-39f821.sh
flang-new: note: diagnostic msg:
********************
$
```
```
$ cat /tmp/omp_PL_ATOMIC_001c_3-39f821
#line "./omp_PL_ATOMIC_001c_3.f90" 1
program main
complex*8 ia, ib
integer*4 :: loop=10000
ia = (0,0)
!$omp parallel
!$omp do
do i=1, loop
!$omp atomic
ia = ia + (1,1)
enddo
!$omp end do
!$omp end parallel
end
$
```
```
$ cat /tmp/omp_PL_ATOMIC_001c_3-39f821.sh
# Crash reproducer for clang version 18.0.0 (https://github.com/llvm/llvm-project.git 770dc47659d41a5ca7b7daf5b3134c900ca8c33d)
# Driver args: "-fopenmp" "omp_PL_ATOMIC_001c_3.f90"
# Original command: "/lustre/home/ohno/LLVM_20231130/release/bin/flang-new" "-fc1" "-triple" "aarch64-unknown-linux-gnu" "-emit-obj" "-fopenmp" "-mrelocation-model" "pic" "-pic-level" "2" "-pic-is-pie" "-target-cpu" "generic" "-target-feature" "+neon" "-target-feature" "+v8a" "-o" "/tmp/omp_PL_ATOMIC_001c_3-814ed2.o" "-x" "f95-cpp-input" "omp_PL_ATOMIC_001c_3.f90"
"/lustre/home/ohno/LLVM_20231130/release/bin/flang-new" "-fc1" "-triple" "aarch64-unknown-linux-gnu" "-emit-obj" "-fopenmp" "-mrelocation-model" "pic" "-pic-level" "2" "-pic-is-pie" "-target-cpu" "generic" "-target-feature" "+neon" "-target-feature" "+v8a" "-x" "f95-cpp-input" "omp_PL_ATOMIC_001c_3-39f821"
$
```
```
$ gfortran -fopenmp omp_PL_ATOMIC_001c_3.f90
$
```
```
$ ifort -qopenmp omp_PL_ATOMIC_001c_3.f90
$
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWt9S4zrSfxpxo3LKlu3EueAiBDKH72MWCtjZy5QstxPN2JJXkoF5-y3JcmIHhgEmc85WnU1BxZZb3b_-o5bSbao13wiAU5SeofT8hLZmK9Wp3AoZlF9Pcll8P0XT0P-F5yhcfAGluRRYlrisqNgEAh4xihc4yibhJEQkm83CgiWzaTovkoimjM7yWUHLNI-jOGHzMGQ0Y3FcIDLvWB5I2A1SI2vO0DTETAptVMsMVqDbymjMBaaYybrhFTUWDygl1WTI4X4LuJRVJR-52GCqAJstYAPa4EbJjaI1Iku86pWwN59KqYyiAlNRYG5vRjI64SMhsm7WN1frxf3158vlOgwjto4n5TxE8eJAOc-6G8Xu42HgmvLRuJVZwRMiiwxzaoHxfPicCwMbUIgsEmt6a_1KygbF51EYhuGIlGIUn2NEshCRZbi3OYkQSWTd4IYqWlVQHY4XcsinkJhb_haMk3VA7X3VzfBC7Rc5s7LttGgnu-MIouhF7NmAKPDLo2OYOxavR9BokCSDiA1K2YCoG_xDB7pJLqo6-zJEMkQIIqtHqb4hstrKGhBZ2cWCyGp5j8jKBhciK-tqe9cgslLQKFm0DNT_uSd1s6ZFEYZ25o9EE4Lixcz9k7mVLqQ3MG6bghrAsgHVxeQjN1usYGOvqdq0NQiDqe4oRIFL2dpYFpoX4JlMPJNu1n-VoldXXz7je0WF9kuupLwCq4Xa62wJZd1MRtr85WpMP6rGo94vqJuri8XdBdZtXnODKc7bDVbQ2ERkJN4a02i74MkKkdWGm22bT5isEVlV1UP_FTRKfgVmNeJat6ARWXUJTbCqLbo0yBTVW5xT9s0oysDntDtD2TdctHWzy1_hpFtrNz5X9TFmcWArsdVGwTPzWgusSUjiKIpDZ9YKqLYEORfWsIOVyCIcGMWbCjClim2nSdCKb0I-iqDion0KNqLFAdTcBDL_ul-6Qa2gkswZM6hlARVuOMNBw1lQwQNUmHQ3XAcNBxwYqjZgAta0eAMClCX2YyVQ0yqwCUuAFC-NP2QUB9LqbOrmB-EQZFECBZlIHDzhcp4GrGkCLprWDBMNSpedcV_IOBiROMThU9h_4nJWzPIQOw-7ZK-_6-7iRnFhnM_urRMRyfZEij6upXWN3eambg8RBpE5dsvil92GyFn45KHtEzsicXSAPZ_m2UvYb1txxzeCVn9QUVSgtMN1bHhW-ggeOYSXxQyPgCCSeUt1w3rCGrscQve_YxR7RkkYhiSZz8MZDS34LmIfCi0nWk4iB2RGxzZKhiBmJJzlNBnYaCkLuHiy69K4ZIbiRclFsahssOuRl0ekC0Gr75rrJWV2hdszk3f9fsIdmC_Q8V3uR7_QqgVEFge0Na2qn1CHLYovxtPOQWi4A_MGCY70M20uRSl_SP4geWGFdHK8wL-HWmdUc3ZWSfbNTZraqHR-PeYy8QE4itB0GKFTiJOIDjPQdQPi883l7VnLqwJ8jDIF1MBNf04bhumL9Fc-dZ-DZoo3bp98OWh3E8-sFt2Q0KDMjXRLdUhbtoJZVmsFJYqX1sp4hOU9zH5GO38WJQfi38rq90Ec0vrwm75j1Eed11ObYqzmhyz83GovL6OXR2V3OLG7n2RnXBT_z0VhSXIpqyPvID7yR0tjOlwaaZoTIMzKpEKK77VsNRa0Bt24DXk-jP9zTitgxkK4vB2cDi-FAVVa-m4dSfEAylzvzokkqyuudpz60cVrgdC5cz_PCu2uPsuirWAgfpRXOqT38hnIl3fB2cgYbJpGUfJGqe_S9dWE0OE_otu9IiO3Z2NNZ2GWfERTn8wHWvqR6T6E_1RNnSIjTecHmkZJnH3EpwJWfZYY6rufb68syXVzfK0s6EGxI47CQ61o-hGtepV-w3HVgxqhjg5Qk2w6jDrjUYIH7ZftGzOGJV5KYeDphXOiUVxsbqE8vpJWh5GSozN5kubTPMnwypfLuu1GWZii2B96P4FYsL133M85amCn_5Fhe1Qj2PEB7GzK3gsbnoC1Bhb9Kjk-agtqhDoZ_wCikM3Za6hX_u4F2L_jF5vDMwKcHgAmaZm8bua64RWoS6ENFf2memjpt2t89JzrdRgpOR0rmcdp_KqSXp29rg_-MP26as9sY1PCkZVz2EfKjQ4JcQ40IiEuWbR2de_hyXGhFP1-607ObEtV_3Ng4Q-M47EjA-9wjYBnY-CzdDpLXLH-uIId35Hg-ai4UMySOEvwel3xnK21ocqshyh4bhOq_WYTLSdTx5bYOUOmJDxwQ1amCe7YHdmQlvNO9P5pvMC7-mwraF4BNhL7UMZM1jV1gYrvYFODMH3ptK0cQCYVuNokFD9h7kZxH_o9574IW7ROrnbVHcu41YCDBzcGgPlgLR1KwQ---9U1u-zk99VkJxtu8LsbZPeuFmk1-2F9tG95KaAFdrVQS95IzZ98qdEu-aqC4twdDD5cun1udiGNTbK44HQjpDac4Vpv9g0w8gt_g3aOL40v7u8Xyz_w_R8XeHV9dXX9r8t_fMKry6uLO3x_7YbP_vkJ317cXN_e7zDcuKo-A62hwFq2yhVLtU0hNjCo1pJxaqDAqhW4K0fsCBRgV2WGAlOzY_k2E_ykWhzPy4xER2c40dsP-OlY3iLJ-5pyjJp3mAmRuOICMCJk8npPBkd_h15r__nze66_y8-76EUkxkvXp9o35VwLjbn8_tfkYgvqXPEHUJiqje-Ckb4nZcMOEfJap3DH5VrxDbdb0GDn6xqWv74Pkw4Ui_rLrr_m7368i3jqvte2YzTS7nnfzT9oOOtJdj04P0CGD7p-3A7arivnR3xv7uC578T5Ud-n-xnNQ0Z7ErkbfUv_rp_15C9Gvby3evl_7vx97nyvY_pNZL8C35m-Nv27QW98deTdArr3jYJ__xL3k-I0LubxnJ7AaTQLSZymyYycbE8zlkYsD8tyGpM8mxYkyeJ5aVNezmZhEZ3wUxeLJCJhEkcRmWRQxpSWMc3yaZiVOUpCqCmvJjaJTqTanLjXC05naRRnJxXNodLuRTJCXOhaU6fnJ-rUJd283WiUhBXXRu85GG4q9_aZew0LpecoPetK0Cg9x8vD97uwLPsXYXavhJ20qjr9-JsRDv1_AgAA___QyX1D">