From: Yao Qi <yao@codesourcery.com>
To: <gdb-patches@sourceware.org>
Subject: [PATCH 6/6] Fix dw2-ifort-parameter.exp fail with clang
Date: Sat, 25 Oct 2014 00:18:00 -0000 [thread overview]
Message-ID: <1414195968-3333-7-git-send-email-yao@codesourcery.com> (raw)
In-Reply-To: <1414195968-3333-1-git-send-email-yao@codesourcery.com>
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-10-24 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.
---
gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.c | 7 +------
gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp | 8 +++-----
2 files changed, 4 insertions(+), 11 deletions(-)
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}
--
1.9.3
next prev parent reply other threads:[~2014-10-25 0:18 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-25 0:17 [PATCH 0/6] Use correct function address in dwarf assembler Yao Qi
2014-10-25 0:18 ` [PATCH 4/6] Use Dwarf::assemble in implptr-optimized-out.exp Yao Qi
2014-11-04 22:53 ` Doug Evans
2014-10-25 0:18 ` [PATCH 2/6] DW attribute macro MACRO_AT_func and MACRO_AT_range Yao Qi
2014-11-04 22:50 ` Doug Evans
2014-11-05 1:54 ` Yao Qi
2014-11-07 16:54 ` Doug Evans
2014-11-10 2:04 ` Yao Qi
2014-11-10 19:44 ` Doug Evans
2014-11-11 2:05 ` Yao Qi
2014-11-12 7:01 ` Doug Evans
2014-11-14 1:00 ` Yao Qi
2014-11-04 22:59 ` Doug Evans
2014-10-25 0:18 ` [PATCH 1/6] New proc _handle_attribute Yao Qi
2014-11-04 22:48 ` Doug Evans
2014-10-25 0:18 ` [PATCH 3/6] Get start and end address of main in dwz.exp Yao Qi
2014-11-04 22:51 ` Doug Evans
2014-10-25 0:18 ` Yao Qi [this message]
2014-11-04 22:54 ` [PATCH 6/6] Fix dw2-ifort-parameter.exp fail with clang Doug Evans
2014-10-25 0:18 ` [PATCH 5/6] Fix implptr-optimized-out.exp fail Yao Qi
2014-11-04 22:53 ` Doug Evans
2014-11-04 23:01 ` [PATCH 0/6] Use correct function address in dwarf assembler Doug Evans
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1414195968-3333-7-git-send-email-yao@codesourcery.com \
--to=yao@codesourcery.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox