OSDN Git Service

* gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gnat.dg / opt7.adb
1 -- { dg-do compile }\r
2 -- { dg-options "-Os -g" }\r
3 \r
4 with Opt7_Pkg;\r
5 \r
6 package body Opt7 is\r
7 \r
8    procedure Parse (Str       :     String;\r
9                     Time_Type : out time_t;\r
10                     Abs_Time  : out Time;\r
11                     Delt_Time : out Duration) is\r
12       Year         : Year_Number;\r
13       Month        : Month_Number;\r
14       Day          : Day_Number;\r
15       Minute       : Integer := 0;\r
16       Idx          : Integer := Str'First;\r
17       Ch           : Character := Str (Idx);\r
18       Current_Time : Time;\r
19 \r
20    begin\r
21       if Ch = '-' then\r
22          Time_Type := Absolute_Time;\r
23          Current_Time := Clock;\r
24          Day   := Ada.Calendar.Day (Current_Time);\r
25          Month := Ada.Calendar.Month (Current_Time);\r
26          Year  := Ada.Calendar.Year (Current_Time);\r
27       else\r
28          Time_Type := Delta_Time;\r
29       end if;\r
30       while Ch in '0' .. '9' loop\r
31          Minute := Minute + Character'Pos (Ch);\r
32          Idx := Idx + 1;\r
33          Ch  := Str (Idx);\r
34       end loop;\r
35       if Time_Type = Absolute_Time then\r
36          Abs_Time := Time_Of (Year, Month, Day, Day_Duration (1));\r
37       else\r
38          Delt_Time := Duration (Float (Minute));\r
39       end if;\r
40    exception\r
41       when others => Opt7_Pkg.My_Raise_Exception;\r
42    end;\r
43 \r
44 end Opt7;\r