[PATCH] D73897: [analyzer] StdLibraryFunctionsChecker refactor: remove macros

Artem Dergachev via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Feb 10 06:49:14 PST 2020


NoQ accepted this revision.
NoQ added a comment.

LGTM, thanks again!



================
Comment at: clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp:537-551
+  // The format is as follows:
   //{ "function name",
-  //  { spec:
+  //  { variant0:
   //    { argument types list, ... },
-  //    return type, purity, { range set list:
+  //    return type, purity, { specification list:
   //      { range list:
   //        { argument index, within or out of, {{from, to}, ...} },
----------------
martong wrote:
> NoQ wrote:
> > I suspect that this comment would need a lot more updates.
> Could you please elaborate? Do you mean to add comments e.g. to `ArgumentCondition` and the rest below? Or to rewrite the above comment?
Actually let's ditch it entirely. It was worth it when it was all macros, so that it was apparent how macros expanded, but now it's pretty self-explanatory all the way.

Otherwise i was thinking about making this a pattern that the user can copy-paste and fill in. Like, maybe, include all the constructors explicitly (`Summary`, `ArgTypes`, etc.).


================
Comment at: clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp:598
+          Summaries{
+              Summary(ArgTypes{IntTy}, RetType(IntTy), EvalCallAsPure)
+                  // Boils down to isupper() or islower() or isdigit().
----------------
Just curious, can `RetType` also use curly braces?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D73897





More information about the cfe-commits mailing list