-# Copyright 2010, 2011 Free Software Foundation, Inc.
+# Copyright 2010-2015 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
return 0
}
-set testfile "implptr"
-set srcfile ${testfile}.S
+standard_testfile .S
set csrcfile ${testfile}.c
-set binfile ${objdir}/${subdir}/${testfile}.x
set opts {}
if [info exists COMPILE] {
return 0
}
-if {[prepare_for_testing ${testfile}.exp ${testfile}.x $srcfile $opts]} {
+if {[prepare_for_testing ${testfile}.exp ${testfile} $srcfile $opts]} {
return -1
}
+# Additional test to verify the referenced CU is not aged out.
+gdb_test_no_output "maintenance set dwarf2 max-cache-age 0"
+
if ![runto_main] {
return -1
}
"set bar breakpoint for implptr"
gdb_continue_to_breakpoint "continue to bar breakpoint for implptr"
gdb_test "print j" " = \\(intp\\) <synthetic pointer>" "print j in implptr:bar"
+ gdb_test {print sizeof (j[0])} " = 4" {print sizeof (j[0]) 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"
}
+# Test implicit pointer offset.
+proc implptr_test_baz {} {
+ global csrcfile
+ set line [gdb_get_line_number "baz breakpoint" $csrcfile]
+ gdb_test "break implptr.c:$line" "Breakpoint 3.*" \
+ "set baz breakpoint for implptr"
+ gdb_continue_to_breakpoint "continue to baz breakpoint for implptr"
+ gdb_test {p p[0].y} " = 92" "sanity check element 0"
+ gdb_test {p p[1].y} " = 46" "sanity check element 1"
+ gdb_test "step" "\r\nadd \\(.*" "enter the inlined function"
+ gdb_test "p a->y" " = 92" "check element 0 for the offset"
+ gdb_test "p b->y" " = 46" "check element 1 for the offset"
+ gdb_continue_to_breakpoint "ignore the second baz breakpoint"
+}
+
# Test some values in foo.
proc implptr_test_foo {} {
global csrcfile
set line [gdb_get_line_number "foo breakpoint" $csrcfile]
- gdb_test "break implptr.c:$line" "Breakpoint 3.*" \
+ gdb_test "break implptr.c:$line" "Breakpoint 4.*" \
"set foo breakpoint for implptr"
gdb_continue_to_breakpoint "continue to foo breakpoint for implptr"
gdb_test "print p\[0].x" " = \\(int \\*\\) <synthetic pointer>" \
}
implptr_test_bar
+implptr_test_baz
implptr_test_foo