Skip to content
  1. Dec 22, 2011
  2. Dec 21, 2011
    • Sean Callanan's avatar
      The "desired result type" code in the expression · 20bb3aa5
      Sean Callanan authored
      parser has hitherto been an implementation waiting
      for a use.  I have now tied the '-o' option for
      the expression command -- which indicates that the
      result is an Objective-C object and needs to be
      printed -- to the ExpressionParser, which
      communicates the desired type to Clang.
      
      Now, if the result of an expression is determined
      by an Objective-C method call for which there is
      no type information, that result is implicitly
      cast to id if and only if the -o option is passed
      to the expression command.  (Otherwise if there
      is no explicit cast Clang will issue an error.
      This behavior is identical to what happened before
      r146756.)
      
      Also added a testcase for -o enabled and disabled.
      
      llvm-svn: 147099
      20bb3aa5
    • Sean Callanan's avatar
      I accidentally committed some changes to the · b952354d
      Sean Callanan authored
      Xcode workspace that aren't actually desirable.
      Reverted.
      
      llvm-svn: 147097
      b952354d
    • Johnny Chen's avatar
      Fix wrong test method name. · 4b730a73
      Johnny Chen authored
      llvm-svn: 147072
      4b730a73
    • Sean Callanan's avatar
      9b5eaa07
    • Jason Molenda's avatar
      Bump version number past lldb-98. · 0ffc16ce
      Jason Molenda authored
      llvm-svn: 147033
      0ffc16ce
    • Sean Callanan's avatar
      Tightened Clang against a bug in which RecordDecls · febbd63d
      Sean Callanan authored
      with incomplete definition data were being converted.
      Now Clang attempts to complete RecordDecls before
      converting them, avoiding a nasty crash.
      
      llvm-svn: 147029
      febbd63d
    • Sean Callanan's avatar
      Fixed a bug in the ASTImporter that affects · 5bc5a76d
      Sean Callanan authored
      types that have been imported multiple times.
      
      The discussion below uses this diagram:
      
      ASTContext     A      B      C
      Decl           Da     Db     Dc
      ASTImporter    \-Iab-/\-Iac-/
                     \-----Iac----/
      
      When a Decl D is imported from ASTContext A to
      ASTContext B, the ASTImporter Iab records the
      pair <Da, Db> in a DenseMap.  That way, if Iab
      ever encounters Da again (for example, as the
      DeclContext for another Decl), it can use the
      imported version.  This is not an optimization,
      it is critical: if I import the field "st_dev"
      as part of importing "struct stat," the field
      must have DeclContext equal to the parent
      structure or we end up with multiple different
      Decls containing different parts of "struct
      stat."  "struct stat" is imported once and
      recorded in the DenseMap; then the ASTImporter
      finds that same version when looking for the
      DeclContext of "st_dev."
      
      The bug arises when Db is imported into another
      ASTContext C and ASTContext B goes away.  This
      often occurs when LLDB produces result variables
      for expressions.  Ibc is aware of the transport
      of Db to Dc, but a brand new ASTImporter, Iac,
      is responsible for completing Dc from its source
      upon request.  That ASTImporter has no mappings,
      so it will produce a clone of Dc when attempting
      to import its children.  That means that type
      completion operations on Dc will fail.
      
      The solution is to create Iac as soon as Ibc
      imports D from B to C, and inform Iac of the
      mapping between Da and Dc.  This allows type
      completion to happen correctly.
      
      llvm-svn: 147016
      5bc5a76d
  3. Dec 20, 2011
  4. Dec 19, 2011
  5. Dec 17, 2011
Loading