<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/89562>89562</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Flang][OpenMP] Compilation error when task depend construct is specified in parallel private construct
</td>
</tr>
<tr>
<th>Labels</th>
<td>
openmp,
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 : 19.0.0(4f19f15a601a5761b12c9c66d99d97dbc89ef90d)/AArch64
```
When `task depend` construct is specified in `parallel private` construct, a compilation terminates abnormally.
The following are the test program, Flang-new, Gfortran and ifort compilation/execution result.
taskdepend_033_22.f90:
```fortran
program main
integer :: x
!$omp parallel private(x)
!$omp task shared(x) depend(in: x)
x = 1
!$omp end task
!$omp end parallel
print *, "OK"
end program main
```
```
$ flang-new -fopenmp taskdepend_033_22.f90
flang-new: /lustre/home/ohno/LLVM_20240404/llvm-project/llvm/lib/Transforms/Utils/CodeExtractor.cpp:1380: llvm::CallInst* llvm::CodeExtractor::emitCallAndSwitchStatement(llvm::Function*, llvm::BasicBlock*, llvm::CodeExtractor::ValueSet&, llvm::CodeExtractor::ValueSet&): Assertion `AggOutputArgBegin != newFunction->arg_end() && "Number of aggregate output arguments should match " "the number of defined values"' failed.
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_20240404/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 +outline-atomics -target-feature +v8a -target-feature +fp-armv8 -target-feature +neon -mframe-pointer=non-leaf -o /tmp/taskdepend_033_22-55fbb7.o -x f95-cpp-input taskdepend_033_22.f90
#0 0x0000000004235180 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/lustre/home/ohno/LLVM_20240404/release/bin/flang-new+0x4235180)
#1 0x0000000004233088 llvm::sys::RunSignalHandlers() (/lustre/home/ohno/LLVM_20240404/release/bin/flang-new+0x4233088)
#2 0x000000000423320c SignalHandler(int) Signals.cpp:0:0
#3 0x0000400016f107a0 (linux-vdso.so.1+0x7a0)
#4 0x00004000173b6274 raise (/lib64/libc.so.6+0x36274)
#5 0x00004000173a0a2c abort (/lib64/libc.so.6+0x20a2c)
#6 0x00004000173afba0 __assert_fail_base (/lib64/libc.so.6+0x2fba0)
#7 0x00004000173afc18 __assert_perror_fail (/lib64/libc.so.6+0x2fc18)
#8 0x0000000007629db0 llvm::CodeExtractor::emitCallAndSwitchStatement(llvm::Function*, llvm::BasicBlock*, 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>&) (/lustre/home/ohno/LLVM_20240404/release/bin/flang-new+0x7629db0)
#9 0x000000000762e2a8 llvm::CodeExtractor::extractCodeRegion(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>&) (.part.919) CodeExtractor.cpp:0:0
#10 0x000000000762ef20 llvm::CodeExtractor::extractCodeRegion(llvm::CodeExtractorAnalysisCache const&) (/lustre/home/ohno/LLVM_20240404/release/bin/flang-new+0x762ef20)
#11 0x000000000724d530 llvm::OpenMPIRBuilder::finalize(llvm::Function*) (/lustre/home/ohno/LLVM_20240404/release/bin/flang-new+0x724d530)
#12 0x0000000005fc90b0 mlir::LLVM::ModuleTranslation::~ModuleTranslation() (/lustre/home/ohno/LLVM_20240404/release/bin/flang-new+0x5fc90b0)
#13 0x0000000005fdac30 mlir::translateModuleToLLVMIR(mlir::Operation*, llvm::LLVMContext&, llvm::StringRef) (/lustre/home/ohno/LLVM_20240404/release/bin/flang-new+0x5fdac30)
#14 0x00000000048934d0 Fortran::frontend::CodeGenAction::generateLLVMIR() (/lustre/home/ohno/LLVM_20240404/release/bin/flang-new+0x48934d0)
#15 0x0000000004895690 Fortran::frontend::CodeGenAction::executeAction() (/lustre/home/ohno/LLVM_20240404/release/bin/flang-new+0x4895690)
#16 0x000000000426a31c Fortran::frontend::FrontendAction::execute() (/lustre/home/ohno/LLVM_20240404/release/bin/flang-new+0x426a31c)
#17 0x000000000425ea94 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/lustre/home/ohno/LLVM_20240404/release/bin/flang-new+0x425ea94)
#18 0x000000000426ef98 Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/lustre/home/ohno/LLVM_20240404/release/bin/flang-new+0x426ef98)
#19 0x0000000003e7cdb8 fc1_main(llvm::ArrayRef<char const*>, char const*) (/lustre/home/ohno/LLVM_20240404/release/bin/flang-new+0x3e7cdb8)
#20 0x0000000003df2100 main (/lustre/home/ohno/LLVM_20240404/release/bin/flang-new+0x3df2100)
#21 0x00004000173a4384 __libc_start_main (/lib64/libc.so.6+0x24384)
#22 0x0000000003e7bc3c _start (/lustre/home/ohno/LLVM_20240404/release/bin/flang-new+0x3e7bc3c)
flang-new: error: unable to execute command: Aborted (core dumped)
flang-new: error: flang frontend command failed due to signal (use -v to see invocation)
flang-new version 19.0.0git (https://github.com/llvm/llvm-project.git 4f19f15a601a5761b12c9c66d99d97dbc89ef90d)
Target: aarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /lustre/home/ohno/LLVM_20240404/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/taskdepend_033_22-e8900f
flang-new: note: diagnostic msg: /tmp/taskdepend_033_22-e8900f.sh
flang-new: note: diagnostic msg:
********************
$
```
```
$ cat /tmp/taskdepend_033_22-e8900f
#line "./taskdepend_033_22.f90" 1
program main
integer :: x
!$omp parallel private(x)
!$omp task shared(x) depend(in: x)
x = 1
!$omp end task
!$omp end parallel
print *, "OK"
end program main
$
```
```
$ cat /tmp/taskdepend_033_22-e8900f.sh
# Crash reproducer for clang version 19.0.0git (https://github.com/llvm/llvm-project.git 4f19f15a601a5761b12c9c66d99d97dbc89ef90d)
# Driver args: "-fopenmp" "-L/lustre/home/ohno/LLVM_20240404/release/lib" "taskdepend_033_22.f90"
# Original command: "/lustre/home/ohno/LLVM_20240404/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" "+outline-atomics" "-target-feature" "+v8a" "-target-feature" "+fp-armv8" "-target-feature" "+neon" "-mframe-pointer=non-leaf" "-o" "/tmp/taskdepend_033_22-55fbb7.o" "-x" "f95-cpp-input" "taskdepend_033_22.f90"
"/lustre/home/ohno/LLVM_20240404/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" "+outline-atomics" "-target-feature" "+v8a" "-target-feature" "+fp-armv8" "-target-feature" "+neon" "-mframe-pointer=non-leaf" "-x" "f95-cpp-input" "taskdepend_033_22-e8900f"
$
```
```
$ gfortran -fopenmp taskdepend_033_22.f90; ./a.out
OK
$
```
```
$ ifort -qopenmp -diag-disable=10448 taskdepend_033_22.f90; ./a.out
OK
$
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWltzo7iz_zTkpQsXCIzhIQ_OxbOpf2YzlWRnH11CNFg7IHEk4WTOw_nspyTwBcdJJrPe2qqpvyuxQbS6f93qbl0aqjWvBOK5N73wpldntDMrqc7lSki__Ossl8X3cy8Jhr_gygvmX1FpLgXIEsqaisoX-AReNIcwmwSTwCNpXIZZGU5pEoR0OkvCPCQsY0lSZFmRzYqcpRmWWVB4JPPIYj5XbJXEPfMDWf33nysU4CWBofobFNiiKLwkACaFNqpjBrgG3SLjJccCuKNtqaJ1jTW0iq-pwVEHj1wCBSabltfUWGUMqoYLalADzYVUDa3r75N9EI8rhFLWtXziogKqEMwKwaA20CpZKdpYrouNRezNp1Iqo6gAKgrg9mZfpkcW-Iysc_IV6q42I4FW217ZZRBFS0ImZRZ40fzAUIOMvnVAAg3lQwtwYbBCZUfIDtLz0J2EHoll08ILQ5H02Q7MAZmzvV5RhcVAsRkJknLRc970AngGL7qC8JAJisIxOta-wbFh0SouDHhkbi3pEXL3H4-Q_qEjf6HpUdc5bCTxntP6pWxRDMq9NLXrsaW2KnpkUXfaKPTIYiUb-2MjxSOL29uvn5ckIHEQB7Elq9eN3yr5F1pvc7f2h-ceWTwqKnQpVaM9svjD8Nr-XsoCr5-NosxINWFt60XzMErtgIPr7Ybvktb1jdDGI6PW_b59EzbcWOK5KB6euGGrB0MNNiiMR9Jdz0UnWO-Lzsy7BxdUc3ZRS_btxaMj0r7SusMHNB5JPkabWfXmWqNyUeAlwbyq7jrTdmauqgusbDCT0DqTwKcNWt-Lrqmqlr33WVd0zBLrJr93TY7KJidaVQorahCkYwhUVZ21gAa9kl1dQEMNW9lO9t9Gs9h2LrDkAgtYW7Taeh6ZQUl5jcUQpF9ur-cP16C7vOEGKORdBQpbG-RGwsqYVluFycIji4qbVZdPmGz2fGHsIVxrJ2jRJwvB6q7oUwxTVK8gp-ybtSMO4h8MZd-g6Jp2mxKCCbjPlyE0tvp-zHUV1ki1Jci5TVL78cJC8I3ibY1AqUvbfie-Cfkk_JqL7tmvRAe-dT5f5n_tAsxvFNaSubznN7Kw6YYz8FvO_BrXWAPpb7j2W47gG6oqND5rO6hQoLLEQ1uJ1HQKwSMXsjM1F-hTIxvO9DGSdUqPNZetT1WzTo89EygF-E2paIN-K20CVV50JaTwa6Ql-NJa0zSt_T7MHP50Wub5bCLBf4Yym_qsbX0urP-9kWXAI1EAwXOw-cQkmoZpsBdK-rvuL77YxOiG_9H6wyieFX1aSjvKdjZyschtxNsASU_gAR65CJ4HaLts75EoPMAeBWl6DPt9Jx54JWj9GxVFjUpv4_eU8Kz0ETxyCI8EDEZA3CzmLNU36yEFB-5_yygaGMVBEIRJGQYzGljwvfOvCy0nWk5CB2RGxzaK9_vOojwhsxgU5Ro36vM8iftfZtkkjk1k6UaMpmNGNKCEAc1t5nmLEbF0I0bJAaMypwEsl9Tl46XNdsucvgOP2E4jrrNDrixMd1xbVEoqx_wdviwcD2K6P4izhGRFHvxrk-ADmq_YS7rctbq57SWtXUy-Qx10XnQ97naFQruJ8n0JjvQzbW9EKV8lX0teWCG9nEFg8suqddKkMrjbyB-zA39EQtN3_LG_tU_usXIel77SYS5o_V1zfUmZXQJIt-b7dQfrF1XL-eCkpcpMsjCz98eW-XtzjJ1Kg0O_Ksl7ee7v-9Wpo8WC3ttFRuFohTAjcTGN9rW6a1F8_nJzf9HxusBBr5ILWvP_xdez9Wlh96hGsEcrh2nJsiAPoKn5gNAK6K8-y6Kr0W3thu29a_6_l-0nX_EMsEa4ozHugrJoH7cZ8OAAT1qJN_ceSXc0dy0qenRetMSXUhh8PpKUjOKiusfy5Eo6HUZKxqNlXZpFcRHAYjgP6T1IWZii2EXCJxRzthsft7mgBrf6n3o12qMawZ4ewJ4m2Udh9wdHODT9E6gtqBHqZLyGTmgUsrdQL4a7I7D_iUW_wzMCPBsDniLN4rfN3LS8RnUjtKGC4XFL_7jGJ0-rgw4jJdODUcEyS99SclBnp-t62JW_rdoL25w8-Q7YR8qNVlgRzliRp1CycOkO_fYnhblS9LtNOtElW1G1mdjmw4w8bjst8AHXPnAymsKjoiRhELiTypMK7vmOBIcHe684SmNYLu3WaqkNVWa5j-L4xsv2GTElB8OQs4hBz-7EhrSct6JHJ69u12gvOkHzGsFIGFwZmGwa6hwV5nYTjIVFxaRCdzyGxTscXSts_H3Dbjjsg6JzwrQ7FbCMO43gr10bIvC9ADqUAuuhUtIXRiruzPWxk8GJ7fWRekpfq3BnWla5V0_pNkUNhbQAdyJnyVup-VAhcKFe11hcuQXBTx8gvrS8kMYmVyg4rYTUhjNodLWrbJC_8bd39D8c0M4fH-eXv8Hjb9ewuLu9vfvz5vdPsLi5vX6AxzvXfPHHJ7i__nJ3_7jF8EVhqyRDrbEALTvlztm0TR3WN6jWknFqXU11AjRTvDVbAoXgzjqxAGq2LH_MBG-dLGKaBUF5Wm4TvfqJETrVOJG3qn5HSjeMmh81kEeimgsEj5DJMWJ39krIpkZ1pJ7UH6b_K-Uz-zlBCc1-3iij9QSvFNP-kaHZeptHIrh0dQ0XaEXHUEEpFTCXjP-1xGlxXSm-RgVUVUPhhGzKGEOlyL_9mVzoan99pekVX9xBuFO8snvf_bnN1aBOMNP2KpQs3Fz29Zzh7vX5YqDe1Ha2jMameVHnGR60nG1ItjWfoYHsP-jrP1to2yrQ0DLUgg6eD7WbofVlXeg98nVK3yPZ1IveoxNoVwKDLV6rIG0I5Lbfu9WkTZfn4WJUWfohv_qvA_16DvQhb9hMj7tE88EUX21eZ3nnvYnoAuyUSyeyM4Pv3f3nJ2X2b834_7OpI9sViV9wbTcBXnQVBnGcng7GWXEeFVmU0TM8D2dhNIuzZBadrc7JbJrTMi5SNs3SWViyIk8SNstDzIOyTMIzft4HDyFBGMVRNIlnMSMRnRI2DTMSRV4cYEN5PbGT1ESq6sxV_M_TbJqQs5rmWGv3EhYh24DwyKUdXBt69m56dabO3RyXd5X24qDm2ugdQ8NN7V7kci8hedMrb3rRn6t60yu43Hvbye194GmFAvbeqXrjharDVc6O9KxT9fnPv-3g1P__AAAA__8zXGno">