martong added a comment.

Thanks @balazske for your comments, you always make an assiduous review!



================
Comment at: clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp:350
+      } else {
+        *this = Signature(Args, *RetTy);
       }
----------------
balazske wrote:
> Not very bad but I do not like to call another constructor and assignment 
> here, this can be many redundant operations. It is better to fill the 
> internal arrays here and have a separate assert function that checks for 
> validness (of the internal arrays) instead of the private constructor.
Ok, makes sense, thanks!


================
Comment at: clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp:378
 
   static QualType getArgType(const FunctionDecl *FD, ArgNo ArgN) {
     assert(FD && "Function must be set");
----------------
balazske wrote:
> Check for isInvalid here (with assert)?
We cannot do that, this is not a member function of the Signature, this 
operates on a FuncitonDecl. But it makes sense to add the assert to the 
`mathces` member function.


================
Comment at: clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp:882
+  const QualType SizePtrTy = getPointerTy(SizeTy);
+  const QualType SizePtrRestrictTy = getRestrictTy(SizePtrTy);
 
----------------
balazske wrote:
> Another idea: Have a class that handles all the variants (simple, pointer, 
> const pointer, const restrict pointer, restrict). It can have get functions 
> that compute the type if not done yet, or get every variant at first time 
> even if it is later not used (or has no sense).
> For example create it like `TypeVariants SizeTy{ACtx.getSizeType()};` and 
> then call `SizeTy.getType()`, `SizeTy.asPtr()`, `SizeTy.asPtrRestrict()`, ... 
> .
> ```
I'd rather keep the current form, because I think it makes it easier to compose 
types from different base types (and it is similar to the ASTMatchers in this 
sense).


================
Comment at: 
clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp:1026
   Optional<QualType> FilePtrTy, FilePtrRestrictTy;
   if (FileTy) {
     // FILE *
----------------
balazske wrote:
> These `if`s can be removed too (in another patch).
Yep, I am going to create another base patch.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D84415

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to