Charusso added a comment. In D64680#1584076 <https://reviews.llvm.org/D64680#1584076>, @NoQ wrote:
> Change of plans: let's suppress the warning when our `free()` is done within > the function that has `__isl_take` in its definition. So, like, ascend the > chain of location contexts and check your callers when you're about to mark > the pointer as released. If any of the callers contain `__isl_take`, mark it > as escaped instead. I think if the `__isl_*` macro is in use it should be used in the immediate StackFrame. Btw: some magic happened and with the previous approach we did not suppress some reports, now we do. Thanks! ================ Comment at: clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp:56-58 + // If this checker does not model the allocation. + DoNothing, + // Reference to allocated memory. ---------------- NoQ wrote: > We already have `Escaped`, it's the same thing in practice. It is more strict than `Escaped`, also it made for the purpose of `PSK_EscapeOther` to force out we lost the entire pointer and do not make false warnings of use-after-free. ================ Comment at: clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp:2937-2942 + const Stmt *S = PathDiagnosticLocation::getStmt(N); + + if (RS && RS->isDoNothing()) { + BR.markInvalid(getTag(), S); + return nullptr; + } ---------------- NoQ wrote: > {F9551724} I wanted to make it bulletproof, but your meme-proof is way more better. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D64680/new/ https://reviews.llvm.org/D64680 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits