OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [ada/] [acats/] [tests/] [c4/] [c456001.a] - Blame information for rev 720

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 720 jeremybenn
-- C456001.A
2
--
3
--                             Grant of Unlimited Rights
4
--
5
--     The Ada Conformity Assessment Authority (ACAA) holds unlimited
6
--     rights in the software and documentation contained herein. Unlimited
7
--     rights are the same as those granted by the U.S. Government for older
8
--     parts of the Ada Conformity Assessment Test Suite, and are defined
9
--     in DFAR 252.227-7013(a)(19). By making this public release, the ACAA
10
--     intends to confer upon all recipients unlimited rights equal to those
11
--     held by the ACAA. These rights include rights to use, duplicate,
12
--     release or disclose the released technical data and computer software
13
--     in whole or in part, in any manner and for any purpose whatsoever, and
14
--     to have or permit others to do so.
15
--
16
--                                    DISCLAIMER
17
--
18
--     ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
19
--     DISCLOSED ARE AS IS. THE ACAA MAKES NO EXPRESS OR IMPLIED
20
--     WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
21
--     SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
22
--     OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
23
--     PARTICULAR PURPOSE OF SAID MATERIAL.
24
--
25
--                                     Notice
26
--
27
--    The ACAA has created and maintains the Ada Conformity Assessment Test
28
--    Suite for the purpose of conformity assessments conducted in accordance
29
--    with the International Standard ISO/IEC 18009 - Ada: Conformity
30
--    assessment of a language processor. This test suite should not be used
31
--    to make claims of conformance unless used in accordance with
32
--    ISO/IEC 18009 and any applicable ACAA procedures.
33
--
34
--*
35
-- OBJECTIVE:
36
--     For exponentiation of floating point types, check that
37
--       Constraint_Error is raised (or, if no exception is raised and
38
--       Machine_Overflows is False, that a result is produced) if the
39
--       result is outside of the range of the base type.
40
--     This tests digits 5.
41
 
42
-- HISTORY:
43
--     04/30/03  RLB  Created test from old C45622A and C45624A.
44
 
45
with Report;
46
 
47
procedure C456001 is
48
 
49
     type Flt is digits 5;
50
 
51
     F : Flt;
52
 
53
     function Equal_Flt (One, Two : Flt) return Boolean is
54
         -- Break optimization.
55
     begin
56
          return One = Two * Flt (Report.Ident_Int(1));
57
     end Equal_Flt;
58
 
59
begin
60
     Report.Test ("C456001", "For exponentiation of floating point types, " &
61
                      "check that Constraint_Error is raised (or, if " &
62
                      "if no exception is raised and Machine_Overflows is " &
63
                      "False, that a result is produced) if the result is " &
64
                      "outside of the range of the base type.");
65
 
66
     begin
67
         F := (Flt'Base'Last)**Report.Ident_Int (2);
68
         if Flt'Machine_Overflows Then
69
             Report.Failed ("Constraint_Error was not raised for " &
70
                       "exponentiation");
71
         else
72
             -- RM95 3.5.6(7) allows disobeying RM95 4.5(10) if
73
             -- Machine_Overflows is False.
74
             Report.Comment ("Constraint_Error was not raised for " &
75
                       "exponentiation and Machine_Overflows is False");
76
         end if;
77
         if not Equal_Flt (F, F) then
78
             -- Optimization breaker, F must be evaluated.
79
             Report.Comment ("Don't optimize F");
80
         end if;
81
     exception
82
         when Constraint_Error =>
83
             Report.Comment ("Constraint_Error was raised for " &
84
                             "exponentiation");
85
         when others =>
86
             Report.Failed ("An exception other than Constraint_Error " &
87
                            "was raised for exponentiation");
88
     end;
89
 
90
     Report.Result;
91
end C456001;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.