Skip to content
  1. Jan 26, 2012
  2. 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
  3. Dec 01, 2011
  4. Oct 24, 2011
  5. Oct 06, 2011
    • Anna Zaks's avatar
      [analyzer] OSAtomicChecker implements evalCall in a very invasive way - it... · 77f8661d
      Anna Zaks authored
      [analyzer] OSAtomicChecker implements evalCall in a very invasive way - it essentially simulates inlining of compareAndSwap() by means of setting the NodeBuilder flags and calling ExprEngine directly. 
      
      This commit introduces a new callback just for this checker to unblock checker API cleanup. 
      
      llvm-svn: 141246
      77f8661d
  6. Aug 16, 2011
  7. Aug 13, 2011
  8. Aug 12, 2011
  9. Jul 23, 2011
  10. Apr 27, 2011
  11. Mar 01, 2011
  12. Feb 28, 2011
  13. Feb 10, 2011
  14. Feb 08, 2011
  15. Dec 23, 2010
  16. Dec 22, 2010
  17. Dec 20, 2010
  18. Dec 02, 2010
  19. Dec 01, 2010
  20. Aug 11, 2010
  21. Jul 20, 2010
  22. Jun 23, 2010
  23. Feb 25, 2010
  24. Feb 08, 2010
  25. Feb 04, 2010
  26. Jan 25, 2010
    • Ted Kremenek's avatar
      Split libAnalysis into two libraries: libAnalysis and libChecker. · d6b87086
      Ted Kremenek authored
      (1) libAnalysis is a generic analysis library that can be used by
          Sema.  It defines the CFG, basic dataflow analysis primitives, and
          inexpensive flow-sensitive analyses (e.g. LiveVariables).
      
      (2) libChecker contains the guts of the static analyzer, incuding the
          path-sensitive analysis engine and domain-specific checks.
      
      Now any clients that want to use the frontend to build their own tools
      don't need to link in the entire static analyzer.
      
      This change exposes various obvious cleanups that can be made to the
      layout of files and headers in libChecker.  More changes pending.  :)
      
      This change also exposed a layering violation between AnalysisContext
      and MemRegion.  BlockInvocationContext shouldn't explicitly know about
      BlockDataRegions.  For now I've removed the BlockDataRegion* from
      BlockInvocationContext (removing context-sensitivity; although this
      wasn't used yet).  We need to have a better way to extend
      BlockInvocationContext (and any LocationContext) to add
      context-sensitivty.
      
      llvm-svn: 94406
      d6b87086
  27. Jan 11, 2010
    • Ted Kremenek's avatar
      Switch RegionStore over to using <BaseRegion+raw offset> to store · be909b5e
      Ted Kremenek authored
      value bindings.  Along with a small change to OSAtomicChecker, this
      resolves <rdar://problem/7527292> and resolves some long-standing
      issues with how values can be bound to the same physical address by
      not have the same "key".  This change is only a beginning; logically
      RegionStore needs to better handle loads from addresses where the
      stored value is larger/smaller/different type than the loaded value.
      We handle these cases in an approximate fashion now (via
      CastRetrievedVal and help in SimpleSValuator), but it could be made
      much smarter.
      
      llvm-svn: 93137
      be909b5e
  28. Dec 16, 2009
Loading