Skip to content
  1. Feb 07, 2009
    • Ted Kremenek's avatar
      Overhaul of Stmt allocation: · 5a201951
      Ted Kremenek authored
      - Made allocation of Stmt objects using vanilla new/delete a *compiler
        error* by making this new/delete "protected" within class Stmt.
      - Now the only way to allocate Stmt objects is by using the new
        operator that takes ASTContext& as an argument.  This ensures that
        all Stmt nodes are allocated from the same (pool) allocator.
      - Naturally, these two changes required that *all* creation sites for
        AST nodes use new (ASTContext&).  This is a large patch, but the
        majority of the changes are just this mechanical adjustment.
      - The above changes also mean that AST nodes can no longer be
        deallocated using 'delete'.  Instead, one most do
        StmtObject->Destroy(ASTContext&) or do
        ASTContextObject.Deallocate(StmtObject) (the latter not running the
        'Destroy' method).
      
      Along the way I also...
      - Made CompoundStmt allocate its array of Stmt* using the allocator in
        ASTContext (previously it used std::vector).  There are a whole
        bunch of other Stmt classes that need to be similarly changed to
        ensure that all memory allocated for ASTs comes from the allocator
        in ASTContext.
      - Added a new smart pointer ExprOwningPtr to Sema.h.  This replaces
        the uses of llvm::OwningPtr within Sema, as llvm::OwningPtr used
        'delete' to free memory instead of a Stmt's 'Destroy' method.
      
      Big thanks to Doug Gregor for helping with the acrobatics of making
      'new/delete' private and the new smart pointer ExprOwningPtr!
      
      llvm-svn: 63997
      5a201951
    • Ted Kremenek's avatar
      GRExprEngine: When processing compound assignments, do a switch table lookup... · 5d7662cf
      Ted Kremenek authored
      GRExprEngine: When processing compound assignments, do a switch table lookup to get the non-compound opcode from the compound opcode instead of relying on the order of BinaryOperator::opcode values.  This unbreaks the misc-ps.c test.
      
      llvm-svn: 63991
      5d7662cf
    • Chris Lattner's avatar
      start of tgmath, yuck. · 19179ad6
      Chris Lattner authored
      llvm-svn: 63990
      19179ad6
    • Sebastian Redl's avatar
    • Daniel Dunbar's avatar
      When making dummy file entries, the directory name should also be · d404862c
      Daniel Dunbar authored
      non-empty.
      
      llvm-svn: 63986
      d404862c
    • Chris Lattner's avatar
      Apparently it is important to define intptr_t and uintptr_t to · 01af63be
      Chris Lattner authored
      long instead of int.  This is because system heaers like to redefine
      typedefs and that is an error if they don't exactly match.  Use long
      for intptr_t on all systems where long is the right size.
      
      llvm-svn: 63984
      01af63be
    • Sebastian Redl's avatar
      Implement dereferencing of pointers-to-member. · 112a9766
      Sebastian Redl authored
      llvm-svn: 63983
      112a9766
    • Sebastian Redl's avatar
      Fix some errors in the new stdint.h. · ad41b838
      Sebastian Redl authored
      llvm-svn: 63982
      ad41b838
    • Fariborz Jahanian's avatar
      Fixed an objc2 nonfragile-abi code gen bug. · c76e7416
      Fariborz Jahanian authored
      Now we can say 'hello world' objective-c style
      in the nonfragile abi.
      
      llvm-svn: 63981
      c76e7416
    • Chris Lattner's avatar
      only define MB_LEN_MAX if the system <limits.h> doesn't. · 6fbf3a07
      Chris Lattner authored
      don't typecast CHAR_MIN to char, this makes it not a PP constant
      and gives it the wrong unpromoted type.  Thanks to Sebastian for
      pointing this out!
      
      llvm-svn: 63980
      6fbf3a07
  2. Feb 06, 2009
  3. Feb 05, 2009
Loading