Skip to content
  1. Mar 08, 2011
  2. Feb 17, 2011
  3. Feb 08, 2011
  4. Feb 07, 2011
    • John McCall's avatar
      A few more tweaks to the blocks AST representation: · 351762cd
      John McCall authored
        - BlockDeclRefExprs always store VarDecls
        - BDREs no longer store copy expressions
        - BlockDecls now store a list of captured variables, information about
          how they're captured, and a copy expression if necessary
          
      With that in hand, change IR generation to use the captures data in       
      blocks instead of walking the block independently.        
      
      Additionally, optimize block layout by emitting fields in descending
      alignment order, with a heuristic for filling in words when alignment
      of the end of the block header is insufficient for the most aligned
      field.
      
      llvm-svn: 125005
      351762cd
  5. Feb 03, 2011
  6. Jan 23, 2011
    • Ted Kremenek's avatar
      Tweak diagnostic: · 499897b4
      Ted Kremenek authored
        error: no super class declared in @interface for 'XXX'
      
      to be:
      
        error: 'X' cannot use 'super' because it is a root class
      
      The latter explains what the user actually did wrong.
      
      Fixes: <rdar://problem/8904409>
      llvm-svn: 124074
      499897b4
  7. Jan 14, 2011
  8. Jan 11, 2011
  9. Dec 22, 2010
  10. Dec 21, 2010
  11. Dec 16, 2010
  12. Dec 10, 2010
  13. Dec 04, 2010
    • John McCall's avatar
      Although we currently have explicit lvalue-to-rvalue conversions, they're · 34376a68
      John McCall authored
      not actually frequently used, because ImpCastExprToType only creates a node
      if the types differ.  So explicitly create an ICE in the lvalue-to-rvalue
      conversion code in DefaultFunctionArrayLvalueConversion() as well as several
      other new places, and consistently deal with the consequences throughout the
      compiler.
      
      In addition, introduce a new cast kind for loading an ObjCProperty l-value,
      and make sure we emit those nodes whenever an ObjCProperty l-value appears
      that's not on the LHS of an assignment operator.
      
      This breaks a couple of rewriter tests, which I've x-failed until future
      development occurs on the rewriter.
      
      Ted Kremenek kindly contributed the analyzer workarounds in this patch.
      
      llvm-svn: 120890
      34376a68
    • Fariborz Jahanian's avatar
      Diagnose when accessing property in a class method and · ecbbb6e9
      Fariborz Jahanian authored
      no property accessor class method to be found, instead of
      crashing in IRGen. // rdar://8703553
      
      llvm-svn: 120855
      ecbbb6e9
  14. Dec 02, 2010
  15. Dec 01, 2010
  16. Nov 18, 2010
  17. Nov 13, 2010
  18. Oct 26, 2010
  19. Oct 19, 2010
  20. Oct 15, 2010
    • Douglas Gregor's avatar
      When performing typo correction, look through the set of known · 57756eab
      Douglas Gregor authored
      identifiers to determine good typo-correction candidates. Once we've
      identified those candidates, we perform name lookup on each of them
      and the consider the results. 
      
      This optimization makes typo correction > 2x faster on a benchmark
      example using a single typo (NSstring) in a tiny file that includes
      Cocoa.h from a precompiled header, since we are deserializing far less
      information now during typo correction.
      
      There is a semantic change here, which is interesting. The presence of
      a similarly-named entity that is not visible can now affect typo
      correction. This is both good (you won't get weird corrections if the
      thing you wanted isn't in scope) and bad (you won't get good
      corrections if there is a similarly-named-but-completely-unrelated
      thing). Time will tell whether it was a good choice or not.
      
      llvm-svn: 116528
      57756eab
  21. Oct 14, 2010
  22. Sep 24, 2010
  23. Sep 16, 2010
    • Douglas Gregor's avatar
      Implement automatic bracket insertion for Objective-C class message · abf4a3e4
      Douglas Gregor authored
      sends. These are far trickier than instance messages, because we
      typically have something like
      
        NSArray alloc]
      
      where it appears to be a declaration of a variable named "alloc" up
      until we see the ']' (or a ':'), and at that point we can't backtrace.
      So, we use a combination of syntactic and semantic disambiguation to
      treat this as a message send only when the type is an Objective-C type
      and it has the syntax of a class message send (which would otherwise
      be ill-formed).
      
      llvm-svn: 114057
      abf4a3e4
    • Douglas Gregor's avatar
      Handle bracket insertion for Objective-C class messages in a very · 3e972009
      Douglas Gregor authored
      narrow, almost useless case where we're inside a parenthesized
      expression, e.g.,
      
        (NSArray alloc])
      
      The solution to the general case still eludes me.
      
      llvm-svn: 114039
      3e972009
  24. Sep 15, 2010
    • Douglas Gregor's avatar
      Implement bracket insertion for Objective-C instance message sends as · e9bba4f1
      Douglas Gregor authored
      part of parser recovery. For example, given:
      
        a method1:arg];
      
      we detect after parsing the expression "a" that we have the start of a
      message send expression. We pretend we've seen a '[' prior to the a,
      then parse the remainder as a message send. We'll then give a
      diagnostic+fix-it such as:
      
      fixit-objc-message.m:17:3: error: missing '[' at start of message
            send expression
        a method1:arg];
        ^
        [
      
      The algorithm here is very simple, and always assumes that the open
      bracket goes at the beginning of the message send. It also only works
      for non-super instance message sends at this time.
      
      llvm-svn: 113968
      e9bba4f1
  25. Aug 27, 2010
  26. Aug 26, 2010
  27. Aug 25, 2010
  28. Aug 24, 2010
  29. Aug 17, 2010
  30. Aug 12, 2010
  31. Aug 10, 2010
  32. Aug 03, 2010
Loading