blob: 9397b98b9ecd61dc227d1db1b9e30ff8deed6a7e [file] [log] [blame]
!===----------------------------------------------------------------------===!
! This directory can be used to add Integration tests involving multiple
! stages of the compiler (for eg. from Fortran to LLVM IR). It should not
! contain executable tests. We should only add tests here sparingly and only
! if there is no other way to test. Repeat this message in each test that is
! added to this directory and sub-directories.
!===----------------------------------------------------------------------===!
! Regression test for an intermittent crash in taskloop LLVM IR codegen.
! A dead saveIP/restoreIP pair in OpenMPIRBuilder::createTaskloop introduced
! stale IRBuilder/debug-location state on the restore path before an
! immediately following SetInsertPoint override. Removing the dead restore
! avoids that restore path entirely.
! RUN: %flang_fc1 -emit-llvm -fopenmp -o - %s | FileCheck %s
! Verify that the taskloop runtime call is present in the generated LLVM IR
! and that the i64 bounds casts required by the ABI are emitted.
! CHECK-LABEL: define void @test_taskloop_(
! CHECK: sext i32 {{.*}} to i64
! CHECK: call void @__kmpc_taskloop(
subroutine test_taskloop(n)
integer, intent(in) :: n
integer :: i
!$omp taskloop
do i = 1, n
end do
!$omp end taskloop
end subroutine test_taskloop