Hi Alex,<br><br>I'll apply these patches once following issues are resolved. I see few tabs sneaked into diffs. clang and llvm code is tabs free. Few other comments...<br><br><br><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;">
-  // Static methods do not need "this" pointer argument.<br>-  if (Method->isStatic())<br>-    return FnTy;</blockquote><br>Why are you removing this check ? All the changes to getOrCreateMethodType() function are unnecessary and not related to this patch.<div>
<br><br> <br></div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"><div>+/// CollectCXXFriends - A helper function to collect debug info for</div><div>+/// C++ base classes. This is used while creating debug info entry for </div>
<div>+/// a Record.</div><div>+void CGDebugInfo::</div><div>+CollectCXXFriends(const CXXRecordDecl *RD, llvm::DIFile Unit,</div><div>+                llvm::SmallVectorImpl<llvm::DIDescriptor> &EltTys,</div><div>
+                llvm::DICompositeType &RecordTy) {</div><div>+</div><div>+  for (CXXRecordDecl::friend_iterator BI =  RD->friend_begin(),</div><div>+         BE = RD->friend_end(); BI != BE; ++BI) {</div><div>+    unsigned BFlags = 0;</div>
</blockquote><div><br></div><div>This BFlags is never assigned any other value. Intentional ?</div><div><br></div><div>llvm diffs looks fine.</div><div>Thanks for working on this.</div><div>-</div><div>Devang</div>