[llvm-commits] [llvm] r169218 - in /llvm/trunk: include/llvm/ lib/CodeGen/AsmPrinter/ lib/VMCore/ test/CodeGen/ARM/ test/CodeGen/Thumb/ test/CodeGen/X86/ test/DebugInfo/ test/DebugInfo/X86/ test/JitListener/
David Blaikie
dblaikie at gmail.com
Wed Dec 5 11:40:11 PST 2012
On Wed, Dec 5, 2012 at 11:29 AM, Eric Christopher <echristo at gmail.com> wrote:
>
>
>
> On Wed, Dec 5, 2012 at 11:25 AM, Bill Wendling <isanbard at gmail.com> wrote:
>>
>> On Dec 5, 2012, at 11:07 AM, Eric Christopher <echristo at gmail.com> wrote:
>>
>> > > Awesome. FWIW we're probably getting those cases wrong in debug info
>> > > :)
>> > >
>> > We're definitely getting the negative lower bounds wrong, since the
>> > value's retrieved as a uint64_t. The zero case will be omitted for Ada and
>> > friends.
>> >
>> > Agreed. If you'd like to fix it that'd be awesome, if not file a bug and
>> > I'll get to it eventually.
>> >
>> Okay. The fix is to emit the lower bound in all cases. I don't think this
>> will be a problem for the debugger. It just adds extra information that
>> it'll probably ignore in C/C++. :)
>
>
> No, it's not. The correct is to omit it when the lower bound is the same as
> the default lower bound which I just gave in this thread :)
(I'm not sure I'm helping here, but I'm confused as to the degree of
talking-past that's gone on with this issue... hopefully I'm doing
more good than harm)
Frontends (Clang, DragonEgg, etc) know which language they're emitting
debug info for & what the default is. They emit lower bounds whenever
the bound is not the language-specific default.
Backend (LLVM) unconditionally emits whatever the frontend gave it.
& thus we get the minimum required debug info: values when they're not
the default, relying on the default when it matches.
Unless I'm misunderstanding something,
- David
More information about the llvm-commits
mailing list