[PATCH] Fix possible alignment issue with dw2-dir-file-name test case

Andreas Arnez
2014-01-08T18:00:26Z

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