diff options
| -rw-r--r-- | clang/lib/Sema/SemaOpenMP.cpp | 3 | ||||
| -rw-r--r-- | clang/test/CoverageMapping/openmp.c | 12 |
2 files changed, 14 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp index f5a1d0b222e..e1a4c420d40 100644 --- a/clang/lib/Sema/SemaOpenMP.cpp +++ b/clang/lib/Sema/SemaOpenMP.cpp @@ -4909,7 +4909,8 @@ checkOpenMPLoop(OpenMPDirectiveKind DKind, Expr *CollapseLoopCountExpr, ExprResult IsUBGreater = SemaRef.BuildBinOp(CurScope, InitLoc, BO_GT, UB.get(), LastIteration.get()); ExprResult CondOp = SemaRef.ActOnConditionalOp( - InitLoc, InitLoc, IsUBGreater.get(), LastIteration.get(), UB.get()); + LastIteration.get()->getExprLoc(), InitLoc, IsUBGreater.get(), + LastIteration.get(), UB.get()); EUB = SemaRef.BuildBinOp(CurScope, InitLoc, BO_Assign, UB.get(), CondOp.get()); EUB = SemaRef.ActOnFinishFullExpr(EUB.get()); diff --git a/clang/test/CoverageMapping/openmp.c b/clang/test/CoverageMapping/openmp.c new file mode 100644 index 00000000000..1ac12624e01 --- /dev/null +++ b/clang/test/CoverageMapping/openmp.c @@ -0,0 +1,12 @@ +// RUN: %clang_cc1 -fopenmp -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name openmp.c %s | FileCheck %s + +// CHECK: openmp.c:{{.+}}omp_outlined{{.+}}: +// CHECK: File 0, 10:3 -> 10:31 +// CHECK: File 0, 10:19 -> 10:24 +// CHECK: File 0, 10:26 -> 10:29 +// CHECK: File 0, 10:30 -> 10:31 +int foo(int time, int n) { +#pragma omp parallel for default(shared) schedule(dynamic, 1) reduction(+ : time) + for (int i = 1; i < n; ++i); + return 0; +} |

