This revision was automatically updated to reflect the committed changes. Closed by commit rG5285748c2c76: Fix assert on the variable which is used in omp clause is not marked (authored by jyu2).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D101781/new/ https://reviews.llvm.org/D101781 Files: clang/lib/Sema/SemaOpenMP.cpp clang/test/OpenMP/constexpr_capture.cpp Index: clang/test/OpenMP/constexpr_capture.cpp =================================================================== --- clang/test/OpenMP/constexpr_capture.cpp +++ clang/test/OpenMP/constexpr_capture.cpp @@ -1,4 +1,5 @@ // RUN: %clang_cc1 -verify -fopenmp -x c++ -triple powerpc64le-unknown-linux -S -emit-llvm %s -o - -std=c++11 2>&1 | FileCheck %s +// RUN: %clang_cc1 -verify -fopenmp -x c++ -fopenmp-targets=x86_64-pc-linux-gnu -triple powerpc64le-unknown-linux -S -emit-llvm %s -o - -std=c++11 2>&1 | FileCheck %s // expected-no-diagnostics template <int __v> struct integral_constant { @@ -12,10 +13,24 @@ struct V { template <typename TArg0 = int, typename = typename decay<TArg0>::type> V(); }; + +constexpr double h_chebyshev_coefs[] = { + 1.0000020784639703, 0.0021491446496202074}; + +void test(double *d_value) +{ +#pragma omp target map(tofrom \ + : d_value [0:1]) map(always, to \ + : h_chebyshev_coefs [0:2]) + *d_value = h_chebyshev_coefs[1]; return; +} + +// CHECK: void @__omp_offloading_{{.+}}test{{.+}}(double* %0) + int main() { #pragma omp target V v; return 0; } -// CHECK: call void @__omp_offloading_{{.+}}_main_l16() +// CHECK: call void @__omp_offloading_{{.+}}_main_{{.+}}() Index: clang/lib/Sema/SemaOpenMP.cpp =================================================================== --- clang/lib/Sema/SemaOpenMP.cpp +++ clang/lib/Sema/SemaOpenMP.cpp @@ -2527,6 +2527,7 @@ void Sema::EndOpenMPClause() { DSAStack->setClauseParsingMode(/*K=*/OMPC_unknown); + CleanupVarDeclMarking(); } static std::pair<ValueDecl *, bool>
Index: clang/test/OpenMP/constexpr_capture.cpp =================================================================== --- clang/test/OpenMP/constexpr_capture.cpp +++ clang/test/OpenMP/constexpr_capture.cpp @@ -1,4 +1,5 @@ // RUN: %clang_cc1 -verify -fopenmp -x c++ -triple powerpc64le-unknown-linux -S -emit-llvm %s -o - -std=c++11 2>&1 | FileCheck %s +// RUN: %clang_cc1 -verify -fopenmp -x c++ -fopenmp-targets=x86_64-pc-linux-gnu -triple powerpc64le-unknown-linux -S -emit-llvm %s -o - -std=c++11 2>&1 | FileCheck %s // expected-no-diagnostics template <int __v> struct integral_constant { @@ -12,10 +13,24 @@ struct V { template <typename TArg0 = int, typename = typename decay<TArg0>::type> V(); }; + +constexpr double h_chebyshev_coefs[] = { + 1.0000020784639703, 0.0021491446496202074}; + +void test(double *d_value) +{ +#pragma omp target map(tofrom \ + : d_value [0:1]) map(always, to \ + : h_chebyshev_coefs [0:2]) + *d_value = h_chebyshev_coefs[1]; return; +} + +// CHECK: void @__omp_offloading_{{.+}}test{{.+}}(double* %0) + int main() { #pragma omp target V v; return 0; } -// CHECK: call void @__omp_offloading_{{.+}}_main_l16() +// CHECK: call void @__omp_offloading_{{.+}}_main_{{.+}}() Index: clang/lib/Sema/SemaOpenMP.cpp =================================================================== --- clang/lib/Sema/SemaOpenMP.cpp +++ clang/lib/Sema/SemaOpenMP.cpp @@ -2527,6 +2527,7 @@ void Sema::EndOpenMPClause() { DSAStack->setClauseParsingMode(/*K=*/OMPC_unknown); + CleanupVarDeclMarking(); } static std::pair<ValueDecl *, bool>
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits