[dragonegg] r186952 - The debug info verifier requires a non-empty name here. Pacify it.
David Blaikie
dblaikie at gmail.com
Tue Jul 23 10:24:07 PDT 2013
On Tue, Jul 23, 2013 at 10:20 AM, Duncan Sands <baldrick at free.fr> wrote:
> Hi David,
>
>
> On 23/07/13 19:01, David Blaikie wrote:
>>
>> On Tue, Jul 23, 2013 at 9:08 AM, Duncan Sands <baldrick at free.fr> wrote:
>>>
>>> Author: baldrick
>>> Date: Tue Jul 23 11:07:59 2013
>>> New Revision: 186952
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=186952&view=rev
>>> Log:
>>> The debug info verifier requires a non-empty name here. Pacify it.
>>
>>
>> If such debug info really doesn't need a name (I haven't looked at the
>> code further to see which entity this code is for - a global variable,
>> I guess) & we can/do support that (a test case would be good) we
>> should just fix the verification not to complain about such a valid
>> construct.
>
>
> thanks for taking an interest.
>
> It's like this: dragonegg produces debug info for this global variable
> because
> it produces debug info for all global variables, not because I think it will
> enhance someone's debugging experience. However it seems pretty reasonable
> to
> me that it should be possible to produce natural debug info for any global
> variable. In this case natural means without a name, since this variable is
> really anonymous. In the original source code it is the number 77, now sunk
> into a global constant so it can have its address taken. Still, it exists.
>
> So my view, taken from 1000 miles up and from the planet of those who know
> nothing about debug info, is that nothing should be required to have a name,
> because sometimes things just don't have names. For example, I already have
> to create artificial names for types because otherwise the debug metadata is
> rejected, but I don't like it.
>
> If having no name means that the entity can't even be accessed in the
> debugger,
> then maybe that metadata should be dropped *as an optimization*. But not
> rejected as wrong.
>
> As I said, my view from a planet far far away from the land of those that
> actually know something about debug info.
Yep - sorry to make you repeat yourself. I did read your explanation
on the other thread in which Eric pointed out that nothing in the
debug info /requires/ a name, etc. I guess I'll wait for Eric to chime
back in here or there on where he thinks this should be dealt with.
- David
>
> Ciao, Duncan.
>
>
>>
>>>
>>> Modified:
>>> dragonegg/trunk/src/Debug.cpp
>>>
>>> Modified: dragonegg/trunk/src/Debug.cpp
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/dragonegg/trunk/src/Debug.cpp?rev=186952&r1=186951&r2=186952&view=diff
>>>
>>> ==============================================================================
>>> --- dragonegg/trunk/src/Debug.cpp (original)
>>> +++ dragonegg/trunk/src/Debug.cpp Tue Jul 23 11:07:59 2013
>>> @@ -411,6 +411,8 @@ void DebugInfo::EmitGlobalVariable(Globa
>>> expanded_location Loc = expand_location(DECL_SOURCE_LOCATION(decl));
>>> DIType TyD = getOrCreateType(TREE_TYPE(decl));
>>> StringRef DispName = GV->getName();
>>> + if (DispName.empty())
>>> + DispName = "__unknown__";
>>> if (DECL_NAME(decl)) {
>>> if (IDENTIFIER_POINTER(DECL_NAME(decl)))
>>> DispName = IDENTIFIER_POINTER(DECL_NAME(decl));
>>>
>>>
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
>
More information about the llvm-commits
mailing list