gdb: Remove C++ symbol aliases from completion list
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.ada / formatted_ref.exp
index 4029aeb8b3c239bbe09e5f61cbb82350e405de7b..8376513a784ba646dc4abe5ba282d4ff11ca67fa 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 2007, 2008 Free Software Foundation, Inc.
+# Copyright 2007-2020 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
 # tests because only a few parameter types in Ada are required to be 
 # passed by reference, and there is no equivalent of &(&x) for reference
 # values.
-
-if $tracelevel then {
-       strace $tracelevel
-}
+# This also tests that some other arithmetic operations on references
+# work properly: condition expression using a reference object as one of its
+# operand.
 
 load_lib "ada.exp"
 
-set testdir "formatted_ref"
-set testfile "${testdir}/formatted_ref"
-set srcfile ${srcdir}/${subdir}/${testfile}.adb
-set binfile ${objdir}/${subdir}/${testfile}
-
+standard_ada_testfile formatted_ref
 
-file mkdir ${objdir}/${subdir}/${testdir}
 if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" } {
     untested formatted-ref.exp
     return -1
@@ -43,16 +37,13 @@ proc get_address { var } {
     global expect_out
     global gdb_prompt
 
-    send_gdb "print $var'access\n"
-    gdb_expect {
+    gdb_test_multiple "print $var'access" "address of $var" {
        -re "\\$\[0-9\]+ = \\(.*\\) (0x\[0-9a-f\]+).*$gdb_prompt $" {
             return $expect_out(1,string)
-       }
-        timeout { 
-           perror "couldn't find address of $var"
-           return ""
         }
     }
+    perror "couldn't find address of $var"
+    return ""
 }
 
 proc test_p_x { var val addr } {
@@ -76,22 +67,26 @@ proc test_p_x { var val addr } {
 proc test_p_x_addr { var addr } {
     global gdb_prompt
 
-    set test "print/x $var'access"
-    gdb_test_multiple $test $test {
-        -re "\\$\[0-9\]+ = $addr.*$gdb_prompt $" {
-           pass $test
-       } 
-       -re "\\$\[0-9\]+ = 0x\[a-f0-9+\]+.*$gdb_prompt $" {
-            fail "$test (prints unexpected address)"
-        }
+    foreach attr {access unchecked_access unrestricted_access} {
+       set test "print/x $var'$attr"
+       gdb_test_multiple $test $test {
+           -re "\\$\[0-9\]+ = $addr.*$gdb_prompt $" {
+               pass $test
+           }
+           -re "\\$\[0-9\]+ = 0x\[a-f0-9+\]+.*$gdb_prompt $" {
+               fail "$test (prints unexpected address)"
+           }
+       }
     }
     return 0
 }
 
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
+proc test_p_op1_equals_op2 {op1 op2} {
+    set test "print $op1 = $op2"
+    gdb_test $test "\\$\[0-9\]+ = true"
+}
+
+clean_restart ${testfile}
 
 runto defs.adb:[gdb_get_line_number "marker here" ${testdir}/defs.adb ]
 
@@ -100,3 +95,5 @@ set s1_address  [get_address "s1"]
 test_p_x "s" "(x => 0xd, y => 0x13)" $s1_address
 
 test_p_x_addr "s" $s1_address
+
+test_p_op1_equals_op2 "s.x" "13"
This page took 0.026609 seconds and 4 git commands to generate.