[Lldb-commits] [lldb] r282657 - Fixed TestObjCStructArgument/i386; expressions can now call ObjC class methods.

Zachary Turner via lldb-commits lldb-commits at lists.llvm.org
Wed Sep 28 18:02:00 PDT 2016


On Wed, Sep 28, 2016 at 5:54 PM Sean Callanan via lldb-commits <
lldb-commits at lists.llvm.org> wrote:

> Author: spyffe
> Date: Wed Sep 28 19:45:33 2016
> New Revision: 282657
>
> URL: http://llvm.org/viewvc/llvm-project?rev=282657&view=rev
> Log:
> Fixed TestObjCStructArgument/i386; expressions can now call ObjC class
> methods.
>
> <rdar://problem/28502241>
>
> Modified:
>     lldb/trunk/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
>     lldb/trunk/source/Plugins/ExpressionParser/Clang/IRForTarget.h
>
> Modified: lldb/trunk/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp?rev=282657&r1=282656&r2=282657&view=diff
>
> ==============================================================================
> --- lldb/trunk/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
> (original)
> +++ lldb/trunk/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp Wed
> Sep 28 19:45:33 2016
> @@ -73,7 +73,8 @@ IRForTarget::IRForTarget(lldb_private::C
>                           const char *func_name)
>      : ModulePass(ID), m_resolve_vars(resolve_vars),
> m_func_name(func_name),
>        m_module(NULL), m_decl_map(decl_map),
> m_CFStringCreateWithBytes(NULL),
> -      m_sel_registerName(NULL), m_intptr_ty(NULL),
> m_error_stream(error_stream),
> +      m_sel_registerName(NULL), m_objc_getClass(NULL), m_intptr_ty(NULL),
> +      m_error_stream(error_stream),
>        m_execution_unit(execution_unit), m_result_store(NULL),
>        m_result_is_pointer(false), m_reloc_placeholder(NULL),
>        m_entry_instruction_finder(FindEntryInstruction) {}
> @@ -944,6 +945,172 @@ bool IRForTarget::RewriteObjCSelectors(B
>    return true;
>  }
>
> +static bool IsObjCClassReference(Value *value) {
> +  GlobalVariable *global_variable = dyn_cast<GlobalVariable>(value);
>
If it's possible for value to be null, then you should use
dyn_cast_or_null.  On the other hand, if it's not possible for value to be
null, then maybe it should be a reference.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20160929/5399c624/attachment-0001.html>


More information about the lldb-commits mailing list