diff options
Diffstat (limited to 'lldb/include')
-rw-r--r-- | lldb/include/lldb/Core/ClangForward.h | 1 | ||||
-rw-r--r-- | lldb/include/lldb/Expression/ASTResultSynthesizer.h | 21 | ||||
-rw-r--r-- | lldb/include/lldb/Expression/ClangExpressionDeclMap.h | 5 | ||||
-rw-r--r-- | lldb/include/lldb/Expression/ClangFunction.h | 12 | ||||
-rw-r--r-- | lldb/include/lldb/Symbol/ClangASTType.h | 6 | ||||
-rw-r--r-- | lldb/include/lldb/Target/ABI.h | 3 | ||||
-rw-r--r-- | lldb/include/lldb/Target/ThreadPlanCallFunction.h | 3 | ||||
-rw-r--r-- | lldb/include/lldb/Target/ThreadPlanCallUserExpression.h | 1 |
8 files changed, 46 insertions, 6 deletions
diff --git a/lldb/include/lldb/Core/ClangForward.h b/lldb/include/lldb/Core/ClangForward.h index c1a9866a11b..4a324dba3e2 100644 --- a/lldb/include/lldb/Core/ClangForward.h +++ b/lldb/include/lldb/Core/ClangForward.h @@ -34,6 +34,7 @@ namespace clang class CodeGenOptions; class CodeGenerator; class CompilerInstance; + class CompoundStmt; class CXXBaseSpecifier; class CXXBoolLiteralExpr; class CXXFunctionalCastExpr; diff --git a/lldb/include/lldb/Expression/ASTResultSynthesizer.h b/lldb/include/lldb/Expression/ASTResultSynthesizer.h index a1976135e2e..9813812de40 100644 --- a/lldb/include/lldb/Expression/ASTResultSynthesizer.h +++ b/lldb/include/lldb/Expression/ASTResultSynthesizer.h @@ -123,12 +123,31 @@ private: void TransformTopLevelDecl(clang::Decl *D); //---------------------------------------------------------------------- + /// Process an Objective-C method and produce the result variable and + /// initialization + /// + /// @param[in] MethodDecl + /// The method to process. + //---------------------------------------------------------------------- + bool SynthesizeObjCMethodResult(clang::ObjCMethodDecl *MethodDecl); + + //---------------------------------------------------------------------- /// Process a function and produce the result variable and initialization /// /// @param[in] FunDecl /// The function to process. //---------------------------------------------------------------------- - bool SynthesizeResult(clang::FunctionDecl *FunDecl); + bool SynthesizeFunctionResult(clang::FunctionDecl *FunDecl); + + //---------------------------------------------------------------------- + /// Process a functionbody and produce the result variable and + /// initialization + /// + /// @param[in] Body + /// The body of the function. + //---------------------------------------------------------------------- + bool SynthesizeBodyResult(clang::CompoundStmt *Body, + clang::DeclContext *DC); clang::ASTContext *m_ast_context; ///< The AST context to use for identifiers and types. clang::ASTConsumer *m_passthrough; ///< The ASTConsumer down the chain, for passthrough. NULL if it's a SemaConsumer. diff --git a/lldb/include/lldb/Expression/ClangExpressionDeclMap.h b/lldb/include/lldb/Expression/ClangExpressionDeclMap.h index e089ab4c68d..e2d59c8f9ce 100644 --- a/lldb/include/lldb/Expression/ClangExpressionDeclMap.h +++ b/lldb/include/lldb/Expression/ClangExpressionDeclMap.h @@ -291,6 +291,10 @@ public: /// @param[out] object_ptr /// The this pointer. /// + /// @param[in] object_name + /// The name of the object pointer -- "this," "self," or similar + /// depending on language + /// /// @param[in] exe_ctx /// The execution context at which to dump the struct. /// @@ -302,6 +306,7 @@ public: /// True on success; false otherwise. //------------------------------------------------------------------ bool GetObjectPointer(lldb::addr_t &object_ptr, + ConstString &object_name, ExecutionContext &exe_ctx, Error &error); diff --git a/lldb/include/lldb/Expression/ClangFunction.h b/lldb/include/lldb/Expression/ClangFunction.h index 2e1dabe71d0..457721f060a 100644 --- a/lldb/include/lldb/Expression/ClangFunction.h +++ b/lldb/include/lldb/Expression/ClangFunction.h @@ -423,8 +423,13 @@ public: /// True if the thread plan may simply be discarded if an error occurs. /// /// @param[in] this_arg - /// If non-NULL, the function is invoked like a C++ method, with the - /// value pointed to by the pointer as its 'this' argument. + /// If non-NULL (and cmd_arg is NULL), the function is invoked like a C++ + /// method, with the value pointed to by the pointer as its 'this' + /// argument. + /// + /// @param[in] cmd_arg + /// If non-NULL, the function is invoked like an Objective-C method, with + /// this_arg in the 'self' slot and cmd_arg in the '_cmd' slot /// /// @return /// A ThreadPlan for executing the function. @@ -436,7 +441,8 @@ public: Stream &errors, bool stop_others, bool discard_on_error, - lldb::addr_t *this_arg = 0); + lldb::addr_t *this_arg = 0, + lldb::addr_t *cmd_arg = 0); //------------------------------------------------------------------ /// Get a thread plan to run the function this ClangFunction was created with. diff --git a/lldb/include/lldb/Symbol/ClangASTType.h b/lldb/include/lldb/Symbol/ClangASTType.h index b28b539cbe6..9807bf33360 100644 --- a/lldb/include/lldb/Symbol/ClangASTType.h +++ b/lldb/include/lldb/Symbol/ClangASTType.h @@ -162,6 +162,12 @@ public: DumpTypeDescription (clang::ASTContext *ast_context, lldb::clang_type_t opaque_clang_qual_type, Stream *s); + + void DumpTypeCode (Stream *s); + + static void + DumpTypeCode (void *type, + Stream *s); lldb::Encoding GetEncoding (uint32_t &count); diff --git a/lldb/include/lldb/Target/ABI.h b/lldb/include/lldb/Target/ABI.h index ffce3da0519..7ab92d3457c 100644 --- a/lldb/include/lldb/Target/ABI.h +++ b/lldb/include/lldb/Target/ABI.h @@ -35,7 +35,8 @@ public: lldb::addr_t functionAddress, lldb::addr_t returnAddress, lldb::addr_t arg, - lldb::addr_t *this_arg) const = 0; + lldb::addr_t *this_arg, + lldb::addr_t *cmd_arg) const = 0; virtual bool GetArgumentValues (Thread &thread, diff --git a/lldb/include/lldb/Target/ThreadPlanCallFunction.h b/lldb/include/lldb/Target/ThreadPlanCallFunction.h index 1151dac9a7f..2ef39e65249 100644 --- a/lldb/include/lldb/Target/ThreadPlanCallFunction.h +++ b/lldb/include/lldb/Target/ThreadPlanCallFunction.h @@ -28,7 +28,8 @@ public: lldb::addr_t arg, bool stop_other_threads, bool discard_on_error = true, - lldb::addr_t *this_arg = 0); + lldb::addr_t *this_arg = 0, + lldb::addr_t *cmd_arg = 0); virtual ~ThreadPlanCallFunction (); diff --git a/lldb/include/lldb/Target/ThreadPlanCallUserExpression.h b/lldb/include/lldb/Target/ThreadPlanCallUserExpression.h index 5a0f7407f97..93adfdf17d4 100644 --- a/lldb/include/lldb/Target/ThreadPlanCallUserExpression.h +++ b/lldb/include/lldb/Target/ThreadPlanCallUserExpression.h @@ -31,6 +31,7 @@ public: bool stop_other_threads, bool discard_on_error, lldb::addr_t *this_arg, + lldb::addr_t *cmd_arg, ClangUserExpression::ClangUserExpressionSP &user_expression_sp); virtual |