<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Wed, Sep 28, 2016 at 5:54 PM Sean Callanan via lldb-commits <<a href="mailto:lldb-commits@lists.llvm.org">lldb-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: spyffe<br class="gmail_msg">
Date: Wed Sep 28 19:45:33 2016<br class="gmail_msg">
New Revision: 282657<br class="gmail_msg">
<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=282657&view=rev" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project?rev=282657&view=rev</a><br class="gmail_msg">
Log:<br class="gmail_msg">
Fixed TestObjCStructArgument/i386; expressions can now call ObjC class methods.<br class="gmail_msg">
<br class="gmail_msg">
<rdar://problem/28502241><br class="gmail_msg">
<br class="gmail_msg">
Modified:<br class="gmail_msg">
    lldb/trunk/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp<br class="gmail_msg">
    lldb/trunk/source/Plugins/ExpressionParser/Clang/IRForTarget.h<br class="gmail_msg">
<br class="gmail_msg">
Modified: lldb/trunk/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp?rev=282657&r1=282656&r2=282657&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp?rev=282657&r1=282656&r2=282657&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- lldb/trunk/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp (original)<br class="gmail_msg">
+++ lldb/trunk/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp Wed Sep 28 19:45:33 2016<br class="gmail_msg">
@@ -73,7 +73,8 @@ IRForTarget::IRForTarget(lldb_private::C<br class="gmail_msg">
                          const char *func_name)<br class="gmail_msg">
     : ModulePass(ID), m_resolve_vars(resolve_vars), m_func_name(func_name),<br class="gmail_msg">
       m_module(NULL), m_decl_map(decl_map), m_CFStringCreateWithBytes(NULL),<br class="gmail_msg">
-      m_sel_registerName(NULL), m_intptr_ty(NULL), m_error_stream(error_stream),<br class="gmail_msg">
+      m_sel_registerName(NULL), m_objc_getClass(NULL), m_intptr_ty(NULL),<br class="gmail_msg">
+      m_error_stream(error_stream),<br class="gmail_msg">
       m_execution_unit(execution_unit), m_result_store(NULL),<br class="gmail_msg">
       m_result_is_pointer(false), m_reloc_placeholder(NULL),<br class="gmail_msg">
       m_entry_instruction_finder(FindEntryInstruction) {}<br class="gmail_msg">
@@ -944,6 +945,172 @@ bool IRForTarget::RewriteObjCSelectors(B<br class="gmail_msg">
   return true;<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
+static bool IsObjCClassReference(Value *value) {<br class="gmail_msg">
+  GlobalVariable *global_variable = dyn_cast<GlobalVariable>(value);<br class="gmail_msg"></blockquote><div>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.</div><div><br></div></div></div>