Skip to content
  1. Jan 28, 2012
  2. Jan 26, 2012
  3. 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
  4. Oct 26, 2011
  5. 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
  6. Aug 18, 2011
    • Anna Zaks's avatar
      Remove EnhancedBugReport and RangedBugReport - pull all the extra... · 3a6bdf8f
      Anna Zaks authored
      Remove EnhancedBugReport and RangedBugReport - pull all the extra functionality they provided into their parent BugReport. The only functional changes are: made getRanges() non const - it adds default range to Ranges if none are supplied, made getStmt() private, which was another FIXME.
      
      llvm-svn: 137894
      3a6bdf8f
  7. Aug 16, 2011
  8. Aug 13, 2011
  9. Jul 23, 2011
  10. Jun 21, 2011
    • Douglas Gregor's avatar
      Introduce a new AST node describing reference binding to temporaries. · fe31481f
      Douglas Gregor authored
      MaterializeTemporaryExpr captures a reference binding to a temporary
      value, making explicit that the temporary value (a prvalue) needs to
      be materialized into memory so that its address can be used. The
      intended AST invariant here is that a reference will always bind to a
      glvalue, and MaterializeTemporaryExpr will be used to convert prvalues
      into glvalues for that binding to happen. For example, given
      
        const int& r = 1.0;
      
      The initializer of "r" will be a MaterializeTemporaryExpr whose
      subexpression is an implicit conversion from the double literal "1.0"
      to an integer value. 
      
      IR generation benefits most from this new node, since it was
      previously guessing (badly) when to materialize temporaries for the
      purposes of reference binding. There are likely more refactoring and
      cleanups we could perform there, but the introduction of
      MaterializeTemporaryExpr fixes PR9565, a case where IR generation
      would effectively bind a const reference directly to a bitfield in a
      struct. Addresses <rdar://problem/9552231>.
      
      llvm-svn: 133521
      fe31481f
  11. Apr 15, 2011
  12. Mar 12, 2011
Loading