[cfe-dev] patch: add friend information for class types and access modifiers for methods to debug info

Devang Patel devang.patel at gmail.com
Mon Aug 23 16:15:50 PDT 2010


Hi,

I was not on vacation hence delay in response.

+
+  void CollectCXXFriends(const CXXRecordDecl *Decl,
+                       llvm::DIFile F,
+                       llvm::SmallVectorImpl<llvm::DIDescriptor> &EltTys,
+                       llvm::DICompositeType &RecordTy);
+

There is no need to pass DICompositeType by reference. Just pass it by
value.

+        llvm::DIType t=getOrCreateType(tsi->getType(),Unit);

Please use 'Ty' instead of 't' for local variable name here, add space
around '=' and add space before Unit.

 llvm::DIType CGDebugInfo::CreateType(const VectorType *Ty,
-     llvm::DIFile Unit) {
+                     llvm::DIFile Unit) {

Watch out. I see tabs at few places!

I am not able to apply patch cleanly against mainline svn sources. Please
refresh the patch and add a test case.
Thanks for working on this.
-
Devang
On Mon, Aug 23, 2010 at 2:21 AM, Alexander Herz <alexander.herz at mytum.de>wrote:

>  Any update on whether the corrected version of the patch will be accepted?
>
> Thx.
>
> Alex
>
> On 08/12/2010 07:21 PM, Devang Patel wrote:
>
> Hi Alex,
>
> 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...
>
>
> -  // Static methods do not need "this" pointer argument.
> -  if (Method->isStatic())
> -    return FnTy;
>
>
> Why are you removing this check ? All the changes
> to getOrCreateMethodType() function are unnecessary and not related to this
> patch.
>
>
>
>  +/// CollectCXXFriends - A helper function to collect debug info for
> +/// C++ base classes. This is used while creating debug info entry for
> +/// a Record.
> +void CGDebugInfo::
> +CollectCXXFriends(const CXXRecordDecl *RD, llvm::DIFile Unit,
> +                llvm::SmallVectorImpl<llvm::DIDescriptor> &EltTys,
> +                llvm::DICompositeType &RecordTy) {
> +
> +  for (CXXRecordDecl::friend_iterator BI =  RD->friend_begin(),
> +         BE = RD->friend_end(); BI != BE; ++BI) {
> +    unsigned BFlags = 0;
>
>
>  This BFlags is never assigned any other value. Intentional ?
>
>  llvm diffs looks fine.
> Thanks for working on this.
> -
> Devang
>
>
>


-- 
-
Devang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20100823/f5b8beb0/attachment.html>


More information about the cfe-dev mailing list