OSDN Git Service

* s-stalib.adb: Add more comments on with statements being needed
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2001-12-12  Robert Dewar <dewar@gnat.com>
2
3         * s-stalib.adb: Add more comments on with statements being needed
4         
5         * par-ch12.adb: Minor reformatting
6         
7         * prj-dect.ads: Fix copyright header
8         
9         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both 
10         inputs fit in 32 bits, but the result still overflows.
11         
12         * s-fatgen.ads: Minor comment improvement
13         
14 2001-12-12  Ed Schonberg <schonber@gnat.com>
15
16         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a 
17         formal derived type, look for an inherited component from the full 
18         view of the parent, if any.
19         
20 2001-12-12  Robert Dewar <dewar@gnat.com>
21
22         * checks.ads (Apply_Alignment_Check): New procedure.
23         
24         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to 
25         ensure that the alignment of objects with address clauses is 
26         appropriate, and raise PE if not.
27
28         * exp_util.ads (Must_Be_Aligned): Removed, replaced by 
29         Exp_Pakd.Known_Aligned_Enough
30         
31         * mdllfile.ads: Minor reformatting
32
33         * mlib-fil.ads: Minor reformatting
34         
35 2001-12-12  Ed Schonberg <schonber@gnat.com>
36
37         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous 
38         fix to any component reference if enclosing record has non-standard 
39         representation.
40         
41 2001-12-12  Vincent Celier <celier@gnat.com>
42
43         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package 
44         Iteration
45         
46 2001-12-12  Ed Schonberg <schonber@gnat.com>
47
48         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in 
49         sem_attr.
50         
51 2001-12-12  Robert Dewar <dewar@gnat.com>
52
53         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
54         
55 2001-12-12  Emmanuel Briot <briot@gnat.com>
56
57         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
58         and it adds dependencies to system.io.
59         
60 2001-12-12  Pascal Obry <obry@gnat.com>
61
62         * g-dirope.adb (Expand_Path.Var): Correctly detect end of 
63         variable name.
64
65 *** s-stalib.adb        2001/09/03 15:24:33     1.17
66 --- s-stalib.adb        2001/10/16 13:14:46     1.18
67 ***************
68 *** 46,59 ****
69   --  elaboration circularities with Ada.Exceptions if polling is on.
70   
71   with System.Soft_Links;
72 ! --  Referenced directly from generated code
73 ! --  Also referenced from exception handling routines.
74   --  This is needed for programs that don't use exceptions explicitely but
75   --  direct calls to Ada.Exceptions are generated by gigi (for example,
76   --  by calling __gnat_raise_constraint_error directly).
77   
78   with System.Memory;
79 ! --  Referenced directly from generated code
80   
81   package body System.Standard_Library is
82   
83 --- 46,62 ----
84   --  elaboration circularities with Ada.Exceptions if polling is on.
85   
86   with System.Soft_Links;
87 ! --  Referenced directly from generated code using external symbols so it
88 ! --  must always be present in a build, even if no unit has a direct with
89 ! --  of this unit. Also referenced from exception handling routines.
90   --  This is needed for programs that don't use exceptions explicitely but
91   --  direct calls to Ada.Exceptions are generated by gigi (for example,
92   --  by calling __gnat_raise_constraint_error directly).
93   
94   with System.Memory;
95 ! --  Referenced directly from generated code using external symbols, so it
96 ! --  must always be present in a build, even if no unit has a direct with
97 ! --  of this unit.
98   
99   package body System.Standard_Library is
100   
101
102 *** par-ch12.adb        2001/10/19 15:22:18     1.48
103 --- par-ch12.adb        2001/10/19 15:24:48     1.49
104 ***************
105 *** 452,466 ****
106         if Def_Node /= Error then
107            Set_Formal_Type_Definition (Decl_Node, Def_Node);
108            TF_Semicolon;
109         else
110            Decl_Node := Error;
111   
112            if Token = Tok_Semicolon then
113 -             --   Avoid further cascaded errors.
114               Scan;
115            end if;
116         end if;
117
118   
119         return Decl_Node;
120      end P_Formal_Type_Declaration;
121 --- 452,467 ----
122         if Def_Node /= Error then
123            Set_Formal_Type_Definition (Decl_Node, Def_Node);
124            TF_Semicolon;
125
126         else
127            Decl_Node := Error;
128   
129 +          --  If we have semicolon, skip it to avoid cascaded errors
130
131            if Token = Tok_Semicolon then
132               Scan;
133            end if;
134         end if;
135   
136         return Decl_Node;
137      end P_Formal_Type_Declaration;
138
139 *** prj-dect.ads        2001/10/20 10:28:13     1.4
140 --- prj-dect.ads        2001/10/20 11:43:56     1.5
141 ***************
142 *** 8,14 ****
143   --                                                                          --
144   --                            $Revision$
145   --                                                                          --
146 ! --          Copyright (C) 2000-2001 Free Software Foundation, Inc.          --
147   --                                                                          --
148   -- GNAT is free software;  you can  redistribute it  and/or modify it under --
149   -- terms of the  GNU General Public License as published  by the Free Soft- --
150 --- 8,14 ----
151   --                                                                          --
152   --                            $Revision$
153   --                                                                          --
154 ! --             Copyright (C) 2001 Free Software Foundation, Inc.            --
155   --                                                                          --
156   -- GNAT is free software;  you can  redistribute it  and/or modify it under --
157   -- terms of the  GNU General Public License as published  by the Free Soft- --
158
159 *** s-arit64.adb        2001/02/09 15:10:29     1.16
160 --- s-arit64.adb        2001/10/20 14:50:39     1.17
161 ***************
162 *** 325,337 ****
163               T2 := Xhi * Ylo;
164            end if;
165   
166 !       else
167 !          if Yhi /= 0 then
168 !             T2 := Xlo * Yhi;
169 !          else
170 !             return X * Y;
171 !          end if;
172         end if;
173   
174         T1 := Xlo * Ylo;
175         T2 := T2 + Hi (T1);
176 --- 325,339 ----
177               T2 := Xhi * Ylo;
178            end if;
179   
180 !       elsif Yhi /= 0 then
181 !          T2 := Xlo * Yhi;
182
183 !       else -- Yhi = Xhi = 0
184 !          T2 := 0;
185         end if;
186
187 +       --  Here we have T2 set to the contribution to the upper half
188 +       --  of the result from the upper halves of the input values.
189   
190         T1 := Xlo * Ylo;
191         T2 := T2 + Hi (T1);
192
193 *** s-fatgen.ads        2001/07/20 00:59:34     1.9
194 --- s-fatgen.ads        2001/10/20 18:37:39     1.10
195 ***************
196 *** 89,97 ****
197   
198      function Unbiased_Rounding (X : T)                       return T;
199   
200 !    function Valid             (X : access T)                return Boolean;
201 !    --  The argument must be passed by reference here, as T may be
202 !    --  an abnormal value that can be passed in a floating point register.
203   
204   private
205      pragma Inline (Machine);
206 --- 89,100 ----
207   
208      function Unbiased_Rounding (X : T)                       return T;
209   
210 !    function Valid (X : access T) return Boolean;
211 !    --  This function checks if the object of type T referenced by X
212 !    --  is valid, and returns True/False accordingly. The parameter is
213 !    --  passed by reference (access) here, as the object of type T may
214 !    --  be an abnormal value that cannot be passed in a floating-point
215 !    --  register, and the whole point of 'Valid is to prevent exceptions.
216   
217   private
218      pragma Inline (Machine);
219
220 *** sem_ch4.adb 2001/09/24 22:32:31     1.511
221 --- sem_ch4.adb 2001/10/21 17:41:52     1.512
222 ***************
223 *** 2691,2696 ****
224 --- 2691,2708 ----
225   
226               Check_Misspelled_Selector (Entity_List, Sel);
227   
228 +          elsif Is_Generic_Type (Prefix_Type)
229 +            and then Ekind (Prefix_Type) = E_Record_Type_With_Private
230 +            and then Is_Record_Type (Etype (Prefix_Type))
231 +          then
232 +             --  If this is a derived formal type, the parent may have a
233 +             --  different visibility at this point. Try for an inherited
234 +             --  component before reporting an error.
235
236 +             Set_Etype (Prefix (N), Etype (Prefix_Type));
237 +             Analyze_Selected_Component (N);
238 +             return;
239
240            else
241               if Ekind (Prefix_Type) = E_Record_Subtype then
242   
243
244 *** checks.ads  2001/07/16 01:26:04     1.55
245 --- checks.ads  2001/10/28 15:13:02     1.56
246 ***************
247 *** 83,88 ****
248 --- 83,95 ----
249      --  the object denoted by the access parameter is not deeper than the
250      --  level of the type Typ. Program_Error is raised if the check fails.
251   
252 +    procedure Apply_Alignment_Check (E : Entity_Id; N : Node_Id);
253 +    --  E is the entity for an object. If there is an address clause for
254 +    --  this entity, and checks are enabled, then this procedure generates
255 +    --  a check that the specified address has an alignment consistent with
256 +    --  the alignment of the object, raising PE if this is not the case. The
257 +    --  resulting check (if one is generated) is inserted before node N.
258
259      procedure Apply_Array_Size_Check (N : Node_Id; Typ : Entity_Id);
260      --  N is the node for an object declaration that declares an object of
261      --  array type Typ. This routine generates, if necessary, a check that
262
263 *** exp_ch13.adb        2001/07/16 21:21:29     1.76
264 --- exp_ch13.adb        2001/10/28 15:13:25     1.77
265 ***************
266 *** 27,32 ****
267 --- 27,33 ----
268   ------------------------------------------------------------------------------
269   
270   with Atree;    use Atree;
271 + with Checks;   use Checks;
272   with Einfo;    use Einfo;
273   with Exp_Ch3;  use Exp_Ch3;
274   with Exp_Ch6;  use Exp_Ch6;
275 ***************
276 *** 236,245 ****
277         Decl           : Node_Id;
278   
279      begin
280 !       if not Is_Type (E) and then not Is_Subprogram (E) then
281            return;
282         end if;
283   
284         E_Scope := Scope (E);
285   
286         --  If we are freezing entities defined in protected types, they
287 --- 237,256 ----
288         Decl           : Node_Id;
289   
290      begin
291 !       --  For object, with address clause, check alignment is OK
292
293 !       if Is_Object (E) then
294 !          Apply_Alignment_Check (E, N);
295
296 !       --  Only other items requiring any front end action are
297 !       --  types and subprograms.
298
299 !       elsif not Is_Type (E) and then not Is_Subprogram (E) then
300            return;
301         end if;
302   
303 +       --  Here E is a type or a subprogram
304
305         E_Scope := Scope (E);
306   
307         --  If we are freezing entities defined in protected types, they
308 ***************
309 *** 304,314 ****
310   
311         elsif Is_Subprogram (E) then
312            Freeze_Subprogram (N);
313
314 -       --  No other entities require any front end freeze actions
315
316 -       else
317 -          null;
318         end if;
319   
320         --  Analyze actions generated by freezing. The init_proc contains
321 --- 315,320 ----
322
323 *** exp_util.ads        2001/07/23 10:05:17     1.112
324 --- exp_util.ads        2001/10/28 15:14:04     1.113
325 ***************
326 *** 372,386 ****
327      --  routine is to help avoid generating troublesome temporaries that
328      --  intefere with the stack checking mechanism.
329   
330 -    function Must_Be_Aligned (Obj : Node_Id) return Boolean;
331 -    --  Given an object reference, determines whether or not the object
332 -    --  is required to be aligned according to its type'alignment value.
333 -    --  Normally, objects are required to be aligned, and the result will
334 -    --  be True. The situation in which this is not the case is if the
335 -    --  object reference involves a component of a packed array, where
336 -    --  the type of the component is not required to have strict alignment.
337 -    --  In this case, false will be returned.
338
339      procedure Remove_Side_Effects
340        (Exp          : Node_Id;
341         Name_Req     : Boolean := False;
342 --- 372,377 ----
343
344 *** mdllfile.ads        2001/10/29 02:06:24     1.2
345 --- mdllfile.ads        2001/10/29 02:50:12     1.3
346 ***************
347 *** 26,52 ****
348   --                                                                          --
349   ------------------------------------------------------------------------------
350   
351 ! --  Simple services used by GNATDLL to deal with Filename extension.
352   
353   package MDLL.Files is
354   
355      No_Ext : constant String := "";
356   
357 !    function Get_Ext (Filename : in String)
358 !                      return String;
359 !    --  return filename's extension.
360
361 !    function Is_Ali (Filename : in String)
362 !                     return Boolean;
363 !    --  test if Filename is an Ada library file (.ali).
364
365 !    function Is_Obj (Filename : in String)
366 !                     return Boolean;
367 !    --  test if Filename is an object file (.o or .obj).
368
369 !    function Ext_To (Filename : in String;
370 !                     New_Ext  : in String := No_Ext)
371 !                     return String;
372 !    --  return Filename with the extension change to New_Ext.
373   
374   end MDLL.Files;
375 --- 26,51 ----
376   --                                                                          --
377   ------------------------------------------------------------------------------
378   
379 ! --  Simple services used by GNATDLL to deal with Filename extension
380   
381   package MDLL.Files is
382   
383      No_Ext : constant String := "";
384 +    --  Used to mark the absence of an extension
385   
386 !    function Get_Ext (Filename : String) return String;
387 !    --  Return extension of Filename
388
389 !    function Is_Ali (Filename : String) return Boolean;
390 !    --  Test if Filename is an Ada library file (.ali).
391
392 !    function Is_Obj (Filename : String) return Boolean;
393 !    --  Test if Filename is an object file (.o or .obj)
394
395 !    function Ext_To
396 !      (Filename : String;
397 !       New_Ext  : String := No_Ext)
398 !       return     String;
399 !    --  Return Filename with the extension change to New_Ext
400   
401   end MDLL.Files;
402
403 *** mlib-fil.ads        2001/10/29 02:06:26     1.3
404 --- mlib-fil.ads        2001/10/29 02:51:28     1.4
405 ***************
406 *** 36,51 ****
407         return     String;
408      --  Return Filename with the extension change to New_Ext.
409   
410 !    function Get_Ext (Filename : in String) return String;
411      --  Return extension of filename.
412   
413      function Is_Archive (Filename : String) return Boolean;
414      --  Test if filename is an archive
415   
416 !    function Is_C (Filename : in String) return Boolean;
417      --  Test if Filename is a C file
418   
419 !    function Is_Obj (Filename : in String) return Boolean;
420      --  Test if Filename is an object file
421   
422   end MLib.Fil;
423 --- 36,51 ----
424         return     String;
425      --  Return Filename with the extension change to New_Ext.
426   
427 !    function Get_Ext (Filename : String) return String;
428      --  Return extension of filename.
429   
430      function Is_Archive (Filename : String) return Boolean;
431      --  Test if filename is an archive
432   
433 !    function Is_C (Filename : String) return Boolean;
434      --  Test if Filename is a C file
435   
436 !    function Is_Obj (Filename : String) return Boolean;
437      --  Test if Filename is an object file
438   
439   end MLib.Fil;
440
441 *** exp_ch8.adb 2001/10/03 02:17:32     1.30
442 --- exp_ch8.adb 2001/10/29 17:32:24     1.31
443 ***************
444 *** 59,65 ****
445      --  of the renamed object. The cases in which this is not true are when
446      --  this address is not computable, since it involves extraction of a
447      --  packed array element, or of a record component to which a component
448 !    --  clause applies (that can specify an arbitrary bit boundary).
449   
450      --  In these two cases, we pre-evaluate the renaming expression, by
451      --  extracting and freezing the values of any subscripts, and then we
452 --- 59,66 ----
453      --  of the renamed object. The cases in which this is not true are when
454      --  this address is not computable, since it involves extraction of a
455      --  packed array element, or of a record component to which a component
456 !    --  clause applies (that can specify an arbitrary bit boundary), or where
457 !    --  the enclosing record itself has a non-standard representation.
458   
459      --  In these two cases, we pre-evaluate the renaming expression, by
460      --  extracting and freezing the values of any subscripts, and then we
461 ***************
462 *** 211,228 ****
463               end if;
464   
465            elsif Nkind (Nam) = N_Selected_Component then
466 !             if Present (Component_Clause (Entity (Selector_Name (Nam)))) then
467 !                return True;
468   
469 !             elsif Ekind (Entity (Selector_Name (Nam))) = E_Discriminant
470 !               and then Is_Record_Type (Etype (Prefix (Nam)))
471 !               and then not Is_Concurrent_Record_Type (Etype (Prefix (Nam)))
472 !             then
473 !                return True;
474   
475 !             else
476 !                return Evaluation_Required (Prefix (Nam));
477 !             end if;
478   
479            else
480               return False;
481 --- 212,236 ----
482               end if;
483   
484            elsif Nkind (Nam) = N_Selected_Component then
485 !             declare
486 !                Rec_Type : Entity_Id := Etype (Prefix (Nam));
487   
488 !             begin
489 !                if Present (Component_Clause (Entity (Selector_Name (Nam))))
490 !                  or else Has_Non_Standard_Rep (Rec_Type)
491 !                then
492 !                   return True;
493
494 !                elsif Ekind (Entity (Selector_Name (Nam))) = E_Discriminant
495 !                  and then Is_Record_Type (Rec_Type)
496 !                  and then not Is_Concurrent_Record_Type (Rec_Type)
497 !                then
498 !                   return True;
499   
500 !                else
501 !                   return Evaluation_Required (Prefix (Nam));
502 !                end if;
503 !             end;
504   
505            else
506               return False;
507
508 *** g-dirope.ads        2001/08/27 09:48:38     1.12
509 --- g-dirope.ads        2001/10/29 19:18:13     1.13
510 ***************
511 *** 38,43 ****
512 --- 38,47 ----
513   --  can be treated as a file, using open and close routines, and a scanning
514   --  routine is provided for iterating through the entries in a directory.
515   
516 + --  See also child package GNAT.Directory_Operations.Iteration
517
518 + with Ada.Strings.Maps;
519
520   package GNAT.Directory_Operations is
521   
522      subtype Dir_Name_Str is String;
523 ***************
524 *** 187,248 ****
525      --  returned in target-OS form. Raises Directory_Error if Dir has not
526      --  be opened (Dir = Null_Dir).
527   
528 -    generic
529 -       with procedure Action
530 -         (Item  :        String;
531 -          Index :        Positive;
532 -          Quit  : in out Boolean);
533 -    procedure Wildcard_Iterator (Path : Path_Name);
534 -    --  Calls Action for each path matching Path. Path can include wildcards '*'
535 -    --  and '?' and [...]. The rules are:
536 -    --
537 -    --     *       can be replaced by any sequence of characters
538 -    --     ?       can be replaced by a single character
539 -    --     [a-z]   match one character in the range 'a' through 'z'
540 -    --     [abc]   match either character 'a', 'b' or 'c'
541 -    --
542 -    --  Item is the filename that has been matched. Index is set to one for the
543 -    --  first call and is incremented by one at each call. The iterator's
544 -    --  termination can be controlled by setting Quit to True. It is by default
545 -    --  set to False.
546 -    --
547 -    --  For example, if we have the following directory structure:
548 -    --     /boo/
549 -    --        foo.ads
550 -    --     /sed/
551 -    --        foo.ads
552 -    --        file/
553 -    --          foo.ads
554 -    --     /sid/
555 -    --        foo.ads
556 -    --        file/
557 -    --          foo.ads
558 -    --     /life/
559 -    --
560 -    --  A call with expression "/s*/file/*" will call Action for the following
561 -    --  items:
562 -    --     /sed/file/foo.ads
563 -    --     /sid/file/foo.ads
564
565 -    generic
566 -       with procedure Action
567 -         (Item  :        String;
568 -          Index :        Positive;
569 -          Quit  : in out Boolean);
570 -    procedure Find
571 -      (Root_Directory : Dir_Name_Str;
572 -       File_Pattern   : String);
573 -    --  Recursively searches the directory structure rooted at Root_Directory.
574 -    --  This provides functionality similar to the UNIX 'find' command.
575 -    --  Action will be called for every item matching the regular expression
576 -    --  File_Pattern (see GNAT.Regexp). Item is the full pathname to the file
577 -    --  starting with Root_Directory that has been matched. Index is set to one
578 -    --  for the first call and is incremented by one at each call. The iterator
579 -    --  will pass in the value False on each call to Action. The iterator will
580 -    --  terminate after passing the last matched path to Action or after
581 -    --  returning from a call to Action which sets Quit to True.
582 -    --  Raises GNAT.Regexp.Error_In_Regexp if File_Pattern is ill formed.
583
584      function Read_Is_Thread_Safe return Boolean;
585      --  Indicates if procedure Read is thread safe. On systems where the
586      --  target system supports this functionality, Read is thread safe,
587 --- 191,196 ----
588 ***************
589 *** 259,263 ****
590 --- 207,215 ----
591      Null_Dir : constant Dir_Type := null;
592   
593      pragma Import (C, Dir_Separator, "__gnat_dir_separator");
594
595 +    Dir_Seps : constant Ada.Strings.Maps.Character_Set :=
596 +                 Ada.Strings.Maps.To_Set ("/\");
597 +    --  UNIX and DOS style directory separators.
598   
599   end GNAT.Directory_Operations;
600
601 *** freeze.ads  2001/10/29 02:06:04     1.15
602 --- freeze.ads  2001/10/30 01:36:24     1.16
603 ***************
604 *** 205,210 ****
605 --- 205,215 ----
606      --  so need to be similarly treated. Freeze_Expression takes care of
607      --  determining the proper insertion point for generated freeze actions.
608   
609 +    procedure Freeze_Fixed_Point_Type (Typ : Entity_Id);
610 +    --  Freeze fixed point type. For fixed-point types, we have to defer
611 +    --  setting the size and bounds till the freeze point, since they are
612 +    --  potentially affected by the presence of size and small clauses.
613
614      procedure Freeze_Itype (T : Entity_Id; N : Node_Id);
615      --  This routine is called when an Itype is created and must be frozen
616      --  immediately at the point of creation (for the sake of the expansion
617
618 *** impunit.adb 2001/09/26 07:14:11     1.14
619 --- impunit.adb 2001/10/30 04:33:45     1.15
620 ***************
621 *** 195,200 ****
622 --- 195,201 ----
623        "g-curexc",    -- GNAT.Current_Exception
624        "g-debpoo",    -- GNAT.Debug_Pools
625        "g-debuti",    -- GNAT.Debug_Utilities
626 +      "g-diopit",    -- GNAT.Directory_Operations.Iteration
627        "g-dirope",    -- GNAT.Directory_Operations
628        "g-dyntab",    -- GNAT.Dynamic_Tables
629        "g-exctra",    -- GNAT.Exception_Traces
630
631 *** g-regexp.adb        2001/10/21 11:04:16     1.28
632 --- g-regexp.adb        2001/10/30 15:25:04     1.29
633 ***************
634 *** 32,38 ****
635   --                                                                          --
636   ------------------------------------------------------------------------------
637   
638 - with System.IO;
639   with Unchecked_Deallocation;
640   with Ada.Exceptions;
641   with GNAT.Case_Util;
642 --- 32,37 ----
643 ***************
644 *** 73,82 ****
645      end record;
646      --  Deterministic finite-state machine
647   
648 -    Debug : constant Boolean := False;
649 -    --  When True, the primary and secondary tables will be printed.
650 -    --  Gnat does not generate any code if this variable is False;
651
652      -----------------------
653      -- Local Subprograms --
654      -----------------------
655 --- 72,77 ----
656 ***************
657 *** 188,199 ****
658         pragma No_Return (Raise_Exception);
659         --  Raise an exception, indicating an error at character Index in S.
660   
661 -       procedure Print_Table
662 -         (Table      : Regexp_Array;
663 -          Num_States : State_Index;
664 -          Is_Primary : Boolean := True);
665 -       --  Print a table for debugging purposes
666
667         --------------------
668         -- Create_Mapping --
669         --------------------
670 --- 183,188 ----
671 ***************
672 *** 1225,1309 ****
673                  end loop;
674               end loop;
675   
676 -             if Debug then
677 -                System.IO.New_Line;
678 -                System.IO.Put_Line ("Secondary table : ");
679 -                Print_Table (R.States, Nb_State, False);
680 -             end if;
681
682               return (Ada.Finalization.Controlled with R => R);
683            end;
684         end Create_Secondary_Table;
685   
686 -       -----------------
687 -       -- Print_Table --
688 -       -----------------
689
690 -       procedure Print_Table
691 -         (Table      : Regexp_Array;
692 -          Num_States : State_Index;
693 -          Is_Primary : Boolean := True)
694 -       is
695 -          function Reverse_Mapping (N : Column_Index) return Character;
696 -          --  Return the character corresponding to a column in the mapping
697
698 -          ---------------------
699 -          -- Reverse_Mapping --
700 -          ---------------------
701
702 -          function Reverse_Mapping (N : Column_Index) return Character is
703 -          begin
704 -             for Column in Map'Range loop
705 -                if Map (Column) = N then
706 -                   return Column;
707 -                end if;
708 -             end loop;
709
710 -             return ' ';
711 -          end Reverse_Mapping;
712
713 -       --  Start of processing for Print_Table
714
715 -       begin
716 -          --  Print the header line
717
718 -          System.IO.Put ("   [*]  ");
719
720 -          for Column in 1 .. Alphabet_Size  loop
721 -             System.IO.Put
722 -               (String'(1 .. 1 => Reverse_Mapping (Column)) & "   ");
723 -          end loop;
724
725 -          if Is_Primary then
726 -             System.IO.Put ("closure....");
727 -          end if;
728
729 -          System.IO.New_Line;
730
731 -          --  Print every line
732
733 -          for State in 1 .. Num_States loop
734 -             System.IO.Put (State'Img);
735
736 -             for K in 1 .. 3 - State'Img'Length loop
737 -                System.IO.Put (" ");
738 -             end loop;
739
740 -             for K in 0 .. Alphabet_Size loop
741 -                System.IO.Put (Table (State, K)'Img & "  ");
742 -             end loop;
743
744 -             for K in Alphabet_Size + 1 .. Table'Last (2) loop
745 -                if Table (State, K) /= 0 then
746 -                   System.IO.Put (Table (State, K)'Img & ",");
747 -                end if;
748 -             end loop;
749
750 -             System.IO.New_Line;
751 -          end loop;
752
753 -       end Print_Table;
754
755         ---------------------
756         -- Raise_Exception --
757         ---------------------
758 --- 1214,1223 ----
759 ***************
760 *** 1345,1356 ****
761                 (Table, Num_States, Start_State, End_State);
762            end if;
763   
764 -          if Debug then
765 -             Print_Table (Table.all, Num_States);
766 -             System.IO.Put_Line ("Start_State : " & Start_State'Img);
767 -             System.IO.Put_Line ("End_State   : " & End_State'Img);
768 -          end if;
769
770            --  Creates the secondary table
771   
772            R := Create_Secondary_Table
773 --- 1259,1264 ----
774 ***************
775 *** 1451,1467 ****
776            New_Table := new Regexp_Array (Table'First (1) .. New_Lines,
777                                           Table'First (2) .. New_Columns);
778            New_Table.all := (others => (others => 0));
779
780 -          if Debug then
781 -             System.IO.Put_Line ("Reallocating table: Lines from "
782 -                                 & State_Index'Image (Table'Last (1))
783 -                                 & " to "
784 -                                 & State_Index'Image (New_Lines));
785 -             System.IO.Put_Line ("   and columns from "
786 -                                 & Column_Index'Image (Table'Last (2))
787 -                                 & " to "
788 -                                 & Column_Index'Image (New_Columns));
789 -          end if;
790   
791            for J in Table'Range (1) loop
792               for K in Table'Range (2) loop
793 --- 1359,1364 ----
794
795 *** g-dirope.adb        2001/10/31 21:36:04     1.20
796 --- g-dirope.adb        2001/11/01 16:39:33     1.21
797 ***************
798 *** 371,387 ****
799                  E := E + 1;
800   
801                  Var_Name : loop
802 !                   exit Var_Name when E = Path'Last;
803   
804                     if Characters.Handling.Is_Letter (Path (E))
805                       or else Characters.Handling.Is_Digit (Path (E))
806                     then
807                        E := E + 1;
808                     else
809 -                      E := E - 1;
810                        exit Var_Name;
811                     end if;
812                  end loop Var_Name;
813   
814                  declare
815                     Env : OS_Lib.String_Access := OS_Lib.Getenv (Path (K .. E));
816 --- 371,388 ----
817                  E := E + 1;
818   
819                  Var_Name : loop
820 !                   exit Var_Name when E > Path'Last;
821   
822                     if Characters.Handling.Is_Letter (Path (E))
823                       or else Characters.Handling.Is_Digit (Path (E))
824                     then
825                        E := E + 1;
826                     else
827                        exit Var_Name;
828                     end if;
829                  end loop Var_Name;
830
831 +                E := E - 1;
832   
833                  declare
834                     Env : OS_Lib.String_Access := OS_Lib.Getenv (Path (K .. E));
835 2001-12-11  Ed Schonberg <schonber@gnat.com>
836
837         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
838         that is the parent of other generics, the instance body replaces the 
839         instance node.  Retrieve the instance of the spec, which is the one 
840         that is visible in clients and within the body.
841
842 2001-12-11  Vincent Celier <celier@gnat.com>
843
844         * gnatmain.adb: Initial version.
845         
846         * gnatmain.ads: Initial version.
847         
848         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
849         
850         * snames.adb: Updated to match snames.ads.
851         
852         * snames.ads: Added Gnatstub.
853         
854 2001-12-11  Vincent Celier <celier@gnat.com>
855
856         * prj-attr.adb (Initialization_Data): Change name from 
857         Initialisation_Data.
858         
859 2001-12-11  Emmanuel Briot <briot@gnat.com>
860
861         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
862         + and * applied to backslashed expressions like \r.
863         
864 2001-12-11  Vasiliy Fofanov <fofanov@gnat.com>
865
866         * g-os_lib.ads: String_List type added, Argument_List type is now 
867         subtype of String_List.
868         
869 2001-12-11  Robert Dewar <dewar@gnat.com>
870
871         * g-os_lib.ads: Change copyright to FSF
872         Add comments for String_List type
873         
874 2001-12-11  Vincent Celier <celier@gnat.com>
875
876         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a 
877         string to the buffer).
878
879 2001-12-11  Ed Schonberg <schonber@gnat.com>
880
881         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
882         sem_attr.
883         
884         * sem_attr.adb: Simplify previous fix for Address.
885         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now, 
886         to avoid anomalies where the bound of the type appears to raise 
887         constraint error.
888
889 2001-12-11  Robert Dewar <dewar@gnat.com>
890
891         * lib-xref.adb (Output_Refs): Make sure pointers are always properly 
892         handled.
893         
894 2001-12-11  Ed Schonberg <schonber@gnat.com>
895
896         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a 
897         renamed unit before checking for recursive instantiations.
898         
899 2001-12-11  Emmanuel Briot <briot@gnat.com>
900
901         * prj.ads: Add comments for some of the fields.
902
903 2001-12-11  Robert Dewar <dewar@gnat.com>
904
905         * lib-xref.adb (Output_Refs): Don't output type references outside 
906         the main unit if they are not otherwise referenced.
907         
908 2001-12-11  Ed Schonberg <schonber@gnat.com>
909
910         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify 
911         code and diagnose additional illegal uses
912         
913         * sem_util.adb (Is_Object_Reference): An indexed component is an 
914         object only if the prefix is.
915         
916 2001-12-11  Vincent Celier <celier@gnat.com>
917
918         * g-diopit.adb: Initial version.
919         
920         * g-diopit.ads: Initial version.
921         
922         * g-dirope.adb:
923         (Expand_Path): Avoid use of Unbounded_String
924         (Find, Wildcard_Iterator): Moved to child package Iteration
925         
926         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
927         
928 2001-12-11  Robert Dewar <dewar@gnat.com>
929
930         * sem_attr.adb: Minor reformatting
931
932 2001-12-11  Ed Schonberg <schonber@gnat.com>
933
934         * sem_ch3.adb: Clarify some ???.
935         
936 2001-12-11  Robert Dewar <dewar@gnat.com>
937
938         * exp_util.adb (Must_Be_Aligned): Removed, replaced by 
939         Exp_Pakd.Known_Aligned_Enough
940         
941         * sem_ch13.adb (Check_Address_Alignment): Removed, extended 
942         version is moved to Exp_Ch13.
943
944 2001-12-11  Robert Dewar <dewar@gnat.com>
945
946         * einfo.ads: Minor reformatting
947         
948         * exp_ch5.adb: Add comment for previous.change
949         
950         * ali.adb: New interface for extended typeref stuff.
951         
952         * ali.ads: New interface for typeref stuff.
953         
954         * checks.adb (Apply_Alignment_Check): New procedure.
955         
956         * debug.adb: Add -gnatdM for modified ALI output
957         
958         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
959         
960         * lib-xref.adb: Extend generation of <..> notation to cover 
961         subtype/object types. Note that this is a complete rewrite, 
962         getting rid of the very nasty quadratic algorithm previously 
963         used for derived type output.
964         
965         * lib-xref.ads: Extend description of <..> notation to cover 
966         subtype/object types. Uses {..} for these other cases. 
967         Also use (..) for pointer types.
968         
969         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
970         
971         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say: 
972         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
973
974 2001-12-11  Vincent Celier <celier@gnat.com>
975
976         * gnatcmd.adb:
977         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
978         Changed /BIND_ONLY to /ACTIONS=BIND
979         Changed /LINK_ONLY to /ACTIONS=LINK
980         
981 2001-12-11  Ed Schonberg  <schonber@gnat.com>
982
983         * sem_ch8.adb (Find_Selected_Component): improved search for a
984         candidate package in case of error.
985         
986         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
987         chain back on scope stack before reinstalling use clauses.
988         
989         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
990         is enabled, do not kill the code for the condition, to preserve
991         warning.
992
993 2001-12-11  Robert Dewar <dewar@gnat.com>
994
995         * checks.adb (Insert_Valid_Check): Apply validity check to expression 
996         of conversion, not to result of conversion.
997
998 2001-12-11  Ed Schonberg <schonber@gnat.com>
999         
1000         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag 
1001         before freezing parent. If the declarations are mutually recursive, 
1002         an access to the current record type may be frozen before the 
1003         derivation is complete.
1004
1005 2001-12-05  Vincent Celier <celier@gnat.com>
1006
1007         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY, 
1008         -c /COMPILE_ONLY, -l /LINK_ONLY
1009         
1010         * opt.ads:
1011         (Bind_Only): New Flag
1012         (Link_Only): New flag
1013         
1014         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only) 
1015         and -l (Link_Only)
1016         
1017         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
1018         
1019         * make.adb:
1020         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
1021         (Gnatmake): Set the step flags. Only perform a step if the
1022         corresponding step flag is True.
1023         (Scan_Make_Arg): Reset the bind and link step flags when -u
1024         or -gnatc has been specified.
1025
1026 2001-12-05  Ed Schonberg <schonber@gnat.com>
1027
1028         * sem_eval.adb (Eval_Concatenation): If left operand is a null string, 
1029         get bounds from right operand.
1030         
1031         * sem_eval.adb: Minor reformatting
1032         
1033         * exp_util.adb (Make_Literal_Range): use bound of literal rather 
1034         than Index'First, its lower bound may be different from 1.
1035         
1036         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B 
1037         and C48009J
1038         
1039 2001-12-05  Vincent Celier <celier@gnat.com>
1040
1041         * prj-nmsc.adb Minor reformatting
1042         
1043         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if 
1044         set and libraries are not supported.
1045         
1046 2001-12-05  Ed Schonberg <schonber@gnat.com>
1047
1048         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of 
1049         private view explicitly, so the back-end can treat as a global 
1050         when appropriate.
1051
1052 2001-12-05  Ed Schonberg <schonber@gnat.com>
1053
1054         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
1055          unit, always replace instance node with new body, for ASIS use.
1056
1057 2001-12-05  Vincent Celier <celier@gnat.com>
1058         
1059         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if 
1060         libraries are not supported and both attributes Library_Name and 
1061         Library_Dir are specified.
1062         
1063         * prj-proc.adb (Expression): Set location of Result to location of 
1064         first term.
1065         
1066         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
1067         (prj-nmsc is now importing MLib.Tgt)
1068         
1069         * prj-proc.adb: Put the change indicated above that was forgotten.
1070
1071 2001-12-05  Robert Dewar <dewar@gnat.com>
1072
1073         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
1074
1075 2001-12-05  Ed Schonberg <schonber@gnat.com>
1076
1077         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
1078         constraint, introduce explicit subtype declaration and derive from it.
1079         
1080         * sem_ch3.adb: Minor reformatting
1081
1082 2001-12-05  Robert Dewar <dewar@gnat.com>
1083
1084         * checks.adb (Determine_Range): Increase cache size for checks. 
1085         Minor reformatting
1086         
1087         * exp_ch6.adb: Minor reformatting
1088         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
1089         a parameter whose root type is System.Address, since treating such
1090         subprograms as pure in the code generator is almost surely a mistake
1091         that will lead to unexpected results.
1092         
1093         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and 
1094         change handling of conversions.
1095         
1096         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
1097
1098 2001-12-05  Ed Schonberg <schonber@gnat.com>
1099
1100         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an 
1101         aggregate with static wrong size, attach generated Raise node to 
1102         declaration.
1103
1104 2001-12-05  Robert Dewar <dewar@gnat.com>
1105
1106         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute. 
1107         Fixes compilation abandoned bomb in B24009B.
1108
1109 2001-12-05  Ed Schonberg <schonber@gnat.com>
1110
1111         * sem_ch12.adb:
1112         Document use of Associated_Node on Selected_Components.
1113         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
1114         to clarify use of untyped descendant fields.
1115
1116 2001-12-05  Robert Dewar <dewar@gnat.com>
1117
1118         * prj-dect.ads: Add ??? comment
1119         Add 2001 to copyright notice (was not done in after all)
1120         
1121         * prj-part.adb: Minor reformatting. Reword one awkward error message.
1122         
1123         * prj.ads: Minor reformatting throughout, and add some ??? comments
1124         
1125         * snames.ads: Minor reformatting
1126
1127 2001-12-05  Geert Bosch <bosch@gnat.com>
1128
1129         * snames.adb: Autoupdate
1130
1131 2001-12-05  Vincent Celier <celier@gnat.com>
1132
1133         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
1134         
1135         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
1136         
1137         * prj-env.adb: Minor comment changes (modifying -> extends).
1138         
1139         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
1140         
1141         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to 
1142         Tok_Extends.
1143         
1144         * prj.adb (Initialize): Change Modifying to Extends.
1145         
1146         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
1147         
1148         * prj.ads: Minor comment change (Modifying -> extending).
1149         
1150         * snames.ads: Change modifying to extends.
1151
1152 2001-12-05  Robert Dewar <dewar@gnat.com>
1153
1154         * sem_warn.adb: Remove stuff for conditionals, we are not going to 
1155         do this after all.
1156         
1157         * sem_warn.ads: Remove stuff for conditionals, we are not going to 
1158         do this after all.  Add 2001 to copyright notice
1159
1160 2001-12-04  Geert Bosch <bosch@gnat.com>
1161
1162         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
1163
1164 2001-12-04  Robert Dewar <dewar@gnat.com>
1165
1166         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk 
1167         location if we already have errors. Stops some cases of cascaded 
1168         errors.
1169         
1170         * errout.adb: Improve comment.
1171
1172 2001-12-04  Robert Dewar <dewar@gnat.com>
1173
1174         * sem_ch12.adb:
1175         (Analyze_Formal_Type_Definition): Defend against Error.
1176         (Analyze_Formal_Subprogram): Defend against Error.
1177         
1178         * par-ch12.adb (F_Formal_Type_Declaration): In case of error, 
1179         remove following semicolon if present. Removes cascaded error.
1180
1181 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
1182
1183         * bindgen.adb:
1184         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
1185          exceptions equals 0.
1186         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
1187         Fixes PIWG E tests (which have to be run with -gnatL).
1188
1189 2001-12-04  Robert Dewar <dewar@gnat.com>
1190
1191         * einfo.ads: Minor reformatting
1192
1193 2001-12-04  Ed Schonberg <schonber@gnat.com>
1194
1195         * einfo.ads: Block_Node points to the identifier of the block, not to 
1196         the block node itself, to preserve the link when the block is 
1197         rewritten, e.g. within an if-statement with a static condition. 
1198         
1199         * inline.adb (Cleanup_Scopes): recover block statement from block 
1200         entity using new meaning of Block_Node.
1201         
1202         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to 
1203         identifier of block node, rather than to node itself.
1204
1205 2001-12-04  Gary Dismukes <dismukes@gnat.com>
1206         
1207         * layout.adb:
1208         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
1209         (Discrimify): Go back to setting the Etypes of the selected component
1210         because the Vname component does not exist at this point and will 
1211         fail name resolution. Also set Analyzed.
1212         Remove with and use of Sem_Res.
1213
1214 2001-12-04  Arnaud Charlet <charlet@gnat.com>
1215
1216         * Makefile.in: (HIE_SOURCES): add s-fat*.
1217
1218 2001-12-04  Robert Dewar <dewar@gnat.com>
1219
1220         * sem_attr.adb:
1221         (Compile_Time_Known_Attribute): New procedure.
1222         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
1223          proper range check.
1224
1225 2001-12-04  Ed Schonberg <schonber@gnat.com>
1226
1227         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before 
1228         processing discriminants to diagnose illegal default values.
1229
1230 2001-12-04  Ed Schonberg <schonber@gnat.com>
1231
1232         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide 
1233         access discriminant within a type extension that constrains its 
1234         parent discriminants.
1235
1236 2001-12-04  Ed Schonberg <schonber@gnat.com>
1237
1238         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication 
1239         is malformed, use instance of Any_Id to allow analysis to proceed.
1240         
1241         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if 
1242         type definition is illegal.
1243         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
1244         misplaced.
1245
1246 2001-12-04  Ed Schonberg <schonber@gnat.com>
1247
1248         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to 
1249         constants.
1250
1251 2001-12-04  Robert Dewar <dewar@gnat.com>
1252
1253         * errout.adb: Minor reformatting
1254
1255 2001-12-04  Robert Dewar <dewar@gnat.com>
1256
1257         * exp_util.adb: Minor reformatting from last change
1258         
1259         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node 
1260         which is a rewriting of an expression, traverse the original 
1261         expression to remove warnings that may have been posted on it.
1262
1263 2001-12-04  Ed Schonberg <schonber@gnat.com>
1264
1265         * exp_util.adb (Must_Be_Aligned): Return false for a component of a 
1266         record that has other packed components.
1267
1268 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
1269
1270         * adaint.c: Minor cleanups.
1271
1272 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
1273
1274         * adaint.c: Do not use utime.h on vxworks.
1275
1276 2001-12-04  Arnaud Charlet <charlet@gnat.com>
1277
1278         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes 
1279         more confusion than it solves.
1280
1281 2001-12-04  Geert bosch <bosch@gnat.com>
1282
1283         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
1284
1285 2001-12-04  Geert Bosch  <bosch@gnat.com>
1286
1287         * Makefile.in (update-sources): New target. 
1288         For use by gcc_release script.
1289
1290 2001-12-04  Ed Schonberg <schonber@gnat.com>
1291
1292         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as 
1293         a configuration pragma, it is now legal wherever a pragma can appear.
1294
1295 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
1296
1297         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
1298         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
1299         is now @CROSS@ -DIN_GCC; update comment.
1300
1301 2001-12-04  Robert Dewar <dewar@gnat.com>
1302
1303         * einfo.adb (Has_Pragma_Pure_Function): New flag.
1304         Fix problem that stopped ceinfo from working
1305         
1306         * einfo.ads (Has_Pragma_Pure_Function): New flag.
1307         
1308         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
1309
1310 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
1311
1312         * gnatchop.adb:
1313         (File_Time_Stamp): New procedure.
1314         (Preserve_Mode): New boolean.
1315         (Write_Unit): Pass time stamp.
1316         Implement -p switch (preserve time stamps).
1317         
1318         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
1319         
1320         * gnatchop.adb: Do usage info for -p switch
1321         
1322         * adaint.h (__gnat_set_file_time_name): New function
1323         
1324         * adaint.c (__gnat_set_file_time_name): Implement
1325         
1326         * adaint.h: Fix typo
1327
1328 2001-12-03  Robert Dewar <dewar@gnat.com>
1329
1330         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
1331         have Associated_Node.
1332
1333 2001-12-03  Robert Dewar <dewar@gnat.com>
1334
1335         * prj-proc.adb: Minor reformatting
1336
1337         * make.adb: Minor reformatting
1338
1339 2001-12-03  Geert Bosch <bosch@gnat.com>
1340
1341         * make.adb: Minor reformatting.
1342
1343 2001-12-03 Robert Dewar  <dewar@gnat.com>
1344
1345         * sem_ch12.adb: Minor reformatting
1346
1347 2001-12-03  Ed Schonberg <schonber@gnat.com>
1348
1349         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
1350         push Standard on the stack before analyzing the instance body,
1351         in order to have a clean visibility environment.
1352
1353         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
1354
1355 2001-12-03  Ed Schonberg <schonber@gnat.com>
1356
1357         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
1358         instantiation of a body that contains an inlined body.
1359
1360 2001-12-03  Ed Schonberg <schonber@gnat.com>
1361
1362         * sem_ch12.adb:
1363         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
1364         to prevent freezing within formal packages.
1365         (Freeze_Subprogram_Body): If body comes from another instance that
1366         appeared before its own body, place freeze node at end of current
1367         declarative part, to prevent a back-end crash.
1368         (Inline_Instance_Body): Handle properly a package instance within
1369         a subprogram instance that is a child unit.
1370
1371 2001-12-01  Graham Stott  <grahams@redhat.com>
1372
1373         * Makefile.in (misc.o): Add missing $(srcdir) prefix
1374         and add optabs.h dependency.
1375
1376         * misc.c: Include optabs.h
1377         (gnat_tree_code_type): Make static and const.
1378         (gnat_tree_code_length): Likewise.
1379         (gnat_tree_code_name): Likewise.
1380         (update_setjmp_buf): Obtain operands mode from insn_data.
1381
1382 2001-11-29  Richard Henderson  <rth@redhat.com>
1383
1384         * init.c: Remove obsolete dwarf2 frame.h section.
1385
1386 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
1387
1388         * Make-lang.in (ada.generated-manpages): New dummy target.
1389
1390 2001-11-29  Ed Schonberg <schonber@gnat.com>
1391
1392         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
1393         into Command, an array conversion is illegal here. Uncovered by
1394         ACATS B460005.
1395
1396 2001/11/28  Geert Bosch <bosch@gnat.com>
1397
1398         * init.c: Minor whitespace changes.
1399
1400 2001-11-28  Doug Rupp <rupp@gnat.com>
1401
1402         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
1403         signal stack.
1404
1405 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
1406
1407         * misc.c (gnat_expand_constant): Move declaration above
1408         definition of lang_hooks.
1409         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
1410         (gnat_init): lang_expand_constant no longer exists.
1411
1412         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
1413         always have vprintf.
1414         (gnat_init): Always call set_internal_error_function.
1415
1416 2001-11-27  Andreas Jaeger  <aj@suse.de>
1417
1418         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
1419
1420 2001-11-27  Laurent Guerby  <guerby@acm.org>
1421
1422         * Makefile.in: Regenerate Ada dependencies.
1423
1424 2001-11-26  Richard Henderson  <rth@redhat.com>
1425
1426         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
1427         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
1428         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
1429
1430 2001-11-25  Laurent Guerby  <guerby@acm.org>
1431
1432         * sysdep.c (rts_get_*): Fix style.
1433
1434 2001-11-19  Laurent Guerby  <guerby@acm.org>
1435
1436         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
1437         since it is of no apparent use and cause warnings.
1438
1439 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
1440
1441         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
1442         static too.
1443         (gnat_init): Don't return NULL.
1444         (finish_parse): Remove.
1445
1446 2001-11-17  Laurent Guerby  <guerby@acm.org>
1447
1448         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
1449         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
1450         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
1451         * lang-spec.h: Add missing struct field to silence warnings.
1452         * sysdep.c (rts_get_*): Provide K&R prototype.
1453         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
1454         * traceback.c (Unlock_Task, Lock_Task): Likewise.
1455         * tracebak.c (__gnat_backtrace): Remove unused variable.
1456         * utils.c (end_subprog_body): Move to K&R style.
1457
1458 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1459
1460         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
1461
1462 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1463
1464         * misc.c (gnat_init): Change prototype.  Include the
1465         functionality of the old init_parse and init_decl_processing.
1466         (gnat_init_decl_processing): New prototype.
1467         (init_parse): Remove.
1468         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
1469
1470 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
1471
1472         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
1473         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
1474         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
1475         set_yydebug): Remove.
1476
1477 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
1478
1479         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
1480         (struct lang_hooks): Constify.
1481         (language_string, lang_identify): Remove.
1482         * utils.c (init_decl_processing): Update.
1483
1484 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
1485
1486         * misc.c: Include langhooks-def.h.
1487         * Makefile.in: Update.
1488
1489 2001-10-30  Robert Dewar <dewar@gnat.com>
1490
1491         * style.adb:
1492         (Check_Identifier): Rewrite circuit to be compatible with use of letters
1493         in the upper half of ASCII.
1494         (Check_Identifier): Minor reformatting
1495
1496 2001-10-30  Geert Bosch <bosch@gnat.com>
1497
1498         * (Associated_Node, Set_Associated_Node): Do not check for
1499         Freeze_Entity.
1500
1501 2001-10-30  Robert Dewar <dewar@gnat.com>
1502
1503         * a-reatim.ads: Minor reformatting
1504
1505 2001-10-30  Robert Dewar <dewar@gnat.com>
1506
1507         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
1508         undocumented declarations.
1509
1510 2001-10-30  Pascal Obry <obry@gnat.com>
1511
1512         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
1513         to the binder and linker.
1514         Minor style fix.
1515
1516         * mdll.ads: Fix layout.  Update copyright notice.
1517
1518         * mdll.adb: Fix layout.  Update copyright notice.
1519
1520 2001-10-30  Robert Dewar <dewar@gnat.com>
1521
1522         * usage.adb: Minor fix to output for -gnaty.
1523
1524 2001-10-30  Ed Schonberg <schonber@gnat.com>
1525
1526         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
1527         to accommodate all its possible values.
1528
1529         * a-reatim.adb (Split): Special-case handling of Time_Span_First
1530         and of small absolute values of T.
1531
1532 2001-10-30  Richard Kenner <kenner@gnat.com>
1533
1534         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
1535         set_mem_attributes since not needed and wrong if RESULT if a REG;
1536         fixes ACATS failures.
1537
1538 2001-10-30  Geert Bosch <bosch@gnat.com>
1539
1540         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
1541         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
1542
1543 2001-10-30  Robert Dewar <dewar@gnat.com>
1544
1545         * bindusg.adb: Undocument -f switch.
1546
1547         * gnatcmd.adb: Remove /FULL_ELABORATION.
1548
1549         * opt.ads (Force_RM_Elaboration_Order): Document that this is
1550         obsolescent.
1551
1552         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
1553
1554         * gnatbind.adb: Minor update of warning msg.
1555
1556 2001-10-30  Vincent Celier <celier@gnat.com>
1557
1558         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
1559         for project file switches (-P (/PROJECT_FILE=),
1560          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
1561         or MEDIUM or HIGH)
1562
1563 2001-10-30  Geert Bosch <bosch@gnat.com>
1564
1565         * decl.c: Minor whitespace fixes.
1566
1567 2001-10-30  Richard Kenner <kenner@gnat.com>
1568
1569         * utils2.c (build_allocator): Test for SIZE overflow in array case too
1570
1571 2001-10-30  Geert Bosch <bosch@gnat.com>
1572
1573         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
1574         Found due to GCC 3.0 warning of using uninitialized value.
1575
1576         * layout.adb:
1577         (Get_Max_Size): Use variant record for tracking value/expression.
1578          Makes logic clearer and prevents warnings for uninitialized variables.
1579         (Layout_Array_Type): Use variant record for tracking value/expression.
1580          Makes logic clearer and prevents warnings for uninitialized variables.
1581
1582 2001-10-30  Robert Dewar <dewar@gnat.com>
1583
1584         * lib.adb: Minor reformatting
1585
1586         * s-taprop.ads: Minor reformatting
1587
1588 2001-10-29  Laurent Guerby  <guerby@acm.org>
1589
1590         * init.c:
1591         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
1592         const.
1593         (_gnat_error_handler): Make MSG const.
1594
1595 2001-10-29  Richard Kenner <kenner@gnat.com>
1596
1597         * sysdep.c: Fix localtime_r problem on LynxOS.
1598         Also remove #elif to avoid warnings.
1599
1600         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
1601         used by this.
1602
1603         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
1604
1605 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
1606
1607         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
1608         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
1609         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
1610         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
1611         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
1612         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
1613         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
1614         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
1615         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
1616         types.ads, urealp.adb: Fix spelling errors.
1617
1618 2001-10-27  Laurent Guerby <guerby@acm.org>
1619
1620         * trans.c (gigi): Fix non determinism leading to bootstrap
1621         comparison failures for debugging information.
1622
1623 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
1624
1625         * gnat_rm.texi: Use @./@: where appropriate.
1626
1627 2001-10-26  Robert Dewar <dewar@gnat.com>
1628
1629         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
1630
1631 2001-10-26  Richard Kenner <kenner@gnat.com>
1632
1633         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
1634
1635 2001-10-26  Richard Kenner <kenner@gnat.com>
1636
1637         * decl.c (validate_size): Modify message for bad size to avoid
1638         implication that compiler is modifying the size.
1639
1640 2001-10-26  Robert Dewar <dewar@gnat.com>
1641
1642         * prj-util.adb: Minor reformatting. Fix bad header format.
1643
1644 2001-10-26  Robert Dewar <dewar@gnat.com>
1645
1646         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
1647
1648         * sinfo.ads: Clarify use of Associated_Node (documentation only).
1649
1650         * sem_ch12.adb: Change Node4 to Associated_Node. Change
1651         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
1652         much more narrowly in places where needed. These are cleanups.
1653
1654 2001-10-26  Joel Brobecker <brobecke@gnat.com>
1655
1656         * 5zosinte.ads (null_pthread): new constant.
1657
1658         * 5ztaprop.adb:
1659         (Initialize_TCB): Initialize thread ID to null, to be able to verify
1660          later that this field has been set.
1661         (Finalize_TCB): ditto.
1662         (Suspend_Task): Verify that the thread ID is not null before using it.
1663         (Resume_Task): ditto.
1664
1665         * s-tasdeb.adb:
1666         (Resume_All_Tasks): Lock the tasks list before using it.
1667         (Suspend_All_Tasks): ditto.
1668
1669 2001-10-26  Richard Kenner <kenner@gnat.com>
1670
1671         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
1672         Make constant variant of designated type for Is_Access_Constant.
1673         Call update_pointer_to with main variant.
1674
1675         * trans.c (process_freeze_entity, process_type):
1676         Call update_pointer_to on main variant.
1677
1678         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
1679         If main variant, update all other variants.
1680
1681         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
1682         TREE_STATIC.
1683
1684 2001-10-26  Robert Dewar <dewar@gnat.com>
1685
1686         * prj-util.adb: Minor reformatting
1687
1688 2001-10-26  Robert Dewar <dewar@gnat.com>
1689
1690         * prj-util.adb: Minor reformatting
1691
1692 2001-10-26  Robert Dewar <dewar@gnat.com>
1693
1694         * prj-attr.adb: Minor reformatting throughout
1695
1696 2001-10-26  Robert Dewar <dewar@gnat.com>
1697
1698         * prj-attr.ads: Minor reformatting
1699         Add ??? comment (this whole spec has almost no comments)
1700
1701 2001-10-26  Vincent Celier <celier@gnat.com>
1702
1703         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
1704         ("//") that precede the drive letter on Interix.
1705
1706 2001-10-26  Geert Bosch <bosch@gnat.com>
1707
1708         * gnat_rm.texi: Add GNAT Reference Manual.
1709
1710 2001-10-25  Robert Dewar <dewar@gnat.com>
1711
1712         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
1713         is Error. Similar change for other renaming cases.
1714
1715 2001-10-25  Robert Dewar <dewar@gnat.com>
1716
1717         * s-atacco.ads: Add pragma Inline_Always for functions.
1718         Fix header format. Add copyright 2001
1719
1720 2001-10-25  Ed Schonberg <schonber@gnat.com>
1721
1722         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
1723         return Error rather than Empty so that analysis can proceed.
1724
1725 2001-10-25  Ed Schonberg <schonber@gnat.com>
1726
1727         * sem_util.adb (Enter_Name): better handling of cascaded error
1728         messages when a unit appears in its own context.
1729
1730 2001-10-25  Ed Schonberg <schonber@gnat.com>
1731
1732         * sem_util.adb (Defining_Entity): in case of error, attach created
1733         entity to specification, so that semantic analysis can proceed.
1734
1735 2001-10-25  Robert Dewar <dewar@gnat.com>
1736
1737         * sem_util.adb
1738         (Defining_Entity): Deal with Error.
1739         (Process_End_Label): Deal with bad end label for.
1740
1741 2001-10-25  Ed Schonberg <schonber@gnat.com>
1742
1743         * sem_elab.adb (Check_A_Call): refine message when call is in an
1744         instance but callee is not declared in the generic unit.
1745
1746 2001-10-25  Ed Schonberg <schonber@gnat.com>
1747
1748         * sem_elab.adb (Check_A_Call): check for renaming before finding the
1749         enclosing unit, which may already be different from the calling unit.
1750
1751 2001-10-25  Geert Bosch <bosch@gnat.com>
1752
1753         * 4gintnam.ads: fix header format.
1754
1755 2001-10-25  Ed Schonberg <schonber@gnat.com>
1756
1757         * sem_res.adb (Resolve_Call): if the call is actually an indexing
1758         operation on the result of a parameterless call, perform elaboration
1759         check after the node has been properly rewritten.
1760
1761         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
1762         inlined within the generic tree, the defining identifier is not a
1763         compilation_unit.
1764
1765 2001-10-25  Ed Schonberg <schonber@gnat.com>
1766
1767         * sem_res.adb (Resolve): special-case resolution of Null in an
1768          instance or an inlined body to avoid view conflicts.
1769
1770         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
1771          compatibility by retrieving the access type of the generic copy.
1772
1773 2001-10-25  Robert Dewar <dewar@gnat.com>
1774
1775         * sem_ch3.adb:
1776         (Analyze_Number_Declaration): Handle error expression.
1777         (Signed_Integer_Type_Declaration): Handle error bound.
1778         (Analyze_Subtype_Indication): Handle error range.
1779
1780         * sem_util.adb (Get_Index_Bounds): Check for Error.
1781
1782 2001-10-25  Robert Dewar <dewar@gnat.com>
1783
1784         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
1785         in no run time mode.
1786
1787 2001-10-25  Pascal Obry <obry@gnat.com>
1788
1789         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
1790         mode case for ALLOC case.
1791
1792         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
1793         all platforms. Improvement of last change.
1794
1795 2001-10-25  Robert Dewar <dewar@gnat.com>
1796
1797         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
1798
1799 2001-10-25  Geert Bosch  <bosch@gnat.com>
1800
1801         * osint.adb (Is_Relative): Remove duplicate.
1802
1803 2001-10-25  Pascal Obry <obry@gnat.com>
1804
1805         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
1806         pathnames in UNIX and DOS style with drive letter.
1807         (Is_Relative): new routine.
1808
1809         * osint.adb: Minor reformatting
1810
1811         * osint.adb (Is_Relative): implementation using
1812         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
1813
1814 2001-10-25  Pascal Obry <obry@gnat.com>
1815
1816         * g-dirope.adb (Basename): correctly compute offset between the
1817         original Path and the translated one.
1818
1819         * g-dirope.adb: (Base_Name): add some comments.
1820
1821 2001-10-25  Robert Dewar <dewar@gnat.com>
1822
1823         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
1824         in HIE mode, avoids compilation abandoned message
1825
1826         * exp_imgv.adb: Correct typo in previous change
1827
1828         * exp_imgv.adb: Correct typo in previous change (not my day!)
1829
1830 2001-10-25  Robert Dewar <dewar@gnat.com>
1831
1832         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
1833
1834 2001-10-25  Pascal Obry <obry@gnat.com>
1835
1836         * g-awk.ads: Move all pragma inlines next to the routine
1837          declarations. This is more uniform with other GNAT spec.
1838
1839 2001-10-22  Geert Bosch  <bosch@gnat.com>
1840
1841         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
1842
1843 2001-10-19  Geert Bosch  <bosch@gnat.com>
1844
1845         * Makefile.in (tools, gnattools): Remove gnatmem.
1846
1847 2001-10-17  Richard Henderson  <rth@redhat.com>
1848
1849         * Makefile.in (misc.o): Depend on langhooks.h.
1850         * misc.c: Include it.
1851         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
1852         (LANG_HOOKS_DECODE_OPTION): New.
1853         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
1854
1855 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
1856
1857         * trans.c (tree_transform): Adjust to recent change in
1858         expand_asm_operands to implement named asm operands.
1859
1860 2001-10-11  Ed Schonberg  <schonber@gnat.com>
1861
1862         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
1863         renaming of discriminant for mutable record type.
1864
1865 2001-10-11  Robert Dewar  <dewar@gnat.com>
1866
1867         * validsw.adb: Properly save -gnatVn status.
1868
1869 2001-10-11  Robert Dewar <dewar@gnat.com>
1870
1871         * usage.adb: Add lines for V switch.
1872
1873         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
1874         (/VALIDITY_CHECKING).
1875
1876 2001-10-11  Ed Schonberg <schonber@gnat.com>
1877
1878         * sem_type.adb (Add_One_Interp): an operator for a type declared in
1879         an extension of System is known to be visible.
1880
1881 2001-10-11  Ed Schonberg <schonber@gnat.com>
1882
1883         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
1884         properly. Fixes regression on ACATS C34005G.
1885
1886 2001-10-11  Robert Dewar <dewar@gnat.com>
1887
1888         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
1889         loop in generic instance, since this is likely not very useful.
1890
1891 2001-10-11  Robert Dewar <dewar@gnat.com>
1892
1893         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
1894         the error message for high integrity mode.
1895
1896         * rtsfind.adb (RTE): Give message if we try to find an entity that
1897         is not available in high integrity mode.
1898
1899         * rtsfind.ads:
1900         (OK_To_Use_In_HIE_Mode): New array.
1901         (RTE): May return Empty in high integrity mode.
1902
1903         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
1904         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
1905
1906         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
1907         unit if not inlined always and in no runtime mode. Fixes problem
1908         caused by new Rtsfind changes.
1909
1910         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
1911         body is deleted.
1912
1913         * rtsfind.adb (RTE): Make sure we do not try to load unit after
1914         giving message for entity not available in high integrity mode.
1915
1916 2001-10-11  Pascal Obry <obry@gnat.com>
1917
1918         * impunit.adb: Add GNAT.CRC32.
1919
1920 2001-10-11  Ed Schonberg <schonber@gnat.com>
1921
1922         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
1923         properly the case where one universal operand in a non-static
1924         exponentiation of a real literal.
1925
1926 2001-10-11  Ed Schonberg <schonber@gnat.com>
1927
1928         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
1929         clause, return the gobal finalization list, for lack of anthing else.
1930
1931 2001-10-11  Ed Schonberg <schonber@gnat.com>
1932
1933         * exp_ch7.adb (Make_Transient_Block): if statement is within
1934         exception handler, always use new transient scope to place Clean
1935         procedure.
1936
1937 2001-10-11  Pascal Obry <obry@gnat.com>
1938
1939         * Makefile.in:
1940         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
1941         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
1942         (GNATLS_RTL_OBJS): add g-crc32.o
1943         (GNATMAKE_RTL_OBJS): add g-crc32.o
1944
1945         * ali-util.adb:
1946         (CRC_Match): new function.
1947         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
1948         instead of the previous simple checksum algorithm.
1949         (Time_Stamp_Mismatch): use CRC_Match for comparison.
1950         (Set_Source_Table): idem.
1951
1952         * ali-util.ads:
1953         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
1954         instead of simple checksum.
1955         (CRC_Match): new function.
1956         (CRC_Error): new constant.
1957
1958         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
1959         a CRC now and not a simple checksum. A CRC uses lower-case hex
1960         letters, fixes ambiguity in parsing.
1961
1962         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
1963         is what this variable will store.
1964
1965         * bcheck.adb: Change reference to chechsum in comments by CRC.
1966         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
1967         rename All_Checksum_Match to All_CRC_Match. Change due to API
1968         renaming since now GNAT does not use a simple checksum but a
1969         CRC using GNAT.CRC32.
1970
1971         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
1972         now and not anymore a simple checksum.
1973
1974         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
1975         places.
1976
1977         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
1978
1979         * scans.adb:
1980         (Restore_Scan_State): rename Checksum to CRC.
1981         (Save_Scan_State): idem.
1982
1983         * scans.ads:
1984         With GNAT.CRC32.
1985         (Checksum): rename to CRC.
1986         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
1987
1988         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
1989         GNAT.CRC32).  Update copyright notice.
1990
1991         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
1992         GNAT.CRC32).  Update copyright notice.
1993
1994         * scn.adb:
1995         (Accumulate_Checksum): removed.
1996         (Update): new procedure. Add a wide-character into the CRC.
1997
1998         * sinput-l.adb:
1999         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
2000         (Load_File): fix initialization of S (change Source_Checksum to
2001         Source_CRC)
2002
2003         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
2004         Source_CRC in S initialization.
2005
2006         * sinput.adb (Source_Checksum): renamed to Source_CRC.
2007
2008         * sinput.ads (Source_Checksum): renamed to Source_CRC.
2009         Update comments for the CRC.
2010
2011         * types.adb (Hex): Use lowercase for the letter part.
2012
2013         * types.ads (Get_Hex_String): Returns the hexadecimal representation
2014         for a word. This is currently used only for CRC. In previous version,
2015         the checksum was using a representation with all letter being
2016         upper-case. With the new implementation (using CRC) we do not remove
2017         the 32th bit of the CRC, so we can have an upper-case starting letter
2018         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
2019         It is ambigous since the CRC was optional and could be followed by
2020         options like EB, EE. So now this routines uses lower-case letter for
2021         the hexadecimal representation. Strange enough only lower case letters
2022         where checked in Scan_ALI (even if this was not a possible case).
2023
2024         * gnatvsn.ads (Library_Version): changed to 3.15a.
2025
2026         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
2027         for the compiler.
2028
2029         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
2030         for the compiler.
2031
2032         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
2033         Add 2001 to copyright notice
2034         (Accumulate_Checksum): Modify to use System.CRC32.
2035
2036         * ali-util.ads: Redo changes of previous revision to continue to use
2037         the word Checksum. Add 2001 to copyright notice.
2038
2039         * ali.adb: Undo some of previous changes, not needed.
2040         Keep the change for lower case letters in the checksum.
2041
2042         * ali.ads: Undo previous change not needed.
2043
2044         * bcheck.adb: Undo most of previous change, not needed.
2045         But do use Checksums_Match for checksum comparison.
2046
2047         * gnatls.adb: Undo most of previous change, not needed.
2048         But do use Checksums_Match for comparing checksums.
2049
2050         * lib-load.adb: Undo previous change, not needed.
2051
2052         * lib-writ.adb: Undo previous change, not needed.
2053
2054         * lib-writ.ads: Document that checksums use lower case,
2055         not upper case letters.
2056
2057         * scans.adb: Undo previous change, not needed
2058
2059         * scans.ads: Undo previous change, not needed.
2060
2061         * scn-nlit.adb: Undo previous changes, not needed.
2062
2063         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
2064
2065         * scn.adb:
2066         (Accumulate_Checksum): Use System.CRC32.
2067         (Initialize_Checksum): New procedure.
2068         Remove other changes of previous revision.
2069
2070         * sinput-p.adb: Undo previous change, not needed.
2071
2072         * sinput.adb: Undo previous change, not needed.
2073
2074         * sinput-l.adb: Undo previous change, not needed.
2075
2076         * sinput.ads: Undo previous change, not needed.  Keep only comment
2077         on new checksum algorithm
2078
2079         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
2080         Also remove a-tags and a-stream from GNAT sources.
2081
2082         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
2083
2084         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
2085
2086 2001-10-11  Geert Bosch  <bosch@gnat.com>
2087
2088         * einfo.h: Regenerate.
2089
2090         * nmake.ads: Regenerate.
2091
2092         * nmake.adb: Regenerate.
2093
2094         * sinfo.h: Regenerate.
2095
2096         * treeprs.adb: Regenerate.
2097
2098 2001-10-10  Geert Bosch  <bosch@gnat.com>
2099
2100         * gnat-style.texi: New file describing coding guidelines for Ada.
2101
2102 2001-10-10  Ed Schonberg <schonber@gnat.com>
2103
2104         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
2105         is Flag174.
2106
2107 2001-10-10  Geert Bosch  <bosch@gnat.com>
2108
2109         * snames.ads: Add new names for project facility.
2110
2111         * snames.adb: Update to reflect snames.ads changes.
2112
2113         * snames.h: Update to reflect snames.ads changes.
2114
2115 2001-10-10  Vincent Celier <celier@gnat.com>
2116
2117         * make.adb:
2118         (Add_Switches): reflect the changes for the switches attributes
2119         Default_Switches indexed by the programming language,
2120         Switches indexed by the file name.
2121         (Collect_Arguments_And_Compile): Idem.
2122         Reflect the attribute name changes.
2123
2124         * prj-attr.adb:
2125         (Initialisation_Data): Change the names of some packages and
2126         attributes.
2127         (Initialize): process case insensitive associative arrays.
2128
2129         * prj-attr.ads:
2130         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
2131
2132         * prj-dect.adb:
2133         (Parse_Attribute_Declaration): For case insensitive associative
2134          arrays, set the index string to lower case.
2135
2136         * prj-env.adb:
2137         Reflect the changes of the project attributes.
2138
2139         * prj-nmsc.adb:
2140         Replace Check_Naming_Scheme by Ada_Check and
2141         Language_Independent_Check.
2142
2143         * prj-nmsc.ads:
2144         Replaced Check_Naming_Scheme by 2 procedures:
2145         Ada_Check and Language_Independent_Check.
2146
2147         * prj-proc.adb:
2148         (Process_Declarative_Items): For case-insensitive associative
2149         arrays, set the index string to lower case.
2150         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
2151         Prj.Nmsc.Check_Naming_Scheme.
2152
2153         * prj-tree.adb:
2154         (Case_Insensitive): New function
2155         (Set_Case_Insensitive): New procedure
2156
2157         * prj-tree.ads:
2158         (Case_Insensitive): New function
2159         (Set_Case_Insensitive): New procedure
2160         (Project_Node_Record): New flag Case_Insensitive.
2161
2162         * prj-util.adb:
2163         (Value_Of): new function to get the string value of a single
2164         string variable or attribute.
2165
2166         * prj-util.ads:
2167         (Value_Of): new function to get the string value of a single
2168         string variable or attribute.
2169
2170         * prj.adb:
2171         (Ada_Default_Spec_Suffix): New function
2172         (Ada_Default_Impl_Suffix): New function
2173         Change definitions of several constants to reflect
2174         new components of record types.
2175
2176         * prj.ads:
2177         (Naming_Data): Change several components to reflect new
2178         elements of naming schemes.
2179         (Project_Data): New flags Sources_Present and
2180         Language_Independent_Checked.
2181         (Ada_Default_Spec_Suffix): New function.
2182         (Ada_Default_Impl_Suffix): New function.
2183
2184         * snames.ads:
2185         Modification of predefined names for project manager: added
2186         Implementation, Specification_Exceptions, Implementation_Exceptions,
2187         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
2188         Default_Switches, _Languages, Builder, Cross_Reference,
2189         Finder. Removed Body_Part, Specification_Append, Body_Append,
2190         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
2191         Gnatlink.
2192
2193         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
2194         Add comments.
2195
2196         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
2197         not that it is Nil_Variable_Value.
2198
2199         * prj.ads: Add ??? for uncommented declarations
2200
2201 2001-10-10  Ed Schonberg <schonber@gnat.com>
2202
2203         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
2204         constant, do not indicate possible modification, so that gigi can
2205         treat it as a bona fide constant.
2206
2207 2001-10-10  Robert Dewar <dewar@gnat.com>
2208
2209         * sem_prag.adb: Add processing for pragma External.
2210
2211         * snames.ads: Add entry for pragma External.
2212
2213         * par-prag.adb: Add pragma External.
2214
2215         * snames.adb: Updated to match snames.ads.
2216
2217 2001-10-10  Ed Schonberg <schonber@gnat.com>
2218
2219         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
2220         a dynamic task if the allocator appears in an indexed assignment
2221         or selected component assignment.
2222
2223         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
2224         For a dynamic task in an assignment statement, use target of
2225         assignment to generate meaningful name.
2226
2227 2001-10-10  Ed Schonberg <schonber@gnat.com>
2228
2229         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
2230         a generic package.
2231
2232         * einfo.ads: Body_Entity is also defined for generic package.
2233         Documentation change only
2234
2235         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
2236         others_choice for a discriminated component initialization,
2237         convert discriminant references into the corresponding discriminals.
2238
2239         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
2240         only if original type is private and expression has to be wrapped
2241         in a conversion.
2242
2243         * checks.adb:
2244         (Apply_Constraint_Check): Do not perform length check
2245         if expression is an aggregate with only an others_choice.
2246         (Length_N_Cond): two references to the same in_parameter
2247         (typically the discriminal in an init_proc) denote the same value.
2248         Two useful optimization uncovered by bugfixes above.
2249
2250 2001-10-10  Robert Dewar <dewar@gnat.com>
2251
2252         * xeinfo.adb: Change int to char in translation of enumeration types.
2253         This fixes a problem in the C representation of component alignment.
2254         Add 2001 to copyright notice
2255
2256 2001-10-10  Richard Kenner <kenner@gnat.com>
2257
2258         * decl.c: (validate_size): Do check size of object of integral type
2259         if it is a packed array type.
2260
2261 2001-10-10  Richard Kenner <kenner@gnat.com>
2262
2263         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
2264         VAR_DECL for constant if not Is_Public but -O0.
2265
2266 2001-10-10  Richard Kenner  <kenner@gnat.com>
2267
2268         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
2269
2270 2001-10-10  Geert Bosch  <bosch@gnat.com>
2271
2272         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
2273         use '/' as switch character, allowing for absolute file names.
2274
2275 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
2276
2277         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
2278         FSF address.
2279
2280 2001-10-08  Geert Bosch  <bosch@gnat.com>
2281
2282         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
2283         Automatically build utilities when files need to be regenerated.
2284
2285 2001-10-08  Geert Bosch  <bosch@gnat.com>
2286
2287         * xsnames.adb: New utility for updating snames.ads and snames.adb
2288
2289 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
2290
2291         * Make-lang.in (ADAFLAGS): Add -W -Wall.
2292         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
2293         (gnat1): Also depend on attribs.o.
2294         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
2295         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
2296         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
2297         (ADAFLAGS): Add -W -Wall.
2298         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
2299         take out CFLAGS.
2300
2301         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
2302         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
2303         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
2304         Use $(ADAC), not $(CC), as compilation command.
2305
2306         (gnattools): Depend directly on tools to build, don't use
2307         recursive make.
2308         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
2309
2310         * einfo.h, sinfo.h: New files (autogenerated).
2311
2312 2001-10-08  Richard Henderson  <rth@redhat.com>
2313
2314         * comperr.adb (Abort_In_Progress): New.
2315         (Compiler_Abort): Use it to prevent recursion.
2316
2317 2001-10-08  Robert Dewar <dewar@gnat.com>
2318
2319         * atree.adb: Set Error_Posted in Error node, helps error recovery.
2320
2321         * par-endh.adb (Output_End_Expected): We should also not test
2322         Error_Posted on the Error node, since now it is always set.
2323
2324         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
2325         to help error recovery. Part of general work on 9407-004.
2326
2327         * par.adb: Add ??? for misuse of error
2328
2329         * sem_res.adb:
2330         (Resolve): Defend against Error, fixes 9407-003.
2331         (Resolve_Discrete_Subtype_Indication): Defend against Error.
2332
2333         * sinfo.ads (N_Error): Now has Etype field (which will be set
2334         to Any_Type to help error recovery).
2335
2336 2001-10-08  Richard Kenner (kenner@gnat.com)
2337
2338         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
2339         Consistently set MEM attributes from expression; fixes
2340         bootstrap failure on x86.
2341
2342 2001-10-08  Geert Bosch  (bosch@gnat.com)
2343
2344         * 5oosinte.adb: Add 2001 to copyright notice.
2345
2346 2001-10-08  Geert Bosch  (bosch@gnat.com)
2347
2348         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
2349
2350         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
2351
2352 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
2353
2354         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
2355
2356 2001-10-05  Geert Bosch  (bosch@gnat.com)
2357
2358         * adaint.h: Small formatting fix.
2359
2360 2001-10-04  Geert Bosch  <bosch@gnat.com>
2361
2362         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
2363         Arg is int, not FILE *, in dummy version of functions.
2364
2365         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
2366         Arg is int, not FILE *.
2367
2368 2001-10-04  Geert Bosch  <bosch@gnat.com>
2369
2370         * 3lsoccon.ads: Added file, missed with initial check ins.
2371
2372         * 4lintnam.ads: Fix header format.
2373         Change Linux to GNU/Linux.
2374
2375         * 5iosinte.adb: Change Linux to GNU/Linux.
2376
2377         * 5iosinte.ads: Change Linux to GNU/Linux.
2378
2379         * 5itaprop.adb: Change Linux to GNU/Linux.
2380
2381         * 5itaspri.ads: Change Linux to GNU/Linux.
2382         Update copyright notice.
2383
2384         * 5lintman.adb: Change Linux to GNU/Linux.
2385
2386         * 5lml-tgt.adb: Change Linux to GNU/Linux.
2387
2388         * 5losinte.ads: Change Linux to GNU/Linux.
2389
2390         * 5lsystem.ads: Change Linux to GNU/Linux.
2391
2392         * 5qosinte.adb: Change Linux to GNU/Linux.
2393
2394         * 5qosinte.ads: Change Linux to GNU/Linux.
2395
2396         * 5qparame.ads: Change Linux to GNU/Linux.
2397
2398         * 5qtaprop.adb: Change Linux to GNU/Linux.
2399
2400         * 5qtaspri.ads: Change Linux to GNU/Linux.
2401         Add 2001 to copyright notice.
2402
2403         * 5vintman.ads: Change Linux to GNU/Linux.
2404         Fix header format.  Add 2001 to copyright notice.
2405
2406         * g-soccon.ads: Change Linux to GNU/Linux.
2407
2408         * g-trasym.ads: Change Linux to GNU/Linux.
2409         Add 2001 to copyright notice.
2410
2411         * memtrack.adb: Change Linux to GNU/Linux.
2412
2413         * s-intman.ads: Change Linux to GNU/Linux.
2414         Add 2001 to copyright notice.  Fix header format.
2415
2416         * s-stache.adb: Change Linux to GNU/Linux.
2417
2418         * adaint.c: Change Linux to GNU/Linux.
2419
2420         * cio.c: Change Linux to GNU/Linux.
2421
2422         * cstreams.c: Change Linux to GNU/Linux.
2423
2424         * init.c: Change Linux to GNU/Linux.
2425
2426         * gmem.c: Change Linux to GNU/Linux.
2427
2428         * tracebak.c: Change Linux to GNU/Linux.
2429
2430
2431 2001-10-02  Geert Bosch  <bosch@gnat.com>
2432
2433         * misc.c (insert_default_attributes): Add dummy version.