aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorYao Qi <yao@codesourcery.com>2014-11-14 08:53:09 +0800
committerYao Qi <yao@codesourcery.com>2014-11-14 08:55:07 +0800
commit646da0594c91719ef591d8736865a1d58fbbfc34 (patch)
tree498d86cefe0eb5682b876470d12489daaec4d637 /gdb
parent9301ebe667e05c378d7f09ac991a925eb2a95617 (diff)
downloadfsf-binutils-gdb-646da0594c91719ef591d8736865a1d58fbbfc34.zip
fsf-binutils-gdb-646da0594c91719ef591d8736865a1d58fbbfc34.tar.gz
fsf-binutils-gdb-646da0594c91719ef591d8736865a1d58fbbfc34.tar.bz2
Fix dw2-ifort-parameter.exp fail with clang
The patch <https://sourceware.org/ml/gdb-patches/2014-03/msg00202.html> fixed dw2-ifort-parameter.exp on powerpc64 by adding some labels to get the start and end address of function func. This should also fix the fail on thumb mode, however, this style is quite specific to gcc, and other compiler, such as clang, may not guarantee the order of global asms and functions. The test fails with clang: $ make check RUNTESTFLAGS='dw2-ifort-parameter.exp CC_FOR_TARGET=clang' (gdb) p/x param^M No symbol "param" in current context.^M (gdb) FAIL: gdb.dwarf2/dw2-ifort-parameter.exp: p/x param With this patch applied, dw2-ifort-parameter.exp still passes for gcc on arm thumb mode and popwerpc64, and it also passes for clang on x86_linux. gdb/testsuite: 2014-11-14 Yao Qi <yao@codesourcery.com> * gdb.dwarf2/dw2-ifort-parameter.c: Remove inline asm. (func): Add label func_label. * gdb.dwarf2/dw2-ifort-parameter.exp (Dwarf::assemble): Replace low_pc and high_pc with MACRO_AT_range. Replace name, low_pc and high_pc with MACRO_AT_func.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/testsuite/ChangeLog8
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.c7
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp8
3 files changed, 12 insertions, 11 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 378826d..ce9c819 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,13 @@
2014-11-14 Yao Qi <yao@codesourcery.com>
+ * gdb.dwarf2/dw2-ifort-parameter.c: Remove inline asm.
+ (func): Add label func_label.
+ * gdb.dwarf2/dw2-ifort-parameter.exp (Dwarf::assemble):
+ Replace low_pc and high_pc with MACRO_AT_range.
+ Replace name, low_pc and high_pc with MACRO_AT_func.
+
+2014-11-14 Yao Qi <yao@codesourcery.com>
+
* gdb.dwarf2/implptr-optimized-out.exp (Dwarf::assemble):
Replace name, low_pc and high_pc with MACRO_AT_func.
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.c b/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.c
index 4474814..4918d7e 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.c
@@ -18,17 +18,12 @@
int value = 0xdeadf00d;
int *ptr = &value;
-asm (".section \".text\"");
-asm (".balign 8");
-asm ("func_start: .globl func_start");
-
static void
func (void)
{
+ asm ("func_label: .globl func_label");
}
-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 026e071..85a6ddd 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp
@@ -30,13 +30,13 @@ Dwarf::assemble $asm_file {
declare_labels int_label
extern func_start func_end ptr
+ global srcdir subdir srcfile
cu {} {
compile_unit {
{name file1.txt}
{language @DW_LANG_C}
- {low_pc func_start addr}
- {high_pc func_end addr}
+ {MACRO_AT_range { func ${srcdir}/${subdir}/${srcfile} }}
} {
int_label: base_type {
{name int}
@@ -46,9 +46,7 @@ Dwarf::assemble $asm_file {
subprogram {
{external 1 flag}
- {name func}
- {low_pc func_start addr}
- {high_pc func_end addr}
+ {MACRO_AT_func { func ${srcdir}/${subdir}/${srcfile} }}
} {
formal_parameter {
{name param}