Skip to content
  1. Nov 15, 2008
  2. Nov 14, 2008
    • Ted Kremenek's avatar
      Second attempt at implementation transfer function support for... · 537f6387
      Ted Kremenek authored
      Second attempt at implementation transfer function support for ObjCForCollectionStmt.  We now assume that the 'element' expression can be any lvalue.
      
      llvm-svn: 59313
      537f6387
    • Douglas Gregor's avatar
      Add a new expression node, CXXOperatorCallExpr, which expresses a · 993603d8
      Douglas Gregor authored
      function call created in response to the use of operator syntax that
      resolves to an overloaded operator in C++, e.g., "str1 +
      str2" that resolves to std::operator+(str1, str2)". We now build a
      CXXOperatorCallExpr in C++ when we pick an overloaded operator. (But
      only for binary operators, where we actually implement overloading)
      
      I decided *not* to refactor the current CallExpr to make it abstract
      (with FunctionCallExpr and CXXOperatorCallExpr as derived
      classes). Doing so would allow us to make CXXOperatorCallExpr a little
      bit smaller, at the cost of making the argument and callee accessors
      virtual. We won't know if this is going to be a win until we can parse
      lots of C++ code to determine how much memory we'll save by making
      this change vs. the performance penalty due to the extra virtual
      calls.
      
      llvm-svn: 59306
      993603d8
    • Zhongxing Xu's avatar
      Improve comments. · c967d035
      Zhongxing Xu authored
      llvm-svn: 59294
      c967d035
  3. Nov 13, 2008
  4. Nov 12, 2008
  5. Nov 11, 2008
  6. Nov 10, 2008
  7. Nov 08, 2008
  8. Nov 07, 2008
  9. Nov 02, 2008
  10. Oct 31, 2008
  11. Oct 30, 2008
  12. Oct 29, 2008
    • Zhongxing Xu's avatar
      Rename: AddDecl => BindDecl · 628ae879
      Zhongxing Xu authored
      BindDecl better describes what the function does:
        - Bind the VarDecl to its memory region
        - Bind the memory region to some initial value.
      
      llvm-svn: 58359
      628ae879
  13. Oct 28, 2008
  14. Oct 27, 2008
    • Ted Kremenek's avatar
      Added preliminary support for CompoundLiterals in the static analyzer: · bf263682
      Ted Kremenek authored
      - GRExprEngine::VisitCompoundLiteral...
         (1) visits the initializer list (generating ExplodedNodes)
         (2) creates a CompoundMemRegion for the literal
         (3) creates a new state with the bound literal values using
             GRStateManager::BindCompoundLiteral
      
      - GRStateManager::BindCompoundLiteral simply calls 
        StoreManager::BindCompoundLiteral to get a new store and returns a persistent
        GRState with that store.
      
      - BasicStore::BindCompoundLiteral simply returns the same store, as it
        doesn't handle field sensitivity
        
      - RegionStore::BindCompoundLiteral currently fires an assert (pending discussion
        of how to best implement mappings for CompoundLiteralRegion).
      
      llvm-svn: 58277
      bf263682
    • Douglas Gregor's avatar
      Refactor the expression class hierarchy for casts. Most importantly: · e200adc5
      Douglas Gregor authored
        - CastExpr is the root of all casts
        - ImplicitCastExpr is (still) used for all explicit casts
        - ExplicitCastExpr is now the root of all *explicit* casts
        - ExplicitCCastExpr (new name needed!?) is a C-style cast in C or C++
        - CXXFunctionalCastExpr inherits from ExplicitCastExpr
        - CXXNamedCastExpr inherits from ExplicitCastExpr and is the root of all
          of the C++ named cast expression types (static_cast, dynamic_cast, etc.)
        - Added classes CXXStaticCastExpr, CXXDynamicCastExpr, 
          CXXReinterpretCastExpr, and CXXConstCastExpr to 
      
      Also, fixed returned-stack-addr.cpp, which broke once when we fixed
      reinterpret_cast to diagnose double->int* conversions and again when
      we eliminated implicit conversions to reference types. The fix is in
      both testcase and SemaChecking.cpp.
      
      Most of this patch is simply support for the renaming. There's very
      little actual change in semantics.
      
      llvm-svn: 58264
      e200adc5
  15. Oct 25, 2008
  16. Oct 24, 2008
Loading