================ @@ -2495,10 +2471,100 @@ static FixItList fixVariableWithSpan(const VarDecl *VD, return fixLocalVarDeclWithSpan(VD, Ctx, getUserFillPlaceHolder(), Handler); } +static FixItList fixVarDeclWithArray(const VarDecl *D, const ASTContext &Ctx, + UnsafeBufferUsageHandler &Handler) { + FixItList FixIts{}; + + if (auto CAT = dyn_cast<clang::ConstantArrayType>(D->getType())) { + const QualType &ArrayEltT = CAT->getElementType(); + assert(!ArrayEltT.isNull() && "Trying to fix a non-array type variable!"); + // FIXME: support multi-dimensional arrays + if (isa<clang::ConstantArrayType>(ArrayEltT)) ---------------- jkorous-apple wrote:
You're right, for example it's possible to mix CSA with C variable length arrays. https://clang.llvm.org/doxygen/classclang_1_1VariableArrayType.html ``` void foo(unsigned u) { int foo[5][u]; } ``` Let me fix this and add a testcase. https://github.com/llvm/llvm-project/pull/80084 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits