[arm] Fix fails in dw2-compdir-oldgcc.exp

Message ID 1416230425-19468-1-git-send-email-yao@codesourcery.com
State New, archived
Headers

Commit Message

Yao Qi Nov. 17, 2014, 1:20 p.m. UTC
  This patch fixes two fails in dw2-compdir-oldgcc.exp I've seen on arm
target thumb mode.

  FAIL: gdb.dwarf2/dw2-compdir-oldgcc.exp: info source gcc42
  FAIL: gdb.dwarf2/dw2-compdir-oldgcc.exp: info source gcc43

When fill in DW_AT_low_pc, the label should be used rather than the
function, otherwise, the LSB bit of the address in DW_AT_low_pc is
set and the debug info is wrong.  This patch is to add two labels for
functions gcc42 and gcc43 respectively, and use them.  These two
fails are fixed.

gdb/testsuite:

2014-11-17  Yao Qi  <yao@codesourcery.com>

	* gdb.dwarf2/dw2-compdir-oldgcc.S: Define label .Lgcc42_procstart
	and .Lgcc43_procstart.  Use .Lgcc42_procstart instead of gcc42.
	Use .Lgcc43_procstart instead of gcc43.
---
 gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.S | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
  

Comments

Yao Qi Nov. 22, 2014, 1:22 p.m. UTC | #1
Yao Qi <yao@codesourcery.com> writes:

> This patch fixes two fails in dw2-compdir-oldgcc.exp I've seen on arm
> target thumb mode.
>
>   FAIL: gdb.dwarf2/dw2-compdir-oldgcc.exp: info source gcc42
>   FAIL: gdb.dwarf2/dw2-compdir-oldgcc.exp: info source gcc43
>
> When fill in DW_AT_low_pc, the label should be used rather than the
> function, otherwise, the LSB bit of the address in DW_AT_low_pc is
> set and the debug info is wrong.  This patch is to add two labels for
> functions gcc42 and gcc43 respectively, and use them.  These two
> fails are fixed.
>
> gdb/testsuite:
>
> 2014-11-17  Yao Qi  <yao@codesourcery.com>
>
> 	* gdb.dwarf2/dw2-compdir-oldgcc.S: Define label .Lgcc42_procstart
> 	and .Lgcc43_procstart.  Use .Lgcc42_procstart instead of gcc42.
> 	Use .Lgcc43_procstart instead of gcc43.

I've pushed it in.
  

Patch

diff --git a/gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.S b/gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.S
index c0a5545..c07ecb2 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.S
@@ -19,12 +19,14 @@ 
 main:	.globl main
 
 gcc42:	.globl gcc42
+.Lgcc42_procstart:
 	.int 0
 	.type gcc42, %function
 	.size gcc42, . - gcc42
 .Lgcc42_procend:
 
 gcc43:	.globl gcc43
+.Lgcc43_procstart:
 	.int 0
 	.type gcc43, %function
 	.size gcc43, . - gcc43
@@ -43,7 +45,7 @@  gcc43:	.globl gcc43
 
 	.uleb128 1				/* Abbrev: DW_TAG_compile_unit */
 	.4byte	.Lgcc42_begin			/* DW_AT_stmt_list */
-	.4byte	gcc42				/* DW_AT_low_pc */
+	.4byte	.Lgcc42_procstart		/* DW_AT_low_pc */
 	.4byte	.Lgcc42_procend			/* DW_AT_high_pc */
 	.ascii	"/dir/d/dw2-compdir-oldgcc42.S\0"	/* DW_AT_name */
 	.ascii	"GNU C 4.2.0\0"			/* DW_AT_producer */
@@ -54,7 +56,7 @@  gcc43:	.globl gcc43
 	.byte		1			/* DW_AT_decl_file */
 	.byte		1			/* DW_AT_decl_line */
 	.ascii		"gcc42\0"		/* DW_AT_name */
-	.4byte		gcc42			/* DW_AT_low_pc */
+	.4byte		.Lgcc42_procstart	/* DW_AT_low_pc */
 	.4byte		.Lgcc42_procend		/* DW_AT_high_pc */
 
 	.byte		0			/* End of children of CU */
@@ -70,7 +72,7 @@  gcc43:	.globl gcc43
 
 	.uleb128 1				/* Abbrev: DW_TAG_compile_unit */
 	.4byte	.Lgcc43_begin			/* DW_AT_stmt_list */
-	.4byte	gcc43				/* DW_AT_low_pc */
+	.4byte	.Lgcc43_procstart		/* DW_AT_low_pc */
 	.4byte	.Lgcc43_procend			/* DW_AT_high_pc */
 	.ascii	"/dir/d/dw2-compdir-oldgcc43.S\0"	/* DW_AT_name */
 	.ascii	"GNU C 4.3.0\0"			/* DW_AT_producer */
@@ -81,7 +83,7 @@  gcc43:	.globl gcc43
 	.byte		1			/* DW_AT_decl_file */
 	.byte		1			/* DW_AT_decl_line */
 	.ascii		"gcc43\0"		/* DW_AT_name */
-	.4byte		gcc43			/* DW_AT_low_pc */
+	.4byte		.Lgcc43_procstart	/* DW_AT_low_pc */
 	.4byte		.Lgcc43_procend		/* DW_AT_high_pc */
 
 	.byte		0			/* End of children of CU */