[clang] [Clang][OpenMP] Ignore the null array and avoid the assertion. (PR #71551)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Nov 7 07:52:46 PST 2023
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang
Author: Baodi (lwshanbd)
<details>
<summary>Changes</summary>
Fixes #<!-- -->69198.
---
Full diff: https://github.com/llvm/llvm-project/pull/71551.diff
2 Files Affected:
- (modified) clang/lib/AST/Expr.cpp (+3-3)
- (modified) clang/lib/Sema/SemaOpenMP.cpp (+2)
``````````diff
diff --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp
index 74a9c49a795b4fc..55c6b732b7081f4 100644
--- a/clang/lib/AST/Expr.cpp
+++ b/clang/lib/AST/Expr.cpp
@@ -4983,10 +4983,10 @@ QualType OMPArraySectionExpr::getBaseOriginalType(const Expr *Base) {
for (unsigned Cnt = 0; Cnt < ArraySectionCount; ++Cnt) {
if (OriginalTy->isAnyPointerType())
OriginalTy = OriginalTy->getPointeeType();
- else {
- assert (OriginalTy->isArrayType());
+ else if (OriginalTy->isArrayType())
OriginalTy = OriginalTy->castAsArrayTypeUnsafe()->getElementType();
- }
+ else
+ return {};
}
return OriginalTy;
}
diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp
index e05fa54d8118319..dcdd6e7a3f5c762 100644
--- a/clang/lib/Sema/SemaOpenMP.cpp
+++ b/clang/lib/Sema/SemaOpenMP.cpp
@@ -21014,6 +21014,8 @@ Sema::ActOnOpenMPDependClause(const OMPDependClause::DependDataTy &Data,
if (OASE) {
QualType BaseType =
OMPArraySectionExpr::getBaseOriginalType(OASE->getBase());
+ if (BaseType.isNull())
+ return nullptr;
if (const auto *ATy = BaseType->getAsArrayTypeUnsafe())
ExprTy = ATy->getElementType();
else
``````````
</details>
https://github.com/llvm/llvm-project/pull/71551
More information about the cfe-commits
mailing list