[PATCH] Fixed debug info generation for function static variables, typedef, and records

Aboud, Amjad amjad.aboud at intel.com
Tue Jun 30 02:57:04 PDT 2015


Hi David,

The reason I resolve the context for the retained type while I do not for the global variable, is because the “getScope” of the DIType returns a DIScopeRef, while the “getScope” of the DIGlobalVariable returns a DIScope.
I have no idea what are the reasons for this difference, but if we decide to unify the return value of the getScope, it is a change for another patch.

I will do the changes you suggested in DwarfCompileUnit and upload a new version.

Regards,
Amjad

From: David Blaikie [mailto:dblaikie at gmail.com]
Sent: Monday, June 29, 2015 19:45
To: reviews+D9760+public+57feba0fe3280700 at reviews.llvm.org
Cc: Aboud, Amjad; Eric Christopher; Alexey Bataev; Robinson, Paul; llvm cfe
Subject: Re: [PATCH] Fixed debug info generation for function static variables, typedef, and records

Do you need to resolve the Context in the retained types iteration? If it's a lexical block it shouldn't ever be a scope ref, I think? Not sure.

(mostly I'm just concerned aobut the inconsistency between that case and the global variable case above)

In DwarfCompileUnit - perhaps:

  auto LocalDeclNodeRangeForScope = DD->findLocalDeclNodesForScope(DS);

could be changed to:

  iterator_range<LocalDeclMap::const_iterator> LocalDeclNodeRangeForScope;
  if (!includeMinimalInlineScopes())
    LocalDeclNodeRangeForScope = DD->findLocalDeclNodesForScope(DS);

Then you can drop the includeMinimalInlineScopes() condition from the following if and the if around the for loop furtehr down, I think? (with the caveat that I'm not sure if iterator_range is guaranteed (or can be guaranteed) to produce an empty range - not sure if two default constructed iterators are guaranteed/meant to be equal to each other - could check the spec, etc)

- David

On Mon, Jun 29, 2015 at 12:18 AM, Amjad Aboud <amjad.aboud at intel.com<mailto:amjad.aboud at intel.com>> wrote:
Updated the LLVM version to 240902 (close to top of trunk preparing for commit).


http://reviews.llvm.org/D9760

Files:
  lib/CodeGen/CGDebugInfo.cpp
  lib/CodeGen/CGDebugInfo.h
  lib/CodeGen/CGDecl.cpp
  test/CodeGenCXX/debug-info-lb-class.cpp
  test/CodeGenCXX/debug-info-lb-static.cpp
  test/CodeGenCXX/debug-info-lb-static2.cpp
  test/CodeGenCXX/debug-info-lb-typedef.cpp

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/

---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150630/0a05f9ae/attachment.html>


More information about the cfe-commits mailing list