Skip to content
  1. Apr 08, 2010
  2. Apr 07, 2010
  3. Apr 06, 2010
  4. Apr 05, 2010
  5. Apr 02, 2010
    • Fariborz Jahanian's avatar
      diagnose declaring class extension after its implementation · e16cdb40
      Fariborz Jahanian authored
      (radar 7822210).
      
      llvm-svn: 100226
      e16cdb40
    • Fariborz Jahanian's avatar
      Diagnose invalid code with -fobjc-nonfragile-abi2 when · a9f8675e
      Fariborz Jahanian authored
      property is being accessed without the dot-syntax notation.
      (radar 7822344).
      
      llvm-svn: 100212
      a9f8675e
    • Daniel Dunbar's avatar
      Sema/Obj-C: Narrow type, and simplify. · ab5d7aef
      Daniel Dunbar authored
      llvm-svn: 100210
      ab5d7aef
    • Daniel Dunbar's avatar
    • Douglas Gregor's avatar
      Rework our handling of copy construction of temporaries, which was a · 45cf7e3d
      Douglas Gregor authored
      poor (and wrong) approximation of the actual rules governing when to
      build a copy and when it can be elided.
      
      The correct implementation is actually simpler than the
      approximation. When we only enumerate constructors as part of
      initialization (e.g., for direct initialization or when we're copying
      from a class type or one of its derived classes), we don't create a
      copy. When we enumerate all conversion functions, we do create a
      copy. Before, we created some extra copies and missed some
      others. The new test copy-initialization.cpp shows a case where we
      missed creating a (required, non-elidable) copy as part of a
      user-defined conversion, which resulted in a miscompile. This commit
      also fixes PR6757, where the missing copy made us reject well-formed
      code in the ternary operator.
      
      This commit also cleans up our handling of copy elision in the case
      where we create an extra copy of a temporary object, which became
      necessary now that we produce the right copies. The code that seeks to
      find the temporary object being copied has moved into
      Expr::getTemporaryObject(); it used to have two different
      not-quite-the-same implementations, one in Sema and one in CodeGen.
      
      Note that we still do not attempt to perform the named return value
      optimization, so we miss copy elisions for return values and throw
      expressions.
      
      llvm-svn: 100196
      45cf7e3d
    • Anders Carlsson's avatar
      If a constructor is a dependent context, just set the base and member... · db0a965e
      Anders Carlsson authored
      If a constructor is a dependent context, just set the base and member initializers as they are written. Fixes a bug where we wouldn't show initialization order warnings when instantiating.
      
      llvm-svn: 100180
      db0a965e
Loading