[PATCH] D150892: [clang][ExprConstant] fix __builtin_object_size for flexible array members

Nick Desaulniers via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu May 18 11:27:02 PDT 2023


nickdesaulniers added inline comments.


================
Comment at: clang/lib/AST/ExprConstant.cpp:11740
+          LVal.getLValueBase().dyn_cast<const ValueDecl *>());
+      Result += VD->getFlexibleArrayInitChars(Info.Ctx);
+    }
----------------
erichkeane wrote:
> Isn't this a possible null-deref?  
I don't think so; in fact, I can use `cast` and `get` rather than `dyn_cast_or_null` and `dyn_cast` here.

Just because we have a pointer doesn't mean it's possibly `nullptr`; I don't think we can reach this code patch for evaluating the `__builtin_object_size` of a struct with a flexible array member if the LValue doesn't have a corresponding VarDecl.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D150892/new/

https://reviews.llvm.org/D150892



More information about the cfe-commits mailing list