<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Nick +1. <div><br><div><div>On Mar 6, 2014, at 9:21 AM, jahanian <<a href="mailto:fjahanian@apple.com">fjahanian@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">There is functional change.<div>In the test case:</div><div><br></div><div><div style="margin: 0px; font-size: 11px; font-family: Menlo;">@interface NSObject @end</div><div style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br></div><div style="margin: 0px; font-size: 11px; font-family: Menlo;">@protocol P0;</div><div style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br></div><div style="margin: 0px; font-size: 11px; font-family: Menlo;">@interface A : NSObject <P0></div><div style="margin: 0px; font-size: 11px; font-family: Menlo;">+(Class) getClass;</div><div style="margin: 0px; font-size: 11px; font-family: Menlo;">@end</div><div style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br></div><div style="margin: 0px; font-size: 11px; font-family: Menlo;">@implementation A</div><div style="margin: 0px; font-size: 11px; font-family: Menlo;">+(Class) getClass { return self; }</div><div style="margin: 0px; font-size: 11px; font-family: Menlo;">@end</div><div style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br></div><div style="margin: 0px; font-size: 11px; font-family: Menlo;">int main() {</div><div style="margin: 0px; font-size: 11px; font-family: Menlo;">  Protocol *P0 = @protocol(P0);</div><div style="margin: 0px; font-size: 11px; font-family: Menlo;">  return 0;</div><div style="margin: 0px; font-size: 11px; font-family: Menlo;">}</div><div style="margin: 0px; font-size: 11px; font-family: Menlo;"><br></div><div style="margin: 0px; font-size: 11px; font-family: Menlo;">Before the change:</div><div style="margin: 0px; font-size: 11px; font-family: Menlo;"><div style="margin: 0px;">nm -nm t.o | grep PROTOCOL</div><div style="margin: 0px;">0000000000000078 (__DATA,__objc_const) non-external l_OBJC_CLASS_PROTOCOLS_$_A</div><div style="margin: 0px;">0000000000000120 (__DATA,__datacoal_nt) weak private external [no dead strip] l_OBJC_PROTOCOL_$_P0</div><div style="margin: 0px;">00000000000001c0 (__DATA,__objc_protolist) weak private external [no dead strip] l_OBJC_LABEL_PROTOCOL_$_P0</div><div style="margin: 0px;">00000000000001c8 (__DATA,__objc_protorefs) weak private external [no dead strip] l_OBJC_PROTOCOL_REFERENCE_$_P0</div><div style="margin: 0px;"><br></div><div style="margin: 0px;">With current TOT clang:</div><div style="margin: 0px;"><br></div><div style="margin: 0px;"><div style="margin: 0px;">nm -nm t.o | grep PROTOCOL</div><div style="margin: 0px;">0000000000000078 (__DATA,__objc_const) non-external l_OBJC_CLASS_PROTOCOLS_$_A</div><div style="margin: 0px;">0000000000000120 (__DATA,__datacoal_nt) non-external l_OBJC_PROTOCOL_$_P0</div><div style="margin: 0px;">00000000000001c0 (__DATA,__objc_protolist) non-external l_OBJC_LABEL_PROTOCOL_$_P0</div><div style="margin: 0px;">00000000000001c8 (__DATA,__objc_protorefs) non-external l_OBJC_PROTOCOL_REFERENCE_$_P0</div><div style="margin: 0px;"><br></div><div style="margin: 0px;">- Fariborz</div><div style="margin: 0px;"><br></div></div></div><div><div>On Mar 6, 2014, at 8:42 AM, Rafael Espíndola <<a href="mailto:rafael.espindola@gmail.com">rafael.espindola@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><blockquote type="cite">This is changing the linkage. Can you add comment why changing this will not change visibility of the symbol.<br>Also, please add a test for this change.<br></blockquote><br>Sorry, I should have been more clear in the commit message. There is<br>no functionality change. We just set the linkage at construction time<br>instead of setting it afterwards with setLinkage.<br><br>Cheers,<br>Rafael<br></blockquote></div><br></div></div>_______________________________________________<br>cfe-commits mailing list<br><a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits<br></blockquote></div><br></div></body></html>