This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: lns-big-delta gas test
- From: Sterling Augustine <augustine dot sterling at gmail dot com>
- To: binutils at sourceware dot org, Richard Sandiford <rdsandiford at googlemail dot com>, Sterling Augustine <augustine dot sterling at gmail dot com>
- Date: Thu, 24 May 2012 08:54:57 -0700
- Subject: Re: lns-big-delta gas test
- References: <20120524153542.GJ3073@bubble.grove.modra.org>
On Thu, May 24, 2012 at 8:35 AM, Alan Modra <amodra@gmail.com> wrote:
> gas/lns/lns-big-delta has been failing on xtensa (the only target to
> run this test) since Richard's 2011-09-05 change to gas/dwarf2dbg.c.
> I reckon the test itself is somewhat suspect, since .loc specifies
> line number info for instructions, and the test has no instructions
> (unless you count .space as an instruction). ?So, let's fix the test.
>
> I'm not hugely concerned, but the old test does illustrate some
> problems with queuing line info: ?We don't emit queued line info if
> .loc is not followed by an insn or label (no line info at all for the
> old test), and perhaps the queue should be flushed on pseudos like
> .space that bump pc? ?gcc asm can do all sorts of weird tricks. ?eg.
>
> int foo (void)
> {
> ?__asm__ (".p2align 8");
> ?return 0;
> }
>
> results in
>
> ? ? ? ?.loc 1 3 0
> #APP
> # 3 "/src/tmp/asmloc.c" 1
> ? ? ? ?.p2align 8
> # 0 "" 2
> ? ? ? ?.loc 1 4 0
> #NO_APP
> ? ? ? ?movl ? ?$0, %eax
>
> so with queuing, the ".p2align" loses its line number info to the
> "movl". ?Thoughts?
>
> ? ? ? ?* gas/lns/lns-big-delta.s: Add nops.
> ? ? ? ?* gas/lns/lns-big-delta.d: Update.
>
> Index: gas/testsuite/gas/lns/lns-big-delta.s
> ===================================================================
> RCS file: /cvs/src/src/gas/testsuite/gas/lns/lns-big-delta.s,v
> retrieving revision 1.1
> diff -u -p -r1.1 lns-big-delta.s
> --- gas/testsuite/gas/lns/lns-big-delta.s ? ? ? 9 Jan 2008 17:30:59 -0000 ? ? ? 1.1
> +++ gas/testsuite/gas/lns/lns-big-delta.s ? ? ? 24 May 2012 14:39:47 -0000
> @@ -1,5 +1,9 @@
> ? ? ? ?.file 1 "foo.c"
> ? ? ? ?.loc 1 1 0
> ? ? ? ?.loc 1 2 0
> + ? ? ? nop
> + ? ? ? nop
> ? ? ? ?.space ?75000
> ? ? ? ?.loc 1 3 0
> + ? ? ? nop
> + ? ? ? nop
> Index: gas/testsuite/gas/lns/lns-big-delta.d
> ===================================================================
> RCS file: /cvs/src/src/gas/testsuite/gas/lns/lns-big-delta.d,v
> retrieving revision 1.2
> diff -u -p -r1.2 lns-big-delta.d
> --- gas/testsuite/gas/lns/lns-big-delta.d ? ? ? 11 Apr 2008 17:51:15 -0000 ? ? ?1.2
> +++ gas/testsuite/gas/lns/lns-big-delta.d ? ? ? 24 May 2012 14:39:47 -0000
> @@ -4,11 +4,14 @@
> ?Raw dump of debug contents of section \.debug_line:
> ?#...
> ?Line Number Statements:
> - ?Extended opcode 2: set Address to .*
> + ?Extended opcode 2: set Address to 0x0
> ? Copy
> ? Advance Line by 1 to 2
> - ?Extended opcode 2: set Address to .*
> + ?Advance PC by fixed size amount 0 to 0x0
> ? Copy
> - ?Advance PC by fixed size amount 0 to .*
> + ?Advance Line by 1 to 3
> + ?Extended opcode 2: set Address to 0x124fc
> + ?Copy
> + ?Advance PC by fixed size amount 4 to 0x12500
> ? Extended opcode 1: End of Sequence
> ?#pass
>
> --
> Alan Modra
> Australia Development Lab, IBM
This change seems fine to me. The failing case that led us write that
test originally had instructions in it anyway, but we wanted to
genericize and simplify it.
Strange that xtensa is the only target to run it, but OK then.
Sterling