[clang] [Clang][RISCV] Use Decl for checkRVVTypeSupport (PR #65778)
Yueh-Ting Chen via cfe-commits
cfe-commits at lists.llvm.org
Fri Sep 8 10:56:38 PDT 2023
https://github.com/eopXD updated https://github.com/llvm/llvm-project/pull/65778:
>From ebffa141090d5274db8a88b5450325e34316a18b Mon Sep 17 00:00:00 2001
From: eopXD <yueh.ting.chen at gmail.com>
Date: Fri, 8 Sep 2023 09:59:25 -0700
Subject: [PATCH] [Clang][RISCV] Use Decl for checkRVVTypeSupport
Using ValueDecl will cause error for OpenMP. Decl should do the work.
---
clang/include/clang/Sema/Sema.h | 2 +-
clang/lib/Sema/SemaChecking.cpp | 2 +-
clang/lib/Sema/SemaDecl.cpp | 2 +-
clang/test/Sema/riscv-vector-with-openmp.c | 12 ++++++++++++
4 files changed, 15 insertions(+), 3 deletions(-)
create mode 100644 clang/test/Sema/riscv-vector-with-openmp.c
diff --git a/clang/include/clang/Sema/Sema.h b/clang/include/clang/Sema/Sema.h
index 4fd0e6bd5982a71..5c7207062741b52 100644
--- a/clang/include/clang/Sema/Sema.h
+++ b/clang/include/clang/Sema/Sema.h
@@ -13726,7 +13726,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 d6e090ee496eb30..37060f668b7acf3 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/Sema/riscv-vector-with-openmp.c b/clang/test/Sema/riscv-vector-with-openmp.c
new file mode 100644
index 000000000000000..2408152f9848e36
--- /dev/null
+++ b/clang/test/Sema/riscv-vector-with-openmp.c
@@ -0,0 +1,12 @@
+// RUN: %clang_cc1 -triple riscv64 -target-feature +v \
+// RUN: -disable-O0-optnone -o - -fsyntax-only -fopenmp %s -verify
+// REQUIRES: riscv-registered-target
+// expected-no-diagnostics
+#include <riscv_vector.h>
+
+void foo() {
+ #pragma omp parallel
+ {
+ vint32m1_t i32m1;
+ }
+}
More information about the cfe-commits
mailing list