r188651 - DebugInfo: Do not include line/file info for artificial parameters & parameters of artificial functions

David Blaikie dblaikie at gmail.com
Mon Aug 19 14:12:47 PDT 2013


On Mon, Aug 19, 2013 at 2:09 PM, Robinson, Paul
<Paul_Robinson at playstation.sony.com> wrote:
>> DebugInfo: Do not include line/file info for artificial parameters &
>> parameters of artificial functions
> ...
>> -// It's weird that the first two parameters are recorded as being in a
>> -// different, ("<unknown>") file compared to the third parameter which
>> is 'in'
>> -// the actual source file. (see the metadata node after the arg name in
>> each
>> -// line)
>
> I've seen the debug info for the artificial functions themselves also
> have bogus source coordinates.  Being artificial functions, people don't
> care much so I haven't pursued it.
>
> The .debug_line info for these guys isn't always right either.  Meaning,
> the file number is obviously wrong.
>
> But I wonder if just not emitting the source locations is papering over
> some other not-keeping-track problem.

I removed them not because they were 'wrong' as such (Clang's AST
ascribes a "Resaonable" source location for implicit members to be the
token where the name of the type is written, I believe - or something
like that (haven't checked precisely) but unnecessary.

You're right that we probably don't want/need to be emitting line
table entries for implicit members (though we want to make sure the
functions can be symbolicated) in any great detail - I've not looked
at how our line tables compare to GCC's, but it might be something we
can improve on too.

If you have any particular examples of bogus output, please post them
so we can take a look/fix the issues.



More information about the cfe-commits mailing list