summaryrefslogtreecommitdiffstats
path: root/lldb/include
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/include')
-rw-r--r--lldb/include/lldb/Core/ClangForward.h1
-rw-r--r--lldb/include/lldb/Expression/ASTResultSynthesizer.h21
-rw-r--r--lldb/include/lldb/Expression/ClangExpressionDeclMap.h5
-rw-r--r--lldb/include/lldb/Expression/ClangFunction.h12
-rw-r--r--lldb/include/lldb/Symbol/ClangASTType.h6
-rw-r--r--lldb/include/lldb/Target/ABI.h3
-rw-r--r--lldb/include/lldb/Target/ThreadPlanCallFunction.h3
-rw-r--r--lldb/include/lldb/Target/ThreadPlanCallUserExpression.h1
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
OpenPOWER on IntegriCloud