From 782e2144090a2d5bd9e61f7ba549c046ae923f21 Mon Sep 17 00:00:00 2001 From: liuweili Date: Wed, 28 Jun 2023 10:38:51 +0800 Subject: [PATCH] enhance c support flexible arrays --- clang/lib/Sema/SemaDeclAttr.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/clang/lib/Sema/SemaDeclAttr.cpp b/clang/lib/Sema/SemaDeclAttr.cpp index ed679e65c927..cabbe67a1cbd 100644 --- a/clang/lib/Sema/SemaDeclAttr.cpp +++ b/clang/lib/Sema/SemaDeclAttr.cpp @@ -8454,8 +8454,15 @@ static void handleCountFuncPtrParams(Sema &S, Decl *D, const ParsedAttr &AL, Qua } static void handleCountAttr(Sema &S, Decl *D, const ParsedAttr &AL, bool isByte = false) { + bool isFlexibleArrayMember = false; + if (D->getKind() == Decl::Field) { + const auto *FD = dyn_cast(D); + if (FD->getType()->isIncompleteArrayType()) { + isFlexibleArrayMember = true; + } + } const auto *VD = dyn_cast(D); - if (VD != nullptr && + if (VD != nullptr && !isFlexibleArrayMember && !attrNonNullArgCheck(S, VD->getType(), AL, SourceRange(), D->getSourceRange())) { return; } -- Gitee