r337928 - [OPENMP] Fix PR38256: Fix locations of the artificial conditional op.
Vedant Kumar via cfe-commits
cfe-commits at lists.llvm.org
Wed Jul 25 10:31:05 PDT 2018
Thanks!
Just out of curiosity, what is the "omp_outlined" function you're checking for? Is it implicitly-defined? If it's not user-visible, i.e it doesn't actually appear in the source code of a program, why should we generate a code coverage mapping for it at all?
vedant
> On Jul 25, 2018, at 7:40 AM, Alexey Bataev via cfe-commits <cfe-commits at lists.llvm.org> wrote:
>
> Author: abataev
> Date: Wed Jul 25 07:40:26 2018
> New Revision: 337928
>
> URL: http://llvm.org/viewvc/llvm-project?rev=337928&view=rev
> Log:
> [OPENMP] Fix PR38256: Fix locations of the artificial conditional op.
>
> Fixed the source locations of the conditional op so that they don'r
> crash coverage pass.
>
> Added:
> cfe/trunk/test/CoverageMapping/openmp.c
> Modified:
> cfe/trunk/lib/Sema/SemaOpenMP.cpp
>
> Modified: cfe/trunk/lib/Sema/SemaOpenMP.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaOpenMP.cpp?rev=337928&r1=337927&r2=337928&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaOpenMP.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaOpenMP.cpp Wed Jul 25 07:40:26 2018
> @@ -4909,7 +4909,8 @@ checkOpenMPLoop(OpenMPDirectiveKind DKin
> 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());
>
> Added: cfe/trunk/test/CoverageMapping/openmp.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CoverageMapping/openmp.c?rev=337928&view=auto
> ==============================================================================
> --- cfe/trunk/test/CoverageMapping/openmp.c (added)
> +++ cfe/trunk/test/CoverageMapping/openmp.c Wed Jul 25 07:40:26 2018
> @@ -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;
> +}
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list