Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
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"
+

             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