aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2011-07-19 20:25:14 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2011-07-19 20:25:14 +0000
commit0e37a63c3cabe0baab792ed4169307ab4cdc791d (patch)
tree145a5ac1f7245ba969db1c1db74093c538f009c0
parent7e324e482fe55600d1fff227944f6b4b98fbb96f (diff)
downloadfsf-binutils-gdb-0e37a63c3cabe0baab792ed4169307ab4cdc791d.zip
fsf-binutils-gdb-0e37a63c3cabe0baab792ed4169307ab4cdc791d.tar.gz
fsf-binutils-gdb-0e37a63c3cabe0baab792ed4169307ab4cdc791d.tar.bz2
gdb/
* dwarf2loc.c (indirect_pieced_value): Use check_typedef for VALUE's type. gdb/testsuite/ * gdb.dwarf2/implptr.S: Rebuilt. * gdb.dwarf2/implptr.c (intp, intpp, intppp): New typedefs. (bar): Use them for j, k, l. * gdb.dwarf2/implptr.exp: New variable opts. Support runtest parameter COMPILE. (print j in implptr:bar): Update for the intp typedef. (print p[0].x in implptr:foo): Use more exact regex.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/dwarf2loc.c2
-rw-r--r--gdb/testsuite/ChangeLog10
-rw-r--r--gdb/testsuite/gdb.dwarf2/implptr.S468
-rw-r--r--gdb/testsuite/gdb.dwarf2/implptr.c10
-rw-r--r--gdb/testsuite/gdb.dwarf2/implptr.exp20
6 files changed, 290 insertions, 225 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4e6f35f..debc803 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2011-07-19 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * dwarf2loc.c (indirect_pieced_value): Use check_typedef for VALUE's
+ type.
+
2011-07-19 Gary Benson <gbenson@redhat.com>
* infrun.c (struct execution_control_state): New member
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
index fc9a417..9d4aa8d 100644
--- a/gdb/dwarf2loc.c
+++ b/gdb/dwarf2loc.c
@@ -967,7 +967,7 @@ indirect_pieced_value (struct value *value)
struct value *result;
LONGEST byte_offset;
- type = value_type (value);
+ type = check_typedef (value_type (value));
if (TYPE_CODE (type) != TYPE_CODE_PTR)
return NULL;
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 1acccd5..2d60ff1 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,13 @@
+2011-07-19 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * gdb.dwarf2/implptr.S: Rebuilt.
+ * gdb.dwarf2/implptr.c (intp, intpp, intppp): New typedefs.
+ (bar): Use them for j, k, l.
+ * gdb.dwarf2/implptr.exp: New variable opts. Support runtest parameter
+ COMPILE.
+ (print j in implptr:bar): Update for the intp typedef.
+ (print p[0].x in implptr:foo): Use more exact regex.
+
2011-07-18 Tom Tromey <tromey@redhat.com>
* gdb.cp/static-method.exp: Add missing single quote.
diff --git a/gdb/testsuite/gdb.dwarf2/implptr.S b/gdb/testsuite/gdb.dwarf2/implptr.S
index 8ea793c..1672c68 100644
--- a/gdb/testsuite/gdb.dwarf2/implptr.S
+++ b/gdb/testsuite/gdb.dwarf2/implptr.S
@@ -6,7 +6,7 @@
.type foo, @function
foo:
.LFB1:
- .file 1 "implptr.c"
+ .file 1 "gdb.dwarf2/implptr.c"
.loc 1 45 0
.cfi_startproc
.LVL0:
@@ -50,41 +50,44 @@ foo:
.type bar, @function
bar:
.LFB2:
- .loc 1 57 0
+ .loc 1 61 0
.cfi_startproc
.LVL7:
- .loc 1 61 0
+ .loc 1 65 0
movl 4(%esp), %eax
addl $1, %eax
- .loc 1 63 0
+ .loc 1 67 0
ret
.cfi_endproc
.LFE2:
.size bar, .-bar
+ .section .text.startup,"ax",@progbits
.p2align 4,,15
.globl main
.type main, @function
main:
.LFB3:
- .loc 1 66 0
+ .loc 1 70 0
.cfi_startproc
pushl %ebx
.cfi_def_cfa_offset 8
.cfi_offset 3, -8
subl $4, %esp
.cfi_def_cfa_offset 12
- .loc 1 67 0
+ .loc 1 71 0
movl $5, (%esp)
call bar
+.LVL8:
movl $23, (%esp)
movl %eax, %ebx
call foo
- .loc 1 68 0
+.LVL9:
+ .loc 1 72 0
addl $4, %esp
.cfi_def_cfa_offset 8
- .loc 1 67 0
+ .loc 1 71 0
addl %ebx, %eax
- .loc 1 68 0
+ .loc 1 72 0
popl %ebx
.cfi_def_cfa_offset 4
.cfi_restore 3
@@ -93,268 +96,268 @@ main:
.LFE3:
.size main, .-main
.comm u,24,4
+ .text
.Letext0:
- .section .debug_types,"G",@progbits,wt.ade46b36db7edab6,comdat
- .long 0x46
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .long 0x217
.value 0x4
.long .Ldebug_abbrev0
.byte 0x4
- .byte 0xad
- .byte 0xe4
- .byte 0x6b
- .byte 0x36
- .byte 0xdb
- .byte 0x7e
- .byte 0xda
- .byte 0xb6
- .long 0x1d
.uleb128 0x1
+ .long .LASF4
.byte 0x1
+ .long .LASF5
+ .long .LASF6
+ .long .Ldebug_ranges0+0
+ .long 0
.long .Ldebug_line0
.uleb128 0x2
.string "S"
.byte 0x8
.byte 0x1
.byte 0x18
- .long 0x3c
+ .long 0x44
.uleb128 0x3
.string "x"
.byte 0x1
.byte 0x1a
- .long 0x3c
+ .long 0x44
.byte 0
.uleb128 0x3
.string "y"
.byte 0x1
.byte 0x1a
- .long 0x42
+ .long 0x4a
.byte 0x4
.byte 0
.uleb128 0x4
.byte 0x4
- .long 0x42
+ .long 0x4a
.uleb128 0x5
.byte 0x4
.byte 0x5
.string "int"
- .byte 0
- .section .debug_info,"",@progbits
-.Ldebug_info0:
- .long 0x1b6
- .value 0x4
- .long .Ldebug_abbrev0
- .byte 0x4
+ .uleb128 0x6
+ .long .LASF0
+ .byte 0x1
+ .byte 0x37
+ .long 0x44
.uleb128 0x6
.long .LASF1
.byte 0x1
- .long .LASF2
- .long .LASF3
- .long .Ltext0
- .long .Letext0
- .long .Ldebug_line0
+ .byte 0x38
+ .long 0x67
.uleb128 0x4
.byte 0x4
- .long 0x2b
- .uleb128 0x5
+ .long 0x51
+ .uleb128 0x6
+ .long .LASF2
+ .byte 0x1
+ .byte 0x39
+ .long 0x78
+ .uleb128 0x4
.byte 0x4
- .byte 0x5
- .string "int"
+ .long 0x5c
.uleb128 0x7
.string "add"
.byte 0x1
.byte 0x20
.byte 0x3
- .long 0x5a
+ .long 0xa6
.uleb128 0x8
.string "a"
.byte 0x1
.byte 0x20
- .long 0x5a
+ .long 0xa6
.uleb128 0x8
.string "b"
.byte 0x1
.byte 0x20
- .long 0x5a
+ .long 0xa6
.uleb128 0x8
.string "c"
.byte 0x1
.byte 0x20
- .long 0x2b
+ .long 0x4a
.byte 0
- .uleb128 0x9
+ .uleb128 0x4
.byte 0x4
- .byte 0xad
- .byte 0xe4
- .byte 0x6b
- .byte 0x36
- .byte 0xdb
- .byte 0x7e
- .byte 0xda
- .byte 0xb6
- .uleb128 0xa
+ .long 0x25
+ .uleb128 0x9
.string "foo"
.byte 0x1
.byte 0x2c
- .long 0x2b
+ .long 0x4a
.long .LFB1
.long .LFE1
.uleb128 0x1
.byte 0x9c
- .long 0xff
- .uleb128 0xb
+ .long 0x147
+ .uleb128 0xa
.string "i"
.byte 0x1
.byte 0x2c
- .long 0x2b
+ .long 0x4a
.long .LLST0
- .uleb128 0xc
+ .uleb128 0xb
.string "j"
.byte 0x1
.byte 0x2e
- .long 0x2b
+ .long 0x4a
.long .LLST1
- .uleb128 0xc
+ .uleb128 0xb
.string "p"
.byte 0x1
.byte 0x2f
- .long 0xff
+ .long 0x147
.long .LLST2
- .uleb128 0xd
- .long 0x32
+ .uleb128 0xc
+ .long 0x7e
.long .LBB6
.long .LBE6
.byte 0x1
.byte 0x30
- .long 0xd3
- .uleb128 0xe
- .long 0x50
+ .long 0x11b
+ .uleb128 0xd
+ .long 0x9c
.byte 0
- .uleb128 0xf
- .long 0x47
+ .uleb128 0xe
+ .long 0x93
.uleb128 0x6
.byte 0xf2
- .long .Ldebug_info0+151
+ .long .Ldebug_info0+223
.sleb128 8
- .uleb128 0x10
- .long 0x3e
+ .uleb128 0xf
+ .long 0x8a
.long .LLST3
.byte 0
- .uleb128 0x11
- .long 0x32
+ .uleb128 0x10
+ .long 0x7e
.long .LBB8
.long .LBE8
.byte 0x1
.byte 0x33
- .uleb128 0xe
- .long 0x50
+ .uleb128 0xd
+ .long 0x9c
.byte 0x3
- .uleb128 0xf
- .long 0x47
+ .uleb128 0xe
+ .long 0x93
.uleb128 0x6
.byte 0xf2
- .long .Ldebug_info0+151
+ .long .Ldebug_info0+223
.sleb128 8
- .uleb128 0x10
- .long 0x3e
+ .uleb128 0xf
+ .long 0x8a
.long .LLST4
.byte 0
.byte 0
+ .uleb128 0x11
+ .long 0x25
+ .long 0x157
.uleb128 0x12
- .byte 0xad
- .byte 0xe4
- .byte 0x6b
- .byte 0x36
- .byte 0xdb
- .byte 0x7e
- .byte 0xda
- .byte 0xb6
- .long 0x113
- .uleb128 0x13
- .long 0x113
+ .long 0x157
.byte 0x1
.byte 0
- .uleb128 0x14
+ .uleb128 0x13
.byte 0x4
.byte 0x7
- .long .LASF0
- .uleb128 0xa
+ .long .LASF3
+ .uleb128 0x9
.string "bar"
.byte 0x1
- .byte 0x38
- .long 0x2b
+ .byte 0x3c
+ .long 0x4a
.long .LFB2
.long .LFE2
.uleb128 0x1
.byte 0x9c
- .long 0x170
- .uleb128 0x15
+ .long 0x1b4
+ .uleb128 0x14
.string "i"
.byte 0x1
- .byte 0x38
- .long 0x2b
+ .byte 0x3c
+ .long 0x4a
.uleb128 0x2
.byte 0x91
.sleb128 0
- .uleb128 0x16
+ .uleb128 0x15
.string "j"
.byte 0x1
- .byte 0x3a
- .long 0x25
+ .byte 0x3e
+ .long 0x51
.uleb128 0x6
.byte 0xf2
- .long .Ldebug_info0+307
+ .long .Ldebug_info0+375
.sleb128 0
- .uleb128 0x16
+ .uleb128 0x15
.string "k"
.byte 0x1
- .byte 0x3b
- .long 0x170
+ .byte 0x3f
+ .long 0x5c
.uleb128 0x6
.byte 0xf2
- .long .Ldebug_info0+319
+ .long .Ldebug_info0+387
.sleb128 0
- .uleb128 0x16
+ .uleb128 0x15
.string "l"
.byte 0x1
- .byte 0x3c
- .long 0x176
+ .byte 0x40
+ .long 0x6d
.uleb128 0x6
.byte 0xf2
- .long .Ldebug_info0+335
+ .long .Ldebug_info0+403
.sleb128 0
.byte 0
- .uleb128 0x4
- .byte 0x4
- .long 0x25
- .uleb128 0x4
- .byte 0x4
- .long 0x170
- .uleb128 0x17
- .long .LASF4
+ .uleb128 0x16
+ .long .LASF7
.byte 0x1
- .byte 0x41
- .long 0x2b
+ .byte 0x45
+ .long 0x4a
.long .LFB3
.long .LFE3
.uleb128 0x1
.byte 0x9c
+ .long 0x1f2
+ .uleb128 0x17
+ .long .LVL8
+ .long 0x15e
+ .long 0x1e1
.uleb128 0x18
- .long 0x2b
- .long 0x1a1
- .uleb128 0x13
- .long 0x113
- .byte 0x5
+ .uleb128 0x2
+ .byte 0x74
+ .sleb128 0
+ .uleb128 0x1
+ .byte 0x35
.byte 0
.uleb128 0x19
+ .long .LVL9
+ .long 0xac
+ .uleb128 0x18
+ .uleb128 0x2
+ .byte 0x74
+ .sleb128 0
+ .uleb128 0x1
+ .byte 0x47
+ .byte 0
+ .byte 0
+ .uleb128 0x11
+ .long 0x4a
+ .long 0x202
+ .uleb128 0x12
+ .long 0x157
+ .byte 0x5
+ .byte 0
+ .uleb128 0x1a
.string "u"
.byte 0x1
.byte 0x1d
- .long 0x191
- .uleb128 0x1a
+ .long 0x1f2
+ .uleb128 0x1b
.string "u"
.byte 0x1
.byte 0x1d
- .long 0x191
+ .long 0x1f2
.uleb128 0x5
.byte 0x3
.long u
@@ -362,10 +365,20 @@ main:
.section .debug_abbrev,"",@progbits
.Ldebug_abbrev0:
.uleb128 0x1
- .uleb128 0x41
+ .uleb128 0x11
.byte 0x1
+ .uleb128 0x25
+ .uleb128 0xe
.uleb128 0x13
.uleb128 0xb
+ .uleb128 0x3
+ .uleb128 0xe
+ .uleb128 0x1b
+ .uleb128 0xe
+ .uleb128 0x55
+ .uleb128 0x17
+ .uleb128 0x11
+ .uleb128 0x1
.uleb128 0x10
.uleb128 0x17
.byte 0
@@ -421,22 +434,16 @@ main:
.byte 0
.byte 0
.uleb128 0x6
- .uleb128 0x11
- .byte 0x1
- .uleb128 0x25
- .uleb128 0xe
- .uleb128 0x13
- .uleb128 0xb
+ .uleb128 0x16
+ .byte 0
.uleb128 0x3
.uleb128 0xe
- .uleb128 0x1b
- .uleb128 0xe
- .uleb128 0x11
- .uleb128 0x1
- .uleb128 0x12
- .uleb128 0x1
- .uleb128 0x10
- .uleb128 0x17
+ .uleb128 0x3a
+ .uleb128 0xb
+ .uleb128 0x3b
+ .uleb128 0xb
+ .uleb128 0x49
+ .uleb128 0x13
.byte 0
.byte 0
.uleb128 0x7
@@ -470,15 +477,6 @@ main:
.byte 0
.byte 0
.uleb128 0x9
- .uleb128 0xf
- .byte 0
- .uleb128 0xb
- .uleb128 0xb
- .uleb128 0x49
- .uleb128 0x20
- .byte 0
- .byte 0
- .uleb128 0xa
.uleb128 0x2e
.byte 0x1
.uleb128 0x3f
@@ -499,11 +497,13 @@ main:
.uleb128 0x1
.uleb128 0x40
.uleb128 0x18
+ .uleb128 0x2117
+ .uleb128 0x19
.uleb128 0x1
.uleb128 0x13
.byte 0
.byte 0
- .uleb128 0xb
+ .uleb128 0xa
.uleb128 0x5
.byte 0
.uleb128 0x3
@@ -518,7 +518,7 @@ main:
.uleb128 0x17
.byte 0
.byte 0
- .uleb128 0xc
+ .uleb128 0xb
.uleb128 0x34
.byte 0
.uleb128 0x3
@@ -533,7 +533,7 @@ main:
.uleb128 0x17
.byte 0
.byte 0
- .uleb128 0xd
+ .uleb128 0xc
.uleb128 0x1d
.byte 0x1
.uleb128 0x31
@@ -550,7 +550,7 @@ main:
.uleb128 0x13
.byte 0
.byte 0
- .uleb128 0xe
+ .uleb128 0xd
.uleb128 0x5
.byte 0
.uleb128 0x31
@@ -559,7 +559,7 @@ main:
.uleb128 0xb
.byte 0
.byte 0
- .uleb128 0xf
+ .uleb128 0xe
.uleb128 0x5
.byte 0
.uleb128 0x31
@@ -568,7 +568,7 @@ main:
.uleb128 0x18
.byte 0
.byte 0
- .uleb128 0x10
+ .uleb128 0xf
.uleb128 0x5
.byte 0
.uleb128 0x31
@@ -577,7 +577,7 @@ main:
.uleb128 0x17
.byte 0
.byte 0
- .uleb128 0x11
+ .uleb128 0x10
.uleb128 0x1d
.byte 0x1
.uleb128 0x31
@@ -592,16 +592,16 @@ main:
.uleb128 0xb
.byte 0
.byte 0
- .uleb128 0x12
+ .uleb128 0x11
.uleb128 0x1
.byte 0x1
.uleb128 0x49
- .uleb128 0x20
+ .uleb128 0x13
.uleb128 0x1
.uleb128 0x13
.byte 0
.byte 0
- .uleb128 0x13
+ .uleb128 0x12
.uleb128 0x21
.byte 0
.uleb128 0x49
@@ -610,7 +610,7 @@ main:
.uleb128 0xb
.byte 0
.byte 0
- .uleb128 0x14
+ .uleb128 0x13
.uleb128 0x24
.byte 0
.uleb128 0xb
@@ -621,7 +621,7 @@ main:
.uleb128 0xe
.byte 0
.byte 0
- .uleb128 0x15
+ .uleb128 0x14
.uleb128 0x5
.byte 0
.uleb128 0x3
@@ -636,7 +636,7 @@ main:
.uleb128 0x18
.byte 0
.byte 0
- .uleb128 0x16
+ .uleb128 0x15
.uleb128 0x34
.byte 0
.uleb128 0x3
@@ -651,9 +651,9 @@ main:
.uleb128 0x18
.byte 0
.byte 0
- .uleb128 0x17
+ .uleb128 0x16
.uleb128 0x2e
- .byte 0
+ .byte 0x1
.uleb128 0x3f
.uleb128 0x19
.uleb128 0x3
@@ -670,18 +670,42 @@ main:
.uleb128 0x1
.uleb128 0x40
.uleb128 0x18
+ .uleb128 0x2117
+ .uleb128 0x19
+ .uleb128 0x1
+ .uleb128 0x13
.byte 0
.byte 0
- .uleb128 0x18
- .uleb128 0x1
+ .uleb128 0x17
+ .uleb128 0x4109
.byte 0x1
- .uleb128 0x49
+ .uleb128 0x11
+ .uleb128 0x1
+ .uleb128 0x31
.uleb128 0x13
.uleb128 0x1
.uleb128 0x13
.byte 0
.byte 0
+ .uleb128 0x18
+ .uleb128 0x410a
+ .byte 0
+ .uleb128 0x2
+ .uleb128 0x18
+ .uleb128 0x2111
+ .uleb128 0x18
+ .byte 0
+ .byte 0
.uleb128 0x19
+ .uleb128 0x4109
+ .byte 0x1
+ .uleb128 0x11
+ .uleb128 0x1
+ .uleb128 0x31
+ .uleb128 0x13
+ .byte 0
+ .byte 0
+ .uleb128 0x1a
.uleb128 0x34
.byte 0
.uleb128 0x3
@@ -698,7 +722,7 @@ main:
.uleb128 0x19
.byte 0
.byte 0
- .uleb128 0x1a
+ .uleb128 0x1b
.uleb128 0x34
.byte 0
.uleb128 0x3
@@ -719,13 +743,13 @@ main:
.section .debug_loc,"",@progbits
.Ldebug_loc0:
.LLST0:
- .long .LVL0-.Ltext0
- .long .LVL1-.Ltext0
+ .long .LVL0
+ .long .LVL1
.value 0x2
.byte 0x91
.sleb128 0
- .long .LVL1-.Ltext0
- .long .LFE1-.Ltext0
+ .long .LVL1
+ .long .LFE1
.value 0x6
.byte 0x91
.sleb128 0
@@ -736,13 +760,13 @@ main:
.long 0
.long 0
.LLST1:
- .long .LVL1-.Ltext0
- .long .LVL4-.Ltext0
+ .long .LVL1
+ .long .LVL4
.value 0x2
.byte 0x91
.sleb128 0
- .long .LVL4-.Ltext0
- .long .LFE1-.Ltext0
+ .long .LVL4
+ .long .LFE1
.value 0x6
.byte 0x91
.sleb128 0
@@ -753,11 +777,11 @@ main:
.long 0
.long 0
.LLST2:
- .long .LVL1-.Ltext0
- .long .LVL4-.Ltext0
+ .long .LVL1
+ .long .LVL4
.value 0x20
.byte 0xf2
- .long .Ldebug_info0+125
+ .long .Ldebug_info0+197
.sleb128 0
.byte 0x93
.uleb128 0x4
@@ -770,7 +794,7 @@ main:
.byte 0x93
.uleb128 0x4
.byte 0xf2
- .long .Ldebug_info0+138
+ .long .Ldebug_info0+210
.sleb128 0
.byte 0x93
.uleb128 0x4
@@ -782,11 +806,11 @@ main:
.byte 0x9f
.byte 0x93
.uleb128 0x4
- .long .LVL4-.Ltext0
- .long .LFE1-.Ltext0
+ .long .LVL4
+ .long .LFE1
.value 0x20
.byte 0xf2
- .long .Ldebug_info0+138
+ .long .Ldebug_info0+210
.sleb128 0
.byte 0x93
.uleb128 0x4
@@ -799,7 +823,7 @@ main:
.byte 0x93
.uleb128 0x4
.byte 0xf2
- .long .Ldebug_info0+125
+ .long .Ldebug_info0+197
.sleb128 0
.byte 0x93
.uleb128 0x4
@@ -814,47 +838,47 @@ main:
.long 0
.long 0
.LLST3:
- .long .LVL1-.Ltext0
- .long .LVL2-.Ltext0
+ .long .LVL1
+ .long .LVL2
.value 0x6
.byte 0xf2
- .long .Ldebug_info0+151
+ .long .Ldebug_info0+223
.sleb128 0
- .long .LVL2-.Ltext0
- .long .LVL3-.Ltext0
+ .long .LVL2
+ .long .LVL3
.value 0x2
.byte 0x30
.byte 0x9f
- .long .LVL3-.Ltext0
- .long .LFE1-.Ltext0
+ .long .LVL3
+ .long .LFE1
.value 0x6
.byte 0xf2
- .long .Ldebug_info0+151
+ .long .Ldebug_info0+223
.sleb128 8
.long 0
.long 0
.LLST4:
- .long .LVL4-.Ltext0
- .long .LVL5-.Ltext0
+ .long .LVL4
+ .long .LVL5
.value 0x6
.byte 0xf2
- .long .Ldebug_info0+151
+ .long .Ldebug_info0+223
.sleb128 0
- .long .LVL5-.Ltext0
- .long .LVL6-.Ltext0
+ .long .LVL5
+ .long .LVL6
.value 0x2
.byte 0x30
.byte 0x9f
- .long .LVL6-.Ltext0
- .long .LFE1-.Ltext0
+ .long .LVL6
+ .long .LFE1
.value 0x6
.byte 0xf2
- .long .Ldebug_info0+151
+ .long .Ldebug_info0+223
.sleb128 8
.long 0
.long 0
.section .debug_aranges,"",@progbits
- .long 0x1c
+ .long 0x24
.value 0x2
.long .Ldebug_info0
.byte 0x4
@@ -863,20 +887,36 @@ main:
.value 0
.long .Ltext0
.long .Letext0-.Ltext0
+ .long .LFB3
+ .long .LFE3-.LFB3
+ .long 0
+ .long 0
+ .section .debug_ranges,"",@progbits
+.Ldebug_ranges0:
+ .long .Ltext0
+ .long .Letext0
+ .long .LFB3
+ .long .LFE3
.long 0
.long 0
.section .debug_line,"",@progbits
.Ldebug_line0:
.section .debug_str,"MS",@progbits,1
-.LASF0:
- .string "unsigned int"
+.LASF5:
+ .string "gdb.dwarf2/implptr.c"
+.LASF6:
+ .string ""
.LASF3:
- .string "/home/tromey/gnu/archer/archer/gdb/testsuite/gdb.dwarf2"
-.LASF4:
+ .string "unsigned int"
+.LASF7:
.string "main"
.LASF2:
- .string "implptr.c"
+ .string "intppp"
+.LASF4:
+ .string "GNU C 4.6.1 20110627 (Red Hat 4.6.1-1)"
+.LASF0:
+ .string "intp"
.LASF1:
- .string "GNU C 4.6.0 20101116 (experimental) [trunk revision 166803]"
- .ident "GCC: (GNU) 4.6.0 20101116 (experimental) [trunk revision 166803]"
+ .string "intpp"
+ .ident "GCC: (GNU) 4.6.1 20110627 (Red Hat 4.6.1-1)"
.section .note.GNU-stack,"",@progbits
diff --git a/gdb/testsuite/gdb.dwarf2/implptr.c b/gdb/testsuite/gdb.dwarf2/implptr.c
index 64c7076..9812b7e 100644
--- a/gdb/testsuite/gdb.dwarf2/implptr.c
+++ b/gdb/testsuite/gdb.dwarf2/implptr.c
@@ -52,12 +52,16 @@ foo (int i)
return i + j; /* foo breakpoint */
}
+typedef int *intp;
+typedef intp *intpp;
+typedef intpp *intppp;
+
int __attribute__ ((noinline, used, noclone))
bar (int i)
{
- int *j = &i;
- int **k = &j;
- int ***l = &k;
+ intp j = &i;
+ intpp k = &j;
+ intppp l = &k;
i++; /* bar breakpoint */
return i;
}
diff --git a/gdb/testsuite/gdb.dwarf2/implptr.exp b/gdb/testsuite/gdb.dwarf2/implptr.exp
index e9348e40..8f9b5fb 100644
--- a/gdb/testsuite/gdb.dwarf2/implptr.exp
+++ b/gdb/testsuite/gdb.dwarf2/implptr.exp
@@ -20,17 +20,23 @@ load_lib dwarf.exp
if {![dwarf2_support]} {
return 0
}
-# This test can only be run on x86 targets.
-if {![is_x86_like_target]} {
- return 0
-}
set testfile "implptr"
set srcfile ${testfile}.S
set csrcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}.x
+set opts {}
+
+if [info exists COMPILE] {
+ # make check RUNTESTFLAGS='gdb.dwarf2/implptr.exp COMPILE=1 CC_FOR_TARGET=gcc\ -m32'
+ set srcfile ${csrcfile}
+ lappend opts debug optimize=-O2
+} elseif {![is_x86_like_target]} {
+ # This test can only be run on x86 targets.
+ return 0
+}
-if {[prepare_for_testing ${testfile}.exp ${testfile}.x $srcfile]} {
+if {[prepare_for_testing ${testfile}.exp ${testfile}.x $srcfile $opts]} {
return -1
}
@@ -45,7 +51,7 @@ proc implptr_test_bar {} {
gdb_test "break implptr.c:$line" "Breakpoint 2.*" \
"set bar breakpoint for implptr"
gdb_continue_to_breakpoint "continue to bar breakpoint for implptr"
- gdb_test "print j" " = .int .. <synthetic pointer>" "print j in implptr:bar"
+ gdb_test "print j" " = \\(intp\\) <synthetic pointer>" "print j in implptr:bar"
gdb_test "print *j" " = 5" "print *j in implptr:bar"
gdb_test "print **k" " = 5" "print **k in implptr:bar"
gdb_test "print ***l" " = 5" "print ***l in implptr:bar"
@@ -58,7 +64,7 @@ proc implptr_test_foo {} {
gdb_test "break implptr.c:$line" "Breakpoint 3.*" \
"set foo breakpoint for implptr"
gdb_continue_to_breakpoint "continue to foo breakpoint for implptr"
- gdb_test "print p\[0].x" " = .int .. <synthetic pointer>" \
+ gdb_test "print p\[0].x" " = \\(int \\*\\) <synthetic pointer>" \
"print p\[0].x in implptr:foo"
gdb_test "print *p\[0].x" " = 69" \
"print *p\[0].x in implptr:foo"