diff --git a/clang/test/OpenMP/amdgcn_debug_nowait.c b/clang/test/OpenMP/amdgcn_debug_nowait.c new file mode 100644 index 0000000000000..d691327512ff7 --- /dev/null +++ b/clang/test/OpenMP/amdgcn_debug_nowait.c @@ -0,0 +1,16 @@ +// REQUIRES: amdgpu-registered-target + +// RUN: %clang_cc1 -debug-info-kind=line-tables-only -fopenmp -triple x86_64-unknown-unknown -fopenmp-targets=amdgcn-amd-amdhsa -emit-llvm-bc %s -o %t-host.bc + +int test() { + int c; + +#pragma omp target data map(tofrom: c) +{ + #pragma omp target nowait + { + c = 2; + } +} + return c; +} diff --git a/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp b/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp index 2ac9a0d3fbd66..c16b0dde1a3da 100644 --- a/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp +++ b/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp @@ -7247,7 +7247,7 @@ OpenMPIRBuilder::InsertPointOrErrorTy OpenMPIRBuilder::createTargetData( BodyGenCB(Builder.saveIP(), BodyGenTy::NoPriv); if (!AfterIP) return AfterIP.takeError(); - Builder.restoreIP(*AfterIP); + restoreIPandDebugLoc(Builder, *AfterIP); if (IfCond) return emitIfClause(IfCond, EndThenGen, EndElseGen, AllocaIP);