[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