From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6733 invoked by alias); 19 Mar 2009 13:49:00 -0000 Received: (qmail 6479 invoked by uid 22791); 19 Mar 2009 13:48:58 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from mel.act-europe.fr (HELO mel.act-europe.fr) (212.99.106.210) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 19 Mar 2009 13:48:52 +0000 Received: from localhost (localhost [127.0.0.1]) by filtered-smtp.eu.adacore.com (Postfix) with ESMTP id EBF02290014 for ; Thu, 19 Mar 2009 14:48:49 +0100 (CET) Received: from mel.act-europe.fr ([127.0.0.1]) by localhost (smtp.eu.adacore.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id O+juyVYMvaTZ for ; Thu, 19 Mar 2009 14:48:47 +0100 (CET) Received: from province.act-europe.fr (province.act-europe.fr [10.10.0.214]) by mel.act-europe.fr (Postfix) with ESMTP id 8F3F3290026 for ; Thu, 19 Mar 2009 14:48:47 +0100 (CET) Received: by province.act-europe.fr (Postfix, from userid 560) id 883D1165D82; Thu, 19 Mar 2009 14:48:47 +0100 (CET) Date: Thu, 19 Mar 2009 13:56:00 -0000 From: Jerome Guitton To: gdb-patches@sourceware.org Subject: [RFA/testsuite/ada] fixed-point types with overprecise deltas Message-ID: <20090319134847.GA45308@adacore.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="G4iJoqBmSsgzjUCe" Content-Disposition: inline User-Agent: Mutt/1.5.17 (2007-11-01) Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-03/txt/msg00395.txt.bz2 --G4iJoqBmSsgzjUCe Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-length: 323 This is a new testcase for a bug with Ada fixed-point types, fixed by this patch: http://sourceware.org/ml/gdb-patches/2009-03/msg00186.html OK to apply? 2009-03-19 Jerome Guitton * gdb.ada/fixed_points/fixed_points.adb: Add a test on overprecise deltas. * gdb.ada/fixed_points.exp: Ditto. --G4iJoqBmSsgzjUCe Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="fixed_point_test.diff" Content-length: 2953 Index: fixed_points.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.ada/fixed_points.exp,v retrieving revision 1.10 diff -u -p -r1.10 fixed_points.exp --- fixed_points.exp 3 Jan 2009 05:57:58 -0000 1.10 +++ fixed_points.exp 19 Mar 2009 12:09:59 -0000 @@ -37,6 +37,8 @@ gdb_load ${binfile} set bp_location [gdb_get_line_number "Set breakpoint here" ${testdir}/fixed_points.adb] runto "fixed_points.adb:$bp_location" +# Fixed point subtypes: + gdb_test "print base_object" \ "= -50" \ "p on a fixed point type" @@ -48,3 +50,11 @@ gdb_test "print subtype_object" \ gdb_test "print new_type_object" \ "= -50" \ "p on a new fixed point type" + +# Overprecise delta: + +gdb_test "print Overprecise_Object" \ + "= 0.13579135791" + +gdb_test "ptype Overprecise_Object" \ + "= delta 0.135791" Index: fixed_points/fixed_points.adb =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb,v retrieving revision 1.5 diff -u -p -r1.5 fixed_points.adb --- fixed_points/fixed_points.adb 3 Jan 2009 05:57:59 -0000 1.5 +++ fixed_points/fixed_points.adb 19 Mar 2009 12:09:59 -0000 @@ -17,22 +17,47 @@ with System; procedure Fixed_Points is + ------------ + -- Test 1 -- + ------------ + + -- Fixed point subtypes + type Base_Fixed_Point_Type is delta 1.0 / 16.0 range (System.Min_Int / 2) * 1.0 / 16.0 .. (System.Max_Int / 2) * 1.0 / 16.0; - subtype Fixed_Point_Subtype is - Base_Fixed_Point_Type range -50.0 .. 50.0; + subtype Fixed_Point_Subtype is + Base_Fixed_Point_Type range -50.0 .. 50.0; + + type New_Fixed_Point_Type is + new Base_Fixed_Point_Type range -50.0 .. 50.0; + + Base_Object : Base_Fixed_Point_Type := -50.0; + Subtype_Object : Fixed_Point_Subtype := -50.0; + New_Type_Object : New_Fixed_Point_Type := -50.0; + + + ------------ + -- Test 2 -- + ------------ + + -- Overprecise delta + + Overprecise_Delta : constant := 0.135791357913579; + -- delta whose significant figures cannot be stored into a long. + + type Overprecise_Fixed_Point is + delta Overprecise_Delta range 0.0 .. 200.0; + for Overprecise_Fixed_Point'Small use Overprecise_Delta; - type New_Fixed_Point_Type is - new Base_Fixed_Point_Type range -50.0 .. 50.0; + Overprecise_Object : Overprecise_Fixed_Point := + Overprecise_Fixed_Point'Small; - Base_Object : Base_Fixed_Point_Type := -50.0; - Subtype_Object : Fixed_Point_Subtype := -50.0; - New_Type_Object : New_Fixed_Point_Type := -50.0; begin Base_Object := 1.0/16.0; -- Set breakpoint here Subtype_Object := 1.0/16.0; New_Type_Object := 1.0/16.0; + Overprecise_Object := Overprecise_Fixed_Point'Small * 2; end Fixed_Points; --G4iJoqBmSsgzjUCe--