Skip to content
  1. Dec 22, 2010
  2. Dec 20, 2010
  3. Dec 02, 2010
  4. Dec 01, 2010
  5. Nov 24, 2010
    • Ted Kremenek's avatar
      Adjust method calls to reflect name changes in · b3b56c6b
      Ted Kremenek authored
      ImmutableSet/ImmtuableMap/ImmutableList APIs.
      
      Along the way, clean up some method names in
      the static analyzer so that they are more
      descriptive and/or start with lowercase letters.
      
      llvm-svn: 120071
      b3b56c6b
  6. Sep 03, 2010
  7. Sep 02, 2010
    • Ted Kremenek's avatar
      For GRExprEngine::EvalBind() (and called visitors), unifiy StoreE and AssignE.... · 07343c02
      Ted Kremenek authored
      For GRExprEngine::EvalBind() (and called visitors), unifiy StoreE and AssignE.  Now StoreE (const Stmt*) represents the expression where the store took place, which is the assignment expression if it takes place in an assignment.  This removes some conceptual dissidence as well as removes an extra parameter from the Checker::PreVisitBind() visitor.  It also improves ranges and source location information in analyzer diagnostics.
      
      llvm-svn: 112789
      07343c02
  8. Aug 25, 2010
  9. Aug 19, 2010
    • Alexis Hunt's avatar
      Generate Attr subclasses with TableGen. · dcfba7b3
      Alexis Hunt authored
      Now all classes derived from Attr are generated from TableGen.
      Additionally, Attr* is no longer its own linked list; SmallVectors or
      Attr* are used. The accompanying LLVM commit contains the updates to
      TableGen necessary for this.
      
      Some other notes about newly-generated attribute classes:
      
       - The constructor arguments are a SourceLocation and a Context&,
         followed by the attributes arguments in the order that they were
         defined in Attr.td
      
       - Every argument in Attr.td has an appropriate accessor named getFoo,
         and there are sometimes a few extra ones (such as to get the length
         of a variadic argument).
      
      Additionally, specific_attr_iterator has been introduced, which will
      iterate over an AttrVec, but only over attributes of a certain type. It
      can be accessed through either Decl::specific_attr_begin/end or
      the global functions of the same name.
      
      llvm-svn: 111455
      dcfba7b3
  10. Aug 18, 2010
  11. Aug 17, 2010
  12. Aug 15, 2010
  13. Aug 12, 2010
  14. Aug 06, 2010
  15. Aug 04, 2010
    • Jordy Rose's avatar
      Change the checker callback cache in GRExprEngine to be more compact (and IMHO... · c36df4d0
      Jordy Rose authored
      Change the checker callback cache in GRExprEngine to be more compact (and IMHO a little easier to understand), and add the same sort of caching for EvalAssume (tied for least-used callback), mostly as proof-of-concept.
      
      Before we go further with these, we should figure out a way to reuse the visit-and-cache code in CheckerVisit.
      
      llvm-svn: 110191
      c36df4d0
  16. Jul 31, 2010
  17. Jul 04, 2010
    • Jordy Rose's avatar
      Add a new symbol type, SymbolExtent, to represent the extents of memory... · 674bd55f
      Jordy Rose authored
      Add a new symbol type, SymbolExtent, to represent the extents of memory regions that may not be known at compile-time (such as those created by malloc). This replaces the old setExtent/getExtent API on Store, which used the GRState's GDM to store SVals.
      
      Also adds a getKnownValue() method to SValuator, which gets the integer value of an SVal if it is known to only have one possible value. There are more places in the code that could be using this, but in general we want to be dealing entirely in SVals, so its usefulness is limited.
      
      The only visible functionality change is that extents are now honored for any DeclRegion, such as fields and Objective-C ivars, rather than just variables. This shows up in bounds-checking and cast-size-checking.
      
      llvm-svn: 107577
      674bd55f
  18. Jul 01, 2010
  19. Jun 09, 2010
  20. Jun 07, 2010
  21. Jun 01, 2010
  22. May 13, 2010
  23. Mar 27, 2010
  24. Mar 10, 2010
  25. Feb 14, 2010
  26. Feb 08, 2010
  27. 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
  28. Jan 18, 2010
  29. Dec 31, 2009
Loading