Fix implptr-optimized-out.exp fail
authorYao Qi <yao@codesourcery.com>
Fri, 14 Nov 2014 00:53:08 +0000 (08:53 +0800)
committerYao Qi <yao@codesourcery.com>
Fri, 14 Nov 2014 00:55:06 +0000 (08:55 +0800)
Hi,
I see the fail in gdb.dwarf2/implptr-optimized-out.exp in thumb mode

(gdb) p p->f^M
No symbol "p" in current context.^M
(gdb) FAIL: gdb.dwarf2/implptr-optimized-out.exp: p p->f

and the crash on powerpc64

(gdb) continue^M
Continuing.^M
^M
Program received signal SIGSEGV, Segmentation fault.^M
0x7d82100810000828 in ?? ()

The cause of both is that we incorrectly set attribute low_pc, since
main isn't resolved to function start address on these targets.

In this patch, we replace attributes name, low_pc and high_pc with
MACRO_AT_func.  The fail on thumb mode is fixed, and crash on
powerpc64 is fixed too.

gdb/testsuite:

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.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp

index 51ed4fa..378826d 100644 (file)
@@ -1,5 +1,10 @@
 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.
+
+2014-11-14  Yao Qi  <yao@codesourcery.com>
+
        * gdb.dwarf2/implptr-optimized-out.exp: Use Dwarf::assemble to
        produce debug information.
        * gdb.dwarf2/implptr-optimized-out.S: Removed.
index 226fc5c..dd9c517 100644 (file)
@@ -25,6 +25,8 @@ set executable ${testfile}
 # Create the DWARF.
 set asm_file [standard_output_file $srcfile2]
 Dwarf::assemble $asm_file {
+    global srcdir subdir srcfile
+
     cu { version 3 addr_size 4 } {
        compile_unit {
            {producer "GNU C 4.4.3"}
@@ -51,9 +53,7 @@ Dwarf::assemble $asm_file {
            }
 
            subprogram {
-               {name main}
-               {low_pc main addr}
-               {high_pc main+0x100 addr}
+               {MACRO_AT_func { main ${srcdir}/${subdir}/${srcfile} }}
                {type :$int_label}
                {external 1 flag}
            } {