Skip to content
  1. Dec 13, 2010
    • Sean Callanan's avatar
      Added support for generating expressions that have · 17827830
      Sean Callanan authored
      access to the members of the Objective-C self object.
      
      The approach we take is to generate the method as a
      @category on top of the self object, and to pass the
      "self" pointer to it.  (_cmd is currently NULL.)
      
      Most changes are in ClangExpressionDeclMap, but the
      change that adds support to the ABIs to pass _cmd
      touches a fair amount of code.
      
      llvm-svn: 121722
      17827830
  2. Nov 12, 2010
  3. Nov 11, 2010
  4. Nov 08, 2010
  5. Nov 06, 2010
    • Greg Clayton's avatar
      Modified all logging calls to hand out shared pointers to make sure we · 2d4edfbc
      Greg Clayton authored
      don't crash if we disable logging when some code already has a copy of the
      logger. Prior to this fix, logs were handed out as pointers and if they were
      held onto while a log got disabled, then it could cause a crash. Now all logs
      are handed out as shared pointers so this problem shouldn't happen anymore.
      We are also using our new shared pointers that put the shared pointer count
      and the object into the same allocation for a tad better performance.
      
      llvm-svn: 118319
      2d4edfbc
  6. Nov 04, 2010
  7. Nov 03, 2010
  8. Oct 26, 2010
  9. Oct 20, 2010
  10. Sep 21, 2010
    • Sean Callanan's avatar
      Removed the hacky "#define this ___clang_this" handler · fc55f5d1
      Sean Callanan authored
      for C++ classes.  Replaced it with a less hacky approach:
      
       - If an expression is defined in the context of a
         method of class A, then that expression is wrapped as
         ___clang_class::___clang_expr(void*) { ... }
         instead of ___clang_expr(void*) { ... }.
      
       - ___clang_class is resolved as the type of the target
         of the "this" pointer in the method the expression
         is defined in.
      
       - When reporting the type of ___clang_class, a method
         with the signature ___clang_expr(void*) is added to
         that class, so that Clang doesn't complain about a
         method being defined without a corresponding
         declaration.
      
       - Whenever the expression gets called, "this" gets
         looked up, type-checked, and then passed in as the
         first argument.
      
      This required the following changes:
      
       - The ABIs were changed to support passing of the "this"
         pointer as part of trivial calls.
      
       - ThreadPlanCallFunction and ClangFunction were changed
         to support passing of an optional "this" pointer.
      
       - ClangUserExpression was extended to perform the
         wrapping described above.
      
       - ClangASTSource was changed to revert the changes
         required by the hack.
      
       - ClangExpressionParser, IRForTarget, and
         ClangExpressionDeclMap were changed to handle
         different manglings of ___clang_expr flexibly.  This
         meant no longer searching for a function called
         ___clang_expr, but rather looking for a function whose
         name *contains* ___clang_expr.
      
       - ClangExpressionParser and ClangExpressionDeclMap now
         remember whether "this" is required, and know how to
         look it up as necessary.
      
      A few inheritance bugs remain, and I'm trying to resolve
      these.  But it is now possible to use "this" as well as
      refer implicitly to member variables, when in the proper
      context.
      
      llvm-svn: 114384
      fc55f5d1
  11. Sep 15, 2010
  12. Jul 31, 2010
    • Sean Callanan's avatar
      Added support for rewriting objc_msgSend so we can · 5300d37a
      Sean Callanan authored
      call Objective-C methods from expressions.  Also added
      some more logging to the function-calling thread plan
      so that we can see the registers when a function
      finishes.
      
      Also documented things maybe a bit better.
      
      llvm-svn: 109938
      5300d37a
  13. Jul 16, 2010
  14. Jun 19, 2010
    • Jim Ingham's avatar
      Two changes in this checkin. Added a ThreadPlanKind so that I can do some... · b01e742a
      Jim Ingham authored
      Two changes in this checkin.  Added a ThreadPlanKind so that I can do some reasoning based on the kind of thread plan
      without having to use RTTI.
      Removed the ThreadPlanContinue and replaced with a ShouldAutoContinue query that serves the same purpose.  Having to push
      another plan to assert that if there's no other indication the target should continue when this plan is popped was flakey
      and error prone.  This method is more stable, and fixed problems we were having with thread specific breakpoints.
      
      llvm-svn: 106378
      b01e742a
  15. Jun 08, 2010
Loading