summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Arnez <arnez@linux.vnet.ibm.com>2014-03-07 12:23:47 +0000
committerAndreas Krebbel <krebbel@linux.vnet.ibm.com>2014-03-12 16:22:19 +0100
commit646f4417760ab12c0d955dabf821d8737d94335a (patch)
tree385101ebf48b111ef7f0b93e4c38c862939622ce
parent288c211f8c66a8d065cfd59f110e2fbc33ccce25 (diff)
downloadbinutils-gdb-646f4417760ab12c0d955dabf821d8737d94335a.tar.gz
Fix dw2-ifort-parameter.exp on PPC64
On PPC64, 'func' and 'main' are function descriptors and don't point to the actual code. Thus the usage of these symbols in the DWARF assembler source was broken. The patch introduces new labels func_start and func_end for this purpose.
-rw-r--r--gdb/testsuite/ChangeLog8
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.c8
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp10
3 files changed, 20 insertions, 6 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 2452c77fe75..56275a3aa12 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,13 @@
2014-03-12 Andreas Arnez <arnez@linux.vnet.ibm.com>
+ * gdb.dwarf2/dw2-ifort-parameter.c (func): Define labels
+ 'func_start' and 'func_end' for the beginning and end of the
+ function code, respectively.
+ * gdb.dwarf2/dw2-ifort-parameter.exp: Use 'func_start' and
+ 'func_end' instead of 'func' and 'main'.
+
+2014-03-12 Andreas Arnez <arnez@linux.vnet.ibm.com>
+
* gdb.dwarf2/dw2-ifort-parameter-debug.S: Remove.
* gdb.dwarf2/dw2-ifort-parameter.exp: Use Dwarf::assemble to
generate the debug info assembler source.
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.c b/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.c
index 361c44d8ae4..44748147679 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.c
@@ -18,11 +18,17 @@
int value = 0xdeadf00d;
int *ptr = &value;
-void
+asm (".section \".text\"");
+asm (".balign 8");
+asm ("func_start: .globl func_start");
+
+static void
func (void)
{
}
+asm ("func_end: .globl func_end");
+
int
main (void)
{
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp b/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp
index d11de9ed318..026e071e7c1 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp
@@ -29,14 +29,14 @@ set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
declare_labels int_label
- extern main func ptr
+ extern func_start func_end ptr
cu {} {
compile_unit {
{name file1.txt}
{language @DW_LANG_C}
- {low_pc func addr}
- {high_pc main addr}
+ {low_pc func_start addr}
+ {high_pc func_end addr}
} {
int_label: base_type {
{name int}
@@ -47,8 +47,8 @@ Dwarf::assemble $asm_file {
subprogram {
{external 1 flag}
{name func}
- {low_pc func addr}
- {high_pc main addr}
+ {low_pc func_start addr}
+ {high_pc func_end addr}
} {
formal_parameter {
{name param}