[PATCH] D69948: [Checkers] Added support for freopen to StreamChecker.
Balogh, Ádám via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Nov 7 08:37:03 PST 2019
baloghadamsoftware added a comment.
Thank you for working on this. Please add comments to the code and maybe also to the tests. I could not find anything in the standards about `freopen()` with null-pointer for the stream parameter.
================
Comment at: clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp:176
+ const LocationContext *LCtx = C.getPredecessor()->getLocationContext();
+ ConstraintManager &CM = C.getConstraintManager();
+ auto *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr());
----------------
The four lines above are typical cases for using auto, since the type is duplicated in the line. See: https://llvm.org/docs/CodingStandards.html#use-auto-type-deduction-to-make-code-more-readable
================
Comment at: clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp:220
+ StateRetNull = CM.assume(StateRetNull, RetVal, false);
+ assert(StateRetNull && "This assumption should not fail.");
+ StateRetNull =
----------------
Please use a more elaborated error message here.
================
Comment at: clang/test/Analysis/stream.c:120
+ fclose(p2); // expected-warning {{Try to close a file Descriptor already closed. Cause undefined behaviour}}
+}
+
----------------
I wonder if this test belongs into this particular patch. It has nothing to do with `freopen()`.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D69948/new/
https://reviews.llvm.org/D69948
More information about the cfe-commits
mailing list