<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 03/09/2017 10:13 AM, Adrian Prantl
      wrote:<br>
    </div>
    <blockquote
      cite="mid:08FEA651-084F-4514-810B-68EAB89B6493@apple.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <br class="">
      <div>
        <blockquote type="cite" class="">
          <div class="">On Mar 9, 2017, at 7:07 AM, Hal Finkel <<a
              moz-do-not-send="true" href="mailto:hfinkel@anl.gov"
              class="">hfinkel@anl.gov</a>> wrote:</div>
          <br class="Apple-interchange-newline">
          <div class="">
            <div bgcolor="#FFFFFF" text="#000000" class="">
              <p class=""><br class="">
              </p>
              <div class="moz-cite-prefix">On 03/06/2017 04:48 PM,
                Adrian Prantl via llvm-commits wrote:<br class="">
              </div>
              <blockquote
                cite="mid:AE0946C4-1FAF-4BC5-99C9-137BCF2B376F@apple.com"
                type="cite" class=""> <br class="">
                <div class="">
                  <blockquote type="cite" class="">
                    <div class="">On Mar 6, 2017, at 2:33 PM, David
                      Blaikie <<a moz-do-not-send="true"
                        href="mailto:dblaikie@gmail.com" class="">dblaikie@gmail.com</a>>
                      wrote:</div>
                    <br class="Apple-interchange-newline">
                    <div class="">
                      <div dir="ltr" class=""><br class="">
                        <br class="">
                        <div class="gmail_quote">
                          <div dir="ltr" class="">On Thu, Mar 2, 2017 at
                            5:20 PM Adrian Prantl via llvm-commits <<a
                              moz-do-not-send="true"
                              href="mailto:llvm-commits@lists.llvm.org"
                              class="">llvm-commits@lists.llvm.org</a>>
                            wrote:<br class="">
                          </div>
                          <blockquote class="gmail_quote"
                            style="margin:0 0 0 .8ex;border-left:1px
                            #ccc solid;padding-left:1ex">Author: adrian<br
                              class="gmail_msg">
                            Date: Thu Mar  2 19:08:25 2017<br
                              class="gmail_msg">
                            New Revision: 296847<br class="gmail_msg">
                            <br class="gmail_msg">
                            URL: <a moz-do-not-send="true"
                              href="http://llvm.org/viewvc/llvm-project?rev=296847&view=rev"
                              rel="noreferrer" class="gmail_msg"
                              target="_blank">http://llvm.org/viewvc/llvm-project?rev=296847&view=rev</a><br
                              class="gmail_msg">
                            Log:<br class="gmail_msg">
                            LiveDebugValues: Assume calls never clobber
                            SP.<br class="gmail_msg">
                            <br class="gmail_msg">
                            A call should never modify the stack
                            pointer, but some backends are<br
                              class="gmail_msg">
                            not so sure about this and never list SP in
                            the regmask.</blockquote>
                        </div>
                      </div>
                    </div>
                  </blockquote>
                </div>
              </blockquote>
              <br class="">
              I don't quite understand this statement. For
              callee-cleanup calling conventions (e.g. pascal, stdcall,
              etc. on Windows), the callee (and, thus, from the
              perspective of the caller, the call instruction), does
              modify the stack pointer. What am I missing?<br class="">
            </div>
          </div>
        </blockquote>
        <div><br class="">
        </div>
        <div>That's a good point, thanks. I guess what we really want to
          know in LiveDebugValues is whether a function call (or rather
          the combination of instructions pushing the argument and the
          function call) clobbers any variables that are stored in the
          caller's frame</div>
      </div>
    </blockquote>
    <br>
    What do you mean here by "variables"? Local stack variables can
    certainly be passed to callees and the callees might modify them.<br>
    <br>
     -Hal<br>
    <br>
    <blockquote
      cite="mid:08FEA651-084F-4514-810B-68EAB89B6493@apple.com"
      type="cite">
      <div>
        <div>, and that isn't the case (right?). I should at the very
          least improve the wording in the comment.</div>
        <div><br class="">
        </div>
        <div>thanks,</div>
        <div>adrian</div>
        <br class="">
        <blockquote type="cite" class="">
          <div class="">
            <div bgcolor="#FFFFFF" text="#000000" class=""> <br
                class="">
              Thanks again,<br class="">
              Hal<br class="">
              <br class="">
              <blockquote
                cite="mid:AE0946C4-1FAF-4BC5-99C9-137BCF2B376F@apple.com"
                type="cite" class="">
                <div class="">
                  <blockquote type="cite" class="">
                    <div class="">
                      <div dir="ltr" class="">
                        <div class="gmail_quote">
                          <div class=""><br class="">
                          </div>
                          <div class="">Should the backends be fixed
                            instead?</div>
                        </div>
                      </div>
                    </div>
                  </blockquote>
                  <div class=""><br class="">
                  </div>
                  <div class="">Yes they should, but my understanding is
                    that this is a larger undertaking that is not likely
                    to happen anytime soon.</div>
                  <div class=""><br class="">
                  </div>
                  <div class="">-- adrian</div>
                  <br class="">
                  <blockquote type="cite" class="">
                    <div class="">
                      <div dir="ltr" class="">
                        <div class="gmail_quote">
                          <div class=""> </div>
                          <blockquote class="gmail_quote"
                            style="margin:0 0 0 .8ex;border-left:1px
                            #ccc solid;padding-left:1ex"> For the<br
                              class="gmail_msg">
                            purposes of LiveDebugValues we assume a call
                            never clobbers SP. We<br class="gmail_msg">
                            already have a similar workaround in
                            DbgValueHistoryCalculator (which<br
                              class="gmail_msg">
                            we hopefully can retire soon).<br
                              class="gmail_msg">
                            <br class="gmail_msg">
                            This fixes the availabilty of local
                            ASANified variables on AArch64.<br
                              class="gmail_msg">
                            <br class="gmail_msg">
                            <a moz-do-not-send="true"
                              href="rdar://problem/27757381" class="">rdar://problem/27757381</a><br
                              class="gmail_msg">
                            <br class="gmail_msg">
                            Added:<br class="gmail_msg">
                               
                            llvm/trunk/test/DebugInfo/AArch64/asan-stack-vars.ll<br
                              class="gmail_msg">
                            Modified:<br class="gmail_msg">
                               
                            llvm/trunk/lib/CodeGen/LiveDebugValues.cpp<br
                              class="gmail_msg">
                            <br class="gmail_msg">
                            Modified:
                            llvm/trunk/lib/CodeGen/LiveDebugValues.cpp<br
                              class="gmail_msg">
                            URL: <a moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LiveDebugValues.cpp?rev=296847&r1=296846&r2=296847&view=diff"
                              rel="noreferrer" class="gmail_msg"
                              target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LiveDebugValues.cpp?rev=296847&r1=296846&r2=296847&view=diff</a><br
                              class="gmail_msg">
==============================================================================<br
                              class="gmail_msg">
                            ---
                            llvm/trunk/lib/CodeGen/LiveDebugValues.cpp
                            (original)<br class="gmail_msg">
                            +++
                            llvm/trunk/lib/CodeGen/LiveDebugValues.cpp
                            Thu Mar  2 19:08:25 2017<br
                              class="gmail_msg">
                            @@ -373,8 +373,12 @@ void
                            LiveDebugValues::transferRegisterDe<br
                              class="gmail_msg">
                               unsigned SP =
                            TLI->getStackPointerRegisterToSaveRestore();<br
                              class="gmail_msg">
                               SparseBitVector<> KillSet;<br
                              class="gmail_msg">
                               for (const MachineOperand &MO :
                            MI.operands()) {<br class="gmail_msg">
                            +    // Determine whether the operand is a
                            register def.  Assume that call<br
                              class="gmail_msg">
                            +    // instructions never clobber SP,
                            because some backends (e.g., AArch64)<br
                              class="gmail_msg">
                            +    // never list SP in the regmask.<br
                              class="gmail_msg">
                                 if (MO.isReg() && MO.isDef()
                            && MO.getReg() &&<br
                              class="gmail_msg">
                            -       
                            TRI->isPhysicalRegister(MO.getReg())) {<br
                              class="gmail_msg">
                            +       
                            TRI->isPhysicalRegister(MO.getReg())
                            &&<br class="gmail_msg">
                            +        !(MI.isCall() &&
                            MO.getReg() == SP)) {<br class="gmail_msg">
                                   // Remove ranges of all aliased
                            registers.<br class="gmail_msg">
                                   for (MCRegAliasIterator
                            RAI(MO.getReg(), TRI, true); RAI.isValid();
                            ++RAI)<br class="gmail_msg">
                                     for (unsigned ID :
                            OpenRanges.getVarLocs())<br
                              class="gmail_msg">
                            <br class="gmail_msg">
                            Added:
                            llvm/trunk/test/DebugInfo/AArch64/asan-stack-vars.ll<br
                              class="gmail_msg">
                            URL: <a moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/AArch64/asan-stack-vars.ll?rev=296847&view=auto"
                              rel="noreferrer" class="gmail_msg"
                              target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/AArch64/asan-stack-vars.ll?rev=296847&view=auto</a><br
                              class="gmail_msg">
==============================================================================<br
                              class="gmail_msg">
                            ---
                            llvm/trunk/test/DebugInfo/AArch64/asan-stack-vars.ll
                            (added)<br class="gmail_msg">
                            +++
                            llvm/trunk/test/DebugInfo/AArch64/asan-stack-vars.ll
                            Thu Mar  2 19:08:25 2017<br
                              class="gmail_msg">
                            @@ -0,0 +1,326 @@<br class="gmail_msg">
                            +; RUN: llc -O0 -filetype=obj -o - %s |
                            llvm-dwarfdump - | FileCheck %s<br
                              class="gmail_msg">
                            +;<br class="gmail_msg">
                            +; Derived from (clang -O0 -g
                            -fsanitize=address -fobjc-arc)<br
                              class="gmail_msg">
                            +;   @protocol NSObject<br class="gmail_msg">
                            +;   @end<br class="gmail_msg">
                            +;   @interface NSObject<NSObject>{}<br
                              class="gmail_msg">
                            +;   + (instancetype)alloc;<br
                              class="gmail_msg">
                            +;   @end<br class="gmail_msg">
                            +;   struct CGSize {<br class="gmail_msg">
                            +;     double width;<br class="gmail_msg">
                            +;     double height;<br class="gmail_msg">
                            +;   };<br class="gmail_msg">
                            +;   typedef struct CGSize CGSize;<br
                              class="gmail_msg">
                            +;   @interface Object : NSObject<br
                              class="gmail_msg">
                            +;   -
                            (instancetype)initWithSize:(CGSize)size;<br
                              class="gmail_msg">
                            +;   - (id)aMessage;<br class="gmail_msg">
                            +;   @end<br class="gmail_msg">
                            +;   @implementation MyObject<br
                              class="gmail_msg">
                            +;   + (id)doWithSize:(CGSize)imageSize
                            andObject:(id)object {<br class="gmail_msg">
                            +;     return [object aMessage];<br
                              class="gmail_msg">
                            +;   }<br class="gmail_msg">
                            +;   @end<br class="gmail_msg">
                            +;<br class="gmail_msg">
                            +; CHECK: .debug_info contents:<br
                              class="gmail_msg">
                            +; CHECK: DW_TAG_subprogram<br
                              class="gmail_msg">
                            +; CHECK-NEXT:   DW_AT_low_pc
                            [DW_FORM_addr]     (0x0000000000000000)<br
                              class="gmail_msg">
                            +; CHECK-NEXT:   DW_AT_high_pc
                            [DW_FORM_addr]    ([[FN_END:.*]])<br
                              class="gmail_msg">
                            +; CHECK: "_cmd"<br class="gmail_msg">
                            +; CHECK: DW_TAG_formal_parameter<br
                              class="gmail_msg">
                            +; CHECK-NEXT: DW_AT_location {{.*}}
                            ([[OFS:.*]])<br class="gmail_msg">
                            +; CHECK-NEXT: DW_AT_name {{.*}}"imageSize"<br
                              class="gmail_msg">
                            +;<br class="gmail_msg">
                            +; CHECK: .debug_loc contents:<br
                              class="gmail_msg">
                            +; CHECK: [[OFS]]: Beginning address offset:
                            0x0000000000000000<br class="gmail_msg">
                            +; CHECK_NOT: 0x{{.*}}: Beginning<br
                              class="gmail_msg">
                            +; CHECK:          Ending address offset:
                            [[FN_END]]<br class="gmail_msg">
                            +<br class="gmail_msg">
                            +; ModuleID = 'm.m'<br class="gmail_msg">
                            +source_filename = "m.m"<br
                              class="gmail_msg">
                            +target datalayout =
                            "e-m:o-i64:64-i128:128-n32:64-S128"<br
                              class="gmail_msg">
                            +target triple = "arm64-apple-ios"<br
                              class="gmail_msg">
                            +<br class="gmail_msg">
                            +%0 = type opaque<br class="gmail_msg">
                            +%struct._class_t = type {
                            %struct._class_t*, %struct._class_t*,
                            %struct._objc_cache*, i8* (i8*, i8*)**,
                            %struct._class_ro_t* }<br class="gmail_msg">
                            +%struct._objc_cache = type opaque<br
                              class="gmail_msg">
                            +%struct._class_ro_t = type { i32, i32, i32,
                            i8*, i8*, %struct.__method_list_t*,
                            %struct._objc_protocol_list*,
                            %struct._ivar_list_t*, i8*,
                            %struct._prop_list_t* }<br class="gmail_msg">
                            +%struct.__method_list_t = type { i32, i32,
                            [0 x %struct._objc_method] }<br
                              class="gmail_msg">
                            +%struct._objc_method = type { i8*, i8*, i8*
                            }<br class="gmail_msg">
                            +%struct._objc_protocol_list = type { i64,
                            [0 x %struct._protocol_t*] }<br
                              class="gmail_msg">
                            +%struct._protocol_t = type { i8*, i8*,
                            %struct._objc_protocol_list*,
                            %struct.__method_list_t*,
                            %struct.__method_list_t*,
                            %struct.__method_list_t*,
                            %struct.__method_list_t*,
                            %struct._prop_list_t*, i32, i32, i8**, i8*,
                            %struct._prop_list_t* }<br class="gmail_msg">
                            +%struct._ivar_list_t = type { i32, i32, [0
                            x %struct._ivar_t] }<br class="gmail_msg">
                            +%struct._ivar_t = type { i32*, i8*, i8*,
                            i32, i32 }<br class="gmail_msg">
                            +%struct._prop_list_t = type { i32, i32, [0
                            x %struct._prop_t] }<br class="gmail_msg">
                            +%struct._prop_t = type { i8*, i8* }<br
                              class="gmail_msg">
                            +%struct.CGSize = type { double, double }<br
                              class="gmail_msg">
                            +<br class="gmail_msg">
                            +@"OBJC_CLASS_$_Object" = external global
                            %struct._class_t<br class="gmail_msg">
                            +@"OBJC_CLASSLIST_REFERENCES_$_" = private
                            global %struct._class_t*
                            @"OBJC_CLASS_$_Object", section "__DATA,
                            __objc_classrefs, regular, no_dead_strip",
                            align 8<br class="gmail_msg">
                            +@OBJC_METH_VAR_NAME_ = private unnamed_addr
                            constant [6 x i8] c"alloc\00", section
                            "__TEXT,__objc_methname,cstring_literals",
                            align 1<br class="gmail_msg">
                            +@OBJC_SELECTOR_REFERENCES_ = private
                            externally_initialized global i8*
                            getelementptr inbounds ([6 x i8], [6 x i8]*
                            @OBJC_METH_VAR_NAME_, i32 0, i32 0), section
                            "__DATA, __objc_selrefs, literal_pointers,
                            no_dead_strip", align 8<br class="gmail_msg">
                            +@OBJC_METH_VAR_NAME_.1 = private
                            unnamed_addr constant [14 x i8]
                            c"initWithSize:\00", section
                            "__TEXT,__objc_methname,cstring_literals",
                            align 1<br class="gmail_msg">
                            +@OBJC_SELECTOR_REFERENCES_.2 = private
                            externally_initialized global i8*
                            getelementptr inbounds ([14 x i8], [14 x
                            i8]* @OBJC_METH_VAR_NAME_.1, i32 0, i32 0),
                            section "__DATA, __objc_selrefs,
                            literal_pointers, no_dead_strip", align 8<br
                              class="gmail_msg">
                            +@OBJC_METH_VAR_NAME_.3 = private
                            unnamed_addr constant [9 x i8]
                            c"aMessage\00", section
                            "__TEXT,__objc_methname,cstring_literals",
                            align 1<br class="gmail_msg">
                            +@OBJC_SELECTOR_REFERENCES_.4 = private
                            externally_initialized global i8*
                            getelementptr inbounds ([9 x i8], [9 x i8]*
                            @OBJC_METH_VAR_NAME_.3, i32 0, i32 0),
                            section "__DATA, __objc_selrefs,
                            literal_pointers, no_dead_strip", align 8<br
                              class="gmail_msg">
                            +@_objc_empty_cache = external global
                            %struct._objc_cache<br class="gmail_msg">
                            +@"OBJC_CLASS_$_MyObject" = global
                            %struct._class_t { %struct._class_t*
                            @"OBJC_METACLASS_$_MyObject",
                            %struct._class_t* null, %struct._objc_cache*
                            @_objc_empty_cache, i8* (i8*, i8*)** null,
                            %struct._class_ro_t*
                            @"\01l_OBJC_CLASS_RO_$_MyObject" }, section
                            "__DATA, __objc_data", align 8<br
                              class="gmail_msg">
                            +@"OBJC_METACLASS_$_MyObject" = global
                            %struct._class_t { %struct._class_t*
                            @"OBJC_METACLASS_$_MyObject",
                            %struct._class_t* @"OBJC_CLASS_$_MyObject",
                            %struct._objc_cache* @_objc_empty_cache, i8*
                            (i8*, i8*)** null, %struct._class_ro_t*
                            @"\01l_OBJC_METACLASS_RO_$_MyObject" },
                            section "__DATA, __objc_data", align 8<br
                              class="gmail_msg">
                            +@OBJC_CLASS_NAME_ = private unnamed_addr
                            constant [9 x i8] c"MyObject\00", section
                            "__TEXT,__objc_classname,cstring_literals",
                            align 1<br class="gmail_msg">
                            +@OBJC_METH_VAR_NAME_.5 = private
                            unnamed_addr constant [12 x i8]
                            c"doWithSize:\00", section
                            "__TEXT,__objc_methname,cstring_literals",
                            align 1<br class="gmail_msg">
                            +@OBJC_METH_VAR_TYPE_ = private unnamed_addr
                            constant [21 x i8]
                            c"@32@0:8{CGSize=dd}16\00", section
                            "__TEXT,__objc_methtype,cstring_literals",
                            align 1<br class="gmail_msg">
                            +@"\01l_OBJC_$_CLASS_METHODS_MyObject" =
                            private global { i32, i32, [1 x
                            %struct._objc_method] } { i32 24, i32 1, [1
                            x %struct._objc_method]
                            [%struct._objc_method { i8* getelementptr
                            inbounds ([12 x i8], [12 x i8]*
                            @OBJC_METH_VAR_NAME_.5, i32 0, i32 0), i8*
                            getelementptr inbounds ([21 x i8], [21 x
                            i8]* @OBJC_METH_VAR_TYPE_, i32 0, i32 0),
                            i8* bitcast (i8* (i8*, i8*, [2 x double])*
                            @"\01+[MyObject doWithSize:]" to i8*) }] },
                            section "__DATA, __objc_const", align 8<br
                              class="gmail_msg">
                            +@"\01l_OBJC_METACLASS_RO_$_MyObject" =
                            private global %struct._class_ro_t { i32
                            131, i32 40, i32 40, i8* null, i8*
                            getelementptr inbounds ([9 x i8], [9 x i8]*
                            @OBJC_CLASS_NAME_, i32 0, i32 0),
                            %struct.__method_list_t* bitcast ({ i32,
                            i32, [1 x %struct._objc_method] }*
                            @"\01l_OBJC_$_CLASS_METHODS_MyObject" to
                            %struct.__method_list_t*),
                            %struct._objc_protocol_list* null,
                            %struct._ivar_list_t* null, i8* null,
                            %struct._prop_list_t* null }, section
                            "__DATA, __objc_const", align 8<br
                              class="gmail_msg">
                            +@"\01l_OBJC_CLASS_RO_$_MyObject" = private
                            global %struct._class_ro_t { i32 130, i32 0,
                            i32 0, i8* null, i8* getelementptr inbounds
                            ([9 x i8], [9 x i8]* @OBJC_CLASS_NAME_, i32
                            0, i32 0), %struct.__method_list_t* null,
                            %struct._objc_protocol_list* null,
                            %struct._ivar_list_t* null, i8* null,
                            %struct._prop_list_t* null }, section
                            "__DATA, __objc_const", align 8<br
                              class="gmail_msg">
                            +@"OBJC_LABEL_CLASS_$" = private global [1 x
                            i8*] [i8* bitcast (%struct._class_t*
                            @"OBJC_CLASS_$_MyObject" to i8*)], section
                            "__DATA, __objc_classlist, regular,
                            no_dead_strip", align 8<br class="gmail_msg">
                            +@llvm.compiler.used = appending global [12
                            x i8*] [i8* bitcast (%struct._class_t**
                            @"OBJC_CLASSLIST_REFERENCES_$_" to i8*), i8*
                            getelementptr inbounds ([6 x i8], [6 x i8]*
                            @OBJC_METH_VAR_NAME_, i32 0, i32 0), i8*
                            bitcast (i8** @OBJC_SELECTOR_REFERENCES_ to
                            i8*), i8* getelementptr inbounds ([14 x i8],
                            [14 x i8]* @OBJC_METH_VAR_NAME_.1, i32 0,
                            i32 0), i8* bitcast (i8**
                            @OBJC_SELECTOR_REFERENCES_.2 to i8*), i8*
                            getelementptr inbounds ([9 x i8], [9 x i8]*
                            @OBJC_METH_VAR_NAME_.3, i32 0, i32 0), i8*
                            bitcast (i8** @OBJC_SELECTOR_REFERENCES_.4
                            to i8*), i8* getelementptr inbounds ([9 x
                            i8], [9 x i8]* @OBJC_CLASS_NAME_, i32 0, i32
                            0), i8* getelementptr inbounds ([12 x i8],
                            [12 x i8]* @OBJC_METH_VAR_NAME_.5, i32 0,
                            i32 0), i8* getelementptr inbounds ([21 x
                            i8], [21 x i8]* @OBJC_METH_VAR_TYPE_, i32 0,
                            i32 0), i8* bitcast ({ i32, i32, [1 x
                            %struct._objc_method] }*
                            @"\01l_OBJC_$_CLASS_METHODS_MyObject" to
                            i8*), i8* bitcast ([1 x i8*]*
                            @"OBJC_LABEL_CLASS_$" to i8*)], section
                            "llvm.metadata"<br class="gmail_msg">
                            +@llvm.global_ctors = appending global [1 x
                            { i32, void ()*, i8* }] [{ i32, void ()*,
                            i8* } { i32 1, void ()* @asan.module_ctor,
                            i8* null }]<br class="gmail_msg">
                            +@__asan_shadow_memory_dynamic_address =
                            external global i64<br class="gmail_msg">
                            +@__asan_gen_ = private unnamed_addr
                            constant [34 x i8] c"2 32 16 9 imageSize 64
                            8 6 object\00", align 1<br class="gmail_msg">
                            +<br class="gmail_msg">
                            +; Function Attrs: noinline sanitize_address
                            ssp uwtable<br class="gmail_msg">
                            +define internal i8* @"\01+[MyObject
                            doWithSize:]"(i8* %self, i8* %_cmd, [2 x
                            double] %imageSize.coerce) #0 !dbg !14 {<br
                              class="gmail_msg">
                            +entry:<br class="gmail_msg">
                            +  %0 = load i64, i64*
                            @__asan_shadow_memory_dynamic_address<br
                              class="gmail_msg">
                            +  %self.addr = alloca i8*, align 8<br
                              class="gmail_msg">
                            +  %_cmd.addr = alloca i8*, align 8<br
                              class="gmail_msg">
                            +  %MyAlloca = alloca [96 x i8], align 32,
                            !dbg !35<br class="gmail_msg">
                            +  %1 = ptrtoint [96 x i8]* %MyAlloca to
                            i64, !dbg !35<br class="gmail_msg">
                            +  %2 = add i64 %1, 32, !dbg !35<br
                              class="gmail_msg">
                            +  %3 = inttoptr i64 %2 to %struct.CGSize*,
                            !dbg !35<br class="gmail_msg">
                            +  %4 = add i64 %1, 64, !dbg !35<br
                              class="gmail_msg">
                            +  %5 = inttoptr i64 %4 to %0**, !dbg !35<br
                              class="gmail_msg">
                            +  %6 = inttoptr i64 %1 to i64*, !dbg !35<br
                              class="gmail_msg">
                            +  store i64 1102416563, i64* %6, !dbg !35<br
                              class="gmail_msg">
                            +  %7 = add i64 %1, 8, !dbg !35<br
                              class="gmail_msg">
                            +  %8 = inttoptr i64 %7 to i64*, !dbg !35<br
                              class="gmail_msg">
                            +  store i64 ptrtoint ([34 x i8]*
                            @__asan_gen_ to i64), i64* %8, !dbg !35<br
                              class="gmail_msg">
                            +  %9 = add i64 %1, 16, !dbg !35<br
                              class="gmail_msg">
                            +  %10 = inttoptr i64 %9 to i64*, !dbg !35<br
                              class="gmail_msg">
                            +  store i64 ptrtoint (i8* (i8*, i8*, [2 x
                            double])* @"\01+[MyObject doWithSize:]" to
                            i64), i64* %10, !dbg !35<br
                              class="gmail_msg">
                            +  %11 = lshr i64 %1, 3, !dbg !35<br
                              class="gmail_msg">
                            +  %12 = add i64 %11, %0, !dbg !35<br
                              class="gmail_msg">
                            +  %13 = add i64 %12, 0, !dbg !35<br
                              class="gmail_msg">
                            +  %14 = inttoptr i64 %13 to i64*, !dbg !35<br
                              class="gmail_msg">
                            +  store i64 -940689368107847183, i64* %14,
                            align 1, !dbg !35<br class="gmail_msg">
                            +  %15 = add i64 %12, 9, !dbg !35<br
                              class="gmail_msg">
                            +  %16 = inttoptr i64 %15 to i16*, !dbg !35<br
                              class="gmail_msg">
                            +  store i16 -3085, i16* %16, align 1, !dbg
                            !35<br class="gmail_msg">
                            +  %17 = add i64 %12, 11, !dbg !35<br
                              class="gmail_msg">
                            +  %18 = inttoptr i64 %17 to i8*, !dbg !35<br
                              class="gmail_msg">
                            +  store i8 -13, i8* %18, align 1, !dbg !35<br
                              class="gmail_msg">
                            +  call void @llvm.dbg.declare(metadata
                            %struct.CGSize* %3, metadata !36, metadata
                            !37), !dbg !38<br class="gmail_msg">
                            +  call void @llvm.dbg.declare(metadata %0**
                            %5, metadata !39, metadata !37), !dbg !45<br
                              class="gmail_msg">
                            +  %19 = bitcast %struct.CGSize* %3 to [2 x
                            double]*<br class="gmail_msg">
                            +  %20 = ptrtoint [2 x double]* %19 to i64<br
                              class="gmail_msg">
                            +  %21 = lshr i64 %20, 3<br
                              class="gmail_msg">
                            +  %22 = add i64 %21, %0<br
                              class="gmail_msg">
                            +  %23 = inttoptr i64 %22 to i16*<br
                              class="gmail_msg">
                            +  %24 = load i16, i16* %23<br
                              class="gmail_msg">
                            +  %25 = icmp ne i16 %24, 0<br
                              class="gmail_msg">
                            +  br i1 %25, label %26, label %27<br
                              class="gmail_msg">
                            +<br class="gmail_msg">
                            +; <label>:26:                       
                                         ; preds = %entry<br
                              class="gmail_msg">
                            +  call void @__asan_report_store16(i64 %20)<br
                              class="gmail_msg">
                            +  call void asm sideeffect "", ""()<br
                              class="gmail_msg">
                            +  unreachable<br class="gmail_msg">
                            +<br class="gmail_msg">
                            +; <label>:27:                       
                                         ; preds = %entry<br
                              class="gmail_msg">
                            +  store [2 x double] %imageSize.coerce, [2
                            x double]* %19, align 8<br class="gmail_msg">
                            +  store i8* %self, i8** %self.addr, align 8<br
                              class="gmail_msg">
                            +  call void @llvm.dbg.declare(metadata i8**
                            %self.addr, metadata !46, metadata !48),
                            !dbg !49<br class="gmail_msg">
                            +  store i8* %_cmd, i8** %_cmd.addr, align 8<br
                              class="gmail_msg">
                            +  call void @llvm.dbg.declare(metadata i8**
                            %_cmd.addr, metadata !50, metadata !48),
                            !dbg !49<br class="gmail_msg">
                            +  %28 = load %struct._class_t*,
                            %struct._class_t**
                            @"OBJC_CLASSLIST_REFERENCES_$_", align 8,
                            !dbg !52<br class="gmail_msg">
                            +  %29 = add i64 lshr (i64 ptrtoint (i8**
                            @OBJC_SELECTOR_REFERENCES_ to i64), i64 3),
                            %0, !dbg !52<br class="gmail_msg">
                            +  %30 = inttoptr i64 %29 to i8*, !dbg !52<br
                              class="gmail_msg">
                            +  %31 = load i8, i8* %30, !dbg !52<br
                              class="gmail_msg">
                            +  %32 = icmp ne i8 %31, 0, !dbg !52<br
                              class="gmail_msg">
                            +  br i1 %32, label %33, label %34, !dbg !52<br
                              class="gmail_msg">
                            +<br class="gmail_msg">
                            +; <label>:33:                       
                                         ; preds = %27<br
                              class="gmail_msg">
                            +  call void @__asan_report_load8(i64
                            ptrtoint (i8** @OBJC_SELECTOR_REFERENCES_ to
                            i64)), !dbg !52<br class="gmail_msg">
                            +  call void asm sideeffect "", ""(), !dbg
                            !52<br class="gmail_msg">
                            +  unreachable, !dbg !52<br
                              class="gmail_msg">
                            +<br class="gmail_msg">
                            +; <label>:34:                       
                                         ; preds = %27<br
                              class="gmail_msg">
                            +  %35 = load i8*, i8**
                            @OBJC_SELECTOR_REFERENCES_, align 8, !dbg
                            !52, !invariant.load !2<br class="gmail_msg">
                            +  %36 = bitcast %struct._class_t* %28 to
                            i8*, !dbg !52<br class="gmail_msg">
                            +  %call = call i8* bitcast (i8* (i8*, i8*,
                            ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8*
                            %36, i8* %35), !dbg !52<br class="gmail_msg">
                            +  %37 = bitcast i8* %call to %0*, !dbg !52<br
                              class="gmail_msg">
                            +  %38 = add i64 lshr (i64 ptrtoint (i8**
                            @OBJC_SELECTOR_REFERENCES_.2 to i64), i64
                            3), %0, !dbg !53<br class="gmail_msg">
                            +  %39 = inttoptr i64 %38 to i8*, !dbg !53<br
                              class="gmail_msg">
                            +  %40 = load i8, i8* %39, !dbg !53<br
                              class="gmail_msg">
                            +  %41 = icmp ne i8 %40, 0, !dbg !53<br
                              class="gmail_msg">
                            +  br i1 %41, label %42, label %43, !dbg !53<br
                              class="gmail_msg">
                            +<br class="gmail_msg">
                            +; <label>:42:                       
                                         ; preds = %34<br
                              class="gmail_msg">
                            +  call void @__asan_report_load8(i64
                            ptrtoint (i8** @OBJC_SELECTOR_REFERENCES_.2
                            to i64)), !dbg !53<br class="gmail_msg">
                            +  call void asm sideeffect "", ""(), !dbg
                            !53<br class="gmail_msg">
                            +  unreachable, !dbg !53<br
                              class="gmail_msg">
                            +<br class="gmail_msg">
                            +; <label>:43:                       
                                         ; preds = %34<br
                              class="gmail_msg">
                            +  %44 = load i8*, i8**
                            @OBJC_SELECTOR_REFERENCES_.2, align 8, !dbg
                            !53, !invariant.load !2<br class="gmail_msg">
                            +  %45 = bitcast %0* %37 to i8*, !dbg !53<br
                              class="gmail_msg">
                            +  %46 = bitcast %struct.CGSize* %3 to [2 x
                            double]*, !dbg !53<br class="gmail_msg">
                            +  %47 = ptrtoint [2 x double]* %46 to i64,
                            !dbg !53<br class="gmail_msg">
                            +  %48 = lshr i64 %47, 3, !dbg !53<br
                              class="gmail_msg">
                            +  %49 = add i64 %48, %0, !dbg !53<br
                              class="gmail_msg">
                            +  %50 = inttoptr i64 %49 to i16*, !dbg !53<br
                              class="gmail_msg">
                            +  %51 = load i16, i16* %50, !dbg !53<br
                              class="gmail_msg">
                            +  %52 = icmp ne i16 %51, 0, !dbg !53<br
                              class="gmail_msg">
                            +  br i1 %52, label %53, label %54, !dbg !53<br
                              class="gmail_msg">
                            +<br class="gmail_msg">
                            +; <label>:53:                       
                                         ; preds = %43<br
                              class="gmail_msg">
                            +  call void @__asan_report_load16(i64 %47),
                            !dbg !53<br class="gmail_msg">
                            +  call void asm sideeffect "", ""(), !dbg
                            !53<br class="gmail_msg">
                            +  unreachable, !dbg !53<br
                              class="gmail_msg">
                            +<br class="gmail_msg">
                            +; <label>:54:                       
                                         ; preds = %43<br
                              class="gmail_msg">
                            +  %55 = load [2 x double], [2 x double]*
                            %46, align 8, !dbg !53<br class="gmail_msg">
                            +  %call1 = call i8* bitcast (i8* (i8*, i8*,
                            ...)* @objc_msgSend to i8* (i8*, i8*, [2 x
                            double])*)(i8* %45, i8* %44, [2 x double]
                            %55), !dbg !53<br class="gmail_msg">
                            +  %56 = bitcast i8* %call1 to %0*, !dbg !53<br
                              class="gmail_msg">
                            +  %57 = ptrtoint %0** %5 to i64, !dbg !45<br
                              class="gmail_msg">
                            +  %58 = lshr i64 %57, 3, !dbg !45<br
                              class="gmail_msg">
                            +  %59 = add i64 %58, %0, !dbg !45<br
                              class="gmail_msg">
                            +  %60 = inttoptr i64 %59 to i8*, !dbg !45<br
                              class="gmail_msg">
                            +  %61 = load i8, i8* %60, !dbg !45<br
                              class="gmail_msg">
                            +  %62 = icmp ne i8 %61, 0, !dbg !45<br
                              class="gmail_msg">
                            +  br i1 %62, label %63, label %64, !dbg !45<br
                              class="gmail_msg">
                            +<br class="gmail_msg">
                            +; <label>:63:                       
                                         ; preds = %54<br
                              class="gmail_msg">
                            +  call void @__asan_report_store8(i64 %57),
                            !dbg !45<br class="gmail_msg">
                            +  call void asm sideeffect "", ""(), !dbg
                            !45<br class="gmail_msg">
                            +  unreachable, !dbg !45<br
                              class="gmail_msg">
                            +<br class="gmail_msg">
                            +; <label>:64:                       
                                         ; preds = %54<br
                              class="gmail_msg">
                            +  store %0* %56, %0** %5, align 8, !dbg !45<br
                              class="gmail_msg">
                            +  %65 = load %0*, %0** %5, align 8, !dbg
                            !54<br class="gmail_msg">
                            +  %66 = add i64 lshr (i64 ptrtoint (i8**
                            @OBJC_SELECTOR_REFERENCES_.4 to i64), i64
                            3), %0, !dbg !55<br class="gmail_msg">
                            +  %67 = inttoptr i64 %66 to i8*, !dbg !55<br
                              class="gmail_msg">
                            +  %68 = load i8, i8* %67, !dbg !55<br
                              class="gmail_msg">
                            +  %69 = icmp ne i8 %68, 0, !dbg !55<br
                              class="gmail_msg">
                            +  br i1 %69, label %70, label %71, !dbg !55<br
                              class="gmail_msg">
                            +<br class="gmail_msg">
                            +; <label>:70:                       
                                         ; preds = %64<br
                              class="gmail_msg">
                            +  call void @__asan_report_load8(i64
                            ptrtoint (i8** @OBJC_SELECTOR_REFERENCES_.4
                            to i64)), !dbg !55<br class="gmail_msg">
                            +  call void asm sideeffect "", ""(), !dbg
                            !55<br class="gmail_msg">
                            +  unreachable, !dbg !55<br
                              class="gmail_msg">
                            +<br class="gmail_msg">
                            +; <label>:71:                       
                                         ; preds = %64<br
                              class="gmail_msg">
                            +  %72 = load i8*, i8**
                            @OBJC_SELECTOR_REFERENCES_.4, align 8, !dbg
                            !55, !invariant.load !2<br class="gmail_msg">
                            +  %73 = bitcast %0* %65 to i8*, !dbg !55<br
                              class="gmail_msg">
                            +  %call2 = call i8* bitcast (i8* (i8*, i8*,
                            ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8*
                            %73, i8* %72), !dbg !55<br class="gmail_msg">
                            +  call void asm sideeffect "mov\09fp,
                            fp\09\09# marker for
                            objc_retainAutoreleaseReturnValue", ""(),
                            !dbg !55<br class="gmail_msg">
                            +  %74 = call i8*
                            @objc_retainAutoreleasedReturnValue(i8*
                            %call2) #3, !dbg !55<br class="gmail_msg">
                            +  %75 = bitcast %0** %5 to i8**, !dbg !56<br
                              class="gmail_msg">
                            +  call void @objc_storeStrong(i8** %75, i8*
                            null) #3, !dbg !56<br class="gmail_msg">
                            +  %76 = tail call i8*
                            @objc_autoreleaseReturnValue(i8* %74) #3,
                            !dbg !56<br class="gmail_msg">
                            +  store i64 1172321806, i64* %6, !dbg !56<br
                              class="gmail_msg">
                            +  %77 = add i64 %12, 0, !dbg !56<br
                              class="gmail_msg">
                            +  %78 = inttoptr i64 %77 to i64*, !dbg !56<br
                              class="gmail_msg">
                            +  store i64 0, i64* %78, align 1, !dbg !56<br
                              class="gmail_msg">
                            +  %79 = add i64 %12, 9, !dbg !56<br
                              class="gmail_msg">
                            +  %80 = inttoptr i64 %79 to i16*, !dbg !56<br
                              class="gmail_msg">
                            +  store i16 0, i16* %80, align 1, !dbg !56<br
                              class="gmail_msg">
                            +  %81 = add i64 %12, 11, !dbg !56<br
                              class="gmail_msg">
                            +  %82 = inttoptr i64 %81 to i8*, !dbg !56<br
                              class="gmail_msg">
                            +  store i8 0, i8* %82, align 1, !dbg !56<br
                              class="gmail_msg">
                            +  ret i8* %76, !dbg !56<br
                              class="gmail_msg">
                            +}<br class="gmail_msg">
                            +<br class="gmail_msg">
                            +; Function Attrs: nounwind readnone<br
                              class="gmail_msg">
                            +declare void @llvm.dbg.declare(metadata,
                            metadata, metadata) #1<br class="gmail_msg">
                            +<br class="gmail_msg">
                            +; Function Attrs: nonlazybind<br
                              class="gmail_msg">
                            +declare i8* @objc_msgSend(i8*, i8*, ...) #2<br
                              class="gmail_msg">
                            +<br class="gmail_msg">
                            +declare i8*
                            @objc_retainAutoreleasedReturnValue(i8*
                            returned)<br class="gmail_msg">
                            +<br class="gmail_msg">
                            +declare void @objc_storeStrong(i8**, i8*)<br
                              class="gmail_msg">
                            +<br class="gmail_msg">
                            +declare i8*
                            @objc_autoreleaseReturnValue(i8* returned)<br
                              class="gmail_msg">
                            +<br class="gmail_msg">
                            +define internal void @asan.module_ctor() {<br
                              class="gmail_msg">
                            +  call void @__asan_init()<br
                              class="gmail_msg">
                            +  call void
                            @__asan_version_mismatch_check_v8()<br
                              class="gmail_msg">
                            +  ret void<br class="gmail_msg">
                            +}<br class="gmail_msg">
                            +<br class="gmail_msg">
                            +declare void @__asan_init()<br
                              class="gmail_msg">
                            +<br class="gmail_msg">
                            +declare void
                            @__asan_version_mismatch_check_v8()<br
                              class="gmail_msg">
                            +<br class="gmail_msg">
                            +declare void @__asan_report_load8(i64)<br
                              class="gmail_msg">
                            +<br class="gmail_msg">
                            +declare void @__asan_report_load16(i64)<br
                              class="gmail_msg">
                            +<br class="gmail_msg">
                            +declare void @__asan_report_store8(i64)<br
                              class="gmail_msg">
                            +<br class="gmail_msg">
                            +declare void @__asan_report_store16(i64)<br
                              class="gmail_msg">
                            +<br class="gmail_msg">
                            +attributes #0 = { noinline sanitize_address
                            ssp uwtable }<br class="gmail_msg">
                            +attributes #1 = { nounwind readnone }<br
                              class="gmail_msg">
                            +attributes #2 = { nonlazybind }<br
                              class="gmail_msg">
                            +attributes #3 = { nounwind }<br
                              class="gmail_msg">
                            +<br class="gmail_msg">
                            +!<a moz-do-not-send="true"
                              href="http://llvm.dbg.cu/"
                              rel="noreferrer" class="gmail_msg"
                              target="_blank">llvm.dbg.cu</a> = !{!0}<br
                              class="gmail_msg">
                            +!llvm.module.flags = !{!5, !6, !7, !8, !9,
                            !10, !11, !12}<br class="gmail_msg">
                            +!llvm.ident = !{!13}<br class="gmail_msg">
                            +<br class="gmail_msg">
                            +!0 = distinct !DICompileUnit(language:
                            DW_LANG_ObjC, file: !1, producer: "clang
                            version 5.0.0 (trunk 295779) (llvm/trunk
                            295777)", isOptimized: false,
                            runtimeVersion: 2, emissionKind: FullDebug,
                            enums: !2, retainedTypes: !3)<br
                              class="gmail_msg">
                            +!1 = !DIFile(filename: "m.m", directory:
                            "/")<br class="gmail_msg">
                            +!2 = !{}<br class="gmail_msg">
                            +!3 = !{!4}<br class="gmail_msg">
                            +!4 = !DICompositeType(tag:
                            DW_TAG_structure_type, name: "MyObject",
                            scope: !1, file: !1, line: 15, flags:
                            DIFlagObjcClassComplete, elements: !2,
                            runtimeLang: DW_LANG_ObjC)<br
                              class="gmail_msg">
                            +!5 = !{i32 1, !"Objective-C Version", i32
                            2}<br class="gmail_msg">
                            +!6 = !{i32 1, !"Objective-C Image Info
                            Version", i32 0}<br class="gmail_msg">
                            +!7 = !{i32 1, !"Objective-C Image Info
                            Section", !"__DATA, __objc_imageinfo,
                            regular, no_dead_strip"}<br
                              class="gmail_msg">
                            +!8 = !{i32 4, !"Objective-C Garbage
                            Collection", i32 0}<br class="gmail_msg">
                            +!9 = !{i32 1, !"Objective-C Class
                            Properties", i32 64}<br class="gmail_msg">
                            +!10 = !{i32 2, !"Dwarf Version", i32 2}<br
                              class="gmail_msg">
                            +!11 = !{i32 2, !"Debug Info Version", i32
                            3}<br class="gmail_msg">
                            +!12 = !{i32 1, !"PIC Level", i32 2}<br
                              class="gmail_msg">
                            +!13 = !{!"clang version 5.0.0 (trunk
                            295779) (llvm/trunk 295777)"}<br
                              class="gmail_msg">
                            +!14 = distinct !DISubprogram(name:
                            "+[MyObject doWithSize:]", scope: !1, file:
                            !1, line: 16, type: !15, isLocal: true,
                            isDefinition: true, scopeLine: 16, flags:
                            DIFlagPrototyped, isOptimized: false, unit:
                            !0, variables: !2)<br class="gmail_msg">
                            +!15 = !DISubroutineType(types: !16)<br
                              class="gmail_msg">
                            +!16 = !{!17, !24, !26, !29}<br
                              class="gmail_msg">
                            +!17 = !DIDerivedType(tag: DW_TAG_typedef,
                            name: "id", file: !1, baseType: !18)<br
                              class="gmail_msg">
                            +!18 = !DIDerivedType(tag:
                            DW_TAG_pointer_type, baseType: !19, size:
                            64)<br class="gmail_msg">
                            +!19 = !DICompositeType(tag:
                            DW_TAG_structure_type, name: "objc_object",
                            file: !1, elements: !20)<br
                              class="gmail_msg">
                            +!20 = !{!21}<br class="gmail_msg">
                            +!21 = !DIDerivedType(tag: DW_TAG_member,
                            name: "isa", scope: !19, file: !1, baseType:
                            !22, size: 64)<br class="gmail_msg">
                            +!22 = !DIDerivedType(tag:
                            DW_TAG_pointer_type, baseType: !23, size:
                            64)<br class="gmail_msg">
                            +!23 = !DICompositeType(tag:
                            DW_TAG_structure_type, name: "objc_class",
                            file: !1, flags: DIFlagFwdDecl)<br
                              class="gmail_msg">
                            +!24 = !DIDerivedType(tag:
                            DW_TAG_const_type, baseType: !25, flags:
                            DIFlagArtificial | DIFlagObjectPointer)<br
                              class="gmail_msg">
                            +!25 = !DIDerivedType(tag: DW_TAG_typedef,
                            name: "Class", file: !1, baseType: !22)<br
                              class="gmail_msg">
                            +!26 = !DIDerivedType(tag: DW_TAG_typedef,
                            name: "SEL", file: !1, baseType: !27, flags:
                            DIFlagArtificial)<br class="gmail_msg">
                            +!27 = !DIDerivedType(tag:
                            DW_TAG_pointer_type, baseType: !28, size:
                            64)<br class="gmail_msg">
                            +!28 = !DICompositeType(tag:
                            DW_TAG_structure_type, name:
                            "objc_selector", file: !1, flags:
                            DIFlagFwdDecl)<br class="gmail_msg">
                            +!29 = !DIDerivedType(tag: DW_TAG_typedef,
                            name: "CGSize", file: !1, line: 10,
                            baseType: !30)<br class="gmail_msg">
                            +!30 = distinct !DICompositeType(tag:
                            DW_TAG_structure_type, name: "CGSize", file:
                            !1, line: 6, size: 128, elements: !31)<br
                              class="gmail_msg">
                            +!31 = !{!32, !34}<br class="gmail_msg">
                            +!32 = !DIDerivedType(tag: DW_TAG_member,
                            name: "width", scope: !30, file: !1, line:
                            7, baseType: !33, size: 64)<br
                              class="gmail_msg">
                            +!33 = !DIBasicType(name: "double", size:
                            64, encoding: DW_ATE_float)<br
                              class="gmail_msg">
                            +!34 = !DIDerivedType(tag: DW_TAG_member,
                            name: "height", scope: !30, file: !1, line:
                            8, baseType: !33, size: 64, offset: 64)<br
                              class="gmail_msg">
                            +!35 = !DILocation(line: 16, scope: !14)<br
                              class="gmail_msg">
                            +!36 = !DILocalVariable(name: "imageSize",
                            arg: 3, scope: !14, file: !1, line: 16,
                            type: !29)<br class="gmail_msg">
                            +!37 = !DIExpression(DW_OP_deref)<br
                              class="gmail_msg">
                            +!38 = !DILocation(line: 16, column: 26,
                            scope: !14)<br class="gmail_msg">
                            +!39 = !DILocalVariable(name: "object",
                            scope: !14, file: !1, line: 17, type: !40)<br
                              class="gmail_msg">
                            +!40 = !DIDerivedType(tag:
                            DW_TAG_pointer_type, baseType: !41, size:
                            64)<br class="gmail_msg">
                            +!41 = !DICompositeType(tag:
                            DW_TAG_structure_type, name: "Object",
                            scope: !1, file: !1, line: 11, elements:
                            !42, runtimeLang: DW_LANG_ObjC)<br
                              class="gmail_msg">
                            +!42 = !{!43}<br class="gmail_msg">
                            +!43 = !DIDerivedType(tag:
                            DW_TAG_inheritance, scope: !41, baseType:
                            !44)<br class="gmail_msg">
                            +!44 = !DICompositeType(tag:
                            DW_TAG_structure_type, name: "NSObject",
                            scope: !1, file: !1, line: 3, elements: !2,
                            runtimeLang: DW_LANG_ObjC)<br
                              class="gmail_msg">
                            +!45 = !DILocation(line: 17, column: 11,
                            scope: !14)<br class="gmail_msg">
                            +!46 = !DILocalVariable(name: "self", arg:
                            1, scope: !14, type: !47, flags:
                            DIFlagArtificial | DIFlagObjectPointer)<br
                              class="gmail_msg">
                            +!47 = !DIDerivedType(tag:
                            DW_TAG_const_type, baseType: !25)<br
                              class="gmail_msg">
                            +!48 = !DIExpression()<br class="gmail_msg">
                            +!49 = !DILocation(line: 0, scope: !14)<br
                              class="gmail_msg">
                            +!50 = !DILocalVariable(name: "_cmd", arg:
                            2, scope: !14, type: !51, flags:
                            DIFlagArtificial)<br class="gmail_msg">
                            +!51 = !DIDerivedType(tag: DW_TAG_typedef,
                            name: "SEL", file: !1, baseType: !27)<br
                              class="gmail_msg">
                            +!52 = !DILocation(line: 17, column: 21,
                            scope: !14)<br class="gmail_msg">
                            +!53 = !DILocation(line: 17, column: 20,
                            scope: !14)<br class="gmail_msg">
                            +!54 = !DILocation(line: 18, column: 11,
                            scope: !14)<br class="gmail_msg">
                            +!55 = !DILocation(line: 18, column: 10,
                            scope: !14)<br class="gmail_msg">
                            +!56 = !DILocation(line: 19, column: 1,
                            scope: !14)<br class="gmail_msg">
                            <br class="gmail_msg">
                            <br class="gmail_msg">
_______________________________________________<br class="gmail_msg">
                            llvm-commits mailing list<br
                              class="gmail_msg">
                            <a moz-do-not-send="true"
                              href="mailto:llvm-commits@lists.llvm.org"
                              class="gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a><br
                              class="gmail_msg">
                            <a moz-do-not-send="true"
                              href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits"
                              rel="noreferrer" class="gmail_msg"
                              target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br
                              class="gmail_msg">
                          </blockquote>
                        </div>
                      </div>
                    </div>
                  </blockquote>
                </div>
                <br class="">
                <br class="">
                <fieldset class="mimeAttachmentHeader"></fieldset>
                <br class="">
                <pre class="" wrap="">_______________________________________________
llvm-commits mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a>
</pre>
              </blockquote>
              <br class="">
              <pre class="moz-signature" cols="72">-- 
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory</pre>
            </div>
          </div>
        </blockquote>
      </div>
      <br class="">
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory</pre>
  </body>
</html>