[PATCH] D66721: [analyzer] Analysis: Prevent bitwise operation false positives

Csaba Dabis via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sun Aug 25 13:43:50 PDT 2019


Charusso added inline comments.


================
Comment at: clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def:305
+                "Whether the bitwise (and shift) operations should be checked.",
+                false)
+
----------------
NoQ wrote:
> We didn't do enough debugging to demonstrate that the problems are specific to the checker. I suggest we keep this on by default and only disable it on LLVM as an overfitting effort.
Well, okay.


================
Comment at: clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp:82-88
     // Do not report assignments of uninitialized values inside swap functions.
     // This should allow to swap partially uninitialized structs
     // (radar://14129997)
     if (const FunctionDecl *EnclosingFunctionDecl =
         dyn_cast<FunctionDecl>(C.getStackFrame()->getDecl()))
       if (C.getCalleeName(EnclosingFunctionDecl) == "swap")
         return;
----------------
NoQ wrote:
> Ugh. This part is also wrong for the same reason.
If I do not return here then `clang/test/Analysis/uninit-vals.m:113: Returning from 'swap'` related notes are gone, so I will leave it untouched.


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

https://reviews.llvm.org/D66721





More information about the cfe-commits mailing list