* c-decl.c (duplicate_decls): Conditionalize DECL_SAVED_TREE copy.
[official-gcc.git] / gcc / ada / a-timoio.adb
blob5fc3547a7d21c3a9100fdab381c6608099ce3ce5
1 ------------------------------------------------------------------------------
2 -- --
3 -- GNAT RUNTIME COMPONENTS --
4 -- --
5 -- A D A . T E X T _ I O . M O D U L A R _ I O --
6 -- --
7 -- B o d y --
8 -- --
9 -- $Revision: 1.3 $ --
10 -- --
11 -- Copyright (C) 1992,1993,1994,1995,1996 Free Software Foundation, Inc. --
12 -- --
13 -- GNAT is free software; you can redistribute it and/or modify it under --
14 -- terms of the GNU General Public License as published by the Free Soft- --
15 -- ware Foundation; either version 2, or (at your option) any later ver- --
16 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
17 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
18 -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
19 -- for more details. You should have received a copy of the GNU General --
20 -- Public License distributed with GNAT; see file COPYING. If not, write --
21 -- to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, --
22 -- MA 02111-1307, USA. --
23 -- --
24 -- As a special exception, if other files instantiate generics from this --
25 -- unit, or you link this unit with other files to produce an executable, --
26 -- this unit does not by itself cause the resulting executable to be --
27 -- covered by the GNU General Public License. This exception does not --
28 -- however invalidate any other reasons why the executable file might be --
29 -- covered by the GNU Public License. --
30 -- --
31 -- GNAT was originally developed by the GNAT team at New York University. --
32 -- It is now maintained by Ada Core Technologies Inc (http://www.gnat.com). --
33 -- --
34 ------------------------------------------------------------------------------
36 with Ada.Text_IO.Modular_Aux;
38 with System.Unsigned_Types; use System.Unsigned_Types;
40 package body Ada.Text_IO.Modular_IO is
42 package Aux renames Ada.Text_IO.Modular_Aux;
44 ---------
45 -- Get --
46 ---------
48 procedure Get
49 (File : in File_Type;
50 Item : out Num;
51 Width : in Field := 0)
53 pragma Unsuppress (Range_Check);
55 begin
56 if Num'Size > Unsigned'Size then
57 Aux.Get_LLU (File, Long_Long_Unsigned (Item), Width);
58 else
59 Aux.Get_Uns (File, Unsigned (Item), Width);
60 end if;
62 exception
63 when Constraint_Error => raise Data_Error;
64 end Get;
66 procedure Get
67 (Item : out Num;
68 Width : in Field := 0)
70 pragma Unsuppress (Range_Check);
72 begin
73 if Num'Size > Unsigned'Size then
74 Aux.Get_LLU (Current_In, Long_Long_Unsigned (Item), Width);
75 else
76 Aux.Get_Uns (Current_In, Unsigned (Item), Width);
77 end if;
79 exception
80 when Constraint_Error => raise Data_Error;
81 end Get;
83 procedure Get
84 (From : in String;
85 Item : out Num;
86 Last : out Positive)
88 pragma Unsuppress (Range_Check);
90 begin
91 if Num'Size > Unsigned'Size then
92 Aux.Gets_LLU (From, Long_Long_Unsigned (Item), Last);
93 else
94 Aux.Gets_Uns (From, Unsigned (Item), Last);
95 end if;
97 exception
98 when Constraint_Error => raise Data_Error;
99 end Get;
101 ---------
102 -- Put --
103 ---------
105 procedure Put
106 (File : in File_Type;
107 Item : in Num;
108 Width : in Field := Default_Width;
109 Base : in Number_Base := Default_Base)
111 begin
112 if Num'Size > Unsigned'Size then
113 Aux.Put_LLU (File, Long_Long_Unsigned (Item), Width, Base);
114 else
115 Aux.Put_Uns (File, Unsigned (Item), Width, Base);
116 end if;
117 end Put;
119 procedure Put
120 (Item : in Num;
121 Width : in Field := Default_Width;
122 Base : in Number_Base := Default_Base)
124 begin
125 if Num'Size > Unsigned'Size then
126 Aux.Put_LLU (Current_Out, Long_Long_Unsigned (Item), Width, Base);
127 else
128 Aux.Put_Uns (Current_Out, Unsigned (Item), Width, Base);
129 end if;
130 end Put;
132 procedure Put
133 (To : out String;
134 Item : in Num;
135 Base : in Number_Base := Default_Base)
137 begin
138 if Num'Size > Unsigned'Size then
139 Aux.Puts_LLU (To, Long_Long_Unsigned (Item), Base);
140 else
141 Aux.Puts_Uns (To, Unsigned (Item), Base);
142 end if;
143 end Put;
145 end Ada.Text_IO.Modular_IO;