Skip to content
  1. Feb 22, 2012
  2. Feb 20, 2012
  3. Feb 17, 2012
  4. Feb 16, 2012
  5. Feb 15, 2012
  6. Feb 14, 2012
    • Anna Zaks's avatar
      [analyzer] Make Malloc Checker optimistic in presence of inlining. · 3d34834b
      Anna Zaks authored
      (In response of Ted's review of r150112.)
      
      This moves the logic which checked if a symbol escapes through a
      parameter to invalidateRegionCallback (instead of post CallExpr visit.)
      
      To accommodate the change, added a CallOrObjCMessage parameter to
      checkRegionChanges callback.
      
      llvm-svn: 150513
      3d34834b
    • Anna Zaks's avatar
      [analyzer] Malloc Checker: realloc: add dependency between the symbols · ad01ef5f
      Anna Zaks authored
      in realloc map. 
      
      If there is no dependency, the reallocated ptr will get garbage
      collected before we know that realloc failed, which would lead us to
      missing a memory leak warning.
      
      Also added new test cases, which we can handle now.
      Plus minor cleanups.
      
      llvm-svn: 150446
      ad01ef5f
  7. Feb 13, 2012
    • Anna Zaks's avatar
      [analyzer] Malloc Checker: realloc: correct the way we are handing the · 8fd0f2a6
      Anna Zaks authored
      case when size is 0.
      
      llvm-svn: 150412
      8fd0f2a6
    • Anna Zaks's avatar
      [analyzer] Malloc checker: rework realloc handling: · d56c8794
      Anna Zaks authored
      1) Support the case when realloc fails to reduce False Positives. (We
      essentially need to restore the state of the pointer being reallocated.)
      
      2) Realloc behaves differently under special conditions (from pointer is
      null, size is 0). When detecting these cases, we should consider
      under-constrained states (size might or might not be 0). The
      old version handled this in a very hacky way. The code did not
      differentiate between definite and possible (no consideration for
      under-constrained states). Further, after processing each special case,
      the realloc processing function did not return but chained to the next
      special case processing. So you could end up in an execution in which
      you first see the states in which size is 0 and realloc ~ free(),
      followed by the states corresponding to size is not 0 followed by the
      evaluation of the regular realloc behavior.
      
      llvm-svn: 150402
      d56c8794
  8. Feb 12, 2012
  9. Feb 11, 2012
  10. Feb 10, 2012
  11. Feb 09, 2012
  12. Feb 08, 2012
  13. Feb 05, 2012
  14. Feb 04, 2012
  15. Jan 26, 2012
  16. Jan 17, 2012
  17. Jan 06, 2012
    • Ted Kremenek's avatar
      [analyzer] Make the entries in 'Environment' context-sensitive by making entries map from · 632e3b7e
      Ted Kremenek authored
      (Stmt*,LocationContext*) pairs to SVals instead of Stmt* to SVals.
      
      This is needed to support basic IPA via inlining.  Without this, we cannot tell
      if a Stmt* binding is part of the current analysis scope (StackFrameContext) or
      part of a parent context.
      
      This change introduces an uglification of the use of getSVal(), and thus takes
      two steps forward and one step back.  There are also potential performance implications
      of enlarging the Environment.  Both can be addressed going forward by refactoring the
      APIs and optimizing the internal representation of Environment.  This patch
      mainly introduces the functionality upon when we want to build upon (and clean up).
      
      llvm-svn: 147688
      632e3b7e
  18. Jan 05, 2012
    • Anna Zaks's avatar
      [analyzer] Be less pessimistic about invalidation of global variables · 8158ef0d
      Anna Zaks authored
      as a result of a call.
      
      Problem:
      Global variables, which come in from system libraries should not be
      invalidated by all calls. Also, non-system globals should not be
      invalidated by system calls.
      
      Solution:
      The following solution to invalidation of globals seems flexible enough
      for taint (does not invalidate stdin) and should not lead to too
      many false positives. We split globals into 3 classes:
      
      * immutable - values are preserved by calls (unless the specific
      global is passed in as a parameter):
           A :  Most system globals and const scalars
      
      * invalidated by functions defined in system headers:
           B: errno
      
      * invalidated by all other functions (note, these functions may in
      turn contain system calls):
           B: errno
           C: all other globals (which are not in A nor B)
      
      llvm-svn: 147569
      8158ef0d
    • Ted Kremenek's avatar
      Fix 80 col violations. · 778d2bb8
      Ted Kremenek authored
      llvm-svn: 147566
      778d2bb8
  19. Dec 01, 2011
  20. Oct 26, 2011
  21. Oct 25, 2011
    • Anna Zaks's avatar
      [analyzer] Simplify CheckerContext · b473816b
      Anna Zaks authored
      Remove dead members/parameters: ProgramState, respondsToCallback, autoTransition.
      Remove addTransition method since it's the same as generateNode. Maybe we should
      rename generateNode to genTransition (since a transition is always automatically
      generated)?
      
      llvm-svn: 142946
      b473816b
    • Anna Zaks's avatar
      [analyze] Convert EndOfPath callback to use CheckerContext · 3eae3341
      Anna Zaks authored
      Get rid of the EndOfPathBuilder completely.
      Use the generic NodeBuilder to generate nodes.
      Enqueue the end of path frontier explicitly.
      
      llvm-svn: 142943
      3eae3341
  22. Oct 14, 2011
Loading