Linux x86 low-level debug register comment synchronization
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.dwarf2 / implptr.exp
index 8f9b5fb41b4df54c6bdf063025dbbee22b83609e..6ffb8fe66d17ae89f732a46b9f5ee3ca65d9f7ad 100644 (file)
@@ -1,4 +1,4 @@
-# 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
@@ -21,10 +21,8 @@ if {![dwarf2_support]} {
     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] {
@@ -36,10 +34,13 @@ 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
 }
@@ -52,16 +53,32 @@ proc implptr_test_bar {} {
        "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>" \
@@ -78,4 +95,5 @@ proc implptr_test_foo {} {
 }
 
 implptr_test_bar
+implptr_test_baz
 implptr_test_foo
This page took 0.025344 seconds and 4 git commands to generate.