From: Joel Brobecker <brobecker@adacore.com>
To: gdb-patches@sourceware.org
Subject: [RFA/testsuite/ada] Add test with function returning "small" array of floats
Date: Tue, 26 Dec 2006 05:51:00 -0000 [thread overview]
Message-ID: <20061226055233.GK3640@adacore.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 774 bytes --]
Hello,
Following a question raised by Mark in:
http://www.sourceware.org/ml/gdb-patches/2006-12/msg00312.html
I decided to add a test in gdb.ada/array_return to cover that case.
2006-12-26 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.
Tested on sparc64-solaris. OK to apply?
Thank you,
--
Joel
[-- Attachment #2: float-array-return.diff --]
[-- Type: text/plain, Size: 3778 bytes --]
Index: array_return/pck.ads
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.ada/array_return/pck.ads,v
retrieving revision 1.2
diff -u -p -r1.2 pck.ads
--- array_return/pck.ads 6 Oct 2006 18:05:58 -0000 1.2
+++ array_return/pck.ads 26 Dec 2006 05:32:06 -0000
@@ -20,8 +20,11 @@ package Pck is
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_Float_Vector return Small_Float_Vector;
end Pck;
Index: array_return/pck.adb
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.ada/array_return/pck.adb,v
retrieving revision 1.2
diff -u -p -r1.2 pck.adb
--- array_return/pck.adb 6 Oct 2006 18:05:58 -0000 1.2
+++ array_return/pck.adb 26 Dec 2006 05:32:06 -0000
@@ -27,4 +27,9 @@ package body Pck is
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;
+
end Pck;
Index: array_return/p.adb
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.ada/array_return/p.adb,v
retrieving revision 1.2
diff -u -p -r1.2 p.adb
--- array_return/p.adb 6 Oct 2006 18:05:58 -0000 1.2
+++ array_return/p.adb 26 Dec 2006 05:32:06 -0000
@@ -20,8 +20,11 @@ with Pck; use Pck;
procedure P is
Small : Data_Small;
Large : Data_Large;
+ Vector : Small_Float_Vector;
begin
Small := Create_Small;
Large := Create_Large;
+ Vector := Create_Small_Float_Vector;
Small (1) := Large (1);
+ Small (2) := Integer (Vector (1));
end P;
Index: array_return.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.ada/array_return.exp,v
retrieving revision 1.2
diff -u -p -r1.2 array_return.exp
--- array_return.exp 7 Feb 2006 19:37:46 -0000 1.2
+++ array_return.exp 26 Dec 2006 05:32:06 -0000
@@ -54,12 +54,16 @@ gdb_test "break 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 \\(\\).*" \
- "Continuing to Create.Small"
+ "Continuing to Create_Small"
gdb_test "finish" \
"Value returned is \\\$\[0-9\]+ = \\(1, 1\\)" \
@@ -70,7 +74,7 @@ gdb_test "finish" \
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
@@ -84,3 +88,14 @@ gdb_test "finish" \
"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"
+
next reply other threads:[~2006-12-26 5:51 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-26 5:51 Joel Brobecker [this message]
2006-12-26 14:07 ` Mark Kettenis
2006-12-26 15:21 ` Daniel Jacobowitz
2006-12-27 6:16 ` Joel Brobecker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20061226055233.GK3640@adacore.com \
--to=brobecker@adacore.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox