Issue 61464
Summary [flang] [OpenMP] flang-new crashes with "unhandled clauses for translation to LLVM IR" and "LLVM Translation failed for operation: omp.task"
Labels new issue
Assignees
Reporter k-arrows
    Test case (https://github.com/gcc-mirror/gcc/blob/master/gcc/testsuite/gfortran.dg/gomp/pr43337.f90)
```console
$ cat pr43337.f90
! PR middle-end/43337
! { dg-do compile }
! { dg-options "-fopenmp -O2 -g" }

subroutine pr43337
  integer :: a, b(10)
  call foo (b)
  call bar (b)
contains
  subroutine foo (b)
    integer :: b(10)
!$omp parallel if (.false.)
!$omp task if (.false.) shared(b)
    do a = 1, 10
      b(a) = 1
    end do
!$omp end task
!$omp end parallel
  end subroutine foo
 subroutine bar (b)
    integer :: b(10)
!$omp parallel if (.false.)
!$omp parallel if (.false.)
    do a = 1, 10
      b(a) = 1
    end do
!$omp end parallel
!$omp end parallel
  end subroutine bar
end subroutine pr43337
```

Stack dump at the compilation with flang-new:
(Location of error is pr43337.f90:10:3.)
```console
 #0 0x000055ac3a02df07 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int)
 #1 0x000055ac3a02c347 llvm::sys::RunSignalHandlers()
 #2 0x000055ac3a02d013 SignalHandler(int) Signals.cpp:0:0
 #3 0x00007fc5780fa520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x000055ac3bf4f0ed llvm::CodeExtractor::findAllocas(llvm::CodeExtractorAnalysisCache const&, llvm::SetVector<llvm::Value*, std::vector<llvm::Value*, std::allocator<llvm::Value*>>, llvm::DenseSet<llvm::Value*, llvm::DenseMapInfo<llvm::Value*, void>>>&, llvm::SetVector<llvm::Value*, std::vector<llvm::Value*, std::allocator<llvm::Value*>>, llvm::DenseSet<llvm::Value*, llvm::DenseMapInfo<llvm::Value*, void>>>&, llvm::BasicBlock*&) const 
 #5 0x000055ac3bcb0df5 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)
 #6 0x000055ac3ade9bdd convertOmpParallel(mlir::omp::ParallelOp, llvm::IRBuilderBase&, mlir::LLVM::ModuleTranslation&) OpenMPToLLVMIRTranslation.cpp:0:0
 #7 0x000055ac3adeff1f (anonymous namespace)::OpenMPDialectLLVMIRTranslationInterface::convertOperation(mlir::Operation*, llvm::IRBuilderBase&, mlir::LLVM::ModuleTranslation&) const OpenMPToLLVMIRTranslation.cpp:0:0
 #8 0x000055ac3b07936e mlir::LLVM::ModuleTranslation::convertOperation(mlir::Operation&, llvm::IRBuilderBase&)
 #9 0x000055ac3b07ad53 mlir::LLVM::ModuleTranslation::convertBlock(mlir::Block&, bool, llvm::IRBuilderBase&)
#10 0x000055ac3b080236 mlir::LLVM::ModuleTranslation::convertOneFunction(mlir::LLVM::LLVMFuncOp)
#11 0x000055ac3b08034b mlir::LLVM::ModuleTranslation::convertFunctions()
#12 0x000055ac3b080a52 mlir::translateModuleToLLVMIR(mlir::Operation*, llvm::LLVMContext&, llvm::StringRef)
#13 0x000055ac3a3cf6c8 Fortran::frontend::CodeGenAction::generateLLVMIR()
#14 0x000055ac3a42b81f Fortran::frontend::CodeGenAction::executeAction()
#15 0x000055ac3a04d91f Fortran::frontend::FrontendAction::execute()
#16 0x000055ac3a0475a3 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&)
#17 0x000055ac3a050f11 Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*)
#18 0x000055ac39d78db2 fc1_main(llvm::ArrayRef<char const*>, char const*)
#19 0x000055ac39c0b332 main
#20 0x00007fc5780e1d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#21 0x00007fc5780e1e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#22 0x000055ac39d770a5 _start
flang-new: error: unable to execute command: Segmentation fault
flang-new: error: flang frontend command failed due to signal (use -v to see invocation)
flang-new version 17.0.0 (https://github.com/llvm/llvm-project.git 9e8bac7480640677e04f4b9f98c41cb94f8180e2)
Target: x86_64-unknown-linux-gnu
Thread model: posix
```

Program arguments:
```console
flang-new -fc1 -triple x86_64-unknown-linux-gnu -emit-obj -fopenmp -fcolor-diagnostics -mrelocation-model pic -pic-level 2 -pic-is-pie -target-cpu x86-64 -o pr43337.o -x f95-cpp-input pr43337.f90
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to