(Create_Small_Float_Vector): New function.
* gdb.ada/array_return/pck.adb (Create_Small_Float_Vector): Add
function body.
* gdb.ada/array_return/p.adb: Use new type and function from
package Pck.
* gdb.ada/array_return.exp: Add a test verifying that GDB is
able to print the value returned by a function returning an
array of float.
+2006-12-27 Joel Brobecker <brobecker@adacore.com>
+
+ * gdb.ada/array_return/pck.ads (Small_Float_Vector): New type.
+ (Create_Small_Float_Vector): New function.
+ * gdb.ada/array_return/pck.adb (Create_Small_Float_Vector): Add
+ function body.
+ * gdb.ada/array_return/p.adb: Use new type and function from
+ package Pck.
+ * gdb.ada/array_return.exp: Add a test verifying that GDB is
+ able to print the value returned by a function returning an
+ array of float.
+
2006-12-20 Joel Brobecker <brobecker@adacore.com>
* gdb.arch/i386-prologue.exp: Remove calls to setup_kfail.
2006-12-20 Joel Brobecker <brobecker@adacore.com>
* gdb.arch/i386-prologue.exp: Remove calls to setup_kfail.
"Breakpoint \[0-9\]+ at.*: file .*pck.adb, line \[0-9\]+." \
"insert breakpoint in create_large"
"Breakpoint \[0-9\]+ at.*: file .*pck.adb, line \[0-9\]+." \
"insert breakpoint in create_large"
+gdb_test "break create_small_float_vector" \
+ "Breakpoint \[0-9\]+ at.*: file .*pck.adb, line \[0-9\]+." \
+ "insert breakpoint in create_small_float_vector"
+
# Then continue until reaching the first breakpoint inside Create_Small,
# and then do a "finish".
gdb_test "cont" \
"Breakpoint \[0-9\]+, pck.create_small \\(\\).*" \
# Then continue until reaching the first breakpoint inside Create_Small,
# and then do a "finish".
gdb_test "cont" \
"Breakpoint \[0-9\]+, pck.create_small \\(\\).*" \
- "Continuing to Create.Small"
+ "Continuing to Create_Small"
gdb_test "finish" \
"Value returned is \\\$\[0-9\]+ = \\(1, 1\\)" \
gdb_test "finish" \
"Value returned is \\\$\[0-9\]+ = \\(1, 1\\)" \
gdb_test "cont" \
"Breakpoint \[0-9\]+, pck.create_large \\(\\).*" \
gdb_test "cont" \
"Breakpoint \[0-9\]+, pck.create_large \\(\\).*" \
- "Continuing to Create.Large"
+ "Continuing to Create_Large"
# On hppa32, the value returned is too large to be returned via a register.
# Instead, it is returned using the struct convention, and the debugger
# On hppa32, the value returned is too large to be returned via a register.
# Instead, it is returned using the struct convention, and the debugger
"Value returned is \\\$\[0-9\]+ = \\(2, 2, 2, 2\\)" \
"value printed by finish of Create_Large"
"Value returned is \\\$\[0-9\]+ = \\(2, 2, 2, 2\\)" \
"value printed by finish of Create_Large"
+# Now continue until reaching the third breakpoint, and then do another
+# "finish" again.
+
+gdb_test "cont" \
+ "Breakpoint \[0-9\]+, pck.create_small_float_vector \\(\\).*" \
+ "Continuing to Create_Small_Float_Vector"
+
+gdb_test "finish" \
+ "Value returned is \\\$\[0-9\]+ = \\(4.25, 4.25\\)" \
+ "value printed by finish of Create_Small_Float_Vector"
+
procedure P is
Small : Data_Small;
Large : Data_Large;
procedure P is
Small : Data_Small;
Large : Data_Large;
+ Vector : Small_Float_Vector;
begin
Small := Create_Small;
Large := Create_Large;
begin
Small := Create_Small;
Large := Create_Large;
+ Vector := Create_Small_Float_Vector;
+ Small (2) := Integer (Vector (1));
return (others => 2);
end Create_Large;
return (others => 2);
end Create_Large;
+ function Create_Small_Float_Vector return Small_Float_Vector is
+ begin
+ return (others => 4.25);
+ end Create_Small_Float_Vector;
+
type Data_Small is array (1 .. 2) of Integer;
type Data_Large is array (1 .. 4) of Integer;
type Data_Small is array (1 .. 2) of Integer;
type Data_Large is array (1 .. 4) of Integer;
+ type Small_Float_Vector is array (1 .. 2) of Float;
+
function Create_Small return Data_Small;
function Create_Large return Data_Large;
function Create_Small return Data_Small;
function Create_Large return Data_Large;
+ function Create_Small_Float_Vector return Small_Float_Vector;