Author: Yueh-Ting (eop) Chen Date: 2023-09-11T14:19:34+08:00 New Revision: 77b7b1ad42157211d6779ca80d6eada27981f9d2
URL: https://github.com/llvm/llvm-project/commit/77b7b1ad42157211d6779ca80d6eada27981f9d2 DIFF: https://github.com/llvm/llvm-project/commit/77b7b1ad42157211d6779ca80d6eada27981f9d2.diff LOG: [Clang][RISCV] Use Decl for checkRVVTypeSupport (#65778) Using ValueDecl will cause error for OpenMP. Decl should do the work. Added: clang/test/SemaOpenMP/riscv-vector-with-openmp.c Modified: clang/include/clang/Sema/Sema.h clang/lib/Sema/SemaChecking.cpp clang/lib/Sema/SemaDecl.cpp Removed: ################################################################################ diff --git a/clang/include/clang/Sema/Sema.h b/clang/include/clang/Sema/Sema.h index 566655818a85baf..304108df9f8d029 100644 --- a/clang/include/clang/Sema/Sema.h +++ b/clang/include/clang/Sema/Sema.h @@ -13754,7 +13754,7 @@ class Sema final { bool CheckRISCVLMUL(CallExpr *TheCall, unsigned ArgNum); bool CheckRISCVBuiltinFunctionCall(const TargetInfo &TI, unsigned BuiltinID, CallExpr *TheCall); - void checkRVVTypeSupport(QualType Ty, SourceLocation Loc, ValueDecl *D); + void checkRVVTypeSupport(QualType Ty, SourceLocation Loc, Decl *D); bool CheckLoongArchBuiltinFunctionCall(const TargetInfo &TI, unsigned BuiltinID, CallExpr *TheCall); bool CheckWebAssemblyBuiltinFunctionCall(const TargetInfo &TI, diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp index 3932d9cd07d9864..3b4ac613da76aa8 100644 --- a/clang/lib/Sema/SemaChecking.cpp +++ b/clang/lib/Sema/SemaChecking.cpp @@ -5514,7 +5514,7 @@ bool Sema::CheckWebAssemblyBuiltinFunctionCall(const TargetInfo &TI, return false; } -void Sema::checkRVVTypeSupport(QualType Ty, SourceLocation Loc, ValueDecl *D) { +void Sema::checkRVVTypeSupport(QualType Ty, SourceLocation Loc, Decl *D) { const TargetInfo &TI = Context.getTargetInfo(); // (ELEN, LMUL) pairs of (8, mf8), (16, mf4), (32, mf2), (64, m1) requires at // least zve64x diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index 99806054260965f..59c7ce36fbff452 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -8866,7 +8866,7 @@ void Sema::CheckVariableDeclarationType(VarDecl *NewVD) { } if (T->isRVVType()) - checkRVVTypeSupport(T, NewVD->getLocation(), cast<ValueDecl>(CurContext)); + checkRVVTypeSupport(T, NewVD->getLocation(), cast<Decl>(CurContext)); } /// Perform semantic checking on a newly-created variable diff --git a/clang/test/SemaOpenMP/riscv-vector-with-openmp.c b/clang/test/SemaOpenMP/riscv-vector-with-openmp.c new file mode 100644 index 000000000000000..5dae3eb9ce0b0a2 --- /dev/null +++ b/clang/test/SemaOpenMP/riscv-vector-with-openmp.c @@ -0,0 +1,12 @@ +// RUN: %clang_cc1 -triple riscv64 -target-feature +v -fsyntax-only \ +// RUN: -verify -fopenmp %s +// REQUIRES: riscv-registered-target + +// expected-no-diagnostics + +void foo() { + #pragma omp parallel + { + __rvv_int32m1_t i32m1; + } +} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits