This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH] Fix possible alignment issue with dw2-dir-file-name test case
- From: Andreas Arnez <arnez at linux dot vnet dot ibm dot com>
- To: gdb-patches at sourceware dot org
- Cc: Ulrich Weigand <uweigand at de dot ibm dot com>, Andreas Krebbel <krebbel at linux dot vnet dot ibm dot com>
- Date: Wed, 08 Jan 2014 19:00:16 +0100
- Subject: [PATCH] Fix possible alignment issue with dw2-dir-file-name test case
- Authentication-results: sourceware.org; auth=none
Since upstream gcc has recently increased the function alignment on
S390, the dw2-dir-file-name test case fails in the first
gdb_continue_to_breakpoint. Indeed, the breakpoint is now placed into
the alignment gap *before* the actual function.
This happens because the test case declares the respective "*_start"
symbol as a "loose" label before the function definition, and the
compiler inserts the alignment between that label and the function
itself. The fix defines the "*_start" symbol as a global alias to the
function instead.
testsuite/
2014-01-08 Andreas Arnez <arnez@linux.vnet.ibm.com>
* gdb.dwarf2/dw2-dir-file-name.c (FUNC): Declare "*_start" symbol
as an alias of the function instead of a label pointing before the
function, to avoid possible alignment issues.
---
gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.c b/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.c
index 21a4d2a..a0a9731 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.c
@@ -63,13 +63,13 @@ FUNC (compdir_absolute_ldir_absolute_file_relative_different) \
FUNC (compdir_absolute_ldir_absolute_file_absolute_same) \
FUNC (compdir_absolute_ldir_absolute_file_absolute_different)
-#define FUNC(name) \
- asm (#name "_start: .globl " #name "_start\n"); \
- static void \
- name (void) \
- { \
- v++; \
- } \
+#define FUNC(name) \
+ static void \
+ name (void) \
+ { \
+ v++; \
+ } \
+ void name ## _start (void) __attribute__ ((alias (#name))); \
asm (#name "_end: .globl " #name "_end\n");
FUNCBLOCK
#undef FUNC
--
1.8.3.1