OSDN Git Service

2008-06-26 Chris Proctor <chrisp_42@bigpond.com>
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2008-06-26  Chris Proctor  <chrisp_42@bigpond.com>
2
3         * Makefile.in: Fix *86 kfreebsd target specific pairs.
4
5 2008-06-25  Samuel Tardieu  <sam@rfc1149.net>
6
7         * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well.
8
9 2008-06-24  Eric Botcazou  <ebotcazou@adacore.com>
10
11         * utils2.c (known_alignment): Derive the alignment from pointed-to
12         types only if it is otherwise unknown.
13         <INTEGER_CST>: Tidy.
14         <MULT_EXPR>: Likewise.
15         <POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use
16         that of the base.
17
18 2008-06-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19
20         PR ada/36573
21         * s-osinte-hpux-dce.ads (SA_ONSTACK): Define.
22
23 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24
25         * gnat_rm.texi (Implementation Defined Characteristics)
26         (Standard Library Routines): Use @smallexample for indented
27         text.  Drop Indentation outside examples.
28         * gnat_ugn.texi: Likewise.
29
30 2008-06-13  Olivier Hainque  <hainque@adacore.com>
31
32         * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
33         if undefined.
34         (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
35         realignment with force_align_arg_pointer attribute on foreign
36         convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
37         
38 2008-06-13  Olivier Hainque  <hainque@adacore.com>
39
40         * utils.c (rest_of_record_type_compilation): When computing
41         encodings for the components of a variable size type, early
42         strip conversions on the current position expression to make
43         sure it's shape is visible.  Use remove_conversions for this
44         purpose.
45
46 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
47
48         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
49         constrained subtype of a discriminated type, discard the fields that
50         are beyond its limits according to its size.
51
52 2008-06-10  Olivier Hainque  <hainque@adacore.com>
53
54         * utils.c (create_subprog_decl): If this is for the 'main' entry
55         point according to the asm name, redirect main_identifier_node.
56
57 2008-06-09  Eric Botcazou  <ebotcazou@adacore.com>
58
59         * decl.c (components_to_record): Adjust the packedness for the
60         qualified union as well.
61
62 2008-06-09  Arnaud Charlet  <charlet@adacore.com>
63
64         * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
65         checks non fatal.
66
67 2008-06-07  Samuel Tardieu  <sam@rfc1149.net>
68
69         * sem_res.adb (Large_Storage_Type): A type is large if it
70         requires as many bits as Positive to store its values and its
71         bounds are known at compile time.
72         * sem_ch13.adb (Minimum_Size): Note that this function returns
73         0 if the size is not known at compile time.
74
75 2008-06-06  Nicolas Setton  <setton@adacore.com>
76             Olivier Hainque  <hainque@adacore.com>
77
78         * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
79         attribute, parallel descriptive type attached to another
80         type for debug info generation purposes.
81         * utils.c (add_parallel_type): New function, register
82         parallel type to be attached to a type.
83         (get_parallel_type): New function, fetch a registered
84         parallel type, if any.
85         (rest_of_record_type_compilation): Register the parallel
86         type we make for variable size records.
87         * gigi.h (add_parallel_type, get_parallel_type): Declare.
88         * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
89         parallel debug types we make.
90         * trans.c (extract_encoding, decode_name): New functions.
91         (gigi): If the DWARF attribute extensions are available, setup
92         to use them.
93         * lang.opt: Register language specific processing request
94         for -gdwarf+.
95         * misc.c (gnat_dwarf_extensions): New global variable. How much
96         do we want of our DWARF extensions. 0 by default.
97         (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
98         (gnat_post_options): Map gnat_dwarf_extensions to the
99         commonuse_gnu_debug_info_extensions for later processing.
100         
101 2008-06-04  Samuel Tardieu  <sam@rfc1149.net>
102
103         * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
104
105 2008-06-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
106
107         * Makefile.in (common_tools): Fix typos in $(exeext) extension.
108         * gnat_ugn.texi (Style Checking)
109         (Adding the Results of Compiler Checks to gnatcheck Output)
110         (Example of Binder Output File): Fix typos.
111         * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
112         exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
113         s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
114         s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
115         sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
116         sinfo.ads, utils.c: Fix typos in comments.
117         * sem_ch6.adb, vms_data.ads: Fix typos in strings.
118
119 2008-05-29  Thomas Quinot  <quinot@adacore.com>
120
121         * sem_eval.adb: Minor reformatting
122
123 2008-05-29  Ed Schonberg  <schonberg@adacore.com>
124
125         * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
126         is abstract, do not apply abstractness check on subprogram if this is
127         a renaming declaration.
128
129 2008-05-29  Arnaud Charlet  <charlet@adacore.com>
130
131         PR ada/864
132         * osint.ads, osint.adb (Program_Name): New parameter "Prog" to
133         allow recognition of program suffix in addition to prefix.
134         
135         * gnatchop.adb (Locate_Executable): Add support for prefix.
136         
137         * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
138         mlib-utl.adb: Adjust calls to Program_Name.
139
140 2008-05-29  Robert Dewar  <dewar@adacore.com>
141
142         * sem_ch3.adb: Minor reformatting
143         * sem_prag.adb: Minor reformatting
144         * sem_res.adb: Minor reformatting
145         * sinput-p.ads: Minor reformatting
146
147 2008-05-29  Javier Miranda  <miranda@adacore.com>
148
149         * sem_util.adb:
150         (Abstract_Interface_List): Add missing support for full type-declaration
151         associated with synchronized types.
152
153 2008-05-29  Robert Dewar  <dewar@adacore.com>
154
155         * sem_eval.adb (Is_Same_Value): Take care of several more cases
156
157 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
158
159         * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
160         access type, wrap the expression in a conversion to force an
161         accessibility check.
162
163         * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
164         accessibility checks even when expansion is disabled in order to
165         generate messages in the presence of previous errors or in
166         semantics-only mode.
167
168 2008-05-28  Eric Botcazou  <ebotcazou@adacore.com>
169
170         * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
171         * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.
172
173 2008-05-28  Vincent Celier  <celier@adacore.com>
174
175         PR ada/34446
176         * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
177         preprocessing expressions
178
179 2008-05-28  Vincent Celier  <celier@adacore.com>
180
181         * sinput-p.adb (Source_File_Is_Subunit): Allow special character used
182         for preprocessing
183         
184         * sinput-p.ads: Minor comment update and reformatting
185
186 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
187
188         * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
189         type has a deeper level than any master only when it is the type of an
190         access parameter.
191
192 2008-05-28  Javier Miranda  <miranda@adacore.com>
193
194         * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
195
196 2008-05-28  Javier Miranda  <miranda@adacore.com>
197
198         * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
199         * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
200         * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
201         Add code that was previously located in
202         Find_Overridden_Synchronized_Primitive because it is only used here.
203
204 2008-05-28  Sergey Rybin  <rybin@adacore.com>
205
206         * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
207         Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
208
209 2008-05-28  Robert Dewar  <dewar@adacore.com>
210
211         * restrict.ads:
212         Add missing restrictions, and properly label all GNAT defined ones
213         
214         * rtsfind.ads:
215         Add entry for Ada_Real_Time.Timing_Events.Timing_Event
216         Add entry for Ada.Task_Termination.Set_Specific_Handler
217         Add entry for Ada.Task_Termination.Specific_Handler
218         
219         * s-rident.ads:
220         Add missing restrictions and properly mark all gnat defined ones
221         
222         * sem_ch3.adb:
223         (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
224         
225         * sem_res.adb:
226         (Resolve_Call): Check violation of No_Specific_Termination_Handlers
227
228         * gnat_rm.texi: Add missing restrictions, and properly label all
229         GNAT defined ones
230
231 2008-05-28  Robert Dewar  <dewar@adacore.com>
232
233         * restrict.adb:
234         (Check_Restriction): violation of restriction No_Finalization is
235         treated as a serious error to stop expansion
236
237 2008-05-28  Robert Dewar  <dewar@adacore.com>
238
239         * exp_util.adb: Minor reformatting
240         * exp_util.ads: Minor reformatting.
241
242 2008-05-28  Arnaud Charlet  <charlet@adacore.com>
243
244         * Make-lang.in: Remove gprmake.
245
246         * gprmake.adb, makegpr.ads, makegpr.adb: Removed.
247
248 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
249
250         * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
251         improper progenitor names, and avoid cascaded errors.
252
253 2008-05-28  Robert Dewar  <dewar@adacore.com>
254
255         * gnat_rm.texi: Add note on Old giving warning when applied to constant
256
257         * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
258         a constant
259
260 2008-05-28  Robert Dewar  <dewar@adacore.com>
261
262         * exp_fixd.adb (Build_Multiply): Correct one-off error in computing
263         size
264
265 2008-05-28  Robert Dewar  <dewar@adacore.com>
266
267         * exp_ch5.adb:
268         (Expand_Simple_Function_Return): Copy unaligned result into temporary
269
270 2008-05-28  Javier Miranda  <miranda@adacore.com>
271
272         * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
273         for user-defined predefined primitives.
274         
275         * sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
276         (Find_Overridden_Synchronized_Primitive): Ditto.
277
278         * sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
279
280 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
281
282         * a-ststio.adb, s-direio.adb:
283         Further code clean up of previous change.
284         Update comments.
285
286 2008-05-27  Vincent Celier  <celier@adacore.com>
287
288         * prj-nmsc.adb: Minor reformatting
289
290 2008-05-27  Bob Duff  <duff@adacore.com>
291
292         * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
293         untagged private type with a tagged full type, where the full type has
294         a self reference, create the corresponding class-wide type early, in
295         case the self reference is "access T'Class".
296
297 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
298
299         * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
300         tasks and context is an object declaration. create master entity before
301         expansion.
302
303 2008-05-27  Robert Dewar  <dewar@adacore.com>
304
305         * mlib-prj.adb: Minor reformatting
306
307         * prj-part.adb: Minor reformatting
308
309         * prj.ads: Minor reformatting
310
311         * exp_ch3.adb: Minor reformatting.
312
313         * sem_ch3.ads: Minor reformatting
314
315         * sem_eval.adb: Minor reformatting
316
317 2008-05-27  Vincent Celier  <celier@adacore.com>
318
319         * gnatcmd.adb:
320         <prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack
321
322 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
323
324         * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
325         tasks, create an activation chain now, before the expansion into
326         assignments and build-in-place calls that require the presence of an
327         activation chain.
328         (Backend_Processing_Possible): If the component type is inherently
329         limited, the aggregate must be expanded into individual built-in-place
330         assignments.
331
332         * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
333         determine whether an allocation extra parameter must be built, to
334         handle case of a private type whose full type is a discriminated type
335         with defaults.
336
337 2008-05-27  Bob Duff  <duff@adacore.com>
338
339         * gnat_rm.texi:
340         Document the new behavior regarding trampolines.
341
342 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
343
344         * a-direio.adb, a-sequio.adb: Replace address clause by
345         unrestricted_access, simpler and compatible with .NET.
346
347 2008-05-27  Vincent Celier  <celier@adacore.com>
348
349         * prj-part.adb:
350         (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
351         a project file, so that symbolic links are not resolved.
352
353 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
354
355         * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
356         Replace heavy address clause by 'Unrestricted_Access, cleaner and more
357         portable across GNAT targets, since this kind of address clause is not
358         supported by VM back-ends (.NET/JGNAT).
359
360 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
361
362         * bindgen.adb: Update comments.
363         
364         * s-tasinf-mingw.adb: Add "with" of System.OS_Interface
365
366 2008-05-27  Vincent Celier  <celier@adacore.com>
367
368         * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
369         prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
370         mlib-tgt.adb, prj-env.adb, prj-env.ads:
371         (Path_Information): New record type
372         Use component of type Path_Information when there are two paths, one in
373         canonical format and one in display format.
374         Update the project manager to these new components.
375
376 2008-05-27  Robert Dewar  <dewar@adacore.com>
377
378         * makeutl.adb: Minor reformatting
379         * prj-nmsc.adb: Minor reformatting
380         * s-stausa.adb: Minor reformatting
381         * s-stausa.ads: Minor reformatting
382         * sem_ch6.adb: Minor reformatting
383
384 2008-05-27  Thomas Quinot  <quinot@adacore.com>
385
386         * sem_res.adb: Minor comment fixes
387
388 2008-05-27  Thomas Quinot  <quinot@adacore.com>
389
390         * makeutl.adb: Minor code reorganization
391
392         * exp_aggr.adb: Add ??? comment
393         Fix typo
394
395         * exp_ch6.adb: Minor reformatting
396
397 2008-05-27  Quentin Ochem  <ochem@adacore.com>
398
399         * s-stausa.adb (Initialize): Updated result initialization, and
400         initialization of environment stack.
401         (Fill_Stack): Improved computation of the pattern zone, taking into
402         account already filled at the calling point.
403         (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
404         Measure and Overflow_Guard.
405         (Report_Result): Fixed computation of the result using new fields of
406         Stack_Analyzer.
407         
408         * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
409         params by more explicit Stack_Size / Max_Pattern_Size params.
410         (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
411         Added Stack_Used_When_Filling field.
412         (Task_Result): Replaced Measure / Overflow_Guard by more explicit
413         Min_Measure and Max_Measure fields.
414         
415         * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
416
417 2008-05-27  Vincent Celier  <celier@adacore.com>
418
419         * prj-nmsc.adb:
420         (Check_File): Make sure that a unit that replaces the same unit in a
421          project being extended is properly processed.
422
423 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
424
425         * sem_ch3.adb:
426         (Get_Discr_Value): Remove obsolete code that failed to find the value
427         of a discriminant for an inherited task component appearing in a type
428         extension.
429
430 2008-05-27  Thomas Quinot  <quinot@adacore.com>
431
432         (System.File_IO.{Close, Delete, Reset}):
433         Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
434         
435         (Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
436         Pass File parameter by reference.
437
438 2008-05-27  Vincent Celier  <celier@adacore.com>
439
440         * prj-nmsc.adb:
441         (Process_Sources_In_Multi_Language_Mode): Check that there are not two
442         sources of the same project that have the same object file name.
443         (Find_Explicit_Sources): Always remove a source exception that was not
444         found.
445
446 2008-05-27  Thomas Quinot  <quinot@adacore.com>
447
448         * sem_ch3.adb: Minor reformatting
449
450 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
451
452         * sem_ch6.adb:
453         (Is_Interface_Conformant): Handle properly a primitive operation that
454         overrides an interface function with a controlling access result.
455         (Type_Conformance): If Skip_Controlling_Formals is true, when matching
456         inherited and overriding operations, omit as well the conformance check
457         on result types, to prevent spurious errors.
458
459 2008-05-27  Vincent Celier  <celier@adacore.com>
460
461         * makeutl.ads, makeutl.adb:
462         (Set_Location): New procedure
463         (Get_Location): New function
464         (Update_Main): New procedure
465
466 2008-05-27  Vincent Celier  <celier@adacore.com>
467
468         * prj-nmsc.adb:
469         (Check_Library): Allow standard project to be extended as a static
470         library project.
471         (Get_Mains): Do not inherit attribute Main in an extending library
472         project.
473
474 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
475
476         * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
477         * system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
478         * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
479         * system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
480         * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
481         * system-linux-x86.ads (Always_Compatible_Rep): Likewise.
482         * system-mingw.ads (Always_Compatible_Rep): Likewise.
483         * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
484         * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
485         * system-solaris-x86.ads (Always_Compatible_Rep): Likewise.
486         
487 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
488
489         * sem_attr.adb: add guard to previous patch.
490
491 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
492
493         * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
494         a synchronized tagged type, do not attempt to build dispatch table for
495         full view. The table is built for the corresponding record type, which
496         has its own declaration.
497
498 2008-05-27  Gary Dismukes  <dismukes@adacore.com>
499
500         * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
501         to the known type entity E, rather than setting it to Any_Type. Fixes
502         possible blowup in function Base_Init_Proc, as called from Freeze_Entity
503         for objects whose type had an illegal constraint.
504
505 2008-05-27  Vincent Celier  <celier@adacore.com>
506
507         * gnat_ugn.texi:
508         Add succinct documentation for attribute Excluded_Source_List_File
509
510 2008-05-27  Vincent Celier  <celier@adacore.com>
511
512         * prj-attr.adb: Add new project level attribute Map_File_Option
513         
514         * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
515         
516         * prj.ads: Minor reformatting and comment update
517         (Project_Configuration): New component Map_File_Option
518         
519         * snames.adb: New standard name Map_File_Option
520         
521         * snames.ads: New standard name Map_File_Option
522
523 2008-05-27  Vincent Celier  <celier@adacore.com>
524
525         * xsnames.adb: Remove unused variable Oname
526
527 2008-05-27  Doug Rupp  <rupp@adacore.com>
528
529         * exp_ch6.adb:
530         (Expand_N_Function_Call): Fix comments. Minor reformatting.
531
532         * exp_vfpt.ads:
533         (Expand_Vax_Foreign_Return): Fix comments.
534
535 2008-05-27  Thomas Quinot  <quinot@adacore.com>
536
537         * exp_dist.adb: Minor reformating
538
539 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
540
541         * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
542         No_Default_Initialization, which is now delayed until the freeze point
543         of the object. Add a comment about deferral of the check.
544         
545         * freeze.adb (Freeze_Entity): The check for No_Default_Initialization
546         on objects is moved here.
547
548 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
549
550         * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
551         (Compare_Array_S16): Adjust for above change.
552         * s-casi32.adb (Uword): Likewise.
553         (Compare_Array_S32): Likewise.
554         * s-casi64.adb (Uword): Likewise.
555         (Compare_Array_S64): Likewise.
556         * s-caun16.adb (Uhalf): Likewise.
557         (Compare_Array_U16): Likewise.
558         * s-caun32.adb (Uword): Likewise.
559         (Compare_Array_U32): Likewise.
560         * s-caun64.adb (Uword): Likewise.
561         (Compare_Array_U64): Likewise.
562         
563 2008-05-26  Robert Dewar  <dewar@adacore.com>
564
565         * exp_ch6.adb: Add ??? comment for previous change
566
567         * exp_vfpt.adb: Minor reformatting
568
569         * exp_vfpt.ads: Add ??? comment for last change
570
571         * sem_attr.adb: Add some ??? comments for previous change
572
573         * s-vaflop.ads: Add comments for previous change
574
575 2008-05-26  Doug Rupp  <rupp@adacore.com>
576
577         * s-vaflop-vms-alpha.adb:
578         Remove System.IO use clause, to prevent spurious ambiguities when
579         package is access through rtsfind.
580
581 2008-05-26  Sergey Rybin  <rybin@adacore.com>
582
583         * tree_io.ads (ASIS_Version_Number): Update because of the changes
584         made in front-end
585
586 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
587
588         * sem_attr.adb:
589         (Resolve_Attribute, case 'address):  S (A .. B)' address can be safely
590         converted to S (A)'address only if A .. B is known to be a non-null
591         range.
592
593 2008-05-26  Doug Rupp  <rupp@adacore.com>
594
595         * s-vaflop.adb:
596         (Return_D, Return_F, Return_G): New functions.
597
598         * s-vaflop.ads:
599         (Return_D, Return_F, Return_G): New functions.
600
601         * exp_vfpt.adb:
602         (Expand_Vax_Foreign_Return): New procedure
603
604         * exp_vfpt.ads:
605         (Expand_Vax_Foreign_Return): New procedure
606
607         * rtsfind.ads:
608         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
609         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
610
611         * exp_ch6.adb:
612         Import Exp_Vfpt
613         (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
614
615         * s-vaflop-vms-alpha.adb:
616         (Return_D, Return_F, Return_G): New functions.
617
618 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
619
620         * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
621         init proc entity when there is actual default initialization associated
622         with the component type, to avoid spurious errors on objects of scalar
623         array types that are marked Is_Public when No_Default_Initialization
624         applies.
625
626 2008-05-26  Thomas Quinot  <quinot@adacore.com>
627
628         * rtsfind.ads, rtsfind.adb:
629         (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
630         (Check_RPC): Support per-PCS-kind API versioning.
631         
632         exp_dist.ads, exp_dist.adb:
633         (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
634         (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
635          library function Get_RACW.
636         (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
637         library function Get_Reference.
638         (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
639         through an intermediate Any.
640         (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
641         going through an intermediate Any.
642         
643         * sem_dist.adb: Minor reformatting.
644
645 2008-05-26  Javier Miranda  <miranda@adacore.com>
646
647         * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
648         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
649         (Is_Internal): Adding documentation on internal entities that have
650         attribute Interface_Alias (old attribute Abstract_Interface_Alias)
651
652         * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
653         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
654         Added assertion to force entities with this attribute to have
655         attribute Is_Internal set to True.
656         (Next_Tag_Component): Simplify assertion using attribute Is_Tag.
657
658         * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
659         renamed as Derive_Progenitor_Subprograms. In addition, its code is
660         a new implementation.
661         (Add_Interface_Tag_Components): Remove special management of
662         synchronized interfaces.
663         (Analyze_Interface_Declaration): Minor reformating
664         (Build_Derived_Record_Type): Minor reformating
665         (Check_Abstract_Overriding): Avoid reporting error in case of abstract
666         predefined primitive inherited from interface type because the body of
667         internally generated predefined primitives of tagged types are generated
668         later by Freeze_Type
669         (Derive_Subprogram): Avoid generating an internal name if the parent
670         subprogram overrides an interface primitive.
671         (Derive_Subprograms): New implementation that keeps separate the
672         management of tagged types not implementing interfaces, from tagged
673         types that implement interfaces.
674         (Is_Progenitor): New implementation.
675         (Process_Full_View): Add documentation
676         (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
677         by call to Derive_Progenitor_Subprograms.
678
679         * sem_ch6.ads (Is_Interface_Conformant): New subprogram.
680         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
681         Skip_Controlling_Formals.
682
683         * sem_ch6.adb (Is_Interface_Conformant): New subprogram.
684         (Check_Conventions): New implementation. Remove local subprogram
685         Skip_Check. Remove formal Search_From of routine Check_Convention.
686         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
687         Skip_Controlling_Formals.
688         (New_Overloaded_Entity): Enable addition of predefined dispatching
689         operations.
690
691         * sem_disp.ads
692         (Find_Primitive_Covering_Interface): New subprogram.
693
694         * sem_disp.adb (Check_Dispatching_Operation): Disable registering
695         the task body procedure as a primitive of the corresponding tagged
696         type.
697         (Check_Operation_From_Private_Type): Avoid adding twice an entity
698         to the list of primitives.
699         (Find_Primitive_Covering_Interface): New subprogram.
700         (Override_Dispatching_Operation): Add documentation.
701
702         * sem_type.adb (Covers): Minor reformatings
703
704         * sem_util.ads (Collect_Abstract_Interfaces): Renamed as
705         Collect_Interfaces.
706         Rename formal.
707         (Has_Abstract_Interfaces): Renamed as Has_Interfaces.
708         (Implements_Interface): New subprogram.
709         (Is_Parent): Removed.
710         (Primitive_Names_Match): New subprogram.
711         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
712         (Ultimate_Alias): New subprogram.
713
714         * sem_util.adb (Collect_Abstract_Interfaces): Renamed as
715         Collect_Interfaces.
716         Remove special management for synchronized types. Rename formal. Remove
717         internal subprograms Interface_Present_In_Parent and Add_Interface.
718         (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
719         on non-record types by code to return false in such case.
720         (Implements_Interface): New subprogram.
721         (Is_Parent): Removed. No special management is now required for
722         synchronized types covering interfaces.
723         (Primitive_Names_Match): New subprogram.
724         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
725         (Ultimate_Alias): New subprogram.
726
727         * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
728         Add internal entities associated with secondary dispatch tables to
729         the list of tagged type primitives that are not interfaces.
730         (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
731         (Make_Predefined_Primitive_Specs): Code reorganization to improve
732         the management of predefined equality operator. In addition, if
733         the type has an equality function corresponding with a primitive
734         defined in an interface type, the inherited equality is abstract
735         as well, and no body can be created for it.
736
737         * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
738         exp_util to exp_disp.
739         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if
740         an entity corresponds with one of the predefined primitives required
741         to implement interfaces.
742         Update copyright notice.
743
744         * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
745         final check on abstract subprograms all the primitives associated with
746         interface primitives because they must be visible in the public and
747         private part.
748         (Write_DT): Use Find_Dispatching_Type to locate the name of the
749         interface type. This allows the use of this routine, for debugging
750         purposes, when the tagged type is not fully decorated.
751         (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
752         Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
753         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
754         entity corresponds with one of the predefined primitives required to
755         implement interfaces.
756
757         * exp_util.adb (Find_Interface_ADT): New implementation
758         (Find_Interface): Removed.
759
760         * sprint.adb (Sprint_Node_Actual): Generate missing output for the
761         list of interfaces associated with nodes
762         N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
763
764 2008-05-26  Thomas Quinot  <quinot@adacore.com>
765
766         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
767         condition for assignment to temporary.
768
769 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
770
771         * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
772         checks on the upper bound if the index type is a modular type, to
773         prevent wrap-around computations when size is close to upper bound of
774         type.
775
776 2008-05-26  Robert Dewar  <dewar@adacore.com>
777
778         * sem_ch3.adb: Minor reformatting
779
780 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
781
782         * sem_ch12.adb (Remove_Parent): Use specification of instance
783         to retrieve generic parent,
784         to handle properly the case where the instance is a child unit.
785         Add guard to handle properly wrapper packages.
786         Minor reformatting
787
788 2008-05-26  Thomas Quinot  <quinot@adacore.com>
789
790         * sinfo.ads: Minor reformatting
791
792 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
793
794         * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
795         Generate a tag check when the result subtype of a function, defined by
796         an access definition, designates a specific tagged type.
797         (Make_Tag_Check): New routine.
798
799 2008-05-26  Arnaud Charlet  <charlet@adacore.com>
800
801         * ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
802
803 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
804
805         * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
806         (builtin_decl_for): Likewise.
807         * trans.c (gigi): Likewise.
808         * utils.c (def_builtin_1): Fix formatting.
809
810 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
811
812         * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
813         Create the statements which map a string name to protected or task
814         entry indix.
815
816         * exp_ch9.adb: Add with and use clause for Stringt.
817         Minor code reformatting.
818         (Build_Entry_Names): New routine.
819         (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
820         for flag Build_Entry_Names which controls the allocation of the data
821         structure for the string names of entries.
822
823         * exp_ch9.ads (Build_Entry_Names): New subprogram.
824
825         * exp_util.adb (Entry_Names_OK): New function.
826
827         * exp_util.ads (Entry_Names_OK): New function.
828
829         * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
830         enumerations RE_Id and RE_Unit_Table.
831
832         * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
833         (Free_Entry_Names_Array): New routine.
834
835         * s-taskin.ads: Comment reformatting.
836         Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
837         Add component Entry_Names to record Ada_Task_Control_Block.
838         (Free_Entry_Names_Array): New routine.
839
840         * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
841         dynamically allocate an array
842         of string pointers. This structure holds string entry names.
843         (Free_Entry_Names): New routine.
844         (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
845         (Set_Entry_Names): New routine.
846
847         * s-tassta.ads:
848         (Create_Task): Add formal Build_Entry_Names. The flag is used to
849         control the allocation of the data structure which stores entry names.
850         (Set_Entry_Name): New routine.
851
852         * s-tpoben.adb:
853         Add with and use clause for Ada.Unchecked_Conversion.
854         (Finalize): Deallocate the entry names array.
855         (Free_Entry_Names): New routine.
856         (Initialize_Protection_Entries): When flag Build_Entry_Names is set,
857         create an array of string pointers to hold the entry names.
858         (Set_Entry_Name): New routine.
859
860         * s-tpoben.ads:
861         Add field Entry_Names to record Protection_Entries.
862         (Initialize_Protection_Entries): Add formal Build_Entry_Names.
863         (Set_Entry_Name): New routine.
864
865 2008-05-26  Vincent Celier  <celier@adacore.com>
866
867         * prj-nmsc.adb:
868         (Process_Project_Level_Simple_Attributes): process attribute Library_GCC
869
870         * prj.ads:
871         (Project_Configuration): New component Shared_Lib_Driver
872
873 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
874
875         * inline.adb:
876         (Cleanup_Scopes): For a protected operation, transfer finalization list
877         to protected body subprogram, to force cleanup actions when needed.
878
879 2008-05-26  Robert Dewar  <dewar@adacore.com>
880
881         * sem_cat.adb: Minor reformatting
882
883         * gnatname.adb: Minor reformatting
884
885         * osint.ads: Minor reformatting
886
887         * s-carun8.ads: Minor reformatting
888
889         * g-heasor.ads: Minor comment fix (unit is now pure)
890
891 2008-05-26  Robert Dewar  <dewar@adacore.com>
892
893         * exp_ch2.adb:
894         (Expand_Current_Value): Properly type generated integer literal
895
896 2008-05-26  Sergey Rybin  <rybin@adacore.com>
897
898         * gnat_ugn.texi: Add description for the new gnatcheck rule -
899         Separate_Numeric_Error_Handlers.
900
901 2008-05-26  Pascal Obry  <obry@adacore.com>
902
903         * sem_aggr.adb: Minor reformatting.
904
905 2008-05-26  Jose Ruiz  <ruiz@adacore.com>
906
907         * s-osinte-aix.adb:
908         (To_Target_Priority): Setting the time slice value to 0 or greater sets
909         the scheduling policy to FIFO within priorities or round-robin
910         respectively.
911         Hence, the priority must be set in this case to the one selected by the
912         user.
913         
914 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
915
916         * sem_ch12.adb:
917         (Remove_Parent): If the enclosing scope is an instance whose generic
918         parent is declared within some parent scope of the just completed
919         instance, make full views of the entities in that parent visible, when
920         applicable.
921         
922 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
923
924         * mingw32.h (STD_MINGW): Set to true for target w64.
925
926 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
927
928         * trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
929         instead of TREE_STATIC on the ADDR_EXPR.
930
931 2008-05-24  Eric Botcazou  <ebotcazou@adacore.com>
932
933         * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
934         (Sloc_to_locus): Do not overwrite known GCC locations when translating
935         GNAT standard locations.
936
937 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
938
939         * gigi.h (mark_visited): Declare.
940         * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
941         only the topmost node of expressions.
942         (elaborate_expression_1): Look deeper for read-only variables.
943         * trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
944         (mark_visited): Move logic to mark_visited_r.  Invoke walk_tree.
945         (mark_visited_r): New function.
946
947 2008-05-23  Vincent Celier  <celier@adacore.com>
948
949         * snames.adb: New standard name Excluded_Source_List_File.
950
951         * snames.ads: New standard name Excluded_Source_List_File.
952
953         * prj-attr.adb: New project level attribute Excluded_Source_List_File.
954
955         * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
956         Get excluded sources from
957         file indicated by attribute Excluded_Source_List_File, when present and
958         neither Excluded_Source_Files nor Locally_Removed_Files are declared.
959
960 2008-05-23  Robert Dewar  <dewar@adacore.com>
961
962         * exp_dist.adb: Minor reformatting
963
964 2008-05-23  Ed Schonberg  <schonberg@adacore.com>
965
966         * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
967         slice, convert it to an indexed component, which is equivalent, more
968         efficient, and usable even if the slice itself is not addressable.
969
970 2008-05-23  Olivier Hainque  <hainque@adacore.com>
971
972         * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
973         convention also allows access to named compiler built-in subprograms
974         such as the GCC __builtin family.
975
976 2008-05-23  Vincent Celier  <celier@adacore.com>
977
978         * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
979         sep. If there are several possibilities, choose the one with the
980         longer prefix.
981
982 2008-05-23  Vincent Celier  <celier@adacore.com>
983
984         * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
985         back end switches when executable specified with --GCC= is same as
986         default, even if there are additional options.
987
988         * gnat_ugn.texi:
989         Document when the back end switches from the ALI file are taken into
990         account when gnatlink is invoked with --GCC=
991
992 2008-05-23  Thomas Quinot  <quinot@adacore.com>
993
994         * s-os_lib.adb:
995         (copy_File): Do not open destination file if source file is unreadable.
996
997 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
998
999         * utils.c (handle_type_generic_attribute): Adjust to accept
1000         fixed arguments before an elipsis.
1001
1002 2008-05-21  Thomas Quinot  <quinot@adacore.com>
1003
1004         * g-sothco.ads, g-sothco.adb: New files.
1005
1006 2008-05-20  Thomas Quinot  <quinot@adacore.com>
1007
1008         * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
1009
1010         * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
1011         Add missing "with" of Ada.Unchecked_Conversion
1012
1013         * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads, 
1014         g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads, 
1015         g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads, 
1016         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads, 
1017         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads, 
1018         g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads: 
1019         Move common code out of GNAT.Sockets.Thin implementations and into
1020         Thin_Common.
1021         New constant SIZEOF_fd_set
1022         New flag Has_Sockaddr_Len
1023         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
1024
1025         * g-stsifd-sockets.adb
1026         (Create): Remove call to Set_Length; use Set_Family to set the family
1027         and (on appropriate platforms) length fields in struct sockaddr.
1028
1029         * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb, 
1030         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb, 
1031         g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
1032         Move common code out of GNAT.Sockets.Thin implementations and into
1033         Thin_Common.
1034
1035         * g-socket.ads, g-socket.adb: 
1036         Move common code out of GNAT.Sockets.Thin implementations and into
1037         Thin_Common.
1038         (Connect_Socket, Accept_Socket): Provide new versions of these two
1039         routines that operate with a user specified timeout.
1040         (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
1041         this is now handled automatically by Set_Family on platforms that
1042         require it.
1043
1044         * gen-soccon.c: 
1045         Move common code out of GNAT.Sockets.Thin implementations and into
1046         Thin_Common.
1047         (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
1048         this constant to 0 (not -1) because we use it to initialize an
1049         unsigned_char value.
1050         Align values for numeric constants only.
1051         Handle the case of systems that do not support AF_INET6.
1052         New constant SIZEOF_fd_set
1053         New flag Has_Sockaddr_Len
1054         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
1055
1056         * gsocket.h: New flag Has_Sockaddr_Len
1057         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
1058
1059 2008-05-20  Santiago Uruena  <uruena@adacore.com>
1060
1061         * i-cobol.ads: Interfaces.COBOL should be preelaborate.
1062
1063 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
1064
1065         * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
1066         the underlying issue with malloc/free has been fixed. Remove associated
1067         comments.
1068         Minor reformatting.
1069         Related to PR ada/24533
1070
1071 2008-05-20  Robert Dewar  <dewar@adacore.com>
1072
1073         * ali.adb: Correct casing of ASCII.NUL
1074
1075         * styleg-c.adb (Check_Identifier): Handle case of names in ASCII
1076         properly.
1077
1078 2008-05-20  Robert Dewar  <dewar@adacore.com>
1079             Gary Dismukes  <dismukes@adacore.com>
1080
1081         * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
1082         overflow if result converted to wider integer type.
1083         (Apply_Type_Conversion_Checks): Don't emit checks on conversions to
1084         discriminated types when discriminant checks are suppressed.
1085
1086 2008-05-20  Vincent Celier  <celier@adacore.com>
1087
1088         * cstand.adb (Print_Standard): Issue the correct Size clause for type
1089         Wide_Wide_Character.
1090
1091 2008-05-20  Tristan Gingold  <gingold@adacore.com>
1092
1093         * decl.c: Do not emit a variable for a object that has an address
1094         representation clause whose value is known at compile time.
1095         When a variable has an address clause whose value is known at compile
1096         time, refer to this variable by using directly the address instead of
1097         dereferencing a pointer.
1098
1099 2008-05-20  Robert Dewar  <dewar@adacore.com>
1100
1101         PR ada/30740
1102         * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
1103         subtypes, always False for non-modular types.
1104         Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
1105         entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
1106         for Shared_Storage package.
1107         (Is_RACW_Stub_Type): New entity flag.
1108
1109         * exp_ch4.adb
1110         (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
1111         case where we have a modular type with a non-binary modules.
1112         Comments reformattings.
1113
1114         * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
1115         all types.
1116
1117 2008-05-20  Javier Miranda  <miranda@adacore.com>
1118
1119         * exp_aggr.adb
1120         (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
1121         tests did not covered the case in which the type of the aggregate has
1122         no progenitors but some its parents has progenitors.
1123
1124 2008-05-20  Gary Dismukes  <dismukes@adacore.com>
1125             Hristian Kirtchev  <kirtchev@adacore.com>
1126
1127         * exp_ch3.adb
1128         (Expand_N_Object_Declaration): Correct the condition which triggers the
1129         generation of a call to Displace when initializing a class-wide object.
1130         (Build_Dcheck_Functions): Build discriminant-checking for null variants
1131         when Frontend_Layout_On_Target is true to ensure that they're available
1132         for calling when a record variant size function is built in Layout.
1133
1134 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
1135
1136         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
1137         procedure for a derived type retrieve the discriminant values from the
1138         parent using the corresponding discriminant.
1139         (Expand_N_Assignment_Statement): Skip generation of implicit
1140         if-statement associated with controlled types if we are
1141         compiling with restriction No_Finalization.
1142
1143 2008-05-20  Vincent Celier  <celier@adacore.com>
1144
1145         * prj.adb (Hash (Project_Id)): New function
1146         (Project_Empty): Add new component Interfaces_Defined
1147
1148         * prj.ads (Source_Data): New component Object_Linked
1149         (Language_Config): New components Object_Generated and Objects_Linked
1150         (Hash (Project_Id)): New function
1151         (Source_Data): New Boolean components In_Interfaces and
1152         Declared_In_Interfaces.
1153         (Project_Data): New Boolean component Interfaces_Defined
1154
1155         * prj-attr.adb: 
1156         New project level attribute Object_Generated and Objects_Linked
1157         Add new project level attribute Interfaces
1158
1159         * prj-dect.adb: Use functions Present and No throughout
1160         (Parse_Variable_Declaration): If a string type is specified as a simple
1161         name and is not found in the current project, look for it also in the
1162         ancestors of the project.
1163
1164         * prj-makr.adb: 
1165         Replace procedure Make with procedures Initialize, Process and Finalize
1166         to implement H414-023: process different directories with different
1167         patterns.
1168         Use functions Present and No throughout
1169
1170         * prj-makr.ads: 
1171         Replace procedure Make with procedures Initialize, Process and Finalize
1172
1173         * prj-nmsc.adb
1174         (Add_Source): Set component Object_Exists and Object_Linked accordnig to
1175         the language configuration.
1176         (Process_Project_Level_Array_Attributes): Process new attributes
1177         Object_Generated and Object_Linked.
1178         (Report_No_Sources): New Boolean parameter Continuation, defaulted to
1179         False, to indicate that the erreor/warning is a continuation.
1180         (Check): Call Report_No_Sources with Contnuation = True after the first
1181         call.
1182         (Error_Msg): Process successively contnuation character and warning
1183         character.
1184         (Find_Explicit_Sources): Check that all declared sources have been found
1185         (Check_File): Indicate in hash table Source_Names when a declared source
1186         is found.
1187         (Check_File): Set Other_Part when found
1188         (Find_Explicit_Sources): In multi language mode, check if all exceptions
1189         to the naming scheme have been found. For Ada, report an error if an
1190         exception has not been found. Otherwise, disregard the exception.
1191         (Check_Interfaces): New procedure
1192         (Add_Source): When Other_Part is defined, set mutual pointers in spec
1193         and body.
1194         (Check): In multi-language mode, call Check_Interfaces
1195         (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
1196         for an excluded source.
1197         (Remove_Source): A source replacing a source in the interfaces is also
1198         in the interfaces.
1199
1200         * prj-pars.adb: Use function Present
1201
1202         * prj-part.adb: Use functions Present and No throughout
1203         (Parse_Single_Project): Set the parent project for child projects
1204         (Create_Virtual_Extending_Project): Register project with no qualifier
1205         (Parse_Single_Project): Allow an abstract project to be extend several
1206         times. Do not allow an abstract project to extend a non abstract
1207         project.
1208
1209         * prj-pp.adb: Use functions Present and No throughout
1210         (Print): Take into account the full associative array attribute
1211         declarations.
1212
1213         * prj-proc.adb: Use functions Present and No throughout
1214         (Expression): Call itself with the same From_Project_Node for the
1215         default value of an external reference.
1216
1217         * prj-strt.adb: Use functions Present and No throughout
1218         (Parse_Variable_Reference): If a variable is specified as a simple name
1219         and is not found in the current project, look for it also in the
1220         ancestors of the project.
1221
1222         * prj-tree.ads, prj-tree.adb (Present): New function
1223         (No): New function
1224         Use functions Present and No throughout
1225         (Parent_Project_Of): New function
1226         (Set_Parent_Project_Of): New procedure
1227
1228         * snames.ads, snames.adb: 
1229         Add new standard names Object_Generated and Objects_Linked
1230
1231 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
1232
1233         * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
1234         and the derived type are of the same kind.
1235         (Expand_Call): Generate type conversions for actuals of
1236         record or array types when the parent and the derived types differ in
1237         size and/or packed status.
1238
1239 2008-05-20  Javier Miranda  <miranda@adacore.com>
1240             Ed Schonberg  <schonberg@adacore.com>
1241
1242         * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
1243         generating dispatch tables of locally defined tagged types statically.
1244         Remove implicit if-statement that is no longer required.
1245         (Expand_Dispatching_Call): If this is a call to an instance of the
1246         generic dispatching constructor, the type of the first argument may be
1247         a subtype of Tag, so always use the base type to recognize this case.
1248
1249 2008-05-20  Thomas Quinot  <quinot@adacore.com>
1250
1251         * exp_dist.adb
1252         (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
1253         and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
1254         assigning NULL into the result, to avoid a spurious warning.
1255         (Add_RACW_Features, case Same_Scope): Add assertion that designated type
1256         is not frozen.
1257         (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
1258         type.
1259         (Build_From_Any_Function, Build_To_Any_Function,
1260         Build_TypeCode_Function): For a type that has user-specified stream
1261         attributes, use an opaque sequence of octets as the representation.
1262
1263 2008-05-20  Kevin Pouget  <pouget@adacore.com>
1264
1265         * exp_smem.ads, exp_smem.adb: Construction of access and assign
1266         routines has been replaced by an instantiation of
1267         System.Shared_Storage.Shared_Var_Procs generic package, while expanding
1268         shared variable declaration.
1269         Calls to access and assign routines have been replaced by calls to
1270         Read/Write routines of System.Shared_Storage.Shared_Var_Procs
1271         instantiated package.
1272         
1273         * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
1274         It identifies the new generic package added in s-shasto.
1275
1276         * s-shasto.adb, s-shasto.ads: A new generic package has been added, it
1277         is instantiated for each shared passive variable. It provides
1278         supporting procedures called upon each read or write access by the
1279         expanded code.
1280
1281         * sem_attr.adb:
1282         For this runtime unit (always compiled in GNAT mode), we allow
1283         stream attributes references for limited types for the case where
1284         shared passive objects are implemented using stream attributes,
1285         which is the default in GNAT's persistent storage implementation.
1286
1287 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
1288
1289         * freeze.adb
1290         (Freeze_Enumeration_Type): For a subtype that inherits a foreign
1291         convention from its base type, do not set the type to that of integer,
1292         because it may inherit a size clause.
1293         Warn on a size clause with a size different
1294         from that of Integer, if the type has convention C.
1295
1296 2008-05-20  Vincent Celier  <celier@adacore.com>
1297
1298         * gnatname.adb
1299         (Scan_Args): Rewrite to take into account new switch --and to separate
1300         arguments into sections.
1301         (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
1302         section, then Finalize.
1303
1304 2008-05-20  Tristan Gingold  <gingold@adacore.com>
1305
1306         * init.c: Enable stack probing on ppc-linux.
1307
1308         * tracebak.c: Add symbolic traceback for ppc-linux.
1309
1310         * system-linux-ppc.ads: Enable stack probing on ppc-linux.
1311
1312 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
1313
1314         * Makefile.in
1315         (common-tools): New rule, to avoid parallel build failure on gnat tools.
1316         Reenable parallel builds on this Makefile.
1317
1318         * Make-lang.in: Update dependencies.
1319
1320 2008-05-20  Robert Dewar  <dewar@adacore.com>
1321
1322         * opt.ads (Treat_Restrictions_As_Warnings): New switch
1323
1324         * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
1325         Treat_Restrictions_As_Warnings.
1326
1327         * switch-c.adb: Recognize new switch -gnatr
1328
1329         * usage.adb: Add line for -gnatr
1330
1331 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
1332
1333         * par-ch3.adb
1334         (P_Access_Definition): Change the error message when parsing "access
1335         all" in Ada 95 mode. The message no longer forces the user to recompile
1336         in 05 mode only to discover that anonymous access types are not allowed
1337         to have "all".
1338
1339 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
1340
1341         * par-ch9.adb
1342         (P_Protected): Update the error message on missing "-gnat05" switch when
1343         using interfaces in conjunction with protected types. Remove the
1344         incorrect error message associated with the presence of "private" after
1345         a "with".
1346
1347 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
1348
1349         * sem_aggr.adb: Update comments.
1350         Improve previous change for PR ada/17985
1351
1352 2008-05-20  Thomas Quinot  <quinot@adacore.com>
1353
1354         * sem_cat.adb
1355         (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
1356         the visible part of the spec of a remote types unit.
1357         (Validate_Remote_Access_Object_Type_Declaration):
1358         New local subprogram Is_Valid_Remote_Object_Type, replaces
1359         Is_Recursively_Limited_Private.
1360         (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
1361         non-controlling formals (and the return type, even though this is not
1362         explicit in the standard) must support external streaming.
1363         (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
1364         as above for of RAS types and RCI subprograms. (The return type is not
1365         checked yet).
1366         Update comments related to RACWs designating limited interfaces per
1367         ARG ruling on AI05-060.
1368
1369         * sem_util.ads, sem_util.adb
1370         (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
1371         Is_Remote_Call_Interface to identify RACW types in a stable and
1372         consistent way. We used to rely in this predicate on the privateness of
1373         the designated type and its ancestors, but depending on the currently
1374         visible private parts, this caused false negatives. We now uniformly
1375         rely on checks made at the point where the RACW type is declared.
1376         (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
1377
1378 2008-05-20  Javier Miranda  <miranda@adacore.com>
1379             Ed Schonberg  <schonberg@adacore.com>
1380             Hristian Kirtchev  <kirtchev@adacore.com>
1381
1382         * sem_ch3.adb
1383         (Analyze_Object_Declaration): Fix over-conservative condition
1384         restricting use of predefined assignment with tagged types that have
1385         convention CPP.
1386         (Analyze_Object_Declaration): Relax the check regarding deferred
1387         constants declared in scopes other than packages since they can be
1388         completed with pragma Import.
1389         Add missing escaping of all-caps word 'CPP' in error messages.
1390         (Build_Discriminated_Subtype): Do not inherit representation clauses
1391         from parent type if subtype already carries them, because they are
1392         inherited earlier during derivation and already include those that may
1393         come from a partial view.
1394
1395         * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
1396         Check the declarations of a subprogram body for proper deferred
1397         constant completion.
1398
1399         * sem_ch7.ads, sem_ch7.adb
1400         (Inspect_Deferred_Constant_Completion): Moved to sem_util.
1401
1402 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
1403             Thomas Quinot  <quinot@adacore.com>
1404
1405         * sem_ch4.adb
1406         (Try_Indexed_Call): Handle properly a construct of the form F(S) where
1407         F is a parameterless function that returns an array, and S is a subtype
1408         mark.
1409         (Analyze_Call): Insert dereference when the prefix is a parameterless
1410         function that returns an access to subprogram and the call has
1411         parameters.
1412         Reject a non-overloaded call whose name resolves to denote
1413         a primitive operation of the stub type generated to support a remote
1414         access-to-class-wide type.
1415
1416 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
1417
1418         * sem_ch8.adb
1419         (Note_Redundant_Use): Diagnose a redundant use within a subprogram body
1420         when there is a use clause for the same entity in the context.
1421         (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
1422         created for a stream attribute of an abstract type or interface type.
1423
1424 2008-05-20  Thomas Quinot  <quinot@adacore.com>
1425
1426         * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
1427         subprogram.
1428
1429         * sem_type.adb
1430         (Add_One_Interp): Ignore any interpretation that is a primitive
1431         operation of an RACW stub type (these primitives are only executed
1432         through dispatching, never through static calls).
1433         (Collect_Interps): When only one interpretation has been found, set N's
1434         Entity and Etype to that interpretation, otherwise Entity and Etype may
1435         still refer to an interpretation that was ignored by Add_One_Interp,
1436         in which case would end up with being marked as not overloaded but with
1437         an Entity attribute not pointing to its (unique) correct interpretation.
1438
1439 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
1440
1441         * sem_eval.adb
1442         (Eval_Slice): Warn when a slice whose discrete range is a subtype name
1443         denotes the whole array of its prefix.
1444
1445 2008-05-20  Robert Dewar  <dewar@adacore.com>
1446
1447         * sem_res.adb (Resolve_Op_Not): Warn on double negation
1448
1449 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
1450
1451         * sprint.adb
1452         (Print_Itype): Do not modify the sloc of the component type of a
1453         (packed) array itype, because it is an unrelated type whose source
1454         location is independent of the point of creation of the itype itself.
1455
1456 2008-05-20  Thomas Quinot  <quinot@adacore.com>
1457
1458         * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with
1459         Append.
1460
1461 2008-05-20  Robert Dewar  <dewar@adacore.com>
1462             Vincent Celier  <celier@adacore.com>
1463
1464         * vms_data.ads: Add entry for -gnatr
1465         Put GNAT SYNC section in proper alpha order
1466         Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d
1467
1468         * gnat_ugn.texi: Add documentation for new gnatname switch --and
1469         Update the style checks section
1470         Add documentation of -gnatr
1471         Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
1472         subsection the explanation how compiler checks should be disabled for
1473         gnatcheck.
1474         Update the list of Ada 95 reserved words used by in the project language
1475         Add documentation for project qualifiers.
1476         Document that abstract projects may be extended by different projects in
1477         the same project tree.
1478         Add documentation for gnatmake switch -d
1479
1480         * ug_words: Add -gnatyy VMS equivalence string.
1481         Add entry for -gnatr
1482
1483 2008-05-20  Bob Duff  <duff@adacore.com>
1484
1485         * a-rttiev.adb
1486         (Set_Handler): Remove code from both of these that implements
1487         RM-D.15(15/2), because it causes a race condition and potential
1488         deadlock.
1489         (Process_Queued_Events): Add comment explaining "exception when others
1490         => null". Add clarifying ".all", even though implicit .all is legal
1491         here.
1492
1493 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
1494
1495         * s-winext.ads: Replace representation clause by pragma Pack. Gives
1496         equivalent representation, but has the advantage of allowing
1497         compilation of this file under 64 bits platforms.
1498
1499         * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.
1500
1501         * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration.
1502
1503         * adaint.c: 
1504         Don't define dummy implementation of convert_addresses on ppc-linux.
1505
1506 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
1507
1508         * exp_ch7.adb
1509         (Expand_Ctrl_Function_Call): Do not attach result to finalization list
1510         if expression is aggregate component.
1511
1512 2008-05-20  Robert Dewar  <dewar@adacore.com>
1513
1514         * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads,
1515         sem_ch12.adb: Update comments. Minor reformatting.
1516
1517         * exp_ch2.adb: Typo
1518
1519         * s-unstyp.ads: Fixed some typos in comments.
1520
1521 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
1522
1523         * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New
1524         type/constant.
1525
1526         * g-socthi-vxworks.ads: Update to latest socket changes.
1527
1528         * a-caldel-vms.adb: Resync with a-caldel spec.
1529
1530         * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting.
1531         Update comments.
1532
1533 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1534
1535         * trans.c (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Account
1536         for dummy types pointed to by the converted pointer types.
1537
1538 2008-05-15  Eric Botcazou  <ebotcazou@adacore.com>
1539
1540         * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field
1541         of records and unions.
1542         (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Fix formatting.
1543
1544 2008-05-14  Samuel Tardieu  <sam@rfc1149.net>
1545             Robert Dewar <dewar@adacore.com>
1546
1547         * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add
1548         restrictions to the prefix of 'Old.
1549         * sem_util.ads, sem_util.adb (In_Parameter_Specification): New.
1550         * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local
1551         variables.
1552
1553 2008-05-13  Eric Botcazou  <ebotcazou@adacore.com>
1554
1555         PR ada/24880
1556         PR ada/26635
1557         * utils.c (convert) <INTEGER_TYPE>: When converting an additive
1558         expression to an integral type with lower precision, use NOP_EXPR
1559         directly in a couple of special cases.
1560
1561 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
1562             Ed Schonberg <schonberg@adacore.com>
1563
1564         * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching
1565         constraint expressions.
1566
1567 2008-05-12  Tomas Bily  <tbily@suse.cz>
1568
1569         * utils2.c (known_alignment, contains_save_expr_p)
1570         (gnat_mark_addressable): Use CASE_CONVERT.
1571         * decl.c (annotate_value): Likewise.
1572         * trans.c (maybe_stabilize_reference): Likewise.
1573         * utils2.c (build_binary_op): Use CONVERT_EXPR_P.
1574         * utils.c (rest_of_record_type_compilation): Likewise.
1575         * trans.c (protect_multiple_eval, Attribute_to_gnu)
1576         (protect_multiple_eval): Likewise.
1577
1578 2008-05-08  Andreas Schwab  <schwab@suse.de>
1579
1580         * utils.c (handle_pure_attribute, init_gigi_decls): Rename
1581         DECL_IS_PURE to DECL_PURE_P.
1582
1583 2008-05-05  Eric Botcazou  <ebotcazou@adacore.com>
1584
1585         * decl.c (maybe_pad_type): Add ??? comment.
1586
1587 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
1588
1589         * decl.c (components_to_record): Zero the alignment of the qualified
1590         union built for the variant part upon creating it.
1591
1592 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
1593
1594         * decl.c (maybe_pad_type): Try to get a form of the type with integral
1595         mode even if the alignment is not a factor of the original size.  But
1596         make sure to create the inner field with the original size.  Reorder.
1597         * trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding
1598         record as always addressable.
1599         * utils.c (convert): Deal specially with conversions between original
1600         and packable versions of a record type.
1601         * utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when
1602         recognizing an assignment between padded objects.
1603
1604 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
1605
1606         * decl.c (make_packable_type): Resize the last component to its RM size
1607         only if it is of an aggregate type.
1608         * trans.c (call_to_gnu): Fix nit in comment.
1609         (gnat_to_gnu): Likewise.
1610
1611 2008-04-30  Samuel Tardieu  <sam@rfc1149.net>
1612
1613         * Makefile.in: Adapt sh4-linux target.
1614
1615 2008-04-29  Ed Schonberg  <schonberg@adacore.com>
1616
1617         PR ada/35792
1618         * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete
1619         tagged type by an untagged protected or task type.
1620
1621 2008-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1622             Tristan Gingold  <gingold@adacore.com>
1623
1624         PR ada/36007
1625         * decl.c (gnat_to_gnu_entity) <object>: Do not promote alignment
1626         of aliased objects with an unconstrained nominal subtype.
1627         Cap the promotion to the effective alignment of the word mode.
1628
1629 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1630
1631         * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads)
1632         (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads):
1633         Use '&&' instead of ';'.
1634
1635 2008-04-24  Olivier Hainque  <hainque@adacore.com>
1636
1637         * trans.c (Attribute_to_gnu) <case Attr_Length>: Length computation
1638         doesn't require signed arithmetic anymore.
1639
1640 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
1641
1642         * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT.
1643         (call_to_gnu): Don't set TREE_INVARIANT.
1644         * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT.
1645
1646 2008-04-22  Joel Sherrill <joel.sherrill@oarcorp.com>
1647
1648         * s-osinte-rtems.adb: Add sigalstack function.
1649         * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack
1650         function. Add Alternate_Stack and Alternate_Stack_Size.
1651         Add missing process_shared field to pthread_condattr_t
1652         and change ss_low_priority to int from timespec.
1653
1654 2008-04-22  Samuel Tardieu  <sam@rfc1149.net>
1655
1656         * i-forbla.adb: Link against -llapack and -lblas by default
1657         instead of the private -lgnalasup.
1658
1659 2008-04-21  Olivier Hainque  <hainque@adacore.com>
1660
1661         Access to most C builtins from Ada
1662         * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE.
1663         (handle_pure_attribute, handle_novops_attribute,
1664         handle_nonnull_attribute, handle_sentinel_attribute,
1665         handle_noreturn_attribute, handle_malloc_attribute,
1666         handle_type_generic_attribute): New attribute handlers, from C fe.
1667         (gnat_internal_attribute_table): Map the new handlers.
1668         (gnat_init_decl_processing): Move call to gnat_install_builtins to ...
1669         (init_gigi_decls): ... here.
1670         (handle_const_attribute, handle_nothrow_attribute, builtin_decl_for):
1671         Move to a section dedicated to builtins processing.
1672         (build_void_list_node, builtin_type_for_size): New functions.
1673         (def_fn_type, get_nonnull_operand): Likewise.
1674         (install_builtin_elementary_type, install_builtin_function_types,
1675         install_builtin_attributes): Likewise.
1676         (fake_attribute_handler): Fake handler for attributes we don't
1677         support in Ada.
1678         (def_builtin_1): New function, worker for DEF_BUILTIN.
1679         (install_builtin_functions): New function.
1680         (gnat_install_builtins): Move to the builtins processing section.
1681         Now calling the newly introduced installers.
1682
1683 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
1684
1685         * decl.c (gnat_to_gnu_entity) <object>: Also promote the alignment of
1686         constant objects, but not exceptions.
1687         * trans.c (add_decl_expr): Use gnat_types_compatible_p for type
1688         compatibility test.
1689         * utils.c (create_var_decl_1): Likewise.
1690         * utils2.c (build_binary_op) <MODIFY_EXPR>: Also use the padded view of
1691         the type when copying to padded object and the source is a constructor.
1692
1693 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1694
1695         * decl.c (gnat_to_gnu_entity) <object>: When trying to promote the
1696         alignment, reset it to zero if it would end up not being greater
1697         than that of the type.
1698
1699 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1700
1701         * decl.c (maybe_pad_type): Only generate the XVS parallel type if
1702         the padded type has a variable size.
1703
1704 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1705
1706         * decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Use the return by
1707         target pointer mechanism as soon as the size is not constant.
1708
1709 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1710
1711         * gigi.h (create_var_decl_1): Declare.
1712         (create_var_decl): Turn into a macro invoking create_var_decl_1.
1713         (create_true_var_decl): Likewise.
1714         * utils.c (create_var_decl_1): Make global and reorder parameters.
1715         (create_var_decl): Delete.
1716         (create_true_var_decl): Likewise.
1717
1718 2008-04-17  Eric Botcazou  <ebotcazou@adacore.com>
1719
1720         * decl.c (gnat_to_gnu_entity) <object>: Promote the alignment of
1721         objects by default.
1722         * fe.h (Debug_Flag_Dot_A): Delete.
1723         * debug.adb (-gnatd.a): Update documentation.
1724
1725 2008-04-17  Samuel Tardieu  <sam@rfc1149.net>
1726
1727         * g-socket.ads, g-socket.adb (Get_Address): Make Stream a
1728         "not null" parameter.
1729
1730 2008-04-17  Samuel Tardieu  <sam@rfc1149.net>
1731
1732         * g-socket.adb: Add a message "IPv6 not supported" to the
1733         Socket_Error exception.
1734
1735 2008-04-16  Samuel Tardieu  <sam@rfc1149.net>
1736
1737         PR ada/29015
1738         * sem_ch12.adb (Instantiate_Type): Check whether the full view of
1739         the type is known instead of the underlying type.
1740
1741 2008-04-15  Ed Schonberg  <schonberg@adacore.com>
1742
1743         PR ada/22387
1744         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
1745         procedure for a derived type retrieve the discriminant values from
1746         the parent using the corresponding discriminant.
1747
1748 2008-04-15  Samuel Tardieu  <sam@rfc1149.net>
1749             Gary Dismukes  <dismukes@adacore.com>
1750
1751         PR ada/28733
1752         * sem_ch8.adb (Analyze_Use_Package): Do not allow "use" of something
1753         which is not an entity (and hence not a package).
1754         (End_Use_Package): Ditto.
1755
1756 2008-04-15  Ed Schonberg  <schonberg@adacore.com>
1757
1758         PR ada/16086
1759         * sem_ch12.adb (Analyze_Formal_Subprogram): The default can be any
1760         protected operation that matches the signature, not only an entry, a
1761         regular subprogram or a literal.
1762
1763 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
1764
1765         * ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3.
1766         * decl.c (gnat_to_gnu_entity) <object>: Call maybe_pad_type only
1767         if a size or alignment is specified.  Do not take into account
1768         alignment promotions for the computation of the object's size.
1769         <type>: Call maybe_pad_type only if a size or alignment is specified.
1770         (maybe_pad_type): Really reuse the RM_Size of the original type if
1771         requested.
1772         * trans.c (Attribute_to_gnu): Fix a couple of nits.
1773         * utils2.c (build_binary_op) <MODIFY_EXPR>: Merge related conditional
1774         statements.  Use the padded view of the type when copying between
1775         padded objects of the same underlying type.
1776
1777 2008-04-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1778
1779         * vms_data.ads: Fix typo in constant.
1780         * gen-soccon.c: Fix typo in error string.
1781         * gnat_rm.texi (Pragma Optimize_Alignment, Pragma Postcondition):
1782         Fix typos.
1783         * a-calcon.ads, a-calend-vms.adb, a-calend.adb, a-crdlli.ads,
1784         bcheck.adb, checks.adb, einfo.ads, errout.adb, erroutc.adb,
1785         erroutc.ads, exp_attr.adb, exp_ch11.adb, exp_ch2.adb,
1786         exp_ch5.adb, exp_ch9.adb, exp_ch9.ads, exp_pakd.adb,
1787         exp_util.adb, fmap.adb, g-soccon-linux-mips.ads,
1788         g-soccon-rtems.ads, g-timsta.adb, g-timsta.ads, lib-writ.ads,
1789         mlib-tgt-specific-linux.adb, mlib-tgt-specific-tru64.adb,
1790         s-interr-vxworks.adb, s-interr.adb, s-osinte-lynxos.ads,
1791         s-rident.ads, s-taprop-solaris.adb, s-tassta.adb, s-win32.ads,
1792         sem_aggr.adb, sem_attr.ads, sem_ch10.adb, sem_ch13.ads,
1793         sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
1794         sem_prag.ads, sem_res.adb, sem_util.adb, sem_util.ads,
1795         sinfo.ads: Fix typos in comments.
1796
1797 2008-04-14  Robert Dewar  <dewar@adacore.com>
1798
1799         * sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error
1800         to every non-object and change error message.
1801
1802 2008-04-14  Robert Dewar  <dewar@adacore.com>
1803
1804         * sem_util.ads, sem_util.adb (In_Subprogram): Remove.
1805         * sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram
1806         directly.
1807
1808 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
1809
1810         PR ada/18680
1811         * sem_prag.adb (Analyze_Pragma, Linker_Section case): Refuse to
1812         apply pragma Linker_Section on type.
1813
1814 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
1815
1816         PR ada/16098
1817         * sem_prag.adb (Error_Pragma_Ref): New.
1818         (Process_Convention): Specialized message for non-local
1819         subprogram renaming. Detect the problem in homonyms as well.
1820
1821 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
1822
1823         PR ada/15915
1824         * sem_util.ads, sem_util.adb (Denotes_Variable): New function.
1825         * sem_ch12.adb (Instantiate_Object): Use it.
1826         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that
1827         storage pool denotes a variable as per RM 13.11(15).
1828
1829 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
1830
1831         * sem_util.ads, sem_util.adb (In_Subprogram): New function.
1832         * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it.
1833
1834 2008-04-14  Rolf Ebert  <rolf.ebert.gcc@gmx.de>
1835
1836         PR ada/20822
1837         * xgnatugn.adb (Put_Line): New procedure, ensuring Unix
1838         line endings even on non-Unix platforms.
1839
1840 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
1841
1842         PR ada/35050
1843         * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the
1844         renaming information.
1845
1846 2008-04-13  Samuel Tardieu  <sam@rfc1149.net> 
1847
1848         PR ada/17985
1849         * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of
1850         itself.
1851
1852 2008-04-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1853
1854         * sfn_scan.adb, sfn_scan.ads, sinfo.ads,
1855         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads,
1856         snames.ads, sprint.adb, stand.ads, stringt.ads,
1857         styleg.adb, styleg.ads, stylesw.adb, stylesw.ads,
1858         switch.ads, sysdep.c, table.adb, table.ads,
1859         targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c,
1860         trans.c, tree_io.adb, treepr.adb, types.adb, types.ads,
1861         uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads,
1862         vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb,
1863         widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb,
1864         xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb:
1865         Fix comment typos.
1866
1867         * sem_ch10.adb, sem_ch10.ads,
1868         sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads,
1869         sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
1870         sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
1871         sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb,
1872         sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads,
1873         sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads,
1874         sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
1875         sem_warn.ads: Fix comment typos.
1876
1877         * s-secsta.adb, s-sequio.ads, s-shasto.ads,
1878         s-soflin.ads, s-stalib.ads, s-stausa.adb,
1879         s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads,
1880         s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
1881         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb,
1882         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
1883         s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb,
1884         s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads,
1885         s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads,
1886         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
1887         s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb,
1888         s-tposen.ads, s-traceb-hpux.adb, s-traces.ads,
1889         s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads,
1890         s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb,
1891         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads,
1892         scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb,
1893         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
1894         sem_cat.adb, sem_cat.ads: Fix comment typos.
1895
1896 2008-04-12  Joel Sherrill  <joel@oarcorp.com>
1897
1898         PR ada/35825
1899         * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported.
1900
1901 2008-04-12  Arnaud Charlet  <charlet@adacore.com>
1902
1903         * s-linux-hppa.ads: Fix syntax errors.
1904
1905 2008-04-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1906
1907         * gnat_ugn.texi: Fix typos.
1908         * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb,
1909         restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads,
1910         s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads,
1911         s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads,
1912         s-fatllf.ads, s-fatsfl.ads, s-filofl.ads,
1913         s-finimp.adb, s-finroo.ads, s-fishfl.ads,
1914         s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads,
1915         s-hibaen.ads, s-htable.ads, s-imgcha.adb,
1916         s-imgenu.ads, s-imgint.adb, s-imgrea.adb,
1917         s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb,
1918         s-interr-vxworks.adb, s-interr.adb, s-interr.ads,
1919         s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb,
1920         s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads,
1921         s-osinte-darwin.ads, s-osinte-freebsd.ads,
1922         s-osinte-hpux.ads, s-osinte-lynxos-3.adb,
1923         s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
1924         s-osinte-rtems.ads, s-osinte-solaris-posix.ads,
1925         s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads,
1926         s-parame-hpux.ads, s-parame-vms-alpha.ads,
1927         s-parame-vms-ia64.ads, s-parame-vms-restrict.ads,
1928         s-parame-vxworks.ads, s-parame.ads, s-parint.adb,
1929         s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads,
1930         s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads,
1931         s-rident.ads: Fix comment typos.
1932
1933 2008-04-09  Samuel Tardieu  <sam@rfc1149.net>
1934
1935         PR ada/28305
1936         * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore
1937         environment if generic instance is a top-level one.
1938
1939 2008-04-09  Doug Rupp  <rupp@adacore.com>
1940
1941         * decl.c (validate_size): Set minimum size for fat pointers same as
1942         access types. Code clean ups.
1943
1944         * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise
1945         (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS
1946
1947         * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant
1948
1949         * s-crtl.ads (malloc32) New function, alias for malloc
1950         (realloc32) New function, alias for realloc
1951
1952         * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS
1953
1954         * utils2.c (build_call_alloc_dealloc): Return call to short malloc if
1955         allocator size is 32 and default pointer size is 64.
1956         (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of
1957         lhs type if smaller, whatever the modes.
1958
1959         * gigi.h (malloc32_decl): New macro definition
1960
1961         * utils.c (init_gigi_decls): New malloc32_decl
1962         Various code clean ups.
1963
1964         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
1965         Task_Address vice System.Address.
1966
1967         * s-taspri-vms.ads: Import System.Aux_DEC
1968         (Task_Address): New subtype of System.Aux_DEC.Short_Address
1969         (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address
1970
1971         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
1972         Task_Address vice System.Address.
1973
1974         * s-inmaop-vms.adb: Import System.Task_Primitives
1975         (To_Address): Unchecked convert to Task_Address vice System.Address
1976
1977         * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay
1978         expires now.
1979         (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address
1980         (To_Address) Unchecked convert to Task_Address vice System.Address
1981
1982         * s-tpopde-vms.adb: Remove unnecessary warning pragmas
1983
1984         * g-socthi-vms.ads: Add 32bit size clauses on socket access types.
1985
1986 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
1987
1988         * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
1989         (fdesc_type_node): Define.
1990         (null_fdesc_node): Likewise.
1991         * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
1992         uses descriptors for vtables and the type comes from a dispatch table,
1993         return the descriptor type.
1994         * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
1995         uses descriptors for vtables and the type comes from a dispatch table,
1996         build a descriptor in the static case and copy the existing one in the
1997         non-static case.
1998         (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
1999         the type is a pointer-to-subprogram coming from a dispatch table,
2000         return the null descriptor.
2001         <N_Unchecked_Type_Conversion>: If the target uses descriptors for
2002         vtables, the source type is the descriptor type and the target type
2003         is a pointer type, first build the pointer.
2004         * utils.c (init_gigi_decls): If the target uses descriptors for vtables
2005         build the descriptor type and the null descriptor.
2006
2007 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2008
2009         * decl.c (prepend_attributes): Fix typo.
2010         * trans.c (Pragma_to_gnu): Likewise.
2011         * utils.c (gnat_genericize): Likewise.
2012
2013 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2014             Richard Kenner  <kenner@adacore.com>
2015
2016         * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
2017         * decl.c (gnat_to_gnu_entity): Adjust for above change.
2018         <E_Record_Type>: Try to get a better form of the component for
2019         packing, even if it has an integral mode.
2020         <E_Record_Subtype>: Likewise.
2021         * trans.c (gnat_to_gnu): Do not require BLKmode for the special
2022         exception suppressing the final conversion between record types.
2023
2024 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2025
2026         * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing
2027         alignment for space, promote the alignment of non-scalar variables with
2028         no size and alignment.
2029         * gigi.h (gnat_types_compatible_p): Declare.
2030         * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
2031         * trans.c (gnat_to_gnu): Revert revision 129339 change.  Minor cleanup.
2032         * utils.c (gnat_types_compatible_p) : New predicate.
2033         (convert): Use it throughout to test for cases where a mere view
2034         conversion is sufficient.
2035         * utils2.c (build_binary_op): Minor tweaks.
2036         (build_unary_op): Likewise.
2037
2038 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2039
2040         * decl.c (adjust_packed): Expand comment.
2041
2042 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
2043
2044         * s-tasuti.ads: Use Task_Address instead of System.Address.
2045
2046         * makeutl.adb (Path_Or_File_Name): New function
2047
2048         * nlists.ads, itypes.ads: Update comments.
2049
2050         * s-crtl.ads (malloc32, realloc32): New functions.
2051
2052         * s-auxdec.ads (Short_Address_Size): New constant.
2053
2054         * a-taside.adb, s-tasdeb.adb: Use Task_Address.
2055
2056         * s-ststop.ads, s-ststop.adb: New file.
2057
2058         * exp_tss.ads, s-taprop-lynxos.adb: Update comments.
2059         Minor reformatting.
2060
2061 2008-04-08  Pascal Obry  <obry@adacore.com>
2062
2063         * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
2064         (Stop_Bits_Number): New type.
2065         (Parity_Check): Likewise.
2066         (Set): Add parameter to set the number of stop bits and
2067         the parity. Parameter timeout is now a duration instead
2068         of a plain integer.
2069
2070         * g-sercom-linux.adb:
2071         Implement the stop bits and parity support for GNU/Linux.
2072         Fix handling of timeout, it must be given in tenth of seconds.
2073         
2074         * g-sercom-mingw.adb:
2075         Implement the stop bits and parity support for Windows.
2076         Use new s-win32.ads unit instead of declaring Win32 services
2077         directly into this body.
2078         Update handling of timeout as now a duration.
2079
2080         * s-win32.ads, s-winext.ads: New files.
2081
2082 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2083             Arnaud Charlet  <charlet@adacore.com>
2084
2085         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.
2086
2087         s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
2088         s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.
2089
2090         * s-osinte-lynxos-3.ads,
2091         (Alternate_Stack): Remove when not needed. Simplify declaration
2092         otherwise.
2093         (Alternate_Stack_Size): New constant.
2094
2095         s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
2096         'Unrestricted_Access.
2097
2098         * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
2099         s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
2100         s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
2101         s-osinte-solaris.ads, s-osinte-vms.ads
2102         (SA_ONSTACK): New constant.
2103         (stack_t): New record type.
2104         (sigaltstack): New imported function.
2105         (Alternate_Stack): New imported variable.
2106         (Alternate_Stack_Size): New constant.
2107
2108         * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.
2109
2110         * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
2111         s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
2112         s-taspri-vms.ads (Task_Address): New subtype of System.Address
2113         (Task_Address_Size): New constant size of System.Address
2114         (Alternate_Stack_Size): New constant.
2115
2116         * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
2117         (Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
2118         Establish the alternate stack if the platform makes use of n alternate
2119         signal stack for stack overflows.
2120         (Create_Task): Take into account the alternate stack in the stack size.
2121         (Initialize): Save the address of the alternate stack into the ATCB for
2122         the environment task.
2123         (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).
2124
2125         * s-parame.adb (Minimum_Stack_Size): Increase value to 16K
2126
2127         * system-linux-x86.ads: (Stack_Check_Probes): Set to True.
2128
2129         * s-intman-posix.adb: 
2130         (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
2131         alternate signal stack for stack overflows.
2132
2133         * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
2134         x86-64, adjust the saved value of the stack pointer if the signal was
2135         raised by a stack checking probe.
2136         (HP-UX section): Use global __gnat_alternate_stack as signal handler
2137         stack and only for SIGSEGV.
2138         (Linux section): Likewise on x86 and x86-64.
2139         [VxWorks section]
2140         (__gnat_map_signal): Now static.
2141         (__gnat_error_handler): Not static any more.
2142         (__gnat_adjust_context_for_raise): New function. Signal context
2143         adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
2144         propagation circuitry.
2145         (__gnat_error_handler): Second argument of a sigaction handler is a
2146         pointer, not an int, and is unused.
2147         Adjust signal context before mapping to exception.
2148         Install signal handlers for LynxOS case.
2149
2150         * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
2151         (Task_Id): Set size to Task_Address_Size
2152         (To_Task_id): Unchecked convert from Task_Address vice System.Address
2153         (To_Address): Unchecked convert to Task_Address vice System.Address
2154
2155         * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
2156         address into the ATCB if the platform makes use of an alternate signal
2157         stack for stack overflows.
2158         (Free_Task): Add call to Finalize_Attributes_Link.
2159         Add argument Relative_Deadline to pass the value specified for
2160         the task. This is not yet used for any target.
2161
2162         * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
2163         the value specified for the task.
2164
2165 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
2166
2167         (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
2168         (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
2169         s-vxwext-rtp.adb): New files.
2170
2171         * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
2172         Minor updates to accomodate changes above.
2173
2174 2008-04-08  Pascal Obry  <obry@adacore.com>
2175
2176         * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
2177         s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
2178         Use new s-win32.ads unit instead of declaration
2179         from s-osinte-mingw.ads.
2180         
2181         * s-osinte-mingw.ads:
2182         Move all non tasking based interface to s-win32.ads.
2183         
2184         * s-osprim-mingw.adb:
2185         Remove duplicated declarations and use s-win32.ads
2186         unit instead.
2187
2188 2008-04-08  Vincent Celier  <celier@adacore.com>
2189             Arnaud Charlet  <charlet@adacore.com>
2190
2191         * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
2192         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
2193         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
2194         mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
2195         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...
2196
2197         * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
2198         mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
2199         mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
2200         mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
2201         mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
2202         mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
2203         mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
2204         mlib-tgt-specific-mingw.adb: New names.
2205
2206         * Makefile.in: 
2207         On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
2208         Get rid of gnatbl.
2209         (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
2210         Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
2211         Minor updates for VMS
2212
2213         * gnatbl.c: Removed.
2214
2215 2008-04-08  Thomas Quinot  <quinot@adacore.com>
2216
2217         * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
2218         g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
2219         gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
2220         a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
2221         s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
2222         ASCII.NUL throughout.
2223
2224 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
2225             Matthew Heaney  <heaney@adacore.com>
2226
2227         * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
2228         renaming.
2229
2230         * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,  
2231         a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
2232         to convention for non-RM specs.
2233         Add descriptive header, and documented each operation
2234         document each operation
2235
2236 2008-04-08  Robert Dewar  <dewar@adacore.com>
2237             Bob Duff  <duff@adacore.com>
2238             Gary Dismukes  <dismukes@adacore.com>
2239             Ed Schonberg  <schonberg@adacore.com>
2240
2241         * alloc.ads: Add entries for Obsolescent_Warnings table
2242
2243         * einfo.ads, einfo.adb: Minor reformatting.
2244         (Is_Discriminal): New subprogram.
2245         (Is_Prival): New subprogram.
2246         (Is_Protected_Component): New subprogram.
2247         (Is_Protected_Private): Removed.
2248         (Object_Ref, Set_Object_Ref): Removed.
2249         (Prival, Set_Prival): Change assertion.
2250         (Privals_Chain, Set_Privals_Chain): Removed.
2251         (Prival_Link, Set_Prival_Link): New subprogram.
2252         (Protected_Operation, Set_Protected_Operation): Removed.
2253         (Protection_Object, Set_Protection_Object): New subprogram.
2254         (Write_Field17_Name): Remove case for Object_Ref.
2255         (Write_Field20_Name): Add case for Prival_Link.
2256         (Write_Field22_Name): Remove case for Protected_Operation,
2257         Privals_Chain.
2258         Add case for Protection_Object.
2259         (Can_Use_Internal_Rep): Make this into a [base type only] attribute,
2260         so clients
2261         (Overlays_Constant): New flag
2262         (Is_Constant_Object): New predicate
2263         (Is_Standard_Character_Type): New predicate
2264         (Optimize_Alignment_Space): New flag
2265         (Optimize_Alignment_Time): New flag
2266         (Has_Postconditions): New flag
2267         (Obsolescent_Warrning): Field removed
2268         (Spec_PPC_List): New field
2269         (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
2270         subprograms to get and set the relative deadline associated to a task.
2271
2272         * exp_attr.adb (May_Be_External_Call): Account for the case where the
2273         Access attribute is part of a named parameter association.
2274         (Expand_Access_To_Protected_Op): Test for the attribute occurring
2275         within an init proc and use that directly as the scope rather than
2276         traversing up to the protected operation's enclosing scope. Only apply
2277         assertion on Is_Open_Scopes in the case the scope traversal is done.
2278         For the init proc case use the address of the first formal (_init) as
2279         the protected object reference.
2280         Implement Invalid_Value attribute
2281         (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
2282         contents of the dispatch table there is no need to duplicate the
2283         itypes associated with record types (i.e. the implicit full view
2284         of private types).
2285         Implement Enum_Val attribute
2286         (Expand_N_Attribute_Reference, case Old): Properly handle appearence
2287         within _Postconditions procedure
2288         (Expand_N_Attribute_Reference, case Result): Implement new attribute
2289
2290         * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
2291         a return statement calls a function that is not available in
2292         configurable runtime.
2293         (Analyze_If_Statement): don't optimize simple True/False cases in -O0
2294         (Expand_Non_Function_Return): Generate call to _Postconditions proc
2295         (Expand_Simple_Function_Return): Ditto
2296
2297         * frontend.adb: Add call to Sem_Aux.Initialize
2298
2299         * sem_aux.ads, sem_aux.adb: New file.
2300
2301         * par-prag.adb: Add entries for pragmas Precondition/Postcondition
2302         Add new Pragma_Relative_Deadline.
2303         Add support for pragmas Check and Check_Policy
2304
2305         * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
2306         (Check_Stream_Attribute): Add missing check (not allowed in CPP types)
2307         (Analyze_Attribute): In case of attributes 'Alignment and 'size add
2308         missing check because they are not allowed in CPP tagged types.
2309         Add Sure parameter to Note_Possible_Modification calls
2310         Add implementation of Invalid_Value attribute
2311         Implement new attribute Has_Tagged_Values
2312         Implement Enum_Val attribute
2313         (Analyze_Attribute, case Range): Set Name_Req True for prefix of
2314         generated attributes.
2315         (Analyze_Attribute, case Result): If prefix of the attribute is
2316         overloaded, it always resolves to the enclosing function.
2317         (Analyze_Attribute, case Result): Properly deal with analysis when
2318         Postconditions are not active.
2319         (Resolve_Attribute, case Result): Properly deal with appearence during
2320         preanalysis in spec.
2321         Add processing for attribute Result
2322
2323         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
2324         for operators.
2325         (Analyze_Subprogram_Body): Install private_with_clauses when the body
2326         acts as a spec.
2327         (Check_Inline_Pragma): recognize an inline pragma that appears within
2328         the subprogram body to which it applies.
2329         (Analyze_Function_Return): Check that type of the expression of a return
2330         statement in a function with a class-wide result is not declared at a
2331         deeper level than the function.
2332         (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
2333         (Verify_Overriding_Indicator): Handle properly subprogram bodies for
2334         user- defined operators.
2335         (Install_Formals): Moved to spec to allow use from Sem_Prag for
2336         analysis of precondition/postcondition pragmas.
2337         (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
2338         Last_Formal, along with lots of comments on what this is about
2339         (Analyze_Subprogram_Body): Fix case where we move entities from the
2340         spec to the body when there are no body entities (now possible with
2341         precondition and postcondition pragmas).
2342         (Process_PPCs): New procedure
2343         (Analyze_Subprogram_Body): Add call to Process_PPCs
2344
2345         * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
2346         clause.
2347         (Pop_Scope): Restore Check_Policy_List on scope exit
2348         (Push_Scope): Save Check_Policy_List on scope entry
2349         Change name In_Default_Expression      => In_Spec_Expression
2350         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
2351         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
2352         (Analyze_Object_Renaming): Allow 'Reference as object
2353         (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
2354         (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
2355         of restriction identifier.
2356         Add Sure parameter to Note_Possible_Modication calls
2357
2358         * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
2359         Don't check for primitive operations when calling Rep_Item_Too_Late.
2360         (Process_Import_Or_Interface): Do not place flag on formal
2361         subprograms.
2362         (Analyze_Pragma, case Export): If the entity is a deferred constant,
2363         propagate information to full view, which is the one elaborated by the
2364         back-end.
2365         (Make_Inline): the pragma is effective if it applies to an internally
2366         generated subprogram declaration for a body that carries the pragma.
2367         (Analyze_Pragma, case Optimize_Alignment): Set new flag
2368         Optimize_Alignment_Local.
2369         (Analyze_PPC_In_Decl_Part): New procedure
2370         (Get_Pragma_Arg): Moved to outer level
2371         (Check_Precondition_Postcondition): Change to allow new visibility
2372         rules for package spec
2373         (Analyze_Pragma, case Check_Policy): Change placement rules to be
2374         same as pragma Suppress/Unsuppress.
2375         Change name In_Default_Expression      => In_Spec_Expression
2376         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
2377         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
2378         (Check_Precondition_Postcondition): Do proper visibility preanalysis
2379         for the case of these pragmas appearing in the spec.
2380         (Check_Enabled): New function
2381         (Initialize): New procedure
2382         (Tree_Read): New procedure
2383         (Tree_Write): New procedure
2384         (Check_Precondition_Postcondition): New procedure
2385         Implement pragmas Check and Check_Policy
2386         Merge Assert processing with Check
2387
2388         * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
2389         New warning flag -gnatw.e
2390
2391         * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
2392         returning whether a task (or main procedure) has a pragma
2393         Relative_Deadline.
2394         (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
2395         (or main procedure) has a pragma Relative_Deadline.
2396         Add Next_Pragma field to N_Pragma node
2397         (PPC_Enabled): New flag
2398         (Next_Pragma): Now used for Pre/Postcondition processing
2399
2400         * snames.h, snames.ads, snames.adb: New standard name
2401         Inherit_Source_Path
2402         Add entry for 'Invalid_Value attribute
2403         Add entry for new attribute Has_Tagged_Values
2404         Add entry for Enum_Val attribute
2405         Add new standard names Aggregate, Configuration and Library.
2406         Add _Postconditions
2407         Add _Result
2408         Add Pragma_Precondition
2409         Add Pragma_Postcondition
2410         Add Attribute_Result
2411         New standard name Archive_Builder_Append_Option
2412         (Preset_Names): Add _relative_deadline and relative_deadline definitions
2413         There was also a missing non_preemptive_within_priorities.
2414         (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
2415         Relative_Deadline.
2416         Add support for pragmas Check and Check_Policy
2417
2418         * tree_gen.adb: Call Sem_Aux.Tree_Write
2419
2420         * tree_in.adb: Call Sem_Aux.Tree_Read
2421
2422         * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
2423         sequence
2424
2425         * exp_intr.adb (Expand_Source_Info): New Build_Location calling
2426         sequence
2427
2428         * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
2429         (Expand_N_Pragma): Call the appropriate procedure for expanding pragma
2430         Relative_Deadline.
2431         (Expand_Pragma_Check): New procedure
2432
2433         * sinput.ads, sinput.adb (Build_Location_String): Now appends to name
2434         buffer.
2435
2436         * sinfo.adb (PPC_Enabled): New flag
2437
2438 2008-04-08  Robert Dewar  <dewar@adacore.com>
2439             Gary Dismukes  <dismukes@adacore.com>
2440             Javier Miranda  <miranda@adacore.com>
2441             Ed Schonberg  <schonberg@adacore.com>
2442
2443         * fe.h: Remove global Optimize_Alignment flag, no longer used
2444
2445         * layout.adb: Test Optimize_Alignment flags rather than global switch
2446
2447         * lib.ads, lib.adb: New OA_Setting field in library record
2448
2449         * lib-load.adb: New OA_Setting field in library record
2450
2451         * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
2452         units mentioned in limited_with_ clauses in the ali file, with an
2453         'Y' marker.
2454         New Ox fields in U line
2455
2456         * opt.adb: New flag Optimize_Alignment_Local
2457         (Check_Policy_List[_Config]): New flags
2458
2459         * opt.ads (Invalid_Value_Used): New flag
2460         New switch Optimize_Alignment_Local
2461         (Warn_On_Parameter_Order): New flag
2462         (Check_Policy_List[_Config]): New flags
2463
2464         * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
2465         limited_with clauses.
2466         New data structures for Optimize_Alignment
2467
2468         * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
2469         New procedure
2470         (Check_Consistent_Optimize_Alignment): Rework for new structure
2471         (Check_Consistent_Restrictions): Fix incorrect error message
2472
2473         sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
2474         created class-wide type (to the Parent field of the specific type).
2475         (Install_Siblings): Handle properly private_with_clauses on subprogram
2476         bodies and on generic units.
2477         (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
2478         illegal limited_with_clause that names a non-existent package.
2479         (Check_Body_Required): Determine whether a unit named a limited_with
2480         clause needs a body.
2481         (Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
2482         Capture Optimize_Alignment settings to set new OA_Setting field in
2483         library record.
2484         (Build_Limited_Views): Include task and protected type declarations.
2485
2486         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
2487         case of a possible constant redeclaration where the current object is
2488         an entry index constant.
2489         (Analyze_Object_Declaration): Generate an error in case of CPP
2490         class-wide object initialization.
2491         (Analyze_Object_Declaration): Add extra information on warnings for
2492         declaration of unconstrained objects.
2493         (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
2494         conflicts with the setting of Stored_Constraint in the case where the
2495         access type entity has already been created as an E_Incomplete_Type due
2496         to a limited with clause.
2497         Use new Is_Standard_Character_Type predicate
2498         (Analyze_Object_Declaration): Apply access_constant check only after
2499         expression has been resolved, given that it may be overloaded with
2500         several access types.
2501         (Constant_Redeclaration): Additional legality checks for deferred
2502         constant declarations tha involve anonymous access types and/or null
2503         exclusion indicators.
2504         (Analyze_Type_Declaration): Set Optimize_Alignment flags
2505         (Analyze_Subtype_Declaration): Ditto
2506         (Analyze_Object_Declaration): Ditto
2507         (Analyze_Object_Declaration): Don't count tasks in generics
2508         Change name In_Default_Expression      => In_Spec_Expression
2509         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
2510         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
2511         (Process_Discriminants): Additional check for illegal use of default
2512         expressions in access discriminant specifications in a type that is not
2513         explicitly limited.
2514         (Check_Abstract_Overriding): If an inherited function dispaches on an
2515         access result, it must be overridden, even if the type is a null
2516         extension.
2517         (Derive_Subprogram): The formals of the derived subprogram have the
2518         names and defaults of the parent subprogram, even if the type is
2519         obtained from the actual subprogram.
2520         (Derive_Subprogram): In the presence of interfaces, a formal of an
2521         inherited operation has the derived type not only if it descends from
2522         the type of the formal of the parent operation, but also if it
2523         implements it. This is relevant for the renamings created for the
2524         primitive operations of the actual for a formal derived type.
2525         (Is_Progenitor): New predicate, to determine whether the type of a
2526         formal in the parent operation must be replaced by the derived type.
2527
2528         * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
2529         predicate recursive to handle components that have a user-defined
2530         Initialize procedure. Handle controlled derived types whose ancestor
2531         has a user-defined Initialize procedured.
2532         (Note_Possible_Modification): Add Sure parameter, generate warning if
2533         sure modification of constant
2534         Use new Is_Standard_Character_Type predicate
2535         (Find_Parameter_Type): when determining whether a protected operation
2536         implements an interface operation, retrieve the type of the formal from
2537         the entity when the formal is an access parameter or an
2538         anonymous-access-to-subprogram.
2539         Move Copy_Parameter_List to sem_util, for use when building stubbed
2540         subprogram bodies.
2541         (Has_Access_Values): Tagged types now return False
2542         (Within_HSS_Or_If): New procedure
2543         (Set_Optimize_Alignment_Flags): New procedure
2544         Change name In_Default_Expression      => In_Spec_Expression
2545         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
2546         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
2547
2548 2008-04-08  Tristan Gingold  <gingold@adacore.com>
2549
2550         * s-fileio.adb: Name_Error shouldn't be raised for a tempory file.
2551
2552 2008-04-08  Tristan Gingold  <gingold@adacore.com>
2553
2554 PR ada/10768
2555
2556         * cuintp.c: Fix 16 bits issue for AVR.
2557         On AVR, integer is 16 bits, so it can't be used to do math with
2558         Base (=32768).
2559         So use long_integer instead.
2560
2561 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
2562
2563         * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
2564         System.OS_Primitives.
2565         Change type of various constants, parameters and local variables from
2566         Time to representation type OS_Time.
2567         (To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
2568         Remove the declaration of constant Mili_F from several routines. New
2569         body for internal package Conversions_Operations.
2570         (Time_Of): Add default parameters for several formals.
2571
2572         * a-caldel.adb: Minor reformatting
2573
2574         * a-calend.ads, a-calend.adb: New body for internal package
2575         Conversions_Operations.
2576         (Time_Of): Add default parameters for several formals.
2577
2578         * Makefile.rtl: Add a-ststop
2579         Add Ada.Calendar.Conversions to the list of runtime files.
2580         Add g-timsta
2581
2582         * a-calcon.adb, a-calcon.ads: New files.
2583
2584 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
2585             Tristan Gingold  <gingold@adacore.com>
2586
2587         * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
2588         (Install_Restricted_Handlers): New procedure
2589         which is a simplified version of Install_Handlers that does not store
2590         previously installed.
2591
2592         * s-interr-vxworks.adb: Fix ACATS cxc3001
2593         On VxWorks interrupts can't be detached.
2594         (Install_Restricted_Handlers): New procedure.
2595
2596         * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
2597         procedure.
2598
2599 2008-04-08  Olivier Hainque  <hainque@adacore.com>
2600
2601         * s-intman-vxworks.ads, s-intman-vxworks.adb
2602         (Map_And_Raise_Exception): Remove. Was an import of only part of the
2603         required services already implemented elsewhere.
2604         (Notify_Exception): Delete body, import __gnat_error_handler instead.
2605         (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
2606         argument passed to the handler, which we need for ZCX propagation
2607         purposes.
2608
2609 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
2610
2611         * adaint.h, adaint.c (__gnat_current_time_string): New routine.
2612
2613         * g-timsta.adb, g-timsta.ads: New files.
2614
2615 2008-04-08  Robert Dewar  <dewar@adacore.com>
2616
2617         * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
2618         (Raise_Exception): In accordance with AI-446, raise CE for Null_Id
2619         (Raise_Exception_Always): Fix documentation accordingly
2620
2621 2008-04-08  Robert Dewar  <dewar@adacore.com>
2622
2623         * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
2624         Stream_Convert)
2625
2626         * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
2627         FOnly
2628
2629 2008-04-08  Javier Miranda  <miranda@adacore.com>
2630             Robert Dewar  <dewar@adacore.com>
2631             Ed Schonberg  <schonberg@adacore.com>
2632
2633         * a-tags.adb (Register_Interface_Offset): New subprogram.
2634         (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
2635         (To_Predef_Prims_Table_Ptr): Removed.
2636         (Acc_Size): Removed.
2637         (To_Acc_Size): Removed.
2638         (Parent_Size): Modified to the call the subprogram returning the size of
2639         the parent by means of the new TSD component Size_Func.
2640
2641         * a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
2642         (DT_Offset_To_Top_Offset): New constant value that is used to generate
2643         code referencing the Offset_To_Top component of the dispatch table's
2644         prologue.
2645         (Prim_Ptr): New declaration of access to procedure. Used to avoid the
2646         use of 'address to initialize dispatch table slots.
2647         (Size_Func): New component of the TSD. Used by the run-time to call the
2648         size primitive of the tagged type.
2649
2650         * checks.adb (Apply_Access_Check): Avoid check when accessing the
2651         Offset_To_Top component of a dispatch table.
2652         (Null_Exclusion_Static_Checks): If the non-null access type appears in a
2653         deferred constant declaration. do not add a null expression, to prevent
2654         spurious errors when full declaration is analyzed.
2655         (Apply_Discriminant_Check): If both discriminant constraints share a
2656         node which is not static but has no side effects, do not generate a
2657         check for that discriminant.
2658         (Generate_Index_Checks): Set Name_Req to true in call to duplicate
2659         subexpr, since the prefix of an attribute is a name.
2660
2661         * checks.ads: Fix nit in comment.
2662
2663         * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
2664         and body of predefined primitives in case of CPP tagged type
2665         derivations.
2666         (Freeze_Type): Deal properly with no storage pool case
2667         (Make_Predefined_Primitive_Specs): Generate specification of abstract
2668         primitive Deep_Adjust if a nonlimited interface is derived from a
2669         limited interface.
2670         (Build_Dcheck_Functions): Create discriminant-checking functions only
2671         for variants that have some component(s).
2672         (Build_Slice_Assignment): In expanded code for slice assignment, handle
2673         properly the case where the slice bounds extend to the last value of the
2674         underlying representation.
2675         (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
2676         (Is_Variable_Size_Record): An array component has a static size if
2677         index bounds are enumeration literals.
2678
2679         * exp_disp.adb (Make_DT): Use the first subtype to determine whether
2680         an external tag has been specified for the type.
2681         (Building_Static_DT): Add missing support for private types.
2682         (Make_DT): Add declaration of Parent_Typ to ensure consistent access
2683         to the entity associated with the parent of Typ. This is done to
2684         avoid wrong access when the parent is a private type.
2685         (Expand_Interface_Conversion): Improve error message when the
2686         configurable runtime has no support for dynamic interface conversion.
2687         (Expand_Interface_Thunk): Add missing support to interface types in
2688         configurable runtime.
2689         (Expand_Dispatching_Call): remove obsolete code.
2690         (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
2691         ensure that all subtypes and aggregates associated with dispatch
2692         tables have the attribute Is_Dispatch_Table_Entity set to true.
2693         (Register_Primitive): Rename one variable to improve code reading.
2694         Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
2695         of the pointer to the 'size primitive in the TSD.
2696
2697         * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
2698         (RE_Offset_To_Top_Ptr): New entity.
2699         (RE_Register_Interface_Offset): New entity.
2700         (RE_Set_Dynamic_Offset_To_Top): New entity.
2701         (RE_Set_Offset_To_Top): Removed entity.
2702         (RE_Prim_Ptr): New entity
2703         (RE_Size_Func): New entity
2704         (RE_Size_Ptr): New entity
2705         (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
2706         (Ada_Dispatching_Child): Define this new subrange.
2707         (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
2708          RE_Time_Span, and RE_Time_Span_Zero).
2709         (RE_Unit_Table): Add new required run-time calls
2710
2711         * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
2712         children.
2713
2714         * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
2715         (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
2716          initializes the Offset_To_Top component of a dispatch table.
2717         (Build_Predef_Prims): Removed.
2718         (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
2719          its actual code.
2720         (Build_Set_Size_Function): New subprogram.
2721
2722         * exp_ch13.adb: Do not generate storage variable for storage_size zero
2723         (Expand): Handle setting/restoring flag Inside_Freezing_Actions
2724
2725 2008-04-08  Robert Dewar  <dewar@adacore.com>
2726
2727         * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
2728         computing Fore when Exp > 0
2729
2730 2008-04-08  Robert Dewar  <dewar@adacore.com>
2731
2732         * back_end.adb: Remove Big_String_Ptr declarations (now in Types)
2733
2734         * errout.adb: Remove Big_String_Ptr declarations (now in Types)
2735         Change name Is_Style_Msg to Is_Style_Or_Info_Msg
2736
2737         * fmap.adb: Remove Big_String declarations (now in Types)
2738         (No_Mapping_File): New Boolean global variable
2739         (Initialize): When mapping file cannot be read, set No_Mapping_File to
2740         False.
2741         (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
2742         tables were empty before adding entries, open the mapping file
2743         with Truncate = True, instead of delete/re-create.
2744
2745         * fname-sf.adb: Remove Big_String declarations (now in Types)
2746
2747         * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
2748         s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
2749         big pointer types
2750
2751         * table.ads: Add for Table_Ptr'Storage_Size use 0
2752
2753         * types.ads: Add Big_String declarations
2754         Add Size_Clause of zero for big pointer types
2755
2756 2008-04-08  Vincent Celier  <celier@adacore.com>
2757
2758         * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
2759         (Usage): Add line for switch --subdirs=
2760         Add new switch -eL, to follow symbolic links when processing project
2761         files.
2762
2763         * gnatcmd.adb: Process switches -eL and --subdirs=
2764         (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
2765         Program_Name to get proper tool names when AAMP_On_Target is set.
2766         (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
2767         AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
2768         Osint.Program_Name).
2769
2770         * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
2771         (Usage): Add lines for switches -eL and --subdirs=
2772
2773         * makeusg.adb: Add line for switch --subdirs=
2774
2775         * prj.ads: 
2776         (Source_Data): New Boolean component Compiled, defaulted to True
2777         (Empty_File_Name: New global variable in private part, initialized in
2778         procedure Initialize.
2779         (Subdirs_Option): New constant string
2780         (Subdirs): New String_Ptr global variable
2781         (Language_Config): New component Include_Compatible_Languages
2782         (Project_Qualifier): New type for project qualifiers
2783         (Project_Data): New component Qualifier
2784         (Project_Configuration): New component Archive_Builder_Append_Option
2785
2786         * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
2787         another imported project indicate the name of this imported project.
2788         (Check_File): When a unit is in two project files, indicate the project
2789         names and the paths of the source files for each project.
2790         (Add_Source): Set Compiled to False if compiler driver is empty. Only
2791         set object, dependency and switches file names if Compiled is True.
2792         (Process_Compiler): Allow the empty string for value of attribute Driver
2793         (Get_Directories): When Subdirs is not null and Object_Dir is not
2794          specified, locate and create if necessary the actual object dir.
2795         (Locate_Directory): When Subdirs is not empty and Create is not the
2796         empty string, locate and create if necessary the actual directory
2797         as a subdirectory of directory Name.
2798         (Check_Library_Attributes.Check_Library): Allow a project where the only
2799         "sources" are header files of file based languages to be imported by
2800         library projects, in multi-language mode (gprbuild).
2801         (Check_Library_Attributes.Check_Library): In multi-language mode
2802         (gprbuild), allow a library project to import a project with no
2803         sources, even when this is not declared explicitly.
2804         (Check_If_Externally_Built): A virtual project extending an externally
2805         built project is also externally built.
2806         (Check_Library_Attributes): For a virtual project extending a library
2807         project, inherit the library directory.
2808         (Process_Project_Level_Array_Attributes): Process new attribute
2809         Inherit_Source_Path.
2810         For projects with specified qualifiers "standard", "library" or
2811         "abstract", check that the project conforms to the qualifier.
2812         (Process_Project_Level_Simple_Attributes): Process new attribute
2813          Archive_Builder_Append_Option.
2814
2815         * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
2816         (Normalize_Compiler_Switches): Only keep compiler switches that are
2817         passed to gnat1 by the gcc driver and that are stored in the ALI file
2818         by gnat1.
2819         Do not take into account switc -save-temps
2820
2821         * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
2822         gprmake is called with -eL.
2823         (Scan_Arg): Recognize switch -eL
2824         (Usage): Add line for switch -eL
2825
2826         * prj.adb (Initialize): Initialize Empty_File_Name
2827         (Project_Empty): New component Qualifier
2828
2829         * prj-attr.ads, prj-attr.adb: New project level attribute
2830         Inherit_Source_Path.
2831         New project level attribute Archive_Builder_Append_Option
2832
2833         * prj-dect.adb: Replace System.Strings by GNAT.Strings.
2834
2835         * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
2836         <prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for
2837         upward compatibility.
2838
2839         * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
2840         each Trying ..." on different lines.
2841         (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
2842         is "configuration" when not in configuration. Fail when in configuration
2843         when a specified qualifier is other than "configuration".
2844
2845         * prj-proc.adb (Process_Declarative_Items): Link new elements of copied
2846         full associative array together.
2847         (Recursive_Process): Put the project qualifier in the project data
2848         
2849         * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
2850         (Set_Project_Qualifier_Of): New procedure
2851
2852 2008-04-08  Robert Dewar  <dewar@adacore.com>
2853
2854         * errout.ads: Update comments for new handling of info: messages
2855
2856         * erroutc.adb (Matches): New procedure
2857         (Warning_Specifically_Suppressed): Modified to handle multiple * chars
2858         (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
2859          info messages as well as style messages.
2860
2861         * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry
2862
2863         * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
2864         subprograms.
2865         (Check_A_Call): Special "info: " warnings now have ? in the text
2866         (Elab_Warning): Use info message in static case
2867
2868 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
2869
2870         * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
2871         whether an array aggregate with static bounds and scalar components
2872         should be expanded into a static constant.
2873
2874 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
2875             Ed Schonberg  <schonberg@adacore.com>
2876             Robert Dewar  <dewar@adacore.com>
2877
2878         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
2879         Has_Stream_Attribute_ Definition when checking for available stream
2880         attributes on parameters of a limited type in Ada 2005. Necessary for
2881         proper recognition of visible stream attribute clauses.
2882         (Has_Stream_Attribute_Definition): If the type is derived from a
2883         private type, then use the derived type's underlying type for checking
2884         whether it has stream attributes.
2885         (Validate_Object_Declaration): The check for a user-defined Initialize
2886         procedure applies also to types with controlled components or a
2887         controlled ancestor.
2888         Reject an object declaration in a preelaborated unit if the type is a
2889         controlled type with an overriding Initialize procedure.
2890         (Validate_Remote_Access_To_Class_Wide_Type): Return without further
2891         checking when the parent of a dereference is a selected component and
2892         the name has not been analyzed.
2893
2894         * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
2895         prefixes that are invalid explicit dereferences of remote
2896         access-to-class-wide values, first checking whether the selected
2897         component is a prefixed form of call to a tagged operation.
2898         (Analyze_Call): Remove code that issues an error for limited function
2899         calls in illegal contexts, as we now support all of the contexts that
2900         were forbidden here.
2901         Allow a function call that returns a task.and appears as the
2902         prefix of a selected component.
2903         (Analyze_Reference): Give error message if we try to make a 'Reference
2904         for an object that is atomic/aliased without its type having the
2905         corresponding attribute.
2906         (Analyze_Call): Remove condition checking for attributes to allow
2907         calls to functions with inherently limited results as prefixes of
2908         attributes. Remove related comment about Class attributes.
2909         (Analyze_Selected_Component): If the prefix is a remote type, check
2910         whether this is a prefixed call before reporting an error.
2911         (Complete_Object_Operation): If the controlling formal is an access to
2912         variable reject an actual that is a constant or an access to one.
2913         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
2914         primitive operations from base type.
2915
2916         * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
2917         build-in-place
2918         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
2919         (Expand_N_Selected_Component): Test for prefix that is a build-in-place
2920         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
2921         (Expand_N_Slice): Test for prefix that is a build-in-place function call
2922         and call Make_Build_In_Place_Call_In_Anonymous_Context.
2923         (Analyze_Call): Remove code that issues an error for limited function
2924         calls in illegal contexts, as we now support all of the contexts that
2925         were forbidden here.
2926         New calling sequence for Get_Simple_Init_Val
2927         (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
2928         (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test
2929
2930 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
2931             Ed Schonberg  <schonberg@adacore.com>
2932             Robert Dewar  <dewar@adacore.com>
2933
2934         * exp_ch2.adb: Minor reformatting.
2935         (Expand_Entry_Index_Parameter): Set the type of the identifier.
2936         (Expand_Entry_Reference): Add call to Expand_Protected_Component.
2937         (Expand_Protected_Component): New routine.
2938         (Expand_Protected_Private): Removed.
2939         Add Sure parameter to Note_Possible_Modification calls
2940
2941         * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
2942         generated subprogram declaration must inherit the overriding indicator
2943         from the instantiation node.
2944         (Validate_Access_Type_Instance): If the designated type of the actual is
2945         a limited view, use the available view in all cases, not only if the
2946         type is an incomplete type.
2947         (Instantiate_Object):  Actual is illegal if the formal is null-excluding
2948         and the actual subtype does not exclude null.
2949         (Process_Default): Handle properly abstract formal subprograms.
2950         (Check_Formal_Package_Instance): Handle properly defaulted formal
2951         subprograms in a partially parameterized formal package.
2952         Add Sure parameter to Note_Possible_Modification calls
2953         (Validate_Derived_Type_Instance): if the formal is non-limited, the
2954         actual cannot be limited.
2955         (Collect_Previous_Instances): Generate instance bodies for subprograms
2956         as well.
2957
2958         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
2959         try to set RM_Size.
2960         Add Sure parameter to Note_Possible_Modification calls
2961         (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
2962         (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
2963         constant overlaid by variable and issue warning.
2964         Use new Is_Standard_Character_Type predicate
2965         (Analyze_Record_Representation_Clause): Check that the specified
2966         Last_Bit is not less than First_Bit - 1.
2967         (Analyze_Attribute_Definition_Clause, case Address): Check for
2968         self-referential address clause
2969
2970         * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
2971         detection mechanism when the lhs is a prival.
2972         (Analyze_Assignment): Call Check_Unprotected_Access to detect
2973         assignment of a pointer to protected data, to an object declared
2974         outside of the protected object.
2975         (Analyze_Loop_Statement): Check for unreachable code after loop
2976         Add Sure parameter to Note_Possible_Modication calls
2977         Protect analysis from previous syntax error such as a scope mismatch
2978         or a missing begin.
2979         (Analyze_Assignment_Statement): The assignment is illegal if the
2980         left-hand is an interface.
2981
2982         * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
2983         violation of restriction No_Implicit_Conditionals
2984         Add Sure parameter to Note_Possible_Modication calls
2985         Use new Is_Standard_Character_Type predicate
2986         (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
2987         call as operator. Fixes problems (e.g. validity checking) which
2988         come from the result looking as though it does not come from source).
2989         (Resolve_Call): Check case of name in named parameter if style checks
2990         are enabled.
2991         (Resolve_Call): Exclude calls to Current_Task as entry formal defaults
2992         from the checking that such calls should not occur from an entry body.
2993         (Resolve_Call): If the return type of an Inline_Always function
2994         requires the secondary stack, create a transient scope for the call
2995         if the body of the function is not available for inlining.
2996         (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
2997         that are actuals for in-out formals.
2998         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
2999         primitive operations from base type.
3000         (Analyze_Selected_Component): If the context is a call to a protected
3001         operation the parent may be an indexed component prior to expansion.
3002         (Resolve_Actuals): If an actual is of a protected subtype, use its
3003         base type to determine whether a conversion to the corresponding record
3004         is needed.
3005         (Resolve_Short_Circuit): Handle pragma Check
3006
3007         * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
3008         Use new Is_Standard_Character_Type predicate
3009         (Eval_Relational_Op): Catch more cases of string comparison
3010
3011 2008-04-08  Robert Dewar  <dewar@adacore.com>
3012             Gary Dismukes  <dismukes@adacore.com>
3013
3014         * s-rident.ads: Add No_Default_Initialization restriction
3015
3016         * exp_tss.adb: 
3017         (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
3018         (Set_TSS): Handle No_Default_Initialization case
3019
3020         * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
3021         No_Default_Initialization
3022         (Expand_N_Subprogram_Body): Remove redundant initialization of out
3023         parameters when Normalize_Scalars is active.
3024         (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
3025         Fix casing error in formal parameter name in call
3026         (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
3027         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
3028         dispatching call on VM targets.
3029
3030 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
3031             Thomas Quinot  <quinot@adacore.com>
3032
3033         * exp_ch7.adb (Find_Final_List): Change the test for generating a
3034         selected component from an access type's Associated_Final_Chain to
3035         check for the presence of that field, rather than assuming it exists
3036         for all named access types.
3037         (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
3038         procedure to call at the end of the generated cleanup procedure.
3039         (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
3040         and an At_End_Proc already exists in the handled sequence of statements
3041         for which cleanup actions are being expanded, the original cleanup
3042         action must be preserved.
3043
3044 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
3045             Ed Schonberg  <schonberg@adacore.com>
3046             Robert Dewar  <dewar@adacore.com>
3047             Gary Dismukes  <dismukes@adacore.com>
3048
3049         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
3050         Build_Unprotected_Subprogram_Body): Generate debug info for
3051         declarations related to the handling of private data in task and
3052         protected types.
3053         (Debug_Private_Data_Declarations): New subprogram.
3054         (Install_Private_Data_Declarations): Remove all debug info flagging.
3055         This is now done by Debug_Private_Data_Declarations at the correct
3056         stage of expansion.
3057         (Build_Simple_Entry_Call): If the task name is a function call, expand
3058         the prefix into an object declaration, and make the surrounding block a
3059         task master.
3060         (Build_Master_Entity): An internal block is a master if it wraps a call.
3061         Code reformatting, update comments. Code clean up.
3062         (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
3063         (Replicate_Entry_Formals): If the formal is an access parameter or
3064         anonymous access to subprogram, copy the original tree to create new
3065         entities for the formals of the subprogram.
3066         (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
3067         for tasks to store the value passed using pragma Relative_Deadline.
3068         (Make_Task_Create_Call): Add the Relative_Deadline argument to the
3069         run-time call to create a task.
3070         (Build_Wrapper_Spec): If the controlling argument of the interface
3071         operation is an access parameter with a non-null indicator, use the
3072         non-null indicator on the wrapper.
3073
3074         * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
3075         present, which it may not be in the case where the type entity is an
3076         incomplete view brought in by a limited with.
3077         (Analyze_Task_Type): Only retrieve the full view when present, which it
3078         may not be in the case where the type entity is an incomplete view brought
3079         in by a limited with.
3080         (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
3081         private components of a protected type, to prevent the generation of freeze
3082         nodes for which there is no proper scope of elaboration.
3083
3084         * exp_util.ads, exp_util.adb
3085         (Remove_Side_Effects): If the expression is a function call that returns a
3086         task, expand into a declaration to invoke the build_in_place machinery.
3087         (Find_Protection_Object): New routine.
3088         (Remove_Side_Effects): Also make a copy of the value
3089         for attributes whose result is of an elementary type.
3090         (Silly_Boolean_Array_Not_Test): New procedure
3091         (Silly_Boolean_Array_Xor_Test): New procedure
3092         (Is_Volatile_Reference): New function
3093         (Remove_Side_Effects): Use Is_Volatile_Reference
3094         (Possible_Bit_Aligned_Component): Handle slice case properly
3095
3096         * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
3097         case test to Exp_Util
3098         (Expand_Packed_Xor): Move silly true/true case test to Exp_Util
3099
3100 2008-04-08  Thomas Quinot  <quinot@adacore.com>
3101
3102         * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
3103         in call
3104         (Add_RACW_Features): When processing an RACW in another unit than the
3105         main unit, set Body_Decls to No_List to indicate that the bodies of
3106         the type's TSS must not be generated.
3107         (GARLIC_Support.Add_RACW_Read_Attribute,
3108         GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
3109         Body_Decls is No_List.
3110         (PolyORB_Support.Add_RACW_Read_Attribute,
3111         PolyORB_Support.Add_RACW_Write_Attribute,
3112         PolyORB_Support.Add_RACW_From_Any,
3113         PolyORB_Support.Add_RACW_To_Any,
3114         PolyORB_Support.Add_RACW_TypeCode): Same.
3115         (Transmit_As_Unconstrained): New function.
3116         (Build_Ordered_Parameters_List): Use the above to order parameters.
3117         (GARLIC_Support.Build_General_Calling_Stubs):
3118         Use the above to determine which parameters to unmarshall using 'Input
3119         at the point where their temporary is declared (as opposed to later on
3120         with a 'Read call).
3121         (PolyORB_Support.Build_General_Calling_Stubs):
3122         Use the above to determine which parameters to unmarshall using From_Any
3123         at the point where their temporary is declared (as opposed to later on
3124         with an assignment).
3125
3126 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
3127
3128         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
3129         an Input function for an access type, do not perform default
3130         initialization on the local variable that receives the value, to
3131         prevent spurious warnings when the type is null-excluding.
3132
3133 2008-04-08  Robert Dewar  <dewar@adacore.com>
3134             Ed Schonberg  <schonberg@adacore.com>
3135
3136         * freeze.adb (Freeze_Entity): Improve warnings on access types in pure
3137         units.
3138         (Size_Known): Generic formal scalar types have known at compile
3139         time size, so remove check.
3140         Fix casing error in formal parameter name in call
3141         (Freeze_Subprogram): If the subprogram is a user-defined operator,
3142         recheck its overriding indication.
3143
3144 2008-04-08  Vincent Celier  <celier@adacore.com>
3145
3146         * gnat1drv.adb: Send all messages indicating an error to standard error
3147
3148 2008-04-08  Robert Dewar  <dewar@adacore.com>
3149
3150         * gnatbind.adb (Restriction_Could_Be_Set): New procedure
3151         (List_Applicable_Restrictions): Do not list existing restrictions
3152
3153 2008-04-08  Thomas Quinot  <quinot@adacore.com>
3154
3155         * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
3156         add a pointer to generic sockets literature
3157         do not mention that the given example is "typical" usage.
3158         Remove obsolete comment about multicast not being supported on Windows.
3159         (Connect_Socket): Make Server mode IN rather than IN OUT
3160         since this formal is never modified.
3161
3162 2008-04-08  Robert Dewar  <dewar@adacore.com>
3163
3164         * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
3165         the declaration for some different entity.
3166         (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
3167         list is precent (following the parent subtype indication), display
3168         appropriate "and" keyword.
3169
3170         * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
3171         Remove unnecessary calls to Init_Size_Align and Init_Esize.
3172         Add notes on use of Parent field of an Itype
3173
3174 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
3175             Robert Dewar  <dewar@adacore.com>
3176             Gary Dismukes  <dismukes@adacore.com>
3177
3178         * lib-xref.adb (Is_On_LHS): Remove dead code
3179         (Output_Overriden_Op): If the overridden operation is itself inherited,
3180         list the ancestor operation, which is the one whose body or absstract
3181         specification is actually being overridden. For source navigation
3182         purposes.
3183
3184         * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
3185         operation is primitive for the type.
3186         (Declare_Inherited_Private_Subprograms): If the new operation overrides
3187         an inherited private subprogram, set properly the Overridden_Operation
3188         attribute, for better cross-reference information.
3189         (Analyze_Package_Specification): Do late analysis of spec PPCs
3190         (Install_Private_Declaration, Uninstall_Declarations): Save/restore
3191         properly the full view and underlying full views of a private type in a
3192         child unit, whose full view is derived from a private type in a parent
3193         unit, and whose own full view becomes visible in the child body.
3194
3195         * sem_disp.adb (Check_Dispatching_Operation): When a body declares a
3196         primitive operation after the type has been frozen, add an explicit
3197         reference to the type and the operation, because other primitive
3198         references have been emitted already.
3199         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
3200         dispatching call on VM targets.
3201
3202 2008-04-08  Vincent Celier  <celier@adacore.com>
3203             Thomas Quinot  <quinot@adacore.com>
3204
3205         * make.adb: (Gnatmake_Called): Remove, no longer necessary
3206         (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
3207         is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
3208         (Insert_Project_Sources): Take into account index in multi-unit source
3209         files.
3210         After building a library project, delete all temporary files.
3211         (Initialize): Reset current output after parsing project file.
3212         (Collect_Arguments_And_Compile): Never insert in the queue the sources
3213         of library projects that are externally built.
3214         Put file name in error and inform messages if -df is used
3215         (Display): If invoked with -d7, do not display path names, but only
3216         file names.
3217
3218         * makeutl.ads (Path_Or_File_Name): New function
3219         (Path_Or_File_Name): New function
3220
3221 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
3222
3223         * Make-lang.in: Disable warnings during first stage of bootstrap
3224         Get rid of gnatbl.
3225         Update dependencies.
3226
3227 2008-04-08  Vincent Celier  <celier@adacore.com>
3228
3229         * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
3230         case to decide if ALI object file is included in library.
3231         (Build_Library): Never attempt to build a library if the project is
3232         externally built.
3233
3234 2008-04-08  Thomas Quinot  <quinot@adacore.com>
3235
3236         * nlists.adb (Is_Non_Empty_List): Remove redundant test. First
3237         (No_List) is defined to return Empty.
3238
3239 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
3240
3241         * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
3242         documentation.
3243         Update comments.
3244         (Read_Default_Search_Dirs): Do not consider spaces as path separators
3245         because spaces may be part of legal paths.
3246
3247 2008-04-08  Robert Dewar  <dewar@adacore.com>
3248
3249         * par-ch11.adb (P_Exception_Handler): Check indentation level for
3250         handler
3251
3252 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
3253
3254         * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
3255         in a type declaration, if this is not an interface declaration or
3256         private type extension.
3257
3258 2008-04-08  Vincent Celier  <celier@adacore.com>
3259
3260         * prj-util.adb (Executable_Of): New String parameter Language. When
3261         Ada_Main is False and Language is not empty, attempt to remove the body
3262         suffix or the spec suffix of the language to get the base of the
3263         executable file name.
3264         (Put): New Boolean parameter Lower_Case, defauilted to False. When
3265         Lower_Case is True, put the value in lower case in the name list.
3266         (Executable_Of): If there is no executable suffix in the configuration,
3267         then do not modify Executable_Extension_On_Target.
3268
3269         * prj-util.ads (Executable_Of): New String parameter Language,
3270         defaulted to the empty string.
3271         (Put): New Boolean parameter Lower_Case, defauilted to False
3272
3273 2008-04-08  Robert Dewar  <dewar@adacore.com>
3274
3275         * scng.adb (Scan_Identifier): Handle case of identifier starting with
3276         wide character using UTF-8 encoding.
3277
3278 2008-04-08  Javier Miranda  <miranda@adacore.com>
3279
3280         * sem.adb (Analyze): Consider case in which we analyze an empty node
3281         that was generated by a call to a runtime function that is not
3282         available under the configurable runtime.
3283
3284         * sem.ads (Inside_Freezing_Actions): New flag.
3285         (Save_Check_Policy_List): New field in scope stack entry
3286
3287 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
3288             Robert Dewar  <dewar@adacore.com>
3289
3290         * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
3291         the ancestor part of an extension aggregate for a limited type.
3292         (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
3293         enumeration index bounds.
3294         (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
3295         when array is too short.
3296         (Check_Expr_OK_In_Limited_Aggregate): Move function
3297         Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
3298         change name).
3299         (Resolve_Array_Aggregate.Resolve_Aggr_Expr):
3300         Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
3301         component associations.
3302         (Check_Non_Limited_Type): Moved to outer level and renamed.
3303         (Resolve_Record_Aggregate): In an extension aggregate, an association
3304         with a box initialization can only designate a component of the
3305         extension, not a component inherited from the given ancestor
3306
3307         * sem_case.adb: Use new Is_Standard_Character_Type predicate
3308
3309 2008-04-08  Robert Dewar  <dewar@adacore.com>
3310
3311         * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
3312         negative scale
3313         (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
3314         Properly handle case where Aft > Scale and input number is less than
3315         one.
3316
3317 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
3318
3319         * s-stoele.ads, s-soflin.ads: Move the location of
3320         Dummy_Communication_Block from System.Storage_Elements to
3321         System.Soft_Links.
3322
3323         * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
3324         emulate Communication_Block in certain scenarios.
3325
3326 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
3327
3328         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
3329         subprogram.
3330         Add new subtype S_WWC, unchecked conversion routines From_WWC and
3331         To_WWC.
3332         (I_WWC, O_WWC): New routines for input and output of
3333         Wide_Wide_Character.
3334
3335 2008-04-08  Robert Dewar  <dewar@adacore.com>
3336
3337         * stringt.adb (Write_String_Table_Entry): Handle wide characters
3338         properly
3339
3340 2008-04-08  Robert Dewar  <dewar@adacore.com>
3341
3342         * styleg.adb (Check_Comment): Allow special char after -- in
3343         non-end-of-line case
3344
3345 2008-04-08  Robert Dewar  <dewar@adacore.com>
3346
3347         * stylesw.adb: Implement -gnaty + - y options
3348         (Set_GNAT_Style_Check_Options): Includ I in style check string
3349
3350         * stylesw.ads: Add comments for new style switch options
3351
3352 2008-04-08  Sergey Rybin  <rybin@adacore.com>
3353
3354         * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
3355         to the set of the GNAT components needed by ASIS.
3356
3357 2008-04-08  Bob Duff  <duff@adacore.com>
3358
3359         * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
3360
3361 2008-04-08  Tristan Gingold  <gingold@adacore.com>
3362
3363         * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
3364         Improve error message generation.
3365
3366 2008-04-08  Vincent Celier  <celier@adacore.com>
3367
3368         * a-direct.adb (Start_Search): Check for Name_Error before checking for
3369         Use_Error, as specified in the RM. Check if directory is open and raise
3370         Use_Error if it is not.
3371
3372 2008-04-08  Vincent Celier  <celier@adacore.com>
3373             Robert Dewar  <dewar@adacore.com>
3374
3375         * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
3376         AAMP_On_Target is set.
3377
3378         * vms_data.ads: Add NOxxx to style check switch list
3379         Add entry COMPONENTS for -gnatVe
3380         Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
3381         (/SUBDIRS=).
3382         (GCC_Switches): Add /ALL_BACK_END_WARNINGS.
3383         Add qualifiers for gnatmetric coupling options
3384         Add note that -gnata enables all checks
3385         Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
3386         Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
3387         New warning flag -gnatw.e
3388
3389         * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
3390         Add entry for -gnatyN (forgotten before)
3391         Line for new warning switch -gnatw.p
3392         New warning flag -gnatw.e
3393
3394         * gnat_ugn.texi: Add documentation fpr project file switch -aP
3395         Document -gnaty - + y
3396         Replace occurences of "package specification" with "package spec"
3397         Define preprocessing symbols in documentation of gnatprep
3398         Clarify reason for distinguishing overflow checking
3399         Add documentation for project-aware tool switches -eL and --subdirs=
3400         Complete list of configuration pragmas
3401         Specify that, even when gnatmake switch -x is used, mains on the command
3402         line need to be sources of project files.
3403         Editing of gnatcheck/gnatmetric doc.
3404         Add documentation for -gnatw.p/-gnatw.P
3405         Add missing documentation for -fno-inline-functions.
3406         Add documentation for -gnatw.e
3407
3408         * gnat_rm.texi: Add documentation for No_Default_Initialization
3409         Replace occurences of "package specification" with "package spec"
3410         Document use of * in Warnings Off string
3411         Update documentation of alignment/component clauses.
3412         Add documentation for Invalid_Value
3413         Document new consistency rule for Optimize_Alignment
3414         Add documentation for Precondition and Postcondition pragmas
3415         Add documentation for Check and Check_Policy pragmas
3416         Document new Enum_Val attribute
3417         Remove requirement for static string in pragma Assert
3418         Add documentation on GNAT.Time_Stamp
3419
3420         * ug_words: add entry for -gnatVe
3421         Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
3422         Add entry for -gnatw.e
3423
3424         * debug.adb: Add missing documentation for d.a flag
3425         Document new -gnatd.a switch.
3426         Add documentation for new gnatmake debug switch -df
3427
3428 2008-04-08  Thomas Quinot  <quinot@adacore.com>
3429
3430         * gen-soccon.c: Bump year in copyright notices.
3431
3432         * g-soccon-vxworks.ads: Add new constant IP_PKTINFO
3433
3434 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
3435
3436         * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
3437         Minor reformatting.
3438
3439 2008-04-08  Robert Dewar  <dewar@adacore.com>
3440             Bob Duff  <duff@adacore.com>
3441
3442         * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
3443         Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
3444
3445         * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
3446
3447         * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
3448
3449         * g-trasym.ads: Minor comment improvements
3450
3451         * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
3452
3453         * a-sequio.ads, a-direio.ads: improve message for tagged type
3454
3455         * a-strunb.ads: Minor reformatting
3456
3457         * a-tifiio.adb: Minor reformatting
3458
3459         * atree.adb (Fix_Parents): Use clearer names for formals
3460         Cleanup and simplify code
3461         Use named notation in calls
3462
3463         * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
3464         confusing calls
3465
3466         * uintp.adb: Used named notation for some confusing calls
3467
3468         * bindusg.adb: Minor change in one line of output
3469
3470         * cstand.adb: Minor reformatting of src representation of Standard
3471
3472         * a-assert.ads: Add comment.
3473
3474         * g-decstr.adb: Fix bad indentation
3475
3476         * expander.ads, expander.adb: Code clean up.
3477
3478         * sem_dist.ads: Minor comment improvement
3479
3480         * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
3481         s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
3482
3483         * i-cstrin.adb: Fix casing error in formal parameter name in call
3484
3485 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
3486
3487         * binde.adb (Gather_All_Links, Gather_Dependencies): units that are
3488         mentioned in limited_with_clauses to do create semantic dependencies
3489         even though they appear in the ali file.
3490
3491 2008-04-08  Emmanuel Briot  <briot@adacore.com>
3492
3493         * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
3494         statement.
3495         (Get_Configuration): New subprogram.
3496
3497         * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
3498         These optional parameters help preserve the casing of the project's name
3499         when pretty-printing.
3500
3501 2008-04-08  Jerome Lambourg  <lambourg@adacore.com>
3502             Arnaud Charlet  <charlet@adacore.com>
3503
3504         * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
3505         then use __gnat_set_exit_status to report the returned status code.
3506
3507         * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
3508         messages on .NET, since some constructs of the language are not
3509         properly supported.
3510
3511         * gnatlink.adb (Gnatlink): In case the command line is too long for the
3512         .NET linker, gnatlink now concatenate all .il files and pass this to
3513         ilasm.
3514
3515 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
3516             Xavier Grave  <grave@ipno.in2p3.fr>
3517
3518         * Makefile.in: Add make ifeq define for mips/mipsel support.
3519         * g-soccon-linux-mips.ads, system-linux-mipsel.ads, 
3520         system-linux-mips.ads: New files.
3521
3522 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
3523
3524         * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
3525         detect systems using GNU libc.
3526         * gsocket.h: ditto.
3527         * socket.c: ditto.
3528         * adaint.c: ditto.
3529         * link.c: ditto.
3530
3531 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
3532
3533         * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New 
3534         constant constant for sysconf call.
3535         (bit_field): New packed boolean type used by cpu_set_t.
3536         (cpu_set_t): New type corresponding to the C type with
3537         the same name. Note that on the Ada side we use a bit
3538         field array for the affinity mask. There is not need
3539         for the C macro for setting individual bit.
3540         (pthread_setaffinity_np): New imported routine.
3541         * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
3542         on GNU/kFreeBSD.
3543
3544 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
3545
3546         * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
3547
3548 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
3549
3550         * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
3551         * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
3552         * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
3553         * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
3554         Return by Depressed Stack Pointer.
3555
3556 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
3557
3558         * decl.c (is_variable_size): Do not unconditionally return false
3559         on non-strict alignment platforms.
3560
3561 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
3562
3563         * decl.c (rest_of_type_decl_compilation_no_defer): New local function
3564         used to process all the variants of the specified type.
3565         (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
3566         types too.  Call rest_of_type_decl_compilation_no_defer if undeferring.
3567         (rest_of_type_decl_compilation): Likewise.
3568         * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
3569
3570 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
3571
3572         * gigi.h (insert_block): Kill.
3573         * utils.c (insert_block): Kill.
3574
3575 2008-04-02  Eric Botcazou  <ebotcazou@adacore.com>
3576
3577         * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
3578         type has self-referential size, get the size from the initializing
3579         expression directly if it is also a constant whose nominal type
3580         has self-referential size.
3581
3582 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3583
3584         PR ada/33688
3585         * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
3586
3587         PR ada/33857
3588         * env.c: Always include crt_externs.h if __APPLE__ is defined.
3589         (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
3590
3591 2008-04-01  Andreas Jaeger  <aj@suse.de>
3592
3593         * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
3594         IP_PKTINFO.
3595
3596 2008-03-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3597
3598         * g-table.adb, g-tasloc.adb, g-traceb.ads,
3599         g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
3600         gnatbind.adb, gnatchop.adb, gnatcmd.adb,
3601         gnatcmd.ads, gnatdll.adb, gnatfind.adb,
3602         gnatlink.adb, gnatmem.adb, gprep.adb,
3603         i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
3604         i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
3605         layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
3606         lib-xref.ads, lib.adb, link.c, live.ads,
3607         make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
3608         mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
3609         misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
3610         mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
3611         namet.adb, namet.h, nlists.adb, nlists.ads,
3612         nlists.h, opt.ads, osint-b.ads, osint-c.adb,
3613         osint-c.ads, osint.adb, osint.ads, output.ads,
3614         par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
3615         par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
3616         par-endh.adb, par-labl.adb, par-prag.adb,
3617         par-sync.adb, par-tchk.adb, par-util.adb,
3618         par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
3619         prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
3620         prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
3621         prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
3622
3623 2008-03-31  Eric Botcazou  <ebotcazou@adacore.com>
3624
3625         * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
3626         size if it has overflowed.
3627
3628 2008-03-31  Olivier Hainque  <hainque@adacore.com>
3629             Eric Botcazou  <ebotcazou@adacore.com>
3630
3631         * utils2.c (find_common_type): Document assumption on t1/t2 vs
3632         lhs/rhs. Force use of lhs type if smaller, whatever the modes.
3633
3634 2008-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3635
3636         * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
3637         einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
3638         exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
3639         exp_pakd.ads, exp_prag.adb, exp_smem.adb,
3640         exp_tss.ads, exp_util.adb, exp_util.ads,
3641         exp_vfpt.adb, freeze.adb, freeze.ads,
3642         frontend.adb, g-alleve.adb, g-altcon.adb,
3643         g-altive.ads, g-alveop.ads, g-alvevi.ads,
3644         g-arrspl.adb, g-busorg.ads, g-calend.adb,
3645         g-calend.ads, g-casuti.ads, g-cgideb.adb,
3646         g-comlin.adb, g-comlin.ads, g-curexc.ads,
3647         g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
3648         g-dirope.adb, g-dirope.ads, g-dynhta.ads,
3649         g-dyntab.adb, g-encstr.ads, g-excact.ads,
3650         g-except.ads, g-expect.ads, g-heasor.adb,
3651         g-hesora.adb, g-hesorg.adb, g-htable.ads,
3652         g-locfil.ads, g-md5.adb, g-md5.ads,
3653         g-memdum.ads, g-moreex.ads, g-os_lib.adb,
3654         g-pehage.adb, g-pehage.ads, g-regexp.adb,
3655         g-regexp.ads, g-regpat.adb, g-regpat.ads,
3656         g-soccon-aix.ads, g-soccon-darwin.ads,
3657         g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
3658         g-soccon-hpux.ads, g-soccon-irix.ads,
3659         g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
3660         g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
3661         g-soccon-mingw.ads, g-soccon-solaris-64.ads,
3662         g-soccon-solaris.ads, g-soccon-tru64.ads,
3663         g-soccon-vms.ads, g-soccon-vxworks.ads,
3664         g-soccon.ads, g-socket.adb, g-socket.ads,
3665         g-socthi-mingw.adb, g-socthi-vms.adb,
3666         g-socthi-vxworks.adb, g-soliop-mingw.ads,
3667         g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
3668         g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
3669         typos.
3670
3671 2008-03-27  Eric Botcazou  <ebotcazou@adacore.com>
3672
3673         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
3674         if the procedure is imported.
3675
3676 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
3677
3678         * adaint.c: Fix warnings.
3679
3680 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
3681
3682         * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
3683
3684 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
3685
3686         * a-witeio.adb: Fix problem with Current_Output (introduce Self).
3687         Fix problem of status check for null file
3688
3689 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
3690
3691         * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
3692         s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
3693         s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
3694         i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
3695         s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
3696         comments.
3697
3698 2008-03-26  Thomas Quinot  <quinot@adacore.com>
3699
3700         PR ada/33688
3701         * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
3702         Get_Socket_Option): Add support for Receive_Packet_Info.
3703
3704         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
3705         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
3706         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
3707         g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
3708         g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
3709         new constants SO_REUSEPORT and IP_PKTINFO
3710
3711 2008-03-26  Robert Dewar  <dewar@adacore.com>
3712
3713         * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
3714         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
3715         a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
3716         a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
3717         a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
3718         a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
3719         s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
3720         s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
3721         a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
3722         s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
3723         s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
3724         s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
3725         s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
3726         s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
3727         s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
3728         s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
3729         s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
3730         s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
3731         s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
3732         s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
3733         a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
3734         a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
3735         s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
3736         s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
3737         s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
3738         s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
3739         s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
3740         a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
3741         a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
3742         s-tasloc.adb: Minor reformatting.
3743         Update comments.
3744         Remove "used for" sections from comments.
3745
3746 2008-03-26  Robert Dewar  <dewar@adacore.com>
3747
3748         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
3749         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
3750         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
3751         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
3752         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
3753         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
3754         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
3755         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
3756         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
3757         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
3758         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
3759         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
3760         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
3761         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
3762         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
3763         double spaced if it fits on one line and otherwise single spaced.
3764
3765 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
3766
3767         * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb, 
3768         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb, 
3769         s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
3770         or task info if the thread could not be created.
3771
3772 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
3773
3774         * gnatvsn.ads (Library_Version): Bump to 4.4.
3775         (Current_Year): Bump to 2008.
3776
3777 2008-03-26  Robert Dewar  <dewar@adacore.com>
3778
3779         * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
3780
3781         * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
3782
3783         * debug.adb: Add debug flags d.r and d.v
3784         Add debug flag .T (Optimize_Alignment (Time))
3785         Add debug flag .S (Optimize_Alignment (Space))
3786
3787         * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
3788         depending on setting of relevant debug flags.
3789         Replace use of Warnings_Off by Has_Warnings_Off
3790         (Freeze_Entity): In circuit for warning on suspicious convention
3791         actuals, do not give warning if subprogram has same entity as formal
3792         type, or if subprogram does not come from source.
3793         (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
3794         if Optimize_Alignment set to Space.
3795
3796         * frontend.adb: Add call to Sem_Warn.Initialize
3797         Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
3798         Reset Optimize_Alignment mode from debug switches .S and .T
3799
3800         * layout.adb (Layout_Composite_Object): Rewritten for
3801         Optimize_Aligment pragma.
3802
3803         * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
3804         mode.
3805
3806         * opt.ads, opt.adb: (Optimize_Alignment): New global switch
3807
3808         * par-prag.adb (N_Pragma): Chars field removed, use Chars
3809         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
3810         this change. Add entry for pragma Optimize_Alignment
3811
3812         * sem_prag.adb (N_Pragma): Chars field removed, use Chars
3813         (Pragma_Identifier (..
3814         instead, adjustments throughout to accomodate this change.
3815         (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
3816         (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
3817         Add implementation of pragma Optimize_Alignment
3818
3819 2008-03-26  Vincent Celier  <celier@adacore.com>
3820
3821         * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
3822         Improve memory usage to avoid use of stack.
3823
3824 2008-03-26  Robert Dewar  <dewar@adacore.com>
3825
3826         * a-teioed.ads: Correct value of Default_Fill
3827
3828         * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
3829
3830 2008-03-26  Robert Dewar  <dewar@adacore.com>
3831
3832         * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
3833         with Current_Output (introduce Self).
3834
3835 2008-03-26  Robert Dewar  <dewar@adacore.com>
3836
3837         * checks.adb (Ensure_Valid): Capture valid status if possible
3838         (eliminate checks)
3839
3840 2008-03-26  Robert Dewar  <dewar@adacore.com>
3841
3842         * stand.ads: Deal with reordering of package standard declarations
3843
3844         * cstand.adb: Put package Standard declarations in proper order
3845
3846 2008-03-26  Robert Dewar  <dewar@adacore.com>
3847
3848         * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
3849         (Pragma_Identifier (.. instead.
3850         (OK_To_Reorder_Components): New flag
3851         (Has_Entries): Code cleanup.
3852         (Warnings_Off_Used): New flag
3853         (Warnings_Off_Used_Unmodified): New flag
3854         (Warnings_Off_Used_Unreferenced): New flag
3855         (Has_Warnings_Off): New function
3856         (Has_Unmodified): New function
3857         (Has_Unreferenced): New function
3858         (Is_Trivial_Subprogram): New flag
3859         (Is_Static_Dispatch_Table_Entity): New attribute.
3860         Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
3861         (more consistent with other similar names)
3862         (Access_Subprogram_Type): New classification function
3863
3864 2008-03-26  Robert Dewar  <dewar@adacore.com>
3865
3866         * errout.ads: Document new !! insertion sequence
3867
3868         * errout.adb (N_Pragma): Chars field removed, use Chars
3869         (Pragma_Identifier (..  instead.
3870         Replace use of Warnings_Off by Has_Warnings_Off
3871         (Error_Msg_Internal): Don't delete warning ending in !!
3872
3873 2008-03-26  Robert Dewar  <dewar@adacore.com>
3874
3875         * par.adb (Check_No_Right_Paren): Removed no longer used
3876
3877         * par-ch10.adb (N_Pragma): Chars field removed, use Chars
3878         (Pragma_Identifier (..  instead.
3879
3880         * par-ch10.adb (P_Subunit): Improvement in error recovery and message
3881
3882         * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
3883         par-ch4.adb: Minor improvements in error recovery and messages.
3884
3885         * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
3886         non-serious
3887
3888         * par-ch9.adb: Minor improvements in error recovery and messages
3889         (P_Protected): Better error recovery for "protected type x;"
3890
3891         * par-util.adb: Minor improvements in error recovery and messages
3892         (Check_No_Right_Paren): Removed no longer used
3893
3894 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
3895
3896         * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
3897         that the prefix of an attribute is the type of the aggregate being
3898         expanded.
3899
3900 2008-03-26  Javier Miranda  <miranda@adacore.com>
3901             Robert Dewar  <dewar@adacore.com>
3902
3903         * exp_attr.adb (N_Pragma): Chars field removed.
3904         (Expand_N_Attribute_Reference): If the designated type associated with
3905         attribute 'Unrestricted_Access is a subprogram entity then replace it
3906         by an E_Subprogram_Type itype.
3907         Implement attribute Old
3908
3909         * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
3910
3911         * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
3912         Replace call to
3913         New_Internal_Entity by call to Create_Itype to centralize calls
3914         building itypes, ad propagate the convention of the designated
3915         subprogram. In addition, disable the machinery cleaning constant
3916         indications from all entities in current scope when 'Unrestricted_Access
3917         corresponds with a node initializing a dispatch table slot.
3918         (Analyze_Attribute): Parameterless attributes returning a string or a
3919         type will not be called with improper arguments, so we can remove junk
3920         code that was dealing with this case.
3921         Implement attribute Old
3922
3923         * snames.ads, snames.h, snames.adb: Add entries for attribute Old
3924         Add entry for pragma Optimize_Alignment
3925         New standard names Sync and Synchronize
3926
3927 2008-03-26  Robert Dewar  <dewar@adacore.com>
3928             Arnaud Charlet  <charlet@adacore.com>
3929
3930         * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
3931         stmt.
3932         (No_Exception_Propagation_Active): New function.
3933         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
3934         Update comments, and review all uses of No_Exception_Propagation, which
3935         are now correct and in sync with what gigi expects.
3936
3937         * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
3938         function.
3939         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
3940         Update comments, and review all uses of No_Exception_Propagation, which
3941         are now correct and in sync with what gigi expects.
3942
3943 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
3944
3945         * sem_ch3.adb (Access_Definition): If the access type is the return
3946         result of a protected function, create an itype reference for it
3947         because usage will be in an inner scope from the point of declaration.
3948         (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
3949         OK_To_Reorder_Components.
3950         (Make_Index): If an overloaded range includes a universal integer
3951         interpretation, resolve to Standard.Integer.
3952         (Analyze_Subtype_Indication): Copy Convention to subtype
3953         (Check_Abstract_Interfaces): Complete semantic checks on the legality of
3954         limited an synchronized progenitors in type declaration and private
3955         extension declarations.
3956
3957         * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
3958         protected subprogram body, determine proper scope from subprogram
3959         declaration.
3960
3961 2008-03-26  Robert Dewar  <dewar@adacore.com>
3962
3963         * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
3964         No_Run_Time_Mode
3965
3966 2008-03-26  Gary Dismukes  <dismukes@adacore.com>
3967
3968         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
3969         of a heap allocator for a limited unconstrained function return when
3970         resstriction No_Allocators is active.
3971         (Analyze_Allocator): The restriction No_Allocators is now only checked
3972         on allocators that have Comes_From_Source set, as per RM-H.4(7).
3973
3974         * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
3975         of a heap allocator for a limited unconstrained function return when
3976         resstriction No_Allocators is active.
3977         (Analyze_Allocator): The restriction No_Allocators is now only checked
3978         on allocators that have Comes_From_Source set, as per RM-H.4(7).
3979         (Has_Fixed_Op):  If the name in a function call is Standard."*" and the
3980         operands are fixed-point types, the universal_fixed predefined operation
3981         is used, regardless of whether the operand type (s) have a primitive
3982         operation of the same name.
3983
3984 2008-03-26  Javier Miranda  <miranda@adacore.com>
3985
3986         * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
3987         Is_Static_Dispatch_Table
3988         (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
3989         to Exchange_Declarations to exchange the private and full-view. Bug
3990         found working in this issue.
3991         (Expand_Dispatching_Call): Propagate the convention of the subprogram
3992         to the subprogram pointer type.
3993         (Make_Secondary_DT): Replace generation of Prim'Address by
3994         Address (Prim'Unrestricted_Access)
3995         (Make_DT): Replace generation of Prim'Address by
3996         Address (Prim'Unrestricted_Access)
3997         (Make_Disp_*_Bodies): When compiling for a restricted profile, use
3998         simple call form for single entry.
3999         (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
4000         tables of predefined primitives).
4001         (Make_Secondary_DT): Add support to handle access to dispatch tables of
4002         predefined primitives.
4003         (Make_Tags): Add entities to Access_Dispatch_Table associated with
4004         access to dispatch tables containing predefined primitives.
4005
4006         * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
4007         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
4008         this change.
4009         (Register_Predefined_DT_Entry): Updated to handle the new contents
4010         of attribute Access_Disp_Table (pointers to dispatch tables containing
4011         predefined primitives).
4012
4013         * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
4014         subprogram.
4015         (Find_Interface_ADT): Updated to skip the new contents of attribute
4016         Access_Dispatch_Table (pointers to dispatch tables containing predefined
4017         primitives).
4018
4019         * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
4020         concurrent types.
4021         (Set_Convention): Use new function Is_Access_Subprogram_Type
4022         (Collect_Interfaces_Info): Updated to skip the new contents of attribute
4023         Access_Dispatch_Table (pointers to dispatch tables containing predefined
4024         primitives).
4025
4026         * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
4027         expanded code avoiding calls to Build_Predef_Prims.
4028         (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
4029         call to Build_Get_Predefined_Prim_Op_Address.
4030
4031 2008-03-26  Javier Miranda  <miranda@adacore.com>
4032
4033         * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
4034         subprogram Corresponding_Runtime_Package to know the runtime package
4035         that will provide support to a given protected type.
4036
4037         * exp_ch9.adb (Add_Private_Declarations,
4038         Build_Protected_Subprogram_Call,
4039         Build_Protected_Entry, Build_Simple_Entry_Call,
4040         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
4041         Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
4042         cleanup using the new centralized subprogram Corresponding_Runtime
4043         Package to know the runtime package that provides support to
4044         a given protected type.
4045
4046 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
4047
4048         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
4049         assignment is within the initialization procedure for a packed array,
4050         and Initialize_Scalars is enabled, compile right-hand side with checks
4051         off, because the value is purposely out of range.
4052
4053 2008-03-26  Vincent Celier  <celier@adacore.com>
4054
4055         * gnatcmd.adb: Add processing for GNAT SYNC
4056
4057         * vms_conv.ads: (Command_Type): Add command Sync
4058
4059         * vms_conv.adb (Initialize): Add Command_List data for new command Sync
4060
4061         * vms_data.ads: Add entries for -gnatw.w
4062         Add qualifier for gnatstub --header-file option
4063         Add switches for GNAT SYNC
4064
4065         * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
4066         (Add_Package_Name): New procedure
4067         (Package_Name_List): New function
4068         (Initialize): Add known package names to the list
4069         (Register_New_Package): Add the new package name to the list
4070
4071 2008-03-26  Robert Dewar  <dewar@adacore.com>
4072
4073         * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
4074         s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
4075         Raise_Exception by "raise with" construct.
4076
4077 2008-03-26  Pascal Obry  <obry@adacore.com>
4078
4079         * Makefile.in: Add proper GNAT.Serial_Communications implementation on
4080         supported platforms.
4081         
4082         * Makefile.rtl: Add g-sercom.o.
4083         
4084         * impunit.adb: Add g-sercom.adb.
4085         
4086         * s-crtl.ads (open): New routine.
4087         (close): Likewise.
4088         (write): Likewise.
4089         
4090         * s-osinte-mingw.ads (BYTE): New type.
4091         (CHAR): Likewise.
4092         (OVERLAPPED): Likewise.
4093         (GENERIC_READ): New constant.
4094         (GENERIC_WRITE): Likewise.
4095         (OPEN_EXISTING): Likewise.
4096         (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
4097         type instead.
4098         (CreateFile): New routine.
4099         (WriteFile): Likewise.
4100         (ReadFile): Likewise.
4101         (CloseHandle): Move next to the other file oriented routines.
4102
4103         * g-sercom.ads: New unit.
4104
4105         * g-sercom.adb: Default implementation, calls to this unit will raise
4106         a program error exception.
4107         
4108         * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
4109         GNU/Linux implementations.
4110
4111 2008-03-26  Robert Dewar  <dewar@adacore.com>
4112
4113         * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
4114
4115         * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
4116         unchecked conversion for different conventions only for subprogram
4117         pointers or on VMS.
4118
4119 2008-03-26  Vincent Celier  <celier@adacore.com>
4120
4121         * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
4122         to check if the specified object file is correct.
4123
4124 2008-03-26  Thomas Quinot  <quinot@adacore.com>
4125
4126         * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
4127         Comes_From_Source to exclude primitives from being checked. We want to
4128         exclude predefined primitives only, so use the appropriate specific
4129         predicate. Also, flag a formal parameter of an anonymous
4130         access-to-subprogram type as illegal for a primitive operation of a
4131         remote access to class-wide type.
4132
4133 2008-03-26  Vincent Celier  <celier@adacore.com>
4134
4135         * prj-dect.adb (Parse_Package_Declaration): When a package name is not
4136         known, check if it may be a missspelling of a known package name. In
4137         not verbose, not mode, issue warnings only if the package name is a
4138         possible misspelling.
4139         In verbose mode, always issue a warning for a not known package name,
4140         plus a warning if the name is a misspelling of a known package name.
4141
4142         * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
4143         limited withs or limited withs are parse during one call.
4144         (Parse_Single_Project): Post parse context clause in two passes: non
4145         limited withs before current project and limited withs after current
4146         project.
4147
4148         * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
4149         project with the name With_Name, even if it is only extended indirectly.
4150         (Recursive_Process): Process projects in order: first single withs, then
4151         current project, then limited withs.
4152
4153         * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
4154         project with the name With_Name, even if it is only extended indirectly.
4155
4156 2008-03-26  Robert Dewar  <dewar@adacore.com>
4157
4158         * scn.adb (Initialize_Scanner): Format messages belong on standard error
4159
4160 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
4161
4162         * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
4163         a generic subprogram that is imported, do not attempt to compile
4164         non-existent body.
4165
4166         * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
4167         imported, do not generate a raise_program_error for the non-existent
4168         body.
4169         (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
4170         perform minimal name resolution on the generic to avoid spurious
4171         warnings.
4172         (Find_Actual_Type): the designated type of the actual in a child unit
4173         may be declared in a parent unit without being an actual.
4174
4175 2008-03-26  Robert Dewar  <dewar@adacore.com>
4176
4177         * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
4178         * sinfo.ads, sinfo.adb (From_At_End): New flag
4179
4180 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
4181
4182         * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
4183         operations that have an interface parameter.
4184         (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
4185         Don't treat No_Return call as raise.
4186
4187         * sem_disp.adb (Check_Dispatching_Operations): apply check for
4188         non-primitive interface primitives to access parameters, not to all
4189         parameters of an access type.
4190
4191 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
4192
4193         * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
4194         declarations of a parent unit are made visible when compiling a child
4195         instance, the parent is not a hidden open scope, even though it may
4196         contain other pending instance.
4197         
4198         * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
4199         hidden open scope for some child instance, it does affect the
4200         visibility status of other stach entries.
4201         (Analyze_Object_Renaming): Check that a class-wide object cannot be
4202         renamed as an object of a specific type.
4203
4204 2008-03-26  Robert Dewar  <dewar@adacore.com>
4205
4206         * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
4207         recursion and raise SE directly.
4208         (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
4209         set for formal type for IN mode parameter.
4210
4211 2008-03-26  Robert Dewar  <dewar@adacore.com>
4212
4213         * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
4214         (Initialize): New procedure
4215         (Output_Warnings_Off_Warnings): New procedure
4216         (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
4217         (Output_Non_Modifed_In_Out_Warnings): Ditto
4218         (Warn_On_Unreferenced_Entity): Ditto
4219
4220 2008-03-26  Vincent Celier  <celier@adacore.com>
4221
4222         * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
4223         readable.
4224
4225 2008-03-26  Matthew Heaney  <heaney@adacore.com>
4226
4227         * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads, 
4228         a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
4229         Marked with clauses as private, and controlled operations as overriding
4230
4231 2008-03-26  Robert Dewar  <dewar@adacore.com>
4232
4233         * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
4234
4235 2008-03-26  Robert Dewar  <dewar@adacore.com>
4236
4237         * back_end.adb, back_end.ads: Minor reformatting
4238
4239         * bindgen.adb: Minor clarification of comments
4240
4241         * fname.ads: Minor comment fixes
4242
4243         * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
4244         prj-nmsc.adb, sem_aggr.adb: Minor reformatting
4245
4246         * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
4247         xsnames.adb: Remove warnings off pragma no longer needed
4248
4249         * a-catizo.ads, a-calari.ads, a-calfor.adb,
4250         a-calfor.ads: Fix header.
4251
4252 2008-03-26  Tristan Gingold  <gingold@adacore.com>
4253
4254         * init.c: Do not adjust pc for HPARITH on alpha/vms.
4255
4256 2008-03-26  Robert Dewar  <dewar@adacore.com>
4257
4258         * lib-xref.adb: (OK_To_Set_Reference): New function
4259         (Generate_Reference): Don't set referenced from occurrence in Warnings,
4260         Unmodified, or Unreferenced pragma
4261
4262 2008-03-26  Robert Dewar  <dewar@adacore.com>
4263
4264         * alloc.ads: Add entries for Warnings_Off_Pragmas table
4265
4266 2008-03-26  GNAT Script  <nobody@adacore.com>
4267
4268         * Make-lang.in: Makefile automatically updated
4269
4270 2008-03-26  Robert Dewar  <dewar@adacore.com>
4271
4272         * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
4273         par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
4274         removed, use Chars (Pragma_Identifier (..  instead, adjustments
4275         throughout to accomodate this change.
4276
4277         * s-pooglo.ads, s-pooloc.ads: Minor comment updates
4278
4279         * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
4280         Einfo.Set_Needs_Debug_Info)
4281
4282 2008-03-26  Robert Dewar  <dewar@adacore.com>
4283
4284         * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
4285         Add description for the new gnatstub option '--header-file'
4286         clarification of -gnatwz/-gnatwZ
4287         Add a "Irix-Specific Considerations" section to document the need to
4288         set LD_LIBRARY_PATH when using the default shared runtime library.
4289         Added documentation for both gcov and gprof.
4290
4291         * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
4292         messages that are not suppressed when clients are compiled.
4293         Add documentation of s-pooglo s-pooloc
4294         Document the new GNAT.Serial_Communications API.
4295         Add documentation for 'Old attribute
4296         Add description of pragma Optimize_Alignment
4297
4298         * ug_words: Add entries for -gnatw.w -gnatw.W
4299
4300         * usage.adb: Add line for -gnatw.w (warn on warnings off)
4301
4302 2008-03-25  Eric Botcazou  <ebotcazou@adacore.com>
4303
4304         Revert
4305         2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
4306         PR ada/35186
4307         * decl.c (maybe_pad_type): Avoid padding an integral type when
4308         bumping its alignment is sufficient.
4309
4310 2008-03-25  Arnaud Charlet  <charlet@adacore.com>
4311
4312         * exp_ch6.adb, exp_disp.adb: Update copyright notice.
4313         Fix wrong formatting (lines too long)
4314
4315 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4316
4317         * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
4318         a-calend-vms.adb, a-calend.adb, a-calend.ads,
4319         a-calfor.adb, a-chahan.ads, a-chtgke.adb,
4320         a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
4321         a-cohama.ads, a-comlin.ads, a-coorse.adb,
4322         a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
4323         a-except-2005.ads, a-except.adb, a-except.ads,
4324         a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
4325         a-exextr.adb, a-filico.ads, a-finali.ads,
4326         a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
4327         a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
4328         a-sequio.ads, a-strbou.ads, a-strfix.adb,
4329         checks.adb, exp_ch3.adb, exp_ch4.adb,
4330         exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
4331         exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
4332         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
4333         exp_dbug.ads, exp_disp.adb, exp_dist.adb,
4334         exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
4335
4336 2008-03-24  Robert Dewar  <dewar@adacore.com>
4337
4338         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
4339         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
4340         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
4341         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
4342         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
4343         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
4344         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
4345         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
4346         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
4347         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
4348         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
4349         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
4350         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
4351         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
4352         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
4353         double spaced if it fits on one line and otherwise single spaced.
4354
4355 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4356
4357         PR documentation/15479
4358         * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
4359         (doc/gnat_ugn_unw.texi): ... this, and adjusted.
4360         (doc/gnat_ugn.info): Renamed from ...
4361         (doc/gnat_ugn_unw.info): ... this.
4362         (doc/gnat_ugn.dvi): Renamed from ...
4363         (doc/gnat_ugn_unw.dvi): ... this.
4364         (doc/gnat_ugn.pdf): Renamed from ...
4365         (doc/gnat_ugn_unw.pdf): ... this.
4366         (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
4367         Adjusted.
4368         * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
4369         unconditionally to gnat_ugn.info.  Fix cross references to the
4370         GNAT Reference Manual.  Convert links to the GCC, GDB, Emacs,
4371         and GNU make manuals to be proper texinfo links.
4372         * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
4373
4374 2008-03-21  Olivier Hainque  <hainque@adacore.com>
4375
4376         * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
4377         ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
4378
4379 2008-03-21  Eric Botcazou  <ebotcazou@adacore.com>
4380
4381         * trans.c (addressable_p): Add notes on addressability issues.
4382
4383 2008-03-21  Olivier Hainque  <hainque@adacore.com>
4384             Ed Schonberg  <schonberg@adacore.com>
4385
4386         * trans.c (addressable_p): Accept COND_EXPR when both arms
4387         are addressable.
4388         (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
4389         (call_to_gnu): Do not use name reference in the error message
4390         for a misaligned by_reference_parameter. The actual may be a
4391         general expression.
4392
4393 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
4394
4395         * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
4396
4397 2008-03-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4398
4399         * gnat_rm.texi (Implementation Defined Characteristics)
4400         (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
4401         appropriate.
4402         * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
4403         (Switches for gnatchop, Installing a library): Likewise.
4404
4405 2008-03-10  Eric Botcazou  <ebotcazou@adacore.com>
4406
4407         * trans.c (emit_range_check): Do not emit the check if the base type
4408         of the expression is the type against which its range must be checked.
4409
4410 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
4411
4412         * decl.c (maybe_pad_type): Use value_factor_p.
4413
4414 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
4415
4416         * lang.opt (nostdlib): Move around.
4417         * misc.c (gnat_handle_option): Fix formatting.
4418         (gnat_dwarf_name): Move around.
4419         * trans.c (Case_Statement_to_gnu): Fix formatting.
4420         (gnat_to_gnu): Likewise.
4421         * utils.c (aggregate_type_contains_array_p): Likewise.
4422         (create_subprog_decl): Likewise.
4423
4424 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
4425
4426         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
4427         bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
4428
4429 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
4430
4431         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
4432         BIGGEST_ALIGNMENT when capping the alignment of records with
4433         strict alignment and size clause.
4434
4435 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
4436
4437         * lang-specs.h: Pass -gnatwa if -Wall is passed.
4438         * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
4439         and -Wuninitialized.
4440         (gnat_post_options): Clear warn_unused_parameter.
4441
4442 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
4443
4444         * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
4445         aligned bit-fields, bumping the alignment of the record type if deemed
4446         profitable.
4447         (value_factor_p): Return false instead of 0.
4448
4449 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
4450
4451         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
4452         for scalar types with small alignment.
4453
4454 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
4455
4456         * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
4457         from that of the front-end's end label.
4458         (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
4459         from that of the loop label.
4460
4461 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
4462
4463         * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
4464         comment for the packed array type case.
4465         * utils.c (build_template): Use a loop to strip padding or
4466         containing records for justified modular types.
4467
4468 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
4469
4470         * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
4471         large alignments specified for types.
4472         (validate_alignment): Minor cleanup.
4473
4474 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
4475
4476         * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
4477         (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
4478         the component for packing, if possible, as well as if a component
4479         size clause is specified.
4480         <E_Record_Subtype>: For an array type used to implement a packed
4481         array, get the component type from the original array type.
4482         Try to get a smaller form of the component for packing, if possible,
4483         as well as if a component size clause is specified.
4484         (round_up_to_align): New function.
4485         (make_packable_type): Add in_record parameter.
4486         For a padding record, preserve the size.  If not in_record and the
4487         size is too large for an integral mode, attempt to shrink the size
4488         by lowering the alignment.
4489         Ditch the padding bits of the last component.
4490         Compute sizes and mode manually, and propagate the RM size.
4491         Return a BLKmode record type if its size has shrunk.
4492         (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
4493         Use Original_Array_Type to retrieve the type in case of an error.
4494         Adjust call to make_packable_type.
4495         (gnat_to_gnu_field): Likewise.
4496         (concat_id_with_name): Minor tweak.
4497         * trans.c (larger_record_type_p): New predicate.
4498         (call_to_gnu): Compute the nominal type of the object only if the
4499         parameter is by-reference.  Do the conversion actual type -> nominal
4500         type if the nominal type is a larger record.
4501         (gnat_to_gnu): Do not require integral modes on the source type to
4502         avoid the conversion for types with identical names.
4503         (addressable_p): Add gnu_type parameter.  If it is specified, do not
4504         return true if the expression is not addressable in gnu_type.
4505         Adjust recursive calls.
4506         * utils.c (finish_record_type): Remove dead code.
4507
4508 2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
4509
4510         PR ada/35186
4511         * decl.c (maybe_pad_type): Avoid padding an integral type when
4512         bumping its alignment is sufficient.
4513
4514 2008-03-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4515
4516         * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
4517         * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
4518         statement.
4519         * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
4520         gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
4521         sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
4522         code output strings.
4523         * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
4524         system-vms_64.ads: Fix typos in ada source code comments.
4525         * sinfo-cn.adb: Remove incomplete sentence.
4526
4527         PR documentation/15479
4528         * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
4529
4530 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
4531
4532         PR ada/22255
4533         * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
4534
4535 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
4536
4537         PR ada/34799
4538         * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
4539         that underlying type is present.
4540
4541 2008-02-26  Tom Tromey  <tromey@redhat.com>
4542
4543         * misc.c (internal_error_function): Remove test of
4544         USE_MAPPED_LOCATION.
4545         * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
4546         (Sloc_to_locus): Remove old location code.
4547
4548 2008-02-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4549
4550         * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
4551         `i.e.' by adding comma or `@:' as appropriate.
4552         * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
4553         plain characters `C', use `@samp{C}'.
4554         * gnat_ugn.texi (File Naming Rules, About gnatkr)
4555         (Krunching Method): Likewise.
4556
4557         * gnat_ugn.texi (Conventions): List environment variables and
4558         metasyntactic variables.
4559         (Compiling Programs): Fix notation of metasyntactic variables.
4560         Add @file where appropriate.  Use @file for file extensions,
4561         @samp for strings.
4562         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
4563         instead of @file, @env instead of @code.
4564
4565 2008-02-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4566
4567         PR documentation/15479
4568         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
4569         and `...' with `@dots{}' or `@enddots{}'.
4570
4571         PR documentation/15479
4572         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
4573         use @command instead of @code, @option instead of @samp or @code,
4574         @code instead of @var, @samp instead of @file.
4575
4576         PR documentation/15479
4577         * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
4578         in Makefile rules, by using `&&' rather than `;'.
4579
4580 2008-02-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4581
4582         PR documentation/15479
4583         * gnat_ugn.texi: In non-code, avoid space before colon.
4584         (Regular Expressions in gnatfind and gnatxref): Fix indentation.
4585         (Examples of gnatxref Usage): Use @command{vi} instead of
4586         @file{vi}.
4587         (Character Set Control): Do not use @code for UTF-8.
4588         (Validity Checking): Fix typo "NaNs" instead of "NaN's".  Do not
4589         use @code for IEEE.
4590         * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
4591         sample.
4592         * gnat_rm.texi, gnat_ugn.texi: Fix typos.  Bump copyright years.
4593
4594 2008-02-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
4595
4596         PR ada/35143
4597         * env.c: Add __rtems__ to if defined.
4598         * s-osinte-rtems.adb: Add To_Target_Priority.  Fix formatting.
4599         * s-osinte-rtems.ads: Add To_Target_Priority prototype and
4600         PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants.  Add
4601         pragma Convention as required.
4602         * gsocket.h: Make compile in and out of RTS.
4603         * Makefile.in: Add system-rtems.ads.  Build DEC extensions.
4604         Use g-soccon-rtems.ads.
4605         * g-soccon-rtems.ads, system-rtems.ads: New files.
4606
4607 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4608
4609         PR other/35107
4610         * Make-lang.in (gnat1): Add $(GMPLIBS).
4611
4612 2008-01-26  Eric Botcazou  <ebotcazou@adacore.com>
4613
4614         * decl.c (components_to_record): Improve comment.
4615
4616 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
4617
4618         * decl.c (components_to_record): Do not reuse the empty union type
4619         if there is a representation clause on the record.
4620         * trans.c (addressable_p): Return true for INTEGER_CST.
4621
4622 2008-01-21  Eric Botcazou  <ebotcazou@adacore.com>
4623
4624         * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
4625         in pointer arithmetics.
4626         * utils2.c (build_allocator): Likewise.
4627
4628 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
4629
4630         * utils.c (build_function_stub): Properly build the call expression.
4631
4632 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
4633
4634         * decl.c (gnat_to_gnu_entity) <object>: Process renamings
4635         before converting the expression to the type of the object.
4636         * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
4637         Stabilize constructors for special wrapping types.
4638
4639 2008-01-13  Eric Botcazou  <ebotcazou@adacore.com>
4640
4641         * trans.c (call_to_gnu): Invoke the addressable_p predicate only
4642         when necessary.  Merge some conditional statements.  Update comments.
4643         Rename unchecked_convert_p local variable to suppress_type_conversion.
4644         Do not suppress conversions in the In case.
4645         (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
4646         into account on non strict-alignment platforms.
4647
4648 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
4649
4650         * utils.c (aggregate_type_contains_array_p): New predicate.
4651         (create_field_decl): In a packed record, force byte alignment
4652         for fields without specified position that contain an array.
4653
4654 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
4655
4656         * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
4657
4658 2008-01-10  John David Anglin  <dave.anglin.@nrc-cnrc.gc.ca>
4659
4660         PR ada/34466
4661         * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
4662         sysconf call.
4663         (bit_field): New packed boolean type used by cpu_set_t.
4664         (cpu_set_t): New type corresponding to the C type with
4665         the same name. Note that on the Ada side we use a bit
4666         field array for the affinity mask. There is not need
4667         for the C macro for setting individual bit.
4668         (pthread_setaffinity_np): New imported routine.
4669
4670 2008-01-03  Tero Koskinen  <tero.koskinen@iki.fi>
4671
4672         PR ada/34647
4673         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
4674         on OpenBSD as is done on other BSD systems.
4675
4676         PR ada/34645
4677         * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
4678         getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
4679         I/O.
4680
4681         PR ada/34644
4682         * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
4683         clearenv().
4684
4685         PR ada/34646
4686         * init.c (__gnat_error_handler, __gnat_install_handler,
4687         __gnat_init_float): Define for OpenBSD.
4688
4689         * initialize.c (__gnat_initialize): Define for OpenBSD.
4690
4691 2007-12-27  Samuel Tardieu  <sam@rfc1149.net>
4692
4693         PR ada/34553
4694         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
4695         instead of mktemp() or tmpnam() on NetBSD.
4696
4697 2007-12-23  Eric Botcazou  <ebotcazou@adacore.com>
4698
4699         * trans.c (call_to_gnu): Make the temporary for non-addressable
4700         In parameters passed by reference.
4701         (addressable_p): Return true for STRING_CST and CALL_EXPR.
4702
4703 2007-12-19  Robert Dewar  <dewar@adacore.com>
4704
4705         * g-expect-vms.adb, g-expect.adb, s-poosiz.adb: 
4706         Add pragma Warnings (Off) for unassigned IN OUT arguments
4707
4708         * sem_warn.adb (Output_Reference): Suppress messages for internal names
4709         (Check_References): Extensive changes to tune up warnings
4710         (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
4711         (Has_Pragma_Unmodifed_Check_Spec): New function
4712         (Check_References): Implement pragma Unmodified
4713         (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
4714
4715         * par-prag.adb: Dummy entry for pragma Unmodified
4716
4717         * sem_prag.adb: Implement pragma Unmodified
4718
4719         * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
4720         (Proc_Next_Component_Or_Discriminant): Fix typo.
4721         Update comments.
4722
4723         * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
4724         Unmodified.
4725         (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
4726         because the former already takes care of discarding the result.
4727         (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
4728         Add comment.
4729
4730         * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
4731
4732 2007-12-19  Eric Botcazou  <ebotcazou@adacore.com>
4733
4734         * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
4735         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
4736         system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
4737         system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
4738         system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
4739         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
4740         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
4741         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
4742         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
4743         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
4744         (Dynamic_Trampolines_Used): Delete.
4745
4746         * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
4747         Turn on stack probing mechanism on LynxOS.
4748
4749 2007-12-19  Bob Duff  <duff@adacore.com>
4750
4751         * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
4752         the resulting tail recursion by hand. This prevents running out of
4753         memory on deeply nested concatenations, since Field2 is where the left
4754         operand of concatenations is stored.
4755         Fix bug (was returning OK_Orig in some cases). Fix return subtype to
4756         clarify that it can only return OK or Abandon.
4757
4758         * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
4759         operand by iteration, in order to avoid running out of memory on
4760         deeply-nested concatenations. Use the Parent pointer to get back up the
4761         tree.
4762         (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
4763          Resolve_Op_Concat_Rest): New procedures split out of
4764         Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
4765         clearer.
4766
4767         * checks.adb (Remove_Checks): Use Traverse_Proc instead of
4768         Traverse_Func, because the former already takes care of discarding the
4769         result.
4770
4771         * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
4772         because the former already takes care of discarding the result.
4773         (Remove_Warning_Messages): Use appropriate subtype for Status and
4774         Discard 
4775
4776 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
4777
4778         * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
4779         discriminants forces expansion of the aggregate into assignments.
4780         (Init_Record_Controller):  If the type of the aggregate is untagged and
4781         is not inherently limited, the record controller is not limited either.
4782
4783 2007-12-19  Robert Dewar  <dewar@adacore.com>
4784
4785         * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
4786         handling compile time known size of record or array (case of front end
4787         layout active, e.g. in GNAAMP).
4788
4789 2007-12-19  Javier Miranda  <miranda@adacore.com>
4790
4791         * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
4792         that forces the construction of static dispatch tables in case of
4793         record subtypes.
4794
4795 2007-12-19  Robert Dewar  <dewar@adacore.com>
4796
4797         * exp_ch9.adb (Null_Statements): Moved to library level
4798         (Trivial_Accept_OK): New function
4799         (Expand_Accept_Declaration): Use Trivial_Accept_OK
4800         (Expand_N_Accept_Statement): Use Trivial_Accept_OK
4801
4802 2007-12-19  Robert Dewar  <dewar@adacore.com>
4803
4804         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
4805         in complex case where array is Volatile.
4806
4807 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
4808
4809         * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
4810         properly the Ada2005 rules concerning when the current instance of a
4811         record type is aliased.
4812
4813 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
4814
4815         * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
4816         mangled declaration
4817         (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
4818         declarations.
4819         (P_Variant_Part): Cleaner patch for parenthesized discriminant
4820
4821 2007-12-19  Vincent Celier  <celier@adacore.com>
4822
4823         * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
4824         package is not known
4825
4826         * prj-attr.ads (Unknown_Package): New constant
4827         Do not crash when an unknown package is in several projects
4828
4829         * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
4830         ignored
4831
4832         * prj-nmsc.adb (Check): Remove obsolete code related to no longer
4833         existing package Language_Processing.
4834
4835 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
4836             Gary Dismukes  <dismukes@adacore.com>
4837             Samuel Tardieu  <sam@rfc1149.net>
4838
4839         PR ada/15803, ada/15805
4840         * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
4841         illegal access subtypes when there is a constrained partial view.
4842         (Check_For_Premature_Usage): New procedure inside
4843         Access_Subprogram_Declaration for checking that an access-to-subprogram
4844         type doesn't reference its own name within any formal parameters or
4845         result type (including within nested anonymous access types).
4846         (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
4847         (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
4848         context is an access_to_variable, the expression cannot be an
4849         access_to_constant.
4850
4851 2007-12-19  Bob Duff  <duff@adacore.com>
4852
4853         * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
4854         (Analyze_Concatenation): Use iteration instead of recursion in order
4855         to avoid running out of stack space for deeply nested concatenations.
4856
4857 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
4858             Gary Dismukes  <dismukes@adacore.com>
4859
4860         * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
4861         whose renamed entity is a subprogram that requires overriding.
4862         (Premature_Usage): Test for the case of N_Full_Type_Declaration when
4863         issuing an error for premature usage and issue a message that says
4864         'type' rather than 'object'.
4865
4866 2007-12-19  Gary Dismukes  <dismukes@adacore.com>
4867
4868         PR ada/34149
4869         * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
4870         presence of a statically tagged operand (Present (Static_Tag)) with
4871         test for Indeterm_Ancestor_Call when determining whether to propagate
4872         the static tag to tag-indeterminate operands (which forces dispatching
4873         on such calls).
4874         (Check_Controlling_Formals): Ada2005, access parameters can have
4875         defaults.
4876         (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
4877         not insert subprogram in list of primitive operations if already there.
4878
4879 2007-12-19  Tristan Gingold  <gingold@adacore.com>
4880
4881         * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
4882         global variable.
4883
4884 2007-12-19  Thomas Quinot  <quinot@adacore.com>
4885
4886         Part of PR ada/33688
4887         * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
4888         datagram info on Linux.
4889
4890 2007-12-19  Vincent Celier  <celier@adacore.com>
4891
4892         * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
4893         that the source path name is always found in the dependencies.
4894
4895 2007-12-19  Robert Dewar  <dewar@adacore.com>
4896
4897         * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
4898         Fix name of Wide_Wide_Latin_1/9 file names
4899         Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
4900         Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
4901         Add missing documentation for Ada.Command_Line.Response_File
4902         Update list of warning letters for Warnings pragma
4903         Add documentation for pragma Unmodified
4904
4905 2007-12-19  Samuel Tardieu  <sam@rfc1149.net>
4906
4907         * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
4908
4909 2007-12-17  Arnaud Charlet  <charlet@adacore.com>
4910
4911         * s-vxwork-alpha.ads: Removed, no longer used.
4912
4913 2007-12-15  Jakub Jelinek  <jakub@redhat.com>
4914
4915         * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
4916
4917 2007-12-13  Samuel Tardieu  <sam@rfc1149.net>
4918
4919         PR ada/34360
4920         * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
4921         mlib-tgt-specific.adb.
4922
4923 2007-12-13  Bob Duff  <duff@adacore.com>
4924
4925         * trans.c (Attribute_to_gnu): Check for violations of the
4926         No_Implicit_Dynamic_Code restriction. This checking used to be done in
4927         the front end, but is moved here so we can make it more accurate.
4928
4929 2007-12-13  Pascal Obry  <obry@adacore.com>
4930
4931         * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
4932          version is provided for older GNU/Linux distribution not
4933          supporting thread affinity sets.
4934         
4935         * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
4936         call.
4937         (bit_field): New packed boolean type used by cpu_set_t.
4938         (cpu_set_t): New type corresponding to the C type with
4939         the same name. Note that on the Ada side we use a bit
4940         field array for the affinity mask. There is not need
4941         for the C macro for setting individual bit.
4942         (pthread_setaffinity_np): New imported routine.
4943         
4944         * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
4945         no null.
4946         (Create_Task): Set the processor affinity mask if information
4947         is present.
4948         
4949         * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
4950         
4951 2007-12-13  Robert Dewar  <dewar@adacore.com>
4952
4953         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, 
4954         s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads, 
4955         s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads, 
4956         s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
4957         s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
4958         s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads, 
4959         s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads, 
4960         i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
4961         for subprogram pointers.
4962
4963         * g-ctrl_c.adb: New file.
4964
4965         * g-ctrl_c.ads (Install_Handler): New body.
4966
4967         * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
4968         instead of obsolete function Is_Always_Inlined.
4969         (Freeze_Entity): check for tagged type in imported C subprogram
4970         (Freeze_Entity): check for 8-bit boolean in imported C subprogram
4971         (Freeze_Entity): check for convention Ada subprogram pointer in
4972         imported C subprogram.
4973         (Freeze_Fixed_Point_Type): In the case of a base type where the low
4974         bound would be chopped off and go from negative to zero, force
4975         Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
4976         bound) so that the size computation for the base type will take
4977         negative values into account.
4978
4979 2007-12-13  Eric Botcazou  <ebotcazou@adacore.com>
4980             Bob Duff  <duff@adacore.com>
4981             Tristan Gingold  <gingold@adacore.com>
4982
4983         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
4984         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads, 
4985         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
4986         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
4987         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads, 
4988         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
4989         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
4990         system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
4991         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
4992         system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
4993         system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
4994         (Always_Compatible_Rep): New flag to control trampolines globally.
4995         (Dynamic_Trampolines_Used): New flag for implementing the
4996         No_Implicit_Dynamic_Code restriction more correctly (not yet used,
4997         and not yet set correctly for some targets).
4998
4999         * s-taprop-vxworks.adb: Use stack limit method of stack checking.
5000         Simply indirectly call s-stchop when a task is created.
5001
5002         * ali.ads: 
5003         New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
5004         appears as an argument (entries A) in an ALI file.
5005
5006         * fe.h (Stack_Check_Limits): Declare new target parameter.
5007         (Check_Implicit_Dynamic_Code_Allowed): New procedure.
5008
5009         * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
5010         This variable is declared in C to be sure not subject to elaboration
5011         code.
5012         (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
5013         Storage_Error.
5014
5015         * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
5016         (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
5017
5018         * s-stchop.ads: Add comments.
5019
5020         * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
5021         limit method of stack checking.
5022
5023         * s-stchop-limit.ads: New file.
5024
5025 2007-12-13  Robert Dewar  <dewar@adacore.com>
5026
5027         * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb, 
5028         a-cihama.adb, g-awk.adb, 
5029         s-inmaop-posix.adb: Update handling of assigned value/unreferenced
5030         warnings
5031
5032         * exp_smem.adb: Update handling of assigned value/unreferenced warnings
5033
5034         * sem.adb: Update handling of assigned value/unreferenced warnings
5035
5036         * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
5037
5038         * lib-xref.ads: Improve documentation for k xref type
5039
5040         * lib-xref.adb: 
5041         Update handling of assigned value/unreferenced warnings
5042         (Generate_Reference): Warning for reference to entity for which a
5043         pragma Unreferenced has been given should be unconditional.
5044         If the entity is a discriminal, mark the original
5045         discriminant as referenced.
5046
5047         * sem_warn.ads, sem_warn.adb
5048         (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
5049         no entities referenced in package
5050         (Check_One_Unit): Don't give message about no entities referenced in
5051         a package if a pragma Unreferenced has appeared.
5052         Handle new warning flag -gnatw.a/-gnatw.A
5053         Update handling of assigned value/unreferenced warnings
5054
5055         * atree.h: Add flags up to Flag247
5056         (Flag231): New macro.
5057
5058 2007-12-13  Jose Ruiz  <ruiz@adacore.com>
5059
5060         * adaint.h: (__gnat_plist_init): Not defined for RTX.
5061
5062         * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
5063         RTX systems.
5064
5065         * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
5066         (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
5067         EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
5068         GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
5069
5070         * mingw32.h: 
5071         Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
5072
5073         * sysdep.c (winflush_function for RTX): Procedure that does nothing
5074         since we only have problems with Windows 95/98, which are not
5075         supported by RTX.
5076         (__gnat_ttyname): Return the empty string on Nucleus, just as
5077         done on vxworks.
5078
5079 2007-12-13  Robert Dewar  <dewar@adacore.com>
5080
5081         * a-textio.adb, a-textio.ads: 
5082         Extensive changes to private part for wide character encoding
5083
5084         * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
5085         (Look_Ahead): Fix mishandling of encoded sequences
5086         Move declaration of Wch_Con to private part (should not be visible)
5087
5088         * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
5089         UTF-8. Probably this is never used, but if it is, brackets is
5090         clearly correct.
5091
5092         * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
5093         setting wide character encoding for no main program case and when
5094         encoding is specified using -W?
5095         Initialize stack limit of environment task if stack limit method of
5096         stack checking is enabled.
5097         (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
5098         (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
5099         (Get_Main_Unit_Name): New function.
5100         (Gen_Adainit_Ada): Add call to main program for .NET when needed.
5101         (Gen_Output_File): Set Bind_Main_Program to True for .NET
5102
5103         * bindusg.adb: Add line for -Wx switch
5104
5105         * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
5106         Add comments
5107         Add new useful constant WC_Longest_Sequences
5108
5109         * switch-b.adb: Clean up handling of -Wx switch
5110         For -gnatWx, set Wide_Character_Encoding_Method_Specified
5111
5112         * switch-c.adb: -gnatg activates warning on assertion errors
5113         For -gnatWx, set Wide_Character_Encoding_Method_Specified
5114
5115         * s-wchcon.adb: (Is_Start_Of_Encoding): New function
5116
5117 2007-12-13  Robert Dewar  <dewar@adacore.com>
5118             Ed Schonberg  <schonberg@adacore.com>
5119
5120         * a-ngcoty.adb: New pragma Fast_Math
5121
5122         * opt.adb: New pragma Fast_Math
5123
5124         * par-prag.adb: 
5125         Add Implemented_By_Entry to the list of pragmas which do not require any
5126         special processing.
5127         (Favor_Top_Level): New pragma.
5128         New pragma Fast_Math
5129
5130         * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
5131         (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
5132         Expand_Allocator_Expression): Take into account VM_Target
5133         (Expand_Attribute, case 'Identity):  Handle properly the case where
5134         the prefix is a task interface.
5135         New pragma Fast_Math
5136
5137         * par.adb (Next_Token_Is): New function
5138         (P_Pragma): Add Skipping parameter
5139         (U_Left_Paren): New procedure
5140         (U_Right_Paren): New procedure
5141         New pragma Fast_Math
5142
5143         * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
5144         subunit
5145         New pragma Fast_Math
5146
5147         * sem_prag.adb: Add significance value to table Sig_Flag for pragma
5148         Implemented_By_Entry.
5149         (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
5150         (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
5151         items, since it can apply to more than one overloadable entity. Set
5152         new flag Has_Pragma_Inline_Always for Inline_Always case.
5153         (Analyze_Pragma, case Complex_Representation): Improve error message.
5154         (Analyze_Pragma, case Assert): When assertions are disabled build the
5155         rewritten code with Sloc of expression rather than pragma, so new
5156         warning about failing is not deleted.
5157         (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
5158         protected types and update error message to reflect that. Test whether
5159         the protected type is allowed for the pragma (an error is issued if the
5160         type has any entries, or components that do not have preelaborable
5161         initialization).
5162         New pragma Fast_Math
5163         (Analyze_Pragma, case No_Return): Handle generic instance
5164
5165         * snames.h, snames.ads, snames.adb: 
5166         Add new predefined name for interface primitive _Disp_Requeue.
5167         New pragma Fast_Math
5168
5169         * a-tags.ads, a-tags.adb: New calling sequence for
5170         String_To_Wide_[Wide_]String
5171         (Secondary_Tag): New subprogram.
5172
5173         * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
5174         from Exp_Attr
5175         New calling sequence for String_To_Wide_[Wide_]String
5176         (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
5177         the use of the secondary stack for image routines.
5178
5179         * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
5180         calling sequence for String_To_Wide_[Wide_]String
5181
5182         * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
5183         Ada 95 mode
5184         (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
5185         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
5186
5187         * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
5188         (P_Formal_Part): Use Skipping parameter in P_Pragma call
5189         to improve error recovery
5190
5191         * par-util.adb (Next_Token_Is): New function
5192         (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
5193
5194         * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
5195         semicolon if missing
5196         (P_Pragma): Implement new Skipping parameter
5197         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
5198         Fix location of flag for unrecognized pragma message
5199
5200         * par-tchk.adb (U_Left_Paren): New procedure
5201         (U_Right_Paren): New procedure
5202
5203 2007-12-13  Geert Bosch  <bosch@adacore.com>
5204
5205         * a-tifiio.adb: 
5206         (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
5207         the second or later Scaled_Divide would omit leading zeroes,
5208         resulting in too few digits produced and a Layout_Error as result.
5209         (Put): Initialize Pos.
5210
5211 2007-12-13  Robert Dewar  <dewar@adacore.com>
5212
5213         atree.ads, atree.adb (Flag231..Flag247): New functions
5214         (Set_Flag231..Set_Flag247): New procedures
5215         (Basic_Set_Convention): Rename Set_Convention to be
5216         Basic_Set_Convention
5217         (Nkind_In): New functions
5218         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
5219
5220         * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
5221         instead
5222          of obsolete function Is_Always_Inlined
5223         (Register_Predefined_DT_Entry): Initialize slots of the second
5224         secondary dispatch table.
5225         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
5226         (Expand_N_Function_Call): Remove special provision for stack checking.
5227
5228         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
5229         Include _Disp_Requeue in the list of predefined operations.
5230         (Find_Interface_ADT): Modified to fulfill the new specification.
5231         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
5232
5233         * par-ch4.adb, nlists.ads, nlists.adb: 
5234         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
5235
5236         * sinfo.ads, sinfo.adb: (Nkind_In): New functions
5237         Fix location of flag for unrecognized pragma message
5238
5239         * sem_ch7.adb: Use Nkind_In
5240
5241 2007-12-13  Vincent Celier  <celier@adacore.com>
5242
5243         * opt.ads: 
5244         Indicate what flags are used by the Project Manager, gprbuild and
5245         gprclean.
5246         (Opt.Follow_Links_For_Dirs): New flag
5247         (Warn_On_Assertion_Failure): New flag
5248         (Wide_Character_Encoding_Method_Specified): New flag
5249         (Suppress_All_Inlining): New switch set by -fno-inline
5250         (Real_VMS_Target): New flag
5251         New pragma Fast_Math
5252
5253 2007-12-13  Robert Dewar  <dewar@adacore.com>
5254
5255         * back_end.adb: Recognize -fno-inline
5256
5257 2007-12-13  Robert Dewar  <dewar@adacore.com>
5258
5259         * checks.adb: Fix optimization problem with short-circuited form
5260
5261 2007-12-13  Bob Duff  <duff@adacore.com>
5262
5263         * clean.adb (Usage): Add line for -aP
5264         (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
5265         with a parameter "procedure Usage", instead of passing a pointer to a
5266         procedure. This is to eliminate trampolines (since the Usage procedure
5267         is often nested in a main procedure, and it would be inconvenient to
5268         unnest it).
5269
5270         * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
5271         to be generic, with a parameter "procedure Callback (...)", instead of
5272         passing a pointer to a procedure. This is to eliminate trampolines
5273         (since the Callback procedure is usually nested).
5274
5275         * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb, 
5276         gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
5277         (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
5278
5279         * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
5280         Use the generic Heap_Sort_G instead of Heap_Sort_A.
5281
5282 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
5283
5284         * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
5285         (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
5286         (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
5287         (Renamed_In_Spec): New flag
5288         (Has_Pragma_Inline_Always): New flag
5289         Add missing doc for pragma Obsolescent_Warning
5290         Add missing doc for 17 additional unused flags (230-247)
5291         (Is_Derived_Type): Remove condition "not Is_Generic_Type".
5292         Alphabetize with clauses.
5293         Separate Is_Thunk and Has_Thunks flags
5294         (Write_Entity_Flags): Add forgotten entry for Has_Thunks
5295         (Related_Interface): Renamed to Related_Type.
5296         (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
5297         (Set_Is_Flag): Restrict the assertion.
5298
5299 2007-12-13  Vincent Celier  <celier@adacore.com>
5300
5301         * errout.adb (Output_Source_Line): Do not keep a trailing space after
5302         the source line number if the source line is empty.
5303
5304 2007-12-13  Geert Bosch  <bosch@adacore.com>
5305
5306         * eval_fat.adb (Decompose_Int): Handle argument of zero.
5307         (Compose): Remove special casing of zero.
5308         (Exponent): Likewise.
5309         (Fraction): Likewise.
5310         (Machine): Likewise.
5311         (Decompose): Update comment.
5312
5313 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
5314
5315         * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
5316         limited ancestor part, initialize controllers of enclosing record
5317         before expanding ancestor aggregate.
5318         (Gen_Assign): If a component of the aggregate is box-initialized, add
5319         code to call Initialize if the component is controlled, and explicit
5320         assignment of null if the component is an access type.
5321
5322         Handle properly aggregates for limited types that appear in object
5323         declarations when the aggregate contains controlled values such as
5324         protected types.
5325         When expanding limited aggregates into individual components, do not
5326         call Adjust on controlled components that are limited.
5327
5328 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
5329
5330         * expander.adb: Take into account N_Subprogram_Renaming_Declaration
5331
5332 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
5333
5334         * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
5335         predefined primitive _Disp_Requeue.
5336         (Make_Predefined_Primitive_Specs): Create the spec for predefined
5337         primitive _Disp_Requeue.
5338         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
5339         type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
5340         (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
5341         an interface type. In case of limited interfaces we now declare all the
5342         predefined primitives associated with synchronized interfaces as
5343         abstract.
5344         (Predef_Spec_Or_Body): For interface types generate abstract subprogram
5345         declarations.
5346         (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
5347         tagged type is an interface type and there is no user-defined equality
5348         function.
5349         Add also bodies of predefined primitives associated with synchronized
5350         interfaces.
5351         (Freeze_Record_Type): Do not build bodies of predefined primitives of
5352         interface types because they are now defined abstract.
5353         Add missing documentation.
5354         (Expand_Record_Controller): Update occurrence of Related_Interface
5355         to Related_Type.
5356         (Build_Offset_To_Top_Functions): Do nothing in case of VM.
5357         (Expand_N_Object_Declaration): Take into account VM_Target when handling
5358         class wide interface object declaration.
5359         (Expand_Previous_Access_Type): Do not create a duplicate master entity
5360         if the access type already has one.
5361         (Expand_N_Object_Declaration): Defend against attempt to validity check
5362         generic types. Noticed for -gnatVcf specified with previous errors.
5363
5364 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
5365
5366         * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
5367         Expand_Allocator_Expression): Take into account VM_Target
5368
5369         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
5370         secondary stack when VM_Target /= No_VM
5371
5372 2007-12-13  Javier Miranda  <miranda@adacore.com>
5373             Ed Schonberg  <schonberg@adacore.com>
5374
5375         * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
5376         Is_Complation_Unit by Is_Library_Level_Entity in the code
5377         that decides if the static dispatch tables need to be built.
5378         (Wrap_Transient_Declaration): Do not generate a finalization call if
5379         this is a renaming declaration and the renamed object is a component
5380         of a controlled type.
5381
5382 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
5383
5384         * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
5385         In the case where the renamed subprogram is a dereference, call
5386         Force_Evaluation on the prefix.
5387
5388 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
5389             Ed Schonberg  <schonberg@adacore.com>
5390
5391         * exp_ch9.adb (Expand_N_Asynchronous_Select,
5392         Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
5393         comment reformatting.
5394         (Set_Privals): Inherit aliased flag from formal. From code reading.
5395         (Build_Simple_Entry_Call): Out parameters of an access type are passed
5396         by copy and initialized from the actual. This includes entry parameters.
5397         (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
5398         and Ada 2005 models of requeue.
5399         (Null_Statements): Still connsider do-end block null if it contains
5400         Unreferenced and Warnings pragmas.
5401         (Expand_N_Accept_Statement): Do not optimize away null do end if
5402         dispatching policy is other than defaulted.
5403         (Expand_N_Timed_Entry_Call): When the triggering statement is a
5404         dispatching call, manually analyze the delay statement.
5405         (Find_Parameter_Type): Move subprogram to Sem_Util.
5406
5407 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
5408             Javier Miranda  <miranda@adacore.com>
5409
5410         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
5411         _Disp_Requeue occupies dispatch table slot number 15. Move
5412         _Disp_Timed_Select to slot 16.
5413         (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
5414         generate the spec and body of _Disp_Reqeueue.
5415         (Make_DT): Build and initialize the second dispatch table.
5416         Handle initialization of RC_Offset when the parent
5417         is a private type with variable size components.
5418         (Make_Secondary_DT): Complete documentation. Add support to
5419         initialize the second dispatch table.
5420         (Make_Tags): Generate the tag of the second dispatch table.
5421         (Register_Primitive): Add support to register primitives in the
5422         second dispatch table.
5423
5424 2007-12-13  Pascal Obry  <obry@adacore.com>
5425
5426         * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
5427         Windows. This signal is used by gnatmake to kill child processes for
5428         example.
5429
5430 2007-12-13  Javier Miranda  <miranda@adacore.com>
5431
5432         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
5433         support for generic dispatching constructor calls in which we need to
5434         locate the tag of a secondary dispatch table associated with an
5435         interface type to properly dispatch the call.
5436         (Expand_N_Attribute_Reference [case Address],
5437         Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
5438         handling of VM targets.
5439
5440 2007-12-13  Robert Dewar  <dewar@adacore.com>
5441             Ed Schonberg  <schonberg@adacore.com>
5442
5443         * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
5444         assert fail
5445
5446         * ug_words: Add entries for -gnatw.a -gnatw.A
5447
5448         * sem_res.adb (Set_String_Literal_Subtype): If the context of the
5449         literal is a subtype with non-static constraints, use the base type of
5450         the context as the base of the string subtype, to prevent type
5451         mismatches in gigi.
5452         (Resolve_Actuals): If the actual is an entity name, generate a
5453         reference before the actual is resolved and expanded, to prevent
5454         spurious warnings on formals of enclosing protected operations.
5455         (Analyze_Overloaded_Selected_Component): If type of prefix if
5456         class-wide, use visible components of base type.
5457         (Resolve_Selected_Component): Ditto.
5458         (Resolve_Short_Circuit): Detect case of pragma Assert argument
5459         evaluating to False, and issue warning message.
5460
5461         * usage.adb: Add lines for -gnatw.a and -gnatw.A
5462
5463 2007-12-13  Emmanuel Briot  <briot@adacore.com>
5464
5465         * g-calend.ads (No_Time): New constant, to represent an uninitialized
5466         time value
5467
5468         * g-catiio.ads, g-catiio.adb (Value): Added support for more date
5469         formats.
5470         (Month_Name_To_Number): New subprogram
5471
5472         * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
5473         letter to upper-case.
5474
5475 2007-12-13  Robert Dewar  <dewar@adacore.com>
5476             Ed Schonberg  <schonberg@adacore.com>
5477
5478         * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
5479
5480         * layout.adb (Resolve_Attribute, case 'Access): If designated type of
5481         context is a limited view, use non-limited view when available. If the
5482         non-limited view is an unconstrained array, this enforces consistency
5483         requirements in 3.10.2 (27).
5484         (Layout_Type): For an access type whose designated type is a limited
5485         view, examine its declaration to determine if it is an unconstrained
5486         array, and size the access type accordingly.
5487         (Layout_Type): Do not force 32-bits for convention c subprogram
5488         pointers in -gnatdm mode, only if real vms target.
5489
5490         * sem_attr.adb (Analyze_Access_Attribute): Use new flag
5491         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
5492         (Analyze_Access_Attribute,Attribute_Address): Remove checks for
5493         violations of the No_Implicit_Dynamic_Code restriction.
5494         (Resolve_Attribute, case 'Access): If designated type of context is a
5495         limited view, use non-limited view when available. If the non-limited
5496         view is an unconstrained array, this enforces consistency requirements
5497         in 3.10.2 (27).
5498         (Layout_Type): For an access type whose designated type is a limited
5499         view, examine its declaration to determine if it is an unconstrained
5500         array, and size the access type accordingly.
5501
5502 2007-12-13  Vincent Celier  <celier@adacore.com>
5503
5504         * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
5505         object directory of main project does not exist.
5506         On VMS, correctly set then environment variable for the source
5507         directories.
5508
5509 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
5510
5511         * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
5512         set to True this procedure will create the value of type REG_EXPAND_SZ.
5513         It was only possible to create REG_SZ values before.
5514
5515 2007-12-13  Robert Dewar  <dewar@adacore.com>
5516
5517         * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
5518         g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
5519         namet-sp.adb, namet-sp.ads: New files.
5520
5521         * g-speche.adb: Use generic routine in g-spchge
5522
5523         * s-wchcnv.ads, s-wchcnv.adb: 
5524         Minor code cleanup (make formal type consistent with spec)
5525
5526         * namet.adb: Update comments.
5527
5528         * par-endh.adb (Evaluate_End_Entry): Use new
5529         Namet.Sp.Is_Bad_Spelling_Of function
5530
5531         * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
5532
5533         * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
5534         ancestor is an access type initialized with a box, set its type
5535         explicitly, for use in subsequent expansion.
5536         (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
5537         function
5538
5539 2007-12-13  Robert Dewar  <dewar@adacore.com>
5540
5541         * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
5542         access Vstring)
5543
5544 2007-12-13  Robert Dewar  <dewar@adacore.com>
5545
5546         * inline.adb (Back_End_Cannot_Inline): Use new flag
5547         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
5548
5549         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
5550         Has_Pragma_Inline_Always instead.
5551         of obsolete function Is_Always_Inlined
5552         (Build_Body_To_Inline): Same change
5553         (Cannot_Inline): Same change
5554         Do not give warning on exception raise in No_Return function
5555
5556         * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
5557         component has two inconsistent component clauses in the same record
5558         representation clause, favor the message that complains about
5559         duplication rather than inconsistency.
5560         Update comments.
5561         (Record_Representation_Clause): Do not warn on missing component
5562         clauses for inherited components of a type extension.
5563         (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
5564         an overloadable item if it is a pragma that can apply to multiple
5565         overloadable entities (e.g. Inline) because a pragma cannot be on
5566         more than one chain at a time.
5567         (Validate_Unchecked_Conversion): Add code to warn on unchecked
5568         conversion where one of the operands is Ada.Calendar.Time.
5569         (Analyze_Attribute_Definition_Clause): Fix typo in error message.
5570         For now, ignore Component_Size clause on VM targets, as done for
5571         pragma Pack.
5572
5573 2007-12-13  Emmanuel Briot  <briot@adacore.com>
5574             Vincent Celier  <celier@adacore.com>
5575
5576         * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
5577         string
5578         (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
5579         prj.ads
5580         (Hash): Move instantiation of System.HTable.Hash from spec to body
5581         (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
5582         systems, since we do not need to recompute the Name_Id for the canonical
5583         file name.
5584         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
5585         as a parameter. This parameter is in fact always "ada" in all calls, and
5586         we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
5587         while loading a project with 40000 files
5588
5589         * prj-attr.adb: Fix name of attribute Dependency_Driver
5590         Change the kind of indexing for attribute Root
5591
5592         * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
5593         variables already declared, in case constructions.
5594
5595         * prj-env.adb (Initialize): Reset Current_Source_Path_File and
5596         Current_Object_Path_File to No_Path.
5597
5598         * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
5599         ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
5600
5601         * prj-makr.adb: new parameter Current_Dir
5602
5603         * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
5604         Ada sources when language is not Ada.
5605         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
5606         (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
5607         (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
5608         (Locate_Directory): Always resolve links when computing Canonical_Path
5609         (Look_For_Sources): Make sure that Name_Buffer contains the file name
5610         in Source_Files before checking for the presence of a directory
5611         separator.
5612         Optimize calls to Name_Find when on case sensitive systems.
5613         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
5614         as a parameter.
5615         (Prj.Nmsc.Check): new parameter Current_Dir
5616         (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
5617         cannot be empty and the spec suffix cannot be the same as the body or
5618         separate suffix.
5619         (Get_Unit): When a file name can be of several unit kinds (spec, body or
5620         subunit), always consider the longest suffix.
5621         (Check_Configuration): Do not issue an error if there is no compiler
5622         for a language. Just issue a warning and ignore the sources for the
5623         language.
5624         (Check_Library_Attributes): Only check Library_Dir if Library_Name is
5625         not empty.
5626         (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
5627         (Unit_Exceptions): New hash table
5628         (Check_Naming_Schemes): Check if a file that could be a unit because of
5629         the naming scheme is not in fact a source because there is an exception
5630         for the unit.
5631         (Look_For_Sources): Put the unit exceptions in hash table
5632         Unit_Exceptions
5633         (Get_Unit_Exceptions): Give initial value No_Source to local variable
5634         Other_Part to avoid exception when code is compiled with validity
5635         checking.
5636         (Get_Sources_From_File): Check that there is no directory information
5637         in the file names.
5638         (Look_For_Sources): Check that there is no directory information in the
5639         list of file names in Source_Files.
5640         (Look_For_Sources): In multi-language mode, do not allow exception file
5641         names that are excluded.
5642         (Excluded_Sources_Htable): New hash table
5643         (Search_Directories.Check_File): New procedure to simplify
5644         Search_Directories.
5645         (Search_Directories): Do not consider excluded sources
5646         (Look_For_Sources): Populate Excluded_Sources_Htable before calling
5647         Search_Directories.
5648         (Get_Exceptions): Set component Lang_Kind of Source_Data
5649         (Get_Unit_Exceptions): Ditto
5650         (Search_Directories): Ditto
5651
5652         * prj-pars.adb: new parameter Current_Dir
5653
5654         * prj-part.ads, prj-part.adb: 
5655         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
5656         (Opt.Follow_Links_For_Dirs): New flag
5657         (Project_Path_Name_Of): Cache information returned by this routine as
5658         Locate_Regular_File is a costly routine. The code to output a log
5659         information and the effective call to Locate_Regular_File is now
5660         factorized into a routine (code clean-up).
5661         (Parse, Parse_Single_Project): new parameter Current_Dir
5662         When main project file cannot be found, indicate in the error
5663         message the project path that was used to do the search.
5664
5665         * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
5666         (Prj.Proc.Process*): new parameter Current_Dir
5667
5668         * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
5669
5670 2007-12-13  Bob Duff  <duff@adacore.com>
5671
5672         * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
5673         procedure to be called from the back end to check the
5674         No_Implicit_Dynamic_Code restriction.
5675
5676 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
5677
5678         * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
5679         Fixes another case where RTE_Available_Call was ignored instead of being
5680         taken into account.
5681         (Load_Fail): Ditto.
5682
5683         * rtsfind.ads: Add new entries.
5684
5685 2007-12-13  Robert Dewar  <dewar@adacore.com>
5686
5687         * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
5688         g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
5689
5690         * scn.adb: Implement BOM recognition
5691
5692 2007-12-13  Thomas Quinot  <quinot@adacore.com>
5693             Ed Schonberg  <schonberg@adacore.com>
5694
5695         * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
5696         subprogram body that acts as its own spec may not have a non-private
5697         WITH clause on a private sibling.
5698         (Build_Unit_Name): If the parent unit in the name in a with_clause on a
5699         child unit is a renaming, create an implicit with_clause on that
5700         parent, and not on the unit it renames, to prevent visibility errors
5701         in the current unit.
5702
5703 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
5704
5705         * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
5706         renaming declaration, use the Slocs of the formal parameters from the
5707         declaration of the formal subprogram when creating the formal parameter
5708         entities in the renaming declaration.
5709         (Analyze_Formal_Type_Declaration): Change the placement of the error
5710         message concerning illegal known discriminants. It is now posted on the
5711         type rather than on the first discriminant. This change ensures early
5712         error report.
5713         (Freeze_Subprogram_Body): If the generic subprogram is nested within
5714         the package body that contains the instance, do not generate an
5715         out-of-place freeze node for the enclosing package.
5716         (Collect_Previous_Instantiations): Ignore internal instantiations
5717         generated for formal packages.
5718         (Validate_Derived_Type_Instance): Add a check that when a formal
5719         derived type is Known_To_Have_Preelab_Init then the actual type must
5720         have preelaborable initialization, and issue an error when this
5721         condition is violated.
5722
5723 2007-12-13  Robert Dewar  <dewar@adacore.com>
5724
5725         * s-imenne.adb, s-imenne.ads: New files.
5726
5727         * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb, 
5728         s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb, 
5729         s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads, 
5730         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb, 
5731         s-imgwch.ads: New calling sequence for Image routines to avoid sec
5732         stack usage.
5733
5734 2007-12-13  Javier Miranda  <miranda@adacore.com>
5735             Ed Schonberg  <schonberg@adacore.com>
5736
5737         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
5738         generation of spurious error if parent is an interface type; caused
5739         because predefined primitive bodies will be generated later by
5740         Freeze_Record_Type.
5741         (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
5742         flag.
5743         (Derive_Subprograms): Handle derivations of predefined primitives
5744         after all the user-defined primitives to ensure that they are
5745         found in proper order in instantiations.
5746         (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
5747         of Related_Interface to Related_Type.
5748         (Record_Type_Declaration): Minor reordering of calls to decorate the
5749         Tag component because the entity must have set its Ekind attribute
5750         before setting its Is_Tag attribute.
5751         (Analyze_Subtype_Declaration): In the case of subtypes with
5752         Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
5753
5754 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
5755             Ed Schonberg  <schonberg@adacore.com>
5756
5757         * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
5758         statement to the list of contexts where a selected component with a
5759         concurrent tagged type prefix should yield a primitive operation.
5760         (Find_Primitive_Operation): Handle case of class-wide types.
5761         (Analyze_Overloaded_Selected_Component): If type of prefix is
5762         class-wide, use visible components of base type.
5763         (Resolve_Selected_Component): Ditto.
5764         (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
5765         formal of a generic subprogram. find candidate interpretations by
5766         scanning the list of generic formal declarations.:
5767         (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
5768         type from a limited_with_clause, and the full view is available, use it
5769         for subsequent semantic checks.
5770         (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
5771         (Find_Primitive_Operation): New function.
5772         (Analyze_Overloaded_Selected_Component): insert explicit dereference
5773         only once if several interpretations of the prefix yield an access type.
5774         (Try_Object_Operation): Code and comment cleanup.
5775         (Analyze_Selected_Component): Reorder local variables. Minot comment and
5776         code reformatting. When the type of the prefix is tagged concurrent, a
5777         correct interpretation might be available in the primitive and
5778         class-wide operations of the type.
5779
5780 2007-12-13  Robert Dewar  <dewar@adacore.com>
5781             Ed Schonberg  <schonberg@adacore.com>
5782
5783         * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
5784         renaming entry as subprogram using rename-as-body if subprogram spec
5785         frozen.
5786         (Use_One_Type): The clause is legal on an access type whose designated
5787         type has a limited view.
5788         (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
5789         (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
5790         (Analyze_Renamed_Primitive_Operation): new procedure to determine the
5791         operation denoted by a selected component.
5792         (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
5793         it can be an expression, possibly overloaded, that returns a task or
5794         an access to one.
5795
5796 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
5797             Gary Dismukes  <dismukes@adacore.com>
5798
5799         * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
5800         requeue statement is dispatching. Do not emit an error when the name is
5801         not an entry and the context is a dispatching select. Add code to
5802         perform subtype conformance between the formals of the current entry
5803         and those of the target interface primitive.
5804         (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
5805         Timed_Entry_Call): Analyze the triggering statement as the first step of
5806         the processing. If this is a dispatching select, postpone the analysis
5807         of all select statements until the Expander transforms the select. This
5808         approach avoids generating duplicate identifiers after the Expander has
5809         replicated some of the select statements. In case the Expander is
5810         disabled, perform regular analysis.
5811         (Check_Triggering_Statement): New routine.
5812         (Analyze_Requeue): Exclude any interpretations that are not entries when
5813         checking overloaded names in a requeue. Also test type conformance for
5814         matching interpretations rather than requiring subtype conformance at
5815         that point to conform with the RM's resolution rule for requeues.
5816
5817 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
5818
5819         * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
5820         inherited operation is a defaulted tag-indeterminate call, and there is
5821         a statically tagged actual, use the static tag as a controlling actual
5822         for the defaulted actual.
5823
5824 2007-12-13  Geert Bosch  <bosch@adacore.com>
5825
5826         * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
5827         context, so do not call Check_Non_Static_Context.
5828
5829 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
5830
5831         * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
5832         whether formal E is an entity which may have parameters.
5833
5834 2007-12-13  Bob Duff  <duff@adacore.com>
5835             Javier Miranda  <miranda@adacore.com>
5836             Robert Dewar  <dewar@adacore.com>
5837
5838         * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
5839         (Set_Convention): New procedure to set the Convention flag, and in
5840         addition make sure the Favor_Top_Level flag is kept in sync (all
5841         foreign-language conventions require Favor_Top_Level = True).
5842         (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
5843         to Related_Type.
5844         (Collect_Interfaces_Info): Minor update to handle the two secondary
5845         dispatch tables. Update occurrence of Related_Interface to Related_Type.
5846         (Generate_Parent_Ref): Add parameter to specify entity to check
5847         (Is_Preelaborable_Expression): Allow the name of a discriminant to
5848         initialize a component of a type with preelaborable initialization.
5849         This includes the case of a discriminal used in such a context.
5850         (Is_Dependent_Component_Of_Mutable_Object): Take into account the
5851         latest Ada 2005 rules about renaming and 'Access of
5852         discriminant-dependent components.
5853         (Check_Nested_Access): Add handling when there are no enclosing
5854         subprograms (e.g. case of a package body).
5855         (Find_Parameter_Type): Factor routine from several other compiler files.
5856         Remove routine from Find_Overridden_Synchronized_Primitive.
5857
5858 2007-12-13  Thomas Quinot  <quinot@adacore.com>
5859
5860         * sinput.adb (Get_Source_File_Index): Add assertion to guard against
5861         an invalid access to an uninitialized slot in the
5862         Source_File_Index_Table.
5863
5864 2007-12-13  Thomas Quinot  <quinot@adacore.com>
5865
5866         * sinput-l.adb (Load_File): Disable style checks when preprocessing.
5867
5868 2007-12-13  Bob Duff  <duff@adacore.com>
5869
5870         * s-soflin.ads: Apply new pragma Favor_Top_Level to all
5871         access-to-subprogram types in this package.
5872
5873 2007-12-13  Olivier Hainque  <hainque@adacore.com>
5874
5875         * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
5876         with Stack_Grows_Down in System.Parameters. Rename Array_Address into
5877         Stack_Overlay_Address and document that we are using an internal
5878         abstraction.
5879         (Byte_Size, Unsigned_32_Size): Remove, now useless.
5880         (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
5881         consistently throughout the various implementation pieces.
5882
5883         * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
5884         overlay we are using to fill the stack area with patterns.
5885         (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
5886         (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
5887         (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
5888
5889 2007-12-13  Robert Dewar  <dewar@adacore.com>
5890
5891         * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
5892
5893 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
5894
5895         * s-tassta.adb: 
5896         (Create_Task): Take into account tasks created by foreign threads.
5897         Code clean up: use constants instead of hard coded values.
5898
5899 2007-12-13  Robert Dewar  <dewar@adacore.com>
5900
5901         * styleg.adb (Check_Comment): More liberal rules for comment placement
5902
5903 2007-12-13  Olivier Hainque  <hainque@adacore.com>
5904
5905         * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
5906         of Procedure Value instead of Frame Pointer as the invocation
5907         identifier associated with the instruction pointer in each traceback
5908         entry.
5909
5910         * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
5911         TB_Entry_For): Revert back to use of Procedure Value instead of Frame
5912         Pointer as the invocation identifier passed to tbk$symbolize.
5913
5914         * s-traent-vms.ads, s-traent-vms.adb
5915         (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
5916         Procedure Value instead of Frame Pointer as the invocation identifier
5917         passed to tbk$symbolize.
5918
5919 2007-12-13  Robert Dewar  <dewar@adacore.com>
5920
5921         * tbuild.ads, tbuild.adb: 
5922         Fix location of flag for unrecognized pragma message
5923
5924 2007-12-13  Robert Dewar  <dewar@adacore.com>
5925
5926         * treepr.ads, treepr.adb: (pl): implement use of positive value
5927         shorthands
5928
5929 2007-12-13  Robert Dewar  <dewar@adacore.com>
5930
5931         * xeinfo.adb: Remove warnings
5932         * xnmake.adb: Remove warnings
5933         * xsinfo.adb: Remove warnings
5934         * xtreeprs.adb: Remove warnings
5935         * xsnames.adb: Remove warnings
5936
5937         * a-ngcoar.adb: Fix typo.
5938         * s-interr.adb: Minor reformatting
5939         * env.c: Minor reformatting.
5940         * g-bytswa.adb: Minor reformatting.
5941         * g-rannum.ads: Minor documentation improvements
5942         * s-tasinf-mingw.adb: Minor header fix
5943         * a-clrefi.adb: Minor reformatting
5944         * g-sttsne.ads: Minor documentation improvement
5945         * g-sttsne-locking.ads: Minor documentation improvement
5946         * g-soliop-solaris.ads: Minor documentation improvement
5947         * g-soliop-mingw.ads: Minor documentation improvement
5948         * g-soliop.ads: Minor documentation improvement
5949         * exp_aggr.ads: Minor reformatting
5950         * debug.adb: Add documentation for the gprbuild debug flags
5951         * exp_ch2.adb: Use Nkind_In to simplify code throughout
5952         * exp_pakd.adb: Minor reformatting
5953
5954         * g-altive.ads, g-alleve.adb: Remove assertions.
5955         Add comment about minor differences between targets regarding
5956         floating-point operations.
5957
5958         * g-thread.adb: Remove pragma unreferenced.
5959         * lib.ads: Minor reformatting
5960         * par-ch9.adb: Minor reformatting of error messages
5961         * sem_case.adb: Minor reformatting
5962         * s-fileio.adb: Minor reformattinng
5963         * s-vmexta.ads: Minor typo
5964         * vxaddr2line.adb: 
5965         Take into account 'Success' value as per new GNAT warning.
5966
5967 2007-12-13  Vincent Celier  <celier@adacore.com>
5968
5969         * a-direct.adb (Create_Path): Always take '/' as a directory separator,
5970         even on Windows
5971
5972 2007-12-13  Robert Dewar  <dewar@adacore.com>
5973             Bob Duff  <duff@adacore.com>
5974
5975         * gnat_ugn.texi: Dcoument new rules for style check comment alignment
5976         Document that suffixes may be terminations of each others
5977         Add doc for -gnatw.a and -gnatw.A
5978         Document gnatbind -Wx switch
5979         Document BOM recognition
5980         Document pragma Implemented_By_Entry.
5981         Document new units.
5982
5983         * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
5984         Add doc for pragma Unreferenced suppressing no entities referenced msg
5985         Add documentation of GNAT.Directory_Operations.Iteration
5986         Add documentation of GNAT.Random_Numbers
5987         Add documentation for pragma Shared.
5988         Correct documentation for Bit_Order
5989         Add documentation for the Pool_Address attribute.
5990         Fix and improve documentation of pragma machine_attribute.
5991         New pragma Fast_Math
5992         Document BOM recognition
5993
5994         * vms_data.ads: Add entries for -gnatw.a -gnatw.A
5995         Add /Wide_Character_Encoding for binder
5996         Add qualifier for the new gnatpp option --no-separate-loop-then
5997
5998 2007-12-13  Matthew Heaney  <heaney@adacore.com>
5999
6000         * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
6001         which generic formal operations are called for each operation.
6002
6003 2007-12-13  Olivier Hainque  <hainque@adacore.com>
6004
6005         * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
6006         (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
6007
6008 2007-12-13  Emmanuel Briot  <briot@adacore.com>
6009
6010         * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
6011         Reference_Dir unless we actually need it.
6012
6013 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
6014             Tristan Gingold  <gingold@adacore.com>
6015
6016         * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
6017
6018         * s-osprim-vms.adb,
6019         a-calend-vms.adb: Remove pragma warning off and add pragma
6020         unreferenced.
6021
6022 2007-12-13  Robert Dewar  <dewar@adacore.com>
6023
6024         * impunit.adb: Add entries for missing units
6025
6026         * Makefile.rtl: Add new run-time units.
6027
6028         * Make-lang.in:  Update dependencies.
6029
6030 2007-12-13  Bob Duff  <duff@adacore.com>
6031
6032         * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
6033         types, set Can_Use_Internal_Rep appropriately, based on
6034         Always_Compatible_Rep_On_Target.
6035
6036 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
6037             Arnaud Charlet  <charlet@adacore.com>
6038
6039         * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
6040         it to the front end and setting the aamp_target environment variable
6041         to the switch's argument to ensure that gnaampbind and gnaamplink will
6042         take the specified library into account.
6043         (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
6044         target, since the CIL compiler supports an "object" file (.il files).
6045
6046 2007-12-13  Vincent Celier  <celier@adacore.com>
6047
6048         * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
6049         (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
6050
6051 2007-12-13  Geert Bosch  <bosch@adacore.com>
6052
6053         * s-parame-vxworks.adb: 
6054         Update comments to reflect usage of this package by Nucleus.
6055
6056 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
6057
6058         * i-vxwork.ads: Kill new warning on Convention C, since changing the
6059         spec would break code.
6060
6061         * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
6062
6063         * system-vxworks-alpha.ads: Removed.
6064
6065 2007-12-10  Eric Botcazou  <ebotcazou@adacore.com>
6066
6067         * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
6068
6069 2007-12-09  Samuel Tardieu  <sam@rfc1149.net>
6070
6071         PR ada/34366
6072         * sem_ch3.adb (Designates_T): New function.
6073         (Mentions_T): Factor reusable part of the logic into Designates_T.
6074         Consider non-access parameters and access and non-access result.
6075         (Check_Anonymous_Access_Components): Set ekind of anonymous access to
6076         E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
6077
6078         * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
6079
6080 2007-12-07  Ludovic Brenta  <ludovic@ludovic-brenta.org>
6081
6082         PR ada/34361
6083         * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
6084         the new implementation of target-specific calls.
6085
6086 2007-12-07  Olivier Hainque  <hainque@adacore.com>
6087
6088         * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
6089         the designated full view, only follow a second level Full_View link
6090         for Non_Limited_Views of from_limited_with references.
6091         
6092 2007-12-07  Samuel Tardieu  <sam@rfc1149.net>
6093
6094         PR ada/15805
6095         * sem_ch6.adb (Process_Formals): Prevent an access type formal
6096         to be initialized with an access to constant object.
6097
6098         * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
6099         when an access to constant is used to initialize an access
6100         value.
6101
6102         PR ada/21346
6103         * a-direct.adb (Compose): Containing_Directory can be an empty string.
6104
6105 2007-12-07  Olivier Hainque  <hainque@adacore.com>
6106
6107         PR ada/34173
6108         * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
6109         the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
6110         this is from an alignment clause on the GNAT entity.
6111         * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
6112         to distinguish the case where we set it from the type's alignment.
6113         When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
6114         whether this alignment was set from an explicit alignment clause.
6115
6116 2007-12-06  Eric Botcazou  <ebotcazou@adacore.com>
6117
6118         * decl.c (make_packable_type): Revert last change.
6119         (gnat_to_gnu_field): Avoid setting size and position multiple times.
6120         * utils.c (finish_record_type): Retrieve the real name of the type.
6121
6122 2007-12-05  Eric Botcazou  <ebotcazou@adacore.com>
6123
6124         * trans.c (lvalue_required_p): Take base node directly instead
6125         of its parent.  Rename second parameter to 'gnu_type'.
6126         <N_Indexed_Component>: Return 0 if the node isn't the prefix.
6127         <N_Slice>: Likewise.
6128         (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
6129         Adjust calls to lvalue_required_p.
6130
6131 2007-12-05  Samuel Tardieu  <sam@rfc1149.net>
6132
6133         PR ada/21489
6134         * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
6135         parameters of an entry call.
6136
6137 2007-12-03  Robert Dewar  <dewar@adacore.com>
6138             Samuel Tardieu  <sam@rfc1149.net>
6139
6140         PR ada/34287
6141         * sem_util.adb (Safe_To_Capture_Value): Do not capture values
6142         of variables declared in a library-level package.
6143     
6144 2007-12-02  Samuel Tardieu  <sam@rfc1149.net>
6145
6146         * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
6147         of Empty_String'Unchecked_Access.
6148
6149         * Makefile.in: Add support for sh4-linux.
6150
6151         * system-linux-sh4.ads: New file.
6152
6153 2007-12-01  Kostik Belousov  <kostikbel@ukr.net>
6154
6155         PR ada/33722
6156         * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
6157         and its argument must not be free()ed.
6158
6159 2007-11-29  Eric Botcazou  <ebotcazou@adacore.com>
6160
6161         * decl.c (make_packable_type): Retrieve the real name of the type.
6162         (maybe_pad_type): Simplify similar code.
6163
6164 2007-11-28  Samuel Tardieu  <sam@rfc1149.net>
6165
6166         PR ada/15804
6167         * par-ch3.adb (P_Variant_Part): Signal an error when anything other
6168         than an identifier is used after "case" in a variant_part.
6169
6170         PR ada/17318
6171         * par-ch4.adb (Is_Parameterless_Attribute): New map.
6172         (P_Name, Scan_Apostrophe block): Parse left parenthesis following
6173         attribute name or not depending on the new map.
6174
6175         * sem-attr.adb (Analyze_Attribute): Parameterless attributes
6176         returning a string or a type will not be called with improper
6177         arguments.
6178
6179         * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
6180
6181         * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
6182
6183         PR ada/32792
6184         * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
6185         Signal an error when attribute argument is a fixed-point value of
6186         an unknown type.
6187
6188         PR ada/22559
6189         * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
6190         a derived ordinary fixed point type.
6191
6192         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
6193         RM_Size when a Small clause is found.
6194
6195 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
6196
6197         PR 34081/C++
6198         * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
6199         Pass 'false' for the new allocate_struct_function parameter.
6200         * utils.c (build_function_stub): Likewise.
6201
6202 2007-11-25  Richard Guenther  <rguenther@suse.de>
6203
6204         * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
6205         (gnat_poplevel): Likewise.
6206
6207 2007-11-25  Eric Botcazou  <ebotcazou@adacore.com>
6208
6209         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
6210         strict alignment, no alignment clause and a known static size, cap
6211         the type alignment to the greatest power of 2 factor of the size.
6212         (gnat_to_gnu_field): If the field has a component clause, is aliased
6213         or of a type with strict alignment, require that its size be equal to
6214         that of the type.
6215         (validate_size): Use the type size as the minimum size for a type with
6216         strict alignment.
6217
6218 2007-11-23  Samuel Tardieu  <sam@rfc1149.net>
6219
6220         * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
6221         s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
6222         s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
6223         Use 'Access instead of 'Unchecked_Access in second and third
6224         arguments of pthread_sigmask.
6225
6226 2007-11-23  Eric Botcazou  <ebotcazou@adacore.com>
6227
6228         * decl.c (ceil_alignment): New function.
6229         (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
6230         (make_packable_type): Likewise.
6231
6232 2007-11-22  Olivier Hainque  <hainque@adacore.com>
6233
6234         * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
6235         to fit in 80 columns.
6236
6237 2007-11-21  Aurelien Jarno  <aurelien@aurel32.net>
6238
6239         * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
6240         * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
6241
6242 2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
6243
6244         PR ada/34098
6245         * misc.c (gnat_adjust_rli): Delete.
6246         (gnat_init): Do not initialize the translation code here.
6247         Do not call set_lang_adjust_rli.
6248         * trans.c (init_code_table): Make static.
6249         (gnat_init_stmt_group): Delete.
6250         (gigi): Initialize the translation code entirely here.
6251         Emit debug info for the common types here instead of...
6252         * utils.c (gnat_init_decl_processing): ...here.
6253         * gigi.h (init_code_table): Delete.
6254         (gnat_init_stmt_group): Likewise.
6255
6256 2007-11-16  Olivier Hainque  <hainque@adacore.com>
6257
6258         * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
6259         retrieving an allocator return value from a super-aligned address from
6260         here to ...
6261         * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
6262         expect a super-aligned address for a fat or thin pointer.
6263         
6264 2007-11-14  Eric Botcazou  <ebotcazou@adacore.com>
6265
6266         * trans.c (call_to_gnu): Always set the source location on the call
6267         expression.  If the function returns-by-target, also set it on the
6268         address expression.
6269
6270 2007-11-14  Samuel Tardieu  <sam@rfc1149.net>
6271
6272         * adaint.c, init.c, initialize.c, link.c: Remove system-specific
6273         sections of non-supported Interix target.
6274
6275         * s-osinte-interix.ads: Removed.
6276
6277         * i-cstrin.ads (chars_ptr): Make it a C convention type.
6278
6279 2007-11-13  Samuel Tardieu  <sam@rfc1149.net>
6280
6281         * a-tasatt.adb: Add a comment at the beginning of the package
6282         explaining why in general 'Unchecked_Access must be used instead
6283         of 'Access.
6284
6285         * sem_prag.adb (Process_Convention): Move the test for the
6286         entity on which the Convention pragma applies down to also
6287         forbid pragma Convention on enumeration literals reached
6288         through renamings.
6289
6290 2007-11-10  Samuel Tardieu  <sam@rfc1149.net>
6291
6292         * a-tasatt.adb: Revert previous change for this file as it will
6293         generate an error when this package is instantiated from a
6294         local context.
6295
6296 2007-11-07  Samuel Tardieu  <sam@rfc1149.net>
6297
6298         * a-tasatt.adb: Type Wrapper should be declared in comment instead
6299         of already declared type Node_Access.
6300         Use 'Access instead of 'Unchecked_Access when applicable. Local
6301         lifetime is the one of the package.
6302         (Set_Value): W is allocated on the heap.
6303
6304         * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
6305         applicable.
6306         (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
6307         access type.
6308         (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
6309         access type.
6310
6311         * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
6312         applicable.
6313         (elaboration code): Timer_Queue lifetime is the one of the
6314         package.
6315
6316         * tracebak.c (i386 alternative): Remove useless comparaison
6317         which is always false; LOWEST_ADDRESS is 0 and is never greater
6318         than an unsigned integer.
6319
6320         * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
6321         embedded check for "Ada_Version >= Ada_05".
6322
6323 2007-11-07  Olivier Hainque  <hainque@adacore.com>
6324
6325         * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
6326         craft and expand comment.
6327
6328 2007-11-01  Eric Botcazou  <ebotcazou@adacore.com>
6329
6330         * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
6331
6332 2007-10-23  Eric Botcazou  <ebotcazou@adacore.com>
6333
6334         * misc.c (gnat_handle_option): Replace call to abort with
6335         call to gcc_unreachable.
6336         (gnat_init): Likewise.
6337         (gnat_expand_expr): Likewise.
6338         (fp_prec_to_size): Likewise.
6339         (fp_size_to_prec): Likewise.
6340
6341 2007-10-23  Richard Guenther  <rguenther@suse.de>
6342
6343         PR bootstrap/33608
6344         * tracebak.c: #undef abort after including system.h.
6345
6346 2007-10-20  Danny Smith  <dannysmith@users.sourceforge.net>
6347
6348         * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
6349         s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
6350         for win32 targets.
6351         (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
6352
6353 2007-10-15  Eric Botcazou  <ebotcazou@adacore.com>
6354
6355         * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
6356         Set the protection status of the guard page based on the value of On.
6357
6358         * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
6359
6360         * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
6361         (Exit_Task): Pass False to Hide_Yellow_Zone.
6362
6363 2007-10-15  Robert Dewar  <dewar@adacore.com>
6364
6365         * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
6366         s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
6367         a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb, 
6368         checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb, 
6369         freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb, 
6370         gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb, 
6371         mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb, 
6372         prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb, 
6373         sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb, 
6374         s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
6375         uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb, 
6376         a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb, 
6377         a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb, 
6378         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb, 
6379         a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb, 
6380         a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
6381         Minor reformatting.
6382         Add Unreferenced and Warnings (Off) pragmas for cases of
6383         variables modified calls where they are IN OUT or OUT parameters and
6384         the resulting values are not subsequently referenced. In a few cases,
6385         we also remove redundant code found by the new warnings.
6386
6387         * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads, 
6388         sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
6389         sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
6390         sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
6391         warning controlled by -gnatw.o that warns on cases of out parameter
6392         values being ignored.
6393
6394 2007-10-15  Geert Bosch  <bosch@adacore.com>
6395
6396         * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
6397
6398         * expect.c: Initial port to arm-mentor-nucleus.
6399         Use kill for __gnat_kill() on VMS.
6400
6401 2007-10-15  Emmanuel Briot  <briot@adacore.com>
6402
6403         * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
6404         value.
6405         (Xref_Record): Change type for Line, since in the case of a reference to
6406         a predefined entity (as happens for array index types), the line is set
6407         to 0.
6408         Add support for parsing multiple array index types info, or
6409         multiple inherited interfaces info. This information cannot be stored
6410         in Xref_Entity_Record, which only supports a single instance of Tref_*,
6411         and is therefore stored in the list of references instead. It has a
6412         special treatement later on in tools that use this information.
6413
6414 2007-10-15  Tristan Gingold  <gingold@adacore.com>
6415
6416         * debug.adb: Document use of -gnatd.a and -gnatd.I
6417
6418         * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
6419
6420 2007-10-15  Javier Miranda  <miranda@adacore.com>
6421
6422         * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
6423         Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
6424         care of access to class-wide interface types plus removal of bizarre
6425         conversion of tagged object to access type (reported by Gary
6426         Dismukes). After this patch there is no need to perform any
6427         additional management on these nodes in Expand_Interface_Actuals.
6428
6429         * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
6430         that handles use of 'Access and 'Unchecked_Access applied to
6431         actuals covering interface types. Such code is now
6432         centralized in Expand_N_Attribute_Reference.
6433
6434 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
6435
6436         * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
6437         of tagged types whose ultimate ancestor is a CPP type.
6438         (Freeze_Array_Type): For a packed array type, generate an initialization
6439         procedure if the type is public, to handle properly a client that
6440         specifies Normalize_Scalars.
6441
6442 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
6443
6444         * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
6445         inside a generic body, retrieve the full view of the entry family
6446         discrete subtype if available.
6447
6448 2007-10-15  Thomas Quinot  <quinot@adacore.com>
6449
6450         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
6451         attempt to generate stubs for hidden primitive operations.
6452
6453 2007-10-15  Vincent Celier  <celier@adacore.com>
6454
6455         * mlib-tgt-specific.adb (Support_For_Libraries): New function,
6456         returning None, used when there is no platform specific body for
6457         MLib.Tgt.Specific.
6458
6459 2007-10-15  Bob Duff  <duff@adacore.com>
6460
6461         * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
6462         (passing'Unrestricted_Access of nested subprograms to Sort) with use of
6463         the generic Heap_Sort_G, in order to avoid trampolines.
6464
6465 2007-10-15  Vasiliy Fofanov  <fofanov@adacore.com>
6466             Jose Ruiz  <ruiz@adacore.com>
6467
6468         * vx_stack_info.c: New file.
6469
6470         * i-forbla-unimplemented.ads: New file.
6471
6472         * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
6473         for unsupported configurations; use it on VMS targets instead of the
6474         real one.
6475         (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
6476         vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
6477         used by VxWorks targets to have access to task-specific data and be
6478         able to extract the stack boundaries for stack checking.
6479         Use system-vms-ia64.ads on ivms.
6480
6481         * Make-lang.in: Update dependencies.
6482
6483         * sysdep.c (__gnat_get_stack_info): Move to a standalone file
6484         (vx_stack_info.c).
6485
6486 2007-10-15  Vincent Celier  <celier@adacore.com>
6487
6488         * snames.adb, snames.ads: Add new standard name runtime_library_dir
6489
6490         * prj.ads (Language_Config): Add new component Runtime_Library_Dir
6491
6492         * prj-attr.adb: Add project level attribute Runtime_Library_Dir
6493
6494         * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
6495         the source is unknown.
6496
6497         * prj-ext.adb: Spelling error fix
6498
6499         * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
6500         95 reserved word in its name.
6501         (Process_Project_Level_Array_Attributes): Process new attribute
6502         Runtime_Library_Dir.
6503
6504         * prj-part.adb (Parse_Single_Project): Do not check the name of the
6505         config project against the user project names.
6506
6507         * prj-proc.adb (Expression): In multi-language mode, indexes that do
6508         not include a dot are always case insensitive.
6509         (Process_Declarative_Items): Ditto
6510         (Process_Project_Tree_Phase_1): Set Success to False in case an error is
6511         detected.
6512
6513         * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
6514         True, compare both indexes in lower case.
6515
6516 2007-10-15  Robert Dewar  <dewar@adacore.com>
6517
6518         * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
6519
6520 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
6521
6522         * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
6523         association for an access component, add an association with null as
6524         the expression. Remove testing for array subtypes and the setting in
6525         that case of Ctyp to the array component type, which prevented proper
6526         inclusion of an association for null-initialized arrays. Collapse
6527         condition that tests for array subtypes into just a test of
6528         Is_Partially_Initialized_Type (which already covers arrays anyway).
6529
6530 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
6531
6532         * sem_ch12.adb: Minor code reformatting.
6533         (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
6534         find the parent package which may have been hidden by local
6535         declarations.
6536
6537 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
6538
6539         * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
6540         flag of derived concurrent types, taking into account the flag setting
6541         on the parent subtype and any new set of discriminants.
6542
6543 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
6544
6545         * sem_ch4.adb: Minor code and comment reformatting.
6546         (Analyze_Allocator): When the designated type of an unconstrained
6547         allocator is a record with unknown discriminants or an array with
6548         unknown range bounds, emit a detailed error message depending on the
6549         compilation mode and whether the designated type is limited.
6550
6551 2007-10-15  Tristan Gingold  <gingold@adacore.com>
6552
6553         * system-vms-ia64.ads: New file.
6554
6555         * system-vms_64.ads: Minor comment fix.
6556
6557 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
6558
6559         * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
6560         body generated for a function with a controlling result that is a null
6561         extension, discard the generated body in favor of the current explicit
6562         one.
6563
6564 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
6565
6566         * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
6567         examining its original form, to handle properly operator calls that
6568         have been rewritten.
6569
6570 2007-10-15  Olivier Hainque  <hainque@adacore.com>
6571
6572         * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
6573         instead of a procedure value in each traceback entry.
6574
6575         * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
6576         instead of procedure value to TBK$SYMBOLIZE.
6577
6578         * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
6579         field.
6580         (TB_Entry_For): Account for the PV/FP renaming.
6581
6582         * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
6583         add comment.
6584         (Null_TB_Entry): Account for change of component name.
6585         (PV_For): Rename as FP_For.
6586
6587 2007-10-15  Tristan Gingold  <gingold@adacore.com>
6588
6589         * trans.c (gnat_to_gnu): Remove the padding structure more often.
6590         This optimize assignment to over-aligned record.
6591
6592 2007-10-15  Emmanuel Briot  <briot@adacore.com>
6593
6594         * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
6595         interfaces.
6596
6597         * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
6598         type, for dispatching calls.
6599
6600 2007-10-15  Vincent Celier  <celier@adacore.com>
6601             Robert Dewar  <dewar@adacore.com>
6602
6603         * gnat_ugn.texi: Add documentation for switches --version and --help
6604         for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
6605         gnatxref, gnatfind, gnatls, and gnatclean.
6606         Document -gnatw.o.
6607         Mention attribute Excluded_Source_Dirs
6608         Replace obsolescent attribute Locally_Removed_Files with attribute
6609         Excluded_Source_Files.
6610         Improve documentation of -u (gnatbind)
6611         Document how to do reliable stack checking for the environmental task
6612         on iVMS.
6613
6614         * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
6615         Document attribute Excluded_Source_Files and indicate that attribute
6616         Locally_Removed_Files is obsolescent.
6617
6618 2007-10-15  Thomas Quinot  <quinot@adacore.com>
6619
6620         * g-soccon-vms.ads: Fix value of MSG_WAITALL.
6621
6622         * gen-soccon.c: 
6623         Update documentation to note that OpenVMS 8.3 or later must be used
6624         to generate g-soccon-vms.ads.
6625
6626         * atree.adb: Add ??? comment
6627
6628         * exp_util.adb: Minor reformatting.
6629         Add ??? comment in Kill_Dead_Code.
6630
6631 2007-10-15  Robert Dewar  <dewar@adacore.com>
6632
6633         * errout.ads: Comment clarification
6634
6635         * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
6636         (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
6637
6638         * lib.ads: Comment update
6639
6640         * init.c: Minor reformatting.
6641
6642         * sem_attr.adb: Minor formatting
6643
6644         * osint-b.ads: Minor reformatting
6645
6646         * sem_ch9.adb: Implement -gnatd.I switch
6647
6648         * g-comlin.adb: (Start): Fix handling of empty command line.
6649
6650         * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
6651         even when -rules follows the -cargs section.
6652
6653 2007-10-08  Ollie Wild  <aaw@google.com>
6654
6655         * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
6656         gnat_return_tree.
6657         (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
6658         gnat_return_tree.
6659         (gnat_eh_runtime_type): Removed.
6660         (gnat_return_tree): New function.
6661
6662 2007-10-08  Ben Elliston  <bje@au.ibm.com>
6663
6664         PR ada/33454
6665         Revert:
6666         2007-08-31  Ben Elliston  <bje@au.ibm.com>
6667
6668         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
6669         when compiling for powerpc64-*-linux.
6670         * system-linux-ppc64.ads: New file.
6671
6672 2007-09-27  Eric Botcazou  <ebotcazou@adacore.com>
6673
6674         Mapped location support
6675         * back_end.adb (Call_Back_End): Pass information about source
6676         files instead of units to gigi.
6677         * gigi.h (struct File_Info_Type): New.
6678         (gigi): Rename and change type of number_units parameter, change
6679         type of file_info_ptr parameter.
6680         * trans.c (number_files): New global variable.
6681         (gigi): Rename and change type of number_units parameter, change
6682         type of file_info_ptr parameter.
6683         If mapped location support is enabled, create the isomorphic mapping
6684         between source files and line maps.
6685         (Sloc_to_locus): If mapped location support is enabled, translate
6686         source location into mapped location.
6687         (annotate_with_node): Rename into set_expr_location_from_node.
6688         Call set_expr_location instead of annotate_with_locus.
6689         (Pragma_to_gnu): Adjust for above change.
6690         (Loop_Statement_to_gnu): Likewise.
6691         (call_to_gnu): Likewise.
6692         (Handled_Sequence_Of_Statements_to_gnu): Likewise.
6693         (gnat_to_gnu): Likewise.
6694         (add_stmt_with_node): Likewise.
6695         (add_cleanup): Likewise.
6696         * utils.c (gnat_init_decl_processing): Do not set input_line.
6697
6698 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
6699
6700         * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
6701         (Applicable_Use): Emit a warning when a package tries to use itself.
6702         (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
6703         is already in use or the package where it is declared is in use or is
6704         declared in the current package.
6705         (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
6706
6707         * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
6708         s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
6709         s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
6710
6711 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
6712
6713         * a-calend-vms.adb, a-calend.adb: 
6714         Add a section on leap seconds control along with two entities used to
6715         enable and disable leap seconds support. The array Leap_Second_Times is
6716         now constant and contains hard time values pre-generated. Remove
6717         all elaboration code used to populate the table of leap seconds.
6718
6719         * bindgen.adb: 
6720         Add entity Leap_Seconds_Support to the list of global run-time variables
6721         along with a comment on its usage and values.
6722         (Gen_Adainit_Ada): Add code to generate the declaration and import of
6723         Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
6724         or one (enabled) depending on the presence of binder switch "-y".
6725         (Gen_Adainit_C): Add code to generate the declaration of external int
6726         __gl_leap_seconds_support. Set is value to zero (disabled) or one
6727         (enabled) depending on the presence of binder switch "-y".
6728
6729         * init.c: Add __gl_leap_seconds_support to the list of global values
6730         computed by the binder.
6731
6732 2007-09-26  Jerome Guitton  <guitton@adacore.com>
6733
6734         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
6735         s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
6736          s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
6737         s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
6738
6739         * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
6740
6741         * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
6742         function which can be called by the debugger to interrupt the tasks of
6743         an Ada application asynchronously, as needed on VxWorks.
6744         (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
6745
6746         * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
6747         renamed from Stop_All_Tasks. Update comments.
6748         (Stop_All_tasks): New function declaration.
6749
6750 2007-09-26  Olivier Hainque  <hainque@adacore.com>
6751
6752         * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
6753         #include <utime.h> and #define GCC_RESOURCE_H before
6754         #include <sys/wait.h>.
6755         Add more protections in __gnat_translate_vms.
6756
6757         * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
6758         #include <sys/wait.h>.
6759
6760 2007-09-26  Thomas Quinot  <quinot@adacore.com>
6761             Sergey Rybin  <rybin@adacore.com>
6762
6763         * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
6764
6765         * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
6766         where it belongs.
6767
6768         * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
6769
6770         * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
6771         where it belongs.
6772
6773         * sem_dist.ads: Minor comment fix
6774
6775         * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
6776
6777 2007-09-26  Javier Miranda  <miranda@adacore.com>
6778             Eric Botcazou  <ebotcazou@adacore.com>
6779
6780         * a-tags.adb: 
6781         (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
6782          indirection added to the HT_Link component of the TSD. This is required
6783          to statically allocate the TSD.
6784
6785         * a-tags.ads: 
6786         Minor reordering of the declarations in the private part. Required to
6787         add a level of indirection to the contents of the TSD component HT_Link.
6788         This is required to statically allocate the TSD.
6789
6790         * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
6791         Is_Statically_Allocated set from constant objects.
6792         Do not make exported constants created by the compiler volatile.
6793         (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
6794         as read-only.
6795
6796         * trans.c (Identifier_to_gnu): For constants, unshare initializers
6797         before returning them.
6798
6799         * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
6800         public part of the package.
6801         (Make_DT): Move HT_Link component out of the TSD record. For this
6802         purpose Make_DT now declares a separate object that stores the
6803         HT_Link value, and initializes the TSD component with the address
6804         of this new object. The addition of this level of indirection is
6805         required to statically allocate the TSD because the TSD cannot
6806         have variable components.
6807         (Expand_Interface_Conversion): Improve the expanded code.
6808         (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
6809
6810         * sem_disp.adb (Check_Dispatching_Operation): In case of a body
6811         declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
6812         if we are building static dispatch tables then we must not generate
6813         extra code to register the primitive because the dispatch table will
6814         be built at the end of the library package; otherwise we notify that
6815         we cannot build the static dispatch table.
6816
6817 2007-09-26  Robert Dewar  <dewar@adacore.com>
6818
6819         * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
6820         overlays.
6821
6822         * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
6823         (Analyze_Record_Representation_Clause): Suppress junk warning for
6824         missing component clause.
6825         (Analyze_Attribute_Definition_Clause, case Address): Apply the special
6826         tests for controlled type overlay to composites with controlled
6827         components.
6828         (Analyze_Record_Representation_Clause): Add reference for component name
6829
6830 2007-09-26  Javier Miranda  <miranda@adacore.com>
6831             Gary Dismukes  <dismukes@adacore.com>
6832
6833         * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
6834         for thunks associated with interface types.
6835
6836         * einfo.ads: Improve documentatation of Is_Internal
6837         (Is_Thunk): New attribute applicable to subprograms. True for thunks
6838         associated with interface types.
6839         Extensive comment fixes regarding flags that appear in all entities. The
6840         documentation is now consistent for all such flags (there were a number
6841         of errors in the documentation in this regard).
6842
6843         * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
6844
6845         * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
6846         of these procedures are passed a function call that already has
6847         build-in-place actuals (testing new flag
6848         Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
6849         the case where processing continues.
6850         (Expand_Call): If the call is generated from a thunk body then we
6851         propagate the extra actuals associated with the accessibility
6852         level of the access type actuals.
6853
6854         * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
6855         of each extra formal of a protected operation to reference the
6856         corresponding extra formal of the subprogram denoted by the
6857         operation's Protected_Body_Subprogram.
6858         
6859         * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
6860         N_Function_Call nodes.
6861
6862 2007-09-26  Robert Dewar  <dewar@adacore.com>
6863
6864         * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
6865
6866         * debug.adb: Add d.s flag.
6867
6868 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
6869
6870         * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
6871         debug variable so that it won't be initialized when pragma
6872         Initialize_Scalars is in effect.
6873
6874 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
6875
6876         * freeze.adb (Freeze_Entity): Remove check for preelaborable
6877         initialization of a full view. This is moved to
6878         Analyze_Package_Specification.
6879
6880         * sem_ch7.adb (Analyze_Package_Specification): Add check for
6881         preelaborable initialization of a full view in entity loop.
6882         (Uninstall_Declarations): If entity is a use-visible compilation unit,
6883         its child units are use-visible only if they are visible child units.
6884
6885         * sem_util.adb (Is_Preelaborable_Expression): New function to determine
6886         whether an expression can be used within a type declaration that
6887         requires preelaborable init.
6888         (Check_Components): Replace inline code that does partial checking for
6889         preelaborable default expressions with call to
6890         Is_Preelaborable_Expression.
6891         (Has_Preelaborable_Initialization): In the case of a generic actual
6892         subtype, (that is, Is_Generic_Actual is True), return the result of
6893         applying Has_Preelaborable_Initialization to the generic actual's base
6894         type.
6895
6896 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
6897
6898         * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
6899         call to Jan_1_Day _Of_Week to optimize its performance.
6900         (Is_Leap): Move the routine to the scope of Week_In_Year.
6901         (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
6902         weekday on which January 1 falls of Year - 1 and Year + 1. This function
6903         avoids calling Time_Of and Split, thus making it more efficent.
6904         (Week_In_Year): Reimplemented in oder to follow ISO 8601.
6905
6906         * g-calend.ads (Week_In_Year): Change comment to reflect new
6907         implementation.
6908
6909 2007-09-26  Emmanuel Briot  <briot@adacore.com>
6910
6911         * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
6912         Command_Line): New types
6913         (Define_Alias, Define_Prefix, Free): New subprograms. These provide
6914         support for defining how switches can be grouped on a command line (as
6915         is the case for -gnatw... for GNAT), and how simple switches can be
6916         used as aliases for more complex switches (-gnatwa is same as
6917         -gnatwbcef...)
6918         (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
6919         (Start, Current_*): New subprograms
6920         Added support for parsing an array of strings in addition to the real
6921         command line.
6922         (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
6923          be moved from the body to the private part of the spec.
6924         (*): All subprograms now have an extra parameter with default value to
6925         specify which parser should be used. For backward compatibility, it
6926         defaults to parsing the command line of the application. They were also
6927         modified to properly handle cases where each of the argument does not
6928         start at index 1 (which is always true for Ada.Command_Line, but not
6929         when processing any Argument_List).
6930         (Free): New subprogram
6931         (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
6932         Argument): New subprograms
6933         (Switch_Parameter_Type): New enum, which clarifies the code. The extra
6934         special characters like ':', '=',... are now handled in a single place,
6935         which makes the code more extensible eventually.
6936         (Getopt, Full_Switch): When the switch was returned as part of the
6937         special character '*', make sure it is prepended by the switch character
6938         ('-' in general), so that the application knows whether "foo" or "-foo"
6939         was specified on the command line.
6940
6941 2007-09-26  Florian Villoing  <villoing@adacore.com>
6942
6943         * g-dirope.adb (Remove_Dir): In case we are removing directories
6944         recursively, make sure that if an exception is raised during the
6945         processing, the current working directory is reset to its initial
6946         value before propagating the exception.
6947
6948 2007-09-26  Vincent Celier  <celier@adacore.com>
6949
6950         * gnatbind.adb: If there are several ALI files specified and there is
6951         a main program to bind, the first ALI is expected to contain the main
6952         subprogram and the names of the binder generated files will be derived
6953         from the first ALI file name.
6954         (Gnatbind): Fix insertion character in invocation of Error_Msg
6955
6956 2007-09-26  Vincent Celier  <celier@adacore.com>
6957
6958         * gnatcmd.adb (Check_Files): Do not include sources that have been
6959         removed by attributes Exclude_Source_Files or Locally_Removed_Files.
6960
6961 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
6962
6963         * lib-xref.ads, lib-xref.adb: The entry for array types now carries
6964         information about each of its index types, following the type
6965         reference for its component type.
6966
6967 2007-09-26  Vincent Celier  <celier@adacore.com>
6968
6969         * make.adb: (Kill): New procedure (__gnat_kill imported)
6970         (Running_Compile, Outstanding_Compiles): Global variables that
6971         were previously local to procedure Compile_Sources.
6972         (Sigint_Intercepted): Send signal SIGINT to all outstanding
6973         compilation processes.
6974
6975         (Gnatmake): If project files are used, create the mapping of all the
6976         sources, so that the correct paths will be found.
6977
6978         * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
6979
6980 2007-09-26  Vincent Celier  <celier@adacore.com>
6981
6982         * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
6983
6984         * prj.ads, prj.adb (Default_Language): Remove function, no longer used
6985         Replace components Compiler_Min_Options and Binder_Min_Options with
6986         Compiler_Required_Switches and Binder_Required_Switches in record
6987         Language_Config.
6988         Remove components Default_Language and Config in Project_Tree_Data,
6989         no longer used.
6990
6991         * prj-attr.adb: New attributes Required_Switches (<language>) in
6992         packages Compiler and Binder.
6993
6994         * prj-nmsc.adb: Major rewrite of the processing of configuration
6995         attributes for gprbuild. No impact on GNAT tools.
6996
6997         * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
6998         process configuration attributes: this is done in Prj.Nmsc.Check.
6999         (Recursive_Process): Make a full copy of packages inherited from project
7000         being extended, instead of a shallow copy.
7001         (Process_Project_Tree_Phase_1): New procedure
7002         (Process_Project_Tree_Phase_1): New procedure
7003         (Process): Implementation now uses the two new procedures
7004
7005         * prj-util.adb (Executable_Of): Get the suffix and the default suffix
7006         from the project config, not the tree config that no longer exists.
7007
7008 2007-09-26  Vincent Celier  <celier@adacore.com>
7009
7010         * Make-lang.in: Update dependencies..
7011
7012 2007-09-26  Vincent Celier  <celier@adacore.com>
7013
7014         * osint.adb, osint.ads: Minor reformatting
7015
7016         * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
7017
7018 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
7019
7020         * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
7021         message to cite use of <> in aggregate component associations rather
7022         than wrongly indicating use of limited aggregates.
7023
7024 2007-09-26  Robert Dewar  <dewar@adacore.com>
7025
7026         * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
7027         Address_Taken.
7028
7029 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
7030
7031         * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
7032         ancestor of the derived type, the operations are inherited from the
7033         primary dispatch table of the parent.
7034         (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
7035         when the context is an explicit type conversion.
7036
7037 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
7038
7039         * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
7040         rule for qualified expressions properly, to detect improper conversions
7041         and resolve some cases of overloading.
7042
7043 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
7044
7045         * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
7046         proper kind of reference to the primitive operation, for better source
7047         navigation.
7048         (Valid_Conversion): A tagged conversion is legal if both operands are
7049         tagged.
7050
7051 2007-09-26  Robert Dewar  <dewar@adacore.com>
7052
7053         * sem_warn.adb (Check_References): Catch more cases of unreferenced
7054         packages.
7055
7056 2007-09-26  Vincent Celier  <celier@adacore.com>
7057
7058         * snames.adb, snames.ads: Change Include_Option to Include_Switches
7059
7060 2007-09-26  Robert Dewar  <dewar@adacore.com>
7061
7062         * s-wchstw.adb: provide messages for run time unit exceptions
7063
7064         * a-witeio.adb: Minor reformatting
7065
7066         * exp_ch13.adb: Minor reformatting
7067
7068 2007-09-26  Sergey Rybin  <rybin@adacore.com>
7069
7070         * vms_data.ads: Revise gnatmetric qualifiers.
7071         Add qualified for the new gnatbind option '-y'
7072
7073         * gnat_ugn.texi: Revise the gnatmetric section.
7074         Add entry for new gnatbind option '-y'.
7075
7076         * gnat_rm.texi: Minor spelling correction.
7077         Document restriction on overlaying controlled types
7078
7079 2007-09-26  Vincent Celier  <celier@adacore.com>
7080
7081         * makegpr.adb (Link_Executables): Do not fail when the root project has
7082         no sources, but is an extending project.
7083
7084 2007-09-25  Eric Botcazou  <ebotcazou@adacore.com>
7085
7086         * trans.c: Fix misplaced #define.
7087
7088 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
7089
7090         * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
7091         the TYPE_REF_CAN_ALIAS_ALL flag to the result.
7092
7093 2007-09-21  Olivier Hainque  <hainque@adacore.com>
7094
7095         * utils.c (type_for_nonaliased_component_p): Return false for
7096         all AGGREGATE_TYPEs.
7097
7098 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
7099
7100         * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
7101         object covered by 13.3(19) volatile.
7102
7103 2007-09-12  Eric Botcazou  <ebotcazou@adacore.com>
7104
7105         PR ada/26797
7106         PR ada/32407
7107         * utils.c (unchecked_convert): Use a subtype as the intermediate type
7108         in the special VIEW_CONVERT_EXPR case.
7109
7110 2007-09-12  Robert Dewar  <dewar@adacore.com>
7111
7112         * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
7113
7114         * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
7115         lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
7116         s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
7117         s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
7118         s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
7119         s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
7120         s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
7121         s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
7122         a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads, 
7123         g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads, 
7124         s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb, 
7125         s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb, 
7126         snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads, 
7127         s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads, 
7128         s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads, 
7129         s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads, 
7130         s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
7131         pragma Compiler_Unit and adds it to relevant library units.
7132
7133 2007-09-12  Ed Schonberg  <schonberg@adacore.com>
7134
7135         * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
7136         a box need not correspond to any component.
7137
7138 2007-09-12  Robert Dewar  <dewar@adacore.com>
7139
7140         * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
7141         the tasking version of the Ada run time when foreign threads are
7142         present and there are no explicit Ada tasks or tasking constructs.
7143
7144         * gnat_rm.texi: Clarify documentation of GNAT.Threads.
7145
7146 2007-09-12  Hristian Kirtchev  <kirtchev@adacore.com>
7147
7148         * bindusg.adb (Display): Correct comment for switch -X. Add a line for
7149         the usage of switch -y.
7150
7151         * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
7152         when switch -y is present.
7153
7154         * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
7155         leap seconds in Ada.Calendar and its children.
7156
7157 2007-09-12  Jose Ruiz  <ruiz@adacore.com>
7158
7159         * a-extiti.ads (Timer): The discriminant is a "not null access
7160         constant" in the Reference Manual.
7161         (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
7162
7163 2007-09-12  Robert Dewar  <dewar@adacore.com>
7164
7165         * a-swuwha.adb: Remove junk RM header
7166
7167 2007-09-12  Vincent Celier  <celier@adacore.com>
7168
7169         * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
7170         indicator
7171
7172         * g-bytswa.ads: Minor reformatting
7173
7174 2007-09-12  Thomas Quinot  <quinot@adacore.com>
7175
7176         * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads: 
7177         Add new constant Thread_Blocking_IO, always True by default, set False
7178         on a per-runtime basis.
7179         (Need_Netdb_Buffer): New constant.
7180
7181 2007-09-12  Arnaud Charlet  <charlet@adacore.com>
7182
7183         * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
7184         Added renames for corresponding functions in System.Partition_Interface.
7185
7186 2007-09-12  Doug Rupp  <rupp@adacore.com>
7187
7188         * Makefile.in: Remove VMS specific System.CRTL packages which are no
7189         longer needed.
7190
7191         * s-crtl-vms64.ads: Removed.
7192
7193 2007-09-12  Olivier Hainque  <hainque@adacore.com>
7194
7195         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
7196         with discriminant constraints, generalize the code for BIT_FIELDs
7197         to PACKED fields of constant size and propagate DECL_PACKED.
7198
7199 2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
7200
7201         * decl.c (array_type_has_nonaliased_component): New predicate.
7202         (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
7203         set the TYPE_NONALIASED_COMPONENT flag on the type.
7204         <E_Array_Subtype>: Likewise.
7205         * gigi.h (type_for_nonaliased_component_p): Declare.
7206         * utils.c (type_for_nonaliased_component_p): New predicate.
7207         (create_field_decl): Invoke the above predicate to set the
7208         DECL_NONADDRESSABLE_P flag on the field.
7209
7210 2007-09-11  Javier Miranda  <miranda@adacore.com>
7211
7212         * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
7213         in library level record type entities if we are generating statically
7214         allocated dispatch tables.
7215
7216         * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
7217         importing/exporting the _tag declaration by new code
7218         importing/exporting the dispatch table wrapper. This change allows us
7219         to statically allocate of the TSD.
7220         (Make_DT.Export_DT): New procedure.
7221         (Build_Static_DT): New function.
7222         (Has_DT): New function.
7223
7224         * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
7225         True_Constant and Current_Value. Required to statically
7226         allocate the dispatch tables.
7227         (Check_Allocator): Make function iterative instead of recursive.
7228         Also return inner allocator node, when present, so that we do not have
7229         to look for that node again in the caller.
7230
7231 2007-09-11  Jan Hubicka  <jh@suse.cz>
7232
7233         * misc.c (gnat_expand_body): Kill.
7234         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
7235
7236 2007-09-10  Robert Dewar  <dewar@adacore.com>
7237
7238         * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
7239         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
7240         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
7241         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
7242         ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
7243         bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
7244         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
7245         butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
7246         comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
7247         elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
7248         err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
7249         exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
7250         exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
7251         exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
7252         exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
7253         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
7254         exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
7255         exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
7256         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
7257         exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
7258         exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
7259         exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
7260         fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
7261         get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
7262         gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
7263         gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
7264         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
7265         gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
7266         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
7267         gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
7268         inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
7269         lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
7270         lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
7271         make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
7272         mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
7273         mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
7274         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
7275         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
7276         osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
7277         osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
7278         par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
7279         par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
7280         par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
7281         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
7282         par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
7283         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
7284         prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
7285         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
7286         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
7287         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
7288         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
7289         prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
7290         rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
7291         scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
7292         sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
7293         sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
7294         sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
7295         sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
7296         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
7297         sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
7298         sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
7299         sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
7300         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
7301         sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
7302         sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
7303         sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
7304         sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
7305         sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
7306         stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
7307         styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
7308         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
7309         switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
7310         tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
7311         treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
7312         types.h, uintp.h, urealp.h, usage.adb, usage.ads,
7313         validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
7314         xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
7315         xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
7316         gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
7317         mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
7318         symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
7319         mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
7320         mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
7321
7322 2007-09-10  Emmanuel Briot  <briot@adacore.com>
7323
7324         * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
7325         classes ("[]").
7326
7327 2007-09-10  Vasiliy Fofanov  <fofanov@adacore.com>
7328
7329         * adaint.c (__gnat_translate_vms): new function.
7330
7331 2007-09-10  Gary Dismukes  <dismukes@adacore.com>
7332             Thomas Quinot  <quinot@adacore.com>
7333
7334         * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
7335         create an abstract subprogram in the case of 'Input. For 'Output we now
7336         create a real spec/body when the type is abstract, since it can
7337         potentially be called.
7338         (Predefined_Primitive_Bodies): Now allow the creation of a predefined
7339         body for 'Output when the type is abstract (only the creation of the
7340         body for 'Input is excluded when the type is abstract).
7341         (Stream_Operation_OK): Add an additional condition in the return
7342         statement, so that False will be returned for TTS_Stream_Input if the
7343         associated tagged type is an abstract extension. Add comments for
7344         return statement.
7345         (Expand_N_Object_Declaration): For the case of a shared passive
7346         variable, insert init proc call only after the shared variable
7347         procedures have been processed, because the IP call needs to undergo
7348         shared passive variable reference expansion, which requires these
7349         procedures to be available (and elaborated).
7350
7351 2007-09-10  Vincent Celier  <celier@adacore.com>
7352
7353         * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
7354         parameter Runtime_Project.
7355
7356 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
7357
7358         * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
7359         given a box association, the type of the component is discriminated,
7360         and the value of the discriminant is the discriminant of the enclosing
7361         type, retrieve its value from the aggregate itself, where it must have
7362         been supplied.
7363
7364         * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
7365         to remove other spurious ambiguities on arithmetic operations involving
7366         literals and addresses, on systems where Address is a visible integer
7367         type, when the operator is called in functional notation.
7368         (Try_Primitive_Operation): Within an instance, a call in prefixed form
7369         is legal when the types match, even if the operation is currently
7370         hidden.
7371
7372 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
7373
7374         * sem_ch12.adb (Build_Local_Package): A formal package with no
7375         associations is legal if all formals have defaults. It is not
7376         equivalent to a formal declared with a box.
7377
7378 2007-09-10  Sergey Rybin  <rybin@adacore.com>
7379
7380         * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
7381
7382 2007-09-10  Sergey Rybin  <rybin@adacore.com>
7383
7384         * gnat_ugn.texi: Add description of the new '-lratio' option
7385         Update 7.3.1 section about availability of the feature.
7386
7387 2007-09-10  Thomas Quinot  <quinot@adacore.com>
7388
7389         * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
7390         inserted node.
7391
7392 2007-09-10  Olivier Hainque  <hainque@adacore.com>
7393
7394         * Makefile.in: (mips-irix section): Activate build of libgmem.
7395
7396 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
7397
7398         * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
7399         x87 registers.
7400
7401 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
7402
7403         * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
7404         a debug renaming declaration specially.
7405
7406 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
7407
7408         * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
7409         which a constant renaming is treated as a normal object declaration.
7410         * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
7411         the N_Indexed_Component case.
7412         <N_Indexed_Component>: Fall through to above case.
7413         <N_Object_Renaming_Declaration>: Return true for all composite types.
7414
7415 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
7416
7417         * decl.c (make_packable_type): If the new type has been given BLKmode,
7418         try again to get an integral mode for it.
7419
7420 2007-09-07  Eric Botcazou  <ebotcazou@adacore.com>
7421
7422         Re-apply accidentally reverted change:
7423
7424         2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
7425
7426         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
7427         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
7428         and _Unwind_SWord with _sleb128_t.
7429
7430 2007-09-06  Eric Botcazou  <ebotcazou@adacore.com>
7431
7432         * trans.c (convert_with_check): Update call to real_2expN.
7433
7434 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
7435
7436         * trans.c (Compilation_unit_to_gnu): Use set_cfun.
7437         * utils.c (end_subprog_body): Likewise.
7438
7439 2007-09-03  Nick Clifton  <nickc@redhat.com>
7440
7441         * Make-lang.in: Change copyright header to refer to version 3 of
7442         the GNU General Public License and to point readers at the
7443         COPYING3 file and the FSF's license web page.
7444         * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
7445         Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
7446         namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
7447         treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
7448         Likewise.
7449
7450 2007-08-31  Vincent Celier  <celier@adacore.com>
7451
7452         PR ada/4720
7453
7454         * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb, 
7455         gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
7456         (Check_Version_And_Help): New procedure in package Switch to process
7457         switches --version and --help.
7458         Use Check_Version_And_Help in GNAT tools
7459
7460         * make.adb:  Ditto.
7461         (Compile_Sources): Make sure that sources that are "excluded" are not
7462         compiled.
7463         (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
7464         project file is used.
7465         (Version_Switch): Remove, moved to Switch
7466         (Help_Switch): Remove, moved to Switch
7467         (Display_Version): Remove, moved to Switch
7468
7469         * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
7470         package Switch to process switches --version and --help.
7471         (Display_Version): New procedure
7472
7473         * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
7474
7475 2007-08-31  Javier Miranda  <miranda@adacore.com>
7476
7477         * a-tags.adb (Internal_Tag): Protect the run-time against wrong
7478         internal tags.
7479
7480 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
7481
7482         * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
7483         (Mark_Non_Null): If the node for which we just generated an access check
7484         is a reference to an *in* parameter and the reference appears in the
7485         declarative part of a subprogram body, mark the node as known non null.
7486
7487 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
7488
7489         * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
7490         structure of E_Exception to reflect the new flag.
7491         (Is_Raised, Set_Is_Raised): New inlined routines.
7492         Update the usage of available flag to reflect the addition of Is_Raised.
7493         (Is_Raised, Set_Is_Raised): Bodies of new routines.
7494         (Write_Entity_Flags): Write the status of flag Is_Raised.
7495         (Is_Descendent_Of_Address): New entity flag, to simplify handling of
7496         spurious ambiguities when integer literals appear in the context of an
7497         address type that is a visible integer type.
7498
7499         * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
7500         exceptions never being raised.
7501         (Analyze_Raise_Statement): When analyzing an exception, mark it as being
7502         explicitly raised.
7503
7504 2007-08-31  Javier Miranda  <miranda@adacore.com>
7505
7506         * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
7507         statement when compiling under restriction No_Exceptions_Proparation.
7508
7509 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
7510
7511         * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
7512         initialization aggregate for the type, generate itype references for
7513         thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
7514
7515 2007-08-31  Gary Dismukes  <dismukes@adacore.com>
7516
7517         * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
7518         library-level package renaming, pass the declaration associated with
7519         the renaming's special debug variable to Qualify_Entity_Names to ensure
7520         that its encoded name is properly qualified.
7521
7522         * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
7523         occurring in the list of entities to qualify, and do not attempt to
7524         traverse an entity list in that case. Variables associated with
7525 `       library-level package renamings can now occur in the table.
7526
7527         * exp_dbug.ads: Revise documentation of the encoding for renaming
7528         declarations.
7529
7530 2007-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7531
7532         * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
7533         access type points to an unconstrained array.
7534
7535 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
7536
7537         * restrict.adb, namet.adb, par-util.adb: Remove redundant type
7538         conversion.
7539
7540         * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
7541         simple redundant qualifications. The check is performed whenever the
7542         expression is a non-overloaded identifier.
7543         (Resolve_Type_Conversion): Enchance the redundant type conversion check
7544         to include loop parameters.
7545         (Valid_Conversion): Avoid generation of spurious error message.
7546
7547 2007-08-31  Bob Duff  <duff@adacore.com>
7548
7549         * par-ch4.adb (P_Simple_Expression): Fold long sequences of
7550         concatenations of string literals into a single literal, in order to
7551         avoid very deep recursion in the front end, which was causing stack
7552         overflow.
7553
7554         * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
7555         string, and the right operand is a string literal (the case of "" &
7556         "..."), optimize by avoiding copying the right operand -- just use the
7557         value of the right operand directly.
7558
7559         * stringt.adb (Store_String_Chars): Optimize by growing the
7560         String_Chars table all at once, rather than appending characters one by
7561         one.
7562         (Write_String_Table_Entry): If the string to be printed is very long,
7563         just print the first few characters, followed by the length. Otherwise,
7564         doing "pn(n)" in the debugger can take an extremely long time.
7565
7566         * sem_prag.adb (Process_Interface_Name): Replace loop doing
7567         Store_String_Char with Store_String_Chars.
7568
7569 2007-08-31  Vincent Celier  <celier@adacore.com>
7570
7571         * prj-attr.adb: Add new attribute Excluded_Source_Files
7572
7573         * prj-nmsc.adb: Use attribute Excluded_Source_Files before
7574         Locally_Removed_Files.
7575
7576         * snames.ads, snames.adb: New standard name Excluded_Source_Files
7577
7578 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
7579
7580         * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
7581         clauses of subunits, ignore limited_with_clauses that are illegal and
7582         have not been fully analyzed.
7583
7584 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
7585
7586         * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
7587         flag, for effiency. It is called when analyzing arithmetic operators
7588         and also for actuals in calls that are universal_integers. The flag is
7589         set for the predefined type address, and for any type or subtype
7590         derived from it.
7591
7592         * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
7593         Universal_Integer, when the formal is a descendent of address and the
7594         call appears in user code.
7595         (Analyze_Selected_Component): if the prefix is a private extension, the
7596         tag component is visible.
7597
7598         * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
7599         entity flag.
7600
7601 2007-08-31  Robert Dewar  <dewar@adacore.com>
7602
7603         * s-fileio.adb (Open): Normalize file name to lower case in non-case
7604         sensitive file name systems to avoid unexpected mismatch in Vista.
7605
7606 2007-08-31  Vincent Celier  <celier@adacore.com>
7607
7608         * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
7609
7610 2007-08-31  Vincent Celier  <celier@adacore.com>
7611
7612         * symbols-vms.adb (Initialize): Read symbol files with continuation
7613         lines
7614         (Finalize): If symbol is long, split the line
7615
7616 2007-08-31  Vincent Celier  <celier@adacore.com>
7617
7618         * fmap.ads: Minor comment updates
7619
7620 2007-08-31  GNAT Script  <nobody@adacore.com>
7621
7622         * Make-lang.in: Makefile automatically updated
7623
7624 2007-08-31  Bob Duff  <duff@adacore.com>
7625
7626         * sinfo.ads: Minor comment fix.
7627
7628 2007-08-31  Thomas Quinot  <quinot@adacore.com>
7629
7630         * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
7631         with implementation.
7632         Documentation cleanup only.
7633
7634 2007-08-31  Sergey Rybin  <rybin@adacore.com>
7635
7636         * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
7637         gnatpp '--separate-stmt-name' option.
7638         Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
7639         option.
7640
7641         * gnat_ugn.texi: Add description for the new gnatpp
7642         '--separate-stmt-name' and '--use-on-new-line' options.
7643
7644 2007-08-31  Ben Elliston  <bje@au.ibm.com>
7645
7646         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
7647         when compiling for powerpc64-*-linux.
7648         * system-linux-ppc64.ads: New file.
7649
7650 2007-08-22  Krister Walfridsson  <cato@df.lth.se>
7651
7652         * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
7653         NetBSD.
7654
7655 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7656
7657         * misc.c (gnat_type_max_size): Constify.
7658
7659 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
7660
7661         * cstand.adb (Create_Standard): Create an entity for a zero-sized type
7662         associated with Standard_Debug_Renaming_Type, to be used as the type of
7663         the special variables whose names provide debugger encodings for
7664         renaming declarations.
7665
7666         * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
7667         (Set_Debug_Renaming_Link): Change to set Node25.
7668         (Write_Field13_Name): Remove case for E_Enumeration_Literal.
7669         (Write_Field25_Name): Add case for E_Variable to output
7670         "Debug_Renaming_Link".
7671         (Write_Field23_Name): Correct the output string for "Limited_View".
7672
7673         * exp_dbug.adb: Add with and use of Tbuild.
7674         (Debug_Renaming_Declaration): Replace creation of an enumeration type
7675         and literal with creation of a variable of type
7676         Standard_Debug_Renaming_Type whose name encodes both the renamed object
7677         and the entity of the renaming declaration.
7678         (Qualify_Entity_Name): Add the delayed qualification of the entity name
7679         part of the name of a variable that has a Debug_Renaming_Link.
7680
7681         * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
7682         special type to be associated with variables that provide debugger
7683         encodings for renaming declarations.
7684
7685 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
7686             Ed Schonberg  <schonberg@adacore.com>
7687             Javier Miranda  <miranda@adacore.com>
7688
7689         * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
7690         ancestor part given by an aggregate to test for an unchecked conversion,
7691         since this can occur in some cases when the ancestor part is a function
7692         call, and we don't want to fall into the recursive call to this
7693         procedure in that case.
7694
7695         * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
7696         stream attributes on limited types to account for user-specified
7697         attributes as well as whether Input (resp. Output) becomes available
7698         due to Read (resp. Write) being available for the type. Change Boolean
7699         variable to the more accurate name
7700         Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
7701         double-"not" predicate at beginning of return statement to more
7702         understandable form.
7703
7704         * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
7705         return has an associated N_Handled_Sequence_Of_Statements, then wrap it
7706         in a block statement and use that as the first statement of the
7707         expanded return rather than incorrectly using the handled sequence as
7708         the first statement.
7709
7710         * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
7711         operation, generate an explicit freeze node for it rather than
7712         generating extra formals, to ensure that gigi has the proper order of
7713         elaboration for anonymous subtypes in the signature of the subprograms.
7714         (Build_In_Place_Formal): Move assertion to beginning of loop.
7715         (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
7716         applied to a function call (occurs for some cases of 'Input).
7717         (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
7718         applied to a function call (occurs for some cases of 'Input).
7719
7720         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
7721         2005, generate an extended return statement enclosing the result object
7722         and 'Read call.
7723
7724         * freeze.adb (Freeze_Record_Type): Extend the current management of
7725         components that are access type with an allocator as default value: add
7726         missing support to the use of qualified expressions of the
7727         allocator (which also cause freezing of the designated type!)
7728         (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
7729         dispatching operation, since extra formals may be needed by calls to
7730         build-in-place functions (such as stream 'Input).
7731
7732         * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
7733         formals for 'Constrained and accessibility level in the case of a
7734         predefined dispatching operation.
7735
7736         * exp_util.adb (Insert_Actions): A protected body is a valid insertion
7737         point, no need to find the parent node.
7738
7739 2007-08-16  Javier Miranda  <miranda@adacore.com>
7740
7741         * exp_attr.adb (Attribute_Priority): Add missing support for entries
7742         and entry barriers.
7743
7744 2007-08-16  Javier Miranda  <miranda@adacore.com>
7745
7746         * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
7747         is not really required and can introduce regression with the debugger.
7748         The original problem is fixed with the patch written for checks.adb.
7749
7750 2007-08-16  Thomas Quinot  <quinot@adacore.com>
7751
7752         * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
7753         Range_Check on Allocated_Table.
7754
7755 2007-08-16  Vincent Celier  <celier@adacore.com>
7756
7757         * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
7758         Including_Non_Switch set to False.
7759         (Gnatmake): For the compiler, call Test_If_Relative_Path with
7760         Including_Non_Switch set to False.
7761
7762         * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
7763         parameter Including_Non_Switch, defaulted to True. When
7764         Including_Non_Switch is False, options that are not switches and
7765         appear as relative path are not converted to absolute paths.
7766
7767 2007-08-16  Nicolas Roche  <roche@adacore.com>
7768
7769         * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
7770         makefiles
7771
7772         * Make-lang.in: Update dependencies
7773
7774 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
7775
7776         * sem_ch10.adb (Has_With_Clause): If the name of the with clause
7777         currently inspected is a selected component, retrieve the entity of
7778         its selector.
7779         (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
7780         from the immediate ancestor of Main_Unit_Entity.
7781         (Install_Limited_Withed_Unit): Do not install the limited view of
7782         package P if P is reachable through an ancestor chain from package C
7783         and C also has a with clause for P in its body.
7784         (Has_Limited_With_Clause): New routine.
7785         (Has_With_Clause): New routine.
7786
7787 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
7788
7789         * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
7790         generic for an enclosing instance is a global reference, even though
7791         its scope is the enclosing instance.
7792
7793 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
7794             Javier Miranda  <miranda@adacore.com>
7795
7796         * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
7797         initialize a limited object.
7798         (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
7799         13/2 and 14/2.
7800         Make sure Has_Complex_Representation is inherited by derived type.
7801
7802 2007-08-16  Robert Dewar  <dewar@adacore.com>
7803
7804         * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
7805         exception case
7806
7807 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
7808
7809         * sem_disp.adb (Check_Dispatching_Operation): If the operation
7810         implements an operation inherited from a progenitor interface, verify
7811         that they are subtype-conformant.
7812
7813 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
7814             Bob Duff  <duff@adacore.com>
7815             Nicolas Setton  <setton@adacore.com>
7816
7817         * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
7818         (Resolve): Alphabetize local variables. Add new variable From_Lib. When
7819         the statement which is being resolved comes from a predefined library
7820         unit, all non-predefined library interpretations are skipped.
7821         (Resolve_Op_Concat): If string concatenation was folded in the parser,
7822         but the "&" is user defined, give an error, because the folding would
7823         be wrong.
7824
7825         * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
7826         the parser has folded a long sequence of concatenations of string
7827         literals.
7828
7829         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
7830         and "JMP_BUF" variables as artificial.
7831         (N_String_Literal): Do not use alloca for very long string literals. Use
7832         xmalloc/free instead. Otherwise the stack might overflow.
7833
7834         * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
7835         compiler.
7836
7837 2007-08-16  Vincent Celier  <celier@adacore.com>
7838
7839         * vms_conv.adb (Process_Argument): Ensure that project related options
7840         are not put in the -cargs section when using GNAT COMPILE.
7841
7842 2007-08-16  Robert Dewar  <dewar@adacore.com>
7843
7844         * gnat_ugn.texi: Add note on preprocessing (output file not written)
7845
7846 2007-08-16  Thomas Quinot  <quinot@adacore.com>
7847
7848         * a-tags.adb: Minor reformatting.
7849
7850 2007-08-16  Bob Duff  <duff@adacore.com>
7851
7852         * sem_type.ads, sem_ch4.adb: Minor reformatting.
7853
7854 2007-08-14  Thomas Quinot  <quinot@adacore.com>
7855
7856         * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads, 
7857         s-osinte-interix.ads, system-interix.ads: Removed.
7858
7859 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
7860
7861         * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
7862         calls to Check_Within_Time_Bounds.
7863         ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
7864         (Difference): Account for possible rounding of the resulting difference
7865
7866 2007-08-14  Robert Dewar  <dewar@adacore.com>
7867
7868         * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
7869         par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
7870         s-osinte-solaris.adb, s-osinte-solaris.ads,
7871         s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
7872
7873         * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
7874         switch -gnatyS. Enable -gnatyS in GNAT style check mode
7875
7876 2007-08-14  Robert Dewar  <dewar@adacore.com>
7877             Ed Schonberg  <schonberg@adacore.com>
7878
7879         * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads: 
7880         Suppress unmodified in-out parameter warning in some cases
7881         This patch is a also fairly significant change to the way suppressible
7882         checks are handled.
7883
7884         * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
7885         needed for access to concurrent record types generated by the expander.
7886         (Generate_Range_Check): When generating a temporary to capture the
7887         value of a conversion that requires a range check, set the type of the
7888         temporary before rewriting the node, so that the type is always
7889         properly placed for back-end use.
7890         (Apply_Float_Conversion_Check): Handle case where the conversion is
7891         truncating.
7892         (Get_Discriminal): Code reformatting. Climb the scope stack looking
7893         for a protected type in order to examine its discriminants.
7894
7895 2007-08-14  Robert Dewar  <dewar@adacore.com>
7896             Gary Dismukes  <dismukes@adacore.com>
7897             Ed Schonberg  <schonberg@adacore.com>
7898             Thomas Quinot  <quinot@adacore.com>
7899
7900         * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb, 
7901         a-stwisu.adb, a-strsup.adb: Fix warnings for range
7902         tests optimized out.
7903
7904         * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
7905         (Get_Allocator_Final_List): For the case of an anonymous access type
7906         that has a specified Associated_Final_Chain, do not go up to the
7907         enclosing scope.
7908         (Expand_N_Type_Conversion): Test for the case of renamings of access
7909         parameters when deciding whether to apply a run-time accessibility
7910         check.
7911         (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
7912         aggregate code before allocator, and ahead of declaration for
7913         temporary, to prevent access before elaboration when the allocator is
7914         an actual for an access parameter.
7915         (Expand_N_Type_Conversion): On an access type conversion involving an
7916         access parameter, do not apply an accessibility check when the
7917         operand's original node was an attribute other than 'Access. We now
7918         create access conversions for the expansion of 'Unchecked_Access and
7919         'Unrestricted_Access in certain cases and clearly accessibility should
7920         not be checked for those.
7921
7922         * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
7923         includes a type conversion of a packed component that has been expanded,
7924         recover the original expression for the object, and use this expression
7925         in the post-call assignment statement, so that the assignment is made
7926         to the object and not to a back-end temporary.
7927         (Freeze_Subprogram): In case of primitives of tagged types not defined
7928         at the library level force generation of code to register the primitive
7929         in the dispatch table. In addition some code reorganization has been
7930         done to leave the implementation clear.
7931         (Expand_Call): When expanding an inherited implicit conversion,
7932         preserve the type of the inherited function after the intrinsic
7933         operation has been expanded.
7934
7935         * exp_ch2.ads, exp_ch2.adb
7936         (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
7937         of an entry formal appearing in an assignment statement does not assign
7938         to the formal.
7939         (Expand_Current_Value): Instead of calling a routine to determine
7940         whether the prefix of an attribute reference should be optimized or
7941         not, prevent the optimization of such prefixes all together.
7942
7943         * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
7944         component whose prefix is known to be of an access type is an implicit
7945         dereference and does not assign to the prefix.
7946
7947 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
7948             Robert Dewar  <dewar@adacore.com>
7949
7950         * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
7951         itype is visited, make an entry into table to link associated node and
7952         new itype.
7953         Add comments and correct harmless error in Build_NCT_Hash_Tables
7954         (Array_Aggr_Subtype): Associate each itype created for an index type to
7955         the corresponding range construct, and not to the aggregate itself. to
7956         maintain a one-to-one correspondence between itype and its associated
7957         node, to prevent errors when complex expression is copied.
7958         Fix mishandling of multiple levels of parens
7959
7960         * sem_aggr.adb: Create a limited view of an incomplete type, to make
7961         treatment of limited views uniform for all visible declarations in a
7962         limited_withed package.
7963         (New_Copy_Tree): If hash table is being used and itype is visited,
7964         make an entry into table to link associated node and new itype.
7965         (Resolve_Record_Aggregate): Do not add an others box association for a
7966         discriminated record component that has only discriminants, when there
7967         is a box association for the component itself.
7968
7969         * par-ch4.adb: Fix mishandling of multiple levels of parens
7970
7971 2007-08-14  Robert Dewar  <dewar@adacore.com>
7972
7973         * comperr.adb: Fix problem with suppressing warning messages from gigi
7974
7975         * erroutc.ads, erroutc.adb, errout.ads, 
7976         errout.adb (Write_Eol): Remove trailing spaces before writing the line
7977         (Write_Eol_Keep_Blanks): New procedure to write a line, including
7978         possible trailing spaces.
7979         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
7980         Fix problem with suppressing warning messages from back end
7981         Improve handling of deleted warnings
7982
7983         * gnat1drv.adb: 
7984         Fix problem with suppressing warning messages from back end
7985         Handle setting of Static_Dispatch_Tables flag.
7986
7987         * prepcomp.adb: 
7988         Fix problem with suppressing warning messages from back end
7989
7990         * exp_intr.adb: Improve handling of deleted warnings
7991
7992 2007-08-14  Robert Dewar  <dewar@adacore.com>
7993
7994         * debug.adb: Improve -gnatdI to cover all cases of serialization
7995         Add documentation of dZ, d.t
7996
7997         * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
7998         serialization.
7999         (Sprint_Node_Actual): Generate new output associated with implicit
8000         importation and implicit exportation of object declarations.
8001
8002 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
8003             Robert Dewar  <dewar@adacore.com>
8004             Javier Miranda  <miranda@adacore.com>
8005             Gary Dismukes  <dismukes@adacore.com>
8006
8007         * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
8008         to make treatment of limited views uniform for all visible declarations
8009         in a limited_withed package.
8010         Improve warnings for in out parameters
8011         (Set_Related_Interaface/Related_Interface): Allow the use of this
8012         attribute with constants.
8013         (Write_Field26_Name): Handle attribute Related_Interface in constants.
8014         Warn on duplicate pragma Preelaborable_Initialialization
8015
8016         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
8017         generation of a freezing node to ensure proper management of null
8018         excluding access types in the backend.
8019         (Create_Extra_Formals): Test base type of the formal when checking for
8020         the need to add an extra accessibility-level formal. Pass the entity E
8021         on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
8022         originally being done in a couple of cases), to ensure that the
8023         Extra_Formals list gets set on the entity E when the first entity is
8024         added.
8025         (Conforming_Types): Add missing calls to Base_Type to the code that
8026         handles anonymous access types. This is required to handle the
8027         general case because Process_Formals builds internal subtype entities
8028         to handle null-excluding access types.
8029         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
8030         functions that need it, even when not marked Requires_Overriding.
8031         Improve warnings for in out parameters
8032         (Analyze_Function_Return): Warn for disallowed null return
8033         Warn on return from procedure with unset out parameter
8034         Ensure consistent use of # in error messages
8035         (Check_Overriding_Indicator): Add in parameter Is_Primitive.
8036         (Analyze_Function_Return): Move call to Apply_Constraint_Check before
8037         the implicit conversion of the expression done for anonymous access
8038         types. This is required to generate the code of the null excluding
8039         check (if required).
8040
8041         * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
8042         A formal parameter is never publicly referenceable outside of its body.
8043         (Check_References): For an unreferenced formal parameter in an accept
8044         statement, use the same warning circuitry as for subprogram formal
8045         parameters.
8046         (Warn_On_Unreferenced_Entity): New subprogram, taken from
8047         Output_Unreferenced_Messages, containing the part of that routine that
8048         is now reused for entry formals as described above.
8049         (Goto_Spec_Entity): New function
8050         (Check_References): Do not give IN OUT warning for dispatching operation
8051         Improve warnings for in out parameters
8052         (Test_Ref): Check that the entity is not undefinite before calling
8053         Scope_Within, in order to avoid infinite loops.
8054         Warn on return from procedure with unset out parameter
8055         Improved warnings for unused variables
8056
8057 2007-08-14  Robert Dewar  <dewar@adacore.com>
8058             Javier Miranda  <miranda@adacore.com>
8059             Gary Dismukes  <dismukes@adacore.com>
8060
8061         * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
8062         (Expand_N_Attribute_Reference): Further unify the handling of the
8063         three forms of access attributes, using common code now for all three
8064         cases. Add a test for the case of applying an access attribute to
8065         an explicit dereference when the context is an access-to-interface
8066         type. In that case we need to apply the conversion to the prefix
8067         of the explicit dereference rather than the prefix of the attribute.
8068         (Attribute_Version, UET_Address): Set entity as internal to ensure
8069         proper dg output of implicit importation.
8070         (Expand_Access_To_Type): Removed.
8071         (Expand_N_Attribute_Reference): Merge the code from the three cases
8072         of access attributes, since the processing is largely identical for
8073         these cases. The substantive fix here is to process the case of a
8074         type name prefix (current instance case) before handling the case
8075         of interface prefixes.
8076
8077 2007-08-14  Thomas Quinot  <quinot@adacore.com>
8078             Ed Schonberg  <schonberg@adacore.com>
8079             Javier Miranda  <miranda@adacore.com>
8080             Robert Dewar  <dewar@adacore.com>
8081
8082         * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
8083         (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
8084         type that is an anonymous access to controlled object, establish
8085         an associated finalization chain to avoid corrupting the global
8086         finalization list when a dynamically allocated object designated
8087         by such a component is deallocated.
8088         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
8089         functions that need it, even when not marked Requires_Overriding.
8090         (Initialize_Tag): Replace call to has_discriminants by call to
8091         Is_Variable_Size_Record in the circuitry that handles the
8092         initialization of secondary tags.
8093         (Is_Variable_Size_Record): New implementation.
8094         (Expand_N_Object_Declaration): Suppress call to init proc if there is a
8095         Suppress_Initialization pragma for a derived type.
8096         (Is_Variable_Size_Record): New subprogram.
8097         (Build_Offset_To_Top_Functions): New implementation that simplifies the
8098         initial version of this routine and also fixes problems causing
8099         incomplete initialization of the table of interfaces.
8100         (Build_Init_Procedure): Improve the generation of code to initialize the
8101         the tag components of secondary dispatch tables.
8102         (Init_Secondary_Tags): New implementation that simplifies the previous
8103         version of this routine.
8104         (Make_DT): Add parameter to indicate when type has been frozen by an
8105         object declaration, for diagnostic purposes.
8106         (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
8107         diagnose attemps to freeze a subprogram when some untagged type of its
8108         profile is a private type whose full view has not been analyzed yet.
8109         (Freeze_Array_Type): Generate init proc for packed array if either
8110         Initialize or Normalize_Scalars is set.
8111         (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
8112         constructing the new profile, copy the null_exclusion indicator for each
8113         parameter, to ensure full conformance of the new body with the spec.
8114
8115         * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
8116         Create wrappers for constructor functions that need it, even when not
8117         marked Requires_Overriding.
8118         (Covers): Handle properly designated types of anonymous access types,
8119         whose non-limited views are themselves incomplete types.
8120         (Add_Entry): Use an entity to store the abstract operation which hides
8121         an interpretation.
8122         (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
8123         (Collect_Interps): Use Empty as an actual for Abstract_Op in the
8124         initialization aggregate.
8125         (Function_Interp_May_Be_Hidden): Rename to
8126         Function_Interp_Has_Abstract_Op.
8127         (Has_Compatible_Type): Remove machinery that skips interpretations if
8128         they are labeled as potentially hidden by an abstract operator.
8129         (Has_Hidden_Interp): Rename to Has_Abstract_Op.
8130         (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
8131         (Write_Overloads): Output the abstract operator if present.
8132         (Add_Entry): Before inserting a new entry into the interpretation table
8133         for a node, determine whether the entry will be disabled by an abstract
8134         operator.
8135         (Binary_Op_Interp_May_Be_Hidden): New routine.
8136         (Collect_Interps): Add value for flag May_Be_Hidden in initialization
8137         aggregate.
8138         (Function_Interp_May_Be_Hidden): New routine.
8139         (Has_Compatible_Type): Do not consider interpretations hidden by
8140         abstract operators when trying to determine whether two types are
8141         compatible.
8142         (Has_Hidden_Interp): New routine.
8143         (Set_May_Be_Hidden_Interp): New routine.
8144         (Write_Overloads): Write the status of flag May_Be_Hidden.
8145
8146 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
8147             Javier Miranda  <miranda@adacore.com>
8148
8149         * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
8150         types declared in the declarative part of a nested package body or in
8151         the proper body of a stub.
8152         (Set_All_DT_Position): Add missing check to avoid wrong assignation
8153         of the same dispatch table slot to renamed primitives.
8154         (Make_Select_Specific_Data_Table): Handle private types.
8155         (Tagged_Kind): Handle private types.
8156         (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
8157         output of implicit importation and exportation.
8158         (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
8159         first formal of the thunk is always associated with the controlling
8160         type. In addition perform the following code cleanup: remove formal
8161         Thunk_Alias which is no longer required, cleanup evaluation of the
8162         the controlling type, and update the documentation.
8163         Replace occurrence of Default_Prim_Op_Count by
8164         Max_Predef_Prims. Addition of compile-time check to verify
8165         that the value of Max_Predef_Prims is correct.
8166         (Check_Premature_Freezing): Apply check in Ada95 mode as well.
8167         (Make_DT): Add parameter to indicate when type has been frozen by an
8168         object declaration, for diagnostic purposes.
8169         (Build_Static_Dispatch_Tables): New subprogram that takes care of the
8170         construction of statically allocated dispatch tables.
8171         (Make_DT): In case of library-level tagged types export the declaration
8172         of the primary tag. Remove generation of tags (now done by Make_Tags).
8173         Additional modifications to handle non-static generation of dispatch
8174         tables. Take care of building tables for asynchronous interface types
8175         (Make_Tags): New subprogram that generates the entities associated with
8176         the primary and secondary tags of Typ and fills the contents of Access_
8177         Disp_Table. In case of library-level tagged types imports the forward
8178         declaration of the primary tag that will be declared later by Make_DT.
8179         (Expand_Interface_Conversion): In case of access types to interfaces
8180         replace an itype declaration by an explicit type declaration to avoid
8181         problems associated with the scope of such itype in transient blocks.
8182
8183 2007-08-14  Robert Dewar  <dewar@adacore.com>
8184             Ed Schonberg  <schonberg@adacore.com>
8185             Javier Miranda  <miranda@adacore.com>
8186
8187         * exp_util.ads, exp_util.adb: 
8188         This patch replaces a number of occurrences of explicit tests for N_Null
8189         with calls to Known_Null. This improves tracking of null values, since
8190         Known_Null also catches null constants, and variables currently known to
8191         be null, so we get better tracking.
8192         (Ensure_Defined): create an itype reference only in the scope of the
8193         itype.
8194         (Side_Effect_Free): A selected component of an access type that
8195         denotes a component with a rep clause must be treated as not
8196         side-effect free, because if it is part of a linked structure its
8197         value may be affected by a renaming.
8198         (Expand_Subtype_From_Expr): For limited objects initialized with build
8199         in place function calls, do nothing; otherwise we prematurely introduce
8200         an N_Reference node in the expression initializing the object, which
8201         breaks the circuitry that detects and adds the additional arguments to
8202         the called function. Bug found working in the new patch for statically
8203         allocated dispatch tables.
8204         (Is_Library_Level_Tagged_Type): New subprogram.
8205         (Remove_Side_Effects): If the expression of an elementary type is an
8206         operator treat as a function call.
8207         (Make_Literal_Range): If the index type of the array is not integer, use
8208         attributes properly to compute the constraint on the resulting aggregate
8209         which is a string.
8210
8211         * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
8212         class-wide type whose base type is an incomplete private type, leave
8213         class-wide type unfrozen so that freeze nodes can be generated
8214         properly at a later point.
8215         (Freeze_Entity, array case): Handle case of pragma Pack and component
8216         size attributre clause for same array.
8217
8218 2007-08-14  Vincent Celier  <celier@adacore.com>
8219
8220         * prj.ads, prj.adb: Update Project Manager to new attribute names for
8221         gprbuild.
8222         Allow all valid declarations in configuration project files
8223         (Reset): Initialize all tables and hash tables in the project tree data
8224         Major update of the Project Manager and of the project aware tools,
8225         including gprmake, so that the same sources in the GNAT repository
8226         can be used by gprbuild.
8227         (Slash_Id): Change type to be Path_Name_Type
8228         (Slash): Return a Path_Name_Type instead of a File_Name_Type
8229
8230         * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
8231         gprbuild.
8232         Update Project Manager to new attribute names for ghprbuild
8233         Allow all valid declarations in configuration project files
8234         Major update of the Project Manager and of the project aware tools,
8235         including gprmake, so that the same sources in the GNAT repository
8236         can be used by gprbuild.
8237
8238         * prj-com.ads: 
8239         Major update of the Project Manager and of the project aware tools,
8240         including gprmake, so that the same sources in the GNAT repository
8241         can be used by gprbuild.
8242
8243         * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
8244         insensitive flag for attributes with optional index.
8245         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
8246         array attribute, put the index in lower case.
8247         Update Project Manager to new attribute names for ghprbuild
8248         Allow all valid declarations in configuration project files
8249         Major update of the Project Manager and of the project aware tools,
8250         including gprmake, so that the same sources in the GNAT repository
8251         can be used by gprbuild.
8252
8253         * prj-env.ads, prj-env.adb: 
8254         Major update of the Project Manager and of the project aware tools,
8255         including gprmake, so that the same sources in the GNAT repository
8256         can be used by gprbuild.
8257         (Get_Reference): Change type of parameter Path to Path_Name_Type
8258
8259         * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
8260         removing '-' from the path to start with the first character of the
8261         next directory.
8262         Major update of the Project Manager and of the project aware tools,
8263         including gprmake, so that the same sources in the GNAT repository
8264         can be used by gprbuild.
8265         Major update of the Project Manager and of the project aware tools,
8266         including gprmake, so that the same sources in the GNAT repository
8267         can be used by gprbuild.
8268
8269         * prj-nmsc.ads, prj-nmsc.adb: 
8270         Update Project Manager to new attribute names for ghprbuild
8271         Allow all valid declarations in configuration project files
8272         (Search_Directories): Detect subunits that are specified with an
8273         attribute Body in package Naming. Do not replace a source/unit in the
8274         same project when the order of the source dirs are known. Detect
8275         duplicate sources/units in the same project when the order of the
8276         source dirs are not known.
8277         (Check_Ada_Name): Allow all identifiers that are not reserved words
8278         in Ada 95.
8279         Major update of the Project Manager and of the project aware tools,
8280         including gprmake, so that the same sources in the GNAT repository
8281         can be used by gprbuild.
8282         (Look_For_Sources): If the list of sources is empty, set the object
8283         directory of non extending project to nil.
8284         Change type of path name variables to be Path_Name_Type
8285         (Locate_Directory): Make sure that on Windows '/' is converted to '\',
8286         otherwise creating missing directories will fail.
8287
8288         * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb, 
8289         prj-part.ads, prj-part.adb:
8290         Major update of the Project Manager and of the project aware tools,
8291         including gprmake, so that the same sources in the GNAT repository
8292         can be used by gprbuild.
8293
8294         * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
8295         insensitive flag for attributes with optional index.
8296         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
8297         array attribute, put the index in lower case.
8298         (Parse_Variable_Reference): Allow the current project name to be used in
8299         the prefix of an attribute reference.
8300
8301         * prj-util.ads, prj-util.adb
8302         (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
8303         defaulted to False. When True, always check against indexes in lower
8304         case.
8305
8306         * snames.ads, snames.h, snames.adb: 
8307         Update Project Manager to new attribute names for gprbuild
8308         Allow all valid declarations in configuration project files
8309
8310 2007-08-14  Robert Dewar  <dewar@adacore.com>
8311             Ed Schonberg  <schonberg@adacore.com>
8312
8313         * opt.ads: Warning for non-local exception propagation now off by
8314         default
8315         New switch -gnatI to disable representation clauses
8316         Implement new pragma Implicit_Packing
8317
8318         * usage.adb: 
8319         Warning for non-local exception propagation now off by default
8320         Add warning for unchecked conversion of pointers wi different
8321         conventions.
8322         New switch -gnatI to disable representation clauses
8323
8324         * usage.adb: new switch -gnatyS
8325
8326         * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
8327         note that aggregates of anonymous array types are not flagged.
8328         -gnatwc now includes membership tests optimized away
8329         -gnatw.x warnings are now off by default
8330         Added conditional compilation Appendix
8331         Add documentation of -gnatI
8332         Add documentation for new -gnatyS style check
8333         Update documentation about SAL and auto-init on Windows.
8334
8335         * gnat_rm.texi: 
8336         Add documentation for pragma Check_Name and 'Enabled attribute
8337         Document that Eliminate on dispatching operation is ignored
8338         Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
8339         Document pragma Main
8340         Document pragma Implicit_Packing
8341
8342         * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
8343         different conventions
8344         New switch -gnatI to disable representation clauses
8345
8346         * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
8347         recognized, report the invalid characters including "-gnat" instead of
8348         just the first character in the switch.
8349         New switch -gnatI to disable representation clauses
8350         Set Warn_On_Object_Renames_Function true for -gnatg
8351
8352         * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
8353         Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
8354         Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
8355         to switch -aP (add directory to project search dir).
8356
8357         * par-prag.adb: Implement new pragma Implicit_Packing
8358
8359         * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
8360         type as having a non-standard representation, to force expansion on
8361         conversion to related types.
8362         (Analyze_Pragma): Warn on misspelled pragma
8363         (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
8364         Ensure consistent use of # in error messages
8365         Implement pragma Implicit_Packing
8366
8367 2007-08-14  Olivier Hainque  <hainque@adacore.com>
8368             Eric Botcazou  <ebotcazou@adacore.com>
8369
8370         * targtyps.c (get_target_maximum_default_alignment): New function.
8371         Maximum alignment
8372         that the compiler might choose by default for a type or object.
8373         (get_target_default_allocator_alignment): New function. Alignment known
8374         to be honored by the target default allocator.
8375         (get_target_maximum_allowed_alignment): New function. Maximum alignment
8376         we might accept for any type or object on the target.
8377         (get_target_maximum_alignment): Now synonym of maximum_default_alignment
8378
8379         * gigi.h (get_target_maximum_default_alignment): Declare new function.
8380         (get_target_default_allocator_alignment): Likewise.
8381         (get_target_maximum_allowed_alignment): Likewise.
8382
8383         PR ada/19037
8384         * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
8385         result of a function call, first try to use a stabilized reference for
8386         a constant renaming too.
8387         (validate_alignment): Use target_maximum_allowed_alignment instead of
8388         MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
8389         (gnat_to_gnu_entity): Use common nodes directly.
8390         (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
8391         alignment and size for the object.
8392         (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
8393         and N_Procedure_Call_Statement.
8394         (takes_address): Rename to lvalue_required_p, add third parameter
8395         'aliased' and adjust recursive calls.
8396         <N_Indexed_Component>: Update 'aliased' from the array type.
8397         <N_Selected_Component>: New case.
8398         <N_Object_Renaming_Declaration>: New Likewise.
8399         (Identifier_to_gnu): Adjust for above changes.
8400         (maybe_stabilize_reference) <CONST_DECL>: New case.
8401
8402         * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
8403         between type variants.
8404         (build_simple_component_ref): Likewise.
8405         (build_call_alloc_dealloc): Use target_default_allocator_alignment
8406         instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
8407         aligning type circuitry for allocations from the default storage pool.
8408         (build_allocator): Likewise.
8409         (build_simple_component_ref): Manually fold the reference for a
8410         constructor if the record type contains a template.
8411
8412         * utils.c (value_zerop): Delete.
8413         (gnat_init_decl_processing): Emit debug info for common types.
8414         (rest_of_record_type_compilation): If a union contains a field
8415         with a non-constant qualifier, treat it as variable-sized.
8416         (finish_record_type): Give the stub TYPE_DECL a name.
8417         (rest_of_record_type_compilation): Likewise.
8418         (convert) <CONSTRUCTOR>: New case.  Build a new constructor if
8419         types are equivalent array types.
8420         (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
8421         even if the type is not passed by reference.
8422         (static_ctors, static_dtors): Delete.
8423         (end_subprog_body): Do not record constructors and destructors.
8424         (build_global_cdtor): Delete.
8425         (gnat_write_global_declarations): Do not call build_global_cdtor.
8426
8427         * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
8428         -fRTS=rtp is specified.
8429         If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
8430         specified.
8431
8432         * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
8433         of the personality function with SJLJ exceptions.
8434
8435         * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
8436         the name of the personality function with SJLJ exceptions.
8437
8438 2007-08-14  Robert Dewar  <dewar@adacore.com>
8439             Ed Schonberg  <schonberg@adacore.com>
8440
8441         * par.ads, par.adb: Improve handling of extra right parens.
8442         (Par): Remove flag From_Limited_With_Clause.
8443
8444         * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
8445         Improve handling of extra right parens.
8446
8447 2007-08-14  Robert Dewar  <dewar@adacore.com>
8448
8449         * par-tchk.adb (TF_Semicolon): Improve error recovery
8450
8451 2007-08-14  Robert Dewar  <dewar@adacore.com>
8452             Ed Schonberg  <schonberg@adacore.com>
8453
8454         * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
8455         enumeration type, mark all literals as referenced.
8456         (Eval_Attribute, case 'Image): If the argument is an enumeration
8457         literal and names are available, constant-fold but mark nevertheless as
8458         non-static.
8459         Clean up function names.
8460         (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
8461         comment.
8462         (Requires_Simple_Name_Prefix): Removed.
8463
8464 2007-08-14  Robert Dewar  <dewar@adacore.com>
8465             Ed Schonberg  <schonberg@adacore.com>
8466
8467         * sem_ch11.adb: Improved warnings for unused variables
8468
8469         * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
8470         is a synchronized interface, the derived type is limited.
8471         (Analyze_Object_Declaration): Mark the potential coextensions in the
8472         definition and expression of an object declaration node.
8473         (Build_Derived_Type): For the completion of a private type declaration
8474         with a derived type declaration, chain the parent type's representation
8475         items to the last representation item of the derived type (not the
8476         first one) if they are not present already.
8477         (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
8478         object declaration of forward references to tags.
8479         (Access_Subprogram_Declaration): In Ada2005, anonymous access to
8480         subprogram types can appear as access discriminants of synchronized
8481         types.
8482         (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
8483         given in prefixed form as a selected component.
8484         (Process_Discriminants): If not all discriminants have defaults, place
8485         error message on a default that is present.
8486         (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
8487         extend a synchronized tagged type.
8488         Improved warnings for unused variables
8489         (Is_Visible_Component): Fix a visibility hole on a component inherited
8490         by a private extension when parent is itself declared as a private
8491         extension, and the derivation is in a child unit.
8492         (Find_Hidden_Interface): Move spec from the package body.
8493
8494 2007-08-14  Robert Dewar  <dewar@adacore.com>
8495             Ed Schonberg  <schonberg@adacore.com>
8496
8497         * sem_ch5.adb: Improve warnings on redundant assignments
8498
8499         * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
8500         parameter
8501         (Is_Synchronized_Tagged_Type): New subprogram that returns true
8502         in case of synchronized tagged types (AARM 3.9.4 (6/2)).
8503         (Safe_To_Capture_Value): Can now return True for constants, even if Cond
8504         is set to False. Improves handling of Known_[Not_]Null.
8505         (Wrong_Type): Special case address arithmetic attempt
8506         (Collect_Abstract_Interfaces): Add new formal to allow collecting
8507         abstract interfaces just using the partial view of private types.
8508         (Has_Abstract_Interfaces): Add new formal to allow checking types
8509         covering interfaces using the partial view of private types.
8510         (Is_Fully_Initialized_Type): Special VM case for uTag component. This
8511         component still needs to be defined in this case, but is never
8512         initialized as VMs are using other dispatching mechanisms.
8513         (Abstract_Interface_List): For a protected type, use base type to get
8514         proper declaration.
8515         Improve warnings on redundant assignments
8516         (Is_Variable): Handle properly an implicit dereference of a prefixed
8517         function call.
8518         (Build_Actual_Subtype): If this is an actual subtype for an
8519         unconstrained formal parameter, use the sloc of the body for the new
8520         declaration, to prevent anomalises in the debugger.
8521
8522 2007-08-14  Robert Dewar  <dewar@adacore.com>
8523
8524         * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
8525         dispatching operation
8526
8527 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
8528             Gary Dismukes  <dismukes@adacore.com>
8529
8530         * exp_aggr.ads, 
8531         exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
8532         expanded aggregate code before allocator, and ahead of declaration for
8533         temporary, to prevent access before elaboration when the allocator is
8534         an actual for an access parameter.
8535         (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
8536         the TSD and the table of interfaces.
8537         (Convert_To_Assignments): Augment the test for delaying aggregate
8538         expansion for limited return statements to include the case of extended
8539         returns, to prevent creation of an unwanted transient scope.
8540         (Is_Static_Dispatch_Table_Aggregate): New subprogram.
8541         (Expand_Array_Aggregate): Handle aggregates associated with
8542         statically allocated dispatch tables.
8543         (Expand_Record_Aggregate): Handle aggregates associated with
8544         statically allocated dispatch tables.
8545         (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
8546         of anonymous access type.
8547
8548 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
8549
8550         * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
8551         is a variable that renames a slice, use the variable itself in the
8552         expannsion when the renamed expression itself may be modified between
8553         the declaration of the renaming and the array assignment.
8554
8555 2007-08-14  Jerome Guitton  <guitton@adacore.com>
8556
8557         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, 
8558         s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, 
8559         s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
8560         New functions; dummy implementations.
8561
8562         * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
8563         functions, used to implement the multi-tasks mode routines on VxWorks.
8564
8565         * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
8566         New functions, thin
8567         binding to the VxWorks routines which have changed between VxWorks 5
8568         and 6.
8569         (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
8570         which are not callable from a RTP.
8571
8572         * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
8573         implemented for the multi-tasks mode on VxWorks 5 and 6.
8574
8575         * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
8576
8577         * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
8578         functions.
8579
8580 2007-08-14  Vincent Celier  <celier@adacore.com>
8581
8582         * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb, 
8583         gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
8584         mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb, 
8585         mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb, 
8586         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, 
8587         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
8588         mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
8589         procedure.
8590         (Major_Id_Name): New function.
8591         mlib-tgt.ads/mlib.tgt.adb:
8592         (Library_Major_Minor_Id_Supported): New function, default returns True
8593         Most mlib-tgt-*.adb that support shared libraries and symbolic links:
8594         (Build_Dynamic_Library): Add support for major/minor ids for shared libs
8595         Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
8596         Implementation of Library_Major_Minor_Id_Supported returns False
8597         clean.adb:
8598         (Clean_Library_Directory): If major/minor ids are supported, clean all
8599         library files.
8600         Major update of the Project Manager and of the project aware tools,
8601         including gprmake, so that the same sources in the GNAT repository
8602         can be used by gprbuild.
8603
8604 2007-08-14  Olivier Hainque  <hainque@adacore.com>
8605
8606         * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
8607         (GCC_ZCX_Support): Switch to True.
8608         
8609         * s-intman-solaris.adb (Notify_Exception): Call
8610         Adjust_Context_For_Raise before raising, as expected for signal
8611         handlers in general.
8612         
8613         * s-intman-posix.adb (Notify_Exception): Remove declaration of
8614         Adjust_Context_For_Raise, moved to the spec of this unit to be visible
8615         to other implementation bodies.
8616         
8617         * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
8618         be visible by multiple implementation bodies.
8619         
8620         * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
8621         only for conditions coming from hardware.
8622         [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
8623         adjustments to signal context prior to exception raise from signal
8624         handler.
8625         (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
8626         mode.
8627         Solaris section: (__gnat_adjust_context_for_raise): New function.
8628         Implementation of the machine context adjustments to perform prior to
8629         raise from a signal handler. Version for both sparc and x86.
8630         (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
8631         (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
8632         prior to raising as expected for any handler, before possible nested
8633         faults to make sure all the contexts in a chain have been adjusted by
8634         the time we propagate.
8635
8636 2007-08-14  Pascal Obry  <obry@adacore.com>
8637
8638         * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
8639         (SYSTEM_INFO): New record.
8640         (SetThreadIdealProcessor): New imported routine needed for supporting
8641         task_info pragma on Windows.
8642
8643         * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
8644         info can be applied to the current host.
8645         (Create_Task): Set the ideal processor if information is present.
8646
8647         * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
8648         a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
8649
8650 2007-08-14  Olivier Hainque  <hainque@adacore.com>
8651
8652         * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
8653         stack size and initial stack pointer value for a given task.
8654         (Enter_Task): Get the stack attributes of the task we are entering and
8655         let the stack checking engine know about them.
8656
8657         * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
8658         Let the stack-checking engine know about the initial sp value and stack
8659         size associated with the current task.
8660         (Set_Stack_Info): If a stack base has been notified for the current
8661         task, honor it. Fallback to the previous less accurate method otherwise.
8662
8663         * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
8664
8665 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
8666
8667         * sem_ch10.adb: Create a limited view of an incomplete type, to make
8668         treatment of limited views uniform for all visible declarations in a
8669         limited_withed package.
8670         Set flag indicating that a subprogram body for a child unit has a
8671         generated spec.
8672         (Analyze_Compilation_Unit): If unit is a subprogram body that has no
8673         separate declaration, remove the unit name from visibility after
8674         compilation, so that environment is clean for subsequent compilations.
8675         (Install_Limited_Context_Clauses): Do not install a
8676         limited_private_with_clause unless the current unit is a body or a
8677         private child unit.
8678         (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
8679         in the same fashion.
8680         (Install_Limited_Withed_Unit): Do not install a limited with clause if
8681         it applies to the declaration of the current package body.
8682         (Remove_Private_With_Clauses): If there is a regular with_clause for
8683         the unit, delete Private_With_Clause from context, to prevent improper
8684         hiding when processing subsequent nested packages and instantiations.
8685
8686 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
8687
8688         * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
8689         dir/file, device:/dir/file, and device:drive_letter:/dir/file as
8690         representing absolute path names.
8691         __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
8692
8693         * cstreams.c (__gnat_full_name for VxWorks): Use
8694         __gnat_is_absolute_path to detect whether we need to add the current
8695         directory to normalize the path.
8696
8697 2007-08-14  Javier Miranda  <miranda@adacore.com>
8698
8699         * a-tags.ads, 
8700         a-tags.adb (Displace): Associate a message with the raised CE
8701         exception.
8702         (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
8703         To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
8704         To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
8705         spec.
8706         (Default_Prim_Op_Count): Removed.
8707         (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
8708         Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
8709         Remove pragma Inline_Always.
8710
8711         * rtsfind.ads (Default_Prim_Op_Count): Removed
8712         (Max_Predef_Prims): New entity
8713         (RE_Expanded_Name): Removed
8714         (RE_HT_Link): Removed
8715         (RE_Iface_Tag): Remmoved
8716         (RE_Ifaces_Table): Removed
8717         (RE_Interfaces_Array): Removed
8718         (RE_Interface_Data_Element): Removed
8719         (RE_Nb_Ifaces): Removed
8720         (RE_RC_Offset): Removed
8721         (RE_Static_Offset_To_Top): Removed
8722
8723         * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
8724         formal.
8725         (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
8726         Prim_Op_Count by Max_Predef_Prims.
8727
8728 2007-08-14  Thomas Quinot  <quinot@adacore.com>
8729             Vincent Celier  <celier@adacore.com>
8730
8731         * binde.adb (Elab_All_Links): Remove unnecessary call to
8732         Generic_Separately_Compiled (if a unit satisfies this predicate, there
8733         won't be an associated Afile).
8734         (Elab_All_Links): Fail if a referenced unit cannot be found
8735
8736         * bindgen.adb: 
8737         Fix comments in bindgen regarding consistency checks done in Bcheck:
8738         the checks are made across units within a partition, not across several
8739         partitions.
8740         Fix generation of C binder file for VxWorks.
8741
8742         * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
8743         Generic_May_Lack_ALI, more descriptive of the current use of the
8744         predicate, and update documentation.
8745
8746         * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
8747         reorganization and documentation update for the case of predefined
8748         library generics (for which we do not reference an Afile).
8749
8750 2007-08-14  Robert Dewar  <dewar@adacore.com>
8751
8752         * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
8753         s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
8754         s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
8755         s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
8756         s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
8757         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
8758         s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
8759         s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
8760         exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
8761         s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
8762         s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
8763         a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
8764         s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
8765         g-altcon.adb: Minor reformatting
8766
8767         ada-tree.h: Delete empty line.
8768
8769         ali.ads: Minor reformatting
8770         Clarification of comments.
8771         Minor spelling correction
8772
8773         * exp_dbug.adb: Add Warnings Off to suppress new warning
8774
8775         * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
8776         formal
8777
8778         * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
8779         value
8780
8781         * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
8782
8783         * a-textio.ads: Reorder the standard input/output/error declarations
8784         for consistency.
8785
8786         * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
8787
8788         * par-ch2.adb: Recognize RM specially in errout
8789         Change 'R'M to RM in all error messages
8790
8791         * scng.adb: Recognize RM specially in errout
8792
8793         * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
8794         N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
8795
8796         * s-direio.adb: Add missing routine header box.
8797
8798         * sem_attr.ads: Add ??? comments
8799
8800         * sem_eval.adb: Recognize RM specially in errout
8801         Change 'R'M to RM in all error messages
8802
8803         * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
8804
8805         * s-tasinf.ads: Fix minor comment typo.
8806
8807         * a-cihama.adb: Minor comment addition
8808
8809         * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
8810         formal
8811
8812         * s-tasinf-tru64.ads: Fix minor comment typo.
8813
8814         * itypes.ads: Comment update.
8815
8816         * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
8817         anymore.
8818
8819         * argv.c: Added protection against null gnat_argv and gnat_envp.
8820
8821         * bcheck.adb (Check_Consistency): Use correct markup character ({) in
8822         warning message when Tolerate_Consistency_Errors is True.
8823
8824         * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
8825         Any_Id, as this subprogram is only applicable to *type* entities (it
8826         sets RM_Size). Instead initialize just Esize and Alignment.
8827
8828 2007-08-14  Bob Duff  <duff@adacore.com>
8829
8830         * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, 
8831         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
8832         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads, 
8833         a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
8834         a-coorse.ads (Next): Applied pragma Inline.
8835         Make all Containers packages Remote_Types (unless they are already
8836         Pure).
8837         (Previous): applied pragma Inline
8838         (Elements_Type): is now a record instead of an array
8839
8840 2007-08-14  Thomas Quinot  <quinot@adacore.com>
8841
8842         * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
8843         of Set_Item.
8844         (Set_Item): When the new item is an element of the currently allocated
8845         table passed by reference, save a copy on the stack if we're going
8846         to reallocate. Also, in Table.Set_Item, make sure we test the proper
8847         variable to determine whether to call Set_Last.
8848
8849         * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
8850         symbols-vms.adb, symbols-processing-vms-alpha.adb,
8851         symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
8852         some occurrences of the pattern
8853            T.Increment_Last;
8854            T.Table (T.Last) := Value;
8855         with a cleaner call to
8856            T.Append (Value);
8857
8858 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
8859             Gary Dismukes  <dismukes@adacore.com>
8860             Thomas Quinot  <quinot@adacore.com>
8861
8862         * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
8863         derived type with interface progenitors use the analyzed formal as the
8864         parent of the actual, to create renamings for all the inherited
8865         operations in Derive_Subprograms.
8866         (Collect_Previous_Instances): new procedure within of
8867         Load_Parent_Of_Generic, to instantiate all bodies in the compilation
8868         unit being loaded, to ensure that the generation of global symbols is
8869         consistent in different compilation modes.
8870         (Is_Tagged_Ancestor): New function testing the ancestor relation that
8871         takes progenitor types into account.
8872         (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
8873         traversing over the primitives of the formal and actual types to locate
8874         any abstract subprograms of the actual type that correspond to a
8875         nonabstract subprogram of the formal type's ancestor type(s), and issue
8876         an error if such is found.
8877         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
8878         Instantiate_Package_Body, Instantiate_Subprogram_Body):
8879         Remove bogus guard around calls to Inherit_Context.
8880         (Reset_Entity): If the entity is the selector of a selected component
8881         that denotes a named number, propagate constant-folding to the generic
8882         template only if the named number is global to the generic unit.
8883         (Set_Instance_Env): Only reset the compilation switches when compiling
8884         a predefined or internal unit.
8885
8886 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
8887
8888         * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
8889         parameter to determine whether operation applies to the prefix.
8890         (Complete_Object_Operation): If actual has an access type and
8891         controlling formal is not an in_parameter, reject the actual if it is
8892         an access_to_constant type.
8893         (Try_Primitive_Operation): If the type of the prefix is a formal tagged
8894         type, the candidate operations are found in the scope of declaration of
8895         the type, because the type has no primitive subprograms.
8896         (Analyze_Selected_Component): If prefix is class-wide, and root type is
8897         a private extension, only examine visible components before trying to
8898         analyze as a prefixed call.
8899         Change Entity_List to Type_To_Use, for better readability.
8900         (Has_Fixed_Op): Use base type when checking whether the type of an
8901         operator has a user-defined multiplication/division
8902         (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
8903         user-defined operators are available for fixed-point types.
8904
8905 2007-08-14  Thomas Quinot  <quinot@adacore.com>
8906             Ed Schonberg  <schonberg@adacore.com>
8907
8908         * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
8909         formal At_Any_Place indicating, when True, that we want to test for
8910         availability of the stream attribute at any place (as opposed to the
8911         current visibility context only).
8912         (Missing_Read_Write_Attributes): A stream attribute is missing for the
8913         purpose of enforcing E.2.2(8) only if it is not available at any place.
8914         Take into account the Ada2005 pragma Has_Preelaborable_Initialization
8915         when checking the legality of an extension aggregate in a preelaborable
8916         package. Treat the literal null as a valid default expression in a
8917         component declaration for a type with preelaborable initialization.
8918         A limited interface is a legal progenitor for the designated type of a
8919         remote access to class-wide type.
8920
8921 2007-08-14  Thomas Quinot  <quinot@adacore.com>
8922             Ed Schonberg  <schonberg@adacore.com>
8923
8924         * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
8925         reference): Use correct entity as denoted entity for the selector of
8926         the rewritten node.
8927         (Find_Direct_Name): Add comment about Generate_Reference incorrectly
8928         setting the Referenced_As_LHS flag for entities that are implicitly
8929         dereferenced.
8930         (Find_Type): If the type is an internally generated incomplete type,
8931         mark the full view as referenced, to prevent spurious warnings.
8932         (Find_Selected_Component, Has_Components): Handle properly non-limited
8933         views that are themselves incomplete types.
8934         Handle interfaces visible through limited-with clauses.
8935         (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
8936         subprogram generic actual for which we have generated a renaming.
8937         Warn when the renaming introduces a homonym of
8938         the renamed entity, and the renamed entity is directly visible.
8939
8940 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
8941             Hristian Kirtchev  <kirtchev@adacore.com>
8942
8943         * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
8944         appear in the subtree to the current allocator if it is not a static
8945         coextension.
8946         (Resolve_Allocator): Perform cleanup if resolution has determined that
8947         the allocator is not a coextension.
8948         (Resolve): Skip an interpretation hidden by an abstract operator only
8949         when the type of the interpretation matches that of the context.
8950         (Resolve): When looping through all possible interpretations of a node,
8951         do not consider those that are hidden by abstract operators.
8952         (Resolve_Actuals): When verifying that an access to class-wide object
8953         is an actual  for a controlling formal, ignore anonymous access to
8954         subprograms whose return type is an access to class_wide type.
8955         (Resolve_Slice): If the prefix of the slice is a selected component
8956         whose type depends on discriminants, build its actual subtype before
8957         applying range checks on the bounds of the slice.
8958         (Valid_Conversion): In an instance or inlined body, compare root types,
8959         to prevent anomalies between private and public views.
8960         (Resolve): Improve error message for ambiguous fixed multiplication
8961         expressions that involve universal_fixed multiplying operations.
8962
8963 2007-08-14  Javier Miranda  <miranda@adacore.com>
8964             Hristian Kirtchev  <kirtchev@adacore.com>
8965
8966         * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
8967         location to allow the correct generation of errors in case of
8968         restrictions applied to the expanded code.
8969         (Expand_Entry_Barrier): Remove all generated renamings for a barrier
8970         function if the condition does not reference them.
8971         (Expand_Entry_Body_Declarations): Mark the index constant as having a
8972         valid value.
8973
8974 2007-08-14  Thomas Quinot  <quinot@adacore.com>
8975             Pablo Oliveira  <oliveira@adacore.com>
8976
8977         * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
8978         typecode parameters for a union (in a variant record), remove
8979         extraneous layer of Any wrapping for member label.
8980         (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
8981         elabration statements, register the package with the name server
8982         at the beginning, not at the end, of the elaboration statements so
8983         that they can create remote access to subprogram values that designate
8984         remote subprograms from the package.
8985
8986 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
8987
8988         * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
8989         values to compute the number of seconds since the Unix Epoc in order to
8990         account for Daylight Savings Time. Perform special processing for dates
8991         that are earlier than the Unix Epoc to obtain a negative number.
8992
8993 2007-08-14  Emmanuel Briot  <briot@adacore.com>
8994
8995         * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
8996         switches.
8997
8998 2007-08-14  Eric Botcazou  <ebotcazou@adacore.com>
8999
9000         * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
9001         binder-generated file is not in Ada.
9002         Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
9003         recorded in the ALI file.
9004         Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
9005
9006 2007-08-14  Vincent Celier  <celier@adacore.com>
9007
9008         * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
9009         (Output_Source): Do nothing if parameter is No_Sdep_Id
9010
9011         * make.adb (Gnatmake): Do not rebuild an archive simply because a
9012         shared library it imports has a later time stamp.
9013         (Check): Resolve the symbolic links in the path name of the object
9014         directory.
9015         Check that the ALI file is in the correct object directory
9016         Check if a file name does not correspond to the mapping of units
9017         to file names.
9018         (Display_Version): New procedure
9019         (Initialize): Process switches --version and --help
9020         Use type Path_Name_Type for path name
9021
9022 2007-08-14  Paul Hilfinger  <hilfinger@adacore.com>
9023
9024         * impunit.adb: Re-organize System.Random_Numbers and
9025         GNAT.Random_Numbers and add to builds.
9026
9027         * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
9028
9029         * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
9030
9031         * a-assert.ads, a-assert.adb: New files.
9032
9033 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
9034
9035         * layout.adb (Layout_Type): In the case of access-to-subprogram types,
9036         if AAMP_On_Target is True, then the size of the type encompasses two
9037         addresses (a static link and a subprogram address), except in the case
9038         of library-level access types.
9039
9040 2007-08-14  Vincent Celier  <celier@adacore.com>
9041
9042         * output.ads, output.adb (Write_Eol): Remove trailing spaces before
9043         writing the line.
9044         (Write_Eol_Keep_Blanks): New procedure to write a line, including
9045         possible trailing spaces.
9046         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
9047
9048 2007-08-14  Javier Miranda  <miranda@adacore.com>
9049
9050         * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
9051         null-excluding access types.
9052
9053 2007-08-14  Javier Miranda  <miranda@adacore.com>
9054
9055         * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
9056         that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
9057         of private types add missing check on matching interfaces in the
9058         partial and full declarations.
9059         (Analyze_Protected_Type): Code cleanup.
9060         (Analyze_Task_Type): Code cleanup.
9061
9062 2007-08-14  Javier Miranda  <miranda@adacore.com>
9063
9064         * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
9065         generated interface thunk.
9066
9067 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
9068
9069         * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
9070         obsolescent warning on application of 'Class to an incomplete type.
9071
9072         * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
9073         prevent obsolescent warning on application of 'Class to an incomplete
9074         type.
9075
9076 2007-08-14  Pascal Obry  <obry@adacore.com>
9077
9078         * s-fileio.adb (Is_Open): Add check for usability of the underlying
9079         file stream.
9080
9081 2007-08-14  Cyrille Comar  <comar@adacore.com>
9082
9083         * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
9084         since it is potentially used in cases implying double finalization of
9085         the same object.
9086
9087 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
9088
9089         * s-tasini.adb (Get_Stack_Info): Move this function to
9090         System.Soft_Links.Tasking because it is common to the full and the
9091         restricted run times.
9092         (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
9093         in SSL.Tasking.Init_Tasking_Soft_Links.
9094
9095         * s-solita.adb (Get_Stack_Info): Function moved from
9096         System.Tasking.Initialization because it is common to the full and the
9097         restricted run times.
9098         (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
9099
9100 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
9101
9102         * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
9103         s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
9104         (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
9105         parameter.
9106
9107         * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
9108         guard to 12K.
9109
9110 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
9111
9112         * s-veboop.adb (SU): New named number initialized to
9113         System.Storage_Unit.
9114         (True_Val): The initialization expression is revised to use SU (=
9115         Storage_Unit) rather than assuming 8 for the component size of an
9116         unpacked Boolean array.
9117
9118 2007-08-14  Tristan Gingold  <gingold@adacore.com>
9119
9120         * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
9121
9122         * tb-ivms.c: New file.
9123
9124         * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
9125
9126 2007-08-14  Geert Bosch  <bosch@adacore.com>
9127
9128         * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
9129         s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
9130         Add required linker pragmas for automatically linking with the gnalasup
9131         linear algebra support library, and the systems math library.
9132         Rename cdot to cdotu and zdot to zdotu.
9133         Update header comment to describe purpose of package.
9134
9135 2007-08-14  Thomas Quinot  <quinot@adacore.com>
9136
9137         * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
9138         an explicitly specified Associated_Final_Chain, use that list.
9139         (Expand_N_Package_Body): Build dispatch tables of library level tagged
9140         types.
9141         (Expand_N_Package_Declaration): Build dispatch tables of library level
9142         tagged types. Minor code cleanup.
9143
9144 2007-08-14  Vincent Celier  <celier@adacore.com>
9145
9146         * gnatchop.adb (Terminate_Program): Remove exception and use
9147         Types.Terminate_Program instead.
9148
9149         * osint.ads, osint.adb (Current_Exit_Status): New global variable
9150         (Find_Program_Name): Added protection against empty name.
9151         (OS_Exit_Through_Exception): New procedure
9152
9153         * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
9154         (OS_Exit_Default): New procedure that contains the previous
9155         implementation of procedure OS_Exit.
9156         (Final_Value): Remove obsolete Interix stuff.
9157
9158 2007-08-14  Thomas Quinot  <quinot@adacore.com>
9159
9160         * g-socket.ads: Reorganize example code so that it also works on
9161         Windows XP.
9162
9163 2007-08-14  Tristan Gingold  <gingold@adacore.com>
9164
9165         * g-trasym.ads: AIX now supports symbolic backtraces.
9166
9167 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
9168
9169         * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
9170         units being loaded to detect circularities. A circularity may be
9171         present even if the current chain of pending units to load starts from
9172         a limited_with_clause.
9173
9174         * lib-load.ads: Change profile of Load_Unit to use a with_clause
9175         rather than a boolean flag, in order to detect circularities in
9176         with_clauses.
9177
9178         * par-load.adb: Use current with_clause in calls to Load_Unit, rather
9179         than propagating the From_Limited_With flag, in order to handle
9180         properly circularities involving with_clauses.
9181
9182 2007-08-14  Nicolas Setton  <setton@adacore.com>
9183
9184         * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
9185         warnings.
9186
9187 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
9188
9189         * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
9190         to build for libgnala.
9191         libgnat: Add rules to build libgnala.a
9192         (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
9193         target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
9194         Add s-osinte-vxworks-kernel.adb to the target pairs of the
9195         kernel run-time lib for VxWorks 6, which would provide a different
9196         implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
9197         x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
9198         running ZCX by default.
9199         Add g-sttsne-locking to LynxOS version.
9200         Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
9201         On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
9202
9203         * system-darwin-x86.ads: New file.
9204
9205         * Make-lang.in: Delete files before copying onto them, so if they are
9206         read-only, the copy won't fail.
9207         Update dependencies
9208
9209 2007-08-14  Pascal Obry  <obry@adacore.com>
9210
9211         * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
9212         naming scheme.
9213
9214 2007-08-14  Vincent Celier  <celier@adacore.com>
9215
9216         * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
9217         (Gcc): Initialize Gcc_Name at the first call
9218
9219 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
9220
9221         * sem_ch7.adb (Analyze_Package_Specification): Do not install private
9222         with_clauses of the enclosing unit when analyzing the package
9223         specification of a nested instance.
9224
9225 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
9226
9227         * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
9228         (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
9229         Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
9230         layout of N_Allocator.
9231
9232 2007-08-14  Thomas Quinot  <quinot@adacore.com>
9233
9234         * rtsfind.adb (Check_RPC): Add PCS version check.
9235
9236         * gnatvsn.ads, gnatvsn.adb: Add PCS version.
9237         (Gnat_Free_Software): New function.
9238
9239         * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
9240         the PCS_Version value from s-parint, used to check that it is consistent
9241         with what exp_dist expects.
9242
9243         * s-parint.ads (PCS_Version): New entity for checking consistency
9244         between exp_dist and PCS.
9245
9246         * gen-soccon.c: (SO_REUSEPORT): New constant.
9247
9248 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
9249
9250         * a-calfor.adb (Image (Duration; Boolean)): Change type of local
9251         variable Sub_Second to Duration in order to accomodate a larger range
9252         of arithmetic operations.
9253
9254 2007-08-14  Bob Duff  <duff@adacore.com>
9255
9256         * g-sttsne-locking.ads: Move comments from spec to body.
9257         * g-sttsne-locking.adb: Move comments from spec to body.
9258         * g-sttsne-vxworks.ads: Removed.
9259         * g-sttsne-vxworks.adb: Removed.
9260
9261 2007-08-11  Ian Lance Taylor  <iant@google.com>
9262
9263         * misc.c (gnat_get_alias_set): Change return type to
9264         alias_set_type.
9265
9266 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9267
9268         * decl.c, utils2.c: Fix whitespace in last change.
9269
9270 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9271
9272         * decl.c (compare_field_bitpos): Constify.
9273         * utils2.c (compare_elmt_bitpos): Likewise.
9274
9275 2007-07-27  Aurelien Jarno  <aurelien@aurel32.net>
9276
9277         * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by 
9278         anonymous access type.
9279         (pthread_sigmask): Now take an access sigset_t.
9280
9281 2007-07-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
9282
9283         * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
9284         
9285 2007-06-21  Eric Botcazou  <ebotcazou@adacore.com>
9286
9287         PR tree-optimization/25737
9288         * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
9289
9290 2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9291
9292         * trans.c (Attribute_to_gnu): When subtracting an
9293         offset from a pointer, use POINTER_PLUS_EXPR with
9294         NEGATE_EXPR instead of MINUS_EXPR.
9295         (gnat_to_gnu): Likewise.
9296         * utils.c (convert): When converting between
9297         thin pointers, use POINTER_PLUS_EXPR and sizetype
9298         for the offset.
9299         * utils2.c (known_alignment): POINTER_PLUS_EXPR
9300         have the same semantics as PLUS_EXPR for alignment.
9301         (build_binary_op): Add support for the semantics of
9302         POINTER_PLUS_EXPR's operands.
9303         When adding an offset to a pointer, use POINTER_PLUS_EXPR.
9304
9305 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
9306
9307         * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
9308         of get_signed_or_unsigned_type.
9309         * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
9310
9311 2007-06-11  Bob Duff  <duff@adacore.com>
9312             Thomas Quinot  <quinot@adacore.com>
9313
9314         * g-stsifd-sockets.adb (Create): Work around strange behavior of
9315         'bind' on windows that causes 'connect' to fail intermittently, by
9316         retrying the 'bind'.
9317         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
9318
9319 2007-06-10  Duncan Sands  <baldrick@free.fr>
9320
9321         * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
9322         than to void, for the fields when making a new fat pointer type.
9323         (gnat_substitute_in_type): Now substitute_in_type.
9324         * gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
9325         * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
9326         * utils.c (update_pointer_to): Update fat pointers by updating the
9327         dummy node pointers used for the fields.
9328
9329 2007-06-06  Thomas Quinot  <quinot@adacore.com>
9330             Bob Duff  <duff@adacore.com>
9331
9332         * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
9333         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads, 
9334         g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
9335         constant Thread_Blocking_IO, always True by default, set False
9336         on a per-runtime basis.
9337         (Need_Netdb_Buffer): New constant.
9338
9339         * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
9340         g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
9341         files.
9342
9343         * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
9344         g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
9345         Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
9346         child package Task_Safe_NetDB
9347         (Host_Error_Messages): Add stub body.
9348         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
9349
9350         * g-soccon-mingw.ads: Add Windows-specific constants.
9351         (Need_Netdb_Buffer): New constant.
9352         (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
9353         wrapper and import inet_addr(3) from the standard sockets library
9354         directly instead.
9355         (In_Addr): Add alignment clause.
9356         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
9357
9358 2007-06-06  Robert Dewar  <dewar@adacore.com>
9359
9360         * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
9361         s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
9362         s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
9363         s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
9364         s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
9365         s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
9366         a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
9367         a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
9368         a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
9369         g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
9370         g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
9371         i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
9372         s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
9373         s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
9374         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
9375         s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
9376         s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
9377         s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
9378         s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
9379         s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
9380         s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
9381         s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
9382         s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
9383         s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
9384         s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
9385         s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
9386         s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
9387         s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
9388         s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
9389         s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
9390         s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
9391         a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
9392         Unchecked_* by Ada.Unchecked_*
9393
9394 2007-06-06  Robert Dewar  <dewar@adacore.com>
9395
9396         * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
9397         s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
9398         g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
9399         output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
9400         g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
9401         a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
9402
9403         * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
9404         s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
9405         s-tasloc.adb, s-tasloc.ads: New files.
9406
9407 2007-06-06  Bob Duff  <duff@adacore.com>
9408
9409         * g-expect-vms.adb: 
9410         (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
9411         * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
9412         (Send_Signal, Close): Raise Invalid_Process if the process id is
9413         invalid.
9414         (Pattern_Matcher_Access): Is now a general access type to be able to
9415         use aliased string.
9416
9417 2007-06-06  Thomas Quinot  <quinot@adacore.com>
9418             Arnaud Charlet  <charlet@adacore.com>
9419
9420         * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
9421         (SIGEMT is now used instead of SIGTERM on AIX).
9422
9423         * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
9424         (Time_Slice_Supported): Set to True.
9425         Use SIGEMT instead of SIGTERM as SIGADAABORT.
9426
9427 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
9428
9429         * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
9430         (Time, Time)): Use To_Relative_Time rather than manual calculation to
9431         express the bounds of Duration as Time. Raise Time_Error when the
9432         result is greater or equal to the higher bound of Duration (on the
9433         margin case).
9434         ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
9435         Ada_High_And_Leaps.
9436         ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
9437         Ada_High_And_Leaps.
9438         ("-" (Time, Time)): Reorder code.
9439         (All_Leap_Seconds): Removed.
9440         (Arithmetic_Operations.Add): Remove sign related kludge.
9441         (Arithmetic_Operations.Difference): Control the leaps seconds processing
9442         with flag Leap_Support.
9443         (Arithmetic_Operations.Subtract): Remove sign related kludge.
9444         (Check_Within_Time_Bounds): New procedure.
9445         (Clock): Control the leap seconds processing with flag Leap_Support.
9446         (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
9447         (Formatting_Operations.Split): Control the leap seconds processing with
9448         flag Leap_Support.
9449         (Formatting_Operations.Time_Of): Control the leaps seconds processing
9450         with flag Leap_Support. Adjust the year, month and day (if applicable)
9451         when the value of day seconds designates a new day.
9452         (Split): Use parameter associations for better readability. Integrate
9453         flag Is_Ada_05.
9454         (Time_Of): Use parameter associations for better readability. Integrate
9455         flag Is_Ada_05.
9456
9457         * a-calfor.adb (Split): Use parameter associations for better
9458         readability. Integrate flag Is_Ada_05.
9459         (Time_Of): Remove flag Leap_Checks. Use parameter associations for
9460         better readability. Integrate flag Is_Ada_05.
9461
9462 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
9463
9464         * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb, 
9465         s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb, 
9466         s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb, 
9467         s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads, 
9468         s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb, 
9469         s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb, 
9470         s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads, 
9471         s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads, 
9472         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads, 
9473         s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
9474         s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
9475         time when entering this routine to detect a backward clock setting
9476         (manual setting or DST adjustment), to avoid waiting for a longer delay
9477         than needed.
9478         (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
9479         Remove handling of deferred priority change, and replace by setting the
9480         task priority directly, as required by AI-188.
9481         Update comments.
9482         (Max_Task_Image_Length): New constant.
9483         Replace Warnings (Off) by Unreferenced pragma, cleaner.
9484         (Dynamic_Priority_Support): Removed, no longer needed.
9485         (Poll_Base_Priority_Change): Ditto.
9486         (Set_Ceiling): Add this procedure to change the ceiling priority
9487         associated to a lock. This is a dummy implementation because dynamic
9488         priority ceilings are not supported by the underlying system.
9489
9490         * a-dynpri.adb (Set_Priority): Take into account case where Target is
9491         accepting a RV with its priority boosted.
9492         Remove handling of deferred priority change, and replace by setting the
9493         task priority directly, as required by AI-188.
9494
9495         * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
9496         Succeeded = True.
9497         Remove handling of deferred priority change, and replace by setting the
9498         task priority directly, as required by AI-188.
9499         (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
9500         of Self_Id earlier.
9501
9502         * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
9503         (Poll_Base_Priority_Change): Removed.
9504         Code clean up: use SSL.Current_Target_Exception.
9505
9506         * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
9507         to run as this is a potentially dispatching point.
9508         (Call_Synchronous): Use Local_Defer_Abort.
9509         (Callable): Relax assertion.
9510         (Selective_Wait): Relax assertion in case abort is not allowed.
9511         Remove handling of deferred priority change, and replace by setting the
9512         task priority directly, as required by AI-188.
9513
9514         * s-tasuti.adb (Make_Passive): Adjust assertions.
9515         Remove handling of deferred priority change, and replace by setting the
9516         task priority directly, as required by AI-188.
9517
9518 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
9519
9520         * system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
9521         system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
9522         system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads, 
9523         system-vxworks-mips.ads, system-vxworks-alpha.ads, 
9524         system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads, 
9525         system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads, 
9526         system-interix.ads, system-linux-hppa.ads, system-tru64.ads, 
9527         system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads, 
9528         system-solaris-sparcv9.ads, system-vms.ads, system.ads,
9529         system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
9530         system-linux-ia64.ads: Document mapping between Ada and OS priorities.
9531         This patch changes the largest non-binary modulus from 2**31-1 to
9532         2**32-1.
9533         (Compiler_System_Version): Removed, no longer used.
9534         Clean up system files by removing flags only used on a single target.
9535         Also remove obsolete flags, only used during bootstrap from system.ads
9536         (Address): Add a pragma Preelaborable_Initialization.
9537
9538         * system-aix.ads:  Ditto.
9539         (GCC_ZCX_Support): Set to true.
9540         Update priority range on AIX and map Ada priorities to target
9541         priorities appropriately for different scheduling policies.
9542
9543         * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
9544
9545 2007-06-06  Vincent Celier  <celier@adacore.com>
9546
9547         * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
9548         mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
9549
9550         * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb, 
9551         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb, 
9552         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, 
9553         mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, 
9554         mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
9555         MLib.Tgt, containing the default versions of the exported subprograms.
9556         For each platform, create a specific version of the body of new child
9557         package MLib.Tgt.Specific that contains only the body of subprograms
9558         that are different from the default.
9559         (Archive_Builder_Append_Options): New function.
9560
9561 2007-06-06  Matthew Gingell  <gingell@adacore.com>
9562
9563         * s-osinte-aix.adb: Map Ada priorities to target priorities
9564         appropriately for different scheduling policies.
9565
9566 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
9567
9568         * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
9569         its C counterpart.
9570         Remove references to Unchecked_Conversion, and use Ada.xxx instead.
9571         Replace Unchecked_Conversion by Ada.Unchecked_Conversion. 
9572
9573 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
9574
9575         * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
9576         Noop on VMS, added for interface commonality.
9577
9578 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
9579             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9580             Olivier Hainque  <hainque@adacore.com>
9581
9582         * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
9583         renamed expression of a full renaming at toplevel.
9584         (gnat_to_gnu_entity, case object): If not defining, do not look inside
9585         the values the constant is initialized to if it is an N_Allocator.
9586         (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
9587         TYPE_SIZE_UNIT of inner types after the stride is elaborated.
9588         (make_aligning_type): Accept an extra ROOM argument for storage to be
9589         made available before the aligned field, and an extra BASE_ALIGN
9590         argument for callers to pass the alignment guaranteed to be honored for
9591         the whole aligning object. Avoid call to finish_record_type, which only
9592         interferes with the sizes we want to set.
9593         (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
9594         make_aligning_type for super-aligned objects on stack.
9595         (components_to_record): Pass the adjusted size of the type when creating
9596         fields in the qualified union for the variant part.
9597         (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
9598         (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
9599         packed array type.
9600         (maybe_pad_type): Set TYPE_USER_ALIGN.
9601         (make_aligning_type): Likewise.
9602         ALIGN argument is unsigned int.
9603         (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
9604         (gnat_to_gnu_param): Likewise, for parameters.
9605         (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
9606         if it is constant and stems from a function call.
9607         (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
9608         of the record is specified.  Adjust accordingly.
9609         (adjust_packed): New static function.
9610         (gnat_to_gnu_field): Use it to adjust the packedness setting.
9611         (components_to_record): Likewise.
9612         (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
9613         side-effects if the object is deemed constant.
9614         (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
9615         type instead of merely finalizing it.  Tidy.
9616         <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
9617         <E_Access_Type>: Likewise.
9618         (defer_debug_incomplete_list): Rename to defer_finalize_list.
9619         (defer_debug_level): Delete.
9620         (gnat_to_gnu_entity) <debug_deferred>: Likewise
9621         <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
9622         type.
9623         <E_Record_Type>: Do not explicitly defer finalizing the type.
9624         Adjust for write_record_type_debug_info renaming.
9625         <E_Subprogram_Type>: Likewise.
9626         Finalize deferred types right after deferred incomplete types are
9627         expanded.
9628         (rest_of_type_decl_compilation): New global function.
9629         (components_to_record): Rename defer_debug parameter to do_not_finalize.
9630         (components_to_record): Propagate the packedness to the fields of the
9631         qualified union type if there is a variant part.
9632         (gnat_to_gnu_entity) <E_Array_Type>: Use new function
9633         instead of inline code to adjust the XUT field offsets.
9634         (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
9635         <E_Record_Subtype>: Do not let finish_record_type compute the sizes
9636         and write the debug info if the type derives from a discriminated one.
9637         (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
9638         <E_Array_Subtype>: Likewise.
9639         <E_String_Literal_Subtype>: Likewise.
9640         (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
9641         an alignment clause.
9642         (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
9643         before giving warning.
9644         (prepend_one_attribute_to): New function, helper to prepend an attribute
9645         to an attribute list.
9646         (gnat_to_gnu_entity) <E_Procedure>: Use it.
9647         (prepend_attributes): Likewise.
9648         (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
9649         <E_Array_Type>: Declare the padding type for the element type, if any.
9650         <E_Array_Subtype>: Likewise.
9651         (defer_limited_with): New variable.
9652         (Gigi_Equivalent_Type): New function.
9653         (gnat_to_gnu_entity): Use it at start and use result throughout.
9654         (gnat_to_gnu_entity, case E_Access_Type): Rework to use
9655         Gigi_Equivalent_Type, support Limited_With, allow two levels of
9656         indirection, precompute if unconstrained array to simplify logic, and
9657         use defer_limited_with to defer elaboration of some types from limited
9658         with.
9659         (finalize_from_with_types): New function.
9660
9661 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
9662             Eric Botcazou  <ebotcazou@adacore.com>
9663             Tristan Gingold  <gingold@adacore.com>
9664             Olivier Hainque  <hainque@adacore.com>
9665
9666         * trans.c (Identifier_to_gnu): Change test for deferred constant by
9667         adding guard that the entity is an E_Constant before testing presence
9668         of Full_view (and remove unnecessary test that entity is not a type).
9669         For a CONST_DECL used by reference, manually retrieve
9670         the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
9671         (struct language_function): Move from utils.c to here.
9672         (struct parm_attr): New structure.
9673         (parm_attr, parm_attr vector, parm_attr GC vector): New types.
9674         (f_parm_attr_cache): New macro.
9675         (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
9676         expressions for the 'First, 'Last and 'Length attributes of the
9677         unconstrained array IN parameters.
9678         (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
9679         Allocate the information structure for the function earlier, as well
9680         as the language-specific part.
9681         If the parameter attributes cache has been populated, evaluate the
9682         cached expressions on entry.
9683         (takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
9684         N_Procedure_Call_Statement and N_Indexed_Component.
9685         (Pragma_to_gnu): Translate inspection_point to an asm statement
9686         containaing a comment and a reference to the object (either its address
9687         for BLKmode or its value).
9688         (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
9689         to go to DECL_INITIAL. Together with the size constraint relaxation
9690         in create_var_decl, enlarges the set of situations in which an
9691         identifier may be used as an initializer without implying elaboration
9692         code.
9693         (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
9694         DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
9695         node.
9696         (maybe_stabilize_reference): Remove lvalues_only parameter.
9697         (gnat_stabilize_reference): Adjust for above change.
9698         (gnat_to_gnu): Do not set location information on the result
9699         if it is a reference.
9700         (add_cleanup): Add gnat_node parameter and set the location of the
9701         cleanup to it.
9702         (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
9703         (Exception_Handler_to_gnu_zcx): Likewise.
9704         (gigi): Remove the cgraph node if the elaboration procedure is empty.
9705         (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
9706         the former right after the latter.
9707         (start_stmt_group): Make global.
9708         (end_stmt_group): Likewise.
9709         (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
9710         vars.
9711         (gnu_program_error_label_stack): Likewise.
9712         (gigi): Initialize them.
9713         (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
9714         (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
9715         New cases.
9716         (push_exception_label_stack): New function.
9717         (takes_address): New function.
9718
9719         * utils.c (struct language_function): Move to trans.c from here.
9720         (unchecked_convert): Do not wrap up integer constants in
9721         VIEW_CONVERT_EXPRs.
9722         (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
9723         the latter for aggregate types, unexpected by later passes, and relax an
9724         arbitrary size constraint on the former.
9725         (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
9726         to compare the sizes.
9727         (convert_vms_descriptor): When converting to a fat pointer type, be
9728         prepared for a S descriptor at runtime in spite of a SB specification.
9729         (shift_unc_components_for_thin_pointers): New function.
9730         (write_record_type_debug_info): For variable-sized fields, cap the
9731         alignment of the pointer to the computed alignment.
9732         (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
9733         If REP_LEVEL is 2, do not compute the sizes.
9734         (build_vms_descriptor): Adjust for new prototype of finish_record_type.
9735         (build_unc_object_type): Likewise.
9736         (declare_debug_type): New function.
9737
9738         * ada-tree.def: USE_STMT: removed (not emitted anymore).
9739
9740         * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
9741         no statement is expandable anymore.
9742         (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
9743         (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
9744         when the user requested it explicitely.
9745         (gnat_post_options): By default, set flag_eliminate_unused_debug_types
9746         to 0 for Ada.
9747         (get_alias_set): Return alias set 0 for a type if
9748         TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
9749
9750         * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
9751         (DECL_FUNCTION_STUB): New accessor macro.
9752         (SET_DECL_FUNCTION_STUB): New setter macro.
9753
9754         * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
9755
9756         * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
9757         declarations.
9758
9759 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
9760
9761         * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
9762         Rename to Abort_Task_Interrupt to be able to keep the same interface
9763         as the rest of the targets.
9764
9765         * s-osinte-vxworks.ads s-osinte-vxworks.adb
9766         (To_VxWorks_Priority): Remove explicit "in" mode indicator
9767
9768         * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
9769         New files.
9770
9771 2007-06-06  Robert Dewar  <dewar@adacore.com>
9772
9773         * a-chahan.ads: Remove obsolescent pragmas
9774
9775         * a-chlat1.ads: Minor reformatting
9776
9777 2007-06-06  Robert Dewar  <dewar@adacore.com>
9778
9779         * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
9780         for Errout
9781
9782         * errout.adb: New Finalize/Compilation_Errors/Output_Messages
9783         implementation
9784
9785         * errout.ads (Finalize): Changed interface
9786         (Output_Messages): New procedure
9787         (Compilation_Errors): New Interface
9788
9789         * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
9790         Finalize/Output_Messages interface for Errout
9791         (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
9792         Errout.
9793
9794 2007-06-06  Thomas Quinot  <quinot@adacore.com>
9795             Olivier Hainque  <hainque@adacore.com>
9796             Robert Dewar  <dewar@adacore.com>
9797
9798         * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
9799         check.
9800         (Raise_Current_Excep): Call Debug_Raise_Exception just before
9801         propagation starts, to let debuggers know about the event in a reliable
9802         fashion.
9803         (Local_Raise): Moved to System.Exceptions
9804         More convenient to have this as a separate unit
9805
9806         * s-except.adb, s-except.ads: New files.
9807
9808         * a-exextr.adb (Unhandled_Exception): Delete - replaced by
9809         Debug_Unhandled_Exception in System.Exceptions where it belongs
9810         together with a couple of other debug helpers.
9811         (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
9812         the former Unhandled_Exception.
9813
9814         * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
9815         (Warn_No_Exception_Propagation): New procedure
9816         (Warn_If_No_Propagation): Rewritten for new warning generation
9817         (Expand_Exception_Handlers): New warning generation
9818         (Expand_N_Raise_xxx_Error): Rewritten for new warnings
9819         (Add_Exception_Label): Use Special_Exception_Package_Used for test
9820         instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
9821         (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
9822         even if restriction is set (makes life easier in Check_Returns)
9823         (Expand_Local_Exception_Handlers): Follow renamed entity chain when
9824         checking exception identities.
9825         (Expand_Local_Exception_Handlers): Do not optimize when all others case
9826         (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
9827         block for handler (used by Check_Returns)
9828         (Expand_Local_Exception_Handlers): Local_Raise now takes an address
9829         (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
9830         remove all exception handlers when optimizing local raise statements.
9831         (Find_Local_Handler): Use Get_Renamed_Entity
9832         (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
9833         marked analyzed after expanding exception handlers, do not generate
9834         redundant cleanup actions, because they have been constructed already.
9835
9836 2007-06-06  Thomas Quinot  <quinot@adacore.com>
9837
9838         * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
9839         presence of this categorization pragma is mandated by the language.
9840         (Limited_Controlled): Add missing pragma Preelaborable_Initialization
9841         for this type.
9842
9843 2007-06-06  Vincent Celier  <celier@adacore.com>
9844             Robert Dewar  <dewar@adacore.com>
9845
9846         * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb, 
9847         butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, 
9848         err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads, 
9849         fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads, 
9850         lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads, 
9851         makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb, 
9852         par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb, 
9853         prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads, 
9854         prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb, 
9855         sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb, 
9856         uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
9857         ali.ads, ali.adb: 
9858         Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
9859         package Namet. Make File_Name_Type and Unit_Name_Type types derived from
9860         Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
9861         Use variables of types File_Name_Type and Unit_Name_Type in error
9862         messages.
9863         (Get_Name): Add parameter Ignore_Special, and set it reading file name
9864         (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
9865         here.
9866         Define flags Flag217-Flag230 with associated subprograms
9867         (Flag_Word5): New record type.
9868         (Flag_Word5_Ptr): New access type.
9869         (To_Flag_Word5): New unchecked conversion.
9870         (To_Flag_Word5_Ptr): Likewise.
9871         (Flag216): New function.
9872         (Set_Flag216): New procedure.
9873
9874 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
9875
9876         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
9877         instead of 'Size.
9878
9879         * a-stwifi.ads, a-stzfix.ads: Minor reformatting
9880
9881 2007-06-06  Javier Miranda  <miranda@adacore.com>
9882
9883         * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
9884         the package.
9885         (Object_Specific_Data_Array): This is now internal to the package.
9886         (Object_Specific_Data): This is now internal to the package.
9887         (Select_Specific_Data_Element): This is now internal to the package.
9888         (Select_Specific_Data_Array): This is now internal to the package.
9889         (Select_Specific_Data): This is now internal to the package.
9890         (Offset_To_Top_Function_Ptr): This is now public.
9891         (To_Offset_To_Top_Function_Ptr): Removed.
9892         (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
9893          local to subprogram Offset_To_Top.
9894         (Predefined_DT): Removed.
9895         (Typeinfo_Ptr): Removed.
9896         (OSD): This function is now internal to this package.
9897         (SSD): This function is now internal to this package.
9898         (DT): New function that displaces the pointer to the table of primitives
9899          to get access to the enclosing wrapper record.
9900         (IW_Membership): Code cleanup.
9901         (Offset_To_Top): Code cleanup.
9902         (Predefined_DT): Removed.
9903         (Register_Interface_Tag): Removed.
9904         (Set_Interface_Table): Removed.
9905         (Set_Offset_Index): Removed.
9906         (Set_Offset_To_Top): Code cleanup.
9907         (Set_OSD): Removed.
9908         (Set_Signature): Removed.
9909         (Set_SSD): Removed.
9910         (Set_Tagged_Kind): Removed.
9911         (Typeinfo_Ptr): Removed.
9912         (TSD): Removed.
9913         (Displace): Add missing check on null actual.
9914
9915         * exp_disp.ads, exp_disp.adb
9916         (Select_Expansion_Utilities): Removed.
9917         (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
9918         (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
9919         the interface requires a new parameter.
9920         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
9921         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
9922         calls to subprograms Build_T, Build_S, etc. by the corresponding code.
9923         Done to remove package Select_Expansion_Utilities.
9924         (Make_DT): New implementation for statically allocated dispatch tables.
9925         (Make_Secondary_DT): Moved to the scope of Make_DT.
9926         (Register_Primitive): Code cleanup plus incoporate the use of the new
9927         function DT_Address_Attribute.
9928         (Expand_Interface_Thunk): The profile of this subprogram has been
9929         changed to return the Thunk_Id and the corresponding code.
9930         (Fill_DT_Entry): Removed. Its functionality is now provided by
9931         subprogram Register_Primitive.
9932         (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
9933         subprogram Register_Primitive.
9934         (Register_Primitive): New subprogram that incorporates the previous
9935         functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
9936         (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
9937         was only required to call Make_DT_Access_Action, which is now removed.
9938         (Ada_Actions): Removed
9939         (Action_Is_Proc): Removed
9940         (Action_Nb_Arg): Removed
9941         Replace all the calls to Make_DT_Access_Action by direct calls to
9942         Make_Procedure_Call_Statement or Make_Function_Call.
9943         (Set_DTC_Entity_Value): New subprogram.
9944         (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
9945         (Expand_Interface_Thunk): Add missing support for primitives that are
9946         functions with a controlling result (case in which there is no need
9947         to generate the thunk).
9948
9949         * exp_atag.ads, exp_atag.adb
9950         (Build_DT): New subprogram that displaces the pointer to reference the
9951         base of the wrapper record.
9952         (Build_Typeinfo_Offset): Removed.
9953         (RTE_Tag_Node): Removed.
9954         (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
9955         (Build_Get_RC_Offset): Removed.
9956         (Build_Inherit_Predefined_Prims): Removed.
9957         (Build_Inherit_TSD: Removed.
9958         (Build_New_TSD): Removed.
9959         (Build_Set_External_Tag): Removed.
9960         (Build_Set_Predefined_Prim_Op_Address): Add documentation.
9961         (Build_Set_Prim_Op_Address): Add documentation.
9962         (Build_Set_TSD): Removed.
9963
9964         * rtsfind.ads, rtsfind.adb
9965         (Load_Fail): If load fails and we are not in configurable run-time
9966         mode, then raise Unrecoverable_Error.
9967         (Text_IO_Kludge): Generate an error message if a run-time library is
9968         not available in a given run-time (ie. zfp run-time).
9969         (RTE_Record_Component): Add code to check that the component we search
9970         for is not found in two records in the given run-time package.
9971         (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
9972         (RE_DT_Predef_Prims_Offset): New entity
9973         (RE_Static_Offset_To_Top): New entity
9974         (RE_HT_Link): New entity.
9975         (System_Address_Image): Addition of this run-time package.
9976         (RE_Address_Image): New entity.
9977         (RE_Abstract_Interface): Removed.
9978         (RE_Default_Prim_Op_Count): Removed.
9979         (RE_DT_Entry_Size): Removed.
9980         (RE_DT_Min_Prologue_Size): Removed.
9981         (RE_DT_Prologue_Size): Removed.
9982         (RE_Ifaces_Table_Ptr): Removed.
9983         (RE_Interface_Data_Ptr): Removed.
9984         (RE_Type_Specific_Data): Removed.
9985         (RE_Primary_DT): Removed.
9986         (RE_Register_Interface_Tag): Removed.
9987         (RE_Set_Offset_Index): Removed.
9988         (RE_Set_OSD): Removed.
9989         (RE_Set_SSD): Removed.
9990         (RE_Set_Signature): Removed.
9991         (RE_Set_Tagged_Kind): Removed.
9992         (RE_Address_Array): New entity.
9993         (RE_DT): New entity.
9994         (RE_Iface_Tag): New entity.
9995         (RE_Interfaces_Table): New entity.
9996         (RE_No_Dispatch_Table): New entity.
9997         (RE_NDT_Prims_Ptr): New entity.
9998         (RE_NDT_TSD): New entity.
9999         (RE_Num_Prims): New entity.
10000         (RE_Offset_To_Top_Function_Ptr): New entity.
10001         (RE_OSD_Table): New entity.
10002         (RE_OSD_Num_Prims): New entity.
10003         (RE_Predef_Prims): New entity
10004         (RE_Predef_Prims_Table_Ptr): New entity.
10005         (RE_Primary_DT): New entity.
10006         (RE_Signature): New entity.
10007         (RE_SSD): New entity.
10008         (RE_TSD): New entity.
10009         (RE_Type_Specific_Data): New entity.
10010         (RE_Tag_Kind): New entity.
10011
10012 2007-06-06  Thomas Quinot  <quinot@adacore.com>
10013
10014         * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
10015         C imported variable.
10016         (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
10017         on entry.
10018
10019 2007-06-06  Robert Dewar  <dewar@adacore.com>
10020
10021         * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
10022         character
10023
10024 2007-06-06  Vincent Celier  <celier@adacore.com>
10025
10026         * a-tifiio.adb (Put, internal): For negative numbers, check that there
10027         is room for at least one digit and the minus sign.
10028         (Put.Put_Character): Never put a character outside of the range of
10029         string To.
10030
10031 2007-06-06  Olivier Hainque  <hainque@adacore.com>
10032             Eric Botcazou  <ebotcazou@adacore.com>
10033
10034         * utils2.c (build_allocator): Provide the extra arguments to
10035         make_aligning_type for super-aligned objects allocated from the default
10036         pool. Leave enough room for a pointer before the aligning field, and
10037         store the system's allocator return value there.
10038         (build_call_alloc_dealloc): When releasing a super-aligned object,
10039         retrieve the system's allocator return value from where build_allocator
10040         has stored it, just ahead of the adjusted address we are passed.
10041         (build_call_raise): Handle properly the generation of line numbers when
10042         the node is marked No_Location.
10043         (compare_elmt_bitpos): Use tree_int_cst_compare.  Stabilize the sort
10044         by using DECL_UID on ties.
10045         (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
10046         main variant.
10047         (build_call_raise): Handle converting exception into goto; support new
10048         argument KIND.
10049         (build_component_ref): Add new arg to build_call_raise.
10050
10051 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
10052
10053         * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
10054         "." in the case of nnn.xxx when nnn terminates with an underscore.
10055         Parse the remaining "#" or ":" in the case of nnn#.xxx#
10056
10057 2007-06-06  Robert Dewar  <dewar@adacore.com>
10058
10059         * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
10060
10061 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
10062             Vincent Celier  <celier@adacore.com>
10063             Robert Dewar  <dewar@adacore.com>
10064
10065         * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
10066         needed.
10067         (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
10068         ((destructor)) for adafinal, even when switch -a is used.
10069         Do not issue pragma Linker_Destructor for adafinal when switch -a is
10070         used.
10071         (Gen_Object_Files_Options): Add formatting of Linker Options, when
10072         Output_Linker_Option_List is set. Suppress this formatting when
10073         Zero_Formatting is set.
10074         Add case for CLI_Target.
10075         (System_Restrictions_Used): New flag, used to avoid generating with of
10076         System_Restrictions and initialization of the data unless there is
10077         some use of System.Restrictions in the partition.
10078         (Check_System_Restrictions_Used): New procedure
10079
10080         * s-stalib.adb: Remove with of System.Restrictions. No longer needed
10081         since we only with this unit in the binder file if it is used elsewhere
10082         in the partition.
10083
10084 2007-06-06  Vincent Celier  <celier@adacore.com>
10085
10086         * bindusg.adb: Add line for @<response file>
10087         Add lines for new switches -R and -Z
10088
10089         * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
10090         hierarchy in the list of files of the closure when -R is used
10091         (Gnatbind): Accept arguments starting with '@' to indicate response
10092         files and take the arguments from the response files.
10093         If List_Closure is set, display the referenced files
10094
10095 2007-06-06  Javier Miranda  <miranda@adacore.com>
10096             Robert Dewar  <dewar@adacore.com>
10097             Ed Schonberg  <schonberg@adacore.com>
10098
10099         * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
10100         which the address-clause is applied to in-mode actuals (allowed by
10101         13.1(22)).
10102         (Apply_Discriminant_Check): Do not generate a check if the type is
10103         constrained by a current instance.
10104         (Activate_Division_Check): New procedure
10105         (Activate_Overflow_Check): New procedure
10106         (Activate_Range_Check): New procedure
10107         Call these new Activate procedures instead of setting flags directly
10108         (Apply_Array_Size_Check): Removed, no longer needed.
10109         Code clean up: remove obsolete code related to GCC 2.
10110         (Get_E_Length): Protect against bomb in case scope is standard
10111         (Selected_Range_Checks): If the node to be checked is a conversion to
10112         an unconstrained array type, and the expression is a slice, use the
10113         bounds of the slice to construct the required constraint checks.
10114         Improve NOT NULL error messages
10115         (Apply_Constraint_Check): If the context is a null-excluding access
10116         type, diagnose properly the literal null.
10117
10118 2007-06-06  Pascal Obry  <obry@adacore.com>
10119
10120         * clean.adb (Clean_Archive): Use untouched casing for the archive name
10121         and the corresponding .deps file.
10122         (Clean_Interface_Copy_Directory): Use untouched casing for the library
10123         src directory. Minor code-clean-up. Use untouched casing for files
10124         read into the library src dir.
10125         (Clean_Library_Directory): Idem.
10126         (Parse_Cmd_Line): Accept new switch -aP
10127
10128 2007-06-06  Javier Miranda  <miranda@adacore.com>
10129             Ed Schonberg  <schonberg@adacore.com>
10130             Robert Dewar  <dewar@adacore.com>
10131             Eric Botcazou  <ebotcazou@adacore.com>
10132             Arnaud Charlet  <charlet@adacore.com>
10133
10134         * einfo.ads, einfo.adb (Available_View): New synthesized attribute
10135         applicable to types that have the With_Type flag set. Returns the
10136         non-limited view of the type, if available, otherwise the type itself.
10137         For class-wide types, there is no direct link in the tree, so we have
10138         to retrieve the class-wide type of the non-limited view of the Etype.
10139         New attributes Static_Initialization and Static_Elaboration_Desired.
10140         Remove the pragma Thread_Body, and the associated flag
10141         Is_Thread_Body in entities, and all related code.
10142         (Suppress_Value_Tracking_On_Call): New flag
10143         E_Exception has Esize and Alignment fields
10144         (Universal_Aliasing): New function.
10145         (Set_Universal_Aliasing): New procedure.
10146         (Write_Entity_Flags): Deal with Universal_Aliasing flag.
10147         (Check_Nested_Access): New procedure.
10148         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
10149         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
10150         (Related_Interface): New attribute. Present in dispatch table pointer
10151         components of records. Set to point to the entity of the corresponding
10152         interface type.
10153         (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
10154         (Original_Access_Type): Remove, not needed.
10155         (Root_Type): Handle properly subtypes of class-wide-types.
10156         Update comments.
10157
10158         * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
10159         class-wide types visible through limited-with clauses.
10160         (Try_Primitive_Operation): When examining all primitive operations of a
10161         tagged type, do not consider subprograms labeled as hidden unless they
10162         belong to a private generic type with a tagged parent.
10163         (Try_Object_Operation): Extensive rewriting, to handle properly various
10164         overloading cases, when several ancestors may have class-wide operations
10165         that are possible candidates, and when the overloaded functions return
10166         array types and have defaulted parameters so that the call may be
10167         interpreted as an indexing.
10168         (Analyze_Allocator): Remove Mark_Allocator and its invocation.
10169         (Process_Function_Call): use Next, rather than Next_Actual, to analyze
10170         successive actuals before analyzing the call itself.
10171         (Try_Primitive_Operation): A primitive operation is compatible with the
10172         prefix if the prefix has a synchronized type and the type of the formal
10173         is its corresponding record, as can be the case when the primitive
10174         operation is declared outside of the body of the type.
10175         (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
10176         perform homonym traversal, looking for class-wide operation matches
10177         (formerly done in statements of Try_Class_Wide_Operation). Matches on
10178         access parameters are now restricted to anonymous access types.
10179         (Mark_Allocator): An allocator with a discriminant association parent is
10180         a coextension.
10181         (Try_One_Prefix_Interpretation): If the type of the object is
10182         incomplete, as can be happen when it is a limited view obtained through
10183         a limited_with_clause, the selected component is not part of a prefixed
10184         call.
10185         (Complete_Object_Operation): Diagnose properly an object that is not
10186         aliased when the corresponding controlling formal is an access
10187         parameter.
10188         (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
10189         ambiguous calls in prefixed notation, where two primitives differ only
10190         in that the controlling argument of one is an access parameter.
10191
10192         * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
10193         whether a function that returns an unconstrained type can be inlined.
10194         (Process_Formals): Diagnose properly the illegal use of an incomplete
10195         type in the profile of an access_to_subprogram declaration.
10196         (Check_Synchronized_Overriding): Nothing check for concurrent types, the
10197         operations are attached to the corresponding record.
10198         (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
10199         When processing a primitive of a concurrent type which implements an
10200         interface change the type of all controlling formals to that of the
10201         corresponding record type.
10202         (Check_Synchronized_Overriding): Relax the conditional logic when trying
10203         to determine the tagged type to which a primitive belongs.
10204         (Check_Conventions): Capture condition to ignore a primitive operation
10205         (which is shared between the loop in Check_Conventions and the one in
10206         Check_Convention) in a new local function Skip_Check.
10207         (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
10208         confusion with Check_Conventions' own Prim_Op local variable.
10209         (Create_Extra_Formals): Test for a tagged result type rather than a
10210         controlling result when determining whether to add a BIP_Alloc_Form
10211         formal and a BIP_Final_List formal to the function.
10212         (Check_Conformance); For parameters that are anonymous access types,
10213         subtype conformance requires that the not null and the constant
10214         indicators must match
10215         (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
10216         to retrieve the appropriate type when processing a concurrent type
10217         declared within a generic. Minor comment reformatting. Change invocation
10218         of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
10219         mitive.
10220         (Analyze_Subprogram_Body): If the return type of a function is an
10221         anonymous access to the limited view of a class-wide type, and the
10222         non-limited view of the type is available, update the type of the
10223         function so that code can be generated.
10224         (Process_Formals): In case of access-subtype itype whose designated
10225         type is also an itype (situation that happens now with access to
10226         subprograms) we mark the access-type itype with the Has_Delayed_Freeze
10227         attribute to avoid backend problems.
10228         (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
10229         init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
10230         anonymous types' designated types are same before testing
10231         Subtypes_Statically_Match.
10232         (Create_Extra_Formals): Test for a named access parameter that is a
10233         controlling formal as an additional condition for adding an
10234         accessibility level formal. This can occur in the subp type created for
10235         dispatching calls in Expand_Dispatching_Call, and allows calling
10236         Create_Extra_Formals from that procedure rather than special-casing the
10237         extra formals there.
10238         (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
10239         when the function has a controlling result.
10240         (Check_Returns): Add much more knowledge of the optimization of local
10241         raise statements to gotos, to retain proper warnings in this case.
10242         (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
10243         nodes when looking for last statement.
10244
10245         * sem_type.ads, sem_type.adb (Specific_Type): Add support for
10246         class-wide types visible through limited with clauses.
10247         (Add_One_Interp): If the operands are anonymous access types, the
10248         predefined operator on universal_access is immediately visibles
10249         (Find_Unique_Type): Handle anonymous access to subprogram types just as
10250         other anonymous access types.
10251         (Disambiguate): Take into account CIL convention.
10252         (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
10253
10254 2007-06-06  Robert Dewar  <dewar@adacore.com>
10255
10256         * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
10257         sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
10258         elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
10259         Fix lower bound of tables.
10260         Add rep clauses.
10261
10262         * nlists.adb: Ditto.
10263         (Prev_Node, Next_Node): Change index type to Int so that it properly
10264         covers the range First_Node_Id - 1 up.
10265
10266 2007-06-06  Javier Miranda  <miranda@adacore.com>
10267             Ed Schonberg  <schonberg@adacore.com>
10268             Bob Duff  <duff@adacore.com>
10269             Hristian Kirtchev  <kirtchev@adacore.com>
10270
10271         * exp_aggr.ads, exp_aggr.adb: 
10272         (Build_Record_Aggr_Code): Add missing initialization of secondary tags
10273         in extension aggregates.
10274         (Flatten): Other conditions being met, an aggregate is static if the
10275         low bound given by component associations is different from the low
10276         bound of the base index type.
10277         (Packed_Array_Aggregate_Handled): If the component type is itself a
10278         packed array or record, the front-end must expand into assignments.
10279         (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
10280         Init_Pr, instead of Ancestor_Is_Expression.
10281         (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
10282         coextension chain root, either generate a list controller or use the
10283         already existing one.
10284         (Static_Array_Aggregate): New procedure to construct a positional
10285         aggregate that can be handled by the backend, when all bounds and
10286         components are compile-time known constants.
10287         (Expand_Record_Aggregate): Force conversion of aggregates of tagged
10288         types covering interface types into assignments.
10289         (Replace_Type): move to Build_Record_Aggr_Code.
10290         (Expand_Record_Aggr_Code): if the target of the aggregate is an
10291         interface type, convert to the definite type of the aggregate itself,
10292         so that needed components are visible.
10293         (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
10294         components and the context is an extended return statement do not
10295         create a transient block for it, to prevent premature finalization
10296         before the return is executed.
10297         (Gen_Assign): Do not generate a call to deep adjust routine if the
10298         component type is itself an array of controlled (sub)-components
10299         initialized with an inner aggregate.
10300         (Component_Check): New name for Static_Check. This name is now more
10301         appropriate, and documentation is added which was missing.
10302         (Component_Check): Add test for bit aligned component value
10303         (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
10304         Tagged_Comps, name is more appropriate given added function below.
10305         (Component_Not_OK_For_Backend): Check for bit aligned component ref.
10306
10307 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
10308             Javier Miranda  <miranda@adacore.com>
10309             Robert Dewar  <dewar@adacore.com>
10310
10311         * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
10312         Terminated: Add unchecked type conversion from System.Address to
10313         System.Tasking.Task_Id when calling the predefined primitive
10314         _disp_get_task_id.
10315         Disable new Ada 05 accessibility check for JVM.NET targets, which
10316         cannot be implemented in a practical way.
10317         (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
10318         the sources always references the tag of the actual object. Therefore,
10319         if 'Tag is applied in the sources to class-wide interface objects we
10320         generate code that displaces "this" to reference the base of the object.
10321         (Expand_N_Attribute_Reference, case Size): Return specified size if
10322         known to front end.
10323         (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
10324         has code that displaces the pointer of the object to manage interface
10325         types. However this code must not be executed when the prefix is a
10326         subprogram. This bug caused the wrong expansion of the internally
10327         generated assignment that fills the dispatch table when the primitive
10328         is a function returning a class-wide interface type.
10329         (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
10330         Set_Attribute_Name for Name_Unaligned_Valid.
10331
10332 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
10333             Gary Dismukes  <dismukes@adacore.com>
10334
10335         * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
10336         If the initialization is the equivalent aggregate of the initialization
10337         procedure of the type, do not remove it.
10338         (Expand_N_Attribute_Definition_Clause): Exclude access variables
10339         initialized to null from having their expression reset to empty and
10340         note this exception in the comment.
10341
10342 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
10343             Robert Dewar  <dewar@adacore.com>
10344             Ed Schonberg  <schonberg@adacore.com>
10345             Gary Dismukes  <dismukes@adacore.com>
10346
10347         * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
10348         Add "with" and "use" clauses for Sem_Attr.
10349         (Expand_Current_Value): Do not replace occurences of attribute
10350         references where the prefix must be a simple name.
10351
10352         * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
10353         Namet. Add new arrays Attribute_Name_Modifies_Prefix and
10354         Attribute_Requires_Simple_Name_Prefix.
10355         (Name_Modifies_Prefix): Body of new function.
10356         (Requires_Simple_Name_Prefix): Body of new function.
10357         (Resolve_Attribute, case Access): Improve error message for case of
10358         mismatched conventions.
10359         (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
10360         incomplete type.
10361         (Analyze_Attribute, case 'Access): If the type of the prefix is a
10362         constrained subtype for a nominal unconstrained type, use its base type
10363         to check for conformance with the context.
10364         (Resolve_Attribute): Remove test of the access type being associated
10365         with a return statement from condition for performing accessibility
10366         checks on access attributes, since this case is now captured by
10367         Is_Local_Anonymous_Access.
10368         (Analyze_Access_Attribute): Set Address_Taken on entity
10369         (Analyze_Attribute, case Address): Set Address_Taken on entity
10370         (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
10371         validating an access attribute whose prefix is a current instance.
10372         (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
10373         applied to dispatching operations, if freezing is required then we set
10374         the attribute Has_Delayed_Freeze in the prefix's entity.
10375         (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
10376         current scope if access of local subprogram taken
10377         (Analyze_Access_Attribute): Check legality of self-reference even if the
10378         expression comes from source, as when a single component association in
10379         an aggregate has a box association.
10380         (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
10381         the prefix if it is a protected operation and the attribute is
10382         Unrestricted_Access.
10383         (Resolve_Attribute, case 'Access): Set the Etype of the attribute
10384         reference to the base type of the context, to force a constraint check
10385         when the context is an access subtype with an explicit constraint.
10386         (Analyze_Attribute, case 'Class): If the prefix is an interface and the
10387         node is rewritten as an interface conversion. leave unanalyzed after
10388         resolution, to ensure that type checking against the context will take
10389         place.
10390
10391 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
10392             Javier Miranda  <miranda@adacore.com>
10393             Robert Dewar  <dewar@adacore.com>
10394
10395         * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
10396         wrapper when the full view of the controlling type of an inherited
10397         function that dispatches on result implements interfaces.
10398         (Expand_N_Object_Declaration): In cases where the type of the
10399         declaration is anonymous access, create finalization list for it.
10400         (Expand_N_Object_Declaration): Generate a persistent_bss directive only
10401         if the object has no explicit initialization, to match description of
10402         functionality of pragam Persistent_BSS.
10403         (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
10404         new function to build static aggregates, to replace initialization call
10405         when static initialization is desired.
10406         (Freeze_Type): Generate a list controller for an access type whenever
10407         its designated type has controlled anonymous access discriminants.
10408         (Build_Equivalent_Aggregate): New procedure to compute a static
10409         aggregate to be used as default initialization for composite types,
10410         instead of a generating a call to the initialization procedure for the
10411         type.
10412         (Build_Initialization_Call): When available, replace a call to the
10413         initialization procedure with a copy of the equivalent static aggregate
10414         for the type.
10415         (Expand_N_Object_Declaration):  Use New_Occurrence_Of in generated
10416         declarations for objects of a class-wide interface type, rather than
10417         just identifiers, to prevent visibility problems.
10418         (Expand_N_Object_Declaration): When expanding the declaration for an
10419         object of a class-wide interface type, preserve the homonym chain of
10420         the original entity before exchanging it with that of the generated
10421         renaming declaration.
10422         (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
10423         active, because there is no way to handle the exception.
10424         (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
10425         to do a minimum decoration of the Access_Disp_Table list.
10426         (Expand_Record_Controller): Avoid the addition of the controller between
10427         the component containing the tag of a secondary dispatch table and its
10428         adjacent component that stores the offset to the base of the object.
10429         This latter component is only generated when the parent type has
10430         discriminants ---documented in Add_Interface_Tag_Components).
10431         (Apply_Array_Size_Check): Removed, no longer needed.
10432         (Expand_N_Full_Type_Declaration): If the type has anonymous access
10433         components, create a Master_Entity for it only if it contains tasks.
10434         (Build_Init_Procedure): Suppress the tag assignment compiling under
10435         no run-time mode.
10436         (Freeze_Record_Type): Remove code associated with creation of dispatch
10437         table.
10438         (Init_Secondary_Tags): Update type of actuals when generating calls to
10439         Ada.Tags.Set_Offset_To_Top
10440         (Stream_Operation_OK): Disable use of streams compiling under no
10441         run-time mode
10442         (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
10443         if Has_Init_Expression set.
10444         (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
10445         Register_Primitive, which provides the same functionality.
10446         (Requires_Init_Proc): Return false in case of interface types.
10447         (Add_Secondary_Tables): Use the new attribute Related_Interface to
10448         cleanup the code.
10449         (Predefined_Primitive_Freeze): Do not assume that an internal entity
10450         is always associated with a predefined primitive because the internal
10451         entities associated with interface types are not predefined primitives.
10452         Therefore, the call to Is_Internal is replaced by a call to the
10453         function Is_Predefined_Dispatching_Operation.
10454         (Make_Eq_If): When generating the list of comparisons for the
10455         components of a given variant, omit the controller component that is
10456         present if the variant has controlled components.
10457
10458 2007-06-06  Javier Miranda  <miranda@adacore.com>
10459             Hristian Kirtchev  <kirtchev@adacore.com>
10460             Bob Duff  <duff@adacore.com>
10461
10462         * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
10463         handle the creation of finalization lists and calls for nested
10464         coextensions when the root of the chains is part of a return statement.
10465         (Inside_A_Return_Statement): New function inside Complete_Coextension_
10466         Finalization.
10467         (Expand_Record_Equality): Skip components that are interface types.
10468         (Displace_Allocator_Pointer): Add missing support for interface subtypes
10469         (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
10470         with Rewrite_Coextension. Change the condition for detecting coextension
10471         root nodes.
10472         (Is_Local_Access_Discriminant): Removed.
10473         (Rewrite_Coextension): New routine which rewrites a static coextension
10474         as a temporary and uses its unrestricted access in the construction of
10475         the outer object.
10476         (Complete_Coextension_Finalization): New routine. Generate finalization
10477         attachment calls to all delayed coextensions.
10478         (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
10479         the allocator is not a coextension itself and has delayed coextensions.
10480         If the current allocator is controlled, but also a coextension, delay
10481         the generation of the finalization attachment call.
10482         Rename local variable "Node" to "Nod" in order to avoid confusion with
10483         "Elists.Node".
10484         (Expand_Allocator_Expression): Call Adjust for initialized allocators of
10485         limited types that are not inherently limited. Such an allocator is
10486         illegal, but is generated by the expander for a return statement, to
10487         copy the result onto the secondary stack. This is the only case where a
10488         limited object can be copied. Generate code to displace the pointer
10489         to the object if the qualified expression is a class-wide interface
10490         object. Such displacement was missing and hence the copy of the object
10491         was wrong.
10492         (Apply_Accessibility_Check): Handle allocated objects initialized in
10493         place.
10494         (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
10495         and Expand_Allocator_Expression. Allocating class-wide interface objects
10496         this routine displaces the pointer to the allocated object to reference
10497         the component referencing the corresponding secondary dispatch table.
10498         Expand_Allocator_Expression): Add missing support to allocate class-wide
10499         interface objects initialized with a qualified expression.
10500         (Get_Allocator_Final_List): Test for an anonymous access type that is a
10501         function result type, and use the finalization list associated with the
10502         function scope in that case (such an anonymous type should not be
10503         treated like an access parameter's type).
10504
10505 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
10506             Gary Dismukes  <dismukes@adacore.com>
10507             Javier Miranda  <miranda@adacore.com>
10508
10509         * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
10510         controlled type, use Make_Handler_For_Ctrl_Operation to construct the
10511         required exception handler.
10512         (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
10513         properly the case of a function whose return type is a limited
10514         class-wide interface type. Modify the code of the accessibility
10515         check to handle class-wide interface objects. In this case we need to
10516         displace "this" to reference the primary dispatch table to get access
10517         to the TSD of the object (to evaluate its accessibility level).
10518         (Expand_N_Extended_Return_Statement): Test for a tagged result type
10519         rather than a controlling result as one of the conditions for
10520         generating tests of the implicit BIP_Alloc_Form formal. The
10521         initialization assignment is also handled according to whether the
10522         result is tagged instead of controlling.
10523         In the case where the init assignment is inserted in the "then" part of
10524         the allocation conditional, rewrite the target to be a dereference of
10525         the implicit BIP_Object_Access formal.
10526         If the returned value is unconstrained and created on the secondary
10527         stack, mark the enclosing block and function so that the secondary
10528         stack is not reclaimed on return.
10529         Treat returns from functions with controlling results similarly to
10530         returns from functions with unconstrained result subtypes.
10531         If the object returned is unconstrained, and an allocator must be
10532         created for it, analyze the allocator once the block for the extended
10533         return is installed, to ensure that finalizable components
10534         of the expression use the proper finalization list. Guard the call to
10535         Move_Final_List with a check that there is something to finalize.
10536         (Make_Tag_Ctrl_Assignment): Use "old" handling
10537         of controlled type assignment for virtual machines, since new code uses
10538         unsupported features (such as direct access to bytes in memory).
10539
10540 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
10541             Ed Schonberg  <schonberg@adacore.com>
10542
10543         * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
10544         accessibility actual, check for the case of an aliased object that has
10545         been rewritten as an Access attribute, and assign Prev to Prev_Orig so
10546         we fall into processing for the attribute rather than the name of the
10547         object.
10548         (Expand_Inline_Call): If an actual is a literal, and the corresponding
10549         formal has its address taken in the body, create a temporary to capture
10550         value.  If the return type is a limited interface, do not treat the
10551         return value as Controlled.
10552         (Is_In_Place_Function):  If the return type is a limited interface,
10553         treat as returning in place. The actual returned object may not always
10554         be limited, but the caller has to assume that it is returned in place.
10555         (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
10556         context of an allocator, use the correct finalization chain (that is,
10557         the chain belonging to the access type, rather than the chain belonging
10558         to the current scope).
10559         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
10560         result type rather than a controlling result as a precondition for
10561         adding an allocation form actual to a build-in-place call.
10562         (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
10563         (Freeze_Subprogram): Code cleanup. Remove all the code that register the
10564         primitive in the dispatch tables. This work is now done by Make_DT when
10565         the type is frozen.
10566         (Register_Predefined_DT_Entry): Removed.
10567         (Add_Return): If end label is not present, use sloc of last statement
10568         for generated return statement in procedure, for better gdb behavior
10569         on expanded code.
10570         (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
10571         object address nodes to ensure proper processing by routines like
10572         Insert_After*.
10573         (Expand_Call): Fix generation of validity check for parameter
10574         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
10575         the allocation form parameter if the result subtype is constrained,
10576         except when the function has a controlling result.
10577         (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
10578         rather than Is_Controlled and Has_Controlled_Component, since we want to
10579         include class-wide result types in this treatment. Also test for a
10580         controlling result, since that also requires passing a finalization
10581         list.
10582         (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
10583         even when the result subtype is constrained, to handle calls involving
10584         controlling results.
10585         (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
10586         is now called even when the result subtype is constrained, to handle
10587         calls involving controlling results.
10588         (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
10589         on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
10590         now performs the test).
10591         (Make_Build_In_Place_Call_In_Object_Declaration):
10592         Add_Alloc_Form_Actual_* is now called even when the result subtype is
10593         constrained, to handle calls involving controlling results.
10594         (Add_Return): Accomodate rewritten pattern from local raise to goto
10595         transformation, so that we still recognize an transfer statement
10596         and do the right thing here in that case.
10597         (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
10598         and end of subprogram code.
10599         (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
10600         support for primitives that are functions (without formals) with a
10601         controlling result.
10602         (Inherited_From_Formal): If the actual subtype has not generic parent
10603         type, it is not an actual for a formal derived type, and there is no
10604         operation to inherit from the formal.
10605
10606 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
10607             Thomas Quinot  <quinot@adacore.com>
10608
10609         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
10610         inserted cleanup code appropriately for GDB use.
10611         (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
10612         exception handler for Deep_Adjust or Deep_Finalize.
10613         (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
10614         Raise_From_Controlled_Operation is available, use a call to that
10615         subprogram instead of a plain "raise Program_Error" node to raise
10616         Program_Error if an exception is propagated from an Adjust or Finalize
10617         operation.
10618         (Insert_Actions_In_Scope_Around): If the statement to be wrapped
10619         appears in the optional statement list of a triggering alternative, the
10620         scope actions can be inserted directly there, and not in the list that
10621         includes the asynchronous select itself.
10622
10623 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
10624             Robert Dewar  <dewar@adacore.com>
10625             Hristian Kirtchev  <kirtchev@adacore.com>
10626
10627         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
10628         generated exception handler appropriately when debugging generated code.
10629         Deal properly with No_Exception_Propagation restriction mode.
10630         (Expand_N_Abort_Statement): Add an unchecked type conversion from
10631         System.Address to System.Tasking.Task_Id when processing the result of
10632         the predefined primitive _disp_get_task_id.
10633         (Expand_N_Asynchronous_Select): Clarify comment.
10634         (Expand_N_Protected_Type_Declaration): Minor code cleanup.
10635         (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
10636         (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
10637         (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
10638         privals and for generated call to Complete_Entry_Body, for better gdb
10639         behavior.
10640         (Copy_Result_Type): Utility to construct a parameter and result profile
10641         for protected functions whose return type is an anonymous access to
10642         subprogram.
10643         (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
10644         call the above.
10645         (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
10646         point when the local-raise-to-goto transformation has taken place.
10647
10648 2007-06-06  Javier Miranda  <miranda@adacore.com>
10649             Nicolas Setton  <setton@adacore.com>
10650
10651         * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
10652         functionality when the backend is generating code.
10653         Otherwise any serious error
10654         reported by the backend calling the frontend routine Error_Msg
10655         changes the Compilation_Mode to Check_Semantics, disables the
10656         functionality of this routine and causes the generation of
10657         spureous additional errors.
10658
10659         * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
10660         debugging information now generated by the compiler for fat-pointer
10661         types.
10662         Document the contents of DW_AT_producer in the GNAT Vendor extensions to
10663         DWARF2/3.
10664         Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
10665
10666 2007-06-06  Thomas Quinot  <quinot@adacore.com>
10667
10668         * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
10669         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
10670         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
10671         For a remote call to a function with a classwide return type, apply an
10672         E.4(18) check to the returned value.
10673         (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
10674         stream attributes of the designated type of an RACW, as they are not
10675         dispatching primitive operations.
10676
10677 2007-06-06  Geert Bosch  <bosch@adacore.com>
10678
10679         * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
10680         negative literal
10681         (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
10682         positive
10683         (Do_Divide_Fixed_Universal): Handle case of negative Frac.
10684         (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
10685         positive
10686         (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
10687
10688 2007-06-06  Javier Miranda  <miranda@adacore.com>
10689
10690         * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
10691         attribute compiling package Ada.Tags under No_Run_Time_Mode.
10692
10693 2007-06-06  Javier Miranda  <miranda@adacore.com>
10694
10695         * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
10696         deallocation of class-wide interface objects.
10697         (Expand_Dispatching_Constructor_Call): Take into account that if the
10698         result of the dispatching constructor is an interface type, the
10699         function returns a class-wide interface type; otherwise the returned
10700         object would be actual. The frontend previously accepted returning
10701         interface types because Expand_Interface_Actuals silently performed
10702         the management of the returned type "as if" it were a class-wide
10703         interface type.
10704         (Expand_Dispatching_Constructor_Call): Replace call to
10705         Make_DT_Access_Action by direct call to Make_Function_Call.
10706
10707 2007-06-06  Robert Dewar  <dewar@adacore.com>
10708             Ed Schonberg  <schonberg@adacore.com>
10709
10710         * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
10711         compute masking constant, since we now set Esize properly to the
10712         underlying size.
10713         (Create_Packed_Array_Type): Set proper Esize value adjusted as required
10714         to match the alignment.
10715         (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
10716         packed arrays of 8 bits or less.
10717
10718         * freeze.adb (Freeze_Entity): When freezing the formals of a
10719         subprogram, freeze the designated type of a parameter of an access type
10720         only if it is an access parameter.
10721         Increase size of C convention enumeration object
10722         (Freeze_Entity, array type case): Make sure Esize value is properly
10723         adjusted for the alignment if it is known.
10724         (Freeze_Entity, array type case): When checking bit packed arrays for
10725         the size being incorrect, check RM_Size, not Esize.
10726         (Freeze_Record_Type): Check for bad discriminated record convention
10727         (In_Exp_Body): Return true if the body is generated for a subprogram
10728         renaming, either an attribute renaming or a renaming as body.
10729         (Check_Itype): If the designated type of an anonymous access component
10730         is a non-protected subprogram type, indicate that it is frozen, to
10731         prevent out-of-scope freeze node at some subsequent call.
10732         (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
10733         only if the subprogram is neither imported nor exported, as well as the
10734         NCA descriptor class if the subprogram is exported.
10735
10736 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
10737             Arnaud Charlet  <charlet@adacore.com>
10738             Robert Dewar  <dewar@adacore.com>
10739             Gary Dismukes  <dismukes@adacore.com>
10740
10741         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
10742         default initialization on an imported object, when there is no
10743         initialization call generated for it.
10744         (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
10745         restriction
10746
10747         * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
10748         Static_Elaboration_Desired.
10749         Remove pragma Thread_Body.
10750         Implement a new pragma No_Body
10751         Removes the Explicit_Overriding pragma
10752         Remove Optional_Overriding pragma
10753         (Prag): Deal with Universal_Aliasing.
10754         (Name_CIL, Name_CIL_Constructor, Convention_CIL,
10755         Pragma_CIL_Constructor): New names.
10756
10757         * sem_cat.adb (Validate_Object_Declaration): An initialization that
10758         uses the equivalent aggregate of a type must be treated as an implicit
10759         initialization.
10760         (Get_Categorization): Check a unit for pragma Preelaborate only if it
10761         has none of the other categories.
10762         (Process_Import_Or_Interface_Pragma): Report an error for an attempt
10763         to apply Import to an object renaming declaration.
10764
10765         * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
10766         from a C++ class should be declared as limited and that it will be
10767         considererd limited.
10768         (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
10769         should be declared as limited and that it will be considererd limited.
10770         (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
10771         (Analyze_Pragma, case Export): Diagnose export of enumeration literal
10772         (Analyze_Pragma): Deal with Universal_Aliasing.
10773         (Sig_Flags): Likewise.
10774         (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
10775         (Overflow_Checks_Unsuppressed): New flag.
10776         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
10777         (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
10778         case of JVM or .NET targets, and compiling user code.
10779         Add debugging convenience routine rv
10780
10781 2007-06-06  Robert Dewar  <dewar@adacore.com>
10782
10783         * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
10784         are interface type.
10785         (Build_Elementary_Input_Call): For floating-point use right type in the
10786         absence of strange size or stream size clauses.
10787         (Build_Elementary_Write_Call): Same fix
10788         (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
10789         set to value that does not match base type size.
10790
10791 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
10792
10793         * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
10794         object of a limited type can be initialized with a call to a function
10795         that returns in place. If the limited type has unknown discriminants,
10796         and the underlying type is a constrained composite type, build an actual
10797         subtype from the function call, as is done for private types.
10798         (Side_Effect_Free): An expression that is the renaming of an object or
10799         whose prefix is the renaming of a object, is not side-effect free
10800         because it may be assigned through the renaming and its value must be
10801         captured in a temporary.
10802         (Has_Controlled_Coextensions): New routine.
10803         (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
10804         as is done for other limited types.
10805         (Non_Limited_Designated_Type): new predicate.
10806         (Make_CW_Equivalent_Type): Modified to handle class-wide interface
10807         objects.
10808         Remove all handling of with_type clauses.
10809
10810         * par-ch10.adb: Remove all handling of with_type clauses.
10811
10812         * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
10813         checksum if the main source could not be parsed.
10814         (Loat_Unit): When processing a child unit, determine properly whether
10815         the parent unit is a renaming when the parent is itself a child unit.
10816         Remove handling of with_type clauses.
10817
10818         * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
10819         (Set_Is_Static_Coextension): New procedure.
10820         (Has_Local_Raise): New function
10821         (Set_Has_Local_Raise): New procedure
10822         (Renaming_Exception): New field
10823         (Has_Init_Expression): New flag
10824         (Delay_Finalize_Attach): Remove because flag is obsolete.
10825         (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
10826         Remove all handling of with_type clauses.
10827         (Exception_Junk): Can now be set in N_Block_Statement
10828
10829 2007-06-06  Vincent Celier  <celier@adacore.com>
10830             Robert Dewar  <dewar@adacore.com>
10831
10832         * frontend.adb (Frontend): Return immediately if the main source could
10833         not be parsed, because of preprocessing errors.
10834
10835         * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
10836         (Gnat1drv): Exit with errors if the main source could not be parsed,
10837         because of preprocessing errors.
10838         (Check_Rep_Info): New procedure
10839
10840 2007-06-06  Robert Dewar  <dewar@adacore.com>
10841
10842         * g-hesorg.ads, g-heasor.ads,
10843         g-busorg.ads, g-bubsor.ads: Update documentation
10844         GNAT.Heap/Bubble_Sort_G is now pure
10845
10846 2007-06-06  Robert Dewar  <dewar@adacore.com>
10847
10848         * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
10849
10850 2007-06-06  Robert Dewar  <dewar@adacore.com>
10851             Ed Schonberg  <schonberg@adacore.com>
10852
10853         * g-comlin.ads, g-comlin.adb: 
10854         Add new warning for renaming of function return objects
10855
10856         * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
10857         (Tree_Read): Use size of object instead of type'object_size, since the
10858         latter is incorrect for packed array types.
10859         (Tree_Write): Same fix
10860
10861         * opt.ads: Add new warning for renaming of function return objects
10862         (Generating_Code): New boolean variable used to indicate that the
10863         frontend as finished its work and has called the backend to process
10864         the tree and generate the object file.
10865         (GCC_Version): Is now private
10866         (Static_Dispatch_Tables): New constant declaration.
10867         (Overflow_Checks_Unsuppressed): New flag.
10868         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
10869         (List_Closure): New flag for gnatbind (-R)
10870         Zero_Formatting: New flag for gnatbind (-Z)
10871         (Special_Exception_Package_Used): New flag.
10872         (Warn_On_Unrepped_Components): New flag.
10873
10874         * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
10875         unit is a compilation unit, rather than relying on its scope, so that
10876         Standard can be renamed.
10877         (Analyze_Object_Renaming): Add new warning for renaming of function
10878         return objects.
10879         Also reject attempt to rename function return object in Ada 83 mode.
10880         (Attribute_Renaming): In case of tagged types, add the body of the
10881         generated function to the freezing actions of the type.
10882         (Find_Type): A protected type is visible right after the reserved word
10883         "is" is encountered in its type declaration. Set the entity and type
10884         rather than emitting an error message.
10885         (New_Scope): Properly propagate Discard_Names to inner scopes
10886         (Check_Nested_Access): New procedure.
10887         (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
10888         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
10889
10890         * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
10891         Add new warning for renaming of function return objects
10892         (Check_References): Suppress warnings for objects whose type or
10893         base type has Warnings suppressed.
10894         (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
10895         (Set_Warning_Switch): Include new -gnatwc in -gnatwa
10896
10897 2007-06-06  Vincent Celier  <celier@adacore.com>
10898             Emmanuel Briot  <briot@adacore.com>
10899             Olivier Hainque  <hainque@adacore.com>
10900
10901         * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
10902         absolute value of Header.Block_Size when displaying the freed physical
10903         memory in traces.
10904         (Allocate): Compute Storage_Address using Integer_Address, not
10905         Storage_Offset, because the range of Storage_Offset may not be large
10906         enough.
10907         (Configure): New parameter Low_Level_Traces
10908         (Allocate, Deallocation, Free_Physically): Added low-level traces
10909         (Configure): new parameter Errors_To_Stdout.
10910         (Output_File): new subprogram
10911         (Deallocate, Dereference): Send error messages to the proper stream
10912         (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
10913         documented. Previous code would send it to the current output file
10914         defined in GNAT.IO, which might not be stdout
10915         (Is_Valid): Adjust comment to mention that a positive reply means that
10916         Header_Of may be used to retrieve the allocation header associated with
10917         the subprogram Storage address argument. Return False early if this
10918         address argument is misaligned.
10919
10920 2007-06-06  Vincent Celier  <celier@adacore.com>
10921
10922         * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
10923         switch -P
10924         (ASIS_Main): New global variable
10925         (Get_Closure): New procedure
10926         (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
10927         check, metric or pretty. Call Get_Closure in this case.
10928         (Check_Files): For GNAT LIST, check all sources of all projects when
10929         All_Projects is True.
10930         (GNATCmd): Accept -U for GNAT LIST
10931
10932 2007-06-06  Vincent Celier  <celier@adacore.com>
10933
10934         * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
10935         has been specified
10936         Correct error message when invocation of the linker fails
10937         Add explicit size clause for the C imported variables
10938         Object_List_File_Supported and Using_GNU_Linker to emphasize that
10939         we expect char size.
10940         Read target parameters earlier, since this is needed to set
10941         Target_VM properly. Also do not use -static/shared-libgcc for non GCC
10942         targets.
10943
10944 2007-06-06  Vincent Celier  <celier@adacore.com>
10945
10946         * gnatls.adb: 
10947         Add 3 spaces before the default project directory when displaying
10948         the project search path.
10949         Add new command line switch '-l' to display license information.
10950
10951 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
10952
10953         * gmem.c: Add support for timestamps on memory operations.
10954
10955         * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
10956         operations (not used currently, just foundation for future
10957         enhancements). Add possibility to perform full dump of gmem.out file.
10958         (Print_Back_Traces): Declare accesses to root arrays constants since
10959         they aren't modified.
10960         (Print_Back_Traces): allocate root arrays on the heap rather than stack.
10961
10962 2007-06-06  Vincent Celier  <celier@adacore.com>
10963
10964         * gnatsym.adb: Update Copyright notice
10965         (Parse_Cmd_Line): Accept new switch -D
10966         (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
10967          file.
10968
10969         * prj.ads (Policy): New policy Direct
10970         (Yes_No_Unknown): New enumeration type
10971         (Project_Data): New component Libgnarl_Needed
10972
10973         * prj-nmsc.adb (Check_For_Source): When recording a source file make
10974         use the untouched pathname casing.
10975         (Get_Directories): Ensure that the Display_Exec_Directory is using the
10976         proper casing on non case-sensitive platforms like Windows.
10977         (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
10978         on all platforms, as it is not possible to know which one is allowed
10979         before processing the project files.
10980         (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
10981         specified when symbol policy is Direct. Check that when there is a
10982         symbol file defined (either by default or with attribute
10983         Library_Symbol_File) it is not the same as the reference symbol file.
10984         (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
10985         (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
10986         extending projects.
10987         (Record_Ada_Source): Record a source that has been locally removed in an
10988         imported project.
10989
10990         * symbols.ads (Policy): New policy Direct
10991
10992         * symbols-vms.adb (Initialize): Take new policy Direct in case
10993         statement
10994
10995 2007-06-06  Vincent Celier  <celier@adacore.com>
10996
10997         * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
10998         Correct obvious bug (return Dir; instead of return Directory;).
10999         (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
11000
11001 2007-06-06  Thomas Quinot  <quinot@adacore.com>
11002
11003         * g-pehage.adb (Produce): Open output files in Binary mode, so that
11004         they have UNIX line endings (LF only) even on Windows, and thus pass
11005         all GNAT style checks.
11006
11007 2007-06-06  Emmanuel Briot  <briot@adacore.com>
11008
11009         * g-regpat.adb (Quote): Fix improper quoting of '.'
11010
11011 2007-06-06  Thomas Quinot  <quinot@adacore.com>
11012
11013         * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
11014         default, set False on a per-runtime basis.
11015         (Need_Netdb_Buffer): New constant.
11016
11017         * g-socket.ads, g-socket.adb: Import new package
11018         GNAT.Sockets.Thin.Task_Safe_NetDB.
11019         (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
11020         binding to obtain proper message.
11021         (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
11022         Replace various occurrences of Arry (Arry'First)'Address with the
11023         equivalent Arry'Address (GNAT always follows implementation advice from
11024         13.3(14)).
11025         (Get_Host_By_Address, Get_Host_By_Name,
11026         Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
11027         instead, rely on platform-specific task safe netdb operations provided
11028         by g-socthi.
11029
11030         * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
11031         parameter Process_Blocking_IO.
11032         (Host_Error_Messages): Add stub body.
11033         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
11034         (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
11035         Safe_Getservbyport): Move functions into new child package
11036         Task_Safe_NetDB.
11037         (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
11038         Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
11039         (In_Addr): Add alignment clause.
11040
11041 2007-06-06  Robert Dewar  <dewar@adacore.com>
11042
11043         * g-trasym.ads, g-traceb.ads: Update list of supported targets
11044         Add note about symbolic traceback
11045
11046 2007-06-06  Pascal Obry  <obry@adacore.com>
11047
11048         * hostparm.ads (Normalized_CWD): Use the host directory separator
11049         instead of the hardcoded forward slash which is not the proper
11050         character on Windows for example.
11051         (Java_VM): Removed.
11052
11053 2007-06-06  Vincent Celier  <celier@adacore.com>
11054             Arnaud Charlet  <charlet@adacore.com>
11055
11056         * a-clrefi.adb, a-clrefi.ads: New files
11057
11058         * impunit.adb: Add s-os_lib in the list of user visible units.
11059         (Non_Imp_File_Names_95): Add a-clrefi to this list
11060         Remove obsolete run-time entries.
11061         (Non_Imp_File_Names_05): Add Ada 2005 entries for:
11062          "a-exetim" -- Ada.Execution_Time
11063          "a-extiti" -- Ada.Execution_Time.Timers
11064
11065         * mlib-prj.ads, mlib-prj.adb
11066         (Build_Library): Use untouched object dir and library dir. At the
11067         same time makes sure that the checks are done using the canonical
11068         form. Removes hard-coded directory separator and use the proper host
11069         one instead.
11070         (Process_Project): Do not look in object directory to check if libgnarl
11071         is needed for a library, if there is no object directory.
11072         (Build_Library): Scan the ALI files to decide if libgnarl is needed for
11073         linking.
11074         (Build_Library): When invoking gnatbind, use a response file if the
11075         total size of the arguments is too large.
11076
11077         * Makefile.rtl: (g-sttsne): New object file.
11078         Add entry for a-clrefi, s-utf_32, System.Exceptions
11079
11080         * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
11081         (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
11082         (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
11083         Change g-string to s-string, g-os_lib to s-os_lib
11084         Change all g-utf_32 references to s-utf_32
11085
11086 2007-06-06  Tristan Gingold  <gingold@adacore.com>
11087             Olivier Hainque  <hainque@adacore.com>
11088
11089         * init.c: Do not adjust IP of an imported VMS exception of ia64.
11090         LIB$STOP is called to raise an exception and the IP of the exception
11091         is the instruction right after the call.
11092         (__gnat_adjust_context_for_raise, AIX): Implement.
11093         (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
11094          adjust_context_for_raise before Raise_From_Signal_Hanler.
11095         (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
11096         siginfo is passed to the handler, necessary to let the zcx propagation
11097         engine unwind past it.
11098
11099 2007-06-06  Olivier Hainque  <hainque@adacore.com>
11100
11101         * initialize.c (__gnat_initialize for vxworks):  Update documentation
11102         on the ZCX support, using different sets of crtstuff objects than with
11103         GCC 3.4.
11104
11105 2007-06-06  Robert Dewar  <dewar@adacore.com>
11106
11107         * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
11108         spec from body
11109         (Layout_Type): Fix recomputation of size from alignment.
11110
11111 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
11112             Javier Miranda  <miranda@adacore.com>
11113
11114         * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
11115         association in an instance.
11116         (Copy_Generic_Node): If the node is a string literal, no need to copy
11117         its descendants.
11118         (Is_Generic_Formal): For a formal subprogram, the declaration is the
11119         grandparent of the entity.
11120         (Analyze_Formal_Interface_Type): Transform into a full type declaration,
11121         to simplify handling of formal interfaces that derive from other formal
11122         interfaces.
11123         (Instantiate_Subprogram_Body): The defining unit name of the body of
11124         the instance should be a defining identifier.
11125         (Install_Formal_Packages): make global to the package, for use in
11126         instantiations of child units.
11127         (Analyze_Package_Instantiation): Do not attempt to set information on an
11128         enclosing master of an entry when expansion is disabled.
11129         (Instantiate_Type): If the actual is a tagged synchronized type and the
11130         generic ancestor is an interface, create a generic actual for the
11131         corresponding record.
11132         (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
11133         declaration, to ensure that the interface list is processed correctly.
11134         (Inline_Instance_Body): If enclosing scope is an instance body, remove
11135         its entities from visibiility as well.
11136         (Pre_Analyze_Actuals): if the actual is an allocator with  constraints
11137         given with a named association, analyze the expression only, not the
11138         discriminant association itself.
11139         (Reset_Entity): If the analysis of a selected component is transformed
11140         into an expanded name in the prefix of a call with parameters, do not
11141         transform the original node into an expanded name, to prevent visibility
11142         errors in the case of nested generics.
11143         (Check_Private_View): For an array type, check whether the index types
11144         may need exchanging.
11145
11146 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
11147             Vincent Celier  <celier@adacore.com>
11148
11149         * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
11150         since both are separated.
11151         Add support for imported CIL packages.
11152         Add further special handling of "value_type" for CIL.
11153         Add special handling of pragma Import for CIL.
11154
11155         * make.ads, make.adb: When switch -eS is used, direct all outputs to
11156         standard output instead of standard error, except errors.
11157         (Absolute_Path): Use untouched casing for the parent directory.
11158         (Add_Library_Search_Dir): Use the untouched directory name.
11159         (Add_Source_Search_Dir): Idem.
11160         (Change_To_Object_Directory): Update output to use proper casing.
11161         (Create_Binder_Mapping_File): Use the untouched filename to set
11162         ALI_Name.
11163         (Gnatmake): Use untouched library and executable directory names.
11164         (Insert_Project_Sources): Use untouched filename for spec and body.
11165         (Is_In_Object_Directory): Use untouched object directory.
11166         (Mark_Directory): Idem.
11167         (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
11168         contains the non-canonical filename in all cases.
11169         (Change_To_Object_Directory): In verbose mode, display the name of the
11170         object directory we're changing to.
11171         (Compile_Sources): Make sure, when a project file is used, to compile
11172         the body of the unit, when there is one, even when only the spec is
11173         recorded in an ALI file.
11174         (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
11175         spec to the body.
11176         (Report_Compilation_Failed): New procedure
11177         (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
11178         procedures moved from the spec to the body.
11179         (Extract_Failure): Removed, not used
11180         Replace explicit raises of exception Bind_Failed and Link_Failed with
11181         calls to Make_Failed with the proper message.
11182         Replace explicit raises of exception Compilation_Failed with calls to
11183         procedure Report_Compilation_Failed.
11184         (Initialize): Create mapping files unconditionally when using project
11185         files.
11186
11187         * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
11188         Pragma_CIL_Constructor): New names.
11189
11190         * targparm.ads, targparm.adb
11191         (Compiler_System_Version): Removed, no longer used.
11192         (Get_Target_Parameters): Relax checks on system.ads validity. Add
11193         handling of two new system flags: JVM and CLI.
11194
11195 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
11196             Arnaud Charlet  <charlet@adacore.com>
11197
11198         * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
11199         time, use the default s-interr body that provides interrupt support
11200         based on signals.
11201         (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
11202         a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
11203         g-soccon.ads, and s-taprop.adb for the marte run time.
11204         (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
11205         timers are supported on marte.
11206         (EH_MECHANISM for marte): Do not use ZCX.
11207         (THREADSLIB for marte): Use -lmarte.
11208         Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
11209         Add mlib-tgt-specific.o to gnatmake objects
11210         mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
11211         longer of MLib.Tgt.
11212         (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
11213         6, either kernel or rtp, use a specialized version of s-osinte.ads.
11214
11215 2007-06-06  Pascal Obry  <obry@adacore.com>
11216
11217         * mkdir.c (__gnat_mkdir): Add support for UTF-8.
11218
11219 2007-06-06  Vincent Celier  <celier@adacore.com>
11220
11221         * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
11222         separator, use instead the proper host directory separator.
11223         (Copy_ALI_Files): Make sure that an already existing ALI file in the
11224         ALI copy dir is writable, before doing the copy.
11225
11226         * mlib-utl.ads, mlib-utl.adb: 
11227         (Gcc): If length of command line is too long, put the list of object
11228         files in a response file, if this is supported by the platform.
11229         (Ar): If invocation of the archive builder is allowed to be done in
11230         chunks and building it in one shot would go above an OS dependent
11231         limit on the number of characters on the command line, build the archive
11232         in chunks.
11233
11234 2007-06-06  Vincent Celier  <celier@adacore.com>
11235
11236         * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
11237         of specified object file is not equal to base name of source.
11238
11239 2007-06-06  Javier Miranda  <miranda@adacore.com>
11240             Hristian Kirtchev  <kirtchev@adacore.com>
11241             Ed Schonberg  <schonberg@adacore.com>
11242
11243         * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
11244         the full type declaration.
11245         (Analyze_Component_Declaration): Add local variable E to capture the
11246         initialization expression of the declaration. Replace the occurences of
11247         Expression (N) with E.
11248         (OK_For_Limited_Init_In_05): Allow initialization of class-wide
11249         limited interface object with a function call.
11250         (Array_Type_Declaration): If the declaration lacks subtype marks for
11251         indices, create a simple index list to prevent cascaded errors.
11252         (Is_Null_Extension): Ignore internal components created for secondary
11253         tags when checking whether a record extension is a null extension.
11254         (Check_Abstract_Interfaces): Add missing support for interface subtypes
11255         and generic formals.
11256         (Derived_Type_Declaration): Add missing support for interface subtypes
11257         and generic formals.
11258         (Analyze_Object_Declaration): If an initialization expression is
11259         present, traverse its subtree and mark all allocators as static
11260         coextensions.
11261         (Add_Interface_Tag_Component): When looking for components that may be
11262         secondary tags, ignore pragmas that can appear within a record
11263         declaration.
11264         (Check_Abstract_Overriding): an inherited function that dispatches on
11265         result does not need to be overriden if the controlling type is a null
11266         extension.
11267         (Mentions_T): Handle properly a 'class attribute in an anonymous access
11268         component declaration, when the prefix is an expanded name.
11269         (Inherit_Component): If the derivation is for a private extension,
11270         inherited components remain visible and their ekind should not be set
11271         to Void.
11272         (Find_Type_Of_Object): In the case of an access definition, always set
11273         Is_Local_Anonymous_Access. We were previously not marking the anonymous
11274         access type of a return object as a local anonymous type.
11275         (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
11276         range with character literal bounds.
11277         (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
11278         (Access_Subprogram_Declaration): Indicate that the type declaration
11279         depends on an incomplete type only if the incomplete type is declared
11280         in an open scope.
11281         (Analyze_Subtype_Declaration): Handle properly subtypes of
11282         synchronized types that are tagged, and that may appear as generic
11283         actuals.
11284         (Access_Subprogram_Declaration): An anonymous access to subprogram can
11285         appear as an access discriminant in a private type declaration.
11286         (Add_Interface_Tag_Components): Complete decoration of the component
11287         containing the tag of a secondary dispatch table and the component
11288         containing the offset to the base of the object (this latter component
11289         is only generated when the parent type has discriminants --as documented
11290         in this routine).
11291         (Inherit_Components): Use the new decoration of the tag components to
11292         improve the condition that avoids inheriting the components associated
11293         with secondary tags of the parent.
11294         (Build_Discriminanted_Subtype): Indicate to the backend that the
11295         size of record types associated with dispatch tables is known at
11296         compile time.
11297         (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
11298         (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
11299         to include task, protected, and synchronized interfaces as limited
11300         interfaces.
11301         (Process_Discriminants): Remove the setting of
11302         Is_Local_Anonymous_Access on the type of (anonymous) access
11303         discriminants of nonlimited types.
11304         (Analyze_Interface_Type_Declaration): Complete the decoration of the
11305         class-wide entity it is is already present. This situation occurs if
11306         the limited-view has been previously built.
11307         (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
11308         field.
11309         (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
11310         Related_Interface.
11311
11312 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
11313
11314         * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
11315         of the type that specify the position of interface tags when the type
11316         inherits discriminated array components from the parent type.
11317         If a component is initialized with a box, check for the presence of a
11318         default expression in its declaration before using its default
11319         initialization procedure.
11320         (Resolve_Record_Aggregate): If a component is box-initialized, and the
11321         component type has a discriminants, create a partial aggregate for it
11322         by copying the discriminants of the component subtype.
11323         Reject attempt to initialize a discriminant with a box.
11324         (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
11325         associated with dispatch tables is known at compile time.
11326         (Get_Value): If an association in a record aggregate has a box
11327         association, and the corresponding record component has a default
11328         expression, always copy the default expression, even when the
11329         association has a single choice, in order to create a proper
11330         association for the expanded aggregate.
11331
11332 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
11333             Robert Dewar  <dewar@adacore.com>
11334
11335         * par-ch12.adb (P_Generic_Associations): The source position of an
11336         Others association is that of the others keyword, not that of the token
11337         that follows the box.
11338         (P_Formal_Type_Definition): Handle formal access types that carry a
11339         not null indicator.
11340
11341         * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
11342         multiple identifier are present, save Scan_State before scanning the
11343         colon, to ensure that separate trees are constructed for each
11344         declaration.
11345         (P_Identifier_Declarations): For object declaration, set new flag
11346         Has_Init_Expression if initialization expression present.
11347         (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
11348         Improve NOT NULL error messages
11349
11350 2007-06-06  Robert Dewar  <dewar@adacore.com>
11351
11352         * par-ch4.adb: (P_Name): Recover from literal used as name
11353
11354 2007-06-06  Vincent Celier  <celier@adacore.com>
11355
11356         * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
11357         defaulted to False.
11358         In the "not" case, recursive call with Complemented set to True.
11359         Do not allow "or" or "and" operators when Complemented is True.
11360
11361 2007-06-06  Vincent Celier  <celier@adacore.com>
11362
11363         * prj.adb (Project_Empty): Gives default value for new component
11364         Libgnarl_Needed
11365
11366         * prj-attr.ads: Minor reformatting
11367
11368         * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
11369         directory using the untouched casing.
11370         (For_All_Source_Dirs): Idem.
11371
11372         * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
11373         directories specified with switches -aP.
11374         (Add_Search_Project_Directory): New procedure
11375         (Initialize_Project_Path): Put the directories in table
11376         Search_Directories in the project search path.
11377         (Initialize_Project_Path): For VMS, transform into canonical form the
11378         project path.
11379
11380 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
11381
11382         * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
11383         true if configurable run-time or No_Run_Time is set.
11384         (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
11385         processing an unit which is not the one being compiled.
11386
11387 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
11388
11389         * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
11390         Replace UC by Ada.UC
11391
11392         * s-bitops.adb: Get rid of System.Pure_Exceptions.
11393         Replace UC by Ada.UC
11394
11395 2007-06-06  Robert Dewar  <dewar@adacore.com>
11396
11397         * scng.adb: (Check_End_Of_Line): Deal with very long lines
11398
11399 2007-06-06  Robert Dewar  <dewar@adacore.com>
11400
11401         * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
11402         Remove no longer used nodes.
11403
11404 2007-06-06  Javier Miranda  <miranda@adacore.com>
11405             Ed Schonberg  <schonberg@adacore.com>
11406             Robert Dewar  <dewar@adacore.com>
11407
11408         * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
11409         on obsolescent withed unit in case of limited-withed units.
11410         (Analyze_Compilation_Unit): Add guard to code that removed an
11411         instantiation from visibility, to prevent compiler aborts when
11412         instantiation is abandoned early on.
11413         (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
11414         current unit being analyzed, and Distinguish local incomplete types
11415         from limited views of types declared elsewhere.
11416         (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
11417         to state that the class-wide entity is shared by the limited-view
11418         and the full-view.
11419         (Analyze_With_Clause): Improve placement of flag for case of
11420         unimplemented unit.
11421         (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
11422         manner similar to GNAT.Current_Exception. This is a violation of
11423         restriction (No_Exception_Propagation), and also inhibits the
11424         optimization of local raise to goto.
11425         (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
11426         and if so set Most_Recent_Exception_Used flag in Opt, and also check
11427         for violation of restriction No_Exception_Propagation.
11428
11429 2007-06-06  Javier Miranda  <miranda@adacore.com>
11430             Hristian Kirtchev  <kirtchev@adacore.com>
11431             Gary Dismukes  <dismukes@adacore.com>
11432
11433         * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
11434         use of entity Exception_Occurrence if it is not available in the
11435         target run-time.
11436
11437         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
11438         concurrent types are declared within an Ada 2005 generic, build their
11439         corresponding record types since they are needed for overriding-related
11440         semantic checks.
11441         (Analyze_Protected_Type): Rearrange and simplify code for testing that a
11442         protected type does not implement a task interface or a nonlimited
11443         interface.
11444         (Analyze_Task_Type): Rearrange and simplify code for testing that a task
11445         type does not implement a protected interface or a nonlimited interface.
11446         (Single_Task_Declaration, Single_Protected_Declaration): use original
11447         entity for variable declaration, to ensure that debugging information
11448         is correcty generated.
11449         (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
11450         routines if the expander is not active.
11451         (Analyze_Task_Body): Mark all handlers to stop optimization of local
11452         raise, since special things happen for task exception handlers.
11453
11454         * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
11455         concurrent types declared within a generic.
11456         (Check_Dispatching_Operation): Do not emit warning about late interface
11457         operations in the context of an instance.
11458         (Check_Dispatching_Call): Remove restriction against calling a
11459         dispatching operation with a limited controlling result.
11460         (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
11461         Register_Interface_DT_Entry by calls to Register_Primitive.
11462         (Check_Dispatching_Formals): Handle properly a function with a
11463         controlling access result.
11464
11465 2007-06-06  Robert Dewar  <dewar@adacore.com>
11466             Arnaud Charlet  <charlet@adacore.com>
11467
11468         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
11469         Check for restriction No_Implementation_Attributes if in Ada 95 mode.
11470         (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
11471         (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
11472         message when using a VM, since this attribute is not supported.
11473         (Analyze_Record_Representation_Clause): Give unrepped component warnings
11474
11475         * usage.adb: Add new warning for renaming of function return objects
11476         Indicate that -gnatwp and -gnatwP concern front-end inlining
11477         Add line for -gnatyg
11478         Add usage information for -gnatw.c/C
11479
11480 2007-06-06  Robert Dewar  <dewar@adacore.com>
11481             Ed Schonberg  <schonberg@adacore.com>
11482
11483         * sem_ch5.adb
11484         (Find_Var): Do not consider function call in test for infinite loop
11485         warning if warnings set off for function entity.
11486         (One_Bound): Do not create a temporary for a loop bound if it is a
11487         character literal.
11488         (Analyze_Assignment): Traverse the right hand side of an assignment and
11489         mark all allocators as static coextensions.
11490         (Analyze_Assignment): Exempt assignments involving a dispatching call
11491         to a function with a controlling access result from the check requiring
11492         the target to be class-wide.
11493
11494 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
11495             Ed Schonberg  <schonberg@adacore.com>
11496             Robert Dewar  <dewar@adacore.com>
11497             Javier Miranda  <miranda@adacore.com>
11498
11499         * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
11500         chain of coextensions when an allocator serves as the root of such a
11501         chain.
11502         (Propagate_Coextensions): Remove the test for the root being an
11503         allocator.
11504         (Resolve_Allocator): Add condition to ensure that all future decoration
11505         occurs on an allocator node. Add processing and cleanup for static
11506         coextensions.
11507         (Valid_Conversion): If the operand type is the limited view of a
11508         class-wide type, use the non-limited view is available to determine
11509         legality of operation.
11510         (Ambiguous_Character): move to spec, for use elsewhere.
11511         (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
11512         (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
11513         character literals.
11514         (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
11515         Do_Division_Check flag explicitly.
11516         (Resolve_Actuals): If the actual is of a synchronized type, and the
11517         formal is of the corresponding record type, this is a call to a
11518         primitive operation of the type, that is declared outside of the type;
11519         the actual must be unchecked-converted to the type of the actual
11520         (Resolve_Call): Kill all current values for any subprogram call if
11521         flag Suppress_Value_Tracking_On_Call is set.
11522         (Resolve_Type_Conversion): Generate error message the the operand
11523         or target of interface conversions come from a limited view.
11524         (Check_Infinite_Recursion): Ignore generated calls
11525         (Check_Allocator_Discrim_Accessibility): New procedure for checking
11526         that an expression that constrains an access discriminant in an
11527         allocator does not denote an object with a deeper level than the
11528         allocator's access type.
11529         (Resolve_Allocator): In the case of an allocator initialized by an
11530         aggregate of a discriminated type, check that associations for any
11531         access discriminants satisfy accessibility requirements by calling
11532         Check_Allocator_Discrim_Accessibility.
11533         (Resolve_Equality_Op): Handle comparisons of anonymous access to
11534         subprogram types in the same fashion as other anonymous access types.
11535         (Resolve_Concatenation_Arg): Remove initial character '\' in an error
11536         message that is not a continuation message.
11537         (Resolve_Type_Conversion): Add missing support for conversion to
11538         interface type.
11539         (Resolve_Actuals): Introduce a transient scope around the call if an
11540         actual is a call to a function returning a limited type, because the
11541         resulting value must be finalized after the call.
11542         (Resolve_Actuals): If the call was given in prefix notations, check
11543         whether an implicit 'Access reference or implicit dereference must be
11544         added to make the actual conform to the controlling formal.
11545
11546 2007-06-06  Robert Dewar  <dewar@adacore.com>
11547             Javier Miranda  <miranda@adacore.com>
11548
11549         * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
11550         (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
11551         overriding of an inherited private subprogram now there is no need to
11552         inherit its dispatching slot and reduce the size of the dispatch table.
11553         Set_All_DT_Position now ensures that the same slot is now assigned to
11554         both entities. This is required to statically build the dispatch table.
11555         (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
11556         of calling Set_All_DT_Position to re-evaluate the position of the
11557         entries in the dispatch table. Such reevaluation is not desired if
11558         the tagged type is already frozen.
11559
11560 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
11561             Gary Dismukes  <dismukes@adacore.com>
11562             Robert Dewar  <dewar@adacore.com>
11563             Javier Miranda  <miranda@adacore.com>
11564
11565         * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
11566         reference acts as an lvalue when the attribute name modifies the prefix
11567         (Is_Coextension_Root): New routine.
11568         (Mark_Static_Coextensions): New routine.
11569         (Type_Access_Level): Revise code for checking the level of the
11570         anonymous access type of a return object.
11571         (Safe_To_Capture_Value): Not safe to capture if Address_Taken
11572         (Matches_Prefixed_View_Profile): Remove the no longer necessary
11573         retrieval of the corresponding controlling record type.
11574         (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
11575         concurrent types declared within a generic as well as class wide types.
11576         Emit a mode incompatibility error whenever a protected entry or routine
11577         override an interface routine whose first parameter is not of mode
11578         "out", "in out" or access to variable.
11579         (Overrides_Synchronized_Primitive): Rename to
11580         Find_Overridden_Synchronized_Primitive.
11581         (Collect_Interface_Components): New subprogram that collects all the
11582         components of a tagged record containing tags of secondary dispatch
11583         tables.
11584         (Add_Global_Declaration): New procedure
11585         (Abstract_Interface_List): Handle properly the case of a subtype of a
11586         private extension.
11587         (Type_Access_Level): In the case of a type whose parent scope is a
11588         return statement, call Type_Access_Level recursively on the enclosing
11589         function's result type to determine the level of the return object's
11590         type.
11591         (Build_Elaboration_Entity): Build name of elaboration entity from the
11592         scope chain of the entity, rather than the unit name of the file name.
11593         (Check_Nested_Access): New procedure.
11594         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
11595         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
11596         (Get_Renamed_Entity): Utility routine for performing common operation
11597         of chasing the Renamed_Entity field of an entity.
11598
11599 2007-06-06  Robert Dewar  <dewar@adacore.com>
11600
11601         * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
11602         elaboration model
11603         (Check_A_Call): Add check for entry call which was causing blowup
11604
11605 2007-06-06  Olivier Hainque  <hainque@adacore.com>
11606
11607         * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
11608         special code on ia64-vms to handle major incompatibilities between the
11609         GCC unwinding ABI and the VMS Condition Handling Facility, both calling
11610         this routine with a very different set of arguments and expectations on
11611         the return value.
11612
11613 2007-06-06  Thomas Quinot  <quinot@adacore.com>
11614
11615         * socket.c (__gnat_close_signalling_fd): New function.
11616         (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
11617         __gnat_safe_getservbyname, __gnat_safe_getservbyport):
11618         New supporting functions for task safe Netdb operations.
11619
11620 2007-06-06  Thomas Quinot  <quinot@adacore.com>
11621             Olivier Hainque  <hainque@adacore.com>
11622
11623         * a-except-2005.ads, a-except-2005.adb
11624         (Raise_From_Controlled_Operation): New procedure in
11625         (private part of) Ada.Exceptions (standard runtime version). Used to
11626         provide informational exception message when Program_Error is raised as
11627         a result of an Adjust or Finalize operation propagating an exception.
11628         (Rmsg_28): Fix description for E.4(18) check.
11629         (Raise_Current_Excep): Call Debug_Raise_Exception just before
11630         propagation starts, to let debuggers know about the event in a reliable
11631         fashion.
11632         Take the address of E and dereference to make sure it is homed on stack
11633         and prevent the stores from being deleted, necessary for proper
11634         debugger behavior on "break exception" hits.
11635         (Local_Raise): Moved to System.Exceptions
11636
11637         * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
11638         exception message from the current occurrence and raise Program_Error
11639         has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
11640
11641 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
11642             Arnaud Charlet  <charlet@adacore.com>
11643
11644         * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
11645         lock, if needed.
11646
11647         * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
11648         priority associated to a lock.
11649
11650         * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
11651         assertion to take into account case of no abort restriction.
11652         (Initialize_Protection_Entries): Add initialization for the field
11653         New_Ceiling associated to the protected object.
11654         (Unlock_Entries): Change the ceiling priority of the underlying lock, if
11655         needed.
11656
11657         * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
11658         since this function needs to be set consistently with Update_Exception.
11659
11660         * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
11661         since this function needs to be set consistently with Update_Exception.
11662
11663         * s-taskin.ads: Update comments on
11664         Interrupt_Server_Blocked_On_Event_Flag.
11665         (Unbind_Handler): Fix handling of server_task wakeup
11666         (Server_Task): Set self's state so that Unbind_Handler can take
11667         appropriate actions.
11668         (Common_ATCB): Now use a constant from System.Parameters to determine
11669         the max size of the Task_Image field.
11670
11671         * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
11672         Initialize_Analyzer function.
11673         ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
11674         take into account case of no abort restriction.
11675         ([Vulnerable_]Complete_Master): Modify assertion.
11676
11677         * s-tataat.adb (Finalize): Use the nestable versions of
11678         Defer/Undefer_Abort.
11679
11680         * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
11681
11682         * s-tpobop.ads: Update comments.
11683
11684         * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
11685         of locking the object manually, to avoid inconsistencies between
11686         Lock/Unlock_Entry assertions.
11687
11688         * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
11689         terminating
11690         application and System.Parameters.No_Abort is True.
11691         Update comments on Interrupt_Server_Blocked_On_Event_Flag.
11692         (Unbind_Handler): Fix handling of server_task wakeup
11693         (Server_Task): Set self's state so that Unbind_Handler can take
11694         appropriate actions.
11695
11696 2007-06-06  Thomas Quinot  <quinot@adacore.com>
11697
11698         * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
11699         declarations instead of an explicit null body, for conciseness.
11700
11701 2007-06-06  Robert Dewar  <dewar@adacore.com>
11702
11703         * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
11704         illegal aggregate and the type is still Any_Composite.
11705         (Subtypes_Statically_Match): Fix problem of empty discriminant list
11706
11707 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
11708
11709         * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
11710         to prevent subsequent expansion.
11711
11712 2007-06-06  Robert Dewar  <dewar@adacore.com>
11713
11714         * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
11715
11716 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
11717             Robert Dewar  <dewar@adacore.com>
11718
11719         * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
11720         exceptions.
11721         (Write_Itype): Handle case of string literal subtype, which
11722         comes up in this context.
11723         (Update_Itype): when debugging expanded code, update sloc of itypes
11724         associated with defining_identifiers and ranges, for gdb use.
11725         (Sprint_Node_Actual): Add static keyword to object or exception
11726         declaration output if Is_Statically_Allocated is True.
11727         (Sprint_End_Label): Set entity of end marker for a subprogram, package,
11728         or task body, so that the tree carries the proper Sloc information for
11729         debugging use.
11730         (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
11731
11732 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
11733
11734         * s-secsta.adb (Chunk): Ensure this object has a static size known at
11735         compile time, to avoid dynamic memory allocation
11736         (Elaboration code): Only use dynamic memory allocation when needed.
11737
11738 2007-06-06  Quentin Ochem  <ochem@adacore.com>
11739
11740         * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
11741         "Overflow_Guard".
11742         (Stack_Analyzer): Added field "Overflow_Guard"
11743         (Task_Result): Added field "Overflow_Guard".
11744         (Index_Str): New constant.
11745         (Task_Name_Str): New constant.
11746         (Actual_Size_Str): New constant.
11747         (Pattern_Array_Element_Size): New constant.
11748         (Get_Usage_Range): New subprogram.
11749         (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
11750         Now align the output.
11751         Added comments.
11752         (Initialize): Added value for Overflow_Guard.
11753         (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
11754         Update the value of the overflow guard according to the actual
11755         beginning of the pattern array.
11756         (Initialize_Analyzer): Added parameter Overflow_Guard.
11757         Take this parameter into accound when computing the max size.
11758         (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
11759         (Report_Result): Removed extra useless procedure.
11760         Updated call to Output_Result.
11761         Moved full computation of the Task_Result here.
11762
11763 2007-06-06  Thomas Quinot  <quinot@adacore.com>
11764
11765         * g-soccon-darwin.ads, gen-soccon.c: Add new constant
11766         Thread_Blocking_IO, always True by default, set False on a per-runtime
11767         basis.
11768         Add Windows-specific constants
11769         Add new constant Need_Netdb_Buffer.
11770         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
11771         not, whether to use getXXXbyYYY_r.
11772
11773         * gsocket.h: Add new constant Need_Netdb_Buffer.
11774         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
11775         not, whether to use getXXXbyYYY_r.
11776
11777 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
11778
11779         * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
11780         than their first call.
11781         Add type Dummy_Communication_Block used in the generation of the pre-
11782         defined dispatching primitive _disp_asynchronous_select.
11783         (Storage_Element): Put Pragma Universal_Aliasing on it.
11784
11785 2007-06-06  Vincent Celier  <celier@adacore.com>
11786
11787         * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
11788         function.
11789
11790         * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
11791         letter if it is not followed by a '/' or a '\'.
11792         (Windows): New Boolean function
11793
11794         * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
11795         Ada 2005.
11796         (Containing_Directory): On Windows, keep at least one '/' or '\' after a
11797         drive letter.
11798         (Containing_Directory): Raise Use_Error when the directory is a root
11799         directory.
11800         (Extension): When returning the result, use a conversion to Result_Type,
11801         not a qualification.
11802
11803 2007-06-06  Robert Dewar  <dewar@adacore.com>
11804
11805         * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
11806         (Set_Style_Check_Options): Recognize new -gnatyg style switch
11807
11808         * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
11809         Warn_On_Non_Local_Exception to False, to turn off warnings for
11810         No_Exception_Propagation in ZFP runtime.
11811         (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
11812         back-ends.
11813         (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
11814
11815 2007-06-06  Vincent Celier  <celier@adacore.com>
11816
11817         * switch-b.adb (Scan_Binder_Switches): Add processing for new
11818         switches -R and -Z
11819
11820         * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
11821         (Scan_Make_Switches): Recognize new switch -aP
11822
11823 2007-06-06  Matthew Gingell  <gingell@adacore.com>
11824             Jose Ruiz  <ruiz@adacore.com>
11825
11826         * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
11827         VxWorks task descriptor in the Ada run time, call a C subprogram
11828         (__gnat_get_stack_info) that extracts the required information.
11829
11830         * sysdep.c: Back out temporary lynxos workaround.
11831         (__gnat_get_stack_info): Add this procedure that passes to the Ada run
11832         time the stack information associated to the currently executing task.
11833         Only VxWorks systems require this function.
11834
11835 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
11836
11837         * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
11838         add the stack bias if the offset is computed from a frame address.
11839         (__gnat_backtrace): Adjust for above change.
11840
11841 2007-06-06  Thomas Quinot  <quinot@adacore.com>
11842
11843         * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
11844         PE_Non_Transportable_Actual.
11845         (By_Descriptor_Last): New constant.
11846         (By_Copy_Return): Likewise.
11847
11848 2007-06-06  Vincent Celier  <celier@adacore.com>
11849
11850         * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
11851         is.
11852
11853         * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
11854         /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
11855         /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
11856         Add missing comment for /OPTIMIZE=SPACE
11857         Add entry for OPTIMIZE=SPACE
11858         Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
11859         Add documentation for new qualifiers corresponding to -gnatw.c/.C
11860
11861 2007-06-06  Vincent Celier  <celier@adacore.com>
11862             Robert Dewar  <dewar@adacore.com>
11863
11864         * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
11865         -gnatw.C)
11866
11867         * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
11868         Document gnatbind switch -a
11869         (case Constructions): Document that variables declarations are allowed
11870         for previously declared variables.
11871         Fix external lib project example
11872         -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
11873         Indicate that "#if not X or Y then" is not allowed in input files to
11874         gnatprep.
11875         Document gnatw.x and gnatw.X warning flags
11876         Mention -Winline switch to activate warnings when back-end inlining is
11877         ineffective.
11878         Add gnatcheck rule descriptions
11879         Describe how to use the GNAT driver to call a tool on a closure.
11880         Describe how to run project-wide checks or metrics.
11881         Document gnatbind's -R option
11882         Updated to account for Ada 2005 support
11883
11884         * gnat_rm.texi (Case Construction): Allow variable declarations for
11885         previously declared variables.
11886         (Representation Clauses and Pragmas): Lift restriction on alignment
11887         clauses for record types.
11888         (Ada.Characters.*): Fix typo in reference to A.3.3(27).
11889         Document No_Exception_Propagation restriction
11890         Document No_Body pragma
11891         Updated to account for Ada 2005 support; corrected some typos
11892         (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
11893
11894         * gnat-style.texi: Make it clear that we never use mode IN for
11895         procedures or functions
11896
11897         * ug_words: Add entries for -gnatw.x and -gnatw.X
11898         Add entries for -gnatw.c/.C
11899
11900 2007-06-06  Pascal Obry  <obry@adacore.com>
11901             Vincent Celier  <celier@adacore.com>
11902
11903         * makegpr.adb (Add_Archive_Path): Use untouched object and library
11904         dirs and library name.
11905         (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
11906         comments.
11907         (Build_Library): Idem.
11908         (Compile_Individual_Sources): Idem.
11909         (Compile_Link_With_Gnatmake): Idem.
11910         (Compile_Sources): Idem.
11911         (Get_Imported_Directories): Idem.
11912         (Link_Executables): Idem. Same change for the executable dir.
11913         (Check_Compilation_Needed): C_Source_Path new variable containing
11914         the canonical form of Source_Path to check against the source names
11915         in the dependency file.
11916         (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
11917         verbose mode, display the name of the object directory we're changing
11918         to.
11919         (Saved_Switches): New name of table X_Switches
11920         (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
11921         (Usage): New line for switch -aP
11922         (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
11923         testing if a directory should be added to the search path.
11924
11925 2007-06-06  Javier Miranda  <miranda@adacore.com>
11926
11927         * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads, 
11928         a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
11929         declaration after freezing point of all its associated tagged types;
11930         otherwise such types are frozen too early.
11931
11932 2007-06-06  Robert Dewar  <dewar@adacore.com>
11933
11934         * a-reatim.adb: Documentation addition
11935
11936         * g-cgideb.adb: Minor code reorganization
11937
11938         * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
11939         mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
11940         s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
11941
11942         * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
11943         function.  Change name New_Scope to Push_Scope
11944         (Get_Debug_Flag_K): Remove unused obsolete function.
11945
11946         * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
11947         Push_Scope.
11948
11949         * makeusg.adb: Update Copyright notice
11950         Add line for switch -aP
11951
11952         * makeusg.adb: Fix wording of some usage messages
11953
11954         * s-assert.adb (Raise_Assert_Failure): Add call to
11955         Debug_Raise_Assert_Failure.
11956
11957         * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
11958         (2, Standard'Alignment) for compatibility with AAMP (where alignment
11959         is restricted to 1).
11960
11961         * s-wchjis.adb: Remove use of System.Pure_Exceptions
11962
11963         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
11964         node location to No_Location when we're not debugging the expanded
11965         code.
11966
11967 2007-05-22  Alexandre Oliva  <aoliva@redhat.com>
11968
11969         * misc.c (enumerate_modes): Consider log2_b to always be one.
11970
11971 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
11972
11973         * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
11974
11975 2007-05-02  Pascal Obry  <obry@adacore.com>
11976
11977         * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
11978         to use Stream_IO.File_Type. This is needed to make use of the UTF-8
11979         encoding support of Stream_IO.
11980         (Write_Unit): Idem.
11981
11982         * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
11983         filename and corresponding encoding to match the OS requirement.
11984         (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
11985         routine will fail on specific devices like CON: AUX: ...
11986
11987         PR ada/29856: Add missing braces
11988
11989 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11990
11991         PR ada/31660
11992         * ada-tree.h (lang_tree_node): Fix typo in chain_next.
11993
11994 2007-04-21  Jan Hubicka  <jh@suse.cz>
11995
11996         * misc.c (gnat_expand_body): Don't call target for destructors,
11997         avoid redundant check on syntax errors.
11998
11999 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12000
12001         * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
12002         instead of checking GIMPLE_STMT_P in chain_next.
12003
12004 2007-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
12005
12006         PR ada/31576
12007         * system-linux-alpha.ads: Disable constant condition warning for the
12008         Default_Bit_Order variable.
12009         * system-linux-s390.ads: Likewise.
12010         * system-linux-s390x.ads: Likewise.
12011         * system-linux-sparc.ads: Likewise.
12012
12013 2007-04-06  Javier Miranda  <miranda@adacore.com>
12014             Matt Heaney  <heaney@adacore.com>
12015             Robert Dewar  <dewar@adacore.com>
12016
12017         a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
12018         a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
12019         a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
12020         a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
12021         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
12022         a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
12023         a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
12024         a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
12025         a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
12026         a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
12027         a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
12028         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
12029         a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
12030         a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
12031         a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
12032         a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
12033         a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
12034         i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
12035         unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
12036         a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
12037         a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
12038         a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
12039         expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
12040         s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
12041         s-taprop-tru64.adb, s-taprop-irix.adb,
12042         s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
12043         s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
12044         s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
12045         s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb, 
12046         s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads, 
12047         a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb, 
12048         a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads, 
12049         g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads, 
12050         s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb, 
12051         s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads, 
12052         s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb, 
12053         s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, 
12054         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb, 
12055         s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb, 
12056         a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads, 
12057         a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads, 
12058         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb, 
12059         a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
12060         a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads, 
12061         a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
12062         access types.
12063         Update documentation.
12064         Minor rewording.
12065
12066 2007-04-06  Robert Dewar  <dewar@adacore.com>
12067
12068         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
12069         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
12070         system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
12071         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
12072         system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
12073         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
12074         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
12075         system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
12076         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
12077         system-hpux-ia64.ads, targparm.adb,
12078         targparm.ads (Functions_Return_By_DSP_On_Target): Removed
12079
12080         * system.ads: Move Functions_Return_By_DSP to obsolete section,
12081         kept for bootstrap purposes only.
12082
12083 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
12084
12085         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
12086         s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
12087         s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
12088         (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
12089
12090 2007-04-06  Robert Dewar  <dewar@adacore.com>
12091
12092         * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
12093         (Local_Raise): New dummy procedure called when a raise is converted
12094         to a local goto. Used for debugger to detect that the exception
12095         is raised.
12096
12097         * debug.adb: Document new d.g flag (expand local raise statements to
12098         gotos even if pragma Restriction (No_Exception_Propagation) is not set)
12099
12100         * exp_sel.adb: Use Make_Implicit_Exception_Handler
12101
12102         * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
12103         suppress warnings for unused handlers.
12104         (Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
12105         warnings for raise statements not handled locally.
12106         (Get_RT_Exception_Entity): New function
12107         (Get_Local_Call_Entity): New function
12108         (Find_Local_Handler): New function
12109         (Warn_If_No_Propagation): New procedure
12110         (Expand_At_End_Handler): Call Make_Implicit_Handler
12111         (Expand_Exception_Handlers): Major additions to deal with local handlers
12112         (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
12113         Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
12114         for local raise
12115
12116         * exp_ch11.ads (Get_RT_Exception_Entity): New function
12117         (Get_Local_Call_Entity): New function
12118
12119         * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
12120         of restrictions that the binder will never suggest adding.
12121
12122         * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
12123         to No_Elist.
12124
12125         * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
12126         be with'ed in the presence of pragma Restriction
12127         (No_Exception_Propagation).
12128
12129         * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
12130
12131         * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
12132         parameter, then the handler is not a suitable target for a local raise,
12133         and this is a violation of restriction No_Exception_Propagation.
12134         (Analyze_Handled_Statements): Analyze choice parameters in exception
12135         handlers before analyzing statement sequence (needed for proper
12136         detection of local raise statements).
12137         (Analyze_Raise_Statement): Reraise statement is a violation of the
12138         No_Exception_Propagation restriction.
12139
12140         * s-rident.ads: Add new restriction No_Exception_Propagation
12141
12142         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
12143         function, like Make_Exception_Handler but sets Local_Raise_Statements
12144         to No_List.
12145         (Add_Unique_Serial_Number): Deal with case where this is called during
12146         processing of configuration pragmas.
12147
12148 2007-04-06  Thomas Quinot  <quinot@adacore.com>
12149             Pat Rogers  <rogers@adacore.com>
12150             Pascal Obry  <obry@adacore.com>
12151
12152         * g-stsifd-sockets.adb: New file.
12153
12154         * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
12155         g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
12156         g-socthi-vms.adb: Move signalling
12157         fd management to a nested package, so that they can conveniently be
12158         moved to a subunit that is shared across Windows, VMS, and VxWorks
12159         (Ada implementation) or completed with imported bodies from socket.c
12160         (UNIX case).
12161         (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
12162         subprograms.
12163         (Check_Selector): Use Read_Signalling_Fd to read and discard data from
12164         the signalling file descriptor.
12165         (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
12166         signalling file descriptor.
12167         (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
12168         instead of creating a pair of sockets for signalling here.
12169
12170         * g-socthi.adb: Ditto.
12171         Set the runtime process to ignore SIGPIPEs on platforms that support
12172         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
12173
12174         * g-socthi-mingw.adb: Ditto.
12175         (WS_Version): Use Windows 2.2.
12176         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
12177
12178         * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
12179         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
12180
12181         * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
12182         added GNAT byte swapping facility
12183         Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
12184
12185         * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
12186
12187         * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
12188         New subprograms.
12189         (__gnat_create_signalling_fds): New subprogram.
12190         Set the runtime process to ignore SIGPIPEs on platforms that support
12191         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
12192
12193 2007-04-06  Hristian Kirtchev  <kirtchev@adacore.com>
12194             Vincent Celier  <celier@adacore.com>
12195
12196         * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
12197         New version of Ada.Calendar which supports the new upper bound of Ada
12198         time (2399-12-31 86_399.999999999).
12199         The following modifications have been made to the package:
12200          - New representation of time as count of nanoseconds since the start of
12201            Ada time (1901-1-1 0.0).
12202          - Target independent Split and Time_Of routines which service both
12203            Ada 95 and Ada 2005 code.
12204          - Target independent interface to the Ada 2005 children of Calendar.
12205          - Integrated leap seconds into Ada 95 and Ada 2005 mode.
12206          - Handling of non-leap centenial years.
12207          - Updated clock function.
12208          - Updated arithmetic and comparison operators.
12209
12210         * a-caldel.adb (To_Duration): Add call to target independent routine in
12211         Ada.Calendar to handle the conversion of time to duration.
12212
12213         * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
12214         (UTC Offset).
12215         If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
12216         set off to 0.
12217         (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
12218         targets do not have a natural time zone, GMT is used as a default.
12219         (__gnat_get_task_options): New.
12220
12221         * a-direct.adb (Modification_Time): Add with and use clauses for
12222         Ada.Calendar and Ada.
12223         Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
12224         since it is no longer needed.
12225         (Duration_To_Time): Removed.
12226         (OS_Time_To_Long_Integer): Removed.
12227         (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
12228         Formatting Time_Of routines which automatically handle time zones,
12229         buffer periods and leap seconds.
12230
12231         * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
12232         target independent routines in Ada.Calendar.
12233
12234         * a-calfor.ads, a-calfor.adb: 
12235         Code cleanup and addition of validity checks in various routines.
12236         (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
12237         Ada.Calendar.
12238
12239         * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
12240         independent routine in Ada.Calendar.
12241
12242 2007-04-06  Olivier Hainque  <hainque@adacore.com>
12243
12244         * adaint.c: 
12245         (convert_addresses): Adjust prototype and dummy definition to expect an
12246          extra file_name argument.
12247
12248         * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
12249         filling the now expected file_name argument with the appropriate
12250         argv[0] expansion.
12251         (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
12252         (tracebk): Array of void * instead of char *, corresponding to what
12253          convert_addresses expects.
12254         (exename): New static global, to hold the executable file name to be
12255         used in all convert_addresses invocations.
12256         (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
12257         change.
12258         (__gnat_gmem_a2l_initialize): Resolve exename.
12259         (__gnat_convert_addresses): Use exename as the convert_addresses
12260         file_name argument.
12261
12262         * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
12263         "convert_addresses", now expecting a filename argument. Import the
12264         necessary entities to compute the filename to use and pass it to
12265         convert_addresses.
12266
12267 2007-04-06  Matt Gingell  <gingell@adacore.com>
12268
12269         * system-aix.ads: Back out previous change.
12270         (Functions_Return_By_DSP): Removed
12271
12272 2007-04-06  Pascal Obry  <obry@adacore.com>
12273
12274         * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
12275         or the monotonic used by Ada.Real_Time) to compute the sleep duration
12276         on Windows.
12277
12278 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
12279
12280         * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
12281         function. Its value changes in different VxWorks versions, and it is
12282         now handled by the function __gnat_get_task_options.
12283
12284         * s-taprop-vxworks.adb (Create_Task): Call the function
12285         __gnat_get_task_options to get the required options for creating a task.
12286
12287 2007-04-06  Pascal Obry  <obry@adacore.com>
12288             Thomas Quinot  <quinot@adacore.com>
12289
12290         * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
12291         dealing with filename.
12292         (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
12293         filename from a standard string to a wide-string depending on the
12294         encoding value.
12295         (__gnat_freopen): Idem.
12296         (__gnat_current_time): New function (wrapper for time(3) standard C
12297         function).
12298
12299         * g-os_lib.ads (Current_Time): New function. Returns the current
12300         system time as an OS_Time value.
12301
12302         * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
12303         (Monotonic_Clock): Same.
12304
12305 2007-04-06  Quentin Ochem  <ochem@adacore.com>
12306
12307         * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
12308         not on a natural.
12309         (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
12310
12311 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
12312
12313         * a-retide.adb: Add elaboration code to ensure that the tasking run
12314         time is initialized when using delay operations even when no task is
12315         created.
12316
12317 2007-04-06  Javier Miranda  <miranda@adacore.com>
12318
12319         * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
12320         component Num_Prim_Ops.
12321         (Set_Num_Prim_Ops): Removed.
12322         Remove all the assertions because all the routines of this
12323         package are inline always.
12324         (Get_Offset_Index): Add support to primary dispatch tables.
12325         Move the documentation about the dispatch table to a-tags.ads
12326         (Set_External_Tag): Removed
12327         (Inherit_TSD): Removed.
12328         (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
12329         moved to a-tags.ads
12330         (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
12331         Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
12332         of the TSD field "Table" because this field has been renamed to
12333         "Ifaces_Table".
12334         (Inherit_CPP_DT): Removed.
12335         (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
12336         Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
12337         declarations have been moved to a-tags.ads
12338         (Check_Size): Removed.
12339         (Expanded_Name): Updated to get access to the new field of TSD
12340         containing the address of the expanded name.
12341         (Get_Access_Level/Set_Access_Level): Removed.
12342         (Get_Predefined_Prim_Op_Address): Removed.
12343         (Set_Predefined_Prim_Op_Address): Removed.
12344         (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
12345         (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
12346         (Set_Expanded_Name): Removed.
12347         (Inherit_DT): Removed.
12348         (Inherit_CPP_DT): Removed.
12349         (Set_RC_Offset): Removed.
12350         (Set_TSD): Removed.
12351         (Base_Address): New function that displaces "this" to point to the base
12352         of the object (that is, to point to the primary tag of the object).
12353
12354 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
12355             Javier Miranda  <miranda@adacore.com>
12356
12357         * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
12358         anonymous access component, do not create a master_id if type already
12359         has one, as may happen if the type is a subcomponent of a packed array
12360         type.
12361         (Build_Init_Procedure, Component_Needs_Simple_Initialization,
12362         Initialize_Tag): Remove code associated with the old CPP pragmas.
12363         CPP_Virtual and CPP_Vtable are no longer supported.
12364         (Build_Offset_To_Top_Internal): Add support for concurrent record types
12365         (Build_Offset_To_Top_Functions): Add support for concurrent record types
12366         (Freeze_Record_Type): Remove call to
12367         Init_Predefined_Interface_Primitives.
12368         (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
12369         code required to initialize the tags of the secondary dispatch tables.
12370         This leaves the algoritm more clear.
12371         (Init_Secondary_Tags): Add support for concurrent record types
12372         (Make_Predefined_Primitive_Specs): Code cleanup.
12373         (Predefined_Primitive_Bodies): Code cleanup.
12374         (Build_Master_Renaming): New local subprogram.
12375         (Expand_N_Full_Type_Declaration): Build the master_id associated with
12376         anonymous access to task type components.
12377         (Expand_N_Subtype_Indication): The bounds of a range constraint in a
12378         subtype indication are resolved during analysis, and must not be done
12379         here.
12380         (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
12381
12382 2007-04-06  Geert Bosch  <bosch@adacore.com>
12383             Ed Schonberg  <schonberg@adacore.com>
12384             Javier Miranda  <miranda@adacore.com>
12385             Bob Duff  <duff@adacore.com>
12386
12387         * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
12388         for conversion of a Float_Type'Truncation to integer.
12389
12390         * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
12391         check if a node is an attribute that can be handled directly by the
12392         back end.
12393         (Expand_N_Attribute_Reference): Suppress expansion of floating-point
12394         attributes that can be handled directly by the back end.
12395         (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
12396         use new predicate Is_Access_Protected_Subprogram_Type.
12397         (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
12398         and Unchecked_Union if it is generated as part of the default  Output
12399         procedure for a type with default discriminants.
12400         (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
12401         if we are compiling under restriction No_Dispatching_Calls.
12402         (Constrained): Use Underlying_Type, in case the type is private without
12403         discriminants, but the full type has discriminants.
12404         (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
12405         call to Build_Get_Access_Level.
12406         (Expand_N_Attribute_Reference): The use of 'Address with class-wide
12407         interface objects requires a call to the run-time subprogram that
12408         returns the base address of the object.
12409         (Valid_Conversion): Improve error message on illegal attempt to store
12410         an anonymous access to subprogram value into a record component.
12411
12412         * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
12413         null".
12414         (Simplify_Type_Conversion): New procedure that performs simplification
12415         of Int_Type (Float_Type'Truncation (X)).
12416         (Resolve_Type_Conversion): Call above procedure after resolving operand
12417         and before performing checks. This replaces the existing ineffective
12418         code in Exp_Ch4.
12419         (Set_String_Literal_Subtype): When creating the internal static lower
12420         bound subtype for a string literal, use a newly created copy of the
12421         subtree representing the lower bound.
12422         (Resolve_Call): Exclude build-in-place function calls from transient
12423         scope treatment. Update comments to describe this exception.
12424         (Resolve_Equality_Op): In case of dispatching call check violation of
12425         restriction No_Dispatching_Calls.
12426         (Resolve_Call): If the call returns an array, the context imposes the
12427         component type of the array, and the function has one non-defaulted
12428         parameter, rewrite the call as the indexing of a call with a single
12429         parameter, to handle an Ada 2005 syntactic ambiguity for calls written
12430         in prefix form.
12431         (Resolve_Actuals): If an actual is an allocator for an access parameter,
12432         the master of the created object is the innermost enclosing statement.
12433         (Remove_Conversions): For a binary operator, check if type of second
12434         formal is numeric, to check if an abstract interpretation is present
12435         in the case of exponentiation as well.
12436
12437 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
12438             Bob Duff  <duff@adacore.com>
12439
12440         * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
12441         copying a parameter list in a call, set properly the First_Named_Formal
12442         and Next_Named_Formal fields in the new list and in the enclosing call.
12443         (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
12444         names, to ease typing in the debugger. Improve comments.
12445         (Watch_Node): New variable, intended to be set in the debugger.
12446         (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
12447         called when the watched node is created.
12448         (New_Node_Debugging_Output): Combined version of local procedures
12449         New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
12450         with a parameter so that conditional breakpoints like "if Node = 12345"
12451         work.
12452         (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
12453         Add Elist1 function
12454
12455 2007-04-06  Thomas Quinot  <quinot@adacore.com>
12456             Ed Schonberg  <schonberg@adacore.com>
12457             Gary Dismukes  <dismukes@adacore.com>
12458
12459         * checks.ads, checks.adb (Selected_Range_Checks): No range check is
12460         required for a conversion between two access-to-unconstrained-array
12461         types.
12462         (Expr_Known_Valid): Validity checks do not apply to discriminants, but
12463         to discriminant constraints on discriminant objects. This rule must
12464         apply as well to discriminants of protected types in private components.
12465         (Null_Exclusion_Static_Checks): If No_Initialization is set on an
12466         object of a null-excluding access type then don't require the
12467         the object declaration to have an expression and don't emit a
12468         run-time check.
12469
12470 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
12471             Eric Botcazou  <botcazou@adacore.com>
12472
12473         * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
12474         and made constant.
12475
12476         * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
12477         Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
12478         carry any.
12479
12480         * fe.h (Compiler_Abort): Add third parameter.
12481
12482         * misc.c (internal_error_function): Build third argument from current
12483         input location and pass it to Compiler_Abort.
12484
12485 2007-04-06  Gary Dismukes  <dismukes@adacore.com>
12486
12487         * cstand.adb (Create_Standard): When the target's storage unit size is
12488         greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
12489         Standard_String.
12490
12491 2007-04-06  Nicolas Roche  <roche@adacore.com>
12492
12493         * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
12494         absolute path can have the following form: device:/a/b. In this case
12495         '/' should be inserted between the path and the filename.
12496
12497 2007-04-06  Olivier Hainque  <hainque@adacore.com>
12498             Eric Botcazou  <botcazou@adacore.com>
12499
12500         * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
12501         VAR_DECL to a CONST_DECL we make for a public constant when we know the
12502         corresponding definition has created the so made visible variable.
12503         Handle anonymous access to protected subprogram.
12504         (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
12505         object with an address clause volatile.  Re-enable original fix.
12506         <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
12507         too.
12508         (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
12509         associated with either the Equivalent or Root type, instead of the
12510         naked type node.
12511         (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
12512         subtree for every field of a global record type.
12513         (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
12514         discriminants, invoke again variable_size on its newly computed sizes.
12515
12516 2007-04-06  Robert Dewar  <dewar@adacore.com>
12517             Thomas Quinot  <quinot@adacore.com>
12518             Ed Schonberg  <schonberg@adacore.com>
12519             Bob Duff  <duff@adacore.com>
12520
12521         * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
12522         (Next_Component_Or_Discriminant): New function and procedure
12523         (First_Index, First_Literal, Master_Id,
12524         Set_First_Index, Set_First_Literal, Set_Master_Id):
12525         Add missing Ekind assertions.
12526         (Is_Access_Protected_Subprogram_Type): New predicate.
12527         (Has_RACW): New entity flag, set on package entities to indicate that
12528         the package contains the declaration of a remote accecss-to-classwide
12529         type.
12530         (E_Return_Statement): This node type has the Finalization_Chain_Entity
12531         attribute, in case the result type has controlled parts.
12532         (Requires_Overriding): Add this new flag, because "requires
12533         overriding" is subtly different from "is abstract" (see AI-228).
12534         (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
12535         Is_Abstract_Type. Make sure these are called only when appropriate.
12536         (Has_Pragma_Unreferenced_Objects): New flag
12537
12538         * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
12539         class-wide, the tag of the right-hand side must be an exact match, not
12540         an ancestor of that of the object on left-hand side.
12541         (Move_Activation_Chain): New procedure to create the call to
12542         System.Tasking.Stages.Move_Activation_Chain.
12543         (Expand_N_Extended_Return_Statement): Generate code to call
12544         System.Finalization_Implementation.Move_Final_List at the end of a
12545         return statement if the function's result type has controlled parts.
12546         Move asserts to Build_In_Place_Formal.
12547         (Move_Final_List): New function to create the call statement.
12548         (Expand_N_Assignment_Statement): In case of assignment to a class-wide
12549         tagged type, replace generation of call to the run-time subprogram
12550         CW_Membership by call to Build_CW_Membership.
12551         (Expand_N_Return_Statement): Replace generation of call to the run-time
12552         subprogram Get_Access_Level by call to Build_Get_Access_Level.
12553         (Expand_N_Simple_Function_Return): Replace generation of call to the
12554         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
12555
12556         * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
12557         Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
12558         access to protected operations.
12559         (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
12560         master and chain actual parameters to a build-in-place function call
12561         involving tasks.
12562         (BIP_Formal_Suffix): Add new enumeration literals to complete the case
12563         statement.
12564         (Make_Build_In_Place_Call_In_Allocator,
12565         Make_Build_In_Place_Call_In_Anonymous_Context,
12566         Make_Build_In_Place_Call_In_Assignment,
12567         Make_Build_In_Place_Call_In_Object_Declaration): Call
12568         Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
12569         (Expand_Inlined_Call): If the subprogram is a null procedure, or a
12570         stubbed procedure with a null body, replace the call with a null
12571         statement without using the full inlining machinery, for efficiency
12572         and to avoid invalid values in source file table entries.
12573
12574         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
12575         renamings of calls to build-in-place functions.
12576
12577         * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
12578         provides the functionality of RTE_Available to record components.
12579         (RTU_Entity): The function Entity has been renamed to RTU_Entity
12580         to avoid undesired overloading.
12581         (Entity): New subprogram that returns the entity for the referened
12582         unit. If this unit has not been loaded, it returns Empty.
12583         (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
12584         Remove no longer used entities.
12585         (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
12586         (RE_Type_Specific_Data): New entity.
12587         (RE_Move_Any_Value): New entity.
12588         (RE_TA_A, RE_Get_Any_Type): New entities.
12589         (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
12590          RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
12591          RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
12592         (Entity): New subprogram that returns the entity for the referened
12593         unit. If this unit has not been loaded, it returns Empty.
12594         (RTE): Addition of a new formal that extends the search to the scopes
12595         of the record types found in the chain of the package.
12596
12597         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
12598         "abstract subprograms must be visible" message, whether or not the type
12599         is an interface; that is, remove the special case for interface types.
12600         (Analyze_Function_Return): Remove error message "return of task objects
12601         is not yet implemented" because this is now implemented.
12602         (Create_Extra_Formals): Add the extra master and activation chain
12603         formals in case the result type has tasks.
12604         Remove error message "return of limited controlled objects is not yet
12605         implemented".
12606         (Create_Extra_Formals): Add the extra caller's finalization list formal
12607         in case the result type has controlled parts.
12608         (Process_Formals): In case of access formal types there is no need
12609         to continue with the analysis of the formals if we already notified
12610         errors.
12611         (Check_Overriding_Indicator): Add code to check overriding of predefined
12612         operators.
12613         (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
12614         flags for formals that do not require them,.
12615         (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
12616         hidden entity is use visible or directly visible.
12617         (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
12618         Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
12619         Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
12620         New_Overloaded_Entity): Split Is_Abstract flag into
12621         Is_Abstract_Subprogram and Is_Abstract_Type.
12622
12623         * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
12624         a return statement's finalization list to the caller's list, used for
12625         build-in-place functions with result type with controlled parts.
12626         Remove no longer used entities.
12627
12628         * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
12629         longer needed, because the full type is now limited, and therefore a
12630         pass-by-reference type.
12631         (Foreign_Task_Level): New constant.
12632
12633         * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
12634         move tasks from the activation chain belonging to a return statement to
12635         the one passed in by the caller, and update the master to the one
12636         passed in by the caller.
12637         (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
12638         of unactivated tasks, so we don't kill the ones that are being returned
12639         by a build-in-place function.
12640         (Create_Task): Ignore AI-280 for foreign threads.
12641
12642 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
12643             Robert Dewar  <dewar@adacore.com>
12644             Bob Duff  <duff@adacore.com>
12645             Gary Dismukes  <dismukes@adacore.com>
12646
12647         * errout.adb (Unwind_Internal_Type): Use predicate
12648         Is_Access__Protected_Subprogram_Type.
12649
12650         * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
12651         (Freeze_Entity, packed array case): Do not override explicitly set
12652         alignment and size clauses.
12653         (Freeze_Entity):  An entity declared in an outer scope can be frozen if
12654         the enclosing subprogram is a child unit body that acts as a spec.
12655         (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
12656         (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
12657         Remove all code for DSP option
12658
12659         * layout.adb (Layout_Record_Type): Use First/
12660         Next_Component_Or_Discriminant
12661         (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
12662         to handle properly the anonymous access case.
12663
12664         * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
12665         for all access attributes, because overload resolution should work the
12666         same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
12667         causes the error message for the ambiguous "X'Access = Y'Access" and
12668         "X'Unrestricted_Access = Y'Access" and so forth to match.
12669         (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
12670         now that anonymous access to protected operations have their own kind.
12671         (Resolve_Attribute): In case of dispatching call check the violation of
12672         restriction No_Dispatching_Calls.
12673         (Check_Array_Type): Check new -gnatyA array index style option
12674
12675         * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
12676         attempt to derive from a synchronized tagged type.
12677         (Analyze_Type_Declaration): If there is a incomplete tagged view of the
12678         type, inherit the class-wide type already created, because it may
12679         already have been used in a self-referential anonymous access component.
12680         (Mentions_T): Recognize self-referential anonymous access components
12681         that use (a subtype of) the class-wide type of the enclosing type.
12682         (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
12683         Derived_Type for Prev formal on call to
12684         Check_Anonymous_Access_Components rather than Empty.
12685         (Make_Incomplete_Type_Declaration): Add test for case where the type has
12686         a record extension in deciding whether to create a class-wide type,
12687         rather than just checking Tagged_Present.
12688         (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
12689         to stand-alone object declarations as well as component declarations.
12690         (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
12691         prevent accidental overwriting when enclosing package appears in
12692         a limited_with_clause.
12693         (Array_Type_Declaration): If the component type is an anonymous access,
12694         the associated_node for the itype is the type declaration itself.
12695         (Add_Interface_Tag_Components): Modified to support concurrent
12696         types with abstract interfaces.
12697         (Check_Abstract_Interfaces): New subprogram that verifies the ARM
12698         rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
12699         (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
12700         to complete the decoration of synchronized interface types. Add also
12701         a call to Check_Abstract_Interfaces to verify the ARM rules.
12702         (Derive_Interface_Subprograms): Modified to support concurrent types
12703         with abstract interfaces.
12704         (Analyze_Subtype_Indication): Resolve the range with the given subtype
12705         mark, rather than delaying the full resolution depending on context.
12706         (Analyze_Component_Declaration,Analyze_Interface_Declaration,
12707         Analyze_Object_Declaration,Analyze_Subtype_Declaration,
12708         Array_Type_Declaration,Build_Derived_Record_Type,
12709         Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
12710         Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
12711         Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
12712         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
12713         called only when appropriate.
12714         (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
12715         to private type.
12716         (Analyze_Subtype_Declaration): For an access subtype declaration, create
12717         an itype reference for the anonymous designated subtype, to prevent
12718         scope anonmalies in gigi.
12719         (Build_Itype_Reference): New utility, to simplify construction of such
12720         references.
12721
12722 2007-04-06  Vincent Celier  <celier@adacore.com>
12723
12724         * errutil.adb (Initialize): Initialize warnings table, if all warnings
12725         are suppressed, supply an initial dummy entry covering all possible
12726         source locations.
12727
12728         * make.adb (Scan_Make_Arg): Reject options that should start with "--"
12729         and start with only one, such as "-RTS=none".
12730         (Collect_Arguments): Do not check for sources outside of projects.
12731         Do not collect arguments if project is externally built.
12732         (Compile_Sources): Do nothing, not even check if the source is up to
12733         date, if its project is externally built.
12734         (Compile): When compiling a predefined source, add -gnatpg
12735         as the second switch, after -c.
12736         (Compile_Sources): Allow compilation of Annex J renames without -a
12737         (Is_In_Object_Directory): Check if the ALI file is in the object
12738         even if there is no project extension.
12739         (Create_Binder_Mapping_File): Only put a unit in the mapping file for
12740         gnatbind if the ALI file effectively exists.
12741         (Initialize): Add the directory where gnatmake is invoked in front of
12742         the path if it is invoked from a bin directory, even without directory
12743         information, so that the correct GNAT tools will be used when spawned
12744         without directory information.
12745
12746         * makeusg.adb: Change switch -S to -eS
12747         Add lines for new switches -we, -wn and -ws
12748         Add line for new switch -p
12749
12750         * prj-proc.adb (Process): Set Success to False when Warning_Mode is
12751         Treat_As_Error and there are warnings.
12752
12753         * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
12754         -gnatww Change gnatmake switch -S to -eS
12755         (Scan_Make_Switches): Code reorganisation. Process separately multi
12756         character switches and single character switches.
12757         (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
12758         False when switch is not recognized by gnatmake.
12759         (Scan_Make_Switches): Set Setup_Projects True when -p or
12760         --create-missing-dirs is specified.
12761
12762         * fname.adb (Is_Predefined_File_Name): Return True for annex J
12763         renamings Calendar, Machine_Code, Unchecked_Conversion and
12764         Unchecked_Deallocation only when Renamings_Included is True.
12765
12766         * par.adb: Allow library units Calendar, Machine_Code,
12767         Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
12768         when -gnatg is not specified.
12769         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
12770         there is no need to generate always a record_definition_node in case
12771         of synchronized interface types.
12772         (SIS_Entry_Active): Initialize global variable to False
12773         (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
12774         indicate cases where AI-447 says "not null" is legal.
12775
12776         * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
12777
12778         * makegpr.adb (Check_Compilation_Needed): Take into account dependency
12779         files with with several lines starting with the object fileb name.
12780         (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
12781         is specified.
12782         (Initialize): Add the directory where gprmake is invoked in front of the
12783         path, if it is invoked from a bin directory or with directory
12784         information, so that the correct GNAT tools will be used when invoked
12785         directly.
12786         (Check_Compilation_Needed): Process correctly backslashes on Windows.
12787
12788         * vms_data.ads: Update switches/qualifiers
12789
12790 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
12791             Thomas Quinot  <quinot@adacore.com>
12792
12793         * exp_aggr.adb:
12794         If the array component is a discriminated record, the array aggregate
12795         is non-static even if the component is given by an aggregate with
12796         static components.
12797         (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
12798         (Convert_Aggr_In_Allocator): If the allocator is for an access
12799         discriminant and the type is controlled. do not place on a finalization
12800         list at this point. The proper list will be determined from the
12801         enclosing object.
12802         (Build_Record_Aggr_Code): If aggregate has box-initialized components,
12803         initialize record controller if needed, before the components, to ensure
12804         that they are properly finalized.
12805         (Build_Record_Aggr_Code): For the case of an array component that has a
12806         corresponding array aggregate in the record aggregate, perform sliding
12807         if required.
12808
12809 2007-04-06  Javier Miranda  <miranda@adacore.com>
12810             Gary Dismukes  <dismukes@adacore.com>
12811             Ed Schonberg  <schonberg@adacore.com>
12812
12813         * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
12814         run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
12815
12816         * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
12817         accessibility on class-wide allocators if the allocator occurs at the
12818         same scope level as the allocator's type. The check is guaranteed to
12819         succeed in that case, even when the expression originates from a
12820         parameter of the containing subprogram.
12821         (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
12822         under No_Dispatching_Calls restriction. During the semantic analysis
12823         we already notified such violation.
12824         (Tagged_Membership): Constant folding. There is no need to check
12825         the tag at run-time if the type of the right operand is non
12826         class-wide abstract.
12827         Replace call to Is_Ancestor by call to Is_Parent
12828         to support concurrent types with interface types.
12829         (Expand_N_Allocator): Add an assertion associated with the generation
12830         of the master_id.
12831         (Expand_N_Slice): Do not enable range check to nodes associated
12832         with the frontend expansion of the dispatch table.
12833         (Is_Local_Access_Discriminant): Subsidiary function to
12834         Expand_N_Allocator.
12835         (Tagged_Membership): Replace generation of call to the run-time
12836         subprogram CW_Membership by call to Build_CW_Membership.
12837         (Expand_Allocator_Expression): Replace generation of call to the
12838         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
12839
12840         * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
12841         initialize most the TSD components by means of an aggregate.
12842         Modify the declaration of the object containing the TSD
12843         because we now expand code that has a higher level of abstraction.
12844         The TSD has a discriminant containing the Inheritance Depth Level,
12845         value that is used in the membership test but also to fix the size
12846         of the table of ancestors.
12847         (Expand_Interface_Conversion): Insert function body at the closest place
12848         to the conversion expression, to prevent access-before-elaboration
12849         errors in the backend.
12850         Code improved to reduce the size of the dispatch table if
12851         compiling under restriction No_Dispatching_Calls plus code cleanup.
12852         Code reorganization plus removal of calls to Set_Num_Prim_Ops
12853         (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
12854         (Expand_Dispatching_Call): Minor code reorganization plus addition of
12855         code to return immediately if compiling under No_Dispatching_Calls
12856         restriction.
12857         (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
12858         CPP_Virtual and CPP_Vtable are no longer supported.
12859         (Expand_Interface_Conversion): Add missing support for interface type
12860         derivations.
12861         (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
12862         Is_Parent to support concurrent types with interfaces.
12863         (Init_Predefined_Interface_Primitives): Removed.
12864         (Make_Secondary_DT): Modified to support concurrent record types.
12865         (Set_All_DT_Position): Modified to support concurrent record types.
12866         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
12867         with Get_External_Tag, Inherit_TSD, Set_External_Tag.
12868         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
12869         with CW_Membership.
12870         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
12871         with Get_Access_Level, Get_Predefined_Prim_Op_Address,
12872         Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
12873         Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
12874         Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
12875         (Expand_Dispatching_Call): Replace generation of call to the run-time
12876         subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
12877         calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
12878         Address.
12879         (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
12880         the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
12881         Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
12882         Build_Set_Prim_Op_Address.
12883         (Get_Remotely_Callable): Subprogram removed.
12884         (Init_Predefined_Interface_Primitives): Replace generation of call to
12885         the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
12886         Prims.
12887
12888         * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
12889         First (Parameter_Associations ()) with the call to First_Actual that
12890         returns an actual parameter expression for both named and positional
12891         associations.
12892
12893         * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
12894         check violation of restriction No_Dispatching_Calls.
12895         (Check_Controlling_Type): A formal of a tagged incomplete type is a
12896         controlling argument.
12897
12898         * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
12899         First/Next_Component_Or_Discriminant
12900         (Insert_Actions): Add entries for new N_Push and N_Pop nodes
12901         (Find_Implemented_Interface): Removed. All the calls to this subprogram
12902         specify Any_Limited_Interface, and this functionality is already
12903         provided by the function Has_Abstract_Interfaces.
12904         (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
12905         support concurrent types implementing interfaces.
12906         (Find_Implemented_Interface): Removed. All the calls to this subprogram
12907         specify kind Any_Limited_Interface, and this functionality is already
12908         provided by the function Has_Abstract_Interfaces.
12909         (Remove_Side_Effects): replace Controlled_Type by
12910         CW_Or_Controlled_Type whenever the issue is related to
12911         using or not the secondary stack.
12912
12913         * par-ch12.adb (P_Formal_Type_Definition): Update calls to
12914         P_Interface_Type_Definition to fulfill the new interface (the formal
12915         Is_Synchronized is no longer required).
12916
12917         * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
12918         Update dependencies.
12919
12920         * exp_atag.ads, exp_atag.adb: New file
12921
12922 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
12923             Bob Duff  <duff@adacore.com>
12924             Cyrille Comar  <comar@adacore.com>
12925
12926         * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
12927         anonymous, use finalization list of enclosing dynamic scope.
12928         (Expand_N_Package_Declaration): For a library package declaration
12929         without a corresponding body, generate RACW subprogram bodies in the
12930         spec (just as we do for the task activation call).
12931         (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
12932         Is_Abstract_Type. Make sure these are called only when appropriate.
12933         Remove all code for DSP option
12934         (CW_Or_Controlled_Type): new subprogram.
12935
12936 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
12937             Ed Schonberg  <schonberg@adacore.com>
12938             Gary Dismukes  <dismukes@adacore.com>
12939
12940         * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
12941         parameter. If it is set to true, return a result capped according to
12942         the global upper bound for the index of an entry family.
12943         (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
12944         (Build_Find_Body_Index): Adjust for above change.
12945         (Entry_Index_Expression): Likewise.
12946         (Is_Potentially_Large_Family): New function extracted from...
12947         (Collect_Entry_Families): ...here. Call it to detect whether the family
12948         is potentially large.
12949         (Build_Entry_Count_Expression): If the family is potentially large, call
12950         Family_Size with 'Cap' set to true.
12951         (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
12952         a protected version of an operation declared in the private part of
12953         a protected object, because they may be invoked through a callback.
12954         (Set_Privals): If the type of a private component is an anonymous access
12955         type, do not create a new itype for each protected body.
12956         If the body of a protected operation creates
12957         controlled types (including allocators for class-widetypes), the
12958         body of the corresponding protected subprogram must include a
12959         finalization list.
12960         (Build_Activation_Chain_Entity): Build the chain entity for extended
12961         return statements.
12962         (Type_Conformant_Parameters): Use common predicate Conforming_Types
12963         to determine whether operation overrides an inherited primitive.
12964         (Build_Wrapper_Spec): Add code to examine the parents while looking
12965         for a possible overriding candidate.
12966         (Build_Simple_Entry_Call): Set No_Initialization on the object used to
12967         hold an actual parameter value since its initialization is separated
12968         from the the declaration. Prevents errors on null-excluding access
12969         formals.
12970
12971 2007-04-06  Thomas Quinot  <quinot@adacore.com>
12972             Pablo Oliveira  <oliveira@adacore.com>
12973
12974         * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
12975         Do an Unchecked_Conversion to handle the passage from the Underlying
12976         Type to the Base Type when calling Build_To_Any_Call and
12977         Build_From_Any_Call.
12978         (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
12979         E_Constant, depending upon Variable formal.
12980         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
12981         PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
12982         parameter that requires an extra constrained parameter, declare
12983         temporary for actual as a variable, not a constant.
12984         (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
12985         the unit being compiled is the one that contains the stub type.
12986         Change primitive operation name for the RACW associated with a RAS
12987         from Call to _Call so it cannot clash with any legal identifier.
12988         (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
12989         Is_RAS.
12990         (Append_RACW_Bodies): New subprogram.
12991         (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
12992         Add_Receiving_Stubs_To_Declarations functions.
12993         When expanding a package body, this list correspond to the
12994         statements in the HSS at the end of the pacakge.
12995         When expanding a package spec, this list correspond to the
12996         spec declarations.
12997         (Add_Receiving_Stubs_To_Declarations): Append the function
12998         registering the receiving stubs at the end of the 'Stmts' list.
12999         (RCI_Package_Locator): Pass the new Version generic formal when
13000         instantiating a RCI_Locator package.
13001         (Build_From_Any_Function): To compute the High bound for an
13002         unconstrained array actual, we add the Low bound with the length.
13003         Thus we must convert the low bound and the length to an appropriate
13004         type before doing the sum.
13005         (Build_Subprogram_Receiving_Stubs, PolyORB):
13006          * Retrieve the extra formals parameters at the
13007            end of the parameter stream.
13008          * Use Move_Any_Value to write back out parameters
13009            after executing the request as it is more efficient
13010            than Copy_Any_Value.
13011          * Build the any containing Extra Formals with the
13012            appropriate typecode.
13013         (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
13014         empty Component_List.
13015         (Build_Actual_Object_Declaration): New subprogram. Build and insert into
13016         the tree the declaration for an object that serves as actual parameter
13017         in server-side stubs.
13018         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
13019         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
13020         Use Build_Actual_Object_Declaration to prepare the actuals.
13021         (Add_Parameter_To_NVList): Set the parameter mode to In for
13022         Extra Constrained Parameters.
13023         (Build_General_Calling_Stubs): Set the parameter type to boolean for
13024         Extra Constrained parameters.
13025         (Build_To_Any_Function, Build_From_Any_Function,
13026         Built_TypeCode_Function): When Typ is implicit, call the correct
13027         function with the first not implicit parent type.
13028         (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
13029         (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
13030         typecode from the Etype. Therefore we retrieve the correct typecode
13031         with a call to Get_Any_Type.
13032         (Copy_Specification): Do controlling formal type substitution based on
13033         Is_Controlling_Formal flag, instead of caller-provided object type.
13034         (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
13035         a RACW primitive operation, we might get a subprogram declaration for an
13036         ancestor of the RACW designated type (not for the designated type
13037         itself), in the case where this operation is inherited. In this case we
13038         have no easy means of determining the original tagged type for which
13039         the primitive was declared, so instead we now rely on
13040         Copy_Specification to use the Is_Controlling_Formal flag to determine
13041         which formals require type substitution.
13042
13043 2007-04-06  Robert Dewar  <dewar@adacore.com>
13044             Ed Schonberg  <schonberg@adacore.com>
13045
13046         * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
13047         GNAT.Current_Exception are not allowed if pragma Restrictions
13048         (No_Exception_Propagation) is set and in any case make the associated
13049         handler unsuitable as a target for a local raise statement.
13050         (Expand_Dispatching_Constructor_Call): Replace generation of call to the
13051         run-time subprogram CW_Membership by call to Build_CW_Membership.
13052         (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
13053         by a function call, a temporary must be created before expanding the
13054         Constructor_Call itself, to prevent out-of-order elaboration in the
13055         back-end when stack checking is enabled..
13056
13057 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13058
13059         * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
13060         result are the bounds of the left operand, not the right.
13061
13062 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13063
13064         * exp_strm.adb
13065         (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
13066          discriminant defaults.
13067         (Build_Record_Or_Elementary_Output_Procedure): Ditto.
13068         (Make_Component_List_Attributes): Ditto.
13069
13070 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13071             Bob Duff  <duff@adacore.com>
13072
13073         * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
13074         an association with a box as providing a value even though the
13075         initialization procedure for the type is not available.
13076         (Resolve_Record_Aggregate): Check that a choice of an association with a
13077         box corresponds to a component of the type.
13078         (Resolve_Record_Aggregate): Split Is_Abstract flag into
13079         Is_Abstract_Subprogram and Is_Abstract_Type.
13080
13081         * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
13082         assert.
13083
13084         * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
13085         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
13086         called only when appropriate.
13087
13088 2007-04-06  Olivier Hainque  <hainque@adacore.com>
13089
13090         * g-alleve.ads (Low Level Vector type definitions): Map each to the
13091         associated vector view instead of all to the unsigned char view.
13092
13093         * g-altcon.adb (Generic_Conversions): New internal generic package,
13094         offering facilities for all the Vector/View conversion routines
13095         implemented by this unit.
13096         (To_View/To_Vector - all versions): Reimplemented in a systematic
13097         manner, using the internal Generic_Conversions facilities.
13098
13099 2007-04-06  Pascal Obry  <obry@adacore.com>
13100
13101         * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
13102         string.
13103         (Create): Free the source string before storing the new one.
13104
13105 2007-04-06  Vincent Celier  <celier@adacore.com>
13106
13107         * g-debpoo.adb (Validity): New package with a complete new
13108         implementation of subprograms Is_Valid and Set_Valid.
13109         (Is_Valid): Move to local package Validity
13110         (Set_Valid): Move to local package Validity
13111
13112 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
13113             Pablo Oliveira  <oliveira@adacore.com>
13114
13115         * g-expect.adb (Get_Command_Output): When expanding the output buffer
13116         we must ensure that there is enough place for the new data we are going
13117         to copy in.
13118
13119 2007-04-06  Thomas Quinot  <quinot@adacore.com>
13120
13121         * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
13122         computation.
13123
13124 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
13125             Vincent Celier  <celier@adacore.com>
13126
13127         * gnatcmd.adb (B_Start): Add prefix of binder generated file.
13128         (Stack_String): Add this String that contains the name of the Stack
13129         package in the project file.
13130         (Packages_To_Check_By_Stack): Add this list that contains the packages
13131         to be checked by gnatstack, which are the naming and the stack packages.
13132         (Check_Files): If no .ci files were specified for gnatstack we add all
13133         the .ci files belonging to the projects, including binder generated
13134         files.
13135         (Non_VMS_Usage): Document that gnatstack accept project file switches.
13136         (GNATCmd): Update the B_Start variable if we are in a VMS environment.
13137         Add gnatstack to the list of commands that use project file related
13138         switches, and get the single attribute Switches from the stack package
13139         in a project file when calling gnatstack. Parse the -U flag for
13140         processing files belonging to all projects in the project tree.
13141         Remove all processing for command Setup
13142
13143         * prj-attr.adb: Add new package Stack with single attribute Switches
13144
13145         * vms_conv.ads (Command_Type): Add command Stack.
13146         Move to body declarations that are only used in the body: types Item_Id,
13147         Translation_Type, Item_Ptr, Item and its subtypes.
13148
13149         * vms_conv.adb: (Initialize): Add data for new command Stack.
13150         Add declarations moved from the spec: types Item_Id, Translation_Type,
13151         Item_Ptr, Item and its subtypes.
13152         (Cargs_Buffer): New table
13153         (Cargs): New Boolean global variable
13154         (Process_Buffer): New procedure to create arguments
13155         (Place): Put character in table Buffer or Cargs_Buffer depending on the
13156          value of Cargs.
13157         (Process_Argument): Set Cargs when processing qualifiers for GNAT
13158         COMPILE
13159         (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
13160         empty, for table Cargs_Buffer.
13161         (Initialize): Remove component Setup in Command_List
13162
13163 2007-04-06  Vincent Celier  <celier@adacore.com>
13164
13165         * gprep.adb (Process_Files.Process_One_File): Use full file name when
13166         issuing pragma Source_Reference.
13167
13168 2007-04-06  Emmanuel Briot  <briot@adacore.com>
13169
13170         * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
13171         [[:xdigit:]] character class.
13172         Also raise an exception when an invalid character class is used.
13173
13174 2007-04-06  Pascal Obry  <obry@adacore.com>
13175
13176         * i-cstrea.ads: (fopen): Add encoding parameter.
13177         (freopen): Idem.
13178         Change reference from a-sysdep.c to sysdep.c in comment.
13179         Update copyright notice.
13180         This set of patch add support for the encoding form parameter.
13181
13182         * mingw32.h (S2WSU): New macro to convert from a string to a
13183         wide-string using the UTF-8 encoding. The S2WS macro supports now only
13184         standard 8bits encoding.
13185         (WS2SU): As above but converting from wide-sring to string.
13186         This is needed as it is necessary to have access to both versions in the
13187         runtime for the form parameter encoding support.
13188         This set of patch add support for the encoding form parameter.
13189         (S2WS): Improve implementation to handle cases where the filename is not
13190         UTF-8 encoded. In this case we default to using the current code page
13191         for the conversion.
13192
13193         * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
13194         type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
13195         the constants defined in adaint.h.
13196         (fopen): Add encoding parameter.
13197         (freopen): Idem.
13198
13199         * s-ficobl.ads (AFCB): Add Encoding field to record the filename
13200         encoding. This is needed for the Reset routine (freopen low level-call).
13201
13202         * s-fileio.adb (Open): Decode encoding form parameter and set the
13203         corresponding encoding value into AFCB structure.
13204         (Reset): Pass the encoding value to freopen.
13205         (Close): Move the call to Lock_Task to the beginning of the procedure.
13206
13207 2007-04-06  Geert Bosch  <bosch@adacore.com>
13208             Robert Dewar  <dewar@adacore.com>
13209
13210         * i-fortra.ads: Add Double_Complex type.
13211
13212         * impunit.adb: (Is_Known_Unit): New function
13213         Add Gnat.Byte_Swapping
13214         Add GNAT.SHA1
13215         Add new Ada 2005 units
13216         Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
13217         Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
13218         Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
13219         Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
13220
13221         * impunit.ads (Is_Known_Unit): New function
13222
13223         * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
13224         a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
13225         a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
13226         g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
13227         s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
13228         s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
13229         New files.
13230
13231         * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
13232
13233         * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
13234
13235 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
13236             Arnaud Charlet  <charlet@adacore.com>
13237
13238         * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
13239         __gnat_adjust_context_for_raise.
13240         (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
13241         implementation of floating point operations as native x86 targets.
13242         So the FPU should be initialized in the same way using finit. Fix
13243         floating point operations accuracy issues.
13244         (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
13245         member in struct sigaction, so as to avoid warning for incompatible
13246         pointer types.
13247
13248 2007-04-06 Serguei Rybin  <rybin@adacore.com>
13249
13250         * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
13251         switches from previously loaded tree
13252
13253 2007-04-06  Thomas Quinot  <quinot@adacore.com>
13254
13255         * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
13256         cases where a given dependency has a body or not.
13257         (Write_With_File_Names): New subprogram, common code for the two cases
13258         above.
13259
13260 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13261             Javier Miranda  <miranda@adacore.com>
13262
13263         * lib-xref.ads, lib-xref.adb: 
13264         Modify the loop that collects type references, to include interface
13265         types that the type implements. List each of these interfaces when
13266         building the entry for the type.
13267         (Generate_Definition): Initialize component Def and Typ of new entry
13268         in table Xrefs, to avoid to have these components unitialized.
13269         (Output_References): Split Is_Abstract flag into
13270         Is_Abstract_Subprogram and Is_Abstract_Type.
13271         (Generate_Reference): Add barrier to do not generate the warning
13272         associated with Ada 2005 entities with entities generated by the
13273         expander.
13274
13275 2007-04-06  Robert Dewar  <dewar@adacore.com>
13276             Arnaud Charlet  <charlet@adacore.com>
13277             Vincent Celier  <celier@adacore.com>
13278
13279         * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
13280         Update 'Exception Handling Control' chapter which was outdated.
13281         Minor fix to documentation of -gnatwq
13282         Remove section "Adapting the Run Time to a New C++ Compiler" because
13283         it is now obsolete.
13284         Add passage on need of -nostart-files in some non-ada-main cases.
13285         Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
13286         Update documentation about Interfacing with C++
13287         Add documentation for new gnatmake switch -p
13288         Add missing protocol part in URLs.
13289         Document -gnatyA
13290         Document pragma Compile_Time_Error
13291         Add documentation for Object_Size indicating that stand alone
13292         objects can have a larger size in some cases.
13293         Add node for GNAT.Byte_Swapping, GNAT.SHA1
13294         Update reference to the Ravenscar profile.
13295         Document pragma Unreferenced_Objects
13296
13297         * gnat-style.texi: Fix typo
13298
13299 2007-04-06  Vincent Celier  <celier@adacore.com>
13300
13301         * mlib.adb (Building_Library): Only output "building a library..." in
13302         verbose mode
13303
13304         * mlib-prj.adb (Build_Library): Only output lists of object and ALI
13305         files in verbose mode.
13306
13307         * mlib-utl.adb (Ar): Only output the first object files when not in
13308         verbose mode.
13309         (Gcc): Do not display all the object files if not in verbose mode, only
13310         the first one.
13311
13312 2007-04-06  Robert Dewar  <dewar@adacore.com>
13313
13314         * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
13315         it no longer destroys the contents of Name_Buffer or Name_Len and
13316         non-standard and invalid names are handled better.
13317         (Get_Decoded_Name_String): Improve performance by using
13318         Name_Has_No_Encodings flag in the name table.
13319         (Is_Valid_Name): New function to determine whether a Name_Id is valid.
13320         Used for debugging printouts.
13321
13322 2007-04-06  Robert Dewar  <dewar@adacore.com>
13323             Javier Miranda  <miranda@adacore.com>
13324             Bob Duff  <duff@adacore.com>
13325
13326         * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
13327         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
13328         there is no need to generate always a record_definition_node in case
13329         of synchronized interface types.
13330         (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
13331         (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
13332         illegal in Ada 95, in cases where it is legal. Change the warnings to
13333         errors in other cases. Don't give the error unless the "not null"
13334         parses properly. Correct the source position at which the error occurs.
13335         (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
13336         P_Null_Exclusion, to suppress "not null" warnings.
13337         (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
13338         associated goto statements.
13339
13340         * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
13341         of END RECORD
13342
13343         * scans.ads (Type_Token_Location): New flag
13344
13345         * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
13346         (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
13347         P_Null_Exclusion, to suppress "not null" warnings.
13348
13349 2007-04-06  Robert Dewar  <dewar@adacore.com>
13350             Javier Miranda  <miranda@adacore.com>
13351             Bob Duff  <duff@adacore.com>
13352             Vincent Celier  <celier@adacore.com>
13353
13354         * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
13355         (Extensions_Allowed): No longer sets Ada_Version
13356         Entry for pragma Unreferenced_Objects
13357
13358         * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
13359         system.tasking if pragma priority used in a procedure
13360         (Analyze_Pragma, case Warning): Handle dot warning switches
13361         (Process_Compile_Time_Warning_Or_Error): New procedure
13362         (Analyze_Pragma): Add processing for Compile_Time_Error
13363         Add support for extra arguments External_Name and Link_Name.
13364         Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
13365         (Process_Import_Or_Interface): Add support for the use of pragma Import
13366         with tagged types.
13367         (Extensions_Allowed): No longer affects Ada_Version
13368         (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
13369         Is_Abstract_Type. Make sure these are called only when appropriate.
13370         Add processing for pragma Unreferenced_Objects
13371
13372         * snames.h, snames.ads, snames.adb: Add entry for pragma
13373         Compile_Time_Error
13374         Add new standard name Minimum_Binder_Options for new gprmake
13375         Add new standard names for gprmake: Archive_Suffix,
13376         Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
13377         Library_Support, Library_Version_Options,
13378         Shared_Library_Minimum_Options,
13379         Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
13380         Change Name_Call to Name_uCall so that it cannot clash with a legal
13381         subprogram name.
13382         Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
13383         Append C_Plus_Plus to convention identifiers as synonym for CPP
13384         Add new standard names Stack and Builder_Switches
13385         Add new standard names: Compiler_Minimum_Options, Global_Config_File,
13386         Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
13387         Run_Path_Option, Toolchain_Version.
13388         Entry for pragma Unreferenced_Objects
13389
13390         * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
13391         switches, without repetition of "eD". Make sure that last character of
13392         -gnatep= switch is not taken as -gnat switch character.
13393         Complete rewrite of circuit for handling saving compilation options
13394         Occasioned by need to support dot switchs for -gnatw, but cleans up
13395         things in general.
13396         -gnatX does not affect Ada_Version
13397         Include -gnatyA in -gnatg style switches
13398
13399         * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
13400         warnings on return objects.
13401         (Warn_On_Useless_Assignment): Exclude warnings on return objects
13402         (Set_Dot_Warning_Switch): New procedure
13403         (Check_References): Add missing case of test for
13404         Has_Pragma_Unreferenced_Objects
13405         (Output_Unreferenced_Messages): Implement effect of new pragma
13406         Unreferenced_Objects, remove special casing of limited controlled
13407         variables.
13408
13409 2007-04-06  Vincent Celier  <celier@adacore.com>
13410
13411         * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
13412         the default project path, initially done during elaboration of the
13413         package.
13414         If the prefix returned by Sdefault is null, get the prefix from a call
13415         to Executable_Prefix_Path.
13416         (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
13417         null.
13418
13419         * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
13420         canonical directory name to open the directory from which files are
13421         retrieved.
13422         (Record_Other_Sources): Idem.
13423         (Locate_Directory): Add the possibility to create automatically missing
13424         directories when Setup_Projects is True.
13425         Call Locate_Directory so that the directory will be created when
13426         Setup_Projects is True, for object dir, library dir, library ALI dir,
13427         library source copy dir and exec dir.
13428
13429         * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
13430         versions of GNAT.
13431
13432 2007-04-06  Robert Dewar  <dewar@adacore.com>
13433
13434         * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
13435         Use First/Next_Component_Or_Discriminant
13436         (Analyze_Record_Representation_Clause):
13437         Use First/Next_Component_Or_Discriminant
13438         (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
13439         (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
13440         definition if type is unconstrained.
13441         (Adjust_Record_For_Reverse_Bit_Order): New procedure
13442         (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
13443         Is_Abstract_Subprogram and Is_Abstract_Type.
13444         (Adjust_Record_For_Reverse_Bit_Order): New procedure
13445
13446         * repinfo.adb (List_Record_Info): Use First/
13447         Next_Component_Or_Discriminant.
13448
13449         * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
13450         New procedure.
13451
13452         * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
13453         Include -gnatyA in default switches
13454
13455         * opt.ads: (Warn_On_Non_Local_Exception): New flag
13456         (Warn_On_Reverse_Bit_Order): New flag
13457         (Extensions_Allowed): Update the documentation.
13458         (Warn_On_Questionable_Missing_Parens): Now on by default
13459
13460         * usage.adb: Add documentation of -gnatw.x/X switches
13461         Document new -gnatyA style switch
13462         -gnatq warnings are on by default
13463
13464 2007-04-06  Ed Falis  <falis@adacore.com>
13465
13466         * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
13467         full word is no longer compared twice.
13468
13469 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13470
13471         * sem_ch10.adb (Install_Limited_Context_Clauses.
13472         Expand_Limited_With_Clause): Use a new copy of selector name in the
13473         call to Make_With_Clause. This fixes the tree structure for ASIS
13474         purposes. Nothing is changed in the compiler behaviour.
13475         (Process_Body_Clauses): Handle properly use clauses whose prefix is
13476         a package renaming.
13477         (Install_Limited_With_Clauses): Do not install non-limited view when it
13478         is still incomplete.
13479
13480 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13481             Gary Dismukes  <dismukes@adacore.com>
13482
13483         * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
13484         when capturing size information, instead of base type, which for a
13485         formal array type will be the unconstrained type.
13486         (Analyze_Formal_Object_Declaration): Add check for illegal default
13487         expressions for a formal in object of a limited type.
13488         (Instantiate_Object): Ditto.
13489         (Check_Formal_Package_Instance): Skip entities that are formal objects,
13490         because they were defaulted in the formal package and no check applies
13491         to them.
13492         (Check_Formal_Package_Instance): Extend conformance check to other
13493         discrete types beyond Integer.
13494         (Process_Default): Copy directly the unmatched formal. A generic copy
13495         has already been performed in Analyze_Formal_Package.
13496         (Analyze_Associations): If a formal subprogram has no match, check for
13497         partial parametrization before looking for a default, to prevent
13498         spurious errors.
13499         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
13500         not set the instantiation environment before analyzing the actuals.
13501         Fixes regression on 8515-003 with implementation of AI-133.
13502         Set_Instance_Env checks whether the generic unit is a predefined
13503         unit, in which case the instance must be analyzed with the latest Ada
13504         mode. This setting must take place after analysis of the actuals,
13505         because the actuals must be analyzed and frozen in the Ada mode extant
13506         outside of the current instantiation.
13507         (Save_Env, Restore_Env): Preserve and restore the configuration
13508         parameters so that predefined units can be compiled in the proper Ada
13509         mode.
13510         (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
13511         Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
13512         and Is_Abstract_Type.
13513         (Analyze_Formal_Package): For better error recovery, Add exception
13514         handler to catch Instantion_Error, which can be raised in
13515         Analyze_Associations
13516
13517 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13518             Bob Duff  <duff@adacore.com>
13519             Gary Dismukes  <dismukes@adacore.com>
13520
13521         * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
13522         prefix type is a discriminated subtype of the type of the formal.
13523         (Analyze_Allocator): Collect all coextensions regardless of the context.
13524         Whether they can be allocated statically is determined in exp_ch4.
13525         (Analyze_Selected_Component): If the prefix is a limited view and the
13526         non-limited view is available, use the non-limited one.
13527         (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
13528         therefore illegal), suggest a qualified expression rather than a type
13529         conversion, because a type conversion would be illegal in this context.
13530         (Anayze_Allocator): Trace recursively all nested allocators so that all
13531         coextensions are on the corresponding list for the root. Do no mark
13532         coextensions if the root allocator is within a declaration for a stack-
13533         allocated object, because the access discriminants will be allocated on
13534         the stack as well.
13535         (Analyze_Call): Remove restriction on calls to limited functions for the
13536         cases of generic actuals for formal objects, defaults for formal objects
13537         and defaults for record components.
13538         (Analyze_Allocator): Before analysis, chain coextensions on the proper
13539         element list. Their expansion is delayed until the enclosing allocator
13540         is processed and its finalization list constructed.
13541         (Try_Primitive_Operation): If the prefix is a concurrent type, looks
13542         for an operation with the given name among the primitive operations of
13543         the corresponding record type.
13544         (Analyze_Selected_Component): If the prefix is a task type that
13545         implements an interface, and there is no entry with the given name,
13546         check whether there is another primitive operation (e.g. a function)
13547         with that name.
13548         (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
13549         properly the indexing of a function call written in prefix form, where
13550         the function returns an array type, and all parameters of the function
13551         except the first have defaults.
13552         (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
13553         the original operands, rather than relocating them, for efficiency and
13554         to work properly when an operand is overloaded.
13555         (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
13556         Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
13557         (Analyze_Selected_Component): If the prefix is a private extension, only
13558         scan the visible components, not those of the full view.
13559         (Try_Primitive_Operation): If the operation is a procedure, collect all
13560         possible interpretations, as for a function, because in the presence of
13561         classwide parameters several primitive operations of the type can match
13562         the given arguments.
13563
13564 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13565             Robert Dewar  <dewar@adacore.com>
13566
13567         * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
13568         tag-indeterminate call to an abstract function, when the left-hand side
13569         is not classwide.
13570         (Analyze_Loop_Statement): Improve detection of infinite loops
13571
13572 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13573             Thomas Quinot  <quinot@adacore.com>
13574
13575         * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
13576         out of Analyze_Package_Declaration, because processing must be applied
13577         to package bodies as well, for deferred constants completed by pragmas.
13578         (Analyze_Package_Declaration): When the package declaration being
13579         analyzed does not require an explicit body, call Check_Completion.
13580         (May_Need_Implicit_Body): An implicit body is required when a package
13581         spec contains the declaration of a remote access-to-classwide type.
13582         (Analyze_Package_Body): If the package contains RACWs, append the
13583         pending subprogram bodies generated by exp_dist at the end of the body.
13584         (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
13585         Is_Abstract_Subprogram and Is_Abstract_Type.
13586         (Preserve_Full_Attributes): The full entity list is not an attribute
13587         that must be preserved from full to partial view.
13588
13589         * sem_dist.adb (Add_RAS_Dereference_TSS):
13590         Change primitive name to _Call so it cannot clash with any legal
13591         identifier, and be special-cased in Check_Completion.
13592         Mark the full view of the designated type for the RACW associated with
13593         a RAS as Comes_From_Source to get proper view switching when installing
13594         private declarations.
13595         Provite a placeholder nested package body along with the nested spec
13596         to have a place for Append_RACW_Bodies to generate the calling stubs
13597         and stream attributes.
13598
13599 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13600             Robert Dewar  <dewar@adacore.com>
13601
13602         * sem_ch8.adb (Has_Components): If the argument is an incomplete type
13603         that is a limited view, check the non-limited view if available.
13604         (Undefined): Refine error message for missing with of Text_IO
13605         (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
13606         to distinguish real missing with cases.
13607         Fix format of all missing with messages
13608         (Analyze_Subprogram_Renaming): Emit proper error message on illegal
13609         renaming as body when renamed entity is abstract.
13610
13611 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13612             Javier Miranda  <miranda@adacore.com>
13613
13614         * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
13615         predicate recursive, to handle complex expressions on literals whose
13616         spurious ambiguity comes from the abstract interpretation of some
13617         subexpression.
13618         (Interface_Present_In_Ancestor): Add support to concurrent record
13619         types.
13620         (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
13621         Is_Abstract_Subprogram and Is_Abstract_Type.
13622
13623 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13624             Javier Miranda  <miranda@adacore.com>
13625
13626         * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
13627         dereference of a local object R created as a reference to another
13628         object O, use the access level of O.
13629         (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
13630         rather than local Same_Formal_Type, to check whether protected operation
13631         overrides an inherited one.
13632         (Same_Formal_Type): New predicate, used when matching signatures of
13633         overriding synchronized operations, to handle the case when a formal
13634         has a type that is a generic actual.
13635         (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
13636         predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
13637         (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
13638         syntactic ambiguities involving indexing of function calls that return
13639         arrays.
13640         (Abstract_Interface_List): New subprogram that returns the list of
13641         abstract interfaces associated with a concurrent type or a
13642         concurrent record type.
13643         (Interface_Present_In_Parent): New subprogram used to check if a
13644         given type or some of its parents implement a given interface.
13645         (Collect_Abstract_Interfaces): Add support for concurrent types
13646         with interface types.
13647         (Has_Abstract_Interfaces): Add support for concurrent types with
13648         interface types.
13649         (Is_Parent): New subprogram that determines whether E1 is a parent
13650         of E2. For a concurrent type its parent is the first element of its
13651         list of interface types; for other types this function provides the
13652         same result than Is_Ancestor.
13653         (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
13654         (Collect_Synchronized_Interfaces): Removed because the subprogram
13655         Collect_Abstract_Interfaces provides this functionality.
13656         (Collect_Abstract_Interfaces): Minor update to give support to
13657         concurrent types and thus avoid undesired code duplication.
13658         (Get_Subprogram_Entity): Handle entry calls.
13659         (May_Be_Lvalue): Include actuals that appear as in-out parameters in
13660         entry calls.
13661         (Enter_Name): Do not give -gnatwh hiding warning for record component
13662         entities, they never result in hiding.
13663
13664 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13665             Robert Dewar  <dewar@adacore.com>
13666
13667         * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
13668         to chain nested components that are allocators for access discriminants
13669         of the enclosing object.
13670         Add N_Push and N_Pop nodes
13671         New field Exception_Label added
13672         (Local_Raise_Statements): New field in N_Exception_Handler_Node
13673         (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
13674         (Is_Coextension): New flag for allocators, to mark allocators that
13675         correspond to access discriminants of dynamically allocated objects.
13676         (N_Block_Statement): Document the fact that the corresponding entity
13677         can be an E_Return_Statement.
13678         (Is_Coextension): New flag for allocators.
13679         Remove all code for DSP option
13680
13681         * sprint.ads, sprint.adb: Display basic information for class_wide
13682         subtypes. Add handling of N_Push and N_Pop nodes
13683
13684 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
13685
13686         * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
13687         before propagating exception.
13688
13689 2007-04-06  Olivier Hainque  <hainque@adacore.com>
13690
13691         * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
13692         an address always within the call instruction from a return address.
13693
13694 2007-04-06  Olivier Hainque  <hainque@adacore.com>
13695             Eric Botcazou  <botcazou@adacore.com>
13696
13697         * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
13698         expression with a COMPOUND_EXPR including the call instead of emitting
13699         the call directly here.
13700         (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
13701         high bound is constant and the slice is empty.  Tidy.
13702         (tree_transform, case N_Op_Not): Handle properly the case where the
13703         operation applies to a private type whose full view is a modular type.
13704         (Case_Statement_To_gnu): If an alternative is an E_Constant with an
13705         Address_Clause, use the associated Expression as the GNAT tree
13706         representing the choice value to ensure the corresponding GCC tree is
13707         of the proper kind.
13708         (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
13709         instead of just the operands, as the base GCC stabilize_reference does.
13710         <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
13711         requested; otherwise fail.
13712         (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
13713
13714 2007-04-06  Thomas Quinot  <quinot@adacore.com>
13715
13716         * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
13717         implementation of UI_Div.
13718         (UI_Div): Reimplement as a call to UI_Div_Rem.
13719         (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
13720         remainder, avoiding the cost of a multiplication and a subtraction.
13721         (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
13722         provides both quotient and remainder in a single computation.
13723         (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
13724         functions for uint.
13725         (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
13726         is undefined if the given n is not inversible.
13727
13728 2007-04-06  Olivier Hainque  <hainque@adacore.com>
13729
13730         * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
13731         BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
13732         opcodes.
13733
13734 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
13735             Olivier Hainque  <hainque@adacore.com>
13736
13737         * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
13738         when updating the contents of the old pointer to an unconstrained array.
13739         (end_subprog_body): Set error_gnat_node to Empty.
13740         (write_record_type_debug_info): Do not be unduly sparing with our bytes.
13741         (unchecked_convert): For subtype to base type conversions, require that
13742         the source be a subtype if it is an integer type.
13743         (builtin_decls): New global, vector of available builtin functions.
13744         (gnat_pushdecl): Add global builtin function declaration nodes to the
13745         builtin_decls list.
13746         (gnat_install_builtins): Adjust comments.
13747         (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
13748         calling gnat_pushdecl, so that it knows when it handed a builtin
13749         function declaration node.
13750         (builtin_decl_for): Search the builtin_decls list.
13751
13752 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
13753
13754         * s-stchop-vxworks.adb: 
13755         (Stack_Check): Raise Storage_Error if the argument has wrapped around.
13756
13757 2007-04-06  Robert Dewar  <dewar@adacore.com>
13758             Arnaud Charlet  <charlet@adacore.com>
13759
13760         * a-diroro.ads: Inserted the pragma Unimplemented_Unit
13761
13762         * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
13763         of files
13764         Add mention of -Sev (set initialize_scalars option from environment
13765         variable at run time) in gnatbind usage message.
13766
13767         * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
13768
13769         * fname-uf.ads: Minor comment fix
13770
13771         * osint.ads: Change pragma Elaborate to Elaborate_All
13772
13773         * par-load.adb: Add documentation.
13774
13775         * sem_cat.ads, sem_cat.adb: Minor code reorganization
13776
13777         * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
13778
13779         * s-secsta.ads: Extra comments
13780
13781         * s-soflin.ads: Minor comment fixes
13782
13783         * s-stratt.ads (Block_Stream_Ops_OK): Removed.
13784
13785         * s-wchcon.ads: Minor comment addition
13786
13787         * treepr.adb: Minor change in message
13788         (Print_Name,Print_Node): Make these debug printouts more robust: print
13789         "no such..." instead of crashing on bad input.
13790
13791 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
13792
13793         * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
13794         instead of gnat_signed_or_unsigned_type.
13795         * utils.c (gnat_signed_or_unsigned_type): Remove.
13796         * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
13797         * gigi.h (gnat_signed_or_unsigned_type): Remove
13798
13799 2007-03-09  Roger Sayle  <roger@eyesopen.com>
13800
13801         * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
13802         fold with the result of buildN.
13803         * decl.c (gnat_to_gnu_entity): Likewise.
13804         * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
13805         * utils.c (finish_record_type, merge_sizes, max_size, convert):
13806         Likewise.
13807         * utils2.c (gnat_truthvalue_conversion, compare_arrays,
13808         nonbinary_modular_operation, build_binary_op, build_unary_op,
13809         build_cond_expr): Likewise.
13810
13811         * utils.c (convert): Use fold_build1 when casting values to void.
13812         * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
13813         fold_convert instead of convert when appropriate.
13814
13815 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
13816
13817         * Make-lang.in: Add install-pdf target as copied from
13818         automake v1.10 rules.
13819
13820 2007-02-28  Andreas Schwab  <schwab@suse.de>
13821
13822         * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
13823         $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
13824         (doc/gnat-style.info): Likewise.
13825
13826 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
13827
13828         * gnat-style.texi: Standardize title page.
13829         * gnat_rm.texi: Likewise.
13830         * gnat_ugn.texi: Likewise.
13831
13832 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
13833
13834         * decl.c (annotate_value): Adjust for refactoring of tree_map
13835         hierarchy.
13836
13837 2007-02-24  Mark Mitchell  <mark@codesourcery.com>
13838
13839         * decl.c (annotate_value): Adjust for refactoring of tree_map
13840         hierarchy.
13841
13842 2007-02-21  Ed Schonberg  <schonberg@adacore.com>
13843
13844         PR ada/18819
13845         * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
13846         untagged derived type, add hidden components to keep discriminant
13847         layout consistent, when a given discriminant of the derived type
13848         constraints several discriminants of the parent type.
13849
13850 2007-02-16  Eric Botcazou  <ebotcazou@adacore.com>
13851             Sandra Loosemore  <sandra@codesourcery.com>
13852
13853         * trans.c (call_to_gnu):  Use build_call_list instead of build3 to
13854         build the call expression.
13855         (gnat_stabilize_reference_1): Handle tcc_vl_exp.
13856         * utils.c (max_size) <tcc_exceptional>: Delete.
13857         <tcc_vl_exp>: New case.
13858         <tcc_expression>: Delete CALL_EXPR subcase.
13859         (build_global_cdtor): Use build_call_nary instead of build3.
13860         * utils2.c (build_call_1_expr): Likewise.
13861         (build_call_2_expr): Likewise.
13862         (build_call_0_expr): Likewise.
13863         (build_call_alloc_dealloc): Likewise.
13864
13865 2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
13866
13867         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
13868         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
13869         and _Unwind_SWord with _sleb128_t.
13870
13871 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
13872
13873         * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
13874         * decl.c: Include gt-ada-decl.h.
13875         (annotate_value_cache): New.
13876         (annotate_value): Use it instead of TREE_COMPLEXITY.
13877
13878 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
13879
13880         * misc.c, utils2.c: Fix comment typos.
13881
13882 2007-01-24  Roger Sayle  <roger@eyesopen.com>
13883
13884         * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
13885         TREE_CONSTANT_OVERFLOW.
13886         (allocatable_size_p, annotate_value): Likewise.
13887         * trans.c (gnat_to_gnu): Likewise.
13888         * utils.c (unchecked_convert): Likewise.
13889         * utils2.c (build_simple_component_ref): Likewise.
13890
13891 2007-01-23  Richard Guenther  <rguenther@suse.de>
13892
13893         PR bootstrap/30541
13894         * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
13895         (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
13896         (gnatboot3): Likewise.
13897         (GNATBIND): Do not define.
13898         * Makefile.in (GNATBIND): Do not define.
13899
13900 2007-01-08  Richard Guenther  <rguenther@suse.de>
13901
13902         * cuintp.c (build_cst_from_int): Use built_int_cst_type.
13903         * trans.c (gnat_to_gnu): Likewise.
13904
13905 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
13906
13907         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
13908         * adaint.c: Likewise.
13909
13910 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
13911
13912         Merge from gimple-tuples-branch:
13913         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
13914
13915         * ada-tree.h (lang_tree_node): Handle gimple tuples.
13916         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
13917         GIMPLE_MODIFY_STMT.
13918
13919 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
13920
13921         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
13922         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
13923         Fix typos.
13924
13925 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
13926
13927         PR ada/27936
13928         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
13929         if the initializer takes into account the padding.
13930
13931 2006-11-11  Richard Guenther  <rguenther@suse.de>
13932
13933         * trans.c (maybe_stabilize_reference): Remove handling of
13934         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
13935
13936 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
13937
13938         PR ada/29707
13939         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
13940         (To_Target_Priority): New function.
13941
13942 2006-10-31  Robert Dewar  <dewar@adacore.com>
13943
13944         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
13945         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
13946         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
13947         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
13948         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
13949         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
13950         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
13951         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
13952         a-szbzha.adb: Minor reformatting. Fix header.
13953
13954         * a-numaux-x86.adb: Add parentheses for use of unary minus
13955         * a-ngcefu.adb: Supply missing parentheses for unary minus
13956         * a-ngcoty.adb: Add parens for use of unary minus
13957         * a-ngelfu.adb: Add missing parens for unary minus
13958         * a-tifiio.adb: Add parentheses for uses of unary minus
13959
13960 2006-10-31  Robert Dewar  <dewar@adacore.com>
13961             Bob Duff  <duff@adacore.com>
13962             Ed Schonberg  <schonberg@adacore.com>
13963
13964         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
13965         with multiplying operator.
13966         (Expected_Type_Is_Any_Real): New function to determine from the Parent
13967         pointer whether the context expects "any real type".
13968         (Resolve_Arithmetic_Op): Do not give an error on calls to the
13969         universal_fixed "*" and "/" operators when they are used in a context
13970         that expects any real type. Also set the type of the node to
13971         Universal_Real in this case, because downstream processing requires it
13972         (mainly static expression evaluation).
13973         Reword some continuation messages
13974         Add some \\ sequences to continuation messages
13975         (Resolve_Call): Refine infinite recursion case. The test has been
13976         sharpened to eliminate some false positives.
13977         Check for Current_Task usage now includes entry barrier, and is now a
13978         warning, not an error.
13979         (Resolve): If the call is ambiguous, indicate whether an interpretation
13980         is an inherited operation.
13981         (Check_Aggr): When resolving aggregates, skip associations with a box,
13982         which are priori correct, and will be replaced by an actual default
13983         expression in the course of expansion.
13984         (Resolve_Type_Conversion): Add missing support for conversion from
13985         a class-wide interface to a tagged type. Minor code cleanup.
13986         (Valid_Tagged_Converion): Add support for abstact interface type
13987         conversions.
13988         (Resolve_Selected_Component): Call Generate_Reference here rather than
13989         during analysis, and use May_Be_Lvalue to distinguish read/write.
13990         (Valid_Array_Conversion): New procedure, abstracted from
13991         Valid_Conversion, to incorporate accessibility checks for arrays of
13992         anonymous access types.
13993         (Valid_Conversion): For a conversion to a numeric type occurring in an
13994         instance or inlined body, no need to check that the operand type is
13995         numeric, since this has been checked during analysis of the template.
13996         Remove legacy test for scope name Unchecked_Conversion.
13997
13998         * sem_res.ads: Minor reformatting
13999
14000         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
14001         (PE_Current_Task_In_Entry_Body): New exception code
14002         (SE_Restriction_Violation): Removed, not used
14003
14004         * a-except.ads:  Update comments.
14005
14006         * types.h, types.ads: Add definition for Validity_Check
14007         (PE_Current_Task_In_Entry_Body): New exception code
14008         (SE_Restriction_Violation): Removed, not used
14009
14010 2006-10-31  Thomas Quinot  <quinot@adacore.com>
14011
14012         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
14013         error status.
14014
14015 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
14016             Jose Ruiz  <ruiz@adacore.com>
14017
14018         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
14019         part of Ada.Calendar: all subprogram raise Unimplemented.
14020         (Split_W_Offset): Temp function body, raising Unimplemented
14021
14022         * a-calend.ads, a-calend-vms.ads: 
14023         Add imported variable Invalid_TZ_Offset used to designate targets unable
14024         to support time zones.
14025         (Unimplemented): Temporary function raised by the body of new
14026         subprograms below.
14027         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
14028         unit provides handling of leap seconds and is used by the new Ada 2005
14029         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
14030         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
14031         version returns an extra value which is the offset to UTC.
14032
14033         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
14034         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
14035         (Split_W_Offset): New function body.
14036         (Time_Of): When a date is close to UNIX epoch, compute the time for
14037         that date plus one day (that amount is later substracted after
14038         executing mktime) so there are no problems with time zone adjustments.
14039
14040         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
14041
14042         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
14043         a-catizo.ads, a-catizo.adb: New files.
14044
14045         * impunit.adb: Add new Ada 2005 entries
14046
14047         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
14048         Rename all occurences of "__gnat_localtime_r" to
14049         "__gnat_localtime_tzoff".
14050         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
14051         zone data and calculate the GMT offset.
14052         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
14053         Use the field "tm_gmtoff" to extract the GMT offset.
14054         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
14055         the external variable "timezone" to calculate the GMT offset.
14056
14057 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
14058             Jose Ruiz  <ruiz@adacore.com>
14059
14060         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb, 
14061         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads, 
14062         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
14063         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
14064         System.Any_Priority to a POSIX priority on the target.
14065
14066         * system-linux-ia64.ads: 
14067         Extend range of Priority types on Linux to use the whole range made
14068         available by the system.
14069
14070         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
14071         function maps from System.Any_Priority to a POSIX priority on the
14072         target.
14073         (PTHREAD_PRIO_PROTECT): Set real value.
14074         (PTHREAD_PRIO_INHERIT): Now a function.
14075         (SIGCPUFAIL): New signal.
14076         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
14077         are documented as reserved by the OS.
14078
14079         * system-aix.ads: Use the full range of priorities provided by the
14080         system on AIX.
14081
14082         * s-taprop-posix.adb: Call new function To_Target_Priority.
14083         (Set_Priority): Take into account Task_Dispatching_Policy and
14084         Priority_Specific_Dispatching pragmas when determining if Round Robin
14085         must be used for scheduling the task.
14086
14087         * system-linux-x86_64.ads, system-linux-x86.ads, 
14088         system-linux-ppc.ads: Extend range of Priority types on Linux to use
14089         the whole range made available by the system.
14090
14091         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb, 
14092         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb, 
14093         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
14094         when deallocating the TCB in order to avoid potential references to
14095         deallocated data.
14096         (Set_Priority): Take into account Task_Dispatching_Policy and
14097         Priority_Specific_Dispatching pragmas when determining if Round Robin
14098         or FIFO within priorities must be used for scheduling the task.
14099
14100         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
14101         the Thread field (to be used internally by the run-time system) and the
14102         kernel-level task id in the LWP field (to be used by the debugger).
14103         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
14104         instance, and propagate the current task options to the spawned task.
14105         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
14106         (Initialize): Set Round Robin dispatching when the corresponding pragma
14107         is in effect.
14108
14109 2006-10-31  Robert Dewar  <dewar@adacore.com>
14110
14111         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
14112         system-linux-hppa.ads, system-hpux-ia64.ads, 
14113         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads, 
14114         system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
14115         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
14116         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads, 
14117         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
14118         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
14119         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
14120         Default_Bit_Order) to kill constant condition warnings for references
14121         to this switch.
14122
14123 2006-10-31  Vincent Celier  <celier@adacore.com>
14124             Eric Botcazou  <ebotcazou@adacore.com>
14125
14126         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
14127         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
14128         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
14129         Ext_To, when building the library file name
14130
14131         * mlib-tgt-vxworks.adb: ditto.
14132         (Get_Target_Suffix): Add support for x86 targets.
14133
14134         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
14135
14136         * mlib-tgt-darwin.adb: 
14137         Use Append_To, instead of Ext_To, when building the library file name
14138         (Flat_Namespace): New global variable.
14139         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
14140         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
14141         (Link_Shared_Libgcc): Delete.
14142         (Build_Dynamic_Library): Adjust for above changes.
14143         Use Opt package.
14144         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
14145
14146 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
14147
14148         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
14149         (Initialize): Add type conversions required by above change.
14150
14151 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
14152
14153         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
14154         (getpid): New body for this function that uses the underlying taskIdSelf
14155         function for VxWorks 5 and VxWorks 6 in kernel mode.
14156         (unsigned_int): New type, modular to allow logical bit operations.
14157         (taskOptionsGet): New imported function.
14158
14159         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
14160         field to be compliant with the type used by the corresponding operating
14161         system primitive.
14162
14163 2006-10-31  Pascal Obry  <obry@adacore.com>
14164             Eric Botcazou  <ebotcazou@adacore.com>
14165             Vincent Celier  <celier@adacore.com>
14166
14167         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
14168         ASCII version of the registry API. This is needed as the GNAT runtime
14169         is now UNICODE by default.
14170         Include version.h.
14171         (get_gcc_version): Do not hardcode the return value.
14172         (__gnat_file_time_name): On Windows properly set the default returned
14173         value to -1 which corresponds to Invalid_Time.
14174         (__gnat_fopen): New routine. A simple wrapper on all plateforms
14175          except on Windows where it does conversion for unicode support.
14176         (__gnat_freopen): Idem.
14177         (__gnat_locate_exec_on_path): If environment variable PATH does not
14178         exist, return a NULL pointer
14179
14180         * adaint.h: (__gnat_fopen): Declare.
14181         (__gnat_freopen): Likewise.
14182
14183         * mingw32.h (_tfreopen): Define this macro here for older MingW
14184         version.
14185         Activate the unicode support on platforms using a MingW runtime
14186         version 3.9 or newer.
14187
14188         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
14189         This is needed for proper unicode support on Windows.
14190         (freopen): Idem.
14191
14192 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
14193             Nicolas Setton  <setton@adacore.com>
14194             Olivier Hainque  <hainque@adacore.com>
14195             Gary Dismukes  <dismukes@adacore.com>
14196
14197         * gigi.h: (tree_code_for_record_type): Declare.
14198         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
14199         (get_global_renaming_pointers): Rename to
14200         invalidate_global_renaming_pointers.
14201         (static_ctors): Delete.
14202         (static_dtors): Likewise.
14203         (gnat_write_global_declarations): Declare.
14204         (create_var_decl): Adjust descriptive comment to indicate that the
14205         subprogram may return a CONST_DECL node.
14206         (create_true_var_decl): Declare new function, similar to
14207         create_var_decl but forcing the creation of a VAR_DECL node.
14208         (get_global_renaming_pointers): Declare.
14209         (add_global_renaming_pointer): Likewise.
14210
14211         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
14212
14213         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
14214         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
14215         processing.
14216         (gnat_to_gnu_entity): Remove From_With_Type from computation for
14217         imported_p.
14218         <E_Access_Type>: Use the Non_Limited_View as the full view of the
14219         designated type if the pointer comes from a limited_with clause.  Make
14220         incomplete designated type if it is in the main unit and has a freeze
14221         node.
14222         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
14223         Underlying_Full_View similarly.  Return earlier if the full view already
14224         has an associated tree.
14225         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
14226         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
14227         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
14228         reference type built for objects with an address clause.
14229         Use create_true_var_decl with const_flag set for
14230         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
14231         TREE_READONLY set.
14232         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
14233         for Character and Wide_Character types. This info is read by the
14234         dwarf-2 writer, and is needed to be able to use the command "ptype
14235         character" in the debugger.
14236         (gnat_to_gnu_entity): When generating a type representing
14237         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
14238         so that debug writers can distinguish it from ordinary integers.
14239         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
14240         addition to TREE_READONLY to assert the constantness of variables for
14241         elaboration purposes.
14242         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
14243         parameters to call new Einfo function First_Formal_With_Extras.
14244         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
14245         protected type with its corresponding discriminant, to obtain a usable
14246         declaration
14247         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
14248         for a multiple elaboration of the "equivalent" type.
14249         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
14250         into record_global_renaming_pointer.
14251         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
14252         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
14253         <E_Array_Subtype>: Likewise.
14254         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
14255         incomplete subtypes and incomplete subtypes of incomplete types visible
14256         through a limited with clause.
14257         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
14258         the base index type for the maximum size of the array only if they are
14259         constant.
14260         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
14261         expression into a SAVE_EXPR if stabilization failed.
14262
14263         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
14264         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
14265         by lower level compilation passes.
14266         (gnat_genericize): New function, lowering a function body to GENERIC.
14267         Turn the type of RESULT_DECL into a real reference type if the decl
14268         has been marked DECL_BY_REFERENCE, and adjust references to the latter
14269         accordingly.
14270         (gnat_genericize_r): New function. Tree walking callback for
14271         gnat_genericize.
14272         (convert_from_reference, is_byref_result): New functions. Helpers for
14273         gnat_genericize_r.
14274         (create_type_decl): Call gnat_pushdecl before calling
14275         rest_of_decl_compilation, to make sure that field TYPE_NAME of
14276         type_decl is properly set before calling the debug information writers.
14277         (write_record_type_debug_info): The heuristics which compute the
14278         alignment of a field in a variant record might not be accurate. Add a
14279         safety test to make sure no alignment is set to a smaller value than
14280         the alignment of the field type.
14281         (make_dummy_type): Use the Non_Limited_View as the underlying type if
14282         the type comes from a limited_with clause. Do not loop on the full view.
14283         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
14284         (dummy_node_table): New global variable, moved from decl.c.
14285         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
14286         (save_gnu_tree): Use above macros.
14287         (get_gnu_tree): Likewise.
14288         (present_gnu_tree): Likewise.
14289         (init_dummy_type): New function, moved from decl.c. Use above macros.
14290         (make_dummy_type): Likewise.
14291         (tree_code_for_record_type): New function extracted from make_dummy_type
14292         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
14293         (static_ctors): Change it to a vector, make static.
14294         (static_dtors): Likewise.
14295         (end_subprog_body): Adjust for above change.
14296         (build_global_cdtor): Moved from trans.c.
14297         (gnat_write_global_declarations): Emit global constructor and
14298         destructor, and call cgraph_optimize before emitting debug info for
14299         global declarations.
14300         (global_decls): New global variable.
14301         (gnat_pushdecl): Store the global declarations in global_decls, for
14302         later use.
14303         (gnat_write_global_declarations): Emit debug information for global
14304          declarations.
14305         (create_var_decl_1): Former create_var_decl, with an extra argument to
14306          state whether the creation of a CONST_DECL is allowed.
14307         (create_var_decl): Behavior unchanged. Now a wrapper around
14308         create_var_decl_1 allowing CONST_DECL creation.
14309         (create_true_var_decl): New function, similar to create_var_decl but
14310         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
14311         (create_field_decl): Do not always mark the field as addressable
14312         if its type is an aggregate.
14313         (global_renaming_pointers): New static variable.
14314         (add_global_renaming_pointer): New function.
14315         (get_global_renaming_pointers): Likewise.
14316
14317         * misc.c (gnat_dwarf_name): New function.
14318         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
14319         (gnat_post_options): Add comment about structural alias analysis.
14320         (gnat_parse_file): Do not call cgraph_optimize here.
14321         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
14322
14323         * trans.c (process_freeze_entity): Don't abort if we already have a
14324         non dummy GCC tree for a Concurrent_Record_Type, as it might
14325         legitimately have been elaborated while processing the associated
14326         Concurrent_Type prior to this explicit freeze node.
14327         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
14328         exception handler volatile if it is of variable size.
14329         (process_type): Remove bypass for types coming from a limited_with
14330         clause.
14331         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
14332         actual, convert the corresponding gnu_actual to the real destination
14333         type when necessary.
14334         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
14335         originally TREE_READONLY but whose elaboration cannot be performed
14336         statically.
14337         Part of fix for F504-021.
14338         (tree_transform, subprogram cases): Change loops on formal parameters to
14339         call new Einfo function First_Formal_With_Extras.
14340         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
14341         stemming from type conversion for the lhs.
14342         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
14343         number of bits per unit for components of records.
14344         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
14345         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
14346         with At_End_Proc after the SJLJ EH cleanup.
14347         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
14348         compilation unit.
14349         (elaborate_all_entities): Do not retest type_annotate_only.
14350         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
14351         result type of an abstract subprogram, which may be an itype associated
14352         with an anonymous access result (related to AI-318-02).
14353         (build_global_cdtor): Move to utils.c.
14354         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
14355         this choice is not a null tree nor an integer constant.
14356         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
14357         on the body of elaboration routines instead of mark_unvisited.
14358         (add_stmt): Do not mark the tree.
14359         (add_decl_expr): Tweak comment.
14360         (mark_unvisited): Delete.
14361         (unshare_save_expr): New static function.
14362         (call_to_gnu): Issue an error when making a temporary around a
14363         procedure call because of non-addressable actual parameter if the
14364         type of the formal is by_reference.
14365         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
14366         after building the elaboration routine.
14367
14368 2006-10-31  Bob Duff  <duff@adacore.com>
14369
14370         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
14371         as finalization-started, so we can raise Program_Error on 'new'.
14372
14373         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
14374         collection has already started.
14375
14376         * s-finimp.ads (Collection_Finalization_Started): Added new special
14377         flag value for indicating that a collection's finalization has started.
14378
14379         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
14380         create a task whose master has already waited for dependent tasks.
14381
14382 2006-10-31  Robert Dewar  <dewar@adacore.com>
14383
14384         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
14385
14386         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads, 
14387         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads, 
14388         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads, 
14389         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads, 
14390         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads, 
14391         a-except-2005.ads: Add pragma Preelaborable_Warning
14392
14393 2006-10-31  Robert Dewar  <dewar@adacore.com>
14394             Jose Ruiz  <ruiz@adacore.com>
14395
14396         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
14397
14398         * ali.adb (Get_Name): Properly handle scanning of wide character names
14399         encoded with brackets notation.
14400         (Known_ALI_Lines): Add S lines to this list.
14401         (Scan_ALI): Acquire S (priority specific dispatching) lines.
14402         New flag Elaborate_All_Desirable in unit table
14403
14404         * ali.ads (Priority_Specific_Dispatching): Add this range of
14405         identifiers to be used for Priority_Specific_Dispatching table entries.
14406         (ALIs_Record): Add First_Specific_Dispatching and
14407         Last_Specific_Dispatching that point to the first and last entries
14408         respectively in the priority specific dispatching table for this unit.
14409         (Specific_Dispatching): Add this table for storing each S (priority
14410         specific dispatching) line encountered in the input ALI file.
14411         New flag Elaborate_All_Desirable in unit table
14412
14413         * bcheck.adb: (Check_Configuration_Consistency): Add call to
14414         Check_Consistent_Dispatching_Policy.
14415         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
14416         verifying that the use of Priority_Specific_Dispatching,
14417         Task_Dispatching_Policy, and Locking_Policy is consistent across the
14418         partition.
14419
14420         * bindgen.adb: (Public_Version_Warning): function removed.
14421         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
14422         required information from ALI files in order to initialize the table
14423         containing the specific dispatching policy.
14424         (Gen_Adainit_Ada): Generate the variables required for priority specific
14425         dispatching entries (__gl_priority_specific_dispatching and
14426         __gl_num_specific_dispatching).
14427         (Gen_Adainit_C): Generate the variables required for priority specific
14428         dispatching entries (__gl_priority_specific_dispatching and
14429         __gl_num_specific_dispatching).
14430         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
14431         pragma entries.
14432         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
14433         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
14434         (Tab_To): Removed.
14435         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
14436         a call to gnat_set_globals.
14437         Generate a string containing settings from
14438         Priority_Specific_Dispatching pragma entries.
14439         (Gen_Object_Files_Options): Do not include the runtime libraries when
14440         pragma No_Run_Time is specified.
14441
14442         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
14443         consistency with s-intman-posix.adb.
14444         (__gnat_error_handler, case FreeBSD): Account for the fact that the
14445         handler is installed with SA_SIGINFO.
14446         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
14447         FreeBSD ZCX support, copied from Linux version.
14448         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
14449         sigfillset, and sigemptyset so the routines defined by MaRTE.
14450         (__gl_priority_specific_dispatching): Add this variable that stores the
14451         string containing priority specific dispatching policies in the
14452         partition.
14453         (__gl_num_specific_dispatching): Add this variable that indicates the
14454         highest priority for which a priority specific dispatching pragma
14455         applies.
14456         (__gnat_get_specific_dispatching): Add this routine that returns the
14457         priority specific dispatching policy, as set by a
14458         Priority_Specific_Dispatching pragma appearing anywhere in the current
14459         partition. The input argument is the priority number, and the result
14460         is the upper case first character of the policy name.
14461         (__gnat_set_globals): Now a dummy function.
14462         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
14463         mechargs instead of sigargs, as the latter can be retrieved from the
14464         former and sigargs is not what we want on ia64.
14465         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
14466         mechargs argument.
14467         (__gnat_adjust_context_for_raise, ia64-vms): New function.
14468         (tasking_error): Remove unused symbol.
14469         (_abort_signal): Move this symbol to the IRIX specific part since this
14470         is the only target that uses this definition.
14471         (Check_Abort_Status): Move this symbol to the IRIX specific part since
14472         this is the only target that uses this definition.
14473         (Lock_Task): Remove unused symbol.
14474         (Unlock_Task): Remove unused symbol.
14475
14476         * lib-writ.adb (Write_ALI): Output new S lines for
14477         Priority_Specific_Dispatching pragmas.
14478         Implement new flag BD for elaborate body desirable
14479
14480         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
14481         (Specific_Dispatching): Add this table for storing the entries
14482         corresponding to Priority_Specific_Dispatching pragmas.
14483         Document new BD flag for elaborate body desirable
14484
14485         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
14486         of known pragmas.
14487
14488 2006-10-31  Javier Miranda  <miranda@adacore.com>
14489
14490         * a-tags.ads, a-tags.adb: 
14491         (Predefined_DT): New function that improves readability of the code.
14492         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
14493         Inherit_DT): Use the new function Predefined_DT to improve code
14494         readability.
14495         (Register_Interface_Tag): Update assertion.
14496         (Set_Interface_Table): Update assertion.
14497         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
14498         determining progenitor interfaces in Tags.
14499         (Inherit_CPP_DT): New subprogram.
14500
14501         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
14502         analysis of the thunk code.
14503         (Expand_Interface_Conversion): Handle run-time conversion of
14504         access to class wide types.
14505         (Expand_Dispatching_Call): When generating the profile for the
14506         subprogram itype for a dispatching operation, properly terminate the
14507         formal parameters chaind list (set the Next_Entity of the last formal
14508         to Empty).
14509         (Collect_All_Interfaces): Removed. This routine has been moved to
14510         sem_util and renamed as Collect_All_Abstract_Interfaces.
14511         (Set_All_DT_Position): Hidden entities associated with abstract
14512         interface primitives are not taken into account in the check for
14513         3.9.3(10); this check is done with the aliased entity.
14514         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
14515         interfacing with CPP by default.
14516         (Expand_Interface_Conversion): Add missing support for static conversion
14517         from an interface to a tagged type.
14518         (Collect_All_Interfaces): Add new out formal containing the list of
14519         abstract interface types to cleanup the subprogram Make_DT.
14520         (Make_DT): Update the code to generate the table of interfaces in case
14521         of abstract interface types.
14522         (Is_Predefined_Dispatching_Alias): New function that returns true if
14523         a primitive is not a predefined dispatching primitive but it is an
14524         alias of a predefined dispatching primitive.
14525         (Make_DT): If the ancestor of the type is a CPP_Class and we are
14526         compiling under full ABI compatibility mode we avoid the generation of
14527         calls to run-time services that fill the dispatch tables because under
14528         this mode we currently inherit the dispatch tables in the IP subprogram.
14529         (Write_DT): Emit an "is null" indication for a null procedure primitive.
14530         (Expand_Interface_Conversion): Use an address as the type of the formal
14531         of the internally built function that handles the case in which the
14532         target type is an access type.
14533
14534 2006-10-31  Robert Dewar  <dewar@adacore.com>
14535
14536         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
14537
14538 2006-10-31  Robert Dewar  <dewar@adacore.com>
14539
14540         * bindusg.ads, bindusg.adb:
14541         Change to package and rename procedure as Display, which
14542         now ensures that it only outputs usage information once.
14543
14544 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
14545
14546         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
14547         using RTPs.
14548
14549         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
14550         when using RTPs.
14551
14552 2006-10-31  Robert Dewar  <dewar@adacore.com>
14553             Ed Schonberg  <schonberg@adacore.com>
14554
14555         * treepr.adb: Use new subtype N_Membership_Test
14556
14557         * checks.ads, checks.adb: Add definition for Validity_Check
14558         (Range_Or_Validity_Checks_Suppressed): New function
14559         (Ensure_Valid): Test Validity_Check suppressed
14560         (Insert_Valid_Check): Test Validity_Check suppressed
14561         (Insert_Valid_Check): Preserve Do_Range_Check flag
14562         (Validity_Check_Range): New procedure
14563         (Expr_Known_Valid): Result of membership test is always valid
14564         (Selected_Range_Checks): Range checks cannot be applied to discriminants
14565         by themselves. Disabling those checks must also be done for task types,
14566         where discriminants may be used for the bounds of entry families.
14567         (Apply_Address_Clause_Check): Remove side-effects if address expression
14568         is non-static and is not the name of a declared constant.
14569         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
14570         Code cleanup and new error messages.
14571         (Enable_Range_Check): Test for some cases of suppressed checks
14572         (Generate_Index_Checks): Suppress index checks if index checks are
14573         suppressed for array object or array type.
14574         (Apply_Selected_Length_Checks): Give warning for compile-time detected
14575         length check failure, even if checks are off.
14576         (Ensure_Valid): Do not generate a check on an indexed component whose
14577         prefix is a packed boolean array.
14578         * checks.adb: (Alignment_Checks_Suppressed): New function
14579         (Apply_Address_Clause_Check): New procedure, this is a completely
14580         rewritten replacement for Apply_Alignment_Check
14581         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
14582         we request a discriminal value only in case of discriminants.
14583         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
14584         assignments where the target subtype is unconstrained and the target
14585         object is a parameter or dereference (other aliased cases are known
14586         to be unconstrained).
14587
14588 2006-10-31  Robert Dewar  <dewar@adacore.com>
14589
14590         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
14591         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
14592         vms_conv.adb: Fix bad table increment values (much too small)
14593
14594         * table.adb (Realloc): Make sure we get at least some new elements
14595         Defends against silly small values for table increment
14596
14597 2006-10-31  Robert Dewar  <dewar@adacore.com>
14598             Ed Schonberg  <schonberg@adacore.com>
14599             Bob Duff  <duff@adacore.com>
14600
14601         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
14602         entities. Move other fields around to make this possible
14603         (Is_Derived_Type): Add missing call to Is_Type.
14604         (Extra_Formals): New function for subprograms, entries, subprogram
14605         types.
14606         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
14607         (First_Formal_With_Extras): New function for subprogs, entries, subp
14608         types.
14609         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
14610         Add node information for E_Return_Statement.
14611         (Elaborate_Body_Desirable): New flag
14612         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
14613         to be Is_Inherently_Limited_Type, because return-by-reference has
14614         no meaning in Ada 2005.
14615         (E_Return_Statement): New entity kind.
14616         (Return_Applies_To): Field of E_Return_Statement.
14617         (Is_Return_Object): New flag in object entities.
14618         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
14619         (Must_Have_Preelab_Init): New flag
14620         (Known_To_Have_Preelab_Init): New flag
14621         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
14622         (Is_Visible_Formal): New flag on entities in formal packages.
14623         (Low_Bound_Known): New flag
14624         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
14625         Incomplete_Kind.
14626         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
14627         output when Id is an incomplete subtype.
14628
14629 2006-10-31  Robert Dewar  <dewar@adacore.com>
14630
14631         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
14632         Avoid abbreviation Creat
14633         (Finalize): List all sources in extended mail source if -gnatl
14634         switch is active.
14635         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
14636         (Finalize): Implement new -gnatl=xxx switch to output listing to file
14637         (Set_Specific_Warning_On): New procedure
14638         (Set_Specific_Warning_Off): New procedure
14639         Add implementation of new insertion \\
14640         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
14641         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
14642         types.
14643         (Error_Msg_Internal): Make sure that we set Last_Killed to
14644         True when a message from another package is suppressed.
14645         Implement insertion character ~ (insert string)
14646         (First_Node): Minor adjustments to get better placement.
14647
14648         * frontend.adb: 
14649         Implement new -gnatl=xxx switch to output listing to file
14650
14651         * gnat1drv.adb: 
14652         Implement new -gnatl=xxx switch to output listing to file
14653
14654         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
14655         (Commands_To_Stdout): New flag
14656         Implement new -gnatl=xxx switch to output listing to file
14657         New switch Dump_Source_Text
14658         (Warn_On_Deleted_Code): New warning flag for -gnatwt
14659         Define Error_Msg_Line_Length
14660         (Warn_On_Assumed_Low_Bound): New switch
14661
14662         * osint.ads, osint.adb
14663         (Normalize_Directory_Name): Fix bug.
14664         Implement new -gnatl=xxx switch to output listing to file
14665         (Concat): Removed, replaced by real concatenation
14666         Make use of concatenation now allowed in compiler
14667         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
14668         we find the 'lib' or 'bin' directory even when the tool has been
14669         invoked with a relative path.
14670         (Executable_Name): New function taking string parameters.
14671
14672         * osint-c.ads, osint-c.adb: 
14673         Implement new -gnatl=xxx switch to output listing to file
14674
14675         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
14676
14677         * switch-c.adb: 
14678         Implement new -gnatl=xxx switch to output listing to file
14679         Recognize new -gnatL switch
14680         (no longer keep in old warning about old style usage)
14681         Use concatenation to simplify code
14682         Recognize -gnatjnn switch
14683         (Scan_Front_End_Switches): Clean up handling of -gnatW
14684         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
14685
14686 2006-10-31  Robert Dewar  <dewar@adacore.com>
14687
14688         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
14689         (Set_Specific_Warning_Off): New procedure
14690         (Warning_Specifically_Suppressed): New function
14691         (Validate_Specific_Warnings): New procedure
14692         (Output_Msg_Text): Complete rewrite to support -gnatjnn
14693
14694         * err_vars.ads: Implement insertion character ~ (insert string)
14695
14696 2006-10-31  Bob Duff  <duff@adacore.com>
14697             Ed Schonberg  <schonberg@adacore.com>
14698
14699         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
14700         the parent part is a build-in-place function call, generate assignments.
14701         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
14702         are build-in-place function calls.
14703         (Replace_Self_Reference): New subsidiary of
14704         Make_OK_Assignment_Statement, to replace an access attribute that is a
14705         self-reference into an access to the appropriate component of the
14706         target object. Generalizes previous mechanism to handle self-references
14707         nested at any level.
14708         (Is_Self_Referential_Init): Remove, not needed.
14709         (Is_Self_Referential_Init): New predicate to simplify handling of self
14710         referential components in record aggregates.
14711         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
14712         check for presence of entity before checking for self-reference.
14713         (Has_Default_Init_Comps): Return True if a component association is a
14714         self-reference to the enclosing type, which can only come from a
14715         default initialization.
14716         (Make_OK_Assignment_Statement): If the expression is of the form
14717         Typ'Acc, where Acc is an access attribute, the expression comes from a
14718         default initialized self-referential component.
14719         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
14720         that has been derived from several abstract interfaces we must also
14721         initialize the tags of the secondary dispatch tables.
14722
14723 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
14724             Thomas Quinot  <quinot@adacore.com>
14725             Javier Miranda  <miranda@adacore.com>
14726             Robert Dewar  <dewar@adacore.com>
14727
14728         * exp_attr.adb: 
14729         (Expand_Access_To_Protected_Op): If the context indicates that an access
14730         to a local operation may be transfered outside of the object, create an
14731         access to the wrapper operation that must be used in an external call.
14732         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
14733         target, pass the Valid attribute applied to a floating-point prefix on
14734         to the back end without expansion.
14735         (Storage_Size): Use the new run-time function Storage_Size to retrieve
14736         the allocated storage when it is specified by a per-object expression.
14737         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
14738         Nothing to do here, the attribute has been rewritten during semantic
14739         analysis.
14740         (Expand_Attribute_Reference): Handle expansion of the new Priority
14741         attribute
14742         (Find_Fat_Info): Handle case of universal real
14743         (Expand_Access_To_Protected_Op): Fix use of access to protected
14744         subprogram from inside the body of a protected entry.
14745         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
14746         'Access and 'Unrestricted_Access, to transform the attribute reference
14747         into a fat pointer.
14748         (Is_Constrained_Aliased_View): New predicate to help determine whether a
14749         subcomponent's enclosing variable is aliased with a constrained subtype.
14750         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
14751         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
14752         an aliased prefix must be known to be constrained in order to use True
14753         for the attribute value, and now it's possible for some aliased views
14754         to be unconstrained.
14755
14756 2006-10-31  Robert Dewar  <dewar@adacore.com>
14757
14758         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
14759         (Expand_Entity_Reference): Correct error of not handling subprogram
14760         formals in current_value processing.
14761
14762 2006-10-31  Javier Miranda  <miranda@adacore.com>
14763             Robert Dewar  <dewar@adacore.com>
14764             Ed Schonberg  <schonberg@adacore.com>
14765             Gary Dismukes  <dismukes@adacore.com>
14766
14767         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
14768         register in the final list objects containing class-wide interfaces;
14769         otherwise we incorrectly register the tag of the interface in the final
14770         list.
14771         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
14772         generate the wrapper if the parent primitive is abstract. This is
14773         required to report the correct error message.
14774         (Expand_N_Subtype_Indication): Do validity checks on range
14775         (Clean_Task_Names): If an initialization procedure includes a call to
14776         initialize a task (sub)component, indicate that the procedure will use
14777         the secondary stack.
14778         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
14779         compatibility for interfacing with CPP by default.
14780         (Expand_N_Object_Declaration): Only build an Adjust call when the
14781         object's type is a nonlimited controlled type.
14782         * exp_ch3.adb: Add with and use of Exp_Ch6.
14783         (Expand_N_Object_Declaration): Check for object initialization that is a
14784         call to build-in-place function and apply Make_Build_In_Place_Call_In_
14785         Object_Declaration to the call.
14786         (Freeze_Type): When the designated type of an RACW was not frozen at the
14787         point where the RACW was declared, validate the primitive operations
14788         with respect to E.2.2(14) when it finally is frozen.
14789         (Build_Initialization_Call,Expand_Record_Controller): Rename
14790         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
14791         return-by-reference has no meaning in Ada 2005.
14792         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
14793         to register tag of the immediate ancestor interfaces in the
14794         run-time structure.
14795         (Init_Secondary_Tags): Moved to the specification to allow the
14796         initialization of extension aggregates with abstract interfaces.
14797         (Build_Master_Renaming): Make public, for use by function declarations
14798         whose return type is an anonymous access type.
14799         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
14800         Insert_List_Before_And_Analyze after the generation of the specs
14801         associated with null procedures.
14802         (Expand_Tagged_Root): Update documentation in its specification.
14803         (Init_Secondary_Tags): Update documentation.
14804         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
14805         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
14806         then generate code to inherit the contents of the dispatch table
14807         directly from the ancestor.
14808         (Expand_Record_Controller): Insert controller component after tags of
14809         implemented interfaces.
14810         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
14811         create null procedure overridings when null procedures are inherited
14812         from interfaces.
14813         (Make_Null_Procedure_Specs): New procedure to generate null procedure
14814         declarations for overriding null primitives inherited from interfaces.
14815         (Is_Null_Interface_Procedure): New function in
14816         Make_Null_Procedure_Specs.
14817         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
14818         immediate ancestor of a tagged type is an abstract interface type we
14819         must generate the specification of the predefined primitives associated
14820         with controlled types (because the dispatch table of the ancestor is
14821         null and hence these entries cannot be inherited). This is required to
14822         elaborate well the dispatch table.
14823
14824 2006-10-31  Javier Miranda  <miranda@adacore.com>
14825             Ed Schonberg  <schonberg@adacore.com>
14826             Bob Duff  <duff@adacore.com>
14827             Gary Dismukes  <dismukes@adacore.com>
14828             Robert Dewar  <dewar@adacore.com>
14829
14830         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
14831         conversion.
14832         (Expand_N_In): Do validity checks on range
14833         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
14834         (Expand_N_Allocator): For "new T", if the object is constrained by
14835         discriminant defaults, allocate the right amount of memory, rather than
14836         the maximum for type T.
14837         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
14838         when the allocator is initialized by a build-in-place call, since the
14839         allocator is already rewritten as a reference to the function result,
14840         and this prevents an unwanted duplication of the function call.
14841         Add with and use of Exp_Ch6.
14842         (Expand_Allocator_Expresssion): Check for an allocator whose expression
14843         is a call to build-in-place function and apply
14844         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
14845         untagged designated types).
14846         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
14847         optimization if source or target is biased.
14848         (Expand_N_Allocator): Add comments for case of an allocator within a
14849         function that returns an anonymous access type designating tasks.
14850         (Expand_N_Allocator): apply discriminant checks for access
14851         discriminants of anonymous access types (AI-402, AI-416)
14852
14853 2006-10-31  Bob Duff  <duff@adacore.com>
14854             Robert Dewar  <dewar@adacore.com>
14855             Gary Dismukes  <dismukes@adacore.com>
14856             Ed Schonberg  <schonberg@adacore.com>
14857
14858         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
14859
14860         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
14861         (Expand_N_Assignment_Statement): Call
14862         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
14863         build-in-place function call. Currently, this can happen only for
14864         assignments that come from aggregates.
14865         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
14866         in order to alleviate the upward compatibility introduced by AI-318.
14867         (Expand_N_Extended_Return_Statement): Add support for handling the
14868         return object as a build-in-place result.
14869         (Expand_Non_Function_Return): Implement simple return statements nested
14870         within an extended return.
14871         (Enable_New_Return_Processing): Turn on the new processing of return
14872         statements.
14873         (Expand_Non_Function_Return): For a return within an extended return,
14874         don't raise Program_Error, because Sem_Ch6 now gives a warning.
14875         (Expand_N_Extended_Return_Statement): Implement AI-318
14876         (Expand_Simple_Function_Return): Ditto.
14877         (Expand_N_If_Statement): Handle new -gnatwt warning
14878         (Expand_N_Case_Statement): Handle new -gnatwt warning
14879         (Expand_N_Assignment): Handle assignment to the Priority attribute of
14880         a protected object.
14881         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
14882         validity checking of assignments to elementary record components.
14883         (Expand_N_Return_Statement): return Class Wide types on the secondary
14884         stack independantly of their controlled status since with HIE runtimes,
14885         class wide types are not potentially controlled anymore.
14886
14887         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
14888         node kind.
14889
14890         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
14891         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
14892         it expects a block, procedure, or task. The return statement will get
14893         turned into a block, and Expand_Cleanup_Actions will happen then.
14894
14895 2006-10-31  Robert Dewar  <dewar@adacore.com>
14896             Ed Schonberg  <schonberg@adacore.com>
14897             Bob Duff  <duff@adacore.com>
14898             Gary Dismukes  <dismukes@adacore.com>
14899
14900         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
14901         capability.
14902         (Expand_Inlined_Call): Tagged types are by-reference types, and
14903         therefore should be replaced by a renaming declaration in the expanded
14904         body, as is done for limited types.
14905         (Expand_Call): If this is a call to a function with dispatching access
14906         result, propagate tag from context.
14907         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
14908         CPP by default.
14909         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
14910         build-in-place when the right-hand side of an assignment is a
14911         build-in-place function call.
14912         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
14913         of the explicit dereference of the allocator to the result subtype of
14914         the build-in-place function. This is needed to satisfy type checking
14915         in cases where the caller's return object is created by an allocator for
14916         a class-wide access type and the type named in the allocator is a
14917         specific type.
14918         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
14919         conversion of the reference to the declared object to the result subtype
14920         of the build-in-place function. This is needed to satisfy type checking
14921         in cases where the declared object has a class-wide type. Also, in the
14922         class-wide case, change the type of the object entity to the specific
14923         result subtype of the function, to avoid passing a class-wide object
14924         without explicit initialization to the back end.
14925         (Register_Interface_DT_Entry): Moved outside the body of
14926         Freeze_Subprogram because this routine is now public; it is called from
14927         Check_Dispatching_Overriding to handle late overriding of abstract
14928         interface primitives.
14929         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
14930         adding an implicit access actual on a call to a build-in-place function.
14931         (Expand_Actuals): Test for an actual parameter that is a call to a
14932         build-in-place function and apply
14933         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
14934         (Is_Build_In_Place_Function): New function to determine whether an
14935         entity is a function whose calls should be handled as build-in-place.
14936         (Is_Build_In_Place_Function_Call): New function to determine whether an
14937         expression is a function call that should handled as build-in-place.
14938         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
14939         calls to build-in-place functions as the initialization of an allocator.
14940         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
14941         handling calls to build-in-place functions in contexts that do not
14942         involve init of a separate object (for example, actuals of subprogram
14943         calls).
14944         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
14945         handling calls to build-in-place functions as the initialization of an
14946         object declaration.
14947         (Detect_Infinite_Recursion): Add explicit parameter Process to
14948         instantiation of Traverse_Body to avoid unreferenced warning.
14949         (Check_Overriding_Inherited_Interfaces): Removed.
14950         (Register_Interface_DT_Entry): Code cleanup.
14951         (Register_Predefined_DT_Entry): Code cleanup.
14952         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
14953         inlined statements if within a transient scope.
14954         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
14955         formal parameters with occurrences of actuals in inlined body, establish
14956         visibility on the proper view of the actual's subtype for the body's
14957         context.
14958         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
14959         compatibility mode and we have an imported CPP subprogram because
14960         for now we assume that imported CPP primitives correspond with
14961         objects whose constructor is in the CPP side (and therefore we
14962         don't need to generate code to register them in the dispatch table).
14963         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
14964         aligned selected component.
14965         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
14966         the actual of an in-mode parameter is a type conversion.
14967         (Expand_Actuals): If the call does not come from source and the actual
14968         is potentially misaligned, let gigi handle it rather than rejecting the
14969         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
14970         Class Wide types as returning by reference independantly of their
14971         controlled status since with HIE runtimes class wide types are not
14972         potentially controlled anymore.
14973
14974 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
14975
14976         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
14977         references that are private components of the protected object.
14978         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
14979         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
14980         instantiation to deal with warnings.
14981         (Initialize_Protection): If expression for priority is non-static, use
14982         System_Priority as its expected type, in case the expression has not
14983         been analyzed yet.
14984
14985 2006-10-31  Robert Dewar  <dewar@adacore.com>
14986
14987         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
14988         initialization of Homonym_Len.
14989         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
14990         names from fully qualified name. Fixes problem of duplicate
14991         external names differing only in the presence of such a block name.
14992
14993 2006-10-31  Thomas Quinot  <quinot@adacore.com>
14994             Pablo Oliveira  <oliveira@adacore.com>
14995
14996         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
14997         subprogram Ids, even if they are not yet assigned.
14998         (Build_Subprogram_Id): It is now this function that will take care of
14999         calling Assign_Subprogram_Ids if necessary.
15000         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
15001         should be done only once they are assigned.
15002         (Build_From_Any_Function, case of tagged types): Add missing call to
15003         Allocate_Buffer.
15004         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
15005         type for an RACW type.
15006         (Add_RACW_Features): When processing an RACW declaration for which the
15007         designated type is already frozen, enforce E.2.2(14) rules immediately.
15008         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
15009         special reordering of controlling formals.
15010
15011         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
15012         associated stub type for an RACW type.
15013
15014 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
15015
15016         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
15017         fixed-point operations in an integer context, i.e. as operands of a
15018         conversion to an integer type, indicate that result must be rounded.
15019
15020 2006-10-31  Robert Dewar  <dewar@adacore.com>
15021
15022         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
15023         cases, pass the encoding method, since it is now required by the run
15024         time.
15025
15026         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
15027         assumption that Str'First = 1.
15028         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
15029         it on to the Value_Wide_Wide_Character call.
15030         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
15031         properly handles a string of the form quote-encoded_wide_char-quote.
15032
15033         * s-wchcnv.adb: Minor reformatting
15034
15035 2006-10-31  Javier Miranda  <miranda@adacore.com>
15036
15037         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
15038         run-time membership test to ensure that the constructed object
15039         implements the target abstract interface.
15040
15041 2006-10-31  Robert Dewar  <dewar@adacore.com>
15042
15043         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
15044         Machine_Attribute pragma internally to implement the user pragma.
15045         Add processing for pragma Interface so that it is now completely
15046         equivalent to pragma Import.
15047
15048         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
15049         so that it can be applied to all entities, including record components
15050         and enumeration literals.
15051         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
15052         priority ranges are correct, verify compatibility against task
15053         dispatching and locking policies, and if everything is correct an entry
15054         is added to the table containing priority specific dispatching entries
15055         for this compilation unit.
15056         (Delay_Config_Pragma_Analyze): Delay processing
15057         Priority_Specific_Dispatching pragmas because when processing the
15058         pragma we need to access run-time data, such as the range of
15059         System.Any_Priority.
15060         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
15061         Allow pragma Unreferenced as a context item
15062         Add pragma Preelaborable_Initialization
15063         (Analyze_Pragma, case Interface): Interface is extended so that it is
15064         now syntactically and semantically equivalent to Import.
15065         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
15066         insertion characters.
15067         Add handling for Pragma_Wide_Character_Encoding
15068         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
15069         never supercedes a real restriction, and that a real restriction
15070         always supercedes a warning.
15071         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
15072         appropriate form.
15073
15074 2006-10-31  Bob Duff  <duff@adacore.com>
15075             Ed Schonberg  <schonberg@adacore.com>
15076             Robert Dewar  <dewar@adacore.com>
15077
15078         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
15079         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
15080         Is_Inherently_Limited_Type, because return-by-reference has no meaning
15081         in Ada 2005.
15082         (Find_Node_To_Be_Wrapped): Use new method of determining the result
15083         type of the function containing a return statement, because the
15084         Return_Type field was removed. We now use the Return_Applies_To field.
15085
15086         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
15087         (Build_Task_Image_Decl): If procedure is not called from an
15088         initialization procedure, indicate that function that builds task name
15089         uses the sec. stack. Otherwise the enclosing initialization procedure
15090         will carry the indication.
15091         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
15092         N_Object_Declaration instead.
15093         (Kill_Dead_Code): New interface to implement -gnatwt warning for
15094         conditional dead code killed, and change implementation accordingly.
15095         (Insert_Actions): Add N_Return_Object_Declaration case.
15096         Correct comment to mention N_Extension_Aggregate node.
15097         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
15098         attempts to save information for global variables which cannot be
15099         safely tracked.
15100         (Get_Current_Value_Condition): Handle conditions the other way round
15101         (constant on left). Also handle right operand of AND and AND THEN
15102         (Set_Current_Value_Condition): Corresponding changes
15103         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
15104         (Get_Current_Value_Condition): Handle simple boolean operands
15105         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
15106         (Get_Current_Value_Condition): If the variable reference is within an
15107         if-statement, does not appear in the list of then_statments, and does
15108         not come from source, treat it as being at unknown location.
15109         (Get_Current_Value_Condition): Enhance to allow while statements to be
15110         processed as well as if statements.
15111         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
15112         come from source.
15113         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
15114         of loop. This is safe now that we fixed Kill_Current_Values.
15115         (OK_To_Do_Constant_Replacement): Check whether current scope is
15116         Standard, before examining outer scopes.
15117
15118 2006-10-31  Vincent Celier  <celier@adacore.com>
15119
15120         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
15121         When True, apply VMS treatment to children of packages A, G, I and S.
15122         For F320-016
15123
15124         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
15125
15126 2006-10-31  Robert Dewar  <dewar@adacore.com>
15127             Ed Schonberg  <schonberg@adacore.com>
15128
15129         * freeze.adb: Add handling of Last_Assignment field
15130         (Warn_Overlay): Supply missing continuation marks in error msgs
15131         (Freeze_Entity): Add check for Preelaborable_Initialization
15132
15133         * g-comlin.adb: Add Warnings (Off) to prevent new warning
15134
15135         * g-expect.adb: Add Warnings (Off) to prevent new warning
15136
15137         * lib-xref.adb: Add handling of Last_Assignment field
15138         (Generate_Reference): Centralize handling of pragma Obsolescent here
15139         (Generate_Reference): Accept an implicit reference generated for a
15140         default in an instance.
15141         (Generate_Reference): Accept a reference for a node that is not in the
15142         main unit, if it is the generic body corresponding to an subprogram
15143         instantiation.
15144
15145         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
15146
15147         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
15148         -gnatwq/Q.
15149         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
15150         exception handler.
15151         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
15152         use clauses, to avoid messages on packages used to qualify, and also
15153         to avoid messages from obsolescent units.
15154         (Warn_On_Useless_Assignments): Don't generate messages for imported
15155         and exported variables.
15156         (Warn_On_Useless_Assignments): New procedure
15157         (Output_Obsolescent_Entity_Warnings): New procedure
15158         (Check_Code_Statement): New procedure
15159
15160         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
15161         Change name Is_Ada_2005 to Is_Ada_2005_Only
15162         (Last_Assignment): New field for useless assignment warning
15163
15164 2006-10-31  Olivier Hainque  <hainque@adacore.com>
15165
15166         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
15167         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
15168
15169 2006-10-31  Bob Duff  <duff@adacore.com>
15170             Robert Dewar  <dewar@adacore.com>
15171             Ed Schonberg  <schonberg@adacore.com>
15172
15173         * g-awk.adb (Default_Session, Current_Session): Compile this file in
15174         Ada 95 mode, because it violates the new rules for AI-318.
15175
15176         * g-awk.ads: Use overloaded subprograms in every case where we used to
15177         have a default of Current_Session. This makes the code closer to be
15178         correct for both Ada 95 and 2005.
15179
15180         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
15181         code, relying on the fact that the compiler generates a warning
15182         instead of an error in -gnatg mode.
15183
15184         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
15185         E_Return_Statement entity kind.
15186         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
15187
15188         * par.adb (P_Interface_Type_Definition): Addition of one formal to
15189         report an error if the reserved word abstract has been previously found.
15190         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
15191
15192         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
15193         parenthesized range attribute usage
15194         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
15195
15196         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
15197         in the syntax for extended_return_statement. This is not in the latest
15198         RM, but the ARG is expected to issue an AI allowing this.
15199         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
15200         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
15201         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
15202         P_Return_Statement): Parse the new syntax for extended_return_statement.
15203
15204         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
15205         Output_End_Missing): Add error-recovery code for the new
15206         extended_return_statement syntax; that is, the new E_Return entry on
15207         the scope stack.
15208
15209         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
15210         limited to nonlimited, because otherwise we violate the new Ada 2005
15211         rules about returning limited types in function Create_AST_Handler in
15212         s-asthan.adb.
15213
15214         * sem.adb (Analyze): Add cases for new node kinds
15215         N_Extended_Return_Statement and N_Return_Object_Declaration.
15216
15217         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
15218         type is in the same category as type of context before applying check,
15219         to prevent anomalies in instantiations.
15220         (Resolve_Aggregate): Remove test for limited components in aggregates.
15221         It's unnecessary in Ada 95, because if it has limited components, then
15222         it must be limited. It's wrong in Ada 2005, because limited aggregates
15223         are now allowed.
15224         (Resolve_Record_Aggregate): Move check for limited types later, because
15225         OK_For_Limited_Init requires its argument to have been resolved.
15226         (Get_Value): When copying the component default expression for a
15227         defaulted association in an aggregate, use the sloc of the aggregate
15228         and not that of the original expression, to prevent spurious
15229         elaboration errors, when the expression includes function calls.
15230         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
15231         were missing. We also didn't handle qualified expressions. Now also
15232         allow function calls. Use new common routine OK_For_Limited_Init.
15233         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
15234         with space can upper case letter).
15235
15236         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
15237         Has_Static_Discriminants flag
15238         (Record_Type_Declaration): Diagnose an attempt to declare an interface
15239         type with discriminants.
15240         (Process_Range_Expr_In_Decl): Do validity checks on range
15241         (Build_Discriminant_Constraints): Use updated form of
15242         Denotes_Discriminant.
15243         (Process_Subtype): If the subtype is a private subtype whose full view
15244         is a concurrent subtype, introduce an itype reference to prevent scope
15245         anomalies in gigi.
15246         (Build_Derived_Record_Type, Collect_Interface_Primitives,
15247         Record_Type_Declaration):  The functionality of the subprograms
15248         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
15249         is now performed by a single routine.
15250         (Build_Derived_Record_Type): If the type definition includes an explicit
15251         indication of limitedness, then the type must be marked as limited here
15252         to ensure that any access discriminants will not be treated as having
15253         a local anonymous access type.
15254         (Check_Abstract_Overriding): Issue a detailed error message when an
15255         abstract subprogram was not overridden due to incorrect mode of its
15256         first parameter.
15257         (Analyze_Private_Extension_Declaration): Add support for the analysis of
15258         synchronized private extension declarations. Verify that the ancestor is
15259         a limited or synchronized interface or in the generic case, the ancestor
15260         is a tagged limited type or synchronized interface and all progenitors
15261         are either limited or synchronized interfaces.
15262         Derived_Type_Declaration): Check for presence of private extension when
15263         dealing with synchronized formal derived types.
15264         Process_Full_View): Enchance the check done on the usage of "limited" by
15265         testing whether the private view is synchronized.
15266         Verify that a synchronized private view is completed by a protected or
15267         task type.
15268         (OK_For_Limited_Init_In_05): New function.
15269         (Analyze_Object_Declaration): Move check for limited types later,
15270         because OK_For_Limited_Init requires its argument to have been resolved.
15271         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
15272         in order to alleviate the upward compatibility introduced by AI-318.
15273         (Constrain_Corresponding_Record): If the constraint is for a component
15274         subtype, mark the itype as frozen, to avoid out-of-scope references to
15275         discriminants in the back-end.
15276         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
15277         this subprogram against wrong sources.
15278         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
15279         discriminant of limited type completed with a protected type, when the
15280         discriminant is used to constrain a private component of the type, and
15281         expansion is disabled.
15282         (Find_Type_Of_Object): Do not treat a return subtype that is an
15283         anonymous subtype as a local_anonymous_type, because its accessibility
15284         level is the return type of the enclosing function.
15285         (Check_Initialization): In -gnatg mode, turn the error "cannot
15286         initialize entities of limited type" into a warning.
15287         (OK_For_Limited_Init): Return true for generated nodes, since it
15288         sometimes violates the legality rules.
15289         (Make_Incomplete_Declaration): If the type for which an incomplete
15290         declaration is created happens to be the currently visible entity,
15291         preserve the homonym chain when removing it from visibility.
15292         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
15293         inherited subprograms.
15294         (Access_Definition): If this is an access to function that is the return
15295         type of an access_to_function definition, context is a type declaration
15296         and the scope of the anonymous type is the current one.
15297         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
15298         incomplete subtype to the set of private dependents of the original
15299         incomplete type.
15300         (Constrain_Discriminated_Type): Emit an error message whenever an
15301         incomplete subtype is being constrained.
15302         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
15303         corresponding subtype of the full view of the original incomplete type.
15304         (Check_Incomplete): Properly detect invalid usage of incomplete types
15305         and subtypes.
15306
15307 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
15308
15309         * g-catiio.ads, g-catiio.adb (Value): New function.
15310         Given an input String, try and parse a valid Time value.
15311
15312 2006-10-31  Vincent Celier  <celier@adacore.com>
15313
15314         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
15315         Integer_Address arithmetic, as in Set_Valid.
15316
15317 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
15318             Robert Dewar  <dewar@adacore.com>
15319
15320         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
15321         handling executable extension manually and duplicating code.
15322
15323         * make.adb: Implement new -S switch
15324         (Gnatmake): Use new function Osint.Executable_Name instead
15325         of handling executable extension manually.
15326
15327         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
15328         is specified, the executable name ends with this suffix.
15329         Take advantage of Osint.Executable_Name instead of duplicating code.
15330
15331         * switch-m.adb: Recognize new gnatmake -S switch
15332
15333         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
15334         variable.
15335         (Get_Target_Parameters): Set Executable_Extension_On_Target if
15336         available.
15337
15338         * makeusg.adb: Add line for gnatmake -S switch
15339
15340 2006-10-31  Vincent Celier  <celier@adacore.com>
15341
15342         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
15343         call it with -static-libgcc, as there are some platforms, such as
15344         Darwin, where one of these two switches is compulsory to link.
15345
15346 2006-10-31  Vincent Celier  <celier@adacore.com>
15347
15348         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
15349         instead of ADA_PROJECT_PATH, for the project path.
15350         (Gnatls): When displaying the project path directories, use host dir
15351         specs.
15352
15353         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
15354         names in the project path, as absolute paths may correspond to
15355         multi-valued VMS logical names.
15356
15357 2006-10-31  Vincent Celier  <celier@adacore.com>
15358
15359         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
15360         absolute path name.
15361         (Locate_Regular_File): Ditto
15362         (Change_Dir): Remove, no longer used
15363         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
15364         on Windows. Get it calling Get_Current_Dir.
15365         (OpenVMS): Remove imported boolean, no longer needed.
15366         (Normalize_Pathname)[VMS]: Do not resolve directory names.
15367         (Pid_To_Integer): New function to convert a Process_Id to  Integer
15368
15369 2006-10-31  Thomas Quinot  <quinot@adacore.com>
15370
15371         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
15372         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
15373         to No_Socket.
15374         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
15375         W_Sig_Socket.
15376
15377 2006-10-31  Robert Dewar  <dewar@adacore.com>
15378
15379         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
15380         initial letter o as a zero.
15381
15382 2006-10-31  Robert Dewar  <dewar@adacore.com>
15383
15384         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
15385
15386 2006-10-31  Robert Dewar  <dewar@adacore.com>
15387
15388         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
15389         variant records
15390         (Layout_Variant_Record): Retrieve the discriminants from the entity
15391         rather than from the type definition, because in the case of a full
15392         type for a private type we need to take the discriminants from the
15393         partial view.
15394         (Layout_Component_List): When applying the Max operator to variants with
15395         a nonstatic size, check whether either operand is static and scale that
15396         operand from bits to storage units before applying Max.
15397         (Layout_Type): In VMS, if a C-convention access type has no explicit
15398         size clause (and does not inherit one in the case of a derived type),
15399         then the size is reset to 32 from 64.
15400
15401 2006-10-31  Vincent Celier  <celier@adacore.com>
15402
15403         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
15404         its file has already been loaded, according to the unit being loaded,
15405         not to the current value of Multiple_Unit_Index.
15406
15407 2006-10-31  Thomas Quinot  <quinot@adacore.com>
15408             Eric Botcazou  <ebotcazou@adacore.com>
15409             Arnaud Charlet  <charlet@adacore.com>
15410
15411         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
15412         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
15413         possible.
15414         (a-except.o): Pass it to the compiler.
15415         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
15416         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
15417         a-calend-mingw.adb version.
15418
15419         * Makefile.rtl: Added s-dsaser.
15420         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
15421         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
15422         Ada.Dispatching.Round_Robin.
15423         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
15424
15425         * Make-lang.in: Remove all references to gt-ada-decl.h.
15426         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
15427         sources.
15428         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
15429         Update dependencies.
15430
15431         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
15432
15433 2006-10-31  Vincent Celier  <celier@adacore.com>
15434
15435         * mlib-utl.adb (Initialized): Remove, no longer used
15436         (Initialize): Remove, no longer used
15437         (Ar): If Ar_Exec is null, get the location of the archive builder and,
15438         if there is one, the archive indexer. Fail if the archive builder cannot
15439         be found.
15440         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
15441         be found.
15442
15443 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
15444
15445         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
15446         Process_Body_Clauses): If the context of a body includes a use clause
15447         for P.Q then a with_clause for P in the same body is not redundant,
15448         even if the spec also has a with_clause on P.
15449         Add missing continuation mark to error msg
15450         (Build_Limited_Views): A limited view of a type is tagged if its
15451         declaration includes a record extension.
15452         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
15453         node, even if the subunit has errors. This avoids malfunction by
15454         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
15455         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
15456         generation of obsolescent messages for with statements (cannot do
15457         this too early, or we cannot implement avoiding the messages in the
15458         case of obsolescent units withing obsolescent units).
15459         (Install_Siblings): If the with_clause is on a remote descendant of
15460         an ancestor of the current compilation unit, find whether there is
15461         a sibling child unit that is immediately visible.
15462         (Remove_Private_With_Clauses): New procedure, invoked after completing
15463         the analysis of the private part of a nested package, to remove from
15464         visibility the private with_clauses of the enclosing package
15465         declaration.
15466         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
15467         now centralized in Generate_Reference.
15468         (Install_Limited_Context_Clauses): Remove superfluous error
15469         message associated with unlimited view visible through use
15470         and renamings. In addition, at the point in which the error
15471         is reported, we add the backslash to the text of the error
15472         to ensure that it is reported as a single error message.
15473         Use new // insertion for some continuation messages
15474         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
15475         to create implicit with_clause for parent unit mentioned in original
15476         limited_with_clause.
15477         (Install_Limited_With_Unit): Set entity of parent identifiers if the
15478         unit is a child unit. For ASIS queries.
15479         (Analyze_Subunit): If the subunit appears within a child unit, make all
15480         ancestor child units directly visible again.
15481
15482 2006-10-31  Robert Dewar  <dewar@adacore.com>
15483
15484         * par-ch10.adb (P_Context_Clause): Minor error message fix
15485
15486 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
15487             Javier Miranda  <miranda@adacore.com>
15488
15489         * par-ch12.adb: Grammar update and cleanup.
15490         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
15491         support for synchronized derived type definitions.
15492         Add the new actual Abstract_Present to every call to
15493         P_Interface_Type_Definition.
15494         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
15495         a formal object declaration with an access definition or a subtype mark
15496         with a null exclusion.
15497         (P_Generic_Association): Handle association with box, and others_choice
15498         with box, to support Ada 2005 partially parametrized formal packages.
15499
15500 2006-10-31  Robert Dewar  <dewar@adacore.com>
15501             Javier Miranda  <miranda@adacore.com>
15502
15503         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
15504         (P_Type_Declaration): Remove barrier against the reserved word "limited"
15505         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
15506         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
15507         private extensions.
15508         (P_Type_Declaration): Add the new actual Abstract_Present to every call
15509         to P_Interface_Type_Definition.
15510         (P_Interface_Type_Definition): Addition of one formal to report an error
15511         if the reserved word abstract has been previously found.
15512         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
15513         object renaming declaration with an access definition or subtype mark
15514         with a possible null exclusion.
15515
15516         * par-ch9.adb: Minor error msg fix
15517
15518         * par-load.adb: Add missing continuation mark to error msg
15519
15520         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
15521
15522 2006-10-31  Vincent Celier  <celier@adacore.com>
15523
15524         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
15525         unknown attribute in unknown package or in package that does not need
15526         to be checked.
15527         (Parse_Package_Declaration): Do not issue warning for unknown package in
15528         quiet output.
15529
15530 2006-10-31  Vincent Celier  <celier@adacore.com>
15531
15532         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
15533         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
15534         Packages_To_Check.
15535
15536 2006-10-31  Vincent Celier  <celier@adacore.com>
15537
15538         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
15539         on VMS, change "__" to '.' before checking the name.
15540         (Record_Ada_Source): Always add the source file name in the list of
15541         of sources, even if it is not the first time, as it is for another
15542         source index.
15543         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
15544         dot, instead of replacing only the first '_'.
15545
15546         * prj-part.adb (Parse): Convert project file path to canonical form
15547
15548         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
15549         extended, the project id of the project extending it is recorded in its
15550         data, even when it has already been processed as an imported project.
15551
15552 2006-10-31  Robert Dewar  <dewar@adacore.com>
15553
15554         * repinfo.adb (List_Entities): Don't list entities from renaming
15555         declarations.
15556
15557 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
15558             Robert Dewar  <dewar@adacore.com>
15559
15560         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
15561         only a restriction warning is active for the given restriction. This is
15562         desirable because we do not want to modify code in the case where only
15563         a warning is set.
15564         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
15565         causes overriding of real restrictions.
15566         Take advantage of new No_Restrictions constant.
15567
15568         * raise.h: (__gnat_set_globals): Change profile.
15569
15570 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
15571
15572         * rtsfind.adb: Remove s-polint from comment as it exists no more.
15573
15574         * rtsfind.ads: 
15575         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
15576         Move all the entities in obsolete package System.PolyORB_Interface to
15577         System.Partition_Interface.
15578         (RE_Storage_Size): New function in System.Tasking.
15579         (RE_Get_Ceiling): New entity.
15580         (RE_Set_Ceiling): New entity.
15581         (RO_PE_Get_Ceiling): New entity.
15582         (RO_RE_Set_Ceiling): New entity.
15583         (Inherit_CPP_DT): New entity
15584
15585 2006-10-31  Robert Dewar  <dewar@adacore.com>
15586
15587         * scng.adb (Scan, case of numeric literal): Better msg for identifier
15588         starting with a digit.
15589
15590 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
15591             Thomas Quinot  <quinot@adacore.com>
15592             Javier Miranda  <miranda@adacore.com>
15593             Gary Dismukes  <dismukes@adacore.com>
15594
15595         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
15596         properly an attempt to apply Unchecked_Access to a protected operation.
15597         (OK_Self_Reference): New subprogram to check the legality of an access
15598         attribute whose prefix is the type of an enclosing aggregate.
15599         Generalizes previous mechanism to handle attribute references nested
15600         arbitrarily deep within the aggregate.
15601         (Analyze_Access_Attribute): An access attribute whose prefix is a type
15602         can appear in an aggregate if this is a default-initialized aggregate
15603         for a self-referential type.
15604         (Resolve_Attribute, case Access): Ditto.
15605         Add support for new implementation defined attribute Stub_Type.
15606         (Eval_Attribute, case Attribute_Stub_Type): New case.
15607         (Analyze_Attribute, case Attribute_Stub_Type): New case.
15608         (Stream_Attribute_Available): Implement using new subprogram from
15609         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
15610         Has_Specified_Stream_Attribute flag.
15611         Disallow Storage_Size and Storage_Pool for access to subprogram
15612         (Resolve_Attribute, case 'Access et al): Take into account anonymous
15613         access types of return subtypes in extended return statements. Remove
15614         accessibility checks on anonymous access types when Unchecked_Access is
15615         used.
15616         (Analyze_Attribute): Add support for the use of 'Class to convert
15617         a class-wide interface to a tagged type.
15618         Add support for the attribute Priority.
15619         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
15620         whether the designated type is discriminated with a constrained partial
15621         view and require static matching in that case.
15622         Add local variable Des_Btyp. The Designated_Type
15623         of an access to incomplete subtype is either its non-limited view if
15624         coming from a limited with or its etype if regular incomplete subtype.
15625
15626         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
15627         Fix predicate to identify and allow cases of (expander-generated)
15628         references to tag of designated object of a RACW.
15629         (Validate_Static_Object_Name): In Ada 2005, a formal object is
15630         non-static, and therefore cannot appear as a primary in a preelaborable
15631         package.
15632         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
15633         Has_Read_Write_Attributes.
15634         (Has_Read_Write_Attributes): Reimplement in termes of
15635         Has_Stream_Attribute_Definition.
15636         (Missing_Read_Write_Attributes): When checking component types in a
15637         record, unconditionally call Missing_Read_Write_Attributes recursively
15638         (remove guard checking for Is_Record_Type / Is_Access_Type).
15639
15640 2006-10-31  Robert Dewar  <dewar@adacore.com>
15641
15642         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
15643         useless assignments here and conditionalize it on absence of exception
15644         handlers.
15645         (Analyze_Exception_Handlers): Small code reorganization of error
15646         detection code, for new handling of formal packages.
15647
15648 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
15649             Hristian Kirtchev  <kirtchev@adacore.com>
15650
15651         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
15652         that has been constant-folded, preserve information of original tree,
15653         for ASIS uses.
15654         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
15655         generated private extension declaration if the formal derived type is
15656         synchronized. Carry synchronized present over to the generated private
15657         extension.
15658         (Validate_Derived_Type_Instance): Ensure that the actual of a
15659         synchronized formal derived type is a synchronized tagged type.
15660         (Instantiate_Formal_Package): When creating the instantiation used to
15661         validate the actual package of a formal declared without a box, check
15662         whether the formal itself depends on a prior actual.
15663         (Instantiate_Formal_Subprogram): Create new entities for the defining
15664         identifiers of the formals in the renaming declaration, for ASIS use.
15665         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
15666         a renaming declaration or a subtype declaration for an actual in an
15667         instance, capture location information of declaration in generic, for
15668         ASIS use.
15669         (Instantiate_Formal_Package): Add comments on needed additional tests.
15670         AI-317 (partial parametrization) is fully implemented.
15671         (Validate_Private_Type_Instance): Add check for actual which
15672         must have preelaborable initialization
15673         Use new // insertion for some continuation messages
15674         (Analyze_Formal_Object_Declaration): Change usage of Expression to
15675         Default_Expression. Add type retrieval when the declaration has an
15676         access definition. Update premature usage of incomplete type check.
15677         (Check_Access_Definition): New subsidiary routine. Check whether the
15678         current compilation version is Ada 05 and the supplied node has an
15679         access definition.
15680         (Instantiate object): Alphabetize local variables. Handle the creation
15681         of new renaming declarations with respect to the kind of definition
15682         used - either an access definition or a subtype mark. Guard against
15683         unnecessary error message in the context of anonymous access types after
15684         they have been resolved. Add check for required null exclusion in a
15685         formal object declaration.
15686         (Switch_View): A private subtype of a non-private type needs to be
15687         switched (the base type can have been switched without its private
15688         dependents because of the last branch of Check_Private_View.
15689         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
15690         value from BT.
15691         (Instantiate_Type): Emit an error message whenever a class-wide type of
15692         a tagged incomplete type is used as a generic actual.
15693         (Find_Actual_Type): Extend routine to handle a component type in a child
15694         unit that is imported from a formal package in a parent.
15695         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
15696         agree on constrainedness, rather than checking against ultimate ancestor
15697         (Instantiate_Subprogram_Body): Create a cross-reference link to the
15698         generic body, for navigation purposes.
15699
15700 2006-10-31  Robert Dewar  <dewar@adacore.com>
15701             Thomas Quinot  <quinot@adacore.com>
15702
15703         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
15704         type.
15705         (New_Stream_Subprogram): When processing an attribute definition clause
15706         for a stream-oriented subprogram, record an entity node occurring at
15707         the point of clause to use for checking the visibility of the clause,
15708         as defined by 8.3(23) as amended by AI-195.
15709         (New_Stream_Subprogram): New procedure, factoring behaviour from both
15710          New_Stream_Function and New_Stream_Procedure.
15711         (New_Stream_Function, New_Stream_Procedure): Removed.
15712         (Analyze_Attribute_Definition_Clause, case Address): Check new
15713         Alignment_Check check
15714
15715 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
15716             Javier Miranda  <miranda@adacore.com>
15717             Robert Dewar  <dewar@adacore.com>
15718
15719         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
15720         generate the same errors compiling under -gnatc.
15721         (Try_Object_Operation): If no candidate interpretation succeeds, but
15722         there is at least one primitive operation with the right name, report
15723         error in call rather than on a malformed selected component.
15724         (Analyze_Selected_Component): If the prefix is an incomplete type from
15725         a limited view, and the full view is available, use the full view to
15726         determine whether this is a prefixed call to a primitive operation.
15727         (Operator_Check): Verify that a candidate interpretation is a binary
15728         operation before checking the type of its second formal.
15729         (Analyze_Call): Add additional warnings for function call contexts not
15730         yet supported.
15731         (Analyze_Allocator): Move the check for "initialization not allowed for
15732         limited types" after analyzing the expression. This is necessary,
15733         because OK_For_Limited_Init looks at the structure of the expression.
15734         Before analysis, we don't necessarily know what sort of expression it
15735         is. For example, we don't know whether F(X) is a function call or an
15736         indexed component; the former is legal in Ada 2005; the latter is not.
15737         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
15738         were missing. We also didn't handle qualified expressions. Now also
15739         allow function calls. Use new common routine OK_For_Limited_Init.
15740         (Analyze_Type_Conversion): Do not perform some legality checks in an
15741         instance, because the error message will be redundant or spurious.
15742         (Analyze_Overloaded_Selected_Component): Do not do style check when
15743         setting an entity, since we do not know it is the right entity yet.
15744         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
15745         (Analyze_Overloaded_Selected_Component): Same change
15746         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
15747         since regular incomplete subtypes are transformed into corresponding
15748         subtypes of their full views.
15749         (Complete_Object_Operation): Treat name of transformed subprogram call
15750         as coming from source, for browsing purposes.
15751         (Try_Primitive_Operation): If formal is an access parameter, compare
15752         with base type of object to determine whether it is a primitive
15753         operation.
15754         (Operator_Check): If no interpretation of the operator matches, check
15755         whether a use clause on any candidate might make the operation legal.
15756         (Try_Class_Wide_Operation): Check whether the first parameter is an
15757         access type whose designated type is class-wide.
15758
15759 2006-10-31  Robert Dewar  <dewar@adacore.com>
15760             Ed Schonberg  <schonberg@adacore.com>
15761             Gary Dismukes  <dismukes@adacore.com>
15762
15763         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
15764         warn on infinite loops.
15765         Add \\ to some continuation messages
15766         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
15767         (Process_Bounds): If the bounds are integer literals that result from
15768         constant-folding, and they carry a user-defined type, preserve that type
15769         rather than treating this as an integer range.
15770         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
15771         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
15772         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
15773         left hand side of assignment.
15774         (Analyze_Assignment): Add suport to manage assigments to the attribute
15775         priority of a protected object.
15776         (Check_Possible_Current_Value_Condition): Allow fully qualified names
15777         not just identifiers.
15778         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
15779         or AND THEN for possible tracking.
15780         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
15781         case of while loops so we can track values in the loop body.
15782
15783 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
15784             Hristian Kirtchev  <kirtchev@adacore.com>
15785             Bob Duff  <duff@adacore.com>
15786
15787         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
15788         procedure cannot be a protected operation (it is a basic_declaration,
15789         not a subprogram_declaration).
15790         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
15791         Subp. Add logic for entry processing.
15792         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
15793         Determine whether an entry or subprogram of a protected or task type
15794         override an inherited primitive of an implemented interface.
15795         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
15796         Update the actual used in calls to Check_Overriding_Indicator.
15797         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
15798         generate the proper reference to the parent unit, for cross-reference.
15799         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
15800         Is_Formal.
15801         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
15802         (Add_Extra_Formal): Revise procedure to allow passing in associated
15803         entity, scope, and name suffix, and handle setting of the new
15804         Extra_Formals field.
15805         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
15806         pass new parameters. Add support for adding the new extra access formal
15807         for functions whose calls are treated as build-in-place.
15808         (Analyze_A_Return_Statement): Correct casing in error message.
15809         Move Pop_Scope to after Analyze_Function_Return, because an extended
15810         return statement really is a full-fledged scope. Otherwise, visibility
15811         doesn't work right. Correct use of "\" for continuation messages.
15812         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
15813         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
15814         the node doesn't get properly marked as analyzed.
15815         (Analyze_Subprogram_Body): If subprogram is a function that returns
15816         an anonymous access type that denotes a task, build a Master Entity
15817         for it.
15818         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
15819         proper usage of null exclusion in a result definition.
15820         (Process_Formals): Code cleanup and new error message.
15821         (Process_Formals): Detect incorrect application of null exclusion to
15822         non-access types.
15823         (Conforming_Types): Handle conformance between [sub]types and itypes
15824          generated for entities that have null exclusions applied to them.
15825         (Maybe_Primitive_Operation): Add an additional type retrieval when the
15826          base type is an access subtype. This case arrises with null exclusions.
15827         (New_Overloaded_Entity): Do not remove the overriden entity from the
15828         homonym chain if it corresponds with an abstract interface primitive.
15829         (Process_Formals): Replace membership test agains Incomplete_Kind with a
15830         call to the synthesized predicate Is_Incomplete_Type.
15831         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
15832         primitives.
15833         (Analyze_Subprogram_Declaration): Check that abstract interface
15834         primitives are abstract or null.
15835         (Analyze_Subprogram_Specification): Remove previous check for abstract
15836         interfaces because it was not complete.
15837         (Has_Interface_Formals): Removed.
15838
15839 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
15840             Javier Miranda  <miranda@adacore.com>
15841
15842         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
15843         of Analyze_Package_Body, to create Itype references for anonymous
15844         access types created in the package declaration, whose designated types
15845         may have only a limited view.
15846         (Analyze_Package_Specification): For the private part of a nested
15847         package, install private_with_clauses of enclosing compilation unit if
15848         we are in its visible part.
15849         (Declare_Inherited_Private_Subprograms): Complete barrier
15850         to ensure that the primitive operation has an alias to some parent
15851         primitive. This is now required because, after the changes done for the
15852         implementation of abstract interfaces, the contents of the list of
15853         primitives has entities whose alias attribute references entities of
15854         such list of primitives.
15855         (Analyze_Package_Specification): Simplify code that handles parent units
15856         of instances and formal packages.
15857         (Uninstall_Declarations): Check the convention consistency among
15858         primitive overriding operations of a tagged record type.
15859
15860 2006-10-31  Robert Dewar  <dewar@adacore.com>
15861             Hristian Kirtchev  <kirtchev@adacore.com>
15862             Javier Miranda  <miranda@adacore.com>
15863             Ed Schonberg  <schonberg@adacore.com>
15864
15865         * sem_ch8.adb: Minor error msg rewording
15866         (Undefined): When checking for misspellings, invert arguments (to get
15867         expected and found set right)
15868         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
15869         (Analyze_Generic_Renaming): Same fix
15870         (Use_One_Package): Do not take into account the internal entities of
15871         abstract interfaces during the analysis of entities that are marked
15872         as potentially use-visible.
15873         (Find_Type): Handle the case of an attribute reference for
15874         implementation defined attribute Stub_Type (simply let the analysis of
15875         the attribute reference rewrite it).
15876         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
15877         type that appears in a Use_Type clause.
15878         (Analyze_Object_Renaming): Add support for renaming of the Priority
15879         attribute.
15880         (Find_Type): In Ada 2005, a task type can be used within its own body,
15881         when it appears in an access definition.
15882         (Analyze_Object_Renaming): Remove warning on null_exclusion.
15883         (Analyze_Object_Renaming): Introduce checks for required null exclusion
15884          in a formal object declaration or in a subtype declaration.
15885         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
15886         (Check_Null_Exclusion): New local routine to
15887         Analyze_Subprogram_Renaming. Check whether the formals and return
15888         profile of a renamed subprogram have required null exclusions when
15889         their counterparts of the renaming already impose them.
15890         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
15891         Determine whether an entity is inside a generic scope.
15892         (In_Open_Scope): First pass of documentation update.
15893         (Find_Expanded_Name): Add support for shadow entities associated with
15894         limited withed packages. This is required to handle nested packages.
15895         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
15896         that makes a renaming of a limited withed package illegal.
15897
15898 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
15899             Ed Schonberg  <schonberg@adacore.com>
15900
15901         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
15902         Check_Overriding_Indicator.
15903         (Analyze_Task_Definition): Ditto.
15904         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
15905         (Check_Overriding_Indicator): To find overridden interface operation,
15906         examine only homonyms that have an explicit subprogram declaration, not
15907         inherited operations created by an unrelated type derivation.
15908         (Check_Overriding_Indicator): When checking for the presence of "null"
15909         in a procedure, ensure that the queried node is a procedure
15910         specification.
15911         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
15912         type when the formal is an access to variable.
15913         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
15914         (Analyze_Task_Type): Same addition
15915         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
15916         provide navigation capabilities for entries.
15917
15918 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
15919             Ed Schonberg  <schonberg@adacore.com>
15920             Javier Miranda  <miranda@adacore.com>
15921             Gary Dismukes  <dismukes@adacore.com>
15922
15923         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
15924         inherited from an interface ancestor by another interface in the
15925         context of an instance as 'late'.
15926         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
15927         of a call to a function that dispatches on access result.
15928         (Check_Dispatching_Operation): In case of late overriding of a primitive
15929         that covers abstract interface subprograms we register it in all the
15930         secondary dispatch tables associated with abstract interfaces.
15931         (Check_Dispatching_Call): Add check that a dispatching call is not made
15932         to a function with a controlling result of a limited type. This is a
15933         current implementation restriction.
15934         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
15935         (Check_Dispatching_Operation): Do no emit a warning if the controlling
15936         argument is an interface type that is a generic formal.
15937         (Is_Interface_Subprogram): Removed.
15938         (Check_Dispatching_Operation): If the subprogram is not a dispatching
15939         operation, check the formals to handle the case in which it is
15940         associated with an abstract interface type.
15941
15942 2006-10-31  Robert Dewar  <dewar@adacore.com>
15943             Ed Schonberg  <schonberg@adacore.com>
15944
15945         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
15946         Add new calls to this procedure during traversal
15947         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
15948         another unit if expansion is disabled.
15949
15950 2006-10-31  Robert Dewar  <dewar@adacore.com>
15951
15952         * sem_eval.adb (Compile_Time_Compare): Make use of information from
15953         Current_Value in the conditional case, to evaluate additional
15954         comparisons at compile time.
15955
15956 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
15957             Hristian Kirtchev  <kirtchev@adacore.com>
15958             Javier Miranda  <miranda@adacore.com>
15959
15960         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
15961         subprogram type to provide better diagnostics in case of ambiguity.
15962         (Covers): Handle coverage of formal and actual anonymous access types in
15963         the context of generic instantiation.
15964         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
15965         abstract interface types; this is required to handle concurrent types
15966         with discriminants and abstract interface types.
15967         (Covers): Include type coverage of both regular incomplete subtypes and
15968         incomplete subtypes of incomplete type visibles through a limited with
15969         clause.
15970
15971 2006-10-31  Robert Dewar  <dewar@adacore.com>
15972             Hristian Kirtchev  <kirtchev@adacore.com>
15973             Ed Schonberg  <schonberg@adacore.com>
15974
15975         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
15976         messages for entities in packages which are not used.
15977         (Collect_Synchronized_Interfaces): New procedure.
15978         (Overrides_Synchronized_Primitive): New function.
15979         (Denotes_Discriminant): Extend predicate to apply to task types.
15980         Add missing continuation marks in error msgs
15981         (Unqualify): New function for removing zero or more levels of
15982         qualification from an expression. There are numerous places where this
15983         ought to be used, but we currently only deal properly with zero or one
15984         level.
15985         (In_Instance); The analysis of the actuals in the instantiation of a
15986         child unit is not within an instantiation, even though the parent
15987         instance is on the scope stack.
15988         (Safe_To_Capture_Value): Exclude the case of variables that are
15989         renamings.
15990         (Check_Obsolescent): Removed
15991         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
15992         is an aliased view, even when rewritten as a reference to the target
15993         object in an assignment.
15994         (Get_Subprogram_Entity): New function
15995         (Known_To_Be_Assigned): New function
15996         (Type_Access_Level): Compute properly the access level of a return
15997         subtype that is an anonymous access type.
15998         (Explain_Limited_Type): Correct use of "\" for continuation messages.
15999         (Is_Transfer): The new extended_return_statement causes a transfer of
16000         control.
16001         (Has_Preelaborable_Initialization): New function
16002         (Has_Null_Exclusion): New function. Given a node N, determine whether it
16003         has a null exclusion depending on its Nkind.
16004         Change Is_Lvalue to May_Be_Lvalue
16005         (May_Be_Lvalue): Extensive additional code to deal with subprogram
16006         arguments (IN parameters are not Lvalues, IN OUT parameters are).
16007         (Safe_To_Capture_Value): Extend functionality so it can be used for
16008         the current value condition case.
16009         (Has_Compatible_Alignment): New function
16010         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
16011         objects to handle the Ada 2005 case, where aliasedness no longer implies
16012         that the object is constrained. In particular, for dereferenced names,
16013         the designated object must be assumed to be unconstrained.
16014         (Kill_Current_Values): Properly deal with the case where we encounter
16015         a loop in the scope chain.
16016         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
16017         a value.
16018         (Compile_Time_Constraint_Error): Improve error message in error case
16019
16020         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
16021         associated with entities of abstract interface primitives.
16022         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
16023
16024 2006-10-31  Robert Dewar  <dewar@adacore.com>
16025
16026         * s-osinte-tru64.adb: 
16027         Mark Asm statements Volatile to prevent warnings (seems a
16028         reasonable change anyway)
16029         Fixes new warnings
16030
16031         * s-mastop-irix.adb: Add Volatile to Asm statements
16032         Suppresses warning, and seems appropriate in any case
16033
16034         * s-osinte-vms.adb: Add Volatile to Asm statement
16035
16036         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
16037
16038         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
16039         returned.
16040         Add call to Check_Code_Statement
16041
16042 2006-10-31  Robert Dewar  <dewar@adacore.com>
16043             Ed Schonberg  <schonberg@adacore.com>
16044             Bob Duff  <duff@adacore.com>
16045
16046         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
16047         Synchronized_Present): Add Formal_Derived_Type_Definition and
16048         Private_Extension_Declaration to the list of assertions.
16049         (Is_Entry_Barrier_Function): New flag
16050         (Has_Self_Reference): New flag on aggregates, to indicate that they
16051         contain a reference to the enclosing type, inserted through a default
16052         initialization.
16053         (Next_Rep_Item): Move from Node4 to Node5.
16054         (Entity): Add this field for N_Attribute_Definition_Clause.
16055         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
16056         (N_Return_Object_Declaration): Remove this node kind. We now use
16057         N_Object_Declaration instead.
16058         (Actual_Designated_Subtype): Move to a different place to make room in
16059         N_Extended_Return_Statement.
16060         (Procedure_To_Call): Move to a different place to make room in
16061         N_Extended_Return_Statement.
16062         (Return_Type): Removed this field to make room in return statements
16063         (both kinds).
16064         (Return_Statement_Entity): New field in return statements, in part to
16065         replace Return_Type, and in part to support the fact that return
16066         statements are now pushed on the scope stack during semantic analysis.
16067         (Return_Object_Declarations): New field to support extended return
16068         statements.
16069         (N_Extended_Return_Statement): New node for extended_return_statement
16070         nonterminal.
16071         (N_Return_Object_Declaration): New node for part of
16072         extended_return_statement nonterminal. Needed because all the necessary
16073         fields won't fit in N_Extended_Return_Statement.
16074         Generic_associations now carry the Box_Present flag, to indicate a
16075         default for an actual in a partially parametrized formal package.
16076
16077         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
16078         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
16079         and for the new predefined dispatching policies: EDF_Across_Priorities,
16080         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
16081         Introduce new name Stub_Type for implementation defined attribute.
16082         Add pragma Preelaborable_Initialization
16083         Add entry for Priority attribute.
16084         Add Pragma_Wide_Character_Encoding
16085         (Get_Convention_Name): Given a convention id, this function returns the
16086         corresponding name id from the names table.
16087
16088 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
16089             Robert Dewar  <dewar@adacore.com>
16090             Bob Duff  <duff@adacore.com>
16091
16092         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
16093         print null exclusion twice in the case of an access definition,
16094         Implement new -gnatL switch
16095         Remove N_Return_Object_Declaration. We now use
16096         N_Object_Declaration instead. Implement the case for
16097         N_Extended_Return_Statement. Alphabetize the cases.
16098         Add cases for new nodes N_Extended_Return_Statement and
16099         N_Return_Object_Declaration. The code is not yet written.
16100         Update the output for N_Formal_Object_Declaration
16101         and N_Object_Renaming_Declaration.
16102         (Write_Itype): Account for the case of a modular integer subtype whose
16103         base type is private.
16104
16105 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
16106
16107         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
16108         Remove elaboration code, now done in the binder.
16109
16110         * s-rident.ads: Make this unit Preelaborate.
16111         (No_Restrictions): New constant used to clean up code and follow
16112         preelaborate constraints.
16113
16114         * s-stalib.adb: 
16115         Add System.Restrictions dependence, referenced directly from the
16116         binder generated file.
16117
16118 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
16119
16120         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
16121         True when AAMP extended floating-point is in use (48-bit). Change type
16122         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
16123         the two byte array types on AFloat. Change type of IV_Ilf overlay
16124         variable from Byte8 to ByteLF. Add appropriate initializations of
16125         floating-point overlays for AAMP cases.
16126
16127 2006-10-31  Javier Miranda  <miranda@adacore.com>
16128
16129         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
16130         (Get_Ceiling): New subprogram that returns
16131         the ceiling priority of the protected object.
16132         (Set_Ceiling): New subprogram that sets the new ceiling priority of
16133         the protected object.
16134
16135         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
16136
16137         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
16138
16139 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
16140
16141         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
16142         requeuing to the same protected object to give higher priority tasks
16143         the opportunity to execute.
16144
16145 2006-10-31  Robert Dewar  <dewar@adacore.com>
16146
16147         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
16148         add more precise check for the character sequence that follows '[' to
16149         avoid possible confusion in case if '[' is the last character of a
16150         string literals.
16151         (Scan_Wide): Always allow brackets encoding
16152
16153 2006-10-31  Olivier Hainque  <hainque@adacore.com>
16154
16155         * s-stchop.ads: make this unit preelaborate. This is desirable in
16156         general and made mandatory by the use of this unit by s-taprop which
16157         is itself preelaborate.
16158
16159         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
16160         Td_Events component.
16161
16162 2006-10-31  Vincent Celier  <celier@adacore.com>
16163
16164         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
16165         in file names.
16166
16167 2006-10-31  Vincent Celier  <celier@adacore.com>
16168
16169         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
16170
16171 2006-10-31  Vincent Celier  <celier@adacore.com>
16172
16173         * makegpr.adb (Check_Compilation_Needed): Take into account path names
16174         with spaces.
16175         (Check_Compilation_Needed): When checking a C or C++ source, do not
16176         resolve symbolic links.
16177         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
16178         When not in verbose mode and Ellipse is True, display "..." for the
16179         first argument with Display set to False.
16180         (Build_Global_Archive): Always set Display True for the first object
16181         file. Call Display_Command with Ellipse set to True.
16182
16183 2006-10-31  Matt Heaney  <heaney@adacore.com>
16184
16185         * a-crbtgo.ads: Commented each subprogram
16186
16187         * a-crbtgo.adb: Added reference to book from which algorithms were
16188         adapted.
16189
16190         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
16191         indicate which child.
16192         (Generic_Conditional_Insert): changed parameter name from "Success" to
16193         "Inserted".
16194         (Generic_Unconditional_Insert_With_Hint): improved algorithm
16195
16196         * a-coorse.adb (Replace_Element): changed parameter name in call to
16197         conditional insert operation.
16198
16199         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
16200
16201         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
16202         Generic_Iteration
16203
16204         * a-ciorse.adb (Replace_Element): changed parameter name in call to
16205         conditional insert operation.
16206
16207         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
16208         Generic_Iteration.
16209
16210         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
16211         instead of mode inout.
16212
16213         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
16214         draft
16215         (Generic_Read): preserve existing buckets array if possible
16216         (Generic_Write): don't send buckets array length anymore
16217
16218         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
16219         instead of mode inout.
16220
16221         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
16222         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
16223
16224         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
16225         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
16226         (Replace_Element): local operation is now an instantiation
16227
16228         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
16229         check current length.
16230         (Generic_Replace_Element): new operation
16231
16232 2006-10-31  Doug Rupp  <rupp@adacore.com>
16233
16234         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
16235         Call TBK$SYMBOLIZE without omitting parameters.
16236
16237 2006-10-31  Vincent Celier  <celier@adacore.com>
16238
16239         * symbols-processing-vms-ia64.adb,
16240         symbols-processing-vms-alpha.adb (Process): Do not include symbols
16241         that come from generic instantiations in bodies.
16242
16243 2006-10-31  Pat Rogers  <rogers@adacore.com>
16244
16245         * a-rttiev.ads, a-rttiev.adb: 
16246         This is a significant redesign primarily for the sake of automatic
16247         timer task termination but also to fix a design flaw.
16248         Therefore we are now using an RTS lock, instead of a protected
16249         object, to provide mutual exclusion to the queue of pending events
16250         and the type Timing_Event is no longer a protected type.
16251
16252 2006-10-31  Robert Dewar  <dewar@adacore.com>
16253             Cyrille Comar  <comar@adacore.com>
16254             Ben Brosgol  <brosgol@adacore.com>
16255
16256         * debug.adb:  Update flags documentation
16257
16258         * gnat_ugn.texi: Add documentation for new -gnatwq switch
16259         Clean up documentation for several other warning switches
16260         Clarify how task stack size can be specified with various
16261         versions of Windows.
16262         Add note that -gnatVo includes ranges including loops
16263         Add documentation for -gnatL switch
16264         Add note on elaboration warning for initializing variables
16265         Add documentation for new -gnatwt warning switch
16266         Document new form of pragma Warnings (On|Off, string)
16267         Add comment on use of pragma Warnings to control warnings
16268         Add documentation for -gnatjnn switch
16269         Modify section on interfacing with C for VMS 64-bit.
16270         Add doc for -gnatVe/E
16271         Add documentation of new warning flags -gnatww/-gnatwW
16272         Add warnings about address clause overlays to list of warnings
16273         (Exception Handling Control): Document that the option --RTS must be
16274         used consistently for gcc and gnatbind.
16275         Clarify that inlining is not always possible
16276         Update documentation on pragma Unchecked_Union.
16277
16278         * gnat_rm.texi: 
16279         Add documentation for new extended version of pragma Obsolescent
16280         Add documentation for implementation defined attribute 'Stub_Type.
16281         Add note on use of Volatile in asm statements
16282         Add documentation on use of pragma Unreferenced in context clause
16283         Document new form of pragma Warnings (On|Off, pattern)
16284         Document pragma Wide_Character_Encoding
16285         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
16286         enforced if code generation is active.
16287         Add section on pragma Suppress to document GNAT specific check
16288         Alignment_Check
16289         Clarify difference between No_Dispatching_Calls & No_Dispatch.
16290         Add documentation for pragma Restrictions (No_Elaboration_Code)
16291
16292         * gnat-style.texi: 
16293         Add comments on layout of subprogram local variables in the
16294         presence of nested subprograms.
16295
16296         * ug_words: Resync.
16297
16298         * elists.ads: Minor reformatting
16299         Node returns Node_Or_Entity_Id (doc change only)
16300
16301         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
16302
16303         * g-arrspl.ads (Create): Update comments.
16304
16305         * sem.ads: Add details on the handling of the scope stack.
16306
16307         * usage.adb: Update documentation.
16308
16309         * validsw.ads, validsw.adb: 
16310         Add definition of Validity_Check_Components and implement -gnatVe/E
16311
16312         * vms_data.ads: Add missing VMS qualifiers.
16313
16314         * s-addope.ads: Add documentation on overflow and divide by zero
16315
16316 2006-10-31  Robert Dewar  <dewar@adacore.com>
16317             Thomas Quinot  <quinot@adacore.com>
16318             Arnaud Charlet  <charlet@adacore.com>
16319
16320         * fmap.adb: Put routines in alpha order
16321
16322         * g-boumai.ads: Remove redundant 'in' keywords
16323
16324         * g-cgi.adb: Minor reformatting
16325
16326         * g-cgi.ads: Remove redundant 'in' keywords
16327
16328         * get_targ.adb: Put routines in alpha order
16329
16330         * prj-attr.ads: Minor reformatting
16331
16332         * s-atacco.ads: Minor reformatting
16333
16334         * scn.adb: Put routines in alpha order
16335
16336         * sinput-l.adb: Minor comment fix
16337
16338         * sinput-p.adb: Minor comment fix
16339
16340         * s-maccod.ads: Minor reformatting
16341
16342         * s-memory.adb: Minor reformatting
16343
16344         * s-htable.adb: Fix typo in comment.
16345
16346         * s-secsta.adb: Minor comment update.
16347
16348         * s-soflin.adb: Minor reformatting
16349
16350         * s-stoele.ads: 
16351         Add comment about odd qualification in Storage_Offset declaration
16352
16353         * s-strxdr.adb: 
16354         Remove unnecessary 'in' keywords for formal parameters.
16355
16356         * treeprs.adt: Minor reformatting
16357
16358         * urealp.adb: Put routines in alpha order
16359
16360         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
16361         taking string.
16362
16363         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
16364
16365         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
16366
16367         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
16368         workaround as on other platforms.
16369
16370         * g-eacodu-vms.adb: Remove redundant 'in' keywords
16371         * g-expect-vms.adb: Remove redundant 'in' keywords
16372
16373         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
16374         clear error message if the list-of-files file cannot be opened.
16375
16376         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
16377         equality operator is always visible.
16378
16379         * lang.opt: Woverlength-strings: New option.
16380
16381         * nmake.adt: 
16382         Update copyright, since nmake.ads and nmake.adb have changed.
16383
16384         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
16385         (Binder_Output_Time_Stamps_Set): removed.
16386         (Old_Binder_Output_Time_Stamp): idem.
16387         (New_Binder_Output_Time_Stamp): idem.
16388         (Recording_Time_From_Last_Bind): idem.
16389         (Recording_Time_From_Last_Bind): Make constant.
16390
16391         * output.ads, output.adb (Write_Str): Allow LF characters
16392         (Write_Spaces): New procedure
16393
16394         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
16395
16396         * inline.adb: Minor reformatting
16397
16398         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
16399
16400         * s-mastop-vms.adb: Remove redundant 'in' keywords
16401
16402         * s-osprim-vms.adb: Remove redundant 'in' keywords
16403
16404         * s-trafor-default.adb: Remove redundant 'in' keywords
16405
16406         * 9drpc.adb: Remove redundant 'in' keywords
16407
16408         * s-osinte-mingw.ads: Minor reformatting
16409
16410         * s-inmaop-posix.adb: Minor reformatting
16411
16412         * a-direio.ads: Remove quotes from Compile_Time_Warning message
16413
16414         * a-exexda.adb: Minor code reorganization
16415
16416         * a-filico.adb: Minor reformatting
16417
16418         * a-finali.adb: Minor reformatting
16419
16420         * a-nudira.ads: Remove quote from Compile_Time_Warning message
16421
16422         * a-numeri.ads: Minor reformatting
16423
16424         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
16425
16426         * exp_pakd.ads: Fix obsolete comment
16427
16428         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
16429         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
16430         Probably not a bug, but certainly neater and more efficient.
16431
16432         * a-tienio.adb: Minor reformatting
16433
16434         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
16435         Avoid assuming low bound of string is 1.
16436
16437         * gnatbind.adb: Change Bindusg to package and rename procedure as
16438         Display, which now ensures that it only outputs usage information once.
16439         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
16440
16441         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
16442         Table'First.
16443
16444         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
16445         warning.
16446         (Match): Add pragma Assert to ensure that Matches'First is zero
16447
16448         * g-regpat.ads (Match): Document that Matches lower bound must be zero
16449
16450         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
16451         documented preconditions (also kills warnings about bad indexes).
16452
16453         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
16454         is 1.
16455         (Build_Import_Library): Ditto;
16456
16457         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
16458
16459         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
16460
16461         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
16462         lower bound of choice table is 1.
16463
16464         * sem_case.ads (Analyze_Choices): Document that lower bound of
16465         Choice_Table is 1.
16466
16467         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
16468         string is 1.
16469
16470         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
16471         and add appropriate Assert pragma to suppress warnings.
16472
16473         * atree.h, atree.ads, atree.adb
16474         Change Elist24 to Elist25
16475         Add definitions of Field28 and Node28
16476         (Traverse_Field): Use new syntactic parent table in sinfo.
16477
16478         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
16479
16480         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
16481
16482         * exp_tss.adb: Put routines in alpha order
16483
16484         * fe.h: Remove redundant declarations.
16485
16486 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
16487
16488         * utils.c (builtin_function): Rename to gnat_builtin_function.
16489         Move common code to add_builtin_function.
16490         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
16491         gnat_builtin_function.
16492         * gigi.h (builtin_function): Rename to gnat_builtin_function.
16493         Change the signature.
16494
16495 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
16496
16497         * Makefile.in: Add TEXI2PDF definition.
16498         * Make-lang.in: Add "ada.pdf" target.
16499
16500 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
16501
16502         * decl.c, utils.c: Fix comment typos.
16503         * utils.c: Fix a typo.
16504
16505 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
16506
16507         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
16508         on "pure" Ada subprograms if SJLJ exceptions are used.
16509         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
16510         on the declaration node of JMPBUF_SAVE.
16511         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
16512         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
16513         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
16514
16515 2006-08-20  Laurent Guerby  <laurent@guerby.net>
16516
16517         PR ada/28716
16518         g-socket.adb (Bind_Socket): Call Set_Address.
16519
16520 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
16521
16522         PR ada/15802
16523         * decl.c (same_discriminant_p): New static function.
16524         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
16525         subtype and we have discriminants, fix up the COMPONENT_REFs
16526         for the discriminants to make them reference the corresponding
16527         fields of the parent subtype after it has been built.
16528
16529 2006-09-15  Roger Sayle  <roger@eyesopen.com>
16530
16531         PR ada/18817
16532         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
16533         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
16534
16535 2006-09-13  Olivier Hainque  <hainque@adacore.com>
16536
16537         PR ada/29025
16538         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
16539         of a SAVE_EXPR, just make the operand addressable/not-readonly and
16540         let the common gimplifier code make and propagate a temporary copy.
16541         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
16542         out/in-out actuals and defer setting the addressable/readonly bits
16543         to the gimplifier.
16544
16545 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
16546
16547         PR ada/28591
16548         * decl.c (components_to_record): Defer emitting debug info for the
16549         record type associated with the variant until after we are sure to
16550         actually use it.
16551
16552 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
16553
16554         PR ada/21952
16555         * gigi.h (gnat_internal_attribute_table): Declare.
16556         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
16557         * utils.c (gnat_internal_attribute_table): New global variable.
16558         (builtin_function): Always call decl_attributes on the builtin.
16559         (handle_const_attribute): New static function.
16560         (handle_nothrow_attribute): Likewise.
16561
16562 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
16563
16564         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
16565
16566 2006-06-23  Olivier Hainque  <hainque@adacore.com>
16567
16568         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
16569         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
16570
16571 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
16572             Eric Botcazou  <ebotcazou@adacore.com>
16573
16574         PR ada/18692
16575         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
16576         check-gnat into check-acats.
16577
16578 2006-06-17  Karl Berry  <karl@gnu.org>
16579
16580         * gnat-style.texi (@dircategory): Use "Software development"
16581         instead of "Programming", following the Free Software Directory.
16582
16583 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16584
16585         PR ada/27944
16586         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
16587
16588 2006-06-06  Laurent Guerby  <laurent@guerby.net>
16589
16590         PR ada/27769
16591         mlib-utl.adb: Use Program_Name.
16592
16593 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
16594
16595         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
16596         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
16597         trans.c, utils.c: Fix comment typos.  Follow spelling
16598         conventions.
16599         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
16600         conventions.
16601
16602 2006-05-19  Nicolas Setton  <setton@adacore.com>
16603
16604         * misc.c (gnat_dwarf_name): New function.
16605         (LANG_HOOKS_DWARF_NAME): Define to it.
16606
16607 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
16608
16609         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
16610         (ada/misc.o): Likewise.
16611         (ada/utils.o): Likewise.
16612
16613 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
16614
16615         * Makefile.in: Add Ada support for GNU/kFreeBSD.
16616         * s-osinte-kfreebsd-gnu.ads: New file.
16617
16618 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
16619
16620         * Make-lang.in: Rename docdir to gcc_docdir.
16621
16622 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
16623
16624         * gigi.h (get_ada_base_type): Delete.
16625         * utils2.c (get_ada_base_type): Likewise.
16626         * trans.c (convert_with_check): Operate in the real base type.
16627
16628 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16629
16630         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
16631
16632 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
16633
16634         * utils.c (create_var_decl): Use have_global_bss_p when deciding
16635         whether to make the decl common.
16636
16637 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
16638
16639         * Make-lang.in (Ada): Remove.
16640         (.PHONY): Remove Ada
16641
16642 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
16643
16644         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
16645         aggregate, check the interpretations of the other operand to find one
16646         that may be a boolean array.
16647
16648         (Analyze_Selected_Component): Fix flow-of-control typo in case where
16649         the prefix is a private extension.
16650
16651 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
16652
16653         PR ada/26315
16654         * utils2.c (find_common_type): If both input types are BLKmode and
16655         have the same constant size, keep using the first one.
16656
16657         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
16658
16659         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
16660
16661         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
16662
16663 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
16664
16665         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, 
16666         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
16667         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb, 
16668         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
16669         Abort_Defer/Undefer pairs to avoid the possibility of a task being
16670         aborted while owning a lock.
16671
16672 2006-02-17  Javier Miranda  <miranda@adacore.com>
16673             Robert Dewar  <dewar@adacore.com>
16674
16675         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
16676         through an access to class-wide interface we force the displacement of
16677         the pointer to the allocated object to reference the corresponding
16678         secondary dispatch table.
16679         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
16680         if Long_Shifts are supported on the target, even if 64 bit divides
16681         are not supported (configurable run time mode).
16682         (Expand_N_Type_Conversion): Do validity check if validity checks on
16683         operands are enabled.
16684         (Expand_N_Qualified_Expression): Do validity check if validity checks
16685         on operands are enabled.
16686
16687 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
16688
16689         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
16690         must be materialized when the renamed expression is an explicit
16691         dereference.
16692
16693 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
16694
16695         * freeze.adb (Statically_Discriminated_Components): Return false if
16696         the bounds of the type of the discriminant are not static expressions.
16697
16698         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
16699         the bounds of the discriminant type are not static.
16700
16701 2006-02-17  Robert Dewar  <dewar@adacore.com>
16702
16703         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
16704         then we close To if it is valid.
16705
16706 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
16707
16708         * init.c (facility_resignal_table): new array
16709         (__gnat_default_resignal_p): enhance default predicate to resignal if
16710         VMS condition has one of the predefined facility codes.
16711
16712 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
16713
16714         * Makefile.in: Use VMS64 specialized versions of several units in
16715         Interfaces.C hierarchy to be compatible with HP C default size choices.
16716         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
16717
16718 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
16719
16720         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
16721         instantiation, the corresponding entity is the related_instance of the
16722         wrapper package created for the instance.
16723
16724 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
16725
16726         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
16727         the current instance is nested within another instance in a child unit.
16728
16729 2006-02-17  Javier Miranda  <miranda@adacore.com>
16730             Ed Schonberg  <schonberg@adacore.com>
16731
16732         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
16733         type we cannot inherit the primitive operations; we inherit the
16734         Corresponding_Record_Type (which has the list of primitive operations).
16735         (Check_Anonymous_Access_Types): When creating anonymous access types for
16736         access components, use Rewrite in order to preserve the tree structure,
16737         for ASIS use.
16738         (Analyze_Object_Declaration): For limited types with access
16739         discriminants with defaults initialized by an aggregate, obtain
16740         subtype from aggregate as for other mutable types.
16741         (Derived_Type_Declaration): If the derived type is a limited interface,
16742         set the corresponding flag (Is_Limited_Record is not sufficient).
16743
16744 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
16745
16746         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
16747         to inline a function that returns an unconstrained type, the return
16748         expression must be the first variable declared in the body of the
16749         function.
16750
16751 2006-02-17  Javier Miranda  <miranda@adacore.com>
16752
16753         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
16754         abstract interface type, the static analysis is not enough to know if
16755         the interface is implemented or not by the source tagged type. Hence
16756         we must pass the work to the expander to generate the required code to
16757         evaluate the conversion at run-time.
16758         (Resolve_Equality_Op): Do not apply previous
16759         transformation if expansion is disasbled, to prevent anomalies when
16760         locating global references in a generic unit.
16761
16762 2006-02-17  Vincent Celier  <celier@adacore.com>
16763
16764         * snames.ads, snames.adb: New standard names for new project attributes:
16765         archive_builder, archive_indexer, compiler_pic_option,
16766         config_body_file_name, config_body_file_name_pattern,
16767         config_file_switches, config_file_unique, config_spec_file_name,
16768         config_spec_file_name_pattern, default_builder_switches,
16769         default_global_compiler_switches, default_language,
16770         dependency_file_kind, global_compiler_switches, include_path,
16771         include_path_file, language_kind, linker_executable_option,
16772         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
16773         roots, runtime_project.
16774
16775 2006-02-17  Matthew Heaney  <heaney@adacore.com>
16776
16777         * a-convec.ads, a-convec.adb: 
16778         (operator "&"): handle potential overflow for large index types
16779         (Insert): removed Contraint_Error when using large index types
16780         (Insert_Space): removed Constraint_Error for large index types
16781         (Length): moved constraint check from Length to Insert
16782
16783         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
16784         as not null access.
16785         Explicit raise statements now include an exception message.
16786         (operator "&"): handle potential overflow for large index types
16787         (Insert): removed Contraint_Error when using large index types
16788         (Insert_Space): removed Constraint_Error for large index types
16789         (Length): moved constraint check from Length to Insert
16790
16791 2006-02-17  Robert Dewar  <dewar@adacore.com>
16792
16793         * s-wchcnv.adb: Document handling of [ on output (we do not change
16794         this to ["5B"] and the new comments say why not.
16795
16796         * gnat_ugn.texi: 
16797         Add note for -gnatVo that this now includes the cases of type
16798         conversions and qualified expressions.
16799         Add comments on handling of brackets encoding for Text_IO
16800
16801 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
16802             Thomas Quinot  <quinot@adacore.com>
16803             Robert Dewar  <dewar@adacore.com>
16804             Javier Miranda  <miranda@adacore.com>
16805
16806         * expander.adb: Fix typo in comment
16807
16808         * exp_pakd.adb: Fix typo
16809         Minor comment reformatting.
16810
16811         * g-dyntab.adb: Minor reformatting
16812
16813         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
16814         aliased subprograms to look for the abstract interface subprogram.
16815
16816 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
16817
16818         * env.c (__gnat_setenv): Use size_t.
16819         (__gnat_unsetenv): Likewise.
16820         (__gnat_clearenv): Likewise.
16821
16822 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
16823
16824         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
16825
16826 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
16827
16828         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
16829         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
16830         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
16831         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
16832         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
16833         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
16834         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
16835         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
16836         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
16837         no longer used.
16838
16839 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
16840
16841         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
16842         protection against race conditions is not needed.
16843         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
16844         fallback handler.
16845         (Set_Specific_Handler): Add mutual exclusive access to the specific
16846         handler.
16847         (Specific_Handler): Add mutual exclusive access for retrieving the
16848         specific handler.
16849
16850         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
16851         back handler.
16852
16853         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
16854         Fall_Back_Handler and Specific_Handler.
16855
16856         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
16857         termination handlers.
16858         Set two different owerflow depending on the maximal stack size.
16859
16860         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
16861         protection against race conditions is not needed when executing the
16862         task termination handler.
16863
16864 2006-02-13  Robert Dewar  <dewar@adacore.com>
16865
16866         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
16867         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
16868         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
16869         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
16870         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
16871         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
16872         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
16873         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
16874         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
16875         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
16876         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
16877         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
16878         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
16879         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
16880         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
16881         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
16882         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
16883         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
16884         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
16885         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
16886         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
16887         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
16888         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
16889         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
16890         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
16891         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
16892         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
16893         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
16894         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
16895         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
16896         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
16897         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
16898         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
16899         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
16900         reformatting.
16901
16902 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
16903
16904         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
16905         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
16906         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
16907         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
16908         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
16909         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
16910         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
16911         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
16912         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
16913
16914 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
16915
16916         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 
16917         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 
16918         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 
16919         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 
16920         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 
16921         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
16922         replaced by anonymous access type.
16923         (pthread_sigmask): Now take an access sigset_t
16924
16925         * s-osinte-hpux.ads:  Ditto.
16926         (pthread_mutex_t, pthread_cond_t): Update definitions to support
16927         properly 32 and 64 bit ABIs.
16928
16929 2006-02-13  Pascal Obry  <obry@adacore.com>
16930
16931         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 
16932         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 
16933         s-taprop-linux.adb, s-taprop-solaris.adb,
16934         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
16935         adjustement is already done when calling this routine.
16936
16937 2006-02-13  Pascal Obry  <obry@adacore.com>
16938
16939         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
16940         table to take advantage of the 16 priority levels available on Windows
16941         2000 and XP. On NT4 there are only 7 priority levels, this is properly
16942         supported by this new mapping.
16943
16944 2006-02-13  Nicolas Setton  <setton@adacore.com>
16945
16946         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
16947         (get_encoding): New subprogram. Extracts the encodings from an encoded
16948         Ada name.
16949
16950 2006-02-13  Pascal Obry  <obry@adacore.com>
16951             Nicolas Roche  <roche@adacore.com>
16952             Arnaud Charlet  <charlet@adacore.com>
16953
16954         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
16955         support.
16956         (__gnat_try_lock): Add unicode support by using a specific section on
16957         Windows.
16958         (__gnat_get_current_dir): Idem.
16959         (__gnat_open_read): Idem.
16960         (__gnat_open_rw): Idem.
16961         (__gnat_open_create): Idem.
16962         (__gnat_create_output_file): Idem.
16963         (__gnat_open_append): Idem.
16964         (__gnat_open_new): Idem.
16965         (__gnat_file_time_name): Idem.
16966         (__gnat_set_file_time_name): Idem.
16967         (__gnat_stat): Idem.
16968         (win32_no_block_spawn): Idem.
16969         (__gnat_locate_exec_on_path): Idem.
16970         (__gnat_opendir): New routine.
16971         (__gnat_closedir): Idem.
16972         (__gnat_readdir): Add new parameter length (pointer to int). Update
16973         implementation to use it and add specific Win32 code for Unicode
16974         support.
16975         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
16976         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
16977         (convert_addresses): Do not define this dummy routine on VMS.
16978
16979         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
16980         runtime Unicode support will be activated.
16981         (S2WS): String to Wide-String conversion. This version just copy a
16982         string in non Unicode version.
16983         (WS2S): Wide-String to String conversion. This version just copy a
16984         string in non Unicode version.
16985
16986         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
16987         (Open): Now import __gnat_opendir from adaint.c.
16988         (Read): Change the implementation to support unicode characters. It is
16989         not possible to use strlen() on Windows as this version supports only
16990         standard ASCII characters. So the length of the directory entry is now
16991         returned from the imported __gnat_readdir routine.
16992         Update copyright notice.
16993
16994         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
16995         (opendir): Moved to adaint.c.
16996
16997         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
16998         (Get_Directory): Fix wrong indexing.
16999         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
17000         __gnat_getenv from env.c
17001         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
17002         from env.c
17003
17004         * env.h, env.c: New file.
17005
17006         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
17007         adaint.c by __gnat_getenv from env.c
17008
17009         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
17010         adaint.c by __gnat_getenv from env.c
17011
17012         * Make-lang.in: Add env.o in the list of C object needed by gnat1
17013         and gnatbind.
17014         Update dependencies.
17015
17016 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17017             Olivier Hainque  <hainque@adacore.com>
17018             Eric Botcazou  <ebotcazou@adacore.com>
17019
17020         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
17021         
17022         * gigi.h (value_factor_p): Add prototype and description, now public.
17023
17024         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
17025         promotion for field with rep clause if the associated size was proven
17026         to be in error.
17027         Expand comments describing attempts to use a packable type.
17028         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
17029         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
17030         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
17031         necessary since these are not different types and pointers may
17032         actually designate any subtype in this hierarchy.
17033         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
17034         discriminants but put them into record only if not Unchecked_Union;
17035         pass flag to components_to_record showing Unchecked_Union.
17036         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
17037         components before variants; don't set TYPE_UNCHECKED_UNION_P.
17038         (components_to_record): New argument UNCHECKED_UNION.
17039         Remove special case code for Unchecked_Union and instead use main code
17040         with small changes.
17041
17042         PR ada/26096
17043         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
17044         variable with the expression being built, only its inner field.
17045
17046         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
17047         emit_sequence_entry_statements.
17048         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
17049         (establish_gnat_vms_condition_handler): Move before
17050         Subprogram_Body_to_gnu.
17051         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
17052         for a subprogram if it has a foreign convention or is exported.
17053         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
17054         substituted for a CONST_DECL.
17055         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
17056         Etype to assoc_to_constructor.
17057         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
17058         discriminants of Unchecked_Union.
17059         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
17060         don't need cluttering preprocessor directives.
17061         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
17062         condition handler as current in the compiled function.
17063         (body_with_handlers_p): New function. Tell whether a given sequence of
17064         statements node is attached to a package or subprogram body and involves
17065         exception handlers possibly nested within inner block statements.
17066         (emit_sequence_entry_statements): New function, to emit special
17067         statements on entry of sequences when necessary. Establish GNAT
17068         condition handler in the proper cases for VMS.
17069         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
17070         emit_sequence_entry_statements.
17071
17072         * utils2.c (find_common_type): If both input types are BLKmode and
17073         have a constant size, use the smaller one.
17074         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
17075         the same.
17076
17077         * utils.c (value_factor_p): Make public, to allow uses from other gigi
17078         units.
17079         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
17080         (convert, case UNION_TYPE): Remove special treatment for unchecked
17081         unions.
17082
17083         PR ada/18659
17084         (update_pointer_to): Update variants of pointer types to unconstrained
17085         arrays by attaching the list of fields of the main variant.
17086
17087 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
17088             Robert Dewar  <dewar@adacore.com>
17089
17090         * a-exexpr.adb, a-exexpr-gcc.adb
17091         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
17092         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
17093         Remove code unused for exception propagation for the compiler itself
17094         from a-except.adb and update to still share separate packages.
17095
17096         * a-except.ads, a-except.adb: Ditto.
17097         Add comments that this version is now used only by the compiler and
17098         other basic tools. The full version that includes the Ada 2005 stuff
17099         is in separate files a-except-2005.ads/adb. The reason is that we do
17100         not want to cause bootstrap problems with compilers not recognizing
17101         Wide_Wide_String.
17102         Add exception reason code PE_Implicit_Return
17103         Add new exception reason code (Null Exception_Id)
17104
17105         * a-except-2005.adb, a-except-2005.ads: New files.
17106
17107         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
17108
17109         * s-wchcon.adb: New file.
17110
17111         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
17112         (traceback.o deps): Likewise.
17113         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
17114         Activate build of GMEM instrumentation library on VMS targets.
17115         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
17116         Use a-except-2005.ads/adb for all run-time library builds unless
17117         specified otherwise.
17118         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
17119         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
17120         Use s-parame.adb on all native platforms.
17121         Use s-parame-vxworks.adb on all vxworks platforms.
17122         Add env.c env.h in LIBGNAT_SRCS
17123         Add env.o in LIBGNAT_OBJS
17124         (GNATMAKE_OBJS): Remove ctrl_c.o object.
17125         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
17126         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
17127         supports VxWorks 6 RTPs.
17128         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
17129         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
17130
17131         * types.h, types.ads (Terminate_Program): New exception
17132         Add comment on modifying multiple versions of a-except.adb when the
17133         table of exception reasons is modified.
17134         Add exception reason code PE_Implicit_Return
17135         Add new exception reason code (Null Exception_Id)
17136
17137         * clean.adb (Initialize): Get the target parameters before checking
17138         if target is OpenVMS. Move the OpenVMS specific code here from package
17139         body elaboration code.
17140
17141 2006-02-13  Thomas Quinot  <quinot@adacore.com>
17142             Vincent Celier  <celier@adacore.com>
17143             Robert Dewar  <dewar@adacore.com>
17144
17145         * ali-util.adb (Get_File_Checksum): Update to account for change in
17146         profile of Initialize_Scanner.
17147
17148         * gprep.adb (Gnatprep): Update to account for change in profile of
17149         Initialize_Scanner.
17150         (Process_One_File): Same.
17151
17152         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
17153         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
17154         that behaviour using the new Unit information recorded in the source
17155         files table, rather than going through all units every time.
17156         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
17157         (Get_Source_Unit): Same.
17158
17159         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
17160         change in profile of Initialize_Scanner.
17161         (Prepare_To_Preprocess): Same.
17162
17163         * lib.ads: Fix typo in comment (templace -> template).
17164
17165         * prj-part.adb (Parse_Single_Project): Update to account for change in
17166         profile of Initialize_Scanner.
17167
17168         * scn.adb (Initialize_Scanner): Account for change in profile of
17169         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
17170         Also record the association of the given Source_File_Index to the
17171         corresponding Unit_Number_Type.
17172
17173         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
17174         procedure.
17175         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
17176         Remove Unit formal for generic scanner: this formal
17177         is only relevant to Scn (the scanner instance used to parse Ada source
17178         files), not to other instances. Update comment accordingly.
17179         (Scan): Use new function Snames.Is_Keyword_Name.
17180
17181         * sinfo-cn.adb: Fix typo in comment.
17182
17183         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
17184         Unit.
17185
17186         * sinput.ads (Source_File_Record): New component Unit, used to capture
17187         the unit identifier (if any) associated to a source file.
17188
17189         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
17190         Unit in Source_File_Record.
17191
17192         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
17193         in profile of Initialize_Scanner.
17194
17195         * scans.adb (Initialize_Ada_Keywords): New procedure
17196
17197         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
17198         Ada keywords in the Namet table, without the need to call
17199         Initialize_Scanner.
17200
17201         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
17202         (Is_Keyword_Name): New function
17203
17204         * snames.ads: Add subtype Configuration_Pragma_Names
17205         Add pragma Ada_2005 (synonym for Ada_05)
17206         (Is_Keyword_Name): New function
17207
17208         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
17209
17210 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
17211
17212         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
17213         index.
17214
17215         * a-stwima.adb (To_Set): Add extra check when N = 0.
17216
17217         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
17218
17219 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
17220
17221         * s-parame-mingw.adb, s-parame-linux.adb,
17222         s-parame-solaris.adb: Removed, replaced by s-parame.adb
17223
17224         * s-parame-vxworks.ads: Fix typo.
17225
17226         * s-parame-vxworks.adb: New file.
17227
17228         * s-parame.adb: Version now used by all native platforms.
17229         (Default_Stack_Size): Use 2 megs for default stack size and use
17230         __gl_default_stack_size when available.
17231         (Minimum_Stack_Size): Use 12K.
17232
17233         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
17234         (Create_Task): Refine implementation taking advantage of the XP stack
17235         size support. On XP, we now create the thread using the flag
17236         STACK_SIZE_PARAM_IS_A_RESERVATION.
17237
17238         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
17239
17240         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
17241         XP and 0 on older Windows versions.
17242
17243         * interfac-vms.ads: Removed, no longer used.
17244
17245 2006-02-13  Matthew Heaney  <heaney@adacore.com>
17246
17247         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, 
17248         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, 
17249         a-cohase.adb: All explicit raise statements now include an exception
17250         message.
17251
17252         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
17253         (Update_Element_Preserving_Key): renamed op to just Update_Element.
17254         Explicit raise statements now include an exception message
17255
17256         * a-cihase.ads, a-cohase.ads: Removed comment.
17257
17258         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
17259         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
17260         a-szbzha.adb, a-szfzha.ads: New files.
17261
17262 2006-02-13  Matthew Heaney  <heaney@adacore.com>
17263
17264         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
17265         quicksort.
17266
17267 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
17268
17269         * lang.opt: Wvariadic-macros: New option.
17270         Wold-style-definition: Likewise.
17271         Wmissing-format-attribute: Likewise.
17272
17273         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
17274         -Wold-style-definition and -Wmissing-format-attribute.
17275
17276 2006-02-13  Robert Dewar  <dewar@adacore.com>
17277
17278         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
17279
17280         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
17281
17282 2006-02-13  Nicolas Roche  <roche@adacore.com>
17283
17284         * a-envvar.adb, a-envvar.ads: New files.
17285
17286 2006-02-13  Douglas Rupp  <rupp@adacore.com>
17287
17288         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
17289
17290         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
17291
17292 2006-02-13  Pat Rogers  <rogers@adacore.com>
17293
17294         * a-rttiev.adb, a-rttiev.ads: New files.
17295
17296 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
17297
17298         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
17299         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
17300
17301         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
17302
17303 2006-02-13  Robert Dewar  <dewar@adacore.com>
17304
17305         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, 
17306         sem_case.adb: Minor code reorganization (not Present should be No)
17307
17308 2006-02-13  Geert Bosch  <bosch@adacore.com>
17309             Gary Dismukes  <dismukes@adacore.com>
17310
17311         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
17312         0, since the lower bound of the actual string may be greater than one.
17313
17314         PR ada/20753
17315         * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
17316         layout is requested.
17317
17318 2006-02-13  Vincent Celier  <celier@adacore.com>
17319
17320         * back_end.adb (Scan_Compiler_Arguments): Check if
17321         Search_Directory_Present is True and, if it is, add the argument in
17322         the source search directory path.
17323
17324         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
17325         Search_Directory_Present to True.
17326
17327 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
17328
17329         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
17330         volatile, to tell the compiler to preserve this variable at any level
17331         of optimization.
17332         (Gen_Versions_Ada): Temporarily work around codegen bug.
17333
17334 2006-02-13  Vincent Celier  <celier@adacore.com>
17335
17336         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
17337         gcc to link with option -shared-libgcc.
17338         (Gnatlink): Remove duplicate switches -shared-libgcc
17339
17340 2006-02-13  Robert Dewar  <dewar@adacore.com>
17341
17342         * gnatvsn.ads (Current_Year): New constant, used to easily update
17343         copyright on all GNAT tools.
17344
17345         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
17346         copyright notice.
17347
17348 2006-02-13  Robert Dewar  <dewar@adacore.com>
17349
17350         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
17351         after hyphen (small aesthetic change useful for a range of numbers
17352         using ^-^.
17353         Suppress range checks for a couple of assignments which otherwise
17354         cause validity checks with validity checking turned on.
17355
17356         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
17357         Improvement in error message for object.
17358         (Rep_Item_Too_Late): Remove '!' in warning message.
17359
17360 2006-02-13  Robert Dewar  <dewar@adacore.com>
17361             Eric Botcazou  <ebotcazou@adacore.com>
17362
17363         * err_vars.ads: Suppress range checks for a couple of assignments
17364         which otherwise cause validity checks with validity checking turned on.
17365         Update comments.
17366
17367         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
17368         Make message unconditional if it is a warning.
17369         (Error_Msg_NEL): Always output warning messages.
17370         Suppress range checks for a couple of assignments which otherwise
17371         cause validity checks with validity checking turned on.
17372
17373         * errout.ads (Message Insertion Characters): Document that '!' is
17374         implied by '?' in error messages.
17375
17376         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
17377         (Gnat1drv): Use a goto to end of main subprogram instead of
17378         Exit_Program (E_Success) so that finalization can occur normally.
17379
17380 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
17381
17382         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
17383         wrapped around.
17384
17385 2006-02-13  Vincent Celier  <celier@adacore.com>
17386
17387         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
17388         Unchecked_Conversion functions.
17389         (Modification_Time): Use direct conversion of OS_Time to Calendar time
17390         when OpenVMS returns False.
17391
17392         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
17393         a-dirval.adb (OpenVMS): New Boolean function
17394
17395 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
17396             Thomas Quinot  <quinot@adacore.com>
17397
17398         * checks.adb (Build_Discriminant_Checks): If the expression being
17399         checks is an aggregate retrieve the values of its discriminants to
17400         generate the check, rather than creating a temporary and a reference
17401         to it.
17402         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
17403         (Install_Null_Excluding_Check): Ditto
17404         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
17405         not for the renamed object, so that the actual itype is attached in the
17406         proper context.
17407
17408 2006-02-13  Robert Dewar  <dewar@adacore.com>
17409             Vincent Celier  <celier@adacore.com>
17410
17411         * debug.adb: Eliminate numeric switches for binder/gnatmake
17412
17413         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
17414         switches for the compiler.
17415         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
17416         (Scan_Make_Switches): When failing with an illegal switch, output an
17417         error message with the full switch.
17418         Eliminate numeric switches for binder/gnatmake
17419
17420         * switch.ads, switch.adb (Bad_Switch): New procedure
17421
17422         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
17423         Remove 0-9 as debug flag character possibilities
17424         -d is now controlling the primary stack size when its value is a
17425         positive. Also add checks against invalid values, and support for kb,
17426         mb. Ditto for -D switch.
17427
17428 2006-02-13  Robert Dewar  <dewar@adacore.com>
17429             Serguei Rybin  <rybin@adacore.com>
17430
17431         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
17432         save/restore routines.
17433         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
17434         were not always properly handled previously.
17435         Since we are changing the tree format anyway, also get rid of the
17436         junk obsolete Immediate_Errors flag.
17437         (Tree_Read): Change the way of reading Tree_Version_String - now we
17438         read the version string from the tree even if its length is not the
17439         same as the length of the version string computed from Gnatvsn.
17440         (Search_Directory_Present): New Boolean flag for the compiler.
17441         Define Tree_Version_String as a dynamic string.
17442         (Default_Stack_Size): new variable, used to handle switch -d.
17443
17444         * par-prag.adb: 
17445         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
17446         only for main unit.
17447         Add pragma Ada_2005 (synonym for Ada_05)
17448         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
17449         were not always properly handled previously.
17450
17451         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
17452         explicit Ada_95 to Ada_2005.
17453
17454 2006-02-13  Javier Miranda  <miranda@adacore.com>
17455             Robert Dewar  <dewar@adacore.com>
17456             Ed Schonberg  <schonberg@adacore.com>
17457
17458         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
17459         against errors in the source program: a private types for which the
17460         corresponding full type declaration is missing and pragma CPP_Virtual
17461         is used.
17462         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
17463         (Is_Known_Null): New flag
17464         (Has_Pragma_Pure): New flag
17465         (No_Return): Present in all entities, set only for procedures
17466         (Is_Limited_Type): A type whose ancestor is an interface is limited if
17467         explicitly declared limited.
17468         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
17469         entities. Only used for component marked Is_Tag. If present it stores
17470         the Offset_To_Top function used to provide this value in tagged types
17471         whose ancestor has discriminants.
17472
17473         * exp_ch2.adb: Update status of new Is_Known_Null flag
17474
17475         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
17476
17477         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
17478         the categorization sense if Is_Pure was set by pragma Pure_Function.
17479
17480 2006-02-13  Quentin Ochem  <ochem@adacore.com>
17481             Olivier Hainque  <hainque@adacore.com>
17482
17483         * bindusg.adb: Updated documentation for -d and -D switches.
17484
17485         * raise.h (__gnat_set_globals): added new parameter for
17486         Default_Stack_Size.
17487
17488         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
17489         (__gnat_handle_vms_condition): Adjust context before raise.
17490         (__gnat_install_handler): Restore the global vector setup for GCC
17491         versions before 3.4, as the frame based circtuitry is not available
17492         in this case.
17493         (__gnat_set_globals): added a parameter default_stack_size
17494         (__gl_default_stack_size): new variable.
17495
17496 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
17497
17498         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
17499         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
17500         does not exist in the Ada RM.
17501         (Compatible_Int_Bounds): Determine whether two integer range bounds
17502         are of equal length and have the same start and end values.
17503         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
17504         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
17505         aggregate when it is part of an object declaration.
17506         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
17507         constrains discriminants of its parent, add explicitly the discriminant
17508         constraints of the ancestor by retrieving them from the
17509         stored_constraint of the parent.
17510
17511 2006-02-13  Robert Dewar  <dewar@adacore.com>
17512
17513         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
17514         attribute Mechanism_Code is applied to renamed subprogram, modify
17515         prefix to point to base subprogram.
17516         Max/Min attributes now violate Restriction No_Implicit_Conditionals
17517
17518         * sinfo.ads: Document that Mechanism_Code cannot be applied to
17519         renamed subprograms so that the front-end must replace the prefix
17520         appropriately.
17521
17522 2006-02-13  Javier Miranda  <miranda@adacore.com>
17523             Gary Dismukes  <dismukes@adacore.com>
17524
17525         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
17526         availability of RE_Interface_Tag.
17527         (Build_Initialization_Call): Fix wrong access to the discriminant value.
17528         (Freeze_Record_Type): Do not generate the tables associated with
17529         timed and conditional dispatching calls through synchronized
17530         interfaces if compiling under No_Dispatching_Calls restriction.
17531         When compiling for Ada 2005, for a nonabstract
17532         type with a null extension, call Make_Controlling_Function_Wrappers
17533         and insert the wrapper function declarations and bodies (the latter
17534         being appended as freeze actions).
17535         (Predefined_Primitive_Bodies): Do not generate the bodies of the
17536         predefined primitives associated with timed and conditional
17537         dispatching calls through synchronized interfaces if we are
17538         compiling under No_Dispatching_Calls.
17539         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
17540         service is available before generating a call.
17541         (Make_Controlling_Function_Wrappers): New procedure.
17542         (Expand_N_Full_Type_Declaration): Create a class-wide master for
17543         access-to-limited-interfaces because they can be used to reference
17544         tasks that implement such limited interface.
17545         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
17546         procedure spec and body of the Offset_To_Top function that is generated
17547         when the parent of a type with discriminants has secondary dispatch
17548         tables.
17549         (Init_Secondary_Tags): Handle the case in which the parent of the type
17550         containing secondary dispatch tables has discriminants to generate the
17551         correct arguments to call Set_Offset_To_Top.
17552         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
17553
17554         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
17555         Add Wide_[Wide_]Expanded_Name.
17556         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
17557         the same functionality of Get_Prim_Op_Address but applied to predefined
17558         primitive operations because the pointers to the predefined primitives
17559         are now saved in a separate table.
17560         (Parent_Size): Modified to get access to the separate table of primitive
17561         operations or the parent type.
17562         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
17563         functionality of Set_Prim_Op_Address but applied to predefined primitive
17564         operations.
17565         (Set_Signature): New subprogram used to store the signature of a DT.
17566         (Displace): If the Offset_To_Top value is not static then call the
17567         function generated by the expander to get such value; otherwise use
17568         the value stored in the table of interfaces.
17569         (Offset_To_Top): The type of the actual has been changed to Address to
17570         give the correct support to tagged types with discriminants. In this
17571         case this value is stored just immediately after the tag field.
17572         (Set_Offset_To_Top): Two new formals have been added to indicate if the
17573         offset_to_top value is static and hence pass this value to the run-time
17574         to store it in the table of interfaces, or else if this value is dynamic
17575         and then pass to the run-time the address of a function that is
17576         generated by the expander to provide this value for each object of the
17577         type.
17578
17579         * rtsfind.ads (Default_Prin_Op_Count): Removed.
17580         (Default_Prim_Op_Count): New entity
17581         (Get_Predefined_Prim_Op_Address): New entity
17582         (Set_Predefined_Prim_Op_Address): New entity
17583         (RE_Set_Signature): New entity
17584
17585 2006-02-13  Thomas Quinot  <quinot@adacore.com>
17586             Ed Schonberg  <schonberg@adacore.com>
17587
17588         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
17589         Make_Adjust_Call done for a newly-allocated object.
17590
17591         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
17592         in a subprogram are wrapped in a cleanup block, indicate that the
17593         subprogram contains an inner block with an exception handler.
17594         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
17595         Adjust call is for a newly-allocated object. In that case we must not
17596         assume that the finalization list chain pointers are correct (since they
17597         come from a bit-for-bit copy of the original object's pointers) so if
17598         the attach level would otherwise be zero (no change), we set it to 4
17599         instead to cause the pointers to be reset to null.
17600
17601         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
17602         reset chain pointers to null.
17603
17604 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
17605
17606         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
17607         string, and the context requires a loop for the assignment (e.g.
17608         because the left-hand side is packed), generate a unique name for the
17609         temporary that holds the string, to prevent spurious name clashes.
17610
17611 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
17612             Javier Miranda  <miranda@adacore.com>
17613             Robert Dewar  <dewar@adacore.com>
17614             Gary Dismukes  <dismukes@adacore.com>
17615
17616         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
17617         return unconstrained arrays.
17618         Update comments.
17619         (Expand_Call):  An indirect call through an access parameter of a
17620         protected operation is not a protected call.
17621         Add circuit to raise CE in Ada 2005 mode following call
17622         to Raise_Exception.
17623         (Register_DT_Entry): Do nothing if
17624         the run-time does not give support to abstract interfaces.
17625         (Freeze_Subprogram): In case of dispatching operations, do not generate
17626         code to register the operation in the dispatch table if the source
17627         is compiled with No_Dispatching_Calls.
17628         (Register_Predefined_DT_Entry): Generate code that calls the new
17629         run-time subprogram Set_Predefined_Prim_Op_Address instead of
17630         Set_Prim_Op_Address.
17631
17632         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
17633         on array assignments if the right-hand side is a function call that has
17634         been inlined. Check is performed on the assignment in the block.
17635         (Process_Bounds): If bounds and range are overloaded, apply preference
17636         rule for root operations to disambiguate, and diagnose true ambiguity.
17637         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
17638         a tag-indeterminate right-hand side even when Expander_Active is True.
17639         Needed to ensure that dispatching calls to T'Input are allowed and
17640         get the tag of the target class-wide object.
17641
17642         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
17643         an inherited primitive operation that already overrides several
17644         abstract interface primitives. For transitivity, the new entity must
17645         also override all the abstract interface primitives covered by the
17646         inherited overriden primitive.
17647         Emit warning if new entity differs from homograph in same scope only in
17648         that one has an access parameter and the other one has a parameter of
17649         a general access type with the same designated type, at the same
17650         position in the signature.
17651         (Make_Inequality_Operator): Use source locations of parameters and
17652         subtype marks from corresponding equality operator when creating the
17653         tree structure for the implicit declaration of "/=". This does not
17654         change anything in behaviour except that the decoration of the
17655         components of the subtree created for "/=" allows ASIS to get the
17656         string images of the corresponding identifiers.
17657         (Analyze_Return_Statement): Remove '!' in warning message.
17658         (Check_Statement_Sequence): Likewise.
17659         (Analyze_Subprogram_Body): For an access parameter whose designated type
17660         is an incomplete type imported through a limited_with clause, use the
17661         type of the corresponding formal in the body.
17662         (Check_Returns): Implicit return in No_Return procedure now raises
17663         Program_Error with a compile time warning, instead of beging illegal.
17664         (Has_Single_Return):  Function returning unconstrained type cannot be
17665         inlined if expression in unique return statement is not an identifier.
17666         (Build_Body_To_Inline): It is possible to inline a function call that
17667         returns an unconstrained type if all return statements in the function
17668         return the same local variable. Subsidiary procedure Has_Single_Return
17669         verifies that the body conforms to this restriction.
17670
17671         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
17672         same type, and  one of them is of an anonymous access type, convert
17673         the other operand to it, so that this is a valid binary operation for
17674         gigi.
17675         (Resolve_Type_Conversion): Handle subtypes of protected types and
17676         task types when accessing to the corresponding record type.
17677         (Resolve_Allocator): Add '\' in 2-line warning message.
17678         Remove '!' in warning message.
17679         (Resolve_Call): Add '\' in 2-line warning message.
17680         (Valid_Conversion): Likewise.
17681         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
17682         resulting type may be an access type with an implicit dereference.
17683         Obtain the proper component from the designated type.
17684         (Make_Call_Into_Operator): Handle properly a call to predefined equality
17685         given by an expanded name with prefix Standard, when the operands are
17686         of an anonymous access type.
17687         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
17688         Explicit_Dereference and Resolve_Selected_Component, to verify that the
17689         prefix of the expression is not of an incomplete type. Allows full
17690         diagnoses of all semantic errors.
17691         (Resolve_Actuals): If the actual is an allocator whose directly
17692         designated type is a class-wide interface we build an anonymous
17693         access type to use it as the type of the allocator. Later, when
17694         the subprogram call is expanded, if the interface has a secondary
17695         dispatch table the expander will add a type conversion to force
17696         the displacement of the pointer.
17697         (Resolve_Call): If a function that returns an unconstrained type is
17698         marked Inlined_Always and inlined, the call will be inlined and does
17699         not require the creation of a transient scope.
17700         (Check_Direct_Boolean_Op): Removed
17701         (Resolve_Comparison_Op): Remove call to above
17702         (Resolve_Equality_Op): Remove call to above
17703         (Resolve_Logical_Op): Inline above, since this is only call.
17704         (Valid_Conversion): Handle properly conversions between arrays of
17705         convertible anonymous access types.
17706
17707         PR ada/25885
17708         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
17709         the literal in an unchecked conversion, because GCC 4.x needs a static
17710         value for a string bound.
17711
17712 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
17713             Hristian Kirtchev  <kirtchev@adacore.com>
17714
17715         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
17716         components of the corresponding record, take into account component
17717         definitions that are access definitions.
17718         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
17719         procedure is not considered a dispatching call and will be expanded
17720         properly.
17721
17722 2006-02-13  Javier Miranda  <miranda@adacore.com>
17723
17724         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
17725         controlling argument of the dispatching call is an abstract interface
17726         class-wide type then we use it directly.
17727         Check No_Dispatching_Calls restriction.
17728         (Default_Prim_Op_Position): Remove the code that looks for the last
17729         entity in the list of aliased subprograms. This code was wrong in
17730         case of renamings.
17731         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
17732         when the source is compiled with the No_Dispatching_Calls restriction.
17733         (Init_Predefined_Interface_Primitives): No need to inherit primitives
17734         if we are compiling with restriction No_Dispatching_Calls.
17735         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
17736         subprograms if we are compiling under No_Dispatching_Calls restriction.
17737         (Make_DT): Generate a dispatch table with a single dummy entry if
17738         we are compiling with the No_Dispatching_Calls restriction. In
17739         addition, in this case we don't generate code that calls to the
17740         following run-time subprograms: Set_Type_Kind, Inherit_DT.
17741         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
17742         of this subprogram if compiling with the No_Dispatching_Calls
17743         restriction.
17744         (Expand_Type_Conversion): Instead of using the actual parameter,
17745         the argument passed as parameter to the conversion function was
17746         erroneously referenced by the expander.
17747         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
17748         Set_Predefined_Primitive_Op_Address and Set_Signature.
17749         (Expand_Dispatching_Call): Generate call to
17750         Get_Predefined_Prim_Op_Address for predefined primitives.
17751         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
17752         predefined primitives.
17753         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
17754         primitives we reserve one dummy entry to ensure that the tag does not
17755         point to some memory that is associated with some other object. In
17756         addition, remove all the old code that generated the assignments
17757         associated with the signature of the dispatch table and replace them
17758         by a call to the new subprogram Set_Signature.
17759         (Set_All_DT_Position): Change the algorithm because now we have a
17760         separate dispatch table associated with predefined primitive operations.
17761         (Expand_Interface_Conversion): In case of non-static offset_to_top
17762         add explicit dereference to get access to the object after the call
17763         to displace the pointer to the object.
17764         (Expand_Interface_Thunk): Modify the generation of the actual used
17765         in the calls to the run-time function Offset_To_Top to fulfil its
17766         new interface.
17767         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
17768
17769 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
17770
17771         * exp_dist.adb (Copy_Specification): For access parameters, copy
17772         Null_Exclusion flag, which will have been set for stream subprograms
17773         in Ada2005 mode.
17774
17775 2006-02-13  Pascal Obry  <obry@adacore.com>
17776
17777         * expect.c (__gnat_expect_portable_execvp): New implementation. The
17778         previous implementation was using the C runtime spawnve routine but
17779         the corresponding wait was using directly the Win32 API. This was
17780         causing some times a lock when waiting for an event using
17781         WaitForSingleObject in __gnat_waitpid. This new implementation uses
17782         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
17783         API fixes this problem.
17784
17785 2006-02-13  Robert Dewar  <dewar@adacore.com>
17786
17787         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
17788         call.
17789
17790 2006-02-13  Thomas Quinot  <quinot@adacore.com>
17791
17792         * exp_pakd.ads: Fix typos in comments.
17793
17794         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
17795         array reference that is an explicit dereference, mark the converted
17796         (packed) array reference as analyzed to prevent a forthcoming
17797         reanalysis from resetting its type to the original (non-packed) array
17798         type.
17799
17800 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
17801             Javier Miranda  <miranda@adacore.com>
17802             Eric Botcazou  <ebotcazou@adacore.com>
17803
17804         * exp_util.ads, exp_util.adb (Find_Prim_Op,
17805         Is_Predefined_Primitive_Operation): When
17806         searching for the predefined equality operator, verify that operands
17807         have the same type.
17808         (Is_Predefined_Dispatching_Operation): Remove the code that looks
17809         for the last entity in the list of aliased subprograms. This code
17810         was wrong in case of renamings.
17811         (Set_Renamed_Subprogram): New procedure
17812         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
17813         Exp_Type constant computed when entering this subprogram.
17814         (Known_Null): New function
17815         (OK_To_Do_Constant_Replacement): New function
17816         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
17817         (Side_Effect_Free): An attribute reference 'Input is not free of
17818         side effect, unlike other attributes that are functions. (from code
17819         reading).
17820         (Remove_Side_Effects): Expressions that involve packed arrays or records
17821         are copied at the point of reference, and therefore must be marked as
17822         renamings of objects.
17823         (Is_Predefined_Dispatching_Operation): Return false if the operation is
17824         not a dispatching operation.
17825
17826         PR ada/18819
17827         (Remove_Side_Effects): Lift enclosing type conversion nodes for
17828         elementary types in all cases.
17829
17830 2006-02-13  Javier Miranda  <miranda@adacore.com>
17831
17832         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
17833         task types when accessing to the corresponding record type.
17834         Remove '!' in warning message.
17835
17836 2006-02-13  Olivier Hainque  <hainque@adacore.com>
17837
17838         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
17839         to avoid useless and space inefficient overalignments on targets where
17840         Max_Alignment is larger than 16.
17841
17842 2006-02-13  Pascal Obry  <obry@adacore.com>
17843
17844         * g-catiio.adb (Sec_Number): New type used to compute the number of
17845         seconds since 1-1-1970.
17846         (Image) [Natural]: The parameter was an Integer, as we can't deal with
17847         negative numbers (years, months...) it is better to have a Natural here.
17848         Code clean-up.
17849         (Image) [Number]: Change parameter from Long_Integer to Number.
17850         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
17851         overflow for dates past year 2038.
17852
17853 2006-02-13  Matthew Heaney  <heaney@adacore.com>
17854
17855         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
17856         Constraint_Error.
17857
17858 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
17859
17860         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
17861         native platforms.
17862         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
17863         finalization can occur normally.
17864
17865 2006-02-13  Vincent Celier  <celier@adacore.com>
17866
17867         * gnatcmd.adb (Rules_Switches): New table
17868         (Add_To_Rules_Switches): New procedure
17869         (GNATCmd): For command CHECK, put all options following "-rules" in the
17870         Rules_Switches table. Append these -rules switches after the -cargs
17871         switches.
17872
17873 2006-02-13  Robert Dewar  <dewar@adacore.com>
17874
17875         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
17876         These two cases were generating incorrect output, and if this unit
17877         was built with checks on, generated a discriminant mismatch constraint
17878         error.
17879
17880 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
17881             Robert Dewar  <dewar@adacore.com>
17882
17883         * lib-xref.adb (Get_Type_Reference): For a private type whose full
17884         view is an array type, indicate the component type as well, for
17885         navigation purposes.
17886         (Generate_Reference): Don't consider array ref on LHS to be a case
17887         of violating pragma Unreferenced.
17888         Do not give Ada 2005 warning except on real reference.
17889
17890 2006-02-13  Vincent Celier  <celier@adacore.com>
17891
17892         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
17893         main source, add switch -mdebug-main=_ada_ so that the executable can
17894         be debugged by the standard VMS debugger.
17895         (Gnatmake): Set No_Main_Subprogram to True when there is no main
17896         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
17897         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
17898         of the last source, as the binding and linking phases are never
17899         performed.
17900         Set all executable obsolete when rebuilding a library.
17901
17902         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
17903         options.
17904
17905 2006-02-13  Javier Miranda  <miranda@adacore.com>
17906
17907         PR ada/23973
17908         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
17909         code to improve the error message reported when the program has
17910         declarations of abstract interface types and it is not compiled with
17911         the -gnat05 switch.
17912         (P_Access_Definition): Reorganize the code to improve the error
17913         message reported when the new Ada 2005 syntax for anonymous
17914         access types is used and the program is not compiled with the
17915         -gnat05 switch.
17916
17917 2006-02-13  Robert Dewar  <dewar@adacore.com>
17918
17919         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
17920         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
17921         (MODE_IN)
17922
17923 2006-02-13  Javier Miranda  <miranda@adacore.com>
17924
17925         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
17926         against source containing syntax errors.
17927
17928 2006-02-13  Vincent Celier  <celier@adacore.com>
17929
17930         * prj.adb (Reset): Initialize the first element of table Namings with
17931         the standard naming data.
17932
17933 2006-02-13  Vincent Celier  <celier@adacore.com>
17934
17935         * prj.ads (Error_Warning): New enumeration type
17936
17937         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
17938         unknown, use the location of the project to report the error.
17939         (When_No_Sources): New global variable
17940         (Report_No_Ada_Sources): New procedure
17941         (Check): New parameter When_No_Sources. Set value of global variable
17942         When_No_Sources,
17943         (Find_Sources): Call Report_No_Ada_Sources when appropriate
17944         (Get_Sources_From_File): Ditto
17945         (Warn_If_Not_Sources): Better warning messages indicating the unit name
17946         and the file name.
17947
17948         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
17949         Call Prj.Proc.Process with parameter When_No_Sources.
17950
17951         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
17952         Call Recursive_Check with parameter When_No_Sources.
17953         (Recursive_Check): New parameter When_No_Sources. Call itself and
17954         Prj.Nmsc.Check with parameter When_No_Sources.
17955         (Process): New parameter When_No_Sources. Call Check with parameter
17956         When_No_Sources.
17957         (Copy_Package_Declarations): New procedure to copy renamed parameters
17958         and setting the location of the declared attributes to the location
17959         of the renamed package.
17960         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
17961         packages.
17962
17963 2006-02-13  Vincent Celier  <celier@adacore.com>
17964
17965         * prj-makr.adb (Make): Preserve the comments from the original project
17966         file.
17967         When removing nodes (attributes Source_Dirs, Source_Files,
17968         Source_List_File and package Naming), save the comments and attach the
17969         saved comments to the newly created nodes.
17970         Do not add a with clause for the naming package if one already exists.
17971
17972 2006-02-13  Javier Miranda  <miranda@adacore.com>
17973             Gary Dismukes  <dismukes@adacore.com>
17974             Robert Dewar  <dewar@adacore.com>
17975
17976         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
17977
17978         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
17979         aliased entities to look for the overriden abstract interface
17980         subprogram.
17981         (Is_Interface_Subprogram): Complete documentation.
17982         (Check_Dispatching_Operation): Do not generate code to register the
17983         operation in the dispatch table if the source is compiled with
17984         restriction No_Dispatching_Calls.
17985         (Override_Dispatching_Operation): Check for illegal attempt to override
17986         No_Return procedure with procedure that is not No_Return
17987         (Check_Dispatching_Call): Suppress the check for an abstract operation
17988         when the original node of an actual is a tag-indeterminate attribute
17989         call, since the attribute, which must be 'Input, can never be abstract.
17990         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
17991         call to the Input attribute (even when rewritten).
17992         (Propagate_Tag): Augment comment to indicate the possibility of a call
17993         to an Input attribute.
17994
17995         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
17996         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
17997
17998         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
17999         No_Wide_Characters is no longer partition-wide
18000         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
18001         rather than GNAT
18002
18003 2006-02-13  Douglas Rupp  <rupp@adacore.com>
18004
18005         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
18006
18007 2006-02-13  Javier Miranda  <miranda@adacore.com>
18008
18009         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
18010         handles default-initialized components to keep separate the management
18011         of this feature but also avoid the unrequired resolution and
18012         expansion of components that do not have partially initialized
18013         values.
18014         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
18015         (Check_Bounds): Likewise.
18016         (Check_Length): Likewise.
18017
18018 2006-02-13  Javier Miranda  <miranda@adacore.com>
18019             Ed Schonberg  <schonberg@adacore.com>
18020
18021         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
18022         abstract interface type call analyze_and_resolve to expand the type
18023         conversion into the corresponding displacement of the
18024         reference to the base of the object.
18025         (Eval_Attribute, case Width): For systems where IEEE extended precision
18026         is supported, the maximum exponent occupies 4 decimal digits.
18027         (Accessibility_Message): Add '\' in 2-line warning message.
18028         (Resolve_Attribute): Likewise.
18029         (case Attribute_Access): Significantly revise checks
18030         for illegal access-to-subprogram Access attributes to properly enforce
18031         the rules of 3.10.2(32/2).
18032         Diagnose use of current instance with an illegal attribute.
18033
18034         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
18035         to a Node_Id.
18036         (Enclosing_Generic_Unit): New function to return a node's innermost
18037         enclosing generic declaration node.
18038         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
18039         (Type_Access_Level): The accessibility level of anonymous acccess types
18040         associated with discriminants is that of the current instance of the
18041         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
18042         (Compile_Time_Constraint_Error): Handle case of conditional expression.
18043         (Kill_Current_Values_For_Entity): New function
18044         (Enter_Name): Change formal type to Entity_Id
18045
18046 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
18047             Ed Schonberg  <schonberg@adacore.com>
18048             Gary Dismukes  <dismukes@adacore.com>
18049
18050         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
18051         Analyze_Compilation_Unit.
18052         Detect and warn on redundant with clauses detected in a package spec
18053         and/or body when -gnatwr is used.
18054         (Analyze_Context): Analyze config pragmas before other items
18055         (Install_Context_Items): Don't analyze config pragmas here
18056         (Install_Limited_Withed_Unit): Set limited entity of package in
18057         with_clause so that cross-reference information or warning messages on
18058         unused packages can be properly generated
18059         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
18060         has Error_Posted set. Prevent infinite loops in illegal programs.
18061         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
18062         to the point of the error test requiring the current unit to be private.
18063         This ensures that private with clauses are not exempted from the basic
18064         checking for being a descendant of the same library unit parent as a
18065         withed private descendant unit.
18066         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
18067         handle private with clauses properly, as well as to account for cases
18068         where the withed unit is a public descendant of a private ancestor
18069         (in which case the current unit must be a descendant of the private
18070         ancestor's parent). The spec comments were updated accordingly. Also,
18071         the old error message in this subprogram was replaced with error
18072         messages that mirror the errors tested and reported by
18073         Check_Private_Child_Unit.
18074         Parameter and variable names improved for readability.
18075         (Install_Limited_Context_Clauses): Remove test for a withed unit being
18076         private as the precondition for calling
18077         Check_Private_Limited_Withed_Unit since that subprogram has been
18078         revised to test public units as well as private units.
18079
18080 2006-02-13  Thomas Quinot  <quinot@adacore.com>
18081             Robert Dewar  <dewar@adacore.com>
18082             Ed Schonberg  <schonberg@adacore.com>
18083             Javier Miranda  <miranda@adacore.com>
18084
18085         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
18086         that Scope_Stack.First = 1.
18087         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
18088         were not always properly handled previously.
18089         (Formal_Entity): Complete rewrite, to handle properly some complex case
18090         with multiple levels of parametrization by formal packages.
18091         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
18092         to the corresponding derived type declaration for proper semantics.
18093
18094         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
18095         (Check_Component): Enforce restriction on components of
18096         unchecked_unions: a component in a variant cannot contain tasks or
18097         controlled types.
18098         (Unchecked_Union): Allow nested variants and multiple discriminants, to
18099         conform to AI-216.
18100         Add pragma Ada_2005 (synonym for Ada_05)
18101         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
18102         were not always properly handled previously.
18103         Document that pragma Propagate_Exceptions has no effect
18104         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
18105         (Set_Convention_From_Pragma): Check that if a convention is
18106         specified for a dispatching operation, then it must be
18107         consistent with the existing convention for the operation.
18108         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
18109         longer required to specify an vtable-ptr component in the record. For
18110         compatibility reasons we leave the support for the previous definition.
18111         (Analyze_Pragma, case No_Return): Allow multiple arguments
18112
18113         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
18114         non-overrideen inherited operation with a controlling result as
18115         illegal only its implicit declaration comes from the derived type
18116         declaration of its result's type.
18117         (Check_Possible_Deferred_Completion): Relocate the object definition
18118         node of the subtype indication of a deferred constant completion rather
18119         than directly analyzing it. The analysis of the generated subtype will
18120         correctly decorate the GNAT tree.
18121         (Record_Type_Declaration): Check whether this is a declaration for a
18122         limited derived record before analyzing components.
18123         (Analyze_Component_Declaration): Diagnose record types  not explicitly
18124         declared limited when a component has a limited type.
18125         (Build_Derived_Record_Type): Code reorganization to check if some of
18126         the inherited subprograms of a tagged type cover interface primitives.
18127         This check was missing in case of a full-type associated with a private
18128         type declaration.
18129         (Constant_Redeclaration): Check that the subtypes of the partial and the
18130         full view of a constrained deferred constant statically match.
18131         (Mentions_T): A reference to the current type in an anonymous access
18132         component declaration  must be an entity name.
18133         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
18134         class_wide type to refer to full type, not to the incomplete one.
18135         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
18136         available. Required to give support to the certified run-time.
18137         (Analyze_Component_Declaration): In case of anonymous access components
18138         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
18139         (Process_Discriminants): For an access discriminant, use the
18140         discriminant specification as the associated_node_for_itype, to
18141         simplify accessibility checks.
18142
18143 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
18144             Javier Miranda  <miranda@adacore.com>
18145
18146         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
18147         abstract interpretations on an operator, remove interpretations that
18148         yield Address or a type derived from it, if one of the operands is an
18149         integer literal.
18150         (Try_Object_Operation.Try_Primitive_Operation,
18151         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
18152         location when creating the new reference to a primitive or class-wide
18153         operation as a part of rewriting a subprogram call.
18154         (Try_Primitive_Operations): If context requires a function, collect all
18155         interpretations after the first match, because there may be primitive
18156         operations of the same type with the same profile and different return
18157         types. From code reading.
18158         (Try_Primitive_Operation): Use the node kind to choose the proper
18159         operation when a function and a procedure have the same parameter
18160         profile.
18161         (Complete_Object_Operation): If formal is an access parameter and prefix
18162         is an object, rewrite as an Access reference, to match signature of
18163         primitive operation.
18164         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
18165         by an expanded name with prefix Standard, when the operands are of an
18166         anonymous access type.
18167         (Remove_Abstract_Operations): If the operation is abstract because it is
18168         inherited by a user-defined type derived from Address, remove it as
18169         well from the set of candidate interpretations of an overloaded node.
18170         (Analyze_Membership_Op): Membership test not applicable to cpp-class
18171         types.
18172
18173 2006-02-13  Bob Duff  <duff@adacore.com>
18174
18175         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
18176         redundant use clauses.
18177         In particular, if the scope of two use clauses overlaps, but one is not
18178         entirely included in the other, we should not warn.  This can happen
18179         with nested packages.
18180         (Analyze_Subprogram_Renaming): Protect the compiler against previously
18181         reported errors. The bug was reported when the compiler was built
18182         with assertions enabled.
18183         (Find_Type): If the node is a 'Class reference and the prefix is a
18184         synchronized type without a corresponding record, return the type
18185         itself.
18186
18187 2006-02-13  Javier Miranda  <miranda@adacore.com>
18188
18189         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
18190         if this is the full-declaration associated with a private declaration
18191         that implement interfaces, then the private type declaration must be
18192         limited.
18193         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
18194         as aliased. The use of the 'access attribute is not available for such
18195         object (for this purpose the object should be explicitly marked as
18196         aliased, but being an anonymous type this is not possible).
18197
18198 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
18199             Robert Dewar  <dewar@adacore.com>
18200
18201         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
18202         compilation unit is an elaboration scope.
18203         (Add_Task_Proc): Add '\' in 2-line warning message.
18204         (Activate_All_Desirable): Deal with case of unit with'ed by parent
18205
18206 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
18207             Javier Miranda  <miranda@adacore.com>
18208
18209         * sem_type.adb (Write_Overloads): Improve display of candidate
18210         interpretations.
18211         (Add_One_Interp): Do not add to the list of interpretations aliased
18212         entities corresponding with an abstract interface type that is an
18213         immediate ancestor of a tagged type; otherwise we have a dummy
18214         conflict between this entity and the aliased entity.
18215         (Disambiguate): The predefined equality on universal_access is not
18216         usable if there is a user-defined equality with the proper signature,
18217         declared in the same declarative part as the designated type.
18218         (Find_Unique_Type): The universal_access equality operator defined under
18219         AI-230 does not cover pool specific access types.
18220         (Covers): If one of the types is a generic actual subtype, check whether
18221         it matches the partial view of the other type.
18222
18223 2006-02-13  Thomas Quinot  <quinot@adacore.com>
18224
18225         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
18226         line. This is necessary to allow In_Extended_Main_Unit to provide
18227         correct results for itypes while writing out expanded source.
18228         (Close_File): No need to update the source_index_table here since it's
18229         now done for each line.
18230
18231 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
18232             Robert Dewar  <dewar@adacore.com>
18233
18234         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
18235         preserve the source unit where the itype is declared, and prevent a
18236         backend abort.
18237         (Note_Implicit_Run_Time_Call): New procedure
18238         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
18239         E_Subprogram_Type)
18240
18241         * sprint.ads: Document use of $ for implicit run time routine call
18242
18243 2006-02-13  Quentin Ochem  <ochem@adacore.com>
18244
18245         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
18246         task name.
18247
18248 2006-02-13  Bob Duff  <duff@adacore.com>
18249
18250         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
18251         Scan_Unsigned, so we do not scan leading blanks and sign twice.
18252         Integer'Value("- 5") and Integer'Value("-+5") now correctly
18253         raise Constraint_Error.
18254
18255         * s-vallli.adb (Scan_Long_Long_Integer): Call
18256         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
18257         do not scan leading blanks and sign twice.
18258         Integer'Value("- 5") and Integer'Value("-+5") now correctly
18259         raise Constraint_Error.
18260
18261         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
18262         Scan_Long_Long_Unsigned): Split out most of the processing from
18263         Scan_Long_Long_Unsigned out into
18264         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
18265         This prevents scanning leading blanks and sign twice.
18266         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
18267         See RM-3.5(44).
18268
18269         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
18270         out most of the processing from Scan_Unsigned out into
18271         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
18272         This prevents scanning leading blanks and sign twice.
18273
18274         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
18275         use with Modular'Value attribute.
18276         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
18277         attribute.
18278
18279 2006-02-13  Robert Dewar  <dewar@adacore.com>
18280
18281         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
18282
18283 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
18284
18285         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
18286         (PPC VxWorks): Likewise.
18287         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
18288         (forced_callee): Make non-inlinable and non-pure.
18289         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
18290
18291 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
18292             Ben Brosgol  <brosgol@adacore.com>
18293             Robert Dewar  <dewar@adacore.com>
18294
18295         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
18296         support.
18297         Document that gnatbind -M option is for cross environments only.
18298         Added description of using gnatmem to trace gnat rtl allocs and deallocs
18299         Add note on use of $ to label implicit run time calls
18300         Add documentation for -gnatyI (check mode IN)
18301         Updated chapter on compatibility with HP Ada
18302         VMS-oriented edits.
18303         Ran spell and corrected errors
18304         Add documentation for gnatbind -d and rework documentation of -D
18305         at the same time.
18306         Add subprogram/data elimination section.
18307         Minor editing of annex A.
18308         Add section for gnatcheck.
18309         Add documentation for restriction No_Dispatching_Calls
18310         Add documentation for pragma Ada_2005
18311         Remove mention of obsolete pragma Propagate_Exceptions
18312         Document that pragma Unreferenced can appear after DO in ACCEPT
18313         Clarify Pure_Function for library level units
18314         Mention Max/Min in connection with No_Implicit_Conditionals
18315         No_Wide_Characters restriction is no longer partition-wide
18316         Add a nice example for Universal_Literal_String attribute
18317         Document that pragma No_Return can take multiple arguments
18318
18319         * ug_words: Added entry for gnatcheck
18320
18321         * g-ctrl_c.ads (Install_Handler): Enhance comments
18322
18323         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
18324
18325         * g-trasym.ads: Add documentation on how to do off line symbolic
18326         traceback computation.
18327
18328         * s-fatgen.adb: Add comments for Unaligned_Valid
18329
18330         * stand.ads: Fix typo in comment
18331
18332 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
18333
18334         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
18335
18336 2006-02-06  Roger Sayle  <roger@eyesopen.com>
18337
18338         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
18339
18340 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18341
18342         PR target/25926
18343         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
18344         implementation that calls __main.
18345
18346 2006-01-25  Peter O'Gorman  <peter@pogma.com>
18347
18348         PR bootstrap/25859
18349         * Makefile.in (GCC_LINK): Remove quotes.
18350         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
18351         or $(GCC_LINK).
18352
18353         (powerpc-darwin): Pass -shared-libgcc when building shared library.
18354
18355 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18356
18357         PR ada/24533
18358         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
18359
18360 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18361
18362         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
18363
18364 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
18365
18366         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
18367         needed.
18368
18369 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
18370
18371         * Make-lang.in: Update dependencies
18372
18373 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
18374
18375         * Make-lang.in: Add rule for ada/exp_sel.o
18376
18377 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
18378
18379         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
18380
18381 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
18382
18383         * gnatvsn.ads (Library_Version): Bump to version 4.2
18384         (ASIS_Version_Number): Bumped.
18385
18386 2005-12-09  Doug Rupp  <rupp@adacore.com>
18387
18388         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
18389         Ada bind file prefix on VMS from b$ to b__.
18390         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
18391         __init.
18392
18393         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
18394         Targparm.OpenVMS_On_Target.
18395         (Object_Suffix): Initialize with target object suffix.
18396         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
18397
18398         * butil.adb: Change some Hostparm.OpenVMS checks to
18399         Targparm.OpenVMS_On_Target.
18400
18401         * clean.adb: Change some Hostparm.OpenVMS checks to
18402         Targparm.OpenVMS_On_Target.
18403         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
18404         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
18405         Ada bind file prefix on VMS from b$ to b__.
18406
18407         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
18408         --GCC so that Get_Target_Parameters can find system.ads.
18409         (Gnatlink): Call Get_Target_Parameters in mainline.
18410         Initialize standard packages for Targparm.
18411         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
18412         (Process_Args): Also Check for object files with target object
18413         extension.
18414         (Make_Binder_File_Names): Create with target object extension.
18415         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
18416         to b__.
18417
18418         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
18419         Targparm.OpenVMS_On_Target.
18420         ({declaration},Build_Library,Check_Library): Change Ada bind file
18421         prefix on VMS from b$ to b__.
18422
18423         * osint-b.adb: Change some Hostparm.OpenVMS checks to
18424         Targparm.OpenVMS_On_Target.
18425         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
18426         b__.
18427
18428         * targext.c: New file.
18429
18430         * Makefile.in: add support for vxworks653 builds
18431         (../../vxaddr2line): gnatlink with targext.o.
18432         (TOOLS_LIBS): Move targext.o to precede libgnat.
18433         (init.o, initialize.o): Minor clean up in dependencies.
18434         (GNATLINK_OBJS): Add targparm.o, snames.o
18435         Add rules fo building targext.o and linking it explicitly with all
18436         tools.
18437         Also add targext.o to gnatlib.
18438
18439         * Make-lang.in: Add rules for building targext.o and linking it in
18440         with gnat1 and gnatbind.
18441         Add entry for exp_sel.o.
18442
18443         * osint.adb Change some Hostparm.OpenVMS checks to
18444         Targparm.OpenVMS_On_Target.
18445         (Object_File_Name): Use target object suffix.
18446
18447         * osint.ads (Object_Suffix): Remove, no longer used.
18448         (Target_Object_Suffix): Initialize with target object suffix.
18449
18450         * rident.ads: Add special exception to license.
18451
18452         * targparm.adb (Get_Target_Parameters): Set the value of
18453         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
18454         value.
18455         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
18456         
18457         * targparm.ads: Add special exception to license.
18458
18459         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
18460         function.
18461         (Copy_File): Make sure from file is closed if error on to file
18462         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
18463
18464         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
18465         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
18466
18467         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
18468         target object suffix.
18469
18470 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
18471             Quentin Ochem  <ochem@adacore.com>
18472             Florian Villoing  <villoing@adacore.com>
18473
18474         * a-taster.ads, a-taster.adb: New files.
18475
18476         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
18477         link to the version that does nothing. This way the task termination
18478         routine is not executed twice for the environment task when finishing
18479         because of an unhandled exception.
18480
18481         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
18482         handler because of an unhandled exception.
18483
18484         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
18485         System.Tasking.Utilities instead of that in System.Tasking.Stages.
18486
18487         * s-finimp.adb (initialization code): Modify the soft link for the
18488         finalization of the global list instead of Adafinal.
18489
18490         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
18491         non-tasking version of the soft link for task termination. We do
18492         nothing since if we are using the non-tasking version it
18493         means that the task termination functionality is not used.
18494         (Null_Finalize_Global_List): Add this null version for the procedure
18495         in charge of finalizing the global list for controlled objects.
18496         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
18497         instead for handling run-time termination in a more flexible way.
18498         (Adafinal_NT): This new procedure will take care of finalizing the
18499         global list for controlled objects if needed, but no tasking
18500         finalization.
18501
18502         * s-tarest.adb (Task_Lock): Do not try to lock again the
18503         Global_Task_Lock if we already own it. Otherwise, we get blocked in
18504         some run-time operations.
18505         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
18506         until all nested locks have been released.
18507         (Task_Wrapper): Call the fall-back task termination handler. It
18508         applies to all tasks but the environment task.
18509         (Finalize_Global_Tasks): Add the call for the task termination
18510         procedure for the environment task.
18511         (Task_Wrapper): suppress warnings around declaration of
18512         Secondary_Stack_Address.
18513
18514         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
18515         moved to the Common_ATCB record.
18516         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
18517         Common_ATCB record.
18518         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
18519         Common_ATCB record.
18520
18521         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
18522         Fall_Back_Handler, and Specific_Handler.
18523
18524         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
18525         defined in Ada.Task_Termination, to avoid circular dependencies.
18526         (Termination_Handler): Redefine this type here, alredy defined in
18527         Ada.Task_Termination, for avoiding circular dependencies.
18528         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
18529         for storing task termination handlers. In addition,
18530         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
18531         Common_ATCB because it is used by both the regular and the restricted
18532         run times.
18533         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
18534         Common_ATCB because it is used by both the regular and the restricted
18535         run times.
18536         (Common_ATCB): Added a dynamic task analyzer field.
18537
18538         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
18539         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
18540         (Task_Wrapper): Call the task termination handler. It applies to all
18541         tasks but the environment task.
18542         (Finalize_Global_Tasks): Call the task termination procedure for the
18543         environment task. The call to Finalize_Global_List is now performed
18544         using the soft links mechanism.
18545         (Task_Wrapper): added dynamic stack analysis.
18546
18547         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
18548         potentially blocking operations has been moved from
18549         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
18550         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
18551         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
18552         this run-time check.
18553
18554         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
18555         of task termination procedure.
18556         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
18557         link for the task termination procedure.
18558
18559         * bindusg.adb: (Bindusg): Added documentation for -u option.
18560
18561         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
18562         (Get_Main_C): Add handling of dynamic stack analysis.
18563         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
18564
18565         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
18566         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
18567         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
18568
18569         * opt.ads: Added flags used by dynamic stack measurement.
18570         (Max_Line_Length): Remove (not used anymore)
18571
18572         * s-io.ads, s-io.adb (Standard_Error): new subprogram
18573         (Standart_Output): new subprogram
18574         (Set_Output): new subprogram
18575         (Put): now uses the value of Current_Out to know if the output has to be
18576         send to stderr or stdout.
18577         
18578         * s-stausa.ads: Complete implementation.
18579
18580         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
18581         
18582         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
18583         list of Ada 05 files.
18584         (GNAT Library Units): Add AltiVec files.
18585
18586         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
18587         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
18588         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
18589
18590 2005-12-09  Nicolas Setton  <setton@adacore.com>
18591
18592         * adaint.c (__gnat_locate_regular_file): Return immediately if
18593         file_name is empty.
18594
18595 2005-12-09  Javier Miranda  <miranda@adacore.com>
18596             Hristian Kirtchev  <kirtchev@adacore.com>
18597
18598         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
18599         to the specification because the frontend generates code that uses this
18600         subprogram.
18601         (Set_Interface_Table): Add missing assertion.
18602         Update documentation describing the run-time structure.
18603         (Displace): New subprogram that displaces the pointer to the object
18604         to reference one of its secondary dispatch tables.
18605         (IW_Membership): Modified to use the new table of interfaces.
18606         (Inherit_TSD): Modified to use the new table of interfaces.
18607         (Register_Interface_Tag): Use the additional formal to fill the
18608         contents of the new table of interfaces.
18609         (Set_Interface_Table): New subprogram that stores in the TSD the
18610         pointer to the table of interfaces.
18611         (Set_Offset_To_Top): Use the additional formal to save copy of
18612         the offset value in the table of interfaces.
18613         Update structure of GNAT Primary and Secondary dispatch table diagram.
18614         Add comment section on GNAT dispatch table prologue.
18615         (Offset_To_Signature): Update the constant value of the Signature field.
18616         (Dispatch_Table): Update comment on hidden fields in the prologue.
18617         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
18618         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
18619         the type of formal parameter T to Tag, introduce additional assertions.
18620         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
18621         conversion.
18622         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
18623
18624         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
18625         in all the calls to Expand_Interface_Thunk. Instead of referencing the
18626         record component containing the tag of the secondary dispatch table we
18627         have to use the Offset_To_Top run-time function to get this information;
18628         otherwise if the pointer to the base of the object has been displace
18629         we get a wrong value if we use the 'position attribute.
18630
18631         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
18632         all the calls to Expand_Interface_Thunk.
18633         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
18634         interfaces; hence the call to Set_Interface_Table was clearly wrong.
18635         (Collect_All_Interfaces): Modify the internal subprogram Collect to
18636         ensure that the interfaces implemented by the ancestors are placed
18637         at the header of the generated list.
18638         (Expand_Interface_Conversion): Handle the case in which the displacement
18639         associated with the interface conversion is not statically known. In
18640         this case we generate a call to the new run-time subprogram Displace.
18641         (Make_DT): Generate and fill the new table of interfaces.
18642         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
18643         Get_Tagged_Kind and Set_Tagged_Kind.
18644         (Tagged_Kind): New function that determines the tagged kind of a type
18645         with respect to limitedness and concurrency and returns a reference to
18646         RE_Tagged_Kind.
18647         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
18648         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
18649         primary dispatch table for a type.
18650         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
18651         secondary dispatch table respectively of a tagged type.
18652
18653         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
18654         (Expand_Interface_Conversion): New subprogram to indicate if the
18655         displacement of the type conversion is statically known.
18656         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
18657
18658         * rtsfind.ads (RE_Offset_To_Top): New entity
18659         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
18660         accessible to users.
18661         (Re_Displace): New entity
18662         (RE_Interface_Data): New entity
18663         (RE_Set_Interface_Data): New_Entity
18664         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
18665         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
18666         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
18667         RE_TK_Tagged, RE_TK_Task.
18668
18669         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
18670         Init_Secondary_Tags_Internal to allow its use with interface types and
18671         also to generate the code for the new additional actual required
18672         by Set_Offset_To_Top.
18673         (Build_Init_Statements): In case of components associated with abstract
18674         interface types there is no need to generate a call to its IP.
18675         (Freeze_Record_Type): Generate Select Specific Data tables only for
18676         concurrent types.
18677         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
18678         the bodies and specifications of the predefined primitive operations
18679         dealing with dispatching selects and abort, 'Callable, 'Terminated only
18680         for concurrent types.
18681
18682         * exp_sel.ads, exp_sel.adb: New files.
18683
18684         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
18685         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
18686         properly protected objects and attach handler in the case of the
18687         restricted profile.
18688         Move embeded package Select_Expansion_Utilities into a separate external
18689         package.
18690         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
18691         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
18692         (Build_K, Build_S_Assignment): New subprograms, part of the select
18693         expansion utilities.
18694         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
18695         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
18696         where the trigger is a dispatching procedure of a limited tagged type.
18697
18698 2005-12-09  Olivier Hainque  <hainque@adacore.com>
18699
18700         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
18701         pointer initialization values. Make a SAVE_EXPR instead. Add comments
18702         about the use and expansion of SAVE_EXPRs in the various possible
18703         renaming handling cases.
18704         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
18705         abusing DECL_FCONTEXT.
18706
18707 2005-12-09  Matthew Heaney  <heaney@adacore.com>
18708
18709         * a-convec.adb (Merge): Added assertions to check whether vector params
18710         are sorted.
18711
18712         * a-coinve.adb (Merge): Added assertions to check whether vector params
18713         are sorted.
18714
18715         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
18716         draft.
18717         (Cursor'Read): raises PE
18718
18719         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
18720         to its default value.
18721
18722         * a-cihama.adb: Manually check whether cursor's key and elem are
18723         non-null
18724
18725         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
18726         (Merge): Assert that target and source lists are in order
18727         (Swap): Declare non-const temporaries, to pass to Splice
18728
18729         * a-cdlili.ads: (Splice): Changed param name and param mode
18730
18731         * a-cdlili.adb: (Splice): Changed param name and param mode
18732         (Merge): Assert that target and source lists are in order
18733         (Swap): Declare non-const temporaries, to pass to Splice
18734
18735         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
18736         (Write): declare Stream param as not null
18737
18738         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
18739         an exception message.
18740
18741 2005-12-09  Thomas Quinot  <quinot@adacore.com>
18742             Robert Dewar  <dewar@adacore.com>
18743
18744         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
18745         which is the absolute maximum length we can support.
18746
18747         * frontend.adb: For the processing of configuration pragma files,
18748         remove references to Opt.Max_Line_Length, which is not checked anymore.
18749
18750         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
18751         length.
18752
18753         * scn.adb, scng.adb: 
18754         Always check line length against the absolute supported maximum,
18755         Hostparm.Max_Line_Length.
18756
18757         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
18758         value for the maximum line length is Max_Line_Length (not
18759         Column_Number'Last).
18760         Minor error msg update
18761         (Set_Style_Check_Options): New interface returning error msg
18762         Minor code reorganization (processing for 'M' was out of alpha order)
18763
18764         * switch-c.adb: New interface for Set_Style_Check_Options
18765
18766         * stylesw.ads (Set_Style_Check_Options): New interface returning error
18767         msg.
18768
18769 2005-12-09  Javier Miranda  <miranda@adacore.com>
18770
18771         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
18772         with IP subprogram were only supported if there were limited types.
18773
18774         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
18775         records with IP subprogram were only supported if there were limited
18776         types.
18777
18778 2005-12-09  Olivier Hainque  <hainque@adacore.com>
18779             Eric Botcazou  <ebotcazou@adacore.com>
18780
18781         * trans.c (tree_transform, emit_check): Adjust calls to
18782         build_call_raise, passing the now expected GNAT_NODE argument.
18783
18784         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
18785         source line information than what the current global locus indicates
18786         when appropriate.
18787
18788         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
18789         field has overflowed.
18790         (build_call_raise): Add a GNAT_NODE argument to convey better source
18791         line information than what the current global locus indicates when
18792         appropriate.
18793         (build_component_ref): Adjust call to build_call_raise.
18794
18795 2005-12-09  Pascal Obry  <obry@adacore.com>
18796
18797         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
18798         the iterator is quitting iteration on parent directory.
18799
18800 2005-12-09  Javier Miranda  <miranda@adacore.com>
18801
18802         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
18803         and the assignment to a class-wide object, before the assignment we
18804         generate a run-time check to ensure that the tag of the Target is
18805         covered by the tag of the source.
18806
18807 2005-12-09  Robert Dewar  <dewar@adacore.com>
18808
18809         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
18810         parameter in call to Image_Wide_Character.
18811
18812         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
18813         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
18814         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
18815         annoying FFFE/FFFF inconsistency.
18816
18817 2005-12-09  Robert Dewar  <dewar@adacore.com>
18818             Javier Miranda  <miranda@adacore.com>
18819             Ed Schonberg  <schonberg@adacore.com>
18820
18821         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
18822         of type conversion.
18823         (Find_Interface): New subprogram that given a tagged type and one of its
18824         component associated with the secondary table of an abstract interface
18825         type, return the entity associated with such abstract interface type.
18826         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
18827         base type to create anonymous subtype, because entity may be a locally
18828         declared subtype or generic actual.
18829         (Find_Interface): New subprogram that given a tagged type and one of its
18830         component associated with the secondary table of an abstract interface
18831         type, return the entity associated with such abstract interface type.
18832
18833         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
18834         conversion cannot be handled at compile time. In this case we pass this
18835         information to the expander to generate the appropriate code.
18836
18837 2005-12-09  Robert Dewar  <dewar@adacore.com>
18838             Ed Schonberg  <schonberg@adacore.com>
18839             Gary Dismukes  <dismukes@adacore.com>
18840             Javier Miranda  <miranda@adacore.com>
18841             Hristian Kirtchev  <kirtchev@adacore.com>
18842
18843         * einfo.adb (Itype_Printed): New flag
18844         (Is_Limited_Type): Derived types do not inherit limitedness from
18845         interface progenitors.
18846         (Is_Return_By_Reference_Type): Predicate does not apply to limited
18847         interfaces.
18848
18849         * einfo.ads (Itype_Printed): New flag
18850         Move Is_Wrapper_Package to proper section
18851         Add missing Inline for Is_Volatile
18852
18853         * output.ads, output.adb (Write_Erase_Char): New procedure
18854         (Save/Restore_Output_Buffer): New procedures
18855         (Save/Restore_Output_Buffer): New procedures
18856
18857         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
18858         Add missing support for anonymous access type
18859         (Write_Id): Insert calls to Write_Itype
18860         (Write_Itype): New procedure to output itypes
18861
18862         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
18863         use of "limited" in declaration.
18864
18865         * sinfo.ads, sinfo.adb: 
18866         Formal derived types can carry an explicit "limited" indication.
18867
18868         * sem_ch3.adb: Add with and use of Targparm.
18869         (Create_Component): If Frontend_Layout_On_Target is True and the
18870         copied component does not have a known static Esize, then reset
18871         the size and positional fields of the new component.
18872         (Analyze_Component_Declaration): A limited component is
18873         legal within a protected type that implements an interface.
18874         (Collect_Interfaces): Do not add to the list the interfaces that
18875         are implemented by the ancestors.
18876         (Derived_Type_Declaration): If the parent of the full-view is an
18877         interface perform a transformation of the tree to ensure that it has
18878         the same parent than the partial-view. This simplifies the job of the
18879         expander in order to generate the correct object layout, and it is
18880         needed because the list of interfaces of the full-view can be given in
18881         any order.
18882         (Process_Full_View): The parent of the full-view does not need to be
18883         a descendant of the parent of the partial view if both parents are
18884         interfaces.
18885         (Analyze_Private_Extension_Declaration): If declaration has an explicit
18886         "limited" the parent must be a limited type.
18887         (Build_Derived_Record_Type): A derived type that is explicitly limited
18888         must have limited ancestor and progenitors.
18889         (Build_Derived_Type): Ditto.
18890         (Process_Full_View): Verify that explicit uses of "limited" in partial
18891         and full declarations are consistent.
18892         (Find_Ancestor_Interface): Remove function.
18893         (Collect_Implemented_Interfaces): New procedure used to gather all
18894         implemented interfaces by a type.
18895         (Contain_Interface): New function used to check whether an interface is
18896         present in a list.
18897         (Find_Hidden_Interface): New function used to determine whether two
18898         lists of interfaces constitute a set equality. If not, the first
18899         differing interface is returned.
18900         (Process_Full_View): Improve the check for the "no hidden interface"
18901         rule as defined by AI-396.
18902
18903 2005-12-09  Robert Dewar  <dewar@adacore.com>
18904
18905         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
18906         types, not on record subtypes.
18907         (Freeze_Entity): Code cleanup. Add barrier to the loop
18908         that generates the references for primitive operations. This allows to
18909         remove an unnecessary exception handler.
18910         Code reformatting and comment clean ups.
18911
18912 2005-12-09  Vincent Celier  <celier@adacore.com>
18913
18914         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
18915         If GNAT CHECK is called with a project file, but with no
18916         source on the command line, call gnatcheck with all the compilable
18917         sources of the project.
18918         Take into account the new command Check, for gnatcheck. Treat as for
18919         other ASIS tools: take into account project, specific package Check and
18920         Compiler switches.
18921         For ASIS tools, add the switches in package Compiler for
18922         the invocation of the compiler.
18923
18924         * prj-attr.adb: Add package Check and its attributes
18925
18926         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
18927
18928         * vms_conv.adb (Initialize): Change Params of command Check to
18929         unlimited files.
18930         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
18931         Add data for new command Check
18932
18933         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
18934         ELIM.
18935         Add qualifiers for Check command options
18936         (Command_Type): New command Check
18937
18938 2005-12-09  Thomas Quinot  <quinot@adacore.com>
18939
18940         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
18941         command line switch overruns the output buffer.
18942
18943 2005-12-09  Robert Dewar  <dewar@adacore.com>
18944
18945         * sem_prag.adb: Processing for new pragma Complete_Representation
18946         (Analyze_Pragma, case Debug): Implement two argument form.
18947
18948         * par-prag.adb: Entry for new pragma Complete_Representation
18949         (Prag, case Debug): Recognize two argument form of pragma Debug
18950         New interface for Set_Style_Check_Options.
18951
18952         * sem_ch13.adb: Implement new pragma Complete_Representation.
18953
18954         * snames.adb, snames.ads, snames.h: Entry for new pragma
18955         Complete_Representation.
18956
18957 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
18958
18959         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
18960         available user-specified stream attributes on limited parameters to
18961         also test the type directly rather than only its underlying type (for
18962         Ada 95) and, in the case of Ada 2005, to check that the user-specified
18963         attributes are visible at the point of the subprogram declaration.
18964         For Ada 2005, the error message is modified to indicate that the
18965         type's stream attributes must be visible (again, only for -gnat05).
18966
18967 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
18968
18969         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
18970         anonymous access types.
18971
18972         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
18973         matching of anonymous access types and anonymous access to subprogram
18974         types. 'R'M 4.9.1 (2/2).
18975
18976 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
18977
18978         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
18979         rule prematurely when operands are universal, remaining ambiguities
18980         will be removed during resolution.
18981         Code cleanup.
18982
18983         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
18984         that are Ada 2005 functions.
18985         (Has_Abstract_Interpretation): Subsidiary to
18986         Remove_Conversions, to remove ambiguities caused by abstract operations
18987         on numeric types when operands are universal.
18988
18989 2005-12-09  Robert Dewar  <dewar@adacore.com>
18990
18991         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
18992         for case where spec is categorized.
18993
18994 2005-12-09  Javier Miranda  <miranda@adacore.com>
18995
18996         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
18997         types use the corresponding record type. This was not needed before
18998         the implementation of Ada 2005 synchronized types because
18999         concurrent types were never tagged types in Ada 95.
19000
19001 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
19002
19003         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
19004         first subtype of the type of the expression to verify that it is a
19005         legal Time type.
19006
19007 2005-12-09  Robert Dewar  <dewar@adacore.com>
19008
19009         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
19010         decoded names.
19011
19012 2005-12-09  Quentin Ochem  <ochem@adacore.com>
19013             Robert Dewar  <dewar@adacore.com>
19014             Ed Falis  <falis@adacore.com>
19015             Florian Villoing  <villoing@adacore.com>
19016             Thomas Quinot  <quinot@adacore.com>
19017             Arnaud Charlet  <charlet@adacore.com>
19018
19019         * gnat_ugn.texi: Created section "Stack Related Tools"
19020         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
19021         "Stack Related Tools"
19022         Added subsection "Static Stack Usage Analysis"
19023         Added subsection "Dynamic Stack Usage Analysis"
19024         Include documentation of itypes in sprint listing (-gnatG)
19025         Documented gnatbind -D switch (default sec stack size for fixed sec
19026         stacks).
19027         Added Interrupt_State and Persistent_BSS to list of configuration
19028         pragmas.
19029         Add missing doc for maximum value of nnn in -gnatyMnnn
19030
19031         * gnat_rm.texi: Document the AltiVec binding.
19032         Add documentation for pragma Complete_Representation
19033         Shortened an overly long line (> 79 chars)
19034         Clarify documentation of unchecked conversion in implementation
19035         defined cases.
19036         Document two argument form of pragma Debug
19037
19038         * types.ads (Column_Number): Update documentation.
19039
19040         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
19041         library level Finalize_Storage_Only objects (these are not attached to
19042         any finalization list).
19043
19044         * system-mingw.ads: (Underlying_Priorities): Update comment.
19045
19046 2005-12-09  Robert Dewar  <dewar@adacore.com>
19047
19048         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
19049         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
19050         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
19051         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
19052         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
19053         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
19054         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
19055         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
19056         reformatting.
19057
19058 2005-12-09  Robert Dewar  <dewar@adacore.com>
19059
19060         * s-vaflop-vms-alpha.adb: (Ne_F): New function
19061         (Ne_G): New function
19062
19063         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
19064         for tag assignment.
19065         (Rewrite_Comparison): Handle case where operation is not a comparison
19066         and ignore, and also handle type conversion case.
19067
19068 2005-12-09  Thomas Quinot  <quinot@adacore.com>
19069
19070         * exp_aggr.ads: Fix typo in comment.
19071         ???-mark Convert_Aggr_In_Assignment as needing documentation.
19072
19073 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
19074
19075         * layout.adb: Replace various uses of byte by storage unit throughout.
19076         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
19077         static size, convert to storage units before returning, to conform to
19078         spec.
19079
19080 2005-12-09  Matthew Gingell  <gingell@adacore.com>
19081
19082         * g-exctra.ads: Fix typo in comment.
19083
19084 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19085
19086         * utils.c: Minor reformatting.
19087
19088 2005-12-09  Robert Dewar  <dewar@adacore.com>
19089
19090         * g-soccon.ads: 
19091         Further comment fixes to make the status of the default file clear
19092
19093         * s-bitops.adb: Clarify comment for Bits_Array
19094
19095 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
19096
19097         * Make-lang.in (ada.install-normal): Remove.
19098
19099 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
19100
19101         * Make-lang.in: Remove all dependencies on s-gtype.
19102
19103 2005-12-05  Richard Guenther  <rguenther@suse.de>
19104
19105         * utils.c (convert): Use fold_convert where appropriate.
19106
19107 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
19108
19109         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
19110         a period is meant.
19111
19112 2005-12-02  Richard Guenther  <rguenther@suse.de>
19113
19114         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
19115
19116 2005-12-01  Roger Sayle  <roger@eyesopen.com>
19117
19118         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
19119         nodes.
19120
19121 2005-11-23  Laurent Guerby  <laurent@guerby.net>
19122
19123         * mlib-prj.adb (Build_Library): Initialize Delete.
19124
19125 2005-11-21  Joel Sherrill  <joel.sherrill@oarcorp.com>
19126
19127         * socket.c: Add extern int h_errno for rtems since networking header
19128         files are not available at this point in a tool bootstrap. Newlib
19129         only has basic C library header files.
19130
19131 2005-11-19  Richard Guenther  <rguenther@suse.de>
19132         Roger Sayle  <roger@eyesopen.com>
19133
19134         PR ada/23717
19135         * misc.c (internal_error_function): Don't use vsprintf to format
19136         the error message text, instead use pp_format_text and the new
19137         pretty printer APIs.  This allows handling of %qs, %w, etc.
19138
19139 2005-11-18  Laurent Guerby  <laurent@guerby.net>
19140
19141         PR ada/24857
19142         * Makefile.in: Use s-auxdec-empty for RTEMS.
19143
19144 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19145
19146         PR ada/22333
19147         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
19148         a temporary if taking the address of something that is neither
19149         reference, declaration, or constant, since the gimplifier
19150         can't handle that case.
19151
19152 2005-11-17  Laurent Guerby  <laurent@guerby.net>
19153
19154         PR ada/24857
19155         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
19156
19157 2005-11-16  Richard Guenther  <rguenther@suse.de>
19158
19159         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
19160
19161 2005-11-16  Joel Sherrill  <joel.sherrill@oarcorp.com>
19162
19163         PR ada/24855
19164         * raise-gcc.c: Add missing stdarg.h include.
19165  
19166 2005-11-16  Richard Guenther  <rguenther@suse.de>
19167
19168         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
19169         (ada/misc.o): Likewise.
19170
19171 2005-11-14  Thomas Quinot  <quinot@adacore.com>
19172
19173         * g-soccon.ads: Minor reformatting. Update comments.
19174
19175         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
19176         gain visibility on the declaration of struct timeval.
19177
19178         * g-soccon-freebsd.ads,
19179         g-soccon-darwin.ads,
19180         g-soccon-tru64.ads,
19181         g-soccon-aix.ads,
19182         g-soccon-irix.ads,
19183         g-soccon-hpux.ads,
19184         g-soccon-solaris.ads,
19185         g-soccon-vms.ads,
19186         g-soccon-mingw.ads,
19187         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
19188
19189         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
19190         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
19191         g-soccon-linux-x86.ads: New files.
19192
19193         * g-socthi-mingw.adb: 
19194         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
19195
19196         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
19197         (time_t, suseconds_t): New types constructed to match the tv_sec
19198         and tv_usec fields of C struct timeval.
19199         (Timeval): Construct structure in terms of the new types.
19200         (Host_Errno): New function (imported from socket.c), returns last hosts
19201         database error.
19202
19203         * g-socthi-vxworks.adb:  Add error handling circuitry.
19204
19205         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
19206         components of struct timeval.
19207         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
19208         (Check_Selector): In error conditions, clear internal socket sets to
19209         avoid a memory leak.
19210         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
19211         Send_Timeout, Receive_Timeout.
19212
19213         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
19214         the tv_sec and tv_usec fields of C struct timeval.
19215         (Timeval): Construct structure in terms of the new types.
19216         (Host_Errno): New function (imported from socket.c), returns last hosts
19217         database error.
19218
19219         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
19220         hosts database last error code.
19221
19222         * gen-soccon.c: Complete value expansion should not be performed on
19223         TARGET, as it has the form of a math expression, and some components
19224         may be platform-defined macros.
19225         For VxWorks, generate the OK and ERROR values.
19226         New constants giving the sizes of the components of C struct timeval.
19227
19228 2005-11-14  Robert Dewar  <dewar@adacore.com>
19229             Ed Schonberg  <schonberg@adacore.com>
19230
19231         PR ada/18434
19232         * types.ads: Include All_Checks in Suppress_Array
19233
19234         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
19235         not(a=b), since we no longer do this rewriting, and hence it is not
19236         needed.
19237         (Elaboration_Checks_Suppressed): Add special casing to
19238         deal with different cases of static and dynamic elaboration checks (all
19239         checks does not count in the first case, but does in the second).
19240         (Expr_Known_Valid): Do not assume that the result of any arbitrary
19241         function call is valid, since this is not the case.
19242         (Ensure_Valid): Do not apply validity check to a real literal
19243         in a universal or fixed context
19244
19245         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
19246         elementary types using the operator in standard. It is cleaner not to
19247         modify the programmers intent, especially in the case of floating-point.
19248         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
19249         it did not matter because we always rewrote a/=b to not(a=b).
19250         (Expand_Allocator_Expression): For an allocator expression whose nominal
19251         subtype is an unconstrained packed type, convert the expression to its
19252         actual constrained subtype.
19253         Implement warning for <= or >= where < or > not possible
19254         Fix to Vax_Float tests (too early in many routines, causing premature
19255         Vax_Float expansions.
19256
19257         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
19258         to be used with packages and generic packages as well as with
19259         subprograms.
19260         (Suppress): Set All_Checks, but not Elaboration_Check, for case
19261         of pragma Suppress (All_Checks)
19262         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
19263         a string literal for precise control over warnings.
19264         Avoid raise of pragma in case of unrecognized pragma and just return
19265         instead.
19266
19267         * sem_prag.ads: Minor reformatting
19268
19269         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
19270         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
19271         Switch. Do not handle any exception.
19272         Include -gnatwx as part of -gnatg (warn on redundant parens)
19273         Allow optional = after -gnatm
19274         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
19275         longer sets Elaboration_Checks.
19276         Code to set warning mode moved to Sem_Warn
19277         so that it can be shared by pragma processing.
19278
19279         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
19280         statement.
19281
19282         * s-taprop-solaris.adb: 
19283         Change some <= to =, to avoid new warning
19284
19285         * a-exexda.adb, prj-proc.adb: 
19286         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
19287         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
19288
19289 2005-11-14  Robert Dewar  <dewar@adacore.com>
19290
19291         * exp_vfpt.adb: Handle /= case
19292         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
19293         so that we do not get duplicate scaling for fixed point conversions.
19294
19295         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
19296
19297 2005-11-14  Matthew Gingell  <gingell@adacore.com>
19298
19299         * system-lynxos-ppc.ads, system-lynxos-x86.ads: 
19300         Increase default priority on Lynx from 15 to 17, and meet the Ada
19301         requirement that Default_Priority be ((Priority'First +
19302         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
19303
19304 2005-11-14  Vincent Celier  <celier@adacore.com>
19305
19306         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
19307         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
19308         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
19309         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
19310         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
19311         mlib-tgt-lynxos.adb (DLL_Prefix): New function
19312
19313 2005-11-14  Doug Rupp  <rupp@adacore.com>
19314
19315         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
19316         private part.
19317
19318 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
19319
19320         * s-traces-default.adb, s-trafor-default.ads,
19321         s-tratas-default.adb: Fix compilation errors.
19322
19323 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
19324
19325         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
19326         raising the exception so the memory used is freed.
19327
19328 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
19329
19330         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
19331         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
19332         (convert_address): Update comments and list of platforms using this.
19333
19334         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
19335         no longer used.
19336
19337 2005-11-14  Pascal Obry  <obry@adacore.com>
19338             Vincent Celier  <celier@adacore.com>
19339
19340         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
19341         GNAT.Command_Line.
19342
19343         * memroot.adb: Remove redundant with/use clause on
19344         System.Storage_Elements.
19345
19346 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
19347
19348         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
19349         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
19350         related code to a-exexpr.adb
19351         (Save_Occurrence_And_Private): Move GCC EH related code to
19352         a-exexpr-gcc.adb
19353         (Raise_Current_Excep): Add new variable Id with pragma
19354         volatile, to ensure that the variable lives on stack.
19355
19356         * a-exexpr-gcc.adb, raise-gcc.c: New file.
19357
19358         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
19359         from a-except.adb.
19360         Move GCC EH related code to a-exexpr-gcc.adb
19361
19362         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
19363         64-bit Solaris
19364         Split the Linux version of g-soccon into separate variants for 32 and 64
19365         bit platforms.
19366         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
19367         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
19368         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
19369         of host variable $(RANLIB_FLAGS).
19370         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
19371         Code clean up: remove unused/obsolete targets.
19372         (EH_MECHANISM): New variable introduced to differenciate between the
19373         two EH mechanisms statically.
19374         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
19375         (LIBGNAT_OBJS): Add raise-gcc.o
19376         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
19377         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
19378         supports VxWorks 6 RTPs.
19379         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
19380         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
19381
19382         * raise.c: Move all GCC EH-related routines to raise-gcc.c
19383
19384 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
19385
19386         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
19387         deferral level, when abort is not allowed, to a later stage (the
19388         Task_Wrapper).
19389         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
19390         it will not get changed by the generated code. It was previously done
19391         in Create_Task.
19392
19393 2005-11-14  Thomas Quinot  <quinot@adacore.com>
19394             Olivier Hainque  <hainque@adacore.com>
19395             Eric Botcazou  <ebotcazou@adacore.com>
19396
19397         * decl.c:
19398         Factor common code to build a storage type for an unconstrained object
19399         from a fat or thin pointer type and a constrained object type.
19400         (annotate_value): Handle BIT_AND_EXPR.
19401         (annotate_rep): Don't restrict the back annotation of inherited
19402         components to the type_annotate_only case.
19403         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
19404         we are not defining the type.
19405         <E_Record_Type>: Likewise.
19406         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
19407         to get advantage of the new maybe_stabilize_reference interface, to
19408         ensure that what we reference is indeed stabilized instead of relying
19409         on assumptions on what the stabilizer does.
19410         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
19411         type imported through a limited_with clause, use its non-limited view.
19412         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
19413         differentiation.
19414         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
19415         of #if sections + explicit comparisons of convention identifiers.
19416         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
19417         before early-returning for certain types when code generation is
19418         disabled.
19419         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
19420         nullification of gnu_expr we do for objects with address clause and
19421         that we are not defining.
19422         (elaborate_expression_1): Do not create constants when creating
19423         variables needed by the debug info: the dwarf2 writer considers that
19424         CONST_DECLs is used only to represent enumeration constants, and emits
19425         nothing for them.
19426         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
19427         object with an address clause into an indirect reference, drop the
19428         initializing expression.
19429         Include "expr.h".
19430         (STACK_CHECK_BUILTIN): Delete.
19431         (STACK_CHECK_PROBE_INTERVAL): Likewise.
19432         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
19433         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
19434         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
19435         corresponding to the renamed object as ignored for debugging purposes.
19436
19437         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
19438         related): For a prefix that is a dereference of a fat or thin pointer,
19439         if there is an actual subtype provided by the front-end, use that
19440         subtype to build an actual type with bounds template.
19441         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
19442         is provided by the front-end, use that subtype to compute the size of
19443         the deallocated object.
19444         (gnat_to_gnu): When adding a statement into an elaboration procedure,
19445         check for a potential violation of a No_Elaboration_Code restriction.
19446         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
19447         with extra arguments to control whether to recurse through non-values
19448         and to let the caller know if the stabilization has succeeded.
19449         (gnat_stabilize_reference): Now a simple wrapper around
19450         maybe_stabilize, for common uses without restriction on lvalues and
19451         without need to check for the success indication.
19452         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
19453         pass false instead of 0 as the FORCE argument which is a bool.
19454         (Identifier_to_gnu): Remove checks ensuring that an renamed object
19455         attached to a renaming pointer has been properly stabilized, as no such
19456         object is attached otherwise.
19457         (call_to_gnu): Invoke create_var_decl to create the temporary when the
19458         function uses the "target pointer" return mechanism.
19459         Reinstate conversion of the actual to the type of the formal
19460         parameter before any other specific treatment based on the passing
19461         mechanism. This turns out to be necessary in order for PLACEHOLDER
19462         substitution to work properly when the latter type is unconstrained.
19463
19464         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
19465         common pattern.
19466         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
19467         with extra arguments to control whether to recurse through non-values
19468         and to let the caller know if the stabilization has succeeded.
19469
19470         * utils2.c (gnat_build_constructor): Only sort the fields for possible
19471         static output of record constructor if all the components are constant.
19472         (gnat_build_constructor): For a record type, sort the list of field
19473         initializers in increasing bit position order.
19474         Factor common code to build a storage type for an unconstrained object
19475         from a fat or thin pointer type and a constrained object type.
19476         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
19477         types variants, and process special cases of VIEW_CONVERT expressions
19478         as their NOP_EXPR counterpart to ensure we get to the
19479         CORRESPONDING_VARs associated with CONST_DECls.
19480         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
19481         on the right-hand side.
19482
19483         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
19484         a common pattern.
19485         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
19486         are converting back to its original type.
19487         (convert) <JM input>: Fallthrough regular conversion code instead of
19488         extracting the object if converting to a type variant.
19489         (create_var_decl): When a variable has an initializer requiring code
19490         generation and we are at the top level, check for a potential violation
19491         of a No_Elaboration_Code restriction.
19492         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
19493         SIZE and SIZE_UNIT which we need for later back-annotations.
19494         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
19495         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
19496         is an unchecked union.
19497         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
19498         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
19499         main variant, just replace the VIEW_CONVERT_EXPR.
19500         <UNION_TYPE>: Revert 2005-03-02 change.
19501
19502         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
19503
19504         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
19505
19506 2005-11-14  Matthew Heaney  <heaney@adacore.com>
19507
19508         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
19509         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
19510         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
19511         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
19512         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
19513         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 
19514         Compiles against the spec for ordered maps described in sections
19515         A.18.6 of the most recent (August 2005) AI-302 draft.
19516
19517 2005-11-14  Olivier Hainque  <hainque@adacore.com>
19518
19519         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
19520         to ensure bias adjustments take place when need be and to prevent
19521         occurrences of intermediate overflows.
19522
19523 2005-11-14  Matthew Gingell  <gingell@adacore.com>
19524             Olivier Hainque  <hainque@adacore.com>
19525
19526         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
19527         ia64 HP-UX.
19528
19529         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
19530         tracebacks on ia64 HP-UX and provide explanatory comment.
19531         Enable backtraces on ia64 GNU/Linux.
19532         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
19533         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
19534
19535 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
19536             Javier Miranda  <miranda@adacore.com>
19537
19538         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
19539         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
19540         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
19541         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
19542
19543         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
19544         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
19545         assertions).
19546
19547         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
19548         subprogram that generates the external name associated with a
19549         secondary dispatch table.
19550         (Get_Secondary_DT_External_Name): New subprogram that generates the
19551         external name associated with a secondary dispatch table.
19552
19553 2005-11-14  Emmanuel Briot  <briot@adacore.com>
19554
19555         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
19556         line in the ALI file to include both an instantiation reference, and a
19557         returned value.
19558
19559 2005-11-14  Vincent Celier  <celier@adacore.com>
19560
19561         * clean.adb (Check_Project): Look for Ada code in extending project,
19562         even if Ada is not specified as a language.
19563         Use new function DLL_Prefix for DLL_Name
19564         (Clean_Interface_Copy_Directory): New procedure
19565         (Clean_Library_Directory): New procedure
19566         (Clean_Directory): Remove procedure, no longer used
19567         (Clean_Project): Do not delete any file in an externally built project
19568
19569         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
19570         directory of an extending project, even when there are no Ada source
19571         present.
19572         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
19573         (Set_Ada_Paths.Add.Recursive_Add): Ditto
19574
19575         * mlib-prj.adb (Check_Library): For all library projects, get the
19576         library file timestamp.
19577         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
19578         (Build_Library): Use new function DLL_Prefix for the DLL_Name
19579         (Clean): Remove procedure, no longer used
19580         (Ultimate_Extension_Of): New function
19581         (Build_Library): When cleaning the library directory, only remove an
19582         existing library file and any ALI file of a source of the project.
19583         When cleaning the interface copy directory, remove any source that
19584         could be a source of the project.
19585
19586         * prj.ads, prj.adb (Project_Empty): Add values of new components
19587         Library_TS and All_Imported_Projects.
19588         (Project_Empty): Add values for new components of Project_Data:
19589         Library_ALI_Dir and Display_Library_ALI_Dir
19590
19591         * prj-attr.adb: New project level attribute name Library_ALI_Dir
19592
19593         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
19594         attribute Library_ALI_Dir.
19595         (Check_Library_Attributes): The library directory cannot be the same as
19596         any source directory of the project tree.
19597         (Check_Stand_Alone_Library): The interface copy directory cannot be
19598         the same as any source directory of the project tree.
19599
19600         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
19601         all temporary files.
19602
19603 2005-11-14  Robert Dewar  <dewar@adacore.com>
19604             Ed Schonberg  <schonberg@adacore.com>
19605
19606         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
19607         (Check_Elab_Call): A call within a protected body is never an
19608         elaboration call, and does not require checking.
19609         (Same_Elaboration_Scope): Take into account protected types for both
19610         entities.
19611         (Activate_Elaborate_All_Desirable): New procedure
19612
19613         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
19614         desirable
19615
19616         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
19617         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
19618
19619         * lib-writ.ads, lib-writ.adb: 
19620         Implement new AD/ED for Elaborate_All/Elaborate desirable
19621         Use new Elaborate_All_Desirable flag in N_With_Clause node
19622
19623         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
19624         N_Free_Statement nodes.
19625         Define new class N_Subprogram_Instantiation
19626         Add Elaborate_Desirable flag to N_With_Clause node
19627         Add N_Delay_Statement (covering two kinds of delay)
19628
19629         * debug.adb: Introduce d.f flag for compiler
19630         Add -da switch for binder
19631
19632 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
19633             Cyrille Comar  <comar@adacore.com>
19634
19635         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
19636         for task component, in the case of a limited aggregate. The enclosed
19637         object declaration will create it earlier. Otherwise, in the case of a
19638         nested aggregate, the object may appear in the wrong scope.
19639         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
19640         (Gen_Assign): If the component being assigned is an array type and the
19641         expression is itself an aggregate, wrap the assignment in a block to
19642         force finalization actions on the temporary created for each row of the
19643         enclosing object.
19644         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
19645         structures are initialized after all discriminants are set so that
19646         they can be accessed even when their offset is dynamic.
19647
19648 2005-11-14  Robert Dewar  <dewar@adacore.com>
19649             Hristian Kirtchev  <kirtchev@adacore.com>
19650
19651         * sem_attr.adb: Implement Machine_Rounding attribute
19652         (Analyze_Access_Attribute): The access attribute may appear within an
19653         aggregate that has been expanded into a loop.
19654         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
19655         'Terminated whenever the prefix is of a task interface class-wide type.
19656         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
19657         the prefix is of a task interface class-wide type.
19658
19659         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
19660         to avoid warnings.
19661
19662         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
19663         Remove pragma Inline for [Unaligned_]Valid.
19664         Add comments that Valid routines do not work for Vax_Float
19665
19666         * exp_attr.adb: Implement Machine_Rounding attribute
19667
19668         * snames.h: Add entry for Machine_Rounding attribute
19669
19670 2005-11-14  Javier Miranda  <miranda@adacore.com>
19671             Robert Dewar  <dewar@adacore.com>
19672             Hristian Kirtchev  <kirtchev@adacore.com>
19673
19674         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
19675         and related): For a prefix that is an explicit dereference of an
19676         access to unconstrained packed array type, annotate the dereference
19677         with an actual subtype so GIGI can make a correct size computation.
19678         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
19679         'Unrestricted_Access, if the designated type is an interface we
19680         add a type conversion to force the displacement of the pointer
19681         to the secondary dispatch table.
19682         Use Universal_Real instead of Long_Long_Float when we need a high
19683         precision float type for the generated code (prevents gratuitous
19684         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
19685         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
19686         'Terminated for task interface class-wide objects. Generate a call to
19687         the predefined dispatching routine used to retrieve the _task_id from
19688         a task corresponding record.
19689         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
19690
19691         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
19692         (Check_Dispatching_Operation): Protect the frontend againts
19693         previously detected errors.
19694
19695         * Makefile.rtl: Add new instantiations of system.fat_gen
19696
19697         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
19698         Change name of instantiated package for better consistency
19699         with newly added system.fat_gen instantiations.
19700
19701         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
19702         s-fvagfl.ads: New files.
19703
19704 2005-11-14  Cyrille Comar  <comar@adacore.com>
19705             Thomas Quinot  <quinot@adacore.com>
19706
19707         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
19708         assignment of a value of a tagged type that has been rewritten to a
19709         block statement, it is known by construction that no checks are
19710         necessary for the statements within the block: analyze it with checks
19711         suppressed.
19712         (Expand_N_If_Statement): When killing a dead then-branch in an
19713         if-statement that has elsif_parts, recompute the Current_Value node
19714         for any entity whose value is known from the condition of the first
19715         elsif_part.
19716         (Expand_N_Return_Statement): When returning a mutable record, convert
19717         the return value into its actual subtype in order to help the backend
19718         to return the actual size instead of the maximum. This is another
19719         aftermath of not returning mutable records on the sec-stack anymore.
19720
19721         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
19722         handling of error msg for suspicious reverse range iteration.
19723         (Check_Possible_Current_Value_Condition): Move declaration from body to
19724         spec, to allow this subprogram to be called from exp_ch5.
19725
19726 2005-11-14  Thomas Quinot  <quinot@adacore.com>
19727
19728         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
19729         generate a set of nested array aggregates instead of a single flat
19730         aggregate for multi-dimensional arrays.
19731
19732 2005-11-14  Pascal Obry  <obry@adacore.com>
19733
19734         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
19735         by spawnve is a process handle, no need to convert. Add a parameter
19736         close to control wether the process handle must be closed.
19737         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
19738         a process handle, not need to convert.
19739         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
19740
19741         * g-expect.adb: (Kill): Document the new close parameter.
19742         (Close): Do not release the process handle in the kill there as
19743         waitpid() is using it.
19744         (Send_Signal): Release the process handle.
19745
19746 2005-11-14  Robert Dewar  <dewar@adacore.com>
19747
19748         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
19749         need a high precision float type for the generated code (prevents
19750         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
19751         used).
19752
19753         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
19754         need a high precision float type for the generated code (prevents
19755         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
19756         used).
19757         (Expand_Width_Attribute): In configurable run-time, the attribute is not
19758         allowed on non-static enumeration subtypes. Force a load error to emit
19759         the correct diagnostic.
19760
19761 2005-11-14  Thomas Quinot  <quinot@adacore.com>
19762             Robert Dewar  <dewar@adacore.com>
19763             Ed Schonberg  <schonberg@adacore.com>
19764
19765         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
19766         subtype to compute the size of the designated object at run-time,
19767         create such a subtype and store it in the Actual_Designated_Subtype
19768         attribute of the N_Free_Statement.
19769         Generate itype for classwide designated object in both cases of
19770         user-specified storage pool: specific and class-wide, not only in the
19771         specific case.
19772         Raise CE when trying to set a not null access type object to null.
19773         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
19774         an explicit loop, because freeze nodes make its position variable.
19775
19776         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
19777         null object.
19778
19779 2005-11-14  Javier Miranda  <miranda@adacore.com>
19780
19781         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
19782         Build_Stream_Procedure): Add the null-excluding attribute to the first
19783         formal.
19784         This has no semantic meaning under Ada95 mode but it is a
19785         requirement under Ada05 mode.
19786
19787         * par-ch3.adb (P_Access_Definition): Addition of warning message if
19788         the null exclusion is used under Ada95 mode
19789         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
19790         (P_Access_Definition): Remove assertion that forbids the use of
19791         the null-exclusion feature in Ada95.
19792
19793 2005-11-14  Robert Dewar  <dewar@adacore.com>
19794
19795         * impunit.adb: Exclude container helper units not intended for use by
19796         users.
19797
19798 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
19799
19800         * freeze.adb (Freeze_Entity): For an access formal that is an access
19801         to subprogram, freeze the anonymous subprogram type at the same time,
19802         to prevent later freezing in the wrong scope, such as the enclosing
19803         subprogram body.
19804         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
19805         subprogram whenever available.
19806
19807 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
19808
19809         PR ada/23732
19810         * gnatvsn.ads (Library_Version): Bump to 4.1
19811
19812 2005-11-14  Robert Dewar  <dewar@adacore.com>
19813
19814         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
19815         Storage_Offset to avoid wrap around causing invalid results.
19816
19817 2005-11-14  Pascal Obry  <obry@adacore.com>
19818
19819         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
19820         cross-compiler.
19821         (Scan_Bind_Arg): Fail with an error message if -M option is used
19822         on a native compiler.
19823
19824 2005-11-14  Robert Dewar  <dewar@adacore.com>
19825             Vincent Celier  <celier@adacore.com>
19826
19827         * gprep.adb: Implement -C switch to scan comments
19828
19829         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
19830
19831         * scans.ads: Comment updates (including new use of Tok_Comment in
19832         preprocessing)
19833
19834         * opt.ads: Add documentation for flags that are used by gprmake,
19835         currently and in the next version of gprmake.
19836         (Verbosity_Level): New variable
19837         Add Replace_In_Comments switch
19838
19839         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
19840         and -vm.
19841         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
19842
19843 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
19844
19845         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
19846         message, friendlier.
19847
19848 2005-11-14  Robert Dewar  <dewar@adacore.com>
19849
19850         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
19851
19852 2005-11-14  Doug Rupp  <rupp@adacore.com>
19853
19854         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
19855
19856 2005-11-14  Robert Dewar  <dewar@adacore.com>
19857
19858         * interfac.ads: Change declarations of IEEE float types so that we no
19859         longer need a separate version of this package for VMS.
19860
19861 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
19862
19863         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
19864         internal entity created for the declaration of a child subprogram body
19865         with no spec as coming from source, to generate proper cross-reference
19866         information.
19867
19868 2005-11-14  Vincent Celier  <celier@adacore.com>
19869
19870         * make.adb (Compile_Sources): Change verbose message to minimum
19871         verbosity level High for "is in an Ada library", "is a read-only
19872         library" and "is an internal library",
19873         (Create_Binder_Mapping_File): Path name of ALI file for library project
19874         must include the library directory, not the object directory.
19875         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
19876         for new switches -vl, -vm and -vh.
19877         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
19878         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
19879         (Compile_Sources): Do not attempt to compile if an ALI file is missing
19880         in a project that is externally built.
19881         (Compute_All_Imported_Projects): New procedure
19882         (Gnatmake): Check if importing libraries should be regenerated because
19883         at least an imported library is more recent.
19884         (Initialize): For each project compute the list of the projects it
19885         imports directly or indirectly.
19886         (Add_Library_Search_Dir): New procedure, used in place of
19887         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
19888         put in the search paths.
19889         (Add_Source_Search_Dir): New procedure, used in place of
19890         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
19891         put in the search paths.
19892         (Mark_Directory): Resolve the absolute path the directory before marking
19893         it.
19894
19895         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
19896         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
19897         Switch. Do not handle any exception.
19898         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
19899         so that the switch is recognized as valid.
19900         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
19901
19902 2005-11-14  GNAT Script  <nobody@adacore.com>
19903
19904         * Make-lang.in: Makefile automatically updated
19905
19906 2005-11-14  Pascal Obry  <obry@adacore.com>
19907
19908         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
19909         used.
19910         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
19911         In both cases the last argument was dropped.
19912
19913 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
19914
19915         * namet.h: (Column_Numbe): New type.
19916         (Get_Column_Number): Define to sinput__get_column_number.
19917         (Instantiation): Define to sinput__instantiation.
19918         (Get_Column_Number): Declare.
19919         (Instantiation): Likewise.
19920
19921 2005-11-14  Robert Dewar  <dewar@adacore.com>
19922
19923         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
19924         syntax, which could cause compiler hangs.
19925
19926 2005-11-14  Vincent Celier  <celier@adacore.com>
19927
19928         * prj-ext.adb: Take into account new environment variable
19929         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
19930         are defined.
19931         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
19932         normalize its path name, making it absolute and resolving symbolic
19933         links, and replace the original if resolved path is different.
19934
19935 2005-11-14  Vincent Celier  <celier@adacore.com>
19936
19937         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
19938         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
19939
19940 2005-11-14  Emmanuel Briot  <briot@adacore.com>
19941
19942         * prj-pp.adb (Print): Do not output the with statement if the
19943         associated name is empty, which happens for virtual extending projects.
19944         (Print): Preserve the "extends all" attribute when printing the project.
19945
19946         * prj-tree.ads (String_Value_Of): Add comment about returned value for
19947         a virtual extending project.
19948
19949 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
19950
19951         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
19952         rhs of an assignment even if the type is unconstrained, when the
19953         context is non-expanding.
19954         In an inlined body, if the context type is private,
19955         resolve with its full view, which must be a composite type.
19956
19957 2005-11-14  Robert Dewar  <dewar@adacore.com>
19958             Ed Schonberg  <schonberg@adacore.com>
19959
19960         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
19961         Do not give obsolescent warning on with of subprogram (since we
19962         diagnose calls)
19963         (Analyze_With_Clause): Add test for obsolescent package
19964         (Install_Context_Clauses): If the unit is the body of a child unit, do
19965         not install twice the private declarations of the parents, to prevent
19966         circular lists of Use_Clauses in a parent.
19967         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
19968         compiling body of child unit.
19969         Use new class N_Subprogram_Instantiation
19970         (Expand_With_Clause): If this is a private with_clause for a child unit,
19971         appearing in the context of a package declaration, then the implicit
19972         with_clauses generated for parent units are private as well.
19973         (License_Check): Do not generate message if with'ed unit is internal
19974
19975 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
19976             Ed Schonberg  <schonberg@adacore.com>
19977             Thomas Quinot  <quinot@adacore.com>
19978
19979         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
19980         names are internal, because they will not have a corresponding partner
19981         in the actual package.
19982         (Analyze_Formal_Package): Move the setting of the formal package spec's
19983         Generic_Parent field so that it occurs prior to analyzing the package,
19984         to allow proper operation of Install_Parent_Private_Declarations.
19985         (Analyze_Package_Instantiation): Set the instantiated package entity's
19986         Package_Instantiation field.
19987         (Get_Package_Instantiation_Node): Move declaration to package spec.
19988         Retrieve the N_Package_Instantiation node when the Package_Instantiation
19989         field is present.
19990         (Check_Generic_Child_Unit): Within an inlined call, the only possible
19991         instantiation is Unchecked_Conversion, for which no parents are needed.
19992         (Inline_Instance_Body): Deinstall and record the use_clauses for all
19993         parent scopes of a scope being removed prior to inlining an instance
19994         body.
19995         (Analyze_Package_Instantiation): Do not perform front-end inlining when
19996         the current context is itself an instance within a non-instance child
19997         unit, to prevent scope stack errors.
19998         (Save_References): If the node is an aggregate that is an actual in a
19999         call, rewrite as a qualified expression to preserve some type
20000         information, to resolve possible ambiguities in the instance.
20001         (Instance_Parent_Unit): New global variable to record the ultimate
20002         parent unit associated with a generic child unit instance (associated
20003         with the existing Parent_Unit_Visible flag).
20004         (type Instance_Env): New component Instance_Parent_Unit for stacking
20005         parents recorded in the global Instance_Parent_Unit.
20006         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
20007         stack.
20008         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
20009         it's not a top-level unit, and only do this if Instance_Parent_Unit is
20010         not already set. Replace test of Is_Child_Unit with test of parent's
20011         scope against package Standard. Add comments and a ??? comment.
20012         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
20013         on a child instance parent to test that the parent equals
20014         Instance_Parent rather than simply checking that the unit is not a
20015         child unit.
20016         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
20017         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
20018         a formal interface are ancestors of the corresponding actual.
20019         (Validate_Formal_Interface_Type): Additional legality checks.
20020         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
20021         interface types with ancestors.
20022         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
20023         to diagnose attempts to use generic within its own declaration.
20024
20025 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
20026             Javier Miranda  <miranda@adacore.com>
20027
20028         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
20029         discriminant.
20030         (Build_Private_Derived_Type): The entity of the created full view of the
20031         derived type does not come from source. If after installing the private
20032         declarations of the parent scope the parent is still private, use its
20033         full view to construct the full declaration of the derived type.
20034         (Build_Derived_Record_Type): Relax the condition that controls the
20035         execution of the check that verifies that the partial view and
20036         the full view agree in the set of implemented interfaces. In
20037         addition, this test now only takes into account the progenitors.
20038         (Derive_Interface_Subprograms): No need to derive subprograms
20039         of ancestors that are interfaces.
20040         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
20041         associated code.
20042         Change name Is_Package to Is_Package_Or_Generic_Package
20043         (Complete_Subprograms_Derivation): Handle the case in which the full
20044         view is a transitive derivation of the ancestor of the partial view.
20045         (Process_Full_View): Rename local subprogram Find_Interface_In_
20046         Descendant to Find_Ancestor_Interface to leave the code more clear.
20047         Remove wrong code that avoids the generation of an error message
20048         when the immediate ancestor of the partial view is an interface.
20049         In addition some minor reorganization of the code has been done to
20050         leave it more clear.
20051         (Analyze_Type_Declaration): If type has previous incomplete tagged
20052         partial view, inherit properly its primitive operations.
20053         (Collect_Interfaces): Make public, for analysis of formal
20054         interfaces.
20055         (Analyze_Interface_Declaration): New procedure for use for regular and
20056         formal interface declarations.
20057         (Build_Derived_Record_Type): Add support for private types to the code
20058         that checks if a tagged type implements abstract interfaces.
20059         (Check_Aliased_Component_Type): The test applies in the spec of an
20060         instance as well.
20061         (Access_Type_Declaration): Clean up declaration of malformed type
20062         declared as an access to its own classwide type, to prevent cascaded
20063         crash.
20064         (Collect_Interfaces): For private extensions and for derived task types
20065         and derived protected types, the parent may be an interface that must
20066         be included in the interface list.
20067         (Access_Definition): If the designated type is an interface that may
20068         contain tasks, create Master_Id for it before analyzing the expression
20069         of the declaration, which may be an allocator.
20070         (Record_Type_Declaration): Set properly the interface kind, for use
20071         in allocators, the creation of master id's for task interfaces, etc.
20072
20073 2005-11-14  Javier Miranda  <miranda@adacore.com>
20074             Ed Schonberg  <schonberg@adacore.com>
20075
20076         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
20077         omitted in case of stream attribute subprograms.
20078         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
20079         appear immediately after a subprogram body, when there is no previous
20080         subprogram declaration.
20081         Change name Is_Package to Is_Package_Or_Generic_Package
20082         (Process_Formals): A non null qualifier on a non null named access
20083         type is not an error, and is a warning only if Redundant_Constructs
20084         are flagged.
20085
20086 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
20087             Ed Schonberg  <schonberg@adacore.com>
20088
20089         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
20090         nested within Analyze_Package_Specification to install the private
20091         declarations and use clauses within each of the parent units of a
20092         package instance of a generic child package.
20093         (Analyze_Package_Specification): When entering a private part of a
20094         package associated with a generic instance or formal package, the
20095         private declarations of the parent must be installed (by calling new
20096         procedure Install_Parent_Private_Declarations).
20097         Change name Is_Package to Is_Package_Or_Generic_Package
20098         (Preserve_Full_Attributes): For a synchronized type, the corresponding
20099         record is absent in a generic context, which does not indicate a
20100         compiler error.
20101
20102 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
20103
20104         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
20105         not try to rewrite a renamed stream attribute, because the operations
20106         on the type may not have been generated.
20107         Handle properly a renaming_as_body generated for a stream operation
20108         whose default is abstract because the object type itself is abstract.
20109         (Find_Type): If the type is incomplete and appears as the prefix of a
20110         'Class reference, it is tagged, and its list of primitive operations
20111         must be initialized properly.
20112         (Chain_Use_Clauses): When chaining the use clauses that appear in the
20113         private declaration of a parent unit, prior to compiling the private
20114         part of a child unit, find on the scope stack the proper parent entity
20115         on which to link the use clause.
20116         (Note_Redundant_Use): Emit a warning when a redundant use clause is
20117         detected.
20118         (Analyze_Object_Renaming): An attribute reference is not a legal object
20119         if it is not a function call.
20120
20121 2005-11-14  Robert Dewar  <dewar@adacore.com>
20122             Ed Schonberg  <schonberg@adacore.com>
20123
20124         * sem_eval.adb: Implement d.f flag
20125         (Subtype_Statically_Match): A generic actual type has unknown
20126         discriminants when the corresponding actual has a similar partial view.
20127         If the routine is called to validate the signature of an inherited
20128         operation in a child instance, the generic actual matches the full view,
20129
20130 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
20131             Ed Schonberg  <schonberg@adacore.com>
20132             Robert Dewar  <dewar@adacore.com>
20133             Thomas Quinot  <quinot@adacore.com>
20134
20135         * sem_res.adb (Resolve_Call): Provide a better error message whenever
20136         a procedure call is used as a select statement trigger and is not an
20137         entry renaming or a primitive of a limited interface.
20138         (Valid_Conversion): If the operand has a single interpretation do not
20139         remove address operations.
20140         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
20141         statement to inhibit warning.
20142         (Resolve_Unary_Op): Do not produce a warning when
20143         processing an expression of the form -(A mod B)
20144         Use Universal_Real instead of Long_Long_Float when we need a high
20145         precision float type for the generated code (prevents gratuitous
20146         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
20147         (Resolve_Concatenation_Arg): Improve error message when argument is an
20148         ambiguous call to a function that returns an array.
20149         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
20150         there is an implicit operator in the given scope if we are within an
20151         instance: legality check has been performed on the generic.
20152         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
20153         after resolving operand, to avoid false warnings on overloaded calls.
20154
20155 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
20156             Javier Miranda  <miranda@adacore.com>
20157
20158         PR ada/15604
20159         * sem_type.adb (Covers): In an inlined body, a composite type matches
20160         a private type whose full view is a composite type.
20161         (Interface_Present_In_Ancestor): Protect the frontend against
20162         previously detected errors to ensure that its compilation
20163         with assertions enabled gives the same output that its
20164         compilation without assertions.
20165         (Interface_Present_In_Ancestor): Add support for private types.
20166         Change name In_Actual to In_Generic_Actual (clean up)
20167         (Disambiguate): New predicate In_Actual, to recognize expressions that
20168         appear in the renaming declaration generated for generic actuals, and
20169         which must be resolved in the outer context.
20170
20171 2005-11-14  Robert Dewar  <dewar@adacore.com>
20172             Thomas Quinot  <quinot@adacore.com>
20173             Hristian Kirtchev  <kirtchev@adacore.com>
20174             Ed Schonberg  <schonberg@adacore.com>
20175
20176         * sem_util.ads, sem_util.adb: Change name Is_Package to
20177         Is_Package_Or_Generic_Package.
20178         (Check_Obsolescent): New procedure.
20179         (Set_Is_Public): Remove obsolete junk test.
20180         (Set_Public_Status): Do not set Is_Public on an object whose declaration
20181         occurs within a handled_sequence_of_statemets.
20182         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
20183         for a parameterless procedure.
20184         (Enter_Name): Recognize renaming declarations created for private
20185         component of a protected type within protected operations, so that
20186         the source name of the component can be used in the debugger.
20187
20188 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
20189             Robert Dewar  <dewar@adacore.com>
20190
20191         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
20192         of a generic subprogram are not visible outside the body.
20193         (Set_Warning_Switch): New procedure (code to set warning mode moved
20194         here from Switch.C so that it can be shared by pragma processing.
20195         (Check_References): Special case warning for non-modified non-imported
20196         volatile objects.
20197         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
20198         form with a string literal argument
20199
20200 2005-11-14  Javier Miranda  <miranda@adacore.com>
20201
20202         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
20203         anonymous access.
20204         (Write): Addition of "not null" to the anonymous access.
20205         (Read): Addition of "not null" to the anonymous access.
20206         (Write): Addition of "not null" to the anonymous access.
20207
20208         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
20209         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
20210         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
20211         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
20212         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
20213         "not null" to the anonymous access.
20214
20215 2005-11-14  Robert Dewar  <dewar@adacore.com>
20216
20217         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
20218         offset values
20219
20220 2005-11-14  Vincent Celier  <celier@adacore.com>
20221
20222         * switch.adb (Bad_Switch): New procedure
20223         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
20224         message when in error.
20225
20226         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
20227         Too_Many_Output_Files): Remove declarations, no longer used.
20228         (Scan_Nat): New parameter Switch
20229         (Scan_Pos): Ditto
20230         (Bad_Switch): New procedure
20231
20232         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
20233         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
20234         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
20235         to Osint.Fail. Do not handle any exception.
20236
20237 2005-11-14  Vincent Celier  <celier@adacore.com>
20238
20239         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
20240         designates a non existent directory.
20241
20242 2005-11-14  Robert Dewar  <dewar@adacore.com>
20243
20244         * xgnatugn.adb: Replace invalid membership test by 'Valid
20245
20246 2005-11-14  Vincent Celier  <celier@adacore.com>
20247
20248         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
20249         there is no object directory.
20250
20251 2005-11-14  Robert Dewar  <dewar@adacore.com>
20252
20253         * usage.adb: Minor adjustment to output format, use nn instead of nnn
20254         (so that -gnateInnn does not run into next column)
20255
20256 2005-11-14  Ed Falis  <falis@adacore.com>
20257
20258         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
20259         "constrained"
20260
20261 2005-11-14  Cyrille Comar  <comar@adacore.com>
20262
20263         * s-chepoo.ads: Add comments on Dereference.
20264         Remove unnecessary inherited abstract primitives.
20265         Cosmetic cleanup.
20266
20267 2005-11-14  Robert Dewar  <dewar@adacore.com>
20268
20269         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
20270         node parameter, not needed, since it is available as Declaration_Node.
20271
20272 2005-11-14  Geert Bosch  <bosch@adacore.com>
20273
20274         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
20275         grammatically correct.
20276
20277 2005-11-14  Vincent Celier  <celier@adacore.com>
20278
20279         * s-fileio.ads: Correct spelling error in comment
20280
20281 2005-11-14  Cyrille Comar  <comar@adacore.com>
20282             Robert Dewar  <dewar@adacore.com>
20283             Vincent Celier  <celier@adacore.com>
20284             Ben Brosgol  <brosgol@adacore.com>
20285             Jose Ruiz  <ruiz@adacore.com>
20286             Pascal Obry  <obry@adacore.com>
20287
20288         * gnat_ugn.texi: 
20289         Document that -fstack-check is needed for strict compliance with the
20290         Ada 95 Reference Manual.
20291         Correct reference to VAX systems to meet HP guidelines
20292         Add documentation for new gnatmake switches -vl, -vm and -vh
20293         Replace DEC Ada by HP Ada
20294         Replace DIGITAL by HP
20295         Remove empty section on tools in compatibility section
20296         Clarify the Windows convention semantics.
20297         Document the Win32 calling convention.
20298         The Stdcall, Win32 and DLL convention are synonyms.
20299         Add a note in -gnatR description about zero size record components
20300         Note on new >= and <= warnings for -gnatwc
20301         Document that equal sign after -gnatm is optional.
20302         Note that strip is working fine on DLL built with a Library
20303         Project. The restriction apply only to DLL built with gnatdll.
20304         Update section about the way to debug a DLL.
20305         Update information about the DLL convention.
20306         Document -C switch for gnatprep
20307         Document new attribute Library_ALI_Dir
20308         Update elaboration doc to include implicit Elaborate pragmas now
20309         generated for subprogram instantiations.
20310         Document limitation on executable names that include spaces for --GCC,
20311         --GNATBIND, and --GNATLINK switches.
20312         Document that -w causes -gnatws to be added at start of gcc switches
20313
20314         * gnat_rm.texi: Document that -mieee is needed for generating infinite
20315         and NaN values in case of overflow on machines that are not fully
20316         compliant with the IEEE floating-point standard.
20317         Create a section describing the set of compiler options needed for
20318         strict compliance with the Ada 95 Reference Manual.
20319         Add documentation for pragma Obsolescent applied to a package
20320         Clarify potential issues of mixed language programs related to the
20321         I/O buffering enabling in the elaboration of the GNAT runtime.
20322         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
20323         This documentation only patch adds extra documentsion for pragma
20324         Restrictions (No_Elaboration_Code), explaining why it is not possible
20325         to document this restriction in terms of allowed source constructs.
20326         Document string literal form of pragma Warnings
20327         Document new attribute Library_ALI_Dir
20328         Add documentation on stable attributes in project files that was missing
20329
20330         * gnat-style.texi: Indicate that paragraphs within a single comment
20331         should be separated by empty comment lines
20332
20333         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
20334         /05 respectively)
20335
20336         * bindusg.adb: Minor cleanup, put -m before -M for consistency
20337
20338 2005-11-14  Robert Dewar  <dewar@adacore.com>
20339
20340         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
20341         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
20342         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
20343         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
20344         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
20345         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
20346         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
20347         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
20348         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
20349         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
20350         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
20351         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
20352         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
20353         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
20354         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
20355         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
20356         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
20357         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
20358         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
20359         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
20360         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
20361         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
20362         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
20363         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
20364         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
20365         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
20366         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
20367         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
20368         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
20369         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
20370         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
20371         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
20372         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
20373         system-interix.ads, system-solaris-sparc.ads,
20374         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
20375         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
20376         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
20377         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
20378         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
20379         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
20380         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
20381         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
20382         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
20383         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
20384         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
20385         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
20386         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
20387         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
20388         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
20389         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
20390         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
20391         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
20392         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
20393         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
20394         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
20395         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
20396         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
20397         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
20398         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
20399         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
20400         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
20401         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
20402         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
20403         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
20404         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
20405         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
20406         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
20407         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
20408         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
20409         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
20410         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
20411         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
20412         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
20413         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
20414         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
20415         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
20416         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
20417         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
20418         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
20419         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
20420         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
20421         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
20422         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
20423         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
20424         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
20425         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
20426         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
20427         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
20428         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
20429         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
20430         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
20431         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
20432         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
20433         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
20434         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
20435         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
20436         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
20437         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
20438         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
20439         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
20440         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
20441         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
20442         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
20443         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
20444         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
20445         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
20446         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
20447         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
20448         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
20449         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
20450         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
20451         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
20452         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
20453         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
20454         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
20455         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
20456         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
20457         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
20458         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
20459         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
20460         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
20461         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
20462         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
20463         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
20464         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
20465         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
20466         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
20467         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
20468         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
20469         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
20470         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
20471         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
20472         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
20473         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
20474         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
20475         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
20476         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
20477         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
20478         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
20479         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
20480         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
20481         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
20482         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
20483         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
20484         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
20485         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
20486         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
20487         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
20488         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
20489         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
20490         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
20491         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
20492         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
20493         a-numaux-darwin.ads, a-numaux-darwin.adb,
20494         a-swuwha.ads, a-stunha.ads: Minor reformatting
20495
20496 2005-11-14  Robert Dewar  <dewar@adacore.com>
20497
20498         PR ada/18434
20499         * osint-m.adb: Add pragma Elaborate_All for Osint
20500
20501 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
20502
20503         PR ada/23995
20504         * trans.c (call_to_gnu): Restore statement lost in translation.
20505
20506 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
20507
20508         * init.c: Use the Linux-specific section for the IA-64/Linux target.
20509         (__gnat_adjust_context_for_raise): Add conditional code so that the
20510         IA-64 is also supported.
20511
20512 2005-11-03  James E Wilson  <wilson@specifix.com>
20513
20514         PR ada/23427
20515         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
20516         TREE_OVERFLOW check.
20517
20518 2005-09-21  Olivier Hainque  <hainque@adacore.com>
20519
20520         PR ada/22418
20521         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
20522         as we create them to store a size in bits.
20523
20524 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
20525
20526         PR ada/21937
20527         PR ada/22328
20528         PR ada/22381
20529         PR ada/22383
20530         PR ada/22419
20531         PR ada/22420
20532         * utils2.c (build_return_expr): New helper function.
20533         * gigi.h (build_return_expr): Declare it.
20534         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
20535         of manually building the RETURN_EXPR tree.
20536         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
20537         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
20538         build_binary_op for the "target pointer" case.  Use build_return_expr
20539         instead of manually building the RETURN_EXPR tree.
20540
20541 2005-09-16  Laurent Guerby  <laurent@guerby.net>
20542
20543         PR ada/23788
20544         * s-tpinop.ads: Make this unit Preelaborate.
20545
20546 2005-09-16  Andreas Jaeger  <aj@suse.de>
20547
20548         * socket.c: Add string.h for memcpy.
20549
20550 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
20551
20552         * dec-io.ads, dec-io.adb: Removed, no longer used.
20553
20554 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
20555
20556         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
20557
20558         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
20559         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
20560         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
20561         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
20562         dependent units are Preelaborate.
20563         (Initialize): Call Interrupt_Managemeent.Initialize and
20564         OS_Primitives.Initialize to ensure proper initialization of this unit.
20565         Remove use of System.Soft_Links
20566         Make this unit Preelaborate.
20567
20568         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
20569         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
20570         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
20571         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
20572         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
20573         s-tratas.ads, s-tasinf.ads: Minor reformatting.
20574         Add pragma Preelaborate, since these packages are suitable for this
20575         categorization.
20576         Update comments.
20577
20578         * s-traent-vms.ads, s-intman-dummy.adb,
20579         s-taprop-dummy.adb: Make this unit Preelaborate.
20580
20581         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
20582         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
20583         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
20584         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
20585         s-intman-solaris.adb, s-intman-irix-athread.adb,
20586         s-intman-irix.adb: Mark this unit Preelaborate.
20587         (Initialize): New procedure.
20588         Update comments.
20589
20590         * s-taspri-linux.ads: Removed.
20591
20592         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
20593         as done by other implementations (e.g. posix).
20594
20595         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
20596         responsible for deferring abort.
20597         Mark this unit Preelaborate.
20598
20599         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
20600         proper initialization of the tasking run-time.
20601
20602         * s-tasdeb.ads: Mark this unit Preelaborate.
20603         (Known_Tasks): Add explicit default value to avoid elaboration code.
20604
20605         * s-inmaop-vms.adb (Elaboration code): Add call to
20606         Interrupt_Management.Initialize since the elaboration code depends on
20607         proper initialization of this package.
20608
20609         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
20610         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
20611         s-osprim-posix.adb: Make this unit Preelaborate.
20612
20613         * a-calend.adb: Add call to OS_Primitives.Initialize
20614
20615         * a-elchha.adb: Update use of Except.Id.Full_Name.
20616         Minor reformatting.
20617         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
20618
20619         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
20620         Move with clauses outside Warnings Off now that dependent units are
20621         Preelaborate.
20622         Use raise xxx with "..."; Ada 2005 form.
20623
20624         * a-taside.ads, a-taside.adb:
20625         Remove some dependencies, to make it easier to make this unit truly
20626         Preelaborate.
20627         Rewrite some code to be conformant with Preelaborate rules.
20628
20629         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
20630         marked Preelaborate in the future.
20631
20632         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
20633         these units Preelaborate.
20634
20635         * s-exctab.adb: Update use of Except.Id.Full_Name.
20636
20637         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
20638         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
20639         Set_Exc_Stack_Addr): Removed, no longer used.
20640         Remove reference to *Machine_State_Addr*, no longer needed.
20641
20642         * s-stalib.ads: Mark this unit as Preelaborate[_05].
20643         (Exception_Data): Full_Name is now a System.Address so that this unit
20644         can be made Preelaborate.
20645         Clean up/simplify code thanks to Full_Name being a System.Address.
20646         Remove obsolete pragma Suppress (All_Checks), no longer needed.
20647
20648         * s-taskin.ads, s-taskin.adb:
20649         Move with clauses outside Warnings Off now that dependent units are
20650         Preelaborate.
20651         Make this unit Preelaborate.
20652         (Initialize): New proceduure, replace elaboration code and makes the
20653         set up of the tasking run-time cleaner.
20654         (Detect_Blocking): Now a function instead of a deferred boolean, to
20655         obey Preelaborate rules.
20656
20657         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
20658         soft links, no longer used.
20659
20660         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
20661         packages are suitable for this categorization.
20662
20663         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
20664         since we compile run-time sources in Ada 2005 mode.
20665         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
20666         avoid having s-taprop*.adb depend on s-soflin and to avoid code
20667         duplication.
20668         Remove reference to *Machine_State_Addr*, no longer needed.
20669
20670 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
20671
20672         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
20673         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
20674         Remove reference to System.Exceptions.
20675
20676         * s-mastop-x86.adb: Removed, no longer used.
20677
20678         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
20679
20680         * a-excach.adb: Minor reformatting.
20681
20682         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
20683         instead fix new warnings that were hidden by this change.
20684         (AAA, ZZZ): Removed, replaced by...
20685         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
20686         are used instead of constants, to help make Ada.Exception truly
20687         preelaborate.
20688         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
20689         Raise_Storage_Error): File is now a System.Address, to simplify code.
20690         (Elab code): Removed, no longer used.
20691         (Null_Occurrence): Remove Warnings Off and make this construct
20692         preelaborate.
20693         Remove code related to front-end zero cost exception handling, since
20694         it is no longer used.
20695         Remove -gnatL/-gnatZ switches.
20696
20697         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
20698         Update use of Except.Msg.
20699
20700         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
20701         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
20702         to front-end zero cost exception handling, since it is no longer used.
20703         Remove -gnatL/-gnatZ switches.
20704
20705         * lib-writ.ads: Minor reformatting
20706         Remove doc of UX
20707
20708         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
20709
20710         * Make-lang.in: Remove references to s-except.ads
20711
20712         * s-except.ads: Removed, no longer used.
20713
20714         * s-mastop.ads, s-mastop.adb:
20715         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
20716         Remove reference to System.Exceptions.
20717
20718         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
20719         switch-b.adb: Remove code related to front-end zero cost exception
20720         handling, since it is no longer used.
20721         Remove -gnatL/-gnatZ switches.
20722
20723 2005-09-01  Robert Dewar  <dewar@adacore.com>
20724             Gary Dismukes  <dismukes@adacore.com>
20725             Javier Miranda  <miranda@adacore.com>
20726
20727         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
20728         type by valid test and generate warning.
20729         (Tagged_Membership): Generate call to the run-time
20730         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
20731         Change formal name Subtype_Mark to Result_Definition in several calls to
20732         Make_Function_Specification.
20733         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
20734         check for proper accessibility of the operand of a class-wide allocator.
20735         The check can be left out if checks are suppressed or if the expression
20736         has a specific tagged type whose level is known to be safe.
20737
20738         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
20739         generates the run-time check associated with null-excluding entities.
20740         (Expand_N_Return_Statement): Add tests to determine if the accessibility
20741         check on the level of the return expression of a class-wide function
20742         can be elided. The check usually isn't needed if the expression has a
20743         specific type (unless it's a conversion or a formal parameter). Also
20744         add a test for whether accessibility checks are suppressed. Augment
20745         the comments to describe the conditions for performing the check.
20746
20747 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
20748             Javier Miranda  <miranda@adacore.com>
20749             Gary Dismukes  <dismukes@adacore.com>
20750             Ed Schonberg  <schonberg@adacore.com>
20751
20752         * a-tags.adb (IW_Membership): Give support to
20753         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
20754         subprogram has been extended to look for the tag in the ancestors tag
20755         table.
20756         Update the structure of the GNAT Dispatch Table to reflect the
20757         additional two tables used in dispatching selects.
20758         Introduce appropriate array types and record components in
20759         Type_Specific_Data to reflect the two tables.
20760         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
20761         the TSD of a tag, indexed by position.
20762         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
20763         operation kind in the TSD of a tag, indexed by position.
20764
20765         * a-tags.ads: Introduce an enumeration type to capture different
20766         primitive operation kinds. Define a constant reflecting the number of
20767         predefined primitive operations.
20768         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
20769         of an entry wrapper.
20770         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
20771         callable entity of a primitive operation.
20772
20773         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
20774         primitive operations used in dispatching selects for limited
20775         interfaces, limited tagged, task and protected types what implement a
20776         limited interface.
20777         (Freeze_Type): Generate the bodies of the primitive operations used in
20778         dispatching selects for limited tagged, task and protected types that
20779         implement a limited interface. Generate statements to populate the two
20780         auxiliary tables used for dispatching in select statements.
20781         (Freeze_Record_Type): Add call to initialize the dispatch table entries
20782         associated with predefined interface primitive operations.
20783         (Build_Dcheck_Function): Change Set_Subtype_Mark to
20784         Set_Result_Definition.
20785         (Build_Variant_Record_Equality): Change Subtype_Mark to
20786         Result_Definition.
20787         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
20788         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
20789         (Build_Assignment): Simplify the code that adds the run-time-check.
20790         (Expand_N_Object_Declaration): Code cleanup.
20791
20792         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
20793         entries when there is a protected type that implements a limited
20794         interface.
20795
20796         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
20797         common routines used in expansion of dispatching selects.
20798         (Add_Private_Declarations): Select the appropriate protection type when
20799         there is a protected type that implements a limited interface.
20800         (Build_Parameter_Block): Generate a wrapped parameter block.
20801         (Build_Protected_Subprogram_Body): Select the appropriate type for
20802         locking entries when there is a protected type that implements a
20803         limited interface.
20804         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
20805         classified as entry wrappers.
20806         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
20807         asynchronous selects.
20808         (Expand_N_Conditional_Entry_Call): Add support for expansion of
20809         dispatching conditional selects.
20810         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
20811         protection when there is a protected type that implements limited
20812         interfaces.
20813         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
20814         timed selects.
20815         (Extract_Dispatching_Call): Extract the entity of the name of a
20816         dispatching call, the object parameter, actual parameters and
20817         corresponding formals.
20818         (Make_Initialize_Protection): Correct logic of protection initialization
20819         when there is a protected type that implements a limited interface.
20820         (Parameter_Block_Pack): Populate a wrapped parameter block with the
20821         values of actual parameters.
20822         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
20823         block and assign them to the original actual parameters.
20824
20825         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
20826         (Build_Protected_Sub_Specification): Change the type and name of the
20827         last formal to account for the increased variety of protection modes.
20828
20829         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
20830         entities. Used to save the value of the Is_Hidden attribute when the
20831         limited-view is installed.
20832         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
20833         the attribute of procedures classified as entry wrappers.
20834         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
20835         entity of a primitive wrapper.
20836         (Write_Entity_Flags): Output the name and value of the
20837         Is_Primitive_Wrapper attribute.
20838         (Write_Field27_Name): Output the name and entity of the field Wrapped_
20839         Entity.
20840         (Underlying_Type): If we have an incomplete entity that comes from
20841         the limited view then we return the Underlying_Type of its non-limited
20842         view if it is already available.
20843         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
20844         including operators.
20845         (Write_Field26_Name): Add entry for Overridden_Operation
20846         (Overridden_Operation): New attribute of functions and procedures.
20847
20848         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
20849         predefined position in the dispatch table for the primitive operations
20850         used in dispatching selects.
20851         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
20852         predefined primitive operations and replace it with
20853         Default_Prim_Op_Count.
20854         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
20855         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
20856         the names of the generated primitive operations used in dispatching
20857         selects.
20858         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
20859         case of abstract interface types. They will be inherit by the objects
20860         implementing the interface.
20861         (Make_DT): There is no need to inherit the dispatch table of the
20862         ancestor interface for the elaboration of abstract interface types.
20863         The dispatch table will be inherited by the object implementing the
20864         interface.
20865         (Copy_Secondary_DTs): Add documentation.
20866         (Validate_Position): Improve this static check in case of
20867         aliased subprograms because aliased subprograms must have
20868         the same position.
20869         (Init_Predefined_Interface_Primitives): New subprogram that initializes
20870         the entries associated with predefined primitives of all the secondary
20871         dispatch tables.
20872         (Build_Anonymous_Access_Type): Removed.
20873         (Expand_Interface_Actuals): With the previous cleanup there is no need
20874         to build an anonymous access type. This allows further cleanup in the
20875         code generated by the expander.
20876         (Expand_Interface_Conversion): If the actual is an access type then
20877         build an internal function to handle the displacement. If the actual
20878         is null this function returns null because no displacement is
20879         required; otherwise performs a type conversion that will be
20880         expanded in the code that returns the value of the displaced actual.
20881         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
20882         conversions that have no effect in the generated code because no
20883         displacement is required. Code cleanup; use local variables to
20884         avoid repeated calls to the subprogram directly_designated_type().
20885
20886         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
20887         Classify the primitive operations used in dispatching selects as
20888         predefined.
20889         (Implements_Limited_Interface): Determine whether some type either
20890         directly implements a limited interface or extends a type that
20891         implements a limited interface.
20892         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
20893         (Expand_Subtype_From_Expr): Do not build actual subtype if the
20894         expression is limited.
20895         (Find_Interface_Tag): Add code to handle class-wide types and
20896         entities from the limited-view.
20897
20898         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
20899         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
20900         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
20901         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
20902         Set_Prim_Op_Kind.
20903
20904         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
20905         of procedure name or prefix that appears as a trigger in a triggering
20906         alternative.
20907
20908         * uintp.ads: Introduce constants Uint_11 and Uint_13.
20909
20910 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
20911
20912         * s-tataat.adb, a-tasatt.adb:
20913         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
20914
20915         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
20916         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
20917         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
20918         longer used.
20919
20920 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
20921             Jose Ruiz  <ruiz@adacore.com>
20922
20923         * s-taprop-vxworks.adb:
20924         Move with clauses outside Warnings Off now that dependent units are
20925         Preelaborate.
20926         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
20927         initialization of this unit.
20928         (Specific): Add new procedures Initialize and Delete so that this
20929         package can be used for VxWorks 5.x and 6.x
20930         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
20931         differences between VxWorks 5.x and 6.x
20932         Minor reformatting.
20933         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
20934         caller.
20935         Use only Preelaborate-compatible constructs.
20936
20937         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
20938         Primitives.Operations.
20939         (Delete, Initialize): New procedures.
20940
20941         * s-osinte-vxworks.adb: Body used to handle differences between
20942         VxWorks 5.x and 6.x
20943         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
20944
20945         * s-osinte-vxworks.ads: Minor reformatting.
20946         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
20947         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
20948         and 6.
20949         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
20950         between Vxworks 5 and 6.
20951         (taskLock, taskUnlock): Removeed, no longer used.
20952
20953         * adaint.c: The wait.h header is not located in the sys directory on
20954         VxWorks when using RTPs.
20955         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
20956         using RTPs.
20957         (__gnat_dup): dup is available on Vxworks when using RTPs.
20958         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
20959
20960         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
20961
20962         * expect.c: The wait.h header is not located in the sys directory on
20963         VxWorks when using RTPs.
20964
20965 2005-09-01  Thomas Quinot  <quinot@adacore.com>
20966
20967         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
20968
20969         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
20970
20971         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
20972         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
20973         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
20974         g-soccon-freebsd.ads: Add new constants:
20975          IP_MULTICAST_IF
20976          SO_RCVTIMEO/SO_SNDTIMEO
20977          IOV_MAX
20978
20979         * gen-soccon.c:
20980         Move all target-specific file inclusions and macro definitions to
20981         gsocket.h, in order to ensure that any C code in socket.c will see a
20982         set of constants that is consistent with the contents of g-soccon.ads.
20983
20984         * gsocket.h: Code imported from gen-soccon.c:
20985         Move all target-specific file inclusions and macro definitions to
20986         gsocket.h, in order to ensure that any C code in socket.c will see a set
20987         of constants that is consistent with the contents of g-soccon.ads.
20988         This change also makes gen-soccon self-contained (removing dependencies
20989         upon GCC internal headers).
20990
20991         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
20992         iovecs at a time.
20993         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
20994
20995         * socket.c: Minor reformatting.
20996
20997 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
20998             Thomas Quinot  <quinot@adacore.com>
20999
21000         * fname-sf.adb, mlib-tgt.ads,
21001         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
21002         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
21003         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
21004         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
21005         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
21006         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
21007         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
21008         makegpr.adb: Remove redundant use_clauses.
21009
21010 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
21011
21012         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
21013         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
21014         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
21015         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
21016         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
21017         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
21018         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
21019         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
21020         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
21021         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
21022         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
21023         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
21024         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
21025         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
21026         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
21027         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
21028         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
21029         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
21030         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
21031         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
21032         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
21033         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
21034         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
21035         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
21036         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
21037         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
21038         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
21039         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
21040         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
21041         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
21042         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
21043         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
21044         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
21045         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
21046         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
21047         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
21048         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
21049         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
21050         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
21051         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
21052         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
21053         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
21054         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
21055         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
21056         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
21057         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
21058         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
21059         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
21060         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
21061         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
21062         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
21063         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
21064         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
21065         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
21066         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
21067         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
21068         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
21069         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
21070         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
21071         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
21072         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
21073         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
21074         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
21075         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
21076         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
21077         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
21078         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
21079         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
21080         and always use the no parameter form for consistency.
21081
21082         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
21083
21084 2005-09-01  Robert Dewar  <dewar@adacore.com>
21085
21086         * binde.adb: Minor reformatting
21087         (Find_Elab_Order): Output warning if -p used with static elab order
21088
21089 2005-09-01  Robert Dewar  <dewar@adacore.com>
21090
21091         * checks.adb (Check_Needed): New procedure, deals with removing checks
21092         based on analysis of short-circuited forms. Also generates warnings for
21093         improper use of non-short-circuited forms.
21094         Code clean ups.
21095
21096 2005-09-01  Robert Dewar  <dewar@adacore.com>
21097
21098         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
21099         with 'Valid tests.
21100
21101 2005-09-01  Robert Dewar  <dewar@adacore.com>
21102
21103         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
21104         spec.
21105         Implement new insertion char < (conditional warning)
21106         * errutil.adb, erroutc.adb: Implement new insertion char <
21107         (conditional warning).
21108         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
21109         (Error_Msg_Warn): New variable for < insertion char.
21110         * prj-nmsc.adb: Implement new errout insertion char < (conditional
21111         warning).
21112         (Check_For_Source): Change value of Source_Id only after the current
21113         source has been dealt with.
21114
21115 2005-09-01  Robert Dewar  <dewar@adacore.com>
21116             Doug Rupp  <rupp@adacore.com>
21117
21118         * exp_attr.adb: Handle vax fpt for 'Valid attribute
21119         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
21120         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
21121         (Valid_D, Valid_F, Valid_G): New functions
21122
21123 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
21124             Hristian Kirtchev  <kirtchev@adacore.com>
21125             Javier Miranda  <miranda@adacore.com>
21126
21127         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
21128         from object notation, the original node is unanalyzed and carries no
21129         semantic information, so that accessiblity checks must be performed on
21130         the type of the actual itself.
21131         (Expand_N_Subprogram_Declaration): Change last actual parameter for
21132         compatibility with Build_Protected_Sub_Specification.
21133         (Check_Overriding_Inherited_Interfaces): Add suport to handle
21134         overloaded primitives.
21135         (Register_Interface_DT_Entry): Use the new name of the formal
21136         the the calls to Expand_Interface_Thunk
21137
21138         * exp_dbug.ads: Augment comments on encoding of protected types to
21139         include the generation of dispatching subprograms when the type
21140         implements at least one interface.
21141
21142         * lib.ads: Extend information in Load_Stack to include whether a given
21143         load comes from a Limited_With_Clause.
21144
21145         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
21146         whether a potential circularity is harmless, because it includes units
21147         loaded through a limited_with clause. Extends previous treatment which
21148         did not handle properly arbitrary combinations of limited and
21149         non-limited clauses.
21150
21151 2005-09-01  Nicolas Setton  <setton@adacore.com>
21152
21153         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
21154         to be encoded as typ___XBLU_lowerbound__upperbound instead of
21155         typ___XB_lowerbound__upperbound.
21156
21157 2005-09-01  Thomas Quinot  <quinot@adacore.com>
21158
21159         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
21160         dummy access formal for RACW/RAS TypeCode TSS.
21161         (Build_TypeCode_Call): Do not generate dummy null access actual for
21162         calls to the TypeCode TSS.
21163
21164 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
21165
21166         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
21167         fully qualified name, to distinguish instances with the same local name.
21168
21169         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
21170         fully qualified.
21171
21172 2005-09-01  Robert Dewar  <dewar@adacore.com>
21173
21174         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
21175         packed arrays.
21176
21177 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
21178
21179         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
21180         (Free): New deallocation procedure for filter elements
21181         (Close): Deallocate any existing filter for the concerned connection
21182
21183 2005-09-01  Laurent Pautet  <pautet@adacore.com>
21184
21185         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
21186         position set is provided, we compute one in order to reduce the maximum
21187         length of the keys.  This computation first selects a character
21188         position between 1 and the minimum length of the keys in order to
21189         avoid reducing one of the keys to an empty string.
21190         (Initialize, Compute): When the ratio V to K is too low, the algorithm
21191         does not converge. The initialization procedure now comes with a
21192         maximum number of iterations such that when exceeded, an exception is
21193         raised in Compute. The user can initialize this ratio to another value
21194         and try again
21195         Reformating and updated headers.
21196
21197 2005-09-01  Javier Miranda  <miranda@adacore.com>
21198
21199         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
21200         that given an entity T creates and returns an Itype that duplicates the
21201         contents of T. The returned Itype has the null-exclusion
21202         attribute set to True, and its Etype attribute references T
21203         to keep the association between the two entities.
21204         Update copyright notice
21205
21206         * sem_aggr.adb (Check_Can_Never_Be_Null,
21207         Aggregate_Constraint_Checks, Resolve_Aggregate,
21208         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
21209
21210         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
21211
21212 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
21213             Robert Dewar  <dewar@adacore.com>
21214             Hristian Kirtchev  <kirtchev@adacore.com>
21215
21216         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
21217         Result_Definition.
21218
21219         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
21220         function specs.
21221         Call Set_Result_Definition instead of Set_Subtype_Mark.
21222         (P_Subprogram_Specification): Add parsing of anonymous access result
21223         plus null exclusions. Call Set_Result_Definition instead of
21224         Set_Subtype_Mark.
21225
21226         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
21227         (P_Access_Type_Definition): Add parsing for an anonymous access result
21228         subtype, plus parsing for null exclusions. Call Set_Result_Definition
21229         instead of Set_Subtype_Mark.
21230
21231         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
21232         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
21233         (Result_Definition): New function for N_Function_Specifications.
21234         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
21235         N_Function_Specification.
21236         (Set_Null_Exclusion_Present): Allow this flag for
21237         N_Function_Specification.
21238         (Set_Result_Definition): New procedure for N_Function_Specifications.
21239         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
21240         and N_Function_Specification.
21241
21242         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
21243         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
21244         Add support for LIMITED NEW for Ada 2005 AI-419
21245         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
21246         syntax for anonymous access results.
21247         Replace Subtype_Mark field by Result_Definition in
21248         N_Function_Specification and N_Access_Definition specs.
21249         Add Null_Exclusion_Present to spec of N_Function_Specification.
21250         (Result_Definition): New function for N_Function_Specification and
21251         N_Access_Function_Definition.
21252         (Set_Result_Definition): New procedure for N_Function_Specification and
21253         N_Access_Function_Definition.
21254
21255         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
21256         Result_Definition for cases of N_Access_Function_Definition and
21257         N_Function_Specification.
21258         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
21259
21260 2005-09-01  Vincent Celier  <celier@adacore.com>
21261
21262         * lib-writ.adb: Update Copyright notice
21263         (Write_With_Lines): On platforms where file names are case-insensitive,
21264         record the file names in lower case.
21265         (Write_ALI): For D lines, on platforms where file names are
21266         case-insensitive, record the file names in lower case.
21267
21268 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
21269             Emmanuel Briot  <briot@adacore.com>
21270
21271         * lib-xref.adb (Output_Overridden_Op): Display information on
21272         overridden operation.
21273
21274         * lib-xref.ads: Add documentation on overridden operations.
21275
21276         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
21277         information.
21278
21279         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
21280         overriding entity information.
21281
21282 2005-09-01  Vincent Celier  <celier@adacore.com>
21283
21284         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
21285         including those that are inherited.
21286
21287 2005-09-01  Robert Dewar  <dewar@adacore.com>
21288
21289         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
21290
21291         * par-prag.adb: Implement new pragma Debug_Policy
21292
21293         * sem_prag.adb Implement new pragma Debug_Policy
21294         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
21295         Component_Size attribute specification. Give warning for ignored pragma
21296         Pack.
21297
21298         * snames.h, snames.ads, snames.adb: Introduce entries in
21299         Preset_Names for Name_Disp_Asynchronous_Select,
21300         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
21301         Name_Disp_Timed_Select.
21302         New pragma Debug_Policy
21303
21304         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
21305         explicitly.
21306         Switch -gnata also sets Debug_Pragmas_Enabled
21307
21308         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
21309         handle an explicit -gnata when compiling predefined files.
21310
21311 2005-09-01  Vincent Celier  <celier@adacore.com>
21312
21313         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
21314         directories of projects that have no Ada sources.
21315
21316 2005-09-01  Robert Dewar  <dewar@adacore.com>
21317
21318         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
21319         (makes a difference for wide characters)
21320
21321         * widechar.adb, widechar.ads:
21322         Add Wide_Char_Byte_Count feature to count chars vs bytes
21323
21324 2005-09-01  Thomas Quinot  <quinot@adacore.com>
21325             Ed Schonberg  <schonberg@adacore.com>
21326             Robert Dewar  <dewar@adacore.com>
21327
21328         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
21329         'Address attribute reference with an overloaded prefix, use the
21330         location of the prefix (not the location of the attribute reference) as
21331         the error location.
21332         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
21333         a function renaming thereof, is a valid prefix for 'Size (where it is
21334         intepreted as a function call).
21335         (Statically_Denotes_Entity): New predicate to determine whether the
21336         prefix of an array attribute can be considered static.
21337
21338         PR ada/9087
21339         (Eval_Attr): Fix failure to evaluate Component_Size for
21340         unconstrained arrays (resulted in wrong value in packed case, since
21341         back end cannot handle this case)
21342
21343 2005-09-01  Robert Dewar  <dewar@adacore.com>
21344
21345         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
21346         error msgs for most common cases.
21347         Use new errout insertion char < (conditional warning)
21348
21349 2005-09-01  Javier Miranda  <miranda@adacore.com>
21350             Ed Schonberg  <schonberg@adacore.com>
21351
21352         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
21353         become local to the whole package.
21354         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
21355         the package was already analyzed the new algorithm "replaces" the
21356         real entities by the shadow ones. This is required to ensure that
21357         the order of these entities in the homonym chains does not change;
21358         otherwise we can have undefined references at linking time because
21359         in case of conflicts the external name of the entities will have
21360         a suffix that depends on the order of the entities in the chain.
21361         (Remove_Limited_With_Clause): Complementary code that completes the
21362         new algorithm and replaces the shadow entities by the real ones.
21363         (Install_Limited_Withed_Unit): When unchaining entities before the
21364         installation of the shadow entities, only regular entities of the
21365         public part must be taken into account. This is required to
21366         keep this routine in synch with the work done by Remove_Limited_
21367         With_Clause
21368         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
21369         even if unit is analyzed, because the analysis of the unit is
21370         idempotent in any case, and the limited view of the unit may have to
21371         be installed for proper visibility.
21372         (Expand_Limited_With_Clause): Even if the unit in the implicit
21373         with_clause has been analyzed already, a limited view of the package
21374         must be built for the current context, if it does not exist yet.
21375
21376 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
21377             Javier Miranda  <miranda@adacore.com>
21378             Gary Dismukes  <dismukes@adacore.com>
21379
21380         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
21381         defining entity for the instance body, make a new defining identifier
21382         rather than copying the entity of the spec, to prevent accidental
21383         sharing of the entity list.
21384         (Check_Private_View): When exchanging views of private types, build the
21385         list of exchanged views as a stack, to ensure that on exit the exchanges
21386         are undone in the proper order.
21387         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
21388         Restore the compilation environment in case of instantiation_error.
21389         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
21390         for an anonymous access result.
21391         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
21392         (Formal_Entity): Handle properly the case of a formal package that
21393         denotes a generic package renaming.
21394
21395 2005-09-01  Thomas Quinot  <quinot@adacore.com>
21396
21397         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
21398         clause if the array aggregate is surrounded by parentheses.
21399
21400 2005-09-01  Cyrille Comar  <comar@adacore.com>
21401             Gary Dismukes  <dismukes@adacore.com>
21402             Ed Schonberg  <schonberg@adacore.com>
21403             Javier Miranda  <miranda@adacore.com>
21404
21405         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
21406         underlying type
21407         to check if a type is Constrained in cases related to code generation
21408         (rather than semantic checking) since otherwise we do not generate
21409         similar code for mutable private types depending if their
21410         discriminants are visible or not.
21411         (Check_Abstract_Overriding): Do not complain about failure to override
21412         the primitive operations used in dispatching selects since they will
21413         always be overriden at the freeze point of the type.
21414         (Access_Definition): Separate out handling for resetting the scope
21415         of an anonymous access function result type. Retrieve the scope
21416         of the associated function rather than using Current_Scope, which
21417         does not have a consistent value (depends on whether we're in the
21418         middle of analyzing formal parameters). Add ??? comment about
21419         finding a cleaner way to handle the special cases of scope setting.
21420         (Process_Incomplete_Dependents): A protected operation is never a
21421         dispatching operation (only its wrapper may be).
21422         (Build_Derived_Record_Type): In case of tagged private types that
21423         implement interfaces add derivation of predefined primitive
21424         operations.
21425         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
21426         by two parameters that are used in case of derivation from abstract
21427         interface types: No_Predefined_Prims is used to avoid the derivation
21428         of predefined primitives from the interface, and Predefined
21429         Prims_Only is used to complete the derivation predefined primitives
21430         in case of private tagged types implementing interfaces.
21431         Fix typo in comments
21432         (Find_Interface_In_Descendant): Protect the frontend against
21433         wrong code with large circularity chains.
21434         (Is_Private_Overriding): Add support for entities overriding interface
21435         subprograms. The test failed because Entities associated with overriden
21436         interface subprograms are always marked as hidden (and used to build
21437         the secondary dispatch table); in this case the overriden entity is
21438         available through the field abstract_interface_alias (cf. override_
21439         dispatching_operation)
21440         (Access_Definition): Set the scope of the type to Current_Scope for the
21441         case of a function with an anonymous access result type.
21442         (Access_Subprogram_Declaration): Handle creation of the type entity for
21443         an access-to-function type with an anonymous access result.
21444         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
21445         in handling for N_Access_Function_Definition.
21446         (Analyze_Subtype_Declaration): Modify the text of error message.
21447         (Derived_Type_Declaration): Modify the text of error message.
21448         (Process_Subtype): Modify the text of error message plus cleanup
21449         of one redundant error message.
21450         (Analyze_Component_Declaration): Code cleanup.
21451         (Analyze_Object_Declaration): Code cleanup.
21452         (Analyze_Subtype_Declaration): Propagate the null-exclusion
21453         attribute in case of access types. Code cleanup.
21454         (Array_Type_Declaration): Code cleanup.
21455         (Process_Discriminants): Create the new null-excluding itype
21456         if required. Code cleanup.
21457         (Process_Subtype): Create the new null-excluding itype if
21458         required. Code cleanup.
21459         (Build_Derived_Record_Type): Code cleanup to avoid calling
21460         twice the subprogram derive_subprograms in case of private
21461         types that implement interfaces. In this particular case the
21462         subprogram Complete_Subprograms_Derivation already does the
21463         job associated with the second call.
21464
21465         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
21466         conversion to the full view when generating an operation for a
21467         discriminant whose type may currently be private.
21468
21469 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
21470             Javier Miranda  <miranda@adacore.com>
21471
21472         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
21473         V (Obj.F), the rewriting does not involve the indexed component, but
21474         only the selected component itself.
21475         Do not apply the transformation if the analyzed node is an actual of a
21476         call to another subprogram.
21477         (Complete_Object_Operation): Retain the entity of the
21478         dispatching operation in the selector of the rewritten node. The
21479         entity will be used in the expansion of dispatching selects.
21480         (Analyze_One_Call): Improve location of the error message associated
21481         with interface.
21482         (Analyze_Selected_Component): No need to resolve prefix when it is a
21483         function call, resolution is done when parent node is resolved, as
21484         usual.
21485         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
21486         when attempting to resolve a call transformed from its object notation.
21487         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
21488         of the argument list for each interpretation of the operation.
21489         (Try_Object_Operation): The designated type of an access parameter may
21490         be an incomplete type obtained through a limited_with clause, in which
21491         case the primitive operations of the type are retrieved from its full
21492         view.
21493         (Analyze_Call): If this is an indirect call, and the return type of the
21494         access_to_subprogram is incomplete, use its full view if available.
21495
21496 2005-09-01  Javier Miranda  <miranda@adacore.com>
21497             Gary Dismukes  <dismukes@adacore.com>
21498
21499         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
21500         access types the null-exclusion and access-to-constant attributes must
21501         also match.
21502         (Analyze_Return_Statement): When the result type is an anonymous access
21503         type, apply a conversion of the return expression to the access type
21504         to ensure that appropriate accessibility checks are performed.
21505         (Analyze_Return_Type): For the case of an anonymous access result type,
21506         generate the Itype and set Is_Local_Anonymous_Access on the type.
21507         Add ??? placeholder for check to disallow returning a limited object
21508         in Ada 2005 unless it's an aggregate or a result of a function call.
21509         Change calls from Subtype_Mark to Result_Definition.
21510         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
21511         Result_Definition in call to Make_Function_Specification.
21512         (Build_Body_To_Inline): Change Set_Subtype_Mark to
21513         Set_Result_Definition.
21514         (Make_Inequality_Operator): Change formal Subtype_Mark to
21515         Result_Definition in call to Make_Function_Specification.
21516         (Process_Formals): Create the new null-excluding itype if required.
21517         (New_Overloaded_Entity): For an entity overriding an interface primitive
21518         check if the entity also covers other abstract subprograms in the same
21519         scope. This is required to handle the general case, that is, overriding
21520         other interface primitives and overriding abstract subprograms inherited
21521         from some abstract ancestor type.
21522         (New_Overloaded_Entity): For an overriding entity that comes from
21523         source, note the operation that it overrides.
21524         (Check_Conformance, Type_Conformant): Addition of one new formal
21525         to skip controlling formals in the analysis. This is used to
21526         handle overloading of abstract interfaces.
21527         (Base_Types_Match): Add missing case for types imported from
21528         limited-with clauses
21529         (New_Overloaded_Entity): Add barrier to protect the use of
21530         the "alias" attribute.
21531
21532 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
21533
21534         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
21535         verify that the procedure and the entry are mode conformant.
21536         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
21537         as a different operator, which is often a cut-and-paste error.
21538
21539 2005-09-01  Javier Miranda  <miranda@adacore.com>
21540             Ed Schonberg  <schonberg@adacore.com>
21541
21542         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
21543         used in controlling parameters exclude null because it is necessary to
21544         read the tag to dispatch, and null has no tag.
21545         (Override_Dispatching_Operation): If the previous operation is inherited
21546         from an interface, it becomes hidden  and does not participate in later
21547         name resolution.
21548
21549 2005-09-01  Javier Miranda  <miranda@adacore.com>
21550             Ed Schonberg  <schonberg@adacore.com>
21551             Gary Dismukes  <dismukes@adacore.com>
21552
21553         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
21554         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
21555         the expander will generate the corresponding run-time check to evaluate
21556         the expression.
21557         (Resolve_Call): Check for legal type of procedure name or prefix that
21558         appears as a trigger in a triggering alternative.
21559         (Valid_Conversion): If expression is ambiguous and the context involves
21560         an extension of System, remove System.Address interpretations.
21561         (Resolve_Qualified_Expression): Reject the case of a specific-type
21562         qualification applied to a class-wide argument. Enhance comment
21563         to explain checking of Original_Node.
21564         (Resolve_Type_Conversion): The location of the error message was not
21565         general enough to handle the general case and hence it has been removed.
21566         In addition, this patch improves the text of the message.
21567         (Resolve_Type_Conversion): Add missing support for access to interface
21568         types.
21569         (Resolve_Type_Conversion): If the target is a class-wide interface type,
21570         do not expand if the expression is the actual in a call, because proper
21571         expansion will take place when the call itself is expanded.
21572         (Resolve_Allocator): If the context is an unchecked conversion, the
21573         allocator inherits its storage pool, if any, from the target type of
21574         the conversion.
21575
21576 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
21577             Javier Miranda  <miranda@adacore.com>
21578
21579         * sem_type.adb (Add_One_Interp): If a candidate operation is an
21580         inherited interface operation that has an implementation, use the
21581         implementation to avoid spurious ambiguities.
21582         (Interface_Present_In_Ancestor): In case of concurrent types we can't
21583         use the Corresponding_Record_Typ attribute to look for the interface
21584         because it is set by the expander (and hence it is not always
21585         available). For this reason we traverse the list of interfaces
21586         (available in the parent of the concurrent type).
21587         (Interface_Present_In_Ancestor): Handle entities from the limited view
21588
21589 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
21590
21591         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
21592         from the list of required components.
21593         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
21594         primitive procedure of a limited interface with a controlling first
21595         parameter.
21596         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
21597         of an entry.
21598         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
21599         capture if it is generated in the second operand of a short-circuit
21600         operation.
21601         Do not capture values for variables with address clauses.
21602         (Is_Object_Reference): Treat a function call as an object reference only
21603         if its type is not Standard_Void_Type.
21604
21605 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
21606
21607         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
21608         to a variable that is statically known to be constant.
21609
21610 2005-09-01  Geert Bosch  <bosch@adacore.com>
21611             Robert Dewar  <dewar@adacore.com>
21612
21613         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
21614         (VAXGF_Safe_First): Idem.
21615
21616 2005-09-01  Robert Dewar  <dewar@adacore.com>
21617             Arnaud Charlet  <charlet@adacore.com>
21618
21619         * g-dirope.ads: Minor reformatting
21620         Document that bounds of result of Base_Name match the input index
21621         positions.
21622         Add documentation on environment variable syntax for Expand_Path
21623
21624         * gnat_ugn.texi: Update documentation to include mention of -m switches
21625         Document new treatment of wide characters in max line length
21626         style check.
21627         Remove -gnatL/-gnatZ switches, no longer used.
21628         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
21629         of -gnata switch.
21630
21631         * gnat_rm.texi: Add doc for two argument form of pragma
21632         Float_Representation.
21633         Add documentation for pragma No_Strict_Aliasing
21634         Add note that explicit component clause overrides pragma Pack.
21635         Add documentation of pragma Debug_Policy
21636
21637 2005-09-01  Matthew Heaney  <heaney@adacore.com>
21638
21639         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
21640         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
21641         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
21642         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
21643         draft (Draft 13, August 2005) of Ada Amendment 1.
21644
21645 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
21646
21647         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
21648         Note that the platform-specific version of g-soccon.ads for VMS is now
21649         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
21650         really is a package spec).
21651         Replace s-taspri-linux.ads by s-taspri-posix.ads
21652         Remove references to s-mastop-x86.adb
21653
21654         * system-vxworks-xscale.ads: Removed, no longer used.
21655         * s-vxwork-xscale.ads: Removed, no longer used.
21656
21657 2005-09-01  Robert Dewar  <dewar@adacore.com>
21658
21659         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
21660         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
21661         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
21662         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
21663         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
21664         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
21665         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
21666         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
21667         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
21668         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
21669         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
21670         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
21671         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
21672         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
21673         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
21674         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
21675         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
21676         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
21677         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
21678         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
21679         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
21680
21681 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
21682
21683         PR ada/23187
21684         * adaint.c
21685         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
21686
21687 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
21688             Doug Rupp  <rupp@adacore.com>
21689
21690         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
21691         when needed.
21692         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
21693         this code in the GNAT run-time.
21694
21695         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
21696
21697         PR ada/21053
21698         * init.c (__gnat_error_handler [many]): Mark "msg" as const
21699         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
21700
21701         (__gnat_inside_elab_final_code): Moved here from
21702         Standard_Library and only defined for the compiler.
21703         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
21704         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
21705         using RTPs because directly vectored Interrupt routines are not
21706         supported on this configuration.
21707         (getpid): Do not redefine this function on VxWorks when using RTPs
21708         because this primitive is well supported by the RTP libraries.
21709         (copy_msg): Correct the code that checks for buffer overflow.
21710         Discovered during code reading.
21711
21712 2005-08-29  Olivier Hainque  <hainque@adacore.com>
21713
21714         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
21715         a library level mutable variable with an initializer, tell
21716         build_allocator to ignore the initializer's size. It may not be large
21717         enough for all the values that might be assigned to the variable later
21718         on.
21719
21720 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
21721             Eric Botcazou  <ebotcazou@adacore.com>
21722
21723         * trans.c: Protect < in error msg with quote
21724         Replace GCC_ZCX by Back_End_Exceptions.
21725         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
21726         has been sufficiently aligned in the record.
21727
21728 2005-08-15  James E. Wilson  <wilson@specifix.com>
21729
21730         * system-linux-alpha.ads: Change ia64 to alpha.
21731
21732 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
21733
21734         * decl.c, utils.c: Fix comment typos.
21735
21736 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
21737
21738         * decl.c, init.c, initialize.c: Fix comment typos.
21739
21740 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
21741
21742         Make CONSTRUCTOR use VEC to store initializers.
21743         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
21744         CONSTRUCTOR_ELTS.
21745         * trans.c (extract_values): Likewise.
21746         * utils.c (convert, remove_conversions): Likewise.
21747         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
21748         gnat_build_constructor): Likewise.
21749
21750 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
21751
21752         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
21753         DECL_SECTION_NAME.
21754         (compare_field_bitpos): Likewise.
21755
21756 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
21757
21758         * utils.c (create_var_decl): Only set DECL_COMMON on
21759         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
21760         VAR_OR_FUNCTION_DECL_P.
21761
21762 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
21763
21764         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
21765         removed.
21766
21767 2005-07-07  Pascal Obry  <obry@adacore.com>
21768
21769         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
21770         returned type on Windows.
21771
21772         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
21773         routine.
21774
21775         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
21776         exception in this case.
21777         Simplify the code as "Image (Image'Range)" = "Image".
21778
21779 2005-07-07  Vincent Celier  <celier@adacore.com>
21780
21781         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
21782         the destructor/constructor attributes for <lib>final/<lib>init.
21783
21784         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
21785
21786 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
21787
21788         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
21789         type if the parameter is not passed by copy but reference by default.
21790
21791 2005-07-07  Javier Miranda  <miranda@adacore.com>
21792
21793         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
21794         Reimplementation of the support for abstract interface types in order
21795         to leave the code more clear and easy to maintain.
21796
21797         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
21798         abstract interface types in order to leave the code clearer and easier
21799         to maintain.
21800
21801         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
21802         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
21803         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
21804         appropriate entry of the secondary dispatch table.
21805         (Make_DT): Add code to inherit the secondary dispatch tables of
21806         the ancestors.
21807
21808         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
21809         implementing both functionalities by means of a common routine, each
21810         routine has its own code.
21811
21812 2005-07-07  Javier Miranda  <miranda@adacore.com>
21813
21814         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
21815
21816         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
21817         types:
21818         --
21819           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
21820         --
21821
21822         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
21823         use of tag incomplete types.
21824
21825         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
21826         give support to tagged incomplete types.
21827
21828         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
21829         expression is a discriminant reference and its type is private, as can
21830         happen within a stream operation for a mutable record, use the full
21831         view of the type to resolve the case alternatives.
21832         (Analyze_Assignment): Check wrong dereference of incomplete types.
21833
21834         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
21835         types.
21836
21837         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
21838         incomplete types.
21839
21840         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
21841         N_Incomplete_Type_Declaration nodes.
21842
21843         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
21844         Tag_Present to give support to tagged incomplete types:
21845         --
21846           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
21847         --
21848
21849 2005-07-07  Olivier Hainque  <hainque@adacore.com>
21850
21851         PR ada/22301
21852         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
21853         definitions for the Unwind wrappers in the compiler case.
21854
21855 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
21856             Javier Miranda  <miranda@adacore.com>
21857
21858         * par-load.adb (Load): If a child unit is loaded through a limited_with
21859         clause, each parent must be loaded as a limited unit as well.
21860
21861         * sem_ch10.adb (Previous_Withed_Unit): Better name for
21862         Check_Withed_Unit. Return true if there is a previous with_clause for
21863         this unit, whether limited or not.
21864         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
21865         the current unit.
21866         (Is_Visible_Through_Renamings): New local subprogram of install_limited
21867         _withed_unit that checks if some package installed through normal with
21868         clauses has a renaming declaration of package whose limited-view is
21869         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
21870         of the current Draft document for Ada 2005.
21871         (Analyze_Context): Complete the list of compilation units that
21872         are allowed to contain limited-with clauses. It also contains
21873         checks that were previously done by Install_Limited_Context_Clauses.
21874         This makes the code more clear and easy to maintain.
21875         (Expand_Limited_With_Clause) It is now a local subprogram of
21876         Install_Limited_Context_Clauses, and contains the code that adds
21877         the implicit limited-with clauses for parents of child units.
21878         This functionality was prevously done by Analyze_Context.
21879
21880         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
21881         incomplete type.
21882
21883         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
21884         been erroneously named in a limited-with clause of its own context.
21885         In this case the error has been previously notified by Analyze_Context.
21886
21887 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
21888
21889         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
21890         generic package that contains local declarations with the same name.
21891         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
21892
21893 2005-07-07  Bernard Banner  <banner@adacore.com>
21894
21895         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
21896         ia64 platform only on platforms that you the GCC unwind library
21897         rather than the system unwind library.
21898
21899 2005-07-07  Thomas Quinot  <quinot@adacore.com>
21900
21901         * expect.c: Minor reformatting
21902
21903 2005-07-07  Sergey Rybin  <rybin@adacore.com>
21904
21905         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
21906         --no-separate-is
21907
21908         * gnat_ugn.texi: Add description for new gnatpp option
21909         (--no-separate-is)
21910
21911 2005-07-04  Thomas Quinot  <quinot@adacore.com>
21912
21913         * g-expect-vms.adb, g-expect.ads, g-expect.adb
21914         (Get_Command_Output): New subprogram to launch a process and get its
21915         standard output as a string.
21916
21917 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
21918             Olivier Hainque  <hainque@adacore.com>
21919
21920         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
21921         fetch a code-range descriptor associated with the machine state. On
21922         failure set the machine state's PC to 0; on success, pass the
21923         descriptor to exc_virtual_unwind.
21924
21925         * init.c (Tru64 section): New function __gnat_set_code_loc.
21926
21927 2005-07-04  Vincent Celier  <celier@adacore.com>
21928
21929         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
21930         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
21931         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
21932         Remove all auto-initialization code, as this is now done through the
21933         constructor mechanism.
21934
21935         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
21936         __gnat_sals_init_using_constructors): New functions.
21937
21938         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
21939         Linker_Constructor and Linker_Destructor when switch -a is used.
21940
21941         * bindusg.adb: Add line for new switch -a
21942
21943         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
21944         (Gnatbind): When switch -a is used, check if it is allowed
21945
21946         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
21947
21948 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
21949
21950         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
21951         This prevents us from hitting a limitation during the debug info
21952         generation when using stabs.
21953         (Prims_Ptr): Likewise.
21954
21955 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
21956             Ed Schonberg  <schonberg@adacore.com>
21957             Javier Miranda  <miranda@adacore.com>
21958
21959         * checks.adb (Null_Exclusion_Static_Checks): In the case of
21960         N_Object_Declaration, only perform the checks if the Object_Definition
21961         is not an Access_Definition.
21962
21963         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
21964         where the parent of an the access definition is an N_Object_Declaration
21965         when determining the Associated_Node_For_Itype and scope of an
21966         anonymous access-to-subprogram type.
21967
21968         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
21969         Corresponding_Spec on the body created for a null procedure. Add ???
21970         comment. Remove New_Copy_Tree call on body argument to
21971         Set_Body_To_Inline.
21972
21973         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
21974         discriminants, use the type of the actual as well, because the
21975         discriminants may be read by the called subprogram.
21976
21977         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
21978         access type we do not need to handle non-limited views.
21979         (Build_Derived_Record_Type): Additional check to check that in case of
21980         private types, interfaces are only allowed in private extensions.
21981
21982 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
21983
21984         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
21985         <Pragma_Linker_Destructor>: Likewise.
21986
21987         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
21988         Pragma_Linker_Destructor.
21989
21990         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
21991         ATTR_LINK_DESTRUCTOR.
21992         (static_ctors, static_dtors): New variables.
21993
21994         * misc.c (gnat_expand_body): Output current function as constructor
21995         and destructor if requested.
21996
21997         * par-prag.adb: Add processing for pragma Linker_Constructor and
21998         Linker_Destructor.
21999
22000         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
22001         extracted from Check_Interrupt_Or_Attach_Handler.
22002         (Check_Interrupt_Or_Attach_Handler): Invoke it.
22003         Implement pragma Linker_Constructor and Linker_Destructor with the
22004         help of Find_Unique_Parameterless_Procedure.
22005         Replace Name_Alias with Name_Target for pragma Linker_Alias.
22006
22007         * snames.h, snames.ads, snames.adb:
22008         Add Name_Linker_Constructor and Name_Linker_Destructor.
22009         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
22010         * snames.adb: Remove Name_Alias.
22011
22012         * trans.c: Include cgraph.h.
22013         (build_global_cdtor): New function.
22014         (Compilation_Unit_to_gnu): Build global constructor and destructor if
22015         needed.
22016         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
22017         of objects too.
22018         (addressable_p) <COMPONENT_REF>: Unconditionally test
22019         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
22020
22021         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
22022         variable if it is external.
22023
22024         (static_ctors, static_dtors): New global variables.
22025         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
22026         <ATTR_LINK_DESTRUCTOR>: Likewise.
22027         (end_subprog_body): Chain function as constructor and destructor
22028         if requested.
22029
22030         * exp_util.adb (Force_Evaluation): Unconditionally invoke
22031         Remove_Side_Effects with Variable_Ref set to true.
22032         (Remove_Side_Effects): Handle scalar types first. Use a renaming
22033         for non-scalar types even if Variable_Ref is true and for class-wide
22034         expressions.
22035
22036 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
22037
22038         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
22039         to prevent spurious warnings.
22040
22041 2005-07-04  Thomas Quinot  <quinot@adacore.com>
22042
22043         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
22044         Itypes. Itypes are really unexpected there.
22045         (Build_TypeCode_Function): Generalise special processing for Itypes to
22046         handle the case of numeric implicit base types as well as enumerated
22047         ones.
22048
22049 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
22050
22051         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
22052         controlled, indicate the expected type of the dereference that is
22053         created for the call to Deep_Finalize, to prevent spurious errors when
22054         the designated type is private and completed with a derivation from
22055         another private type.
22056
22057 2005-07-04  Vincent Celier  <celier@adacore.com>
22058
22059         * make.adb (Change_To_Object_Directory): When unable to change the
22060         current dir to the object directory, output the full path of the
22061         directory.
22062
22063 2005-07-04  Matthew Gingell  <gingell@adacore.com>
22064
22065         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
22066
22067         * indepsw-linux.adb: Replace by...
22068
22069         * indepsw-gnu.adb: ...this new file
22070
22071 2005-07-04  Vincent Celier  <celier@adacore.com>
22072
22073         * mlib-prj.adb (Auto_Initialize): New constant String
22074         (SALs_Use_Constructors): New Boolean function
22075         (Build_Library): Call gnatbind with Auto_Initialize switch when
22076         SALs_Use_Constructors returns True.
22077
22078         * mlib-tgt.ads: Minor reformatting
22079
22080         * mlib-utl.ads: Minor reformatting
22081
22082         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
22083
22084 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
22085
22086         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
22087         single protected declarations can have an interface list.
22088         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
22089         with seriously malformed entry declarations, and lead to compilation
22090         abandoned messages.
22091
22092 2005-07-04  Javier Miranda  <miranda@adacore.com>
22093
22094         * par-load.adb: Load the context items in two rounds.
22095
22096 2005-07-04  Robert Dewar  <dewar@adacore.com>
22097
22098         * scng.adb: Do not consider Mod used as an attribute to be a keyword
22099
22100 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
22101             Javier Miranda  <miranda@adacore.com>
22102
22103         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
22104         type extension needs a limited view.
22105         Remove previous restriction on private types available through the
22106         limited-view (only tagged private types were previously allowed).
22107         (Install_Withed_Unit): In the code that implements the
22108         legality rule given in AI-377, exclude a child unit with the name
22109         Standard, because it is a homonym of the Standard environment package.
22110
22111 2005-07-04  Thomas Quinot  <quinot@adacore.com>
22112
22113         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
22114         overloaded function call, carry interpretations from the original tree
22115         to the copy.
22116
22117 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
22118
22119         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
22120         types check whether some designated type is a limited view, and use
22121         the non-limited view if available.
22122
22123 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
22124
22125         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
22126         constraint of full view of a private view T1 if present, when T2 is a
22127         discriminated full view.
22128
22129 2005-07-04  Thomas Quinot  <quinot@adacore.com>
22130
22131         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
22132         actual that is a view conversion of a bit packed array reference.
22133
22134 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
22135
22136         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
22137         present before checking whether an interface type covers a synchronized
22138         type.
22139
22140 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
22141
22142         * sem_util.adb (Is_Object_Reference): An indexed or selected component
22143         whose prefix is an implicit dereference is an object reference. Removes
22144         spurious errors when compiling with -gnatc.
22145
22146 2005-07-04  Robert Dewar  <dewar@adacore.com>
22147
22148         PR ada/22039
22149         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
22150
22151 2005-07-04  Matthew Gingell  <gingell@adacore.com>
22152
22153         * tracebak.c: Enable tracebacks on ia64 platforms
22154
22155 2005-07-04  Vincent Celier  <celier@adacore.com>
22156
22157         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
22158         the GNAT BIND command, as gnatbind accepts multiples ALI files with
22159         the -L or -n switches.
22160
22161 2005-07-04  Vincent Celier  <celier@adacore.com>
22162
22163         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
22164         correctly computed and the main project data is not modified while
22165         doing so.
22166         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
22167         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
22168         c++linker as this does not work on some platforms.
22169
22170 2005-07-04  Matthew Heaney  <heaney@adacore.com>
22171
22172         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
22173         was changed.
22174         * a-coinve.adb: Perform constraint checks explicitly.
22175
22176 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22177             Thomas Quinot  <quinot@adacore.com>
22178
22179         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
22180         new target gen-soccon.
22181
22182 2005-07-04  Robert Dewar  <dewar@adacore.com>
22183
22184         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
22185
22186 2005-07-04  Thomas Quinot  <quinot@adacore.com>
22187
22188         * g-socket.ads (Check_Selector): Minor rewording of comment.
22189
22190 2005-07-04  Vincent Celier  <celier@adacore.com>
22191
22192         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
22193
22194 2005-07-04  Thomas Quinot  <quinot@adacore.com>
22195
22196         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
22197
22198 2005-07-04  Sergey Rybin  <rybin@adacore.com>
22199
22200         * gnat_ugn.texi: Add description of --eol gnatpp option
22201
22202 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
22203             Thomas Quinot  <quinot@adacore.com>
22204
22205         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
22206         if the user wants all calls of a subprogram to be flagged,
22207         independently of whether they are made from within the same unit or
22208         another unit.
22209         Mention restriction for pragma Linker_Alias on some platforms.
22210         Document pragma Linker_Constructor and Linker_Destructor.
22211         Rewrite documentation of Weak_External, Linker_Section and
22212         Linker_Alias pragmas.
22213
22214 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
22215
22216         * s-stausa.ads, s-stausa.adb: New files.
22217
22218 2005-06-30  Kelley Cook
22219
22220         * all files:  Update FSF address in copyright headers.
22221         * gen-soccon.co (main): Output new FSF address in generated files.
22222
22223 2005-06-28  Paul Brook  <paul@codesourcery.com>
22224
22225         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
22226
22227 2005-06-14  Olivier Hainque  <hainque@adacore.com>
22228             Eric Botcazou  <ebotcazou@adacore.com>
22229
22230         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
22231         exc_unwind, now that we are generating proper .debug_frame output for
22232         that target.
22233
22234         * tracebak.c: Remove the mips-irix section, as we are now using the
22235         s-mastop based unwinder again.
22236         Under SPARC/Solaris, take into account the stack bias to compute the
22237         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
22238         ABI.
22239
22240 2005-06-14  Doug Rupp  <rupp@adacore.com>
22241
22242         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
22243
22244         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
22245
22246 2005-06-14  Pascal Obry  <obry@adacore.com>
22247
22248         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
22249         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
22250         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
22251         package name).
22252
22253         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
22254         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
22255         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
22256         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
22257         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
22258         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
22259         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
22260         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
22261         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
22262         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
22263         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
22264         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
22265         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
22266         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
22267         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
22268         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
22269         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
22270         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
22271         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
22272         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
22273         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
22274         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
22275         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
22276         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
22277         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
22278         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
22279         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
22280         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
22281         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
22282         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
22283         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
22284         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
22285         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
22286         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
22287         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
22288         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
22289         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
22290         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
22291         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
22292         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
22293         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
22294         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
22295         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
22296         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
22297         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
22298         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
22299         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
22300         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
22301         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
22302         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
22303         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
22304         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
22305         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
22306         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
22307         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
22308         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
22309         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
22310         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
22311         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
22312         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
22313         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
22314         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
22315         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
22316         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
22317         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
22318         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
22319         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
22320         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
22321         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
22322         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
22323         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
22324         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
22325         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
22326         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
22327         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
22328         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
22329         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
22330         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
22331         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
22332         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
22333         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
22334         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
22335         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
22336         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
22337         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
22338         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
22339         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
22340         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
22341         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
22342         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
22343         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
22344         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
22345         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
22346         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
22347         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
22348         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
22349         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
22350         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
22351         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
22352         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
22353         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
22354         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
22355         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
22356         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
22357         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
22358         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
22359         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
22360         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
22361         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
22362         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
22363         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
22364         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
22365         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
22366         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
22367         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
22368         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
22369         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
22370         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
22371         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
22372         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
22373         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
22374         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
22375         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
22376         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
22377         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
22378         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
22379         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
22380         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
22381         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
22382         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
22383         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
22384         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
22385         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
22386
22387 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
22388             Arnaud Charlet  <charlet@adacore.com>
22389
22390         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
22391         longer protected objects. They have been replaced by lower-level
22392         suspension objects made up by a mutex and a condition variable (or
22393         their equivalent given a particular OS) plus some internal data to
22394         reflect the state of the suspension object.
22395         (Initialize, Finalize): Add this initialization procedure for
22396         Suspension_Object, which is a controlled type.
22397         (Finalize): Add the finalization procedure for Suspension_Object,
22398         which is a controlled type.
22399
22400         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
22401         Ada.Synchronous_Task_Control because there is no longer a need for a
22402         VxWorks specific version of this package. Target dependencies
22403         has been moved to System.Task_Primitives.Operations.
22404
22405         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
22406         longer needed.
22407         (InitializeCriticalSection, EnterCriticalSection,
22408         LeaveCriticalSection, DeleteCriticalSection): Replace the type
22409         pCriticalSection by an anonymous access type so that we avoid problems
22410         of accessibility to local objects.
22411
22412         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
22413         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
22414         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
22415         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
22416         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
22417         set the environment task mask here.
22418         (Current_State): Add this function that returns the state of the
22419         suspension object.
22420         (Set_False): Add this procedure that sets the state of the suspension
22421         object to False.
22422         (Set_True): Add this procedure that sets the state of the suspension
22423         object to True, releasing the task that was suspended, if any.
22424         (Suspend_Until_True): Add this procedure that blocks the calling task
22425         until the state of the object is True. Program_Error is raised if
22426         another task is already waiting on that suspension object.
22427         (Initialize): Add this procedure for initializing the suspension
22428         object. It initializes the mutex and the condition variable which are
22429         used for synchronization and queuing, and it sets the internal state
22430         to False.
22431         (Finalize): Add this procedure for finalizing the suspension object,
22432         destroying the mutex and the condition variable.
22433
22434         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
22435         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
22436         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
22437         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
22438         which provides a low-level abstraction (using operating system
22439         primitives) for Ada.Synchronous_Task_Control.
22440         This object is made up by a mutex (for ensuring mutual exclusion), a
22441         condition variable (for queuing threads until the condition is
22442         signaled), a Boolean (State) indicating whether the object is open,
22443         and a Boolean (Waiting) reflecting whether there is a task already
22444         suspended on this object.
22445
22446         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
22447         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
22448         s-intman-vms.ads, s-intman-mingw.adb,
22449         (Initialize_Interrupts): Removed, no longer used.
22450
22451         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
22452         (Setup_Interrupt_Mask): New procedure.
22453
22454         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
22455
22456         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
22457
22458         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
22459         this is no longer done in the body of s-taprop
22460         (Server_Task): Explicitely test for Pending_Action in case
22461         System.Parameters.No_Abort is True.
22462
22463         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
22464         is no longer done in the body of s-taprop
22465
22466 2005-06-14  Robert Dewar  <dewar@adacore.com>
22467
22468         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
22469         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
22470         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
22471         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
22472         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
22473         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
22474         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
22475         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
22476         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
22477         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
22478         system-linux-hppa.ads, system-vms_64.ads,
22479         system-vxworks-alpha.ads: Minor comment update for
22480         AI-362 (unit is Pure).
22481
22482         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
22483         Add pragma Pure_05 for AI-362
22484         Make remaining conversion functions obsolescent in Ada 95
22485
22486         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
22487         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
22488         Add entries for a-wichun and a-zchuni
22489         Add a-widcha a-zchara for AI-395
22490         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
22491
22492         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
22493         Add entries for a-wichun.o and a-zchuni.o
22494         Entries for a-widcha.o and a-zchara.o
22495         Add entry for a-chacon.o
22496
22497         * a-ztenau.adb: Add with of Ada.Characters.Conversions
22498
22499         * a-chacon.ads, a-chacon.adb: New files.
22500
22501         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
22502         categorization violations.
22503
22504         * a-strmap.ads: Add pragma Pure_05 for AI-362
22505         * a-strmap.ads: Add note on implicit categorization for AI-362
22506
22507         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
22508
22509         * par-prag.adb: Dummy entry for pragma Persistent_BSS
22510         Set Ada_Version_Explicit, for implementation of AI-362
22511         Add processing for pragma Pure_05 and Preelaborate_05
22512         Add entry for Assertion_Policy pragma
22513
22514         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
22515         when needed for proper processing of categorization stuff
22516
22517         * sem_cat.adb:
22518         For several cases, make errors in preealborate units warnings,
22519         instead of errors, if GNAT_Mode is set. For AI-362.
22520
22521         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
22522         preelaborate unit is now warning if in GNAT mode
22523
22524         * s-stoele.ads: Document AI-362 for pragma preelaborate
22525
22526 2005-06-14  Doug Rupp  <rupp@adacore.com>
22527
22528         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
22529         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
22530         Default_Exception_Msg_Max_Length: new parameter.
22531
22532         * a-except.ads: (Exception_Msg_Max_Length): Set to
22533         System.Parameters.Default_Exception_Msg_Max_Length
22534         Add pragma Preelaborate_05 for AI-362
22535         Add warnings off to allow categorization violations for AI-362
22536
22537 2005-06-14  Vincent Celier  <celier@adacore.com>
22538
22539         * gnatsym.adb: Adapt to modification of package Symbols: procedure
22540         Process is now in package Processing.
22541
22542         * symbols.ads, symbols.adb:
22543         (Processing): New package, containing procedure Process
22544
22545         * symbols-vms-alpha.adb:
22546         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
22547
22548         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
22549         symbols-processing-vms-ia64.adb: New files.
22550
22551 2005-06-14  Pascal Obry  <obry@adacore.com>
22552
22553         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
22554         implementation. This new version generates the proper DllMain routine
22555         to initialize the SAL. The DllMain is generated in Ada and compiled
22556         before being added as option to the library build command.
22557
22558 2005-06-14  Doug Rupp  <rupp@adacore.com>
22559             Pascal Obry  <obry@adacore.com>
22560
22561         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
22562         call to decc$translate_vms.
22563         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
22564         need to remove those quotes before catenating the filename.
22565         (__gnat_locate_exec_on_path): improvements to the Win32 section:
22566         * avoid allocating the memory twice for better efficiency;
22567         * allocate 32K buffer for environment expansion as suggested by MSDN;
22568         * prepend ".;" to the path so that current directory is searched too.
22569
22570 2005-06-14  Robert Dewar  <dewar@adacore.com>
22571
22572         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
22573         instead of raising CE (AI-241)
22574         Add warnings off to allow categorization violations for AI-362
22575
22576 2005-06-14  Robert Dewar  <dewar@adacore.com>
22577
22578         * ali-util.adb, gnatbind.adb: Remove references to
22579         Force_RM_Elaboration_Order.
22580
22581         * switch-b.adb: Remove recognition of -f switch
22582
22583 2005-06-14  Pascal Obry  <obry@adacore.com>
22584
22585         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
22586         implementation which is slightly more efficient.
22587
22588 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
22589             Javier Miranda  <miranda@adacore.com>
22590             Ed Schonberg  <schonberg@adacore.com>
22591             Hristian Kirtchev  <kirtchev@adacore.com>
22592
22593         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
22594         allocator's designated type is a class-wide type, and compiling for
22595         Ada 2005, emit a run-time check that the accessibility level of the
22596         type given in the allocator's expression is not deeper than the level
22597         of the allocator's access type.
22598
22599         (Tagged_Membership): Modified to gives support to abstract interface
22600         types.
22601
22602         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
22603         Access_Level.
22604         (Descendant_Tag): New predefined function
22605         (Is_Descendant_At_Same_Level): New predefined function
22606         (Get_Access_Level): New private function
22607         (Set_Access_Level): New private procedure
22608         (IW_Membership): New function. Given the tag of an object and the tag
22609         associated with an interface, evaluate if the object implements the
22610         interface.
22611         (Register_Interface_Tag): New procedure used to initialize the table of
22612         interfaces used by the IW_Membership function.
22613         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
22614         of the dispatch table.
22615         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
22616         table of interfaces of the parent.
22617         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
22618         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
22619         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
22620         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
22621         Ada 2005 semantics for the new predefined function.
22622
22623         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
22624         call to Descendant_Tag rather than Internal_Tag.
22625         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
22626         the accessibility level of the attribute's Item parameter is not deeper
22627         than the level of the attribute's prefix type. Tag_Error is raised if
22628         the check fails. The check is only emitted for Ada_05.
22629         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
22630         requested stream attribute, use it.
22631         (Expand_N_Attribute_Reference): If the designated type is an interface
22632         then rewrite the referenced object as a conversion to force the
22633         displacement of the pointer to the secondary dispatch table.
22634         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
22635         is a dereference of an object with a constrained partial view.
22636
22637         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
22638         type is a class-wide type, emit a run-time check that the accessibility
22639         level of the returned object is not deeper than the level of the
22640         function's master (only when compiling for Ada 2005).
22641
22642         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
22643         Action_Nb_Arg): Add entries for new Get_Access_Level and
22644         Set_Access_Level routines in these tables.
22645         (Make_DT): Generate a call to set the accessibility level of the
22646         tagged type in its TSD.
22647         (Make_DT): Code cleanup. The functionality of generating all the
22648         secondary dispatch tables has been moved to freeze_record_type.
22649         (Make_Abstract_Interface_DT): Minor code cleanup.
22650         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
22651         this subprogram implements a new algorithm that provides the
22652         same functionality and it is more clear in case of primitives
22653         associated with abstract interfaces.
22654         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
22655         clean up, the functionality of this subprogram is now provided
22656         by Set_All_DT_Position.
22657         (Write_DT): New subprogram: a debugging procedure designed to be called
22658         within gdb to display the dispatch tables associated with a tagged
22659         type.
22660         (Collect_All_Interfaces): New subprogram that collects the whole list
22661         of interfaces that are directly or indirectly implemented by a tagged
22662         type.
22663         (Default_Prim_Op_Position): New subprogram that returns the fixed
22664         position in the dispatch table of the default primitive operations.
22665         (Expand_Interface_Actuals): New subprogram to generate code that
22666         displaces all the actuals corresponding to class-wide interfaces to
22667         reference the interface tag of the actual object.
22668         (Expand_Interface_Conversion): New subprogram. Reference the base of
22669         the object to give access to the interface tag associated with the
22670         secondary dispatch table.
22671         (Expand_Interface_Thunk): New subprogram that generates the code of the
22672         thunk. This is required for compatibility with the C+ ABI.
22673         (Make_Abstract_Interface_DT): New subprogram that generate the
22674         declarations for the secondary dispatch tables associated with an
22675         abstract interface.
22676         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
22677         attribute for each primitive operation covering interface subprograms
22678         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
22679         These subprograms were upgraded to give support to abstract interfaces
22680
22681         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
22682         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
22683         RE_Set_Access_Level.
22684         (RE_Unit_Table): Add entries for new Ada.Tags operations.
22685         Add support to call the followig new run-time subprograms:
22686         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
22687
22688         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
22689         match its full declaration when both have an access definition with
22690         statically matching designated subtypes.
22691         (Analyze_Component_Declaration): Delete commented out code that was
22692         incorrectly setting the scope of an anonymous access component's type.
22693         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
22694         an access discriminant when the containing type is nonlimited.
22695         (Make_Incomplete_Type_Declaration): Create an incomplete type
22696         declaration for a record type that includes self-referential access
22697         components.
22698         (Check_Anonymous_Access_Types): Before full analysis of a record type
22699         declaration, create anonymous access types for each self-referential
22700         access component.
22701         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
22702         an access component in this context is a Local_Anonymous_Access, for
22703         proper accessibility checks.
22704         (Access_Definition): Set properly the scope of the anonymous access type
22705         created for a stand-alone access object.
22706         (Find_Type_Of_Object): An object declaration may be given with an access
22707         definition.
22708         (Complete_Subprograms_Derivation): New subprogram used to complete
22709         type derivation of private tagged types implementing interfaces.
22710         In this case some interface primitives may have been overriden
22711         with the partial-view and, instead of re-calculating them, they
22712         are included in the list of primitive operations of the full-view.
22713         (Build_Derived_Record_Type): Modified to give support to private
22714         types implemening interfaces.
22715         (Access_Definition): Reject ALL on anonymous access types.
22716         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
22717         type derivation to occur at a deeper accessibility level than the
22718         parent type.
22719         For the case of derivation within a generic body however, disallow the
22720         derivation if the derived type has an ancestor that is a formal type
22721         declared in the formal part of an enclosing generic.
22722         (Analyze_Object_Declaration): For protected objects, remove the check
22723         that they cannot contain interrupt handlers if not declared at library
22724         level.
22725         (Add_Interface_Tag_Components): New subprogram to add the tag components
22726         corresponding to all the abstract interface types implemented by a
22727         record type or a derived record type.
22728         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
22729         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
22730         Process_Full_View, Record_Type_Declaration): Modified to give
22731         support to abstract interface types
22732         (Collect_Interfaces): New subprogram that collects the list of
22733         interfaces that are not already implemented by the ancestors
22734         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
22735         when partial view has no discriminants and full view has defaults.
22736         (Constrain_Access): Reject a constraint on a general access type
22737         if the discriminants of the designated type have defaults.
22738         (Access_Subprogram_Declaration): Associate the Itype node with the inner
22739         full-type declaration or subprogram spec. This is required to handle
22740         nested anonymous declarations.
22741         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
22742         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
22743         Process_Full_View, Record_Type_Declaration): Modified to give
22744         support to abstract interface types
22745         (Derive_Subprograms): Addition of a new formal to indicate if
22746         we are in the case of an abstact-interface derivation
22747         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
22748         to the specification because it is requied to analyze all the
22749         identifiers found in a list of interfaces
22750
22751         * debug.adb: Complete documentation of flag "-gnatdZ"
22752
22753         * exp_ch3.adb: Implement config version of persistent_bss pragma
22754         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
22755         testing for TSS presence to properly enforce visibility rules.
22756         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
22757         Make_Abstract_Interfaces_DT to generate the secondary tables
22758         associated with abstract interfaces.
22759         (Build_Init_Procedure): Modified to initialize all the tags
22760         corresponding.
22761         (Component_Needs_Simple_Initialization): Similar to other tags,
22762         interface tags do not need initialization.
22763         (Freeze_Record_Type): Modified to give support to abstract interface
22764         types.
22765         (Expand_N_Object_Declaration): Do not generate an initialization for
22766         a scalar temporary marked as internal.
22767
22768         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
22769         in-out parameter that is a component in an initialization procedure,
22770         whose constraint might depend on discriminants, and that may be
22771         misaligned because of packing or representation clauses.
22772         (Is_Legal_Copy): New predicate to determine whether a possibly
22773         misaligned in-out actual can actually be passed by copy/return. This
22774         is an error in case the type is by_reference, and a warning if this is
22775         the consequence of a DEC import pragma on the subprogram.
22776         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
22777         interface types
22778         (Expand_Inlined_Call): Mark temporary generated for the return value as
22779         internal, so that no useless scalar normalization is generated for it.
22780         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
22781         null procedure can always be inlined.
22782         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
22783         procedure, generate an explicit empty body for it.
22784
22785         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
22786         Given a type implementing an interface, returns the corresponding
22787         access_disp_table value.
22788         (Find_Interface_Tag): New subprogram. Given a type implementing an
22789         interface, returns the record component containing the tag of the
22790         interface.
22791         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
22792         previous ones that return the corresponding tag and access_disp_table
22793         entities.
22794         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
22795         is a predefined primitive operation.
22796         (Expand_Subtype_From_Expr): If the expression is a selected component
22797         within an initialization procedure, compute its actual subtype, because
22798         the component may depend on the discriminants of the enclosing record.
22799
22800         * i-cpp.ads, i-cpp.adb:
22801         This package has been left available for compatibility with previous
22802         versions of the frontend. As part of the new layout this is now a
22803         dummy package that uses declarations available at a-tags.ads
22804
22805         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
22806         "constant access" and "aliased [constant] access" when not compiling
22807         with -gnat05.
22808         Suppress Ada 2005 keyword warning if -gnatwY used
22809         (P_Identifier_Declarations): Add support for object declarations with
22810         access definitions.
22811         (Private_Extension_Declaration): Complete the documentation
22812         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
22813         attribute in case of private extension declaration
22814         (P_Type_Declaration): Mark as "abstract" the type declarations
22815         corresponding with protected, synchronized and task interfaces
22816         (P_Declarative_Items): "not" and "overriding" are overriding indicators
22817         for a subprogram or instance declaration.
22818
22819         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
22820         instantiation that is a dispatching operation has controlling access
22821         parameters that are null excluding.
22822         Save and restore Ada_Version_Explicit, for implementation of AI-362
22823         (Validate_Derived_Type_Instance): Add check for abstract interface
22824         types.
22825         (Analyze_Formal_Package): Establish Instantiation source for the copy of
22826         the generic that is created to represent the formal package.
22827         (Analyze_Package_Instantiation): Instantiate body immediately if the
22828         package is a predefined unit that contains inlined subprograms, and
22829         we are compiling for a Configurable_Run_Time.
22830         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
22831         If the program has a null default, generate an empty body for it.
22832
22833         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
22834         error message condition, null procedures are correctly detected now.
22835         (New_Overloaded_Entity): Bypass trivial overriding indicator check
22836         for subprograms in the context of protected types. Instead, the
22837         indicator is examined in Sem_Ch9 while analysing the subprogram
22838         declaration.
22839         (Check_Overriding_Indicator): Check consistency of overriding indicator
22840         on subprogram stubs as well.
22841         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
22842         the library level.
22843         (Analize_Subprogram_Specification): When analyzing a subprogram in which
22844         the type of the first formal is a concurrent type, replace this type
22845         by the corresponding record type.
22846         (Analyze_Subprogram_Body): Undo the previous work.
22847         (Analyze_Procedure_Call): If the call has the form Object.Op, the
22848         analysis of the prefix ends up analyzing the call itself, after which
22849         we are done.
22850         (Has_Interface_Formals): New subprogram subsidiary to analyze
22851         subprogram_specification that returns true if some non
22852         class-wide interface subprogram is found
22853         (New_Overloaded_Entity): Modified to give support to abstract
22854         interface types
22855         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
22856         access to subprograms must be recursive.
22857         (Is_Unchecked_Conversion): Improve the test that recognizes
22858         instantiations of Unchecked_Conversion, and allows them in bodies that
22859         are to be inlined by the front-end. When the body comes from an
22860         instantiation, a reference to Unchecked_Conversion will be an
22861         Expanded_Name, even though the body has not been analyzed yet.
22862         Replace Is_Overriding and Not_Overriding in subprogram_indication with
22863         Must_Override and Must_Not_Override, to better express intent of AI.
22864         (Analyze_Subprogram_Body): If an overriding indicator is given, check
22865         that it is consistent with the overrinding status of the subprogram
22866         at this point.
22867         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
22868         always inlined.
22869         If the subprogram is a null procedure, indicate that it does not need
22870         a completion.
22871
22872         * sem_disp.adb (Check_Controlling_Type): Give support to entities
22873         available through limited-with clauses.
22874         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
22875         allowed as the last primitive of a tagged type if it has no previous
22876         spec.
22877         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
22878         to give support to abstract interface types
22879
22880         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
22881         in the case where the target type is an anonymous access type of an
22882         object or component (that is, when Is_Local_Anonymous_Access is true).
22883         Prevent the special checks for conversions of access discriminants in
22884         the case where the discriminant belongs to a nonlimited type, since
22885         such discriminants have their accessibility level defined in the same
22886         way as a normal component of an anonymous access type.
22887         (Resolve_Allocator): When an allocator's designated type is a class-wide
22888         type, check that the accessibility level of type given in the
22889         allocator's expression or subtype indication is not statically deeper
22890         than the level of the allocator's access type.
22891         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
22892         name in a discriminant constraint of a record component.
22893         (Resolve_Explicit_Dereference): Do not check whether the type is
22894         incomplete when the dereference is a use of an access discriminant in
22895         an initialization procedure.
22896         (Resolve_Type_Conversion): Handle conversions to abstract interface
22897         types.
22898         (Valid_Tagged_Conversion): The conversion of a tagged type to an
22899         abstract interface type is always valid.
22900         (Valid_Conversion): Modified to give support to abstract interface types
22901         (Resolve_Actuals): Enable full error reporting on view conversions
22902         between unrelated by_reference array types.
22903         The rule for view conversions of arrays with aliased components is
22904         weakened in Ada 2005.
22905         Call to obsolescent subprogram is now considered to be a violation of
22906         pragma Restrictions (No_Obsolescent_Features).
22907         (Check_Direct_Boolean_Operator): If the boolean operation has been
22908         constant-folded, there is nothing to check.
22909         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
22910         check on possible violation of restriction No_Direct_Boolean_Operators
22911         until after expansion of operands, to prevent spurious errors when
22912         operation is constant-folded.
22913
22914         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
22915         Has_Compatible_Type): Modified to give support to abstract interface
22916         types.
22917         (Interface_Present_In_Ancestor): New function to theck if some ancestor
22918         of a given type implements a given interface
22919
22920         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
22921         prefix is a parameterless function that returns an access_to_procedure.
22922         (Transform_Object_Operation): Handle properly function calls of the
22923         form Obj.Op (X), which prior to analysis appear as indexed components.
22924         (Analyze_One_Call): Complete the error notification to help new Ada
22925         2005 users.
22926         (Analyze_Allocator): For an allocator without an initial value, where
22927         the designated type has a constrained partial view, a discriminant
22928         constraint is illegal.
22929
22930 2005-06-14  Robert Dewar  <dewar@adacore.com>
22931
22932         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
22933         do with treatment of Set_Col when positioned at end of line character.
22934
22935 2005-06-14  Robert Dewar  <dewar@adacore.com>
22936
22937         * atree.adb: (Elist*): Protect against uninitialized field
22938
22939 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
22940
22941         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
22942         for an attribute reference that returns an access type.
22943         (Apply_Discriminant_Check): No need for check if (designated) type has
22944         constrained partial view.
22945
22946         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
22947         both bound checks, rather than a conjunction.
22948         (Insert_Valid_Check): If the expression is an actual that is an indexed
22949         component of a bit-packed array, force expansion of the packed element
22950         reference, because it is specifically inhibited elsewhere.
22951
22952 2005-06-14  Vincent Celier  <celier@adacore.com>
22953
22954         * clean.adb (Clean_Project): Correctly delete executable specified as
22955         absolute path names.
22956
22957         * make.adb (Gnatmake): Allow relative executable path names with
22958         directory information even when project files are used.
22959         (Change_To_Object_Directory): Fail gracefully when unable to change
22960         current working directory to object directory of a project.
22961         (Gnatmake): Remove exception handler that could no longer be exercized
22962         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
22963         may be deallocated by Normalize_Arguments.
22964         (Collect_Arguments): Eliminate empty arguments
22965
22966         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
22967         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
22968         (Check_Project): Return False when Project is No_Project. Return True
22969         when All_Projects is True.
22970         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
22971         All_Projects to True.
22972         Minor reformatting
22973
22974 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
22975             Javier Miranda  <miranda@adacore.com>
22976             Thomas Quinot  <quinot@adacore.com>
22977             Robert Dewar  <dewar@adacore.com>
22978             Hristian Kirtchev  <kirtchev@adacore.com>
22979             Gary Dismukes  <dismukes@adacore.com>
22980
22981         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
22982         anonymous access types, to indicate that the accessibility level of
22983         the type is determined by that of the enclosing declaration.
22984         (Has_Persistent_BSS): New flag
22985         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
22986         of this attribute with functions.
22987         (Is_Primitive_Wrapper): Remove the barrier.
22988         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
22989         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
22990         New subprograms.
22991         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
22992         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
22993         New subprograms.
22994         (Is_Pure_Unit_Access_Type): New flag
22995         (Abstract_Interfaces): Complete the assertion to cover all usages.
22996         (Set_Is_Interface): Complete the assertion to cover all usages.
22997         (Is_Primitive_Wrapper): New attribute.
22998         (Is_Obsolescent): Now applies to all entities (though it is only set
22999         for subprograms currently)
23000         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
23001         which solves various problems concerning access subtypes.
23002         (Has_Persistent_BSS): New flag
23003         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
23004         Remove these subprograms because this attribute is currently
23005         not used.
23006         New entity flags:
23007         Has_Specified_Stream_Input (Flag190)
23008         Has_Specified_Stream_Output (Flag191)
23009         Has_Specified_Stream_Read (Flag192)
23010         Has_Specified_Stream_Write (Flag193)
23011         Present in all type and subtype entities. Set for a given view if the
23012         corresponding stream-oriented attribute has been defined by an
23013         attribute definition clause. When such a clause occurs, a TSS is set
23014         on the underlying full view; the flags are used to track visibility of
23015         the attribute definition clause for partial or incomplete views.
23016         (Is_Pure_Unit_Access_Type): New flag
23017         Clarify use of Is_Internal.
23018         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
23019         internally generated to wrap the invocation of tasks and protected
23020         types that implement interfaces.
23021         (Implementation_Base_Type): Documentation correction
23022         (Is_Obsolescent): Now applies to all entities (though it is only set
23023         for subprograms currently)
23024         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
23025         which solves various problems concerning access subtypes.
23026
23027         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
23028         for examined parameters. Identify unequal parameter list lengths as
23029         non-conformant parameters.
23030         (Overriding_Possible): Do not check for "All" qualifier in declaration
23031         of controlling access parameter, following prescription of AI-404.
23032         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
23033         that build the procedure body that wraps an entry invocation
23034         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
23035         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
23036         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
23037         give support to abstract interface types
23038
23039         * freeze.adb (Freeze_Entity): Issue error message if
23040         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
23041         type has no storage pool (Ada 2005) AI-366.
23042         Also modified to give support to abstract interface types
23043         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
23044         Inline_Always pragma.
23045
23046         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
23047         now begin an entry declaration.
23048         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
23049         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
23050         a subprogram declaration preceded by an overriding indicator.
23051         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
23052         declarations or subprogram declarations preceded by reserved words
23053         "not" or "overriding".
23054         (P_Entry_Declaration): Update comment. Parse and check overriding
23055         indicator, set semantic flags of entry declarations.
23056         (P_Task): New error message in case of private applied
23057         to a task type declaration.
23058         (P_Protected): New error message in case of private applied
23059         to a task type declaration.
23060
23061         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
23062         in which the full view of a type implementing an interface is a
23063         concurrent type.
23064         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
23065         Declare_Inherited_Private_Subprograms): If an explicit operation
23066         overrides an operation that is inherited in the private part, mark the
23067         explicit one as overriding, to enable overriding indicator checks.
23068         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
23069         full view to partial view, to simplify handling in back-end.
23070
23071         * sprint.adb: Print interface lists where needed: derived types,
23072         protected types, task types.
23073         output "is null" for null procedures. Part of implementation of
23074
23075         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
23076         relaxation of rules for access types in pure, shared passive partitions.
23077
23078         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
23079         first read discriminants into temporary objects, performing checks on
23080         the read values, then possibly performing discriminant checks on the
23081         actual (if it is constrained), and only finally reading the components
23082         into a constrained temporary object.
23083         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
23084         case of reading discriminants of a mutable record type to recognize
23085         the new form of the code generated by
23086         Build_Mutable_Record_Read_Procedure.
23087
23088         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
23089         of a simple call to Make_TSS_Name.
23090         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
23091         buffer, in order for Is_TSS to work correctly on local TSS names.
23092
23093         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
23094         Is_Local_Anonymous_Access to check legaliy of attributes in the
23095         context of  access components and stand-alone access objects.
23096         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
23097         treated as available for a limited private type if there is an
23098         attribute_definition_clause that applies to its full view, but not in
23099         other cases where the attribute is available for the full view
23100         (specifically, the sole fact that the full view is non-limited does not
23101         make the attribute available for the partial view).
23102         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
23103         non-overloaded intrinsic subprogram.
23104         (Check_Stream_Attribute): Reject an attribute reference for an
23105         unavailable stream attribute even if the prefix is not a limited type
23106         (case of a 'Input attribute reference for an abstract, non-classwide
23107         type)
23108         (Stream_Attribute_Available): New function to determine whether a stream
23109         attribute is available at a place.
23110         (Check_Attribute): Use Stream_Attribute_Available instead of just
23111         testing for TSS presence on the implementation base type.
23112         (Analyze_Attribute): Modified to give support to task interfaces.
23113         (Analyze_Access_Attribute): Add error check for use of an Access (or
23114         Unrestricted_Access) attribute with a subprogram marked as
23115         Inline_Always.
23116         (Analyze_Attribute, case Attribute_Address): Add error check for use of
23117         an Address attribute with a subprogram marked as Inline_Always.
23118         Update Eval_Attribute to handle new value of Width from AI-395
23119
23120         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
23121         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
23122         Factor common code across the stream-oriented attribute circcuits into
23123         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
23124         processing is functionally identical to the previous duplicated one,
23125         except that an expression that denotes an abstract subprogram will now
23126         be rejected, as mandated by AI-195 item 5.
23127
23128         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
23129         Is_Local_Anonymous_Access to apply accessibility checks to access
23130         components and stand-alone access objects.
23131         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
23132         elsewhere.
23133         (Is_Potentially_Persistent_Type): New function
23134         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
23135         a heap-object whose type has a constrained partial view, the object is
23136         unconstrained and the component may depend on a discriminant, making its
23137         renaming illegal.
23138
23139         * sinfo.ads, sinfo.adb
23140         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
23141         (Must_Override): Flag applicable to N_Entry_Declaration.
23142         Indicate that interface_list can appear in single task and single
23143         protected declarations.
23144         Replace Is_Overriding and Not_Overriding with Must_Override and
23145         Must_Not_Override, to better express intent of AI.
23146         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
23147         of an overriding indicator in a subprogram or instance.
23148         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
23149         Add the overriding indicator [[not] overriding] construct to the
23150         following grammar productions:
23151          ENTRY_DECLARATION
23152          GENERIC_INSTANTIATION
23153          SUBPROGRAM_SPECIFICATION
23154
23155         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
23156         can start with an overriding indicator.
23157
23158         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
23159         flags accordingly on subrogram specifications or instances.
23160
23161         * sem_ch8.adb:
23162         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
23163         overriding_indicator, if present, is consistent with status of spec.
23164         Improve error message for null-excluding checks on controlling access
23165         parameters.
23166         (Check_In_Previous_With_Clause): Protect the frontend against
23167         previously reported critical errors in the context clauses.
23168         Save and restore Ada_Version_Explicit, for implementation of AI-362
23169         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
23170         operation verify that controlling formals of the renamed entity that
23171         are access parameters are explicitly non-null.
23172         (Find_Expanded_Name): Improve error message when prefix is an illegal
23173         reference to a private child unit.
23174
23175         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
23176         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
23177         Rewrite to correspond to new wide character names in AI-395
23178
23179         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
23180         default procedures.
23181
23182 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
23183             Robert Dewar  <dewar@adacore.com>
23184
23185         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
23186         code, not on the bodies of predefined operations, to cut down on
23187         spurious noise.
23188
23189 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
23190
23191         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
23192         be expanded in place. The size computation does not require a
23193         subtraction, which would raise an exception on a compiler built with
23194         assertions when the upper bound is Integer'first.
23195         (Flatten): For an array of composite components, take into account the
23196         size of the components to determine whether it is safe to expand the
23197         array into a purely positional representation.
23198
23199 2005-06-14  Thomas Quinot  <quinot@adacore.com>
23200
23201         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
23202         denoting a formal parameter into account.
23203
23204 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
23205
23206         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
23207         the entry_call alternative of a conditional entry call, wrap the
23208         conditional entry call itself.
23209
23210 2005-06-14  Nicolas Setton  <setton@adacore.com>
23211             Ed Schonberg  <schonberg@adacore.com>
23212
23213         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
23214         the "simple_choice" member in a variant record, in accordance with the
23215         description in the package spec: the information output for a constant
23216         should be "S number", not "SS number".
23217         (Get_Encoded_Name): Return at once if not generating code. Avoids name
23218         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
23219
23220 2005-06-14  Thomas Quinot  <quinot@adacore.com>
23221
23222         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
23223         RACW without any primitives, do not generate the if statement for
23224         dispatching by name in the PolyORB/DSA case, as it would be malformed
23225         (it would have an Elsif_Parts list that is not No_List, but with a
23226         length of 0).
23227
23228 2005-06-14  Robert Dewar  <dewar@adacore.com>
23229
23230         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
23231
23232 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
23233
23234         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
23235         can determine whether pragma Suppress_Exception_Locations is in effect.
23236
23237         * utils2.c (build_call_raise): Do not pass the file name to the
23238         exception handler if pragma Suppress_Exception_Locations is in effect.
23239         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
23240
23241 2005-06-14  Emmanuel Briot  <briot@adacore.com>
23242
23243         * g-debpoo.adb (Deallocate, Dereference): Improve output.
23244
23245 2005-06-14  Nicolas Roche  <roche@adacore.com>
23246
23247         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
23248         to ""
23249         (Next_Level): Fix minor bug in handling of ../dir case
23250         (Read): Add dir separator to Directory name so that "" is understood as
23251          "/"
23252
23253 2005-06-14  Pascal Obry  <obry@adacore.com>
23254
23255         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
23256         releasing the items.
23257
23258 2005-06-14  Vincent Celier  <celier@adacore.com>
23259             Cyrille Comar  <comar@adacore.com>
23260
23261         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
23262         with output file descriptor and with output file name.
23263         (Dup, Dup2): Now global procedures as they are used by two subprograms
23264         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
23265
23266 2005-06-14  Thomas Quinot  <quinot@adacore.com>
23267
23268         PR ada/6717
23269         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
23270         broadcast address.
23271         (Create_Selector): Bind listening socket used to create the signalling
23272         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
23273         Set listen backlog to 1 to ensure that we detect socket theft by a
23274         failure of our own connect(2) call.
23275         (Check_Selector): Improve documentation of the selector mechanism.
23276         (Broadcast_Inet_Addr): New constant.
23277
23278 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
23279
23280         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
23281         type which turns out to be an incomplete and incorrect fix.
23282         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
23283         of the type is declared in a record (for determination of insertion
23284         type).
23285         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
23286         a private type and ensure that the primary entity is used for the type
23287         of the newly created function's V formal by taking the Etype of the
23288         view.
23289
23290 2005-06-14  Javier Miranda  <miranda@adacore.com>
23291             Jose Ruiz  <ruiz@adacore.com>
23292             Robert Dewar  <dewar@adacore.com>
23293             Ed Schonberg  <schonberg@adacore.com>
23294
23295         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
23296         that indicates if we are parsing a compilation unit found in a
23297         limited-with clause.
23298         It is use to avoid the circularity check.
23299
23300         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
23301         we are parsing a compilation unit found in a limited-with clause. This
23302         is use to avoid the circularity check.
23303
23304         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
23305         unit as a consequence of parsing a limited-with clause. This is used
23306         to avoid the circularity check.
23307
23308         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
23309         (Analyze_Context): Limited-with clauses are now allowed
23310         in more compilation units.
23311         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
23312         againts previously reported critical errors in context clauses
23313         (Install_Limited_Withed_Unit): Code cleanup plus static detection
23314         of two further errors: renamed subprograms and renamed packages
23315         are not allowed in limited with clauses.
23316         (Install_Siblings): Do not install private_with_clauses on the package
23317         declaration for a non-private child unit.
23318         (Re_Install_Parents): When a parent of the subunit is reinstalled,
23319         reset visibility of child units properly.
23320         (Install_Withed_Unit): When a child unit appears in a with_clause of its
23321         parent, it is immediately visible.
23322
23323 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
23324             Emmanuel Briot  <briot@adacore.com>
23325
23326         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
23327         declared within an inlined body as referenced, to prevent spurious
23328         warnings.
23329         (Output_One_Ref): If an entity renames an array component, indicate in
23330         the ALI file that this aliases (renames) the array. Capture as well
23331         function renamings that rename predefined operations.
23332         Add information about generic parent for package and subprogram
23333         instances.
23334         (Get_Type_Reference): For a subtype that is the renaming of an actual in
23335         an instantiation, use the first_subtype to ensure that we don't generate
23336         cross-reference information for internal types.
23337         For objects and parameters of a generic private type, retain the '*'
23338         indicator to distinguish such an entity from its type.
23339
23340         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
23341         to store information about instantiated entities.
23342
23343         * ali.adb (Scan_ALI): Add support for parsing the reference to the
23344         generic parent
23345
23346         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
23347         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
23348         information.
23349
23350 2005-06-10  Doug Rupp  <rupp@adacore.com>
23351             Arnaud Charlet  <charlet@adacore.com>
23352             Olivier Hainque  <hainque@adacore.com>
23353             Jose Ruiz  <ruiz@adacore.com>
23354
23355         * Make-lang.in: Add initialize.o when needed.
23356         Remove obsolete references to RT_FLAGS.
23357         Add missing dependencies for sdefault.o
23358
23359         * initialize.c: New file.
23360
23361         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
23362         [VMS] cond_signal_table: Fix problem in declaration.
23363         [VMS] __gnat_error_handler: rewrite.
23364         Move all __gnat_initialize() routines to initialize.c
23365         Specialize the former "hpux" section to "hppa hpux", as this is what the
23366         section really is here for and we now have other hpux ports that need
23367         different contents.
23368         (__gnat_adjust_context_for_raise) i386-linux: First version of this
23369         function for this target. Adjust PC by one in the machine context. This
23370         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
23371         it is more reliable to do that in the signal handler itself.
23372         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
23373         flags, so that the handler is passed the context structure to adjust
23374         prior to the raise.
23375         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
23376         SA_SIGINFO sigaction should look like. Call
23377         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
23378         Machine_State_Operations stuff.
23379         Add conditional code so that the x86_64 is also supported.
23380
23381 2005-06-14  Pascal Obry  <obry@adacore.com>
23382
23383         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
23384         the library name.
23385
23386 2005-06-14  Robert Dewar  <dewar@adacore.com>
23387
23388         * opt.ads, opt.adb: New flags for persistent_bss mode
23389         Add Ada_Version_Explicit, for implementation of AI-362
23390         Add Assertions_Enabled_Config and associated handling
23391         Needed since setting can be changed with Assertion_Policy pragma
23392         Add new flag Warn_On_Ada_2005_Compatibility
23393
23394         * switch-c.adb: Recognize -gnatwy/Y
23395         Set Ada_Version_Explicit, for implementation of AI-362
23396         The -gnatg switch now includes -gnatyu
23397
23398         * usage.adb: Add -gnatwy/Y
23399         Remove wrong asterisk on -gnatwX line
23400         Add line for -gnatyu switch
23401
23402 2005-06-14  Vincent Celier  <celier@adacore.com>
23403
23404         * osint.adb (Add_Default_Search_Dirs): Put source and object
23405         directories of project files before directories coming from
23406         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
23407
23408 2005-06-14  Robert Dewar  <dewar@adacore.com>
23409
23410         PR ada/15613
23411         * par-ch2.adb (Scan_Pragma_Argument): New procedure
23412         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
23413
23414 2005-06-14  Vincent Celier  <celier@adacore.com>
23415
23416         * prep.adb (Preprocess): Ignore error when scanning the first token of
23417         a line.
23418
23419 2005-06-14  Vincent Celier  <celier@adacore.com>
23420
23421         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
23422         (Check_Stand_Alone_Library): If the specified reference symbol file does
23423         not exist, only issue a warning when the symbol policy is not
23424         Controlled. And, when symbol policy is Compliant, set the symbol
23425         policy to Autonomous.
23426
23427 2005-06-14  Vincent Celier  <celier@adacore.com>
23428
23429         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
23430         when the project file in a with clause is not the last one, that is the
23431         project file name is followed by a comma.
23432         * prj-pp.adb: (First_With_In_List): New Boolean global variable
23433         (Print): Issue list of project files separated by commas in with clauses
23434         according to the values returned by Is_Not_Last_In_List.
23435         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
23436         (Set_Is_Not_Last_In_List): New procedure
23437
23438 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
23439
23440         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
23441
23442 2005-06-14  Robert Dewar  <dewar@adacore.com>
23443
23444         * scng.adb: Add call to new Check_EOF routine
23445         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
23446         Add some comments regarding wide character handling
23447
23448         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
23449
23450         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
23451
23452         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
23453         characters are now considered graphic characters and hence yield false
23454         in this call.
23455
23456         * nmake.adt: Modify header so that xnmake does not generate output
23457         files with multiple blank lines.
23458
23459         * treeprs.adt: Remove a blank line so that output from xtreeprs does
23460         not have an extra blank line
23461
23462 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
23463
23464         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
23465         expression when the component type is an anonymous access type to
23466         ensure that appropriate accessibility checks are done.
23467
23468         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
23469         expression of an assignment when the target object is of an anonymous
23470         access type. This ensures that required accessibility checks are done.
23471         (One_Bound): Move the check for type Universal_Integer to
23472         Process_Bounds.
23473         (Process_Bounds): Check whether the type of the preanalyzed range is
23474         Universal_Integer, and in that case set Typ to Integer_Type prior
23475         to setting the type of the original range and the calls to One_Bound.
23476
23477 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
23478
23479         * sem_case.adb (Expand_Others_Choice): Improve warning.
23480
23481 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
23482
23483         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
23484         constraint of full view if present, when other type is discriminated.
23485         (Eval_Relational_Op): Recognize tests of pointer values against Null,
23486         when the pointer is known to be non-null, and emit appropriate warning.
23487
23488 2005-06-14  Robert Dewar  <dewar@adacore.com>
23489             Ed Schonberg  <schonberg@adacore.com>
23490
23491         PR ada/10671
23492         * sem_prag.adb: Implement pragma Persistent_BSS
23493         Remove obsolete pragma Persistent_Data, Persistent_Object
23494         Set Ada_Version_Explicit, for implementation of AI-362
23495         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
23496         Add processing for pragma Pure_05 and Preelaborate_05
23497         Add processing for Assertion_Policy pragma
23498         Add pragma identifiers for Assert
23499         (Analyze_Pragma, case Assert): Check number of arguments
23500         (Process_Inline): Additional guard against an illegal program, where the
23501         argument of the pragma is undefined, and warnings on redundant
23502         constructs are enabled.
23503         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
23504         Ada_05 to this pragma, specifying that the pragma is only active in
23505         Ada_05 mode.
23506         (Check_Arg_Order): New procedure
23507         Add appropriate calls to this procedure throughout
23508         Also throughout, check entity name before doing any other checks
23509
23510         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
23511         Remove obsolete pragma Persistent_Data, Persistent_Object
23512         Add entries for pragma Pure_05 and Preelaborate_05
23513         Add entries for Assertion_Policy pragma and associated names
23514         Add some names for pragma argument processing
23515
23516         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
23517
23518 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
23519
23520         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
23521         appears within a negation (either from source or as a rewriting of
23522         inequality) adjust text of warning accordingly.
23523
23524 2005-06-14  Thomas Quinot  <quinot@adacore.com>
23525
23526         * s-strxdr.adb: Follow AI95-00132
23527
23528 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
23529
23530         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
23531
23532 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
23533             Jose Ruiz  <ruiz@adacore.com>
23534
23535         * s-tposen.adb, s-tpobop.adb
23536         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
23537         the exception id.
23538         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
23539         there is no violation of the Max_Entry_Queue_Length restriction (if it
23540         has been set); Program_Error is raised otherwise.
23541         (Requeue_Call): Before requeuing the task on the target entry queue we
23542         check that there is no violation of the Max_Entry_Queue_Length
23543         restriction (if it has been set); Program_Error is raised otherwise.
23544
23545 2005-06-14  Robert Dewar  <dewar@adacore.com>
23546
23547         * styleg.adb: Fix several remaining problems in -gnatyu switch
23548         Blank line count not reset at start
23549         Scanning outside source buffer in some cases
23550         Confusing message for blanks at end of file
23551         Non-empty blank lines not recognized
23552
23553         * nmake.adt: Modify header so that xnmake does not generate output
23554         files with multiple blank lines.
23555
23556         * treeprs.adt: Remove a blank line so that output from xtreeprs does
23557         not have an extra blank line
23558
23559 2005-06-14  Sergey Rybin  <rybin@adacore.com>
23560
23561         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
23562
23563 2005-06-14  Doug Rupp  <rupp@adacore.com>
23564             Vincent Celier  <celier@adacore.com>
23565
23566         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
23567         Update copyright.
23568
23569         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
23570         Remove "Library" command.
23571         Change keyword for style check -gnatyd from NOCRLF to
23572         DOS_LINE_ENDINGS.
23573         Remove useless second style check keyword NONE
23574         Remove help documentation for inexistent style check keyword
23575         RM_COLUMN_LAYOUT.
23576         Add help documentation for style check keywords DOS_LINE_ENDINGS,
23577         UNNECESSARY_BLANK_LINES and XTRA_PARENS
23578         Add UNNECESSARY_BLANK_LINES for -gnatyu
23579         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
23580
23581         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
23582
23583 2005-06-14  Vincent Celier  <celier@adacore.com>
23584
23585         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
23586         gprmake was invoked with -d.
23587         (Compile_Sources): If -d was used, output the "completed ..." message
23588         for each compilation.
23589         (Scan_Arg): Recognize new switch -d
23590         When -c and at least one main is specified, set
23591         Unique_Compile to True to guarantee that no other sources will be
23592         compiled.
23593
23594 2005-06-14  Matthew Heaney  <heaney@adacore.com>
23595
23596         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
23597         * a-swuwha.ads, a-swuwha.adb: New files
23598
23599         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
23600         * a-szuzha.ads, a-szuzha.adb: New files.
23601
23602         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
23603         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
23604         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
23605         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
23606         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
23607         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
23608         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
23609         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
23610         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
23611         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
23612         Ada 2005 RM.
23613
23614 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
23615             Olivier Hainque  <hainque@adacore.com>
23616             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23617             Pascal Obry  <obry@adacore.com>
23618
23619         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
23620
23621         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
23622         making a temporary around a procedure call because of non-addressable
23623         actual parameter.
23624         (process_freeze_entity): If entity is a private type, capture size
23625         information that may have been computed for the full view.
23626         (tree_transform, case N_Allocator): If have initializing expression,
23627         check type for Has_Constrained_Partial_View and pass that to
23628         build_allocator.
23629         (tree_transform, case N_Return_Statement): Pass extra arg to
23630         build_allocator.
23631
23632         * decl.c (annotate_value): Remove early return if -gnatR is not
23633         specified.
23634         (gnat_to_gnu_field): Don't make a packable type for a component clause
23635         if the position is byte aligned, the field is aliased, and the clause
23636         size isn't a multiple of the packable alignment. It serves no useful
23637         purpose packing-wise and would be rejected later on.
23638         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
23639
23640         PR ada/20515
23641         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
23642         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
23643         instead.
23644         (create_concat_name): Idem.
23645
23646 2005-06-10  Robert Dewar  <dewar@adacore.com>
23647             Eric Botcazou  <ebotcazou@adacore.com>
23648             Ben Brosgol  <brosgol@adacore.com>
23649             Cyrille Comar  <comar@adacore.com>
23650             Sergey Rybin  <rybin@adacore.com>
23651             Pascal Obry  <obry@adacore.com>
23652
23653         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
23654         Document second argument (Ada_05) of pragma Obsolescent
23655         Add note that call to subprogram marked with pragma Obsolescent
23656         is now considered to be a violation of program Restrictions
23657         (No_Obsolescent_Features).
23658         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
23659         that only machine-dependent attributes are supported.
23660
23661         * gnat_ugn.texi:
23662         Commented out menu lines and empty section for gnatclean examples
23663         Document -gnatwy/Y
23664         Fix some over long lines
23665         Clarify and enhance documentation of ADA_PROJECT_PATH.
23666         Rework section 2.11.2(3) about linking with a non-GNU compiler.
23667         Mention new switch -fcallgraph-info.
23668         Mention new switch -fstack-usage.
23669         For gnatpp, replace '-notab' with '-N' and add this option to Index
23670         Corrected VMS example.
23671         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
23672         Minor reformatting
23673         Add documentation for -gnatyu switch (unnecessary blank lines)
23674         Document new switch -U for GNAT PRETTY and GNAT METRIC
23675         Add note about Stdcall being handled as C convention on non Windows OS.
23676         Remove some junk typo in description of gnatbind -S switch
23677         Remove reference to Extensions_Allowed pragma
23678         Document the new order of the directories to be searched (source and
23679         object directories of project files before directories in ADA_*_PATH
23680         environment variables.
23681
23682         * g-trasym.ads: Document that IRIX is supported
23683
23684 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
23685
23686         * Makefile.in: Add initialize.o when needed.
23687         Adapt to new VMS package body Symbols and subunits
23688         No specialized version of a-sytaco is needed for VxWorks.
23689
23690         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
23691         * a-zchara.ads, a-widcha.ads: New files.
23692
23693         * system-hpux-ia64.ads: New file.
23694
23695         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
23696         is imported from the VxWorks kernel.
23697
23698 2005-06-14  Robert Dewar  <dewar@adacore.com>
23699
23700         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
23701         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
23702         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
23703         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
23704         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
23705         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
23706         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
23707         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
23708         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
23709         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
23710         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
23711         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
23712
23713 2005-06-14  Thomas Quinot  <quinot@adacore.com>
23714
23715         * xeinfo.adb: Fix typo in comment
23716
23717 2005-06-14  Javier Miranda  <miranda@adacore.com>
23718
23719         * repinfo.ads: Fix typo in comment
23720
23721 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
23722
23723         * s-finimp.adb (Parent_Tag): Delete this imported function (function
23724         Parent_Tag is now in the visible part of Ada.Tags).
23725         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
23726         using imported function.
23727
23728 2005-06-14  Bernard Banner  <banner@adacore.com>
23729
23730         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
23731         also apply for handling support for VxSim 653.
23732
23733 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
23734
23735         * xsnames.adb: Add automatic generation of snames.h.
23736
23737 2005-06-14  Thomas Quinot  <quinot@adacore.com>
23738
23739         * gen-soccon.c: Add IP_MULTICAST_IF constant
23740         Minor reformatting and adjustments to prevent warnings.
23741
23742 2005-06-14  Pascal Obry  <obry@adacore.com>
23743
23744         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
23745
23746 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
23747
23748         * trans.c (gnat_gimplify_expr): Call
23749         recompute_tree_invarant_for_addr_expr when we change
23750         the operand of the ADDR_EXPR.
23751
23752 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23753
23754         * misc.c: Don't include errors.h.
23755
23756 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23757
23758         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
23759
23760 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
23761
23762         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
23763         comment typos.
23764         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
23765
23766 2005-05-16  Nathanael Nerode  <neroden@gcc.gnu.org>
23767
23768         PR ada/20270
23769         * Makefile.in: Make TGT_LIB behave correctly.
23770
23771 2005-04-23  DJ Delorie  <dj@redhat.com>
23772
23773         * misc.c: Adjust warning() callers.
23774
23775 2005-04-16  Laurent Guerby  <laurent@guerby.net>
23776
23777         PR ada/18847
23778         * a-nudira.adb (Value): Check for valid string.
23779         * a-nuflra.adb (Value): Likewise.
23780
23781 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
23782
23783         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
23784
23785 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
23786
23787         * adaint.c, init.c, tracebak.c: Fix comment typos.
23788         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
23789
23790 2005-04-07  Laurent Guerby  <laurent@guerby.net>
23791             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23792
23793         * Makefile.in: Add make ifeq define for hppa linux tasking support.
23794         * system-hpux.ads: Define Signed_Zeros to be True.
23795         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
23796
23797 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
23798
23799         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
23800         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
23801         typos.
23802
23803 2005-03-30  Tom Tromey  <tromey@redhat.com>
23804
23805         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
23806
23807 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
23808
23809         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
23810
23811 2005-03-29  Robert Dewar  <dewar@adacore.com>
23812
23813         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
23814         fixed-point expression has value that is not a multiple of the Small
23815         value.
23816
23817         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
23818
23819         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
23820         nanoseconds.
23821
23822         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
23823
23824 2005-03-29  Vincent Celier  <celier@adacore.com>
23825
23826         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
23827         (Build_Dynamic_Library.Version_String): Return the empty string when
23828         Lib_Version is empty or when the symbol policy is not Autonomous.
23829
23830         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
23831         a symbol is not in the reference symbol file, increase the Major ID
23832         and set the Minor ID to 0.
23833         Use gsmatch=lequal instead of gsmatch=equal
23834
23835 2005-03-29  Doug Rupp  <rupp@adacore.com>
23836
23837         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
23838         name and translate.
23839
23840 2005-03-29  Javier Miranda  <miranda@adacore.com>
23841
23842         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
23843         (Inherit_DT): The first formal has been redefined as a Tag.
23844         This allows us the removal of the subprogram Get_TSD.
23845         (TSD): Replace the call to Get_TSD by the actual code.
23846
23847         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
23848         (Make_DT): Upgrade the call to Inherit_TSD according to the
23849         new interface: the first formal is now a Tag.
23850
23851         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
23852         redefined as a Tag.
23853         This change allows us to remove the subprogram Get_TSD.
23854         (CPP_Get_TSD): Subprogram removed.
23855         (TSD): Replace the call to CPP_Get_TSD by the actual code.
23856
23857         * rtsfind.ads: Remove support to call the run-time
23858         subprogram Get_TSD
23859
23860 2005-03-29  Robert Dewar  <dewar@adacore.com>
23861
23862         * errutil.adb, errout.adb:
23863         Minor comment updates on Line_Terminator references
23864
23865         * par-ch10.adb: Add ??? comment about line terminator
23866
23867         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
23868         (check dos line terminator).
23869         (Check_Line_Max_Length): New procedure, split off from the existing
23870         Check_Line_Terminator routine. Separating this out allows -gnatyf to
23871         be properly recognized.
23872
23873         * styleg.adb: Add ??? comment for line terminator reference
23874
23875         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
23876         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
23877
23878         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
23879         (check dos line terminator).
23880         (Check_Line_Max_Length): New procedure, split off from the existing
23881         Check_Line_Terminator routine. Separating this out allows -gnatyf to
23882         be properly recognized.
23883
23884         * stylesw.ads, stylesw.adb:
23885         Add handling for new -gnatyd switch (check dos line terminator)
23886
23887         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
23888         Recognize -gnatwb/-gnatwB switches
23889         Include Warn_On_Bad_Fixed_Value for -gnatg
23890
23891         * usage.adb:
23892         Add line for new -gnatyd switch (check dos line terminator)
23893
23894         * usage.adb: Add lines for -gnatwb/-gnatwB
23895
23896         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
23897
23898         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
23899
23900         * gnat_ugn.texi: Fix overlong lines
23901         Document new -gnatyd switch
23902         Document new -gnatwb/-gnatwB switches
23903
23904 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
23905
23906         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
23907         order to retrieve the component list of the type, before examining
23908         individual components.
23909
23910         * sem_type.adb (Covers): Types are compatible if one is the base type
23911         of the other, even though their base types might differ when private
23912         views are involved.
23913
23914 2005-03-29  Thomas Quinot  <quinot@adacore.com>
23915
23916         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
23917         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
23918         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
23919         analyzed if expansion is disabled (which could otherwise cause spurious
23920         error messages if expansion has been disabled due to previous
23921         (unrelated) errors).
23922
23923         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
23924         is disabled, the entity denoted by the argument is the access type
23925         itself, not an underlying record type, so there is no need to go back
23926         to the Corresponding_Remote_Type.
23927
23928 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
23929             Robert Dewar  <dewar@adacore.com>
23930
23931         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
23932         expand a call to an instance of
23933         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
23934         Constructor actual of the instance. A class-wide membership
23935         check is also generated, to ensure that the tag passed to the instance
23936         denotes a type in the class.
23937         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
23938         of Name_Generic_Dispatching_Constructor.
23939
23940         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
23941         05 unit for AI-260-02).
23942
23943         * a-tgdico.ads: New file.
23944
23945         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
23946         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
23947
23948         * snames.ads, snames.adb (Preset_Names): Add entry for
23949         Generic_Dispatching_Constructor.
23950
23951         PR ada/20300
23952         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
23953         character type cases.
23954         (Analyze_Subprogram_Renaming): Add special handling for
23955         the case of renaming of stream attributes when the renaming denotes a
23956         generic formal subprogram association for an abstract formal subprogram.
23957         Check that the attribute is a primitive stream attribute (and not
23958         a class-wide stream attribute) and then rewrite the attribute name
23959         as the name of the appropriate compiler-generated stream primitive.
23960
23961 2005-03-29  Robert Dewar  <dewar@adacore.com>
23962
23963         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
23964         recursive calls.
23965         (Is_Possibly_Unaligned_Object): Correct typo that
23966         resulted in inaccurate result for unaligned scalars within records.
23967
23968 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
23969
23970         * freeze.adb (Freeze_Record_Type): If the type of the component is an
23971         itype whose parent is controlled and not yet frozen, do not create a
23972         freeze node for the itype if expansion is disabled.
23973
23974 2005-03-29  Vincent Celier  <celier@adacore.com>
23975
23976         * make.adb (Gnatmake): Don't fail if the main project file is declared
23977         as having no Ada sources. Do not display message "no sources to
23978         compile" in quiet output.
23979
23980 2005-03-29  Doug Rupp  <rupp@adacore.com>
23981
23982         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
23983         extra tools.
23984
23985 2005-03-29  Robert Dewar  <dewar@adacore.com>
23986
23987         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
23988         child.
23989
23990 2005-03-29  Robert Dewar  <dewar@adacore.com>
23991
23992         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
23993         missing TYPE Improve the error message generated when compiling a
23994         limited interface in Ada83 or Ada95 mode.
23995
23996 2005-03-29  Robert Dewar  <dewar@adacore.com>
23997
23998         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
23999         rather than proceed ahead using a junk attribute name.
24000
24001 2005-03-29  Vincent Celier  <celier@adacore.com>
24002
24003         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
24004
24005         * prj-part.adb (Parse_Single_Project): Set the location of a project
24006         on its defining identifier, rather than on the reserved word "project".
24007
24008         * prj-proc.adb (Expression): Adapt to the fact that default of external
24009         references may be string expressions, not always literal strings.
24010         (Recursive_Process): Set Display_Name equal to Name
24011         when Location is No_Location, that is when there is no actual file.
24012         Get the Display_Name of the project from the source, when it is not a
24013         virtual project.
24014         (Process): Use the Display_Name in error messages
24015
24016         * prj-strt.adb (External_Reference): Allow default to be string
24017         expressions, not only literal strings.
24018
24019 2005-03-29  Vincent Celier  <celier@adacore.com>
24020
24021         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
24022         file and the reference symbol file to be the same file.
24023
24024 2005-03-29  Thomas Quinot  <quinot@adacore.com>
24025
24026         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
24027         forbid conversion of a local access-to-subprogram type to a remote one.
24028
24029         * sem_util.adb (Wrong_Type): For a record type that is the expanded
24030         equivalent type for a remote access-to-subprogram type, go back to the
24031         original RAS entity when displaying an error message, so the casing is
24032         the original source casing.
24033
24034 2005-03-29  Robert Dewar  <dewar@adacore.com>
24035
24036         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
24037         on param update.
24038
24039 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
24040
24041         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
24042         subtype if code is being pre-analyzed, to prevent un-expanded
24043         references to protected formals, among others.
24044         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
24045         interpretation that can be a call, include the result of the call as a
24046         possible interpretation of the dereference.
24047
24048         * sem_ch5.adb (Process_Bounds): Determine type of range by
24049         pre-analyzing a copy of the original range, and then analyze the range
24050         with the expected type.
24051
24052         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
24053         with an overloaded prefix where not all interpretations yield an
24054         access to subprogram, do not rewrite node as a call.
24055         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
24056         the node as a call once the context identifies the interpretation of
24057         the prefix whose call yields the context type.
24058         (Valid_Conversion): For the case of a conversion between
24059         local access-to-subprogram types, check subtype conformance using
24060         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
24061         detailed error message.
24062
24063 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
24064
24065         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
24066         indicator, indicate that the formal can never be null.
24067         (Process_Formals): If a formal has a non_null indicator, insert the
24068         resulting subtype immediately before the enclosing subprogram decl,
24069         and not at the beginning of the corresponding declarative part, to
24070         prevent access before elaboration (Ada2005).
24071
24072 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24073
24074         PR ada/19956
24075         * utils.c (finish_record_type): Use variable_size when setting sizes.
24076
24077 2005-03-29  Robert Dewar  <dewar@adacore.com>
24078
24079         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
24080         guarantee Unix style line terminators for the output files, even when
24081         running on windows.
24082
24083 2005-03-29  Robert Dewar  <dewar@adacore.com>
24084
24085         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
24086         buffer if an exception is raised.
24087
24088 2005-03-29  Ed Falis  <falis@adacore.com>
24089
24090         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
24091         VxWorks 653 1.4
24092
24093 2005-03-29  Robert Dewar  <dewar@adacore.com>
24094
24095         * sem_util.ads: Minor reformatting
24096         * gnat_rm.texi: Minor editing.
24097
24098 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
24099
24100         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
24101         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
24102
24103 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
24104
24105         * adaint.c (__gnat_portable_spawn): Adjust cast.
24106
24107 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
24108
24109         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
24110
24111 2005-03-17  Pascal Obry  <obry@adacore.com>
24112
24113         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
24114         used.
24115
24116         * expect.c (__gnat_waitpid): Moved here from adaint.c.
24117         Reimplement under Win32 using Win32 API.
24118
24119         (__gnat_kill) [Win32]: Properly close the process handle before leaving
24120         this routine.
24121
24122 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
24123
24124         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
24125         (DECL_RENAMED_OBJECT): New accessor macro.
24126         (SET_DECL_RENAMED_OBJECT): New setter macro.
24127
24128         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
24129         object in all cases.  Attach the renamed object to the VAR_DECL.
24130         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
24131         field is not prescribed.
24132
24133         * misc.c (gnat_handle_option): Handle -gnatO separately.
24134         (gnat_print_decl) <VAR_DECL>: New case.
24135         Print the DECL_RENAMED_OBJECT node.
24136
24137         * lang.opt:  Declare separate -gnatO option.
24138
24139         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
24140         pointer, replace it with the renamed object.
24141         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
24142         pointer type if the source is not a fat pointer type whose underlying
24143         array has the same non-zero alias set as that of the destination array.
24144
24145 2005-03-17  Javier Miranda  <miranda@adacore.com>
24146
24147         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
24148         (Get_Inheritance_Depth): Removed.
24149         (Set_Inheritance_Depth): Removed.
24150
24151         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
24152         subprogram Get_Expanded_Name because it is not referenced by the
24153         frontend.
24154
24155         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
24156         (CPP_Get_Inheritance_Depth): Removed.
24157         (CPP_Set_Inheritance_Depth): Removed.
24158
24159         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
24160
24161 2005-03-17  Robert Dewar  <dewar@adacore.com>
24162
24163         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
24164         3, since we now expect GCC 3 to do all the work.
24165
24166 2005-03-17  Javier Miranda  <miranda@adacore.com>
24167
24168         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
24169         of one barrier to avoid wrong usage of this attribute.
24170
24171         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
24172         First_Private_Entity.
24173
24174         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
24175         the subprogram against wrong usage.
24176         Adapt the code to traverse the entities in the
24177         scope of a record_type because in addition to its usage regarding
24178         packages, this subprogram is also called by Expand_N_Freeze_Entity
24179         to install the visible declarations of the enclosing scope of a
24180         record_type_with_private to establish the proper visibility before
24181         freezing the entity and related subprograms.
24182
24183 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
24184
24185         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
24186         entry formals.
24187
24188 2005-03-17  Thomas Quinot  <quinot@adacore.com>
24189
24190         * exp_ch3.adb (Check_Attr): New subprogram.
24191         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
24192         into a new Check_Attr subprogram, in order to provide a more
24193         explanatory error message (including the name of the missing attribute).
24194         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
24195         subprogram determines whether a default implementation exists for a
24196         given stream attribute.
24197         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
24198         Determine whether to generate a default implementation for each stream
24199         attribute separately, as this depends on the specific attribute.
24200
24201         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
24202         limited extension where a stream attribute is missing for a limited
24203         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
24204         generate a bogus reference to the missing attribute to prevent
24205         cascaded errors. Instead, generate a null statement.
24206
24207         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
24208         available for a limited type if it has been specified for an ancestor
24209         of the type.
24210
24211 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
24212
24213         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
24214         entity is an operator.
24215
24216 2005-03-17  Thomas Quinot  <quinot@adacore.com>
24217
24218         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
24219         spec, to make this predicate available to other units.
24220
24221         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
24222         reimplementing it.
24223
24224         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
24225         when no distribution runtime library is available.
24226
24227         * sem_res.adb, sem_dist.adb: Disable expansion of remote
24228         access-to-subprogram types when no distribution runtime library is
24229         available.
24230         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
24231         predicate available to other units.
24232
24233         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
24234         spec, to make this predicate available to other units.
24235
24236 2005-03-17  Vincent Celier  <celier@adacore.com>
24237
24238         * make.adb (Insert_Project_Sources): Make sure the Q is always
24239         initialized.
24240
24241         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
24242         the default for the tree, not the global default naming.
24243
24244         * prj-proc.adb (Recursive_Process): No need to put the default naming
24245         in the project data, it's already there.
24246
24247 2005-03-17  Doug Rupp  <rupp@adacore.com>
24248
24249         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
24250
24251         * 5xcrtl.ads: Renamed to...
24252         * s-crtl-vms64.ads: ...this new file
24253
24254 2005-03-17  Robert Dewar  <dewar@adacore.com>
24255
24256         PR ada/19519
24257         * namet.adb (Copy_One_Character): Set proper wide character encoding
24258         for upper half character if we have upper half encoding.
24259
24260 2005-03-17  Robert Dewar  <dewar@adacore.com>
24261
24262         * par.adb (Par): Improved msg for attempt to recompile predefined unit
24263
24264 2005-03-17  Thomas Quinot  <quinot@adacore.com>
24265
24266         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
24267         tagged limited type, the TSS is a newly built renaming declaration:
24268         insert it using Set_TSS, not Copy_TSS.
24269
24270 2005-03-17  Javier Miranda  <miranda@adacore.com>
24271
24272         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
24273         Try_Object_Operation): Analyze the object that is accessible
24274         through the prefix of the subprogram call before we apply
24275         the transformation of the object-operation notation.
24276
24277 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
24278
24279         * s-taprob.adb (Initialize_Protection): Initialize the protected
24280         object's owner to Null_Task.
24281         (Lock): If pragma Detect_Blocking is in effect and the caller of this
24282         procedure is already the protected object's owner then Program_Error
24283         is raised. In addition the protected object's owner is updated.
24284         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
24285         of this procedure is already the protected object's owner then
24286         Program_Error is raised.
24287         In addition the protected object's owner is updated.
24288         (Unlock): Remove the ownership of the protected object.
24289
24290         * s-taprob.ads (Protection): Add the field Owner, used to store the
24291         protected object's owner.
24292         This component is needed for detecting one type of potentially blocking
24293         operations (external calls on a protected subprogram with the same
24294         target object as that of the protected action). Document the rest of
24295         the components.
24296
24297         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
24298         Initialize the protected object's owner to Null_Task.
24299         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
24300         caller of this procedure is already the protected object's owner then
24301         Program_Error is raised.
24302         Do not raise Program_Error when this procedure is called from a
24303         protected action.
24304         (Unlock_Entries): Remove the ownership of the protected object.
24305         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
24306         of this procedure is already the protected object's owner then
24307         Program_Error is raised.
24308         Do not raise Program_Error when this procedure is called from
24309         a protected action.
24310
24311         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
24312         used to store the protected object's owner.
24313
24314         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
24315         effect and this procedure (a potentially blocking operation) is called
24316         from whithin a protected action, Program_Error is raised.
24317         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
24318         and this procedure (a potentially blocking operation) is called from
24319         whithin a protected action, Program_Error is raised.
24320
24321 2005-03-17  Vincent Celier  <celier@adacore.com>
24322             Nicolas Setton  <setton@adacore.com>
24323
24324         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
24325         switch, not supported by the linker on Darwin. Add '_' before
24326         <library>init, as this character is added unconditionally by the
24327         compiler.
24328         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
24329         correct one ".dylib". This fixes detection of the archive files when
24330         building library projects.
24331
24332 2005-03-17  Vincent Celier  <celier@adacore.com>
24333
24334         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
24335         -gnat83, -gnat95 and -gnat05.
24336
24337 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
24338
24339         * gnat_ugn.texi: Document gnatmem restriction
24340
24341 2005-03-17  Thomas Quinot  <quinot@adacore.com>
24342
24343         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
24344         cleanup
24345
24346 2005-03-17  Robert Dewar  <dewar@adacore.com>
24347
24348         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
24349         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
24350         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
24351
24352         * casing.adb: Comment improvements
24353
24354 2005-03-17  Pascal Obry  <obry@adacore.com>
24355
24356         * g-expect.adb: Minor reformatting.
24357
24358 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
24359
24360         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
24361         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
24362         to dependencies.
24363
24364 2005-03-15  Vincent Celier  <celier@adacore.com>
24365
24366         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
24367         Add new parameter In_Tree to specify the project tree: needed
24368         by the project manager. Adapt to changes in project manager
24369         using new parameter In_Tree.
24370
24371 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
24372
24373         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
24374         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
24375         ada/bldtools to avoid make -jN failures.
24376
24377 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
24378
24379         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
24380         to NULL_TREE on entry.
24381
24382 2005-03-15  Robert Dewar  <dewar@adacore.com>
24383
24384         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
24385         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
24386         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
24387         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
24388         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
24389         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
24390         system-interix.ads, system-solaris-sparc.ads,
24391         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
24392         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
24393         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
24394         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
24395         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
24396         Compiler_System_Version to be False.
24397
24398         * opt.ads: Add new flag Opt.Address_Is_Private
24399
24400         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
24401         Add new parameter Compiler_System_Version to avoid checking for
24402         completeness of parameters when compiler is compiling itself.
24403         Allows old versions of GNAT to be compiled with new compiler.
24404
24405 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
24406
24407         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
24408         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
24409         calling thread.
24410         (Stack_Base_Available): New flag.
24411         (Get_Page_Size): New overloaded functions imported from C.
24412         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
24413         PROT_ON, PROT_OFF): New constants.
24414         (mprotect): New function imported from C.
24415         (pthread_teb_t): New record type.
24416
24417         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
24418         (Create_Task): Account for the Yellow Zone and the guard page.
24419
24420 2005-03-15  Vincent Celier  <celier@adacore.com>
24421
24422         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
24423         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
24424         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
24425         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
24426         Library_File_Name_For): Add new parameter In_Tree
24427         to specify the project tree: needed by the project manager.
24428         Adapt to changes in project manager using new parameter In_Tree.
24429         Remove local imports, use functions in System.CRTL.
24430
24431         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
24432         to use the project manager.
24433
24434         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
24435         In_Tree to designate the project tree. Adapt to changes in the project
24436         manager, using In_Tree.
24437
24438         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
24439         Copy_Interface_Sources): Add new parameter In_Tree to specify the
24440         project tree: needed by the project manager.
24441         (Build_Library): Check that Arg'Length >= 6 before checking if it
24442         contains "--RTS=...".
24443
24444         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
24445         Library_File_Name_For): Add new parameter In_Tree to specify the
24446         project tree: needed by the project manager.
24447
24448         * prj.ads, prj.adb: Major modifications to allow several project trees
24449         in memory at the same time.
24450         Change tables to dynamic tables and hash tables to dynamic hash
24451         tables. Move tables and hash tables from Prj.Com (in the visible part)
24452         and Prj.Env (in the private part). Move some constants from the visible
24453         part to the private part. Make other constants deferred.
24454         (Project_Empty): Make it a variable, not a function
24455         (Empty_Project): Add parameter Tree. Returns the data with the default
24456         naming data of the project tree Tree.
24457         (Initialize): After updating Std_Naming_Data, copy its value to the
24458         component Naming of Project Empty.
24459         (Register_Default_Naming_Scheme): Use and update the default naming
24460         component of the project tree, instead of the global variable
24461         Std_Naming_Data.
24462         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
24463         Tree is not defaulted, return the default naming data of the Tree.
24464         (Initial_Buffer_Size): Constant moved from private part
24465         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
24466         variables initialized in procedure Initialize.
24467         (Add_To_Buffer): Add two in out parameters to replace global variables
24468         Buffer and Buffer_Last.
24469         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
24470         functions.
24471         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
24472         hash tables.
24473         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
24474         for the project tree.
24475         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
24476         constant at the beginning of the package spec, so that they cane be used
24477         in subprograms before their full declarations.
24478         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
24479         (Empty_Project): Add parameter of type Project_Node_Ref
24480         (Private_Project_Tree_Data): Add component Default_Naming of type
24481         Naming_Data.
24482         (Buffer, Buffer_Last): remove global variables
24483         (Add_To_Buffer): Add two in out parameters to replace global variables
24484         Buffer and Buffer_Last.
24485         (Current_Packages_To_Check): Remove global variable
24486         (Empty_Name): Move to private part
24487         (No-Symbols): Make it a constant
24488         (Private_Project_Tree_Data): New type for the private part of the
24489         project tree data.
24490         (Project_Tree_Data): New type for the data of a project tree
24491         (Project_Tree_Ref): New type to designate a project tree
24492         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
24493         for the project tree.
24494
24495         * prj-attr.ads: Add with Table; needed, as package Prj no longer
24496         imports package Table.
24497
24498         * prj-com.adb: Remove empty, no longer needed body
24499
24500         * prj-com.ads: Move most of the content of this package to package Prj.
24501
24502         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
24503         designate the project node tree and Packages_To_Check to replace
24504         global variable Current_Packages_To_Check.
24505         Add new parameters In_Tree and Packages_To_Check to local subprograms,
24506         when needed. Adapt to changes in project manager with project node tree
24507         In_Tree.
24508
24509         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
24510         project tree to most subprograms. Move tables and hash tables to
24511         private part of package Prj.
24512         Adapt to changes in project manager using project tree In_Tree.
24513
24514         * prj-makr.adb (Tree): New constant to designate the project node tree
24515         Adapt to change in project manager using project node tree Tree
24516
24517         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
24518         display the Library_Src_Dir and the Library_Dir.
24519         Add new parameter In_Tree to designate the project node tree to most
24520         subprograms. Adapt to changes in the project manager, using project tree
24521         In_Tree.
24522         (Check_Naming_Scheme): Do not alter the casing on platforms where
24523         the casing of file names is not significant.
24524         (Check): Add new parameter In_Tree to designate the
24525
24526         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
24527         designate the project tree.
24528         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
24529
24530         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
24531         to replace those that were in the private part of package Prj.
24532         Add new parameter In__Tree to designate the project node tree to most
24533         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
24534         (Post_Parse_Context_Clause): When specifying the project node of a with
24535         clause, indicate that it is a limited with only if there is "limited"
24536         in the with clause, not necessarily when In_Limited is True.
24537         (Parse): Add new parameter In_Tree to designate the project node tree
24538
24539         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
24540         designate the project node tree. Adapt to change in Prj.Tree with
24541         project node tree In_Tree.
24542
24543         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
24544         tree In_Tree in the call to function Empty_Process to give its initial
24545         value to the project data Processed_Data.
24546         Add new parameters In_Tree to designate the project tree and
24547         From_Project_Node_Tree to designate the project node tree to several
24548         subprograms. Adapt to change in project manager with project tree
24549         In_Tree and project node tree From_Project_Node_Tree.
24550
24551         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
24552         to replace those that were in the private part of package Prj.
24553         Add new parameter In_Tree to designate the project node tree to most
24554         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
24555
24556         * prj-tree.ads, prj-tree.adb: Add new parameter of type
24557         Project_Node_Tree_Ref to most subprograms.
24558         Use this new parameter to store project nodes in the designated project
24559         node tree.
24560         (Project_Node_Tree_Ref): New type to designate a project node tree
24561         (Tree_Private_Part): Change table to dynamic table and hash tables to
24562         dynamic hash tables.
24563
24564         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
24565         the project tree to most subprograms. Adapt to changes in project
24566         manager using project tree In_Tree.
24567
24568         * makegpr.adb (Project_Tree): New constant needed to use project
24569         manager.
24570
24571 2005-03-15  Olivier Hainque  <hainque@adacore.com>
24572
24573         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
24574         for sigactions with SA_SIGINFO set. Call
24575         __gnat_adjust_context_for_raise before raising, to perform the
24576         potentially required adjustments to the machine context for the GCC
24577         unwinder.
24578
24579         * raise.h (__gnat_adjust_context_for_raise): New prototype.
24580
24581         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
24582         Adjust PC by one in the provided machine context.
24583         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
24584         so that the handler is passed the context structure to adjust prior to
24585         the raise.
24586         (__gnat_error_handler) HPUX: Adjust the signature to match what an
24587         SA_SIGINFO sigaction should look like. Call
24588         __gnat_adjust_context_for_raise before actually raising.
24589         (__gnat_adjust_context_for_raise): Default noop to help PC
24590         adjustments before raise from signal handlers.
24591         (__gnat_error_handler): Indirectly call a predicate function to
24592         determine if a condition should be resignaled or not.
24593         (__gnat_set_resignal_predicate): User interface to modify the predicate.
24594         (__gnat_default_resignal_p): Default GNAT predicate.
24595
24596 2005-03-15  Doug Rupp  <rupp@adacore.com>
24597
24598         * adaint.c: Prefix #include of VMS system header files with vms/
24599         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
24600         Do not define a dummy function "convert_addresses" under Darwin,
24601         not needed.
24602
24603         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
24604         with vms/
24605
24606 2005-03-15  Nicolas Setton  <setton@adacore.com>
24607
24608         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
24609         PPC/AIX.
24610
24611 2005-03-15  Robert Dewar  <dewar@adacore.com>
24612
24613         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
24614         AI-386.
24615
24616         * a-retide.ads: Minor comment changes
24617
24618 2005-03-15  Robert Dewar  <dewar@adacore.com>
24619
24620         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
24621         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
24622         Realloc_For_Chunk to private part of package.
24623         New subprograms for AI-301
24624
24625         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
24626         Get_Line procedure.
24627         Avoid unnecessary use of Get/Set_Wide_String
24628
24629 2005-03-15  Robert Dewar  <dewar@adacore.com>
24630
24631         PR ada/13470
24632         * a-stunau.ads, a-stunau.adb:
24633         Change interface to allow efficient (and correct) implementation
24634         The previous changes to allow extra space in unbounded strings had
24635         left this interface a bit broken.
24636
24637         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
24638
24639         * g-spipat.ads, g-spipat.adb: New interface for Get_String
24640         Minor reformatting (function specs)
24641
24642         * g-spitbo.adb: New interface for Get_String
24643
24644         * g-spitbo.ads: Minor reformatting
24645
24646         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
24647
24648         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
24649
24650 2005-03-15  Javier Miranda  <miranda@adacore.com>
24651             Robert Dewar  <dewar@adacore.com>
24652             Thomas Quinot  <quinot@adacore.com>
24653             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24654
24655         * atree.ads, atree.adb: Add support for Elist24 field
24656
24657         * atree.h: Fix wrong definition of Field27
24658         Add support for Elist16 field
24659         Add support for Elist24 field
24660
24661         * einfo.ads, einfo.adb (Abstract_Interfaces,
24662         Set_Abstract_Interfaces): New subprograms.
24663         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
24664         subprograms.
24665         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
24666         entities rather than a single node.
24667         (Is_Interface, Set_Is_Interface): New subprogram
24668         (First_Tag_Component): New syntesized attribute
24669         (Next_Tag_Component): New synthesized attribute
24670         (Write_Entity_Flags): Upgraded to write Is_Interface
24671         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
24672         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
24673         (Task_Body_Procedure): New subprogram to read this attribute.
24674         (Set_Task_Body_Procedure): New subprogram to set this attribute.
24675         (Has_Controlled_Component): Now applies to all entities.
24676         This is only a documentation change, since it always worked to apply
24677         this to other than composite types (yielding false), but now this is
24678         official.
24679         Update documentation on Must_Be_Byte_Aligned for new spec
24680
24681         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
24682         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
24683         uses of the Access_Disp_Table attribute to reference the first dispatch
24684         table associated with a tagged type. As
24685         part of the implementation of abstract interface types,
24686         Access_Disp_Table has been redefined to contain a list of dispatch
24687         tables (rather than a single dispatch table).
24688         Similarly, upgrade all the references to Tag_Component by the
24689         new attribute First_Tag_Component.
24690         (Find_Inherited_TSS): Moved to exp_tss.
24691         Clean up test in Expand_N_Object_Declaration for cases
24692         where we need to do a separate assignment of the initial value.
24693         (Expand_N_Object_Declaration): If the expression in the
24694         declaration of a tagged type is an aggregate, no need to generate an
24695         additional tag assignment.
24696         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
24697         is to be deleted.
24698         Bit packed array ops are only called if operands are known to be
24699         aligned.
24700         (Component_Equality): When returning an N_Raise_Program_Error statement,
24701         ensure that its Etype is set to Empty to avoid confusing GIGI (which
24702         expects that only expressions have a bona fide type).
24703         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
24704         determine the amount of data to be copied.
24705
24706         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
24707         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
24708             INTERFACE_TYPE_DEFINITION ::=
24709               [limited | task | protected | synchronized] interface
24710                 [AND interface_list]
24711
24712         * par-ch3.adb (P_Type_Declaration): Modified to give support to
24713         interfaces.
24714         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
24715         interfaces.
24716         (P_Interface_Type_Definition): New subprogram that parses the new
24717         syntax rule of Ada 2005 interfaces
24718         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
24719         messages by the correct RENAMES (quotes removed).
24720
24721         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
24722         attribute First_Tag_Component.
24723
24724         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
24725         (Interface_List, Set_Interface_List): New subprograms.
24726         (Interface_Present, Set_Interface_Present): New subprograms.
24727         (Limited_Present, Set_Limited_Present): Available also in derived
24728         type definition nodes.
24729         (Protected_Present, Set_Protected_Present): Available also in
24730         record type definition and
24731         derived type definition nodes.
24732         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
24733         (Task_Present, Set_Task_Present): New subprogram.
24734         (Task_Body_Procedure): Removed.
24735         (Set_Task_Body_Procedure): Removed.
24736         These subprogram have been removed because the attribute
24737         Task_Body_Procedure has been moved to the corresponding task type
24738         or task subtype entity to leave a field free to store the list
24739         of interfaces implemented by a task (for AI-345)
24740         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
24741         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
24742         expression flag Do_Range_Check
24743         (Exception_Junk): Change to Flag7 to accomodate above change
24744         (Box_Present, Default_Name, Specification, Set_Box_Present,
24745         Set_Default_Name, Set_Specification): Expand the expression
24746         "X in N_Formal_Subprogram_Declaration" into the corresponding
24747         two comparisons. Required to use the csinfo tool.
24748
24749         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
24750         "with string" given.
24751
24752         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
24753         expression given.
24754
24755         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
24756         in 2005 mode
24757
24758         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
24759         attribute Task_Body_Procedure rather than the old semantic field that
24760         was available in the task_type_declaration node.
24761
24762         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
24763         interface type definitions.
24764         (P_Formal_Derived_Type_Definition): Modified to handle the list of
24765         interfaces.
24766
24767         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
24768         task type declaration.
24769         (P_Protected): Modified to handle the list of interfaces in a
24770         protected type declaration.
24771
24772 2005-03-15  Doug Rupp  <rupp@adacore.com>
24773             Vincent Celier  <celier@adacore.com>
24774
24775         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
24776         (Gen_Output_File_C): Likewise.
24777         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
24778
24779 2005-03-15  Thomas Quinot  <quinot@adacore.com>
24780
24781         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
24782         is an N_Raise_Constraint_Error node, create a new copy of it without
24783         going through a call to Duplicate_Subexpr.
24784
24785 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
24786             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24787             Nicolas Setton  <setton@adacore.com>
24788             Ed Schonberg  <schonberg@adacore.com>
24789
24790         PR ada/19900
24791         PR ada/19408
24792         PR ada/19140
24793         PR ada/20255
24794         * decl.c (gnat_to_gnu_field): Reject aliased components with a
24795         representation clause that prescribes a size not equal to the rounded
24796         size of their types.
24797         (gnat_to_gnu_entity, case E_Component): Always look at
24798         Original_Record_Component if Present and not the entity.
24799         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
24800         of tagged extension types by not making field for components that are
24801         inside the parent.
24802         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
24803         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
24804         expression to the type of the object when the object is constant.
24805         Reverse defer_debug_incomplete_list before traversing it, so that trees
24806         are processed in the order at which they were added to the list. This
24807         order is important when using the stabs debug format.
24808         If we are deferring the output of debug information, also defer this
24809         output for a function return type.
24810         When adding fields to a record, prevent emitting debug information
24811         for incomplete records, emit the information only when the record is
24812         complete.
24813         (components_to_record): New parameter defer_debug.
24814         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
24815         (gnat_to_gnu_field_decl): New function.
24816         (substitution_list, annotate_rep): Call it.
24817         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
24818         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
24819         No longer update discriminants to not be a COMPONENT_REF.
24820         (copy_alias_set): Strip padding from input type; also handle
24821         unconstrained arrays properly.
24822
24823         * gigi.h (write_record_type_debug_info): New function.
24824         Convert to use ANSI-style prototypes. Remove unused
24825         declarations for emit_stack_check, elab_all_gnat and
24826         set_second_error_entity.
24827         (gnat_to_gnu_field_decl): New decl.
24828
24829         * utils.c (write_record_type_debug_info): New function.
24830         (finish_record_type): Delegate generation of debug information to
24831         write_record_type_debug_info.
24832         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
24833         (update_pointer_to): Fix pasto.
24834         (convert) <UNION_TYPE>: Accept slight type variations when
24835         converting to an unchecked union type.
24836
24837         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
24838         replace the N_Freeze_Entity with a null statement.
24839
24840         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
24841         within a constrained subcomponent of an enclosing record, place the
24842         freeze nodes in the scope stack entry for the enclosing record.
24843         (Undelay_Type): New Subprogram.
24844         (Set_Small_Size): Pass T, the type to modify; all callers changed.
24845         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
24846         within records; allow them to have freeze nodes if their base types
24847         aren't frozen yet.
24848
24849         * exp_util.adb (Remove_Side_Effects): Properly test for
24850         Expansion_Delayed and handle case when it's inside an
24851         N_Qualified_Expression.
24852
24853         * sem_ch3.adb (Derived_Type_Declaration): New predicate
24854         Comes_From_Generic, to recognize accurately that the parent type in a
24855         derived type declaration can be traced back to a formal type, because
24856         it is one or is derived from one, or because its completion is derived
24857         from one.
24858         (Constrain_Component_Type): If component comes from source and has no
24859         explicit constraint, no need to constrain in in a subtype of the
24860         enclosing record.
24861         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
24862         Minor change to propagate Is_Ada_2005 flag
24863
24864         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
24865         Expansion_Delayed is False.
24866         (assoc_to_constructor): Ignore fields that have a
24867         Corresponding_Discriminant.
24868         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
24869         function returns "by target", dereference the target pointer using the
24870         type of the actual return value.
24871         <all>: Be prepared for a null gnu_result.
24872         (processed_inline_subprograms): Check flag_really_no_inline
24873         instead of flag_no_inline.
24874         (set_second_error_entity): Remove unused function.
24875         (gnat_to_gnu, case N_Selected_Component): Call
24876         gnat_to_gnu_field_decl.
24877         (assoc_to_constructor): Likewise.
24878
24879 2005-03-15  Robert Dewar  <dewar@adacore.com>
24880             Ed Schonberg  <schonberg@adacore.com>
24881             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24882
24883         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
24884         Must_Be_Byte_Aligned for cases where we do not need to use a
24885         System.Pack_nn unit.
24886
24887         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
24888         as procedures.
24889         Needed now that we do some processing for IN parameters as well. This
24890         may well fix some unrelated errors.
24891         (Expand_Call): Handle case of unaligned objects (in particular those
24892         that come from packed arrays).
24893         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
24894         renamed entity is an inherited operation, re-expand the call using the
24895         original operation, which is the one to call.
24896         Detect attempt to inline parameterless recursive subprogram.
24897         (Represented_As_Scalar): Fix to work properly with private types
24898         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
24899         accurate estimate. Yields True in far fewer cases than before,
24900         improving the quality of code that depends on this test.
24901
24902         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
24903         over both visible and private declarations to remove them from tree,
24904         and mark subprograms declared in package as eliminated, to prevent
24905         spurious use in subsequent compilation of generic units in the context.
24906
24907         * exp_util.ads: Minor cleanup in variable names
24908
24909         * sem_eval.ads, sem_eval.adb: Minor reformatting
24910         (Compile_Time_Known_Bounds): New function
24911
24912 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
24913
24914         * exp_ch7.adb (Convert_View): Use base types of underlying types when
24915         determining whether an unchecked conversion is needed for the argument
24916         of an initialization call.
24917
24918 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
24919
24920         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
24921         that appears in the instantiation rather than the internal subtype
24922         generated in the wrapper package, to avoid anomalies in gigi when the
24923         target is derived from a private type whose full view is an access type.
24924
24925 2005-03-15  Robert Dewar  <dewar@adacore.com>
24926
24927         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
24928         not needed.
24929         Add documentation to replace the use of this flag
24930         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
24931         the x86_64.
24932
24933 2005-03-15  Thomas Quinot  <quinot@adacore.com>
24934
24935         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
24936         here from exp_attr so it can be shared between exp_attr and exp_dist.
24937         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
24938         all TSS names, not a subset thereof, and the previous name introduced
24939         an unnecessarily confusion that a distinction might exist between
24940         "OK" TSS names and some "not OK" TSS names.
24941
24942 2005-03-15  Doug Rupp  <rupp@adacore.com>
24943
24944         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
24945         Command_Name.
24946
24947 2005-03-15  Pascal Obry  <obry@adacore.com>
24948             Eric Botcazou  <ebotcazou@adacore.com>
24949
24950         PR ada/20226
24951         PR ada/20344
24952         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
24953         when IN_RTS. This is to work around a bootstrap path problem.
24954
24955         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
24956         table and pass it to __gnat_install_SEH_handler().
24957         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
24958
24959         * lang.opt: Fix specification of -fRTS=.
24960
24961 2005-03-15  Doug Rupp  <rupp@adacore.com>
24962             Bernard Banner  <banner@adacore.com>
24963             Vincent Celier  <celier@adacore.com>
24964             Arnaud Charlet  <charlet@adacore.com>
24965
24966         PR ada/6852
24967         This change works fine when gnatlib is built from the gcc directory,
24968         but does not work when using the libada Makefile, since GCC_FOR_TARGET
24969         is not passed to ada/Makefile.in, so more work is needed by a
24970         Makefile/configure expert.
24971
24972         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
24973         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
24974         Setup gnatlink switch -M for x86_64 linux, as it is already setup
24975         for Linux x86.
24976         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
24977         Run ranlib on libgccprefix.a
24978         Define PREFIX_OBJS for Darwin, to build libgccprefix.
24979         (ADA_INCLUDE_SRCS): Split Ada packages.
24980
24981 2005-03-15  Robert Dewar  <dewar@adacore.com>
24982
24983         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
24984
24985         * impunit.adb: Add GNAT.UTF_32
24986
24987         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
24988
24989         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
24990         now uses GNAT.UTF_32).
24991
24992         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
24993         capabilities for categorizing characters using Unicode categories
24994
24995 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
24996
24997         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
24998         instantiation that has been rewritten as a package body, retrieve spec
24999         to generate proper name for implicit_with_clause.
25000         (Install_Parents): Recognize a parent that is an instantiation but has
25001         been rewritten as a package declaration during analysis.
25002
25003 2005-03-15  Javier Miranda  <miranda@adacore.com>
25004             Ed Schonberg  <schonberg@adacore.com>
25005
25006         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
25007         parameter reported some error we immediately return. This improves the
25008         behaviour of the frontend in case of errors.
25009         (Install_Parent, Remove_Parent): Introduce new flag
25010         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
25011         ancestor of a generic child unit, when the child is being instantiated.
25012         (Inline_Instance_Body): If we are compiling the private
25013         part or the body of a child unit, restore the proper visibility of the
25014         parents after compiling the instance body.
25015
25016 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
25017             Javier Miranda  <miranda@adacore.com>
25018
25019         PR ada/15608
25020         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
25021         of a private type, in which case it is underlying_type that denotes
25022         the proper task. Also modified to use the new entity attribute
25023         that is directly available in the task type and task subtype entities
25024         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
25025         arrays when other dimensions than the first are constrained by
25026         discriminants of an enclosing record.
25027         (Insert_Explicit_Dereference): If the prefix is an indexed component or
25028         a combination of indexed and selected components, find ultimate entity
25029         and generate the appropriate reference for it, to suppress spurious
25030         warnings.
25031         (Note_Possible_Modification): If an entity name has no entity, return.
25032         (Is_Variable): A function call never denotes a variable.
25033         (Requires_Transient_Scope): For record types, recurse only on
25034         components, not on internal subtypes that may have been generated for
25035         constrained components.
25036
25037 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
25038
25039         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
25040         Eliminated as candidates for resolution. Both efficient, and avoids
25041         anomalies with operators declared in deleted code.
25042         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
25043         expansion is disabled (as when compiling a generic) to prevent spurious
25044         warnings on prefixes of selected components.
25045
25046 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
25047
25048         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
25049         attached to a list before checking whether it appears in the private
25050         declarations of the current package.
25051         (Make_Inequality_Operator): Insert declaration in proper declarative
25052         list rather than just setting the Parent field, so that
25053         Is_Private_Declaration can handle it properly.
25054
25055 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
25056
25057         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
25058         a renaming a body, check that the renamed subprogram in not intrinsic.
25059         (Find_Direct_Name): If several use_visible entities hide
25060         each other, and the context is a predefined file compiled through
25061         rtsfind, keep only the entity that comes from a predefined file.
25062
25063 2005-03-15  Geert Bosch  <bosch@adacore.com>
25064
25065         * s-fatgen.adb (Valid): Extend special exceptions to account for long
25066         long float padding to also cover AMD64 and IA64.
25067
25068 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
25069
25070         * s-imgwch.adb: Add with and use of Interfaces.
25071         (Img_Wide_Character): Change type of Val to Unsigned_16.
25072         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
25073
25074 2005-03-15  Matthew Gingell  <gingell@adacore.com>
25075
25076         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
25077
25078 2005-03-15  Robert Dewar  <dewar@adacore.com>
25079
25080         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
25081
25082         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
25083
25084         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
25085
25086 2005-03-15  Robert Dewar  <dewar@adacore.com>
25087
25088         * s-bitops.adb, s-bitops.ads,
25089         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
25090         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
25091         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
25092         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
25093         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
25094         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
25095         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
25096         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
25097         reformatting.
25098
25099 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
25100
25101         * utils2.c (build_binary_op): Fix typo.
25102
25103 2005-03-15  Doug Rupp  <rupp@adacore.com>
25104
25105         * s-crtl.ads (popen,pclose): New imports.
25106
25107 2005-03-15  Cyrille Comar  <comar@adacore.com>
25108
25109         * comperr.adb (Compiler_Abort): remove references to obsolete
25110         procedures in the bug boxes for various GNAT builds.
25111
25112 2005-03-15  Vincent Celier  <celier@adacore.com>
25113
25114         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
25115
25116 2005-03-15  Geert Bosch  <bosch@adacore.com>
25117             Arnaud Charlet  <charlet@adacore.com>
25118             Robert Dewar  <dewar@adacore.com>
25119             Cyrille Comar  <comar@adacore.com>
25120             Sergey Rybin  <rybin@adacore.com>
25121
25122         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
25123         too specific and long-winded to be appropriate for the GNAT User's
25124         Guide.
25125         Warn about use of GCC switches not documented in the GNAT User's Guide,
25126         as these may cause generated code to not conform to Ada semantics.
25127         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
25128         Add documentation for -gnat95 and -gnat05 switches
25129         Remove paragraph documenting obsolete way to refer to third party
25130         libraries.
25131         Add a few references to Ada_05 that were missing.
25132         Update documentation on -gnatZ/-gnatL.
25133         Document limitation when using -m64 under Solaris.
25134         Change the "Name Casing" subsection of the pretty-printer section
25135         according to the changes in the dictionary processing.
25136
25137         * gnat_rm.texi: Document the Ada_05 pragma.
25138         Section on record representation clauses describes the new more
25139         relaxed rules about placement of large packed bit array components.
25140         Add documentation of GNAT.UTF_32
25141
25142 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
25143
25144         * misc.c (gnat_post_options): Turn off structural
25145         aliasing for now.
25146
25147 2005-03-08  Laurent Guerby  <laurent@guerby.net>
25148
25149         * system-linux-sparc.ads: Fix typo in previous commit.
25150
25151 2005-03-07  James A. Morrison  <phython@gcc.gnu.org>
25152             Laurent Guerby  <laurent@guerby.net>
25153
25154         PR ada/20035
25155         * system-linux-sparc.ads: New.
25156         * Makefile.in: Add sparc linux entry.
25157
25158 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
25159
25160         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
25161         parameters as unused.
25162
25163 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
25164         Partial merge from libada-gnattools-branch:
25165
25166         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
25167         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
25168         into code in gnattools/Makefile.in.  Remove direct dependencies on
25169         stamp-tools by tools clauses.
25170         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
25171         * config-lang.in: Add gnattools to $lang_dirs.
25172
25173 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
25174
25175         PR ada/19942
25176         * utils.c (gnat_type_for_mode): Return null instead of ICE because
25177         we asked for an unknown mode.
25178
25179 2005-02-12  Richard Henderson  <rth@redhat.com>
25180
25181         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
25182         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
25183
25184 2005-02-10  Andreas Jaeger  <aj@suse.de>
25185
25186         * init.c (__gnat_initialize): Mark parameter as unused.
25187
25188 2005-02-09  Doug Rupp  <rupp@adacore.com>
25189
25190         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
25191         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
25192
25193 2005-02-09  Doug Rupp  <rupp@adacore.com>
25194
25195         * gnatchop.adb (dup, dup2),
25196         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
25197
25198         * gnatlbr.adb (mkdir),
25199         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
25200
25201         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
25202
25203 2005-02-09  Doug Rupp  <rupp@adacore.com>
25204
25205         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
25206
25207 2005-02-09  Robert Dewar  <dewar@adacore.com>
25208             Thomas Quinot  <quinot@adacore.com>
25209             Javier Miranda  <miranda@adacore.com>
25210             Pascal Obry  <obry@adacore.com>
25211             Ed Schonberg  <schonberg@adacore.com>
25212             Doug Rupp  <rupp@adacore.com>
25213             Gary Dismukes  <dismukes@adacore.com>
25214             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25215
25216         * g-zstspl.ads: New file.
25217
25218         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
25219
25220         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
25221         Ada 95 mode
25222         Add definition of Wide_Wide_Space for AI-285
25223
25224         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
25225         interface (to support Ada 95 and Ada 2005 units).
25226         Add Unbounded_IO files
25227         Add entries for Wide_Wide packages for AI-285
25228         Add list of containers packages to Ada 2005 unit list
25229
25230         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
25231         support new Unbounded_IO package cleanly.
25232
25233         * g-utf_32.ads, g-utf_32.adb: New files.
25234
25235         * Makefile.rtl: Add entry for g-utf_32
25236         Add new files for Unbounded_IO
25237         Adjust make file for new AI-285 wide wide packages
25238         Add AI-302 containers to the run time.
25239
25240         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
25241         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
25242         subprograms for AI-301.
25243
25244         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
25245
25246         * a-stunau.ads: Minor comment correction
25247
25248         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
25249         etc.
25250         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
25251         (Check_RPC): Update to match changes in expanded code.
25252         Clean up unused entity.
25253
25254         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
25255         was not taken into account.
25256         This includes proper initialization with Normalize_Scalars.
25257         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
25258         normalize scalars cases (particularly the latter) to do a better job
25259         of finding invalid representations.
25260
25261         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
25262
25263         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
25264         used
25265
25266         * exp_dist.adb: Add support for wide wide character type
25267         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
25268         private part, generate stub bodies at the end of the private part,
25269         not the visible part.
25270         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
25271         PolyORB support.
25272         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
25273         generic wrapper to execute final processing after completing the
25274         expansion of the RPC receiver for an RACW.
25275
25276         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
25277         packages and attributes.
25278         (Preset_Names): Addition of the new reserved words of Ada 2005,
25279         that is interface, overriding and synchronized.
25280         (Get_Pragma_Id): Give support to the use of the new reserved word
25281         "interface" as a pragma name.
25282         (Is_Pragma_Name): Give support to the use of the new reserved word
25283         "interface" as a pragma name.
25284         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
25285         attribute implementation.
25286
25287         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
25288         checks to entities that are output parameters of Asm operations.
25289         Handle the Stream_Size attribute.
25290         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
25291
25292         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
25293
25294         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
25295         for second parameter being 0.0.
25296         Add support for wide wide character type.
25297         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
25298
25299         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
25300         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
25301         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
25302         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
25303         for wide wide character cases.
25304
25305         * cstand.adb: Create entities for Wide_Wide_Character and
25306         Wide_Wide_String.
25307
25308         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
25309         accordance with AI-258.
25310         Add new declarations for 16/32 bit C character types (Part of AI285)
25311
25312         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
25313         (Obsolescent_Warning): New field
25314         (Rep_Clause): New local subprogram used to share code. Returns the rep
25315         clause for which the name is given in parameter.
25316         (Has_Stream_Size_Clause): New routine.
25317         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
25318         (Address_Clause): Implementation is now using Rep_Clause.
25319         (Alignment_Clause): Idem.
25320         (Size_Clause): Idem.
25321
25322         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
25323         entity in non-Ada 2005 mode and generate warning.
25324
25325         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
25326         (Prag): Code cleanup. Remove old gnat pragma "overriding"
25327
25328         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
25329         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
25330         on the named unit if the pragma is not in the current compilation unit,
25331         so that elaboration calls in the current unit can set up an elaboration
25332         dependency on the named unit, as needed.
25333         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
25334         subprogram as well as for subprograms declared within a package.
25335         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
25336         pragma overriding.
25337
25338         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
25339         to z) to avoid some instances of duplication for Wide_Wide packages.
25340
25341         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
25342         characters.
25343
25344         * scn.adb: Char_Literal_Value field is now a Uint
25345
25346         * scng.adb: Significant rewrite to handle new Ada 2005 features
25347         allowing wide and wide wide characters in program text, e.g. for
25348         identifiers, as described in AI-285.
25349         (Set_Reserved): New procedure, makes setting up keywords cleaner.
25350         (Initialize_Scanner): Register the new reserved words of Ada 2005.
25351         (Scan): Give support to the new reserved words.
25352
25353         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
25354         warning notifying that interface, overriding, and synchronized are
25355         new reserved words.
25356         (P_Pragma): Allow the use of the new reserved word "interface" as
25357         a pragma name.
25358
25359         * gnatls.adb, gnatbind.adb,
25360         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
25361         identifiers named "interface" to "SAL_Interface".
25362
25363         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
25364         (Structured Exception handling).
25365         (Gen_Main_C): Idem.
25366
25367         * bindgen.adb:
25368         (Gen_Main_Ada): Set the default exit code if specified.
25369         (Gen_Main_C): Likewise.
25370         Part of *DC20-006.
25371         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
25372         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
25373
25374         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
25375         new -Xnnn switch.
25376
25377         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
25378         has a collision with the new Ada 2005 "interface" reserved word.
25379
25380         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
25381         generate a warning notifying that interface, overriding, and
25382         synchronized are new reserved words.
25383
25384         * scans.ads (Token_Type): Addition of the tokens corresponding to the
25385         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
25386         and Tok_Synchronized.
25387
25388         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
25389         "dispatching" rather than "primitive" operations, since dispatching
25390         calls are now allowed to abstract formal subprograms (which are not
25391         primitive).
25392         Char_Literal_Value field is now a Uint
25393         (Resolve_Slice): If the prefix is an access to an unconstrained array,
25394         compute the actual subtype of the designated object to impose the proper
25395         index constraints.
25396         (Resolve_Selected_Component): Do not insert an access check if the
25397         prefix is an access type: such a node is expanded into an explicit
25398         dereference, on which the access check is performed anyway. Removes
25399         expensive duplicate checks.
25400         (Resolve_Call): Use new flag Is_Obsolescent and field
25401         Obsolescent_Warning so that pragma Obsolescent works on library
25402         subprograms.
25403         Add support for wide wide character type
25404         (Resolve_Allocator): Replace the error message on wrong null-exclusion
25405         value by a warning message.
25406         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
25407         as fixed-point, and one of the operands is non-static and universal, it
25408         can only be an illegal exponentiation operation, in which case there is
25409         no real value to retrieve.
25410
25411         * exp_strm.adb: Add support for wide wide character type
25412         (Build_Elementary_Input_Call): Compute the size of the stream element by
25413         querying the rep chain to find the Stream_Attribute attribute value.
25414         (Build_Elementary_Write_Call): Ditto.
25415
25416         * sem_aggr.adb: Char_Literal_Value field is now a Uint
25417         Add support for wide wide character type
25418         Replace the error messages on wrong null-exclusion value by warnings
25419         as described in Ada 2005.
25420         (Resolve_Extension_Aggregate): Document the fact that the error
25421         message on class-wide expressions in extensions aggregates.
25422
25423         * sem_case.adb: Add support for wide wide character type
25424
25425         * sem_ch13.adb: Add support for wide wide character type
25426         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
25427
25428         * sem_ch3.adb: Add support for wide wide character type
25429         (Process_Subtype): If constraint is illegal for the type, set Ekind of
25430         now-useless Itype, to prevent cascaded errors on a compiler built
25431         without -gnatp.
25432
25433         * sem_ch8.adb: Add with and use of Sem_Disp.
25434         (Analyze_Subprogram_Renaming): Replace unclean uses of
25435         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
25436         of Corresponding_Spec to Empty).
25437         (Attribute_Renaming): Replace use of Corresponding_Spec with
25438         Corresponding_ Formal_Spec and simplify condition.
25439         (Use_One_Package): Check that scope of homonym of identifier is defined,
25440         before checking whether it is a wrapper package.
25441         Add support for wide wide character type
25442
25443         * sem_eval.adb: Add support for wide wide character type.
25444         (Eval_Arithmetic_Op): Check for compile time known signed integer
25445         overflow in the non-static case.
25446         (Subtypes_Statically_Match): A formal scalar type and its base type do
25447         not statically match.
25448
25449         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
25450         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
25451         subtype).
25452         (Unit_Declaration_Node): Ditto.
25453         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
25454         has a packed array type, the prefix has been rewritten into a type
25455         conversion. Determine variable-ness from the converted expression.
25456         Handle wide wide character cases.
25457
25458         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
25459
25460         * stringt.ads, stringt.adb: Handle full UTF-32 range.
25461         Remove ["0A"] from comment, since it can look like a line terminator.
25462         Currently we don't permit this, but this is under discussion by the
25463         ARG, and it is easy enough to use a different example.
25464
25465         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
25466         handling UTF-32 encoding for wide wide character.
25467         Implement new brackets coding ["hhhhhhhh"]
25468         Add UTF-8 encodings for full UTF-32 range
25469
25470         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
25471
25472         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
25473         bit range Add full UTF-32 support.
25474         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
25475         notify that constraint error will be raised at run-time
25476         because a null value is assigned to a null-excluding object.
25477         Remove some obsolete declarations and make Char_Code
25478         unsigned.
25479
25480         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
25481         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
25482         Rcheck subprograms.
25483
25484         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
25485         wrong null-exclusion value by a warning message.
25486         (Enable_Range_Check): Do range check if the prefix is an
25487         explicit dereference whose designated object is an unconstrained array.
25488         Current algorithm for removing duplicate checks is over-eager in this
25489         case.
25490
25491         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
25492         null-exclusion value by a warning message
25493
25494         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
25495         completely. Add support for Uint2 field
25496
25497         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
25498         exp_prag.adb: Char_Literal_Value field is now a Uint.
25499
25500         * exp_util.adb (Insert_Actions): Replace
25501         N_Formal_Subprogram_Declaration by
25502         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
25503         Char_Literal_Value field is now a Uint.
25504
25505         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
25506         defined for subprogram renaming declarations. When set, the field
25507         indicates the defining entity of a corresponding formal subprogram
25508         when the renaming corresponds to a formal subprogram association in an
25509         instantiation.
25510         (Set_Corresponding_Formal_Spec): New procedure to return
25511         Corresponding_Formal_Spec field.
25512         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
25513         (which is now a subtype).
25514         Char_Literal_Value field is now a Uint
25515
25516         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
25517         pointer to the base of the dispatch table.
25518         Minor changes to comments.
25519         (Controlling_Type): New function for determining the tagged type
25520         associated with a tagged primitive subprogram.
25521         (Expand_Dispatching_Call): Add support for a controlling actual that is
25522         directly a value of type Ada.Tag rather than a tagged object.
25523
25524         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
25525         describing the new layout.
25526         (Dispatch_Table): The expander computes the actual array size, allocates
25527         the Dispatch_Table record accordingly, and generates code that displaces
25528         the base of the record after the Typeinfo_Ptr component. The access to
25529         these components is done by means of local functions.
25530         (Offset_To_Top): New function.
25531         (Typeinfo_Ptr): New function.
25532         (Get_TSD): Modified to access the new position of the TSD.
25533         (Set_TSD): Modified to save the TSD in its new position.
25534
25535         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
25536         case of formal abstract subprograms. Add check and message for -gnat05.
25537         Update comments.
25538
25539         * sem_ch12.adb: Add with and use for Sem_Disp.
25540         (Analyze_Associations): Minor change from "=" to "in" for use of
25541         N_Formal_Subtype_Declaration (which is now a subtype).
25542         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
25543         N_Formal_Subtype_Declaration (which is now a subtype).
25544         (Analyze_Formal_Subprogram): Add handling for
25545         N_Formal_Abstract_Subprogram, marking the formal as abstract and
25546         dispatching, setting the controlling status of the formal parameters
25547         and result, and issuing an error if there is no controlling type for
25548         the formal subprogram.
25549         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
25550         which is an unclean use of that field, we set the new field
25551         Corresponding_Formal_Spec to make the formal subprogram available to
25552         processing in Analyze_Subprogram_Declaration.
25553         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
25554         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
25555         Constrained, so that it is is does not statically match its anonymous
25556         base type.
25557
25558         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
25559         abstract formal subprograms in error check for functions returning
25560         abstract types. Set scope of new designator for
25561         a parameterless subprogram, so that it is available when checking the
25562         body for nested subprograms, before full analysis of said body.
25563         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
25564         subprogram only if inner one comes from source.
25565         (Analyze_Function_Call): If the call is given in object notation, the
25566         analysis of the name rewrites the node and analyzes it with the proper
25567         argument list. After analyzing the name, if the call has been rewritten
25568         and the result type is set, no further analysis is needed.
25569         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
25570         mark in function specification, in a context where the formals are
25571         visible and hide outer homographs.
25572
25573         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
25574         as the tagged type for the cases of abstract formal subprograms and
25575         renamings of those.  Clean up spec comments.
25576         (Check_Dispatching_Context): Add error message to indicate "abstract
25577         procedure", covering the case of a call to a formal abstract procedure
25578         that has statically tagged operands.
25579         (Check_Dispatching_Call): Check for the case of an actual given by
25580         a tag-indeterminate function call whose type is an ancestor of the
25581         containing call's associated tagged type. This situation can occur
25582         for inherited primitives with function defaults. In this case we
25583         use the tagged type's tag directly as the controlling argument for
25584         the calls.
25585         (Expand_Call): Name change on call to Expand_Dispatch_Call.
25586
25587         * sprint.adb (Sprint_Node_Actual): Split
25588         N_Formal_Subprogram_Declaration into two alternatives for the new
25589         cases N_Formal_Abstract_Subprogram_Declaration and
25590         N_Formal_Concrete_Subprogram_Declaration.
25591         Char_Literal_Value field is now a Uint.
25592
25593         * trans.c: Get rid of junk Uint2 reference.
25594         Char_Literal_Value field is now a Uint.
25595         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
25596         (gigi): Correct third arg to gimplify_body.
25597
25598         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
25599         (TYPE_LANG_FLAG_0): Check for record or union.
25600
25601         * treepr.adb: Char_Literal_Value field is now a Uint
25602
25603         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
25604         UI_From_CC.
25605
25606         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
25607         Add full UTF-32 support
25608         Char_Code is now 32 bits
25609
25610         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
25611         wide character UTF_32 line terminators.
25612         Initialize Main_Source_File to avoid error when no main
25613         source is loaded.
25614
25615         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
25616         (Main_Source_File) when no main source has been loaded, to avoid
25617         potential crash.
25618
25619 2005-02-09  Robert Dewar  <dewar@adacore.com>
25620
25621         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
25622         Fix name of Set routine
25623
25624         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
25625         fixed packages.
25626
25627         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
25628         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
25629         fixed packages
25630
25631         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
25632         forms of Get_Line subprograms for AI-301.
25633
25634         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
25635         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
25636         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
25637         a-stwima.ads: Minor reformatting.
25638
25639 2005-02-09  Doug Rupp  <rupp@adacore.com>
25640             Thomas Quinot  <quinot@adacore.com>
25641
25642         * adaint.c, adaint.h
25643         [VMS] (to_ptr32): New function.
25644         (MAYBE_TO_PTR32): New macro.
25645         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
25646         for pointer size.
25647         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
25648         [VMS] (#define fork()): Remove since unneccessary.
25649         (__gnat_set_close_on_exec): New routine to support
25650         GNAT.OS_Lib.Set_Close_On_Exec.
25651
25652         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
25653         the parent side as close-on-exec so that they are not inherited by the
25654         child.
25655
25656         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
25657         set or clear the FD_CLOEXEC flag on a file descriptor.
25658
25659 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
25660             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25661
25662         PR ada/19386
25663         * decl.c:
25664         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
25665         on the field if Pragma Component_Alignment (Storage_Unit).
25666         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
25667         side-effects as if it were a constant; also make SAVE_EXPR to protect
25668         side-effects.
25669         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
25670         UNION_TYPE.
25671         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
25672         (components_to_record): Test it.
25673         Fix improper usage of REFERENCE_CLASS_P.
25674
25675         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
25676         RECORD_TYPE.
25677
25678         * utils2.c: Minor reformatting.
25679
25680         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
25681         handle other cases like RECORD_TYPE.
25682
25683         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
25684
25685 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
25686
25687         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
25688         component of an array of arrays in an assignment context, and the
25689         aggregate has component associations that require sliding on
25690         assignment, force reanalysis of the aggregate to generate a temporary
25691         before the assignment.
25692         (Must_Slide): Make global to the package, for use in Gen_Assign.
25693
25694 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
25695
25696         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
25697         unchecked union with no inferable discriminants, return a
25698         Raise_Program_Error node, rather than inserting it at the point the
25699         type is frozen.
25700         (Expand_Record_Equality, Component_Equality): Handle properly the case
25701         where some subcomponent is an unchecked union whose generated equality
25702         code raises program error.
25703
25704 2005-02-09  Doug Rupp  <rupp@adacore.com>
25705
25706         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
25707         [VMS] (#define exit hack): Remove.
25708
25709 2005-02-09  Pascal Obry  <obry@adacore.com>
25710             Arnaud Charlet  <charlet@adacore.com>
25711
25712         * init.c (__gnat_initialize): Add a new parameter eh which contains the
25713         address of the exception registration. The Win32 version of this
25714         routine calls __gnat_install_SEH_handler() to initialize the SEH
25715         (Structured Exception Handling) handler.
25716         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
25717         SEH (Structured Exception Handling) now.
25718         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
25719         (__gnat_initialize for ppc-vxworks): Adjust comments and the
25720         preprocessor condition protecting the call to the extra eh setup
25721         subprogram, which is only available for the ppc target.
25722         (__gnat_clear_exception_count): replaced reference to
25723         variable taskIdCurrent by call to taskIdSelf(), cleaner.
25724
25725         * seh_init.c: New file.
25726
25727         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
25728         (GNATBIND_OBJS): Idem.
25729
25730         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
25731         routine takes a new parameter (a pointer to the exception registration
25732         for the SEH (Structured Exception Handling) support.
25733
25734         * raise.h: (__gnat_install_SEH_handler): New prototype.
25735         Update copyright notice.
25736
25737         * s-tassta.adb (Task_Wrapper): Declare the exception registration
25738         record and initialize it by calling __gnat_install_SEH_handler.
25739
25740 2005-02-09  Vincent Celier  <celier@adacore.com>
25741
25742         * make.adb (Gnatmake): Do not fail when the main project has no object
25743         directory.
25744
25745 2005-02-09  Doug Rupp  <rupp@adacore.com>
25746
25747         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
25748         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
25749         [VMS]: Add translations for g-enblsp.adb.
25750
25751         * s-asthan-vms.adb: Removed.
25752         * s-asthan-vms-alpha.adb: Added.
25753
25754 2005-02-09  Pascal Obry  <obry@adacore.com>
25755
25756         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
25757         (LIBGNAT_OBJS): Add seh_init.o.
25758
25759 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
25760
25761         PR ada/16592
25762         * Makefile.in: Link all gnat tools with -static-libgcc, since
25763         -shared-libgcc is now used by default on some systems (e.g. linux with
25764         recent binutils).
25765         Remove references to Makefile.prolog/generic, no longer used.
25766
25767 2005-02-09  Vincent Celier  <celier@adacore.com>
25768
25769         * prj-makr.adb (Process_Directory): Put file name in canonical case
25770         before matching against the patterns.
25771         If gnatname has been invoked as <prefix>-gnatname
25772         then invoke the compiler as <prefix>-gcc, not just "gcc".
25773
25774 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
25775
25776         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
25777         with expansion disabled. The actual subtype is needed among other
25778         places when the selected component appears in the context of a loop
25779         bound, and denotes a packed array.
25780         (Operator_Check): Always use the first subtype in the
25781         error message, to avoid the appearance of internal base types.
25782         (Transform_Object_Operation): Copy each actual in full
25783         to the parameter associations of the constructed call, rather than
25784         using the shallow copy mechanism of New_Copy_List. This ensures that
25785         the chaining of named associations is done properly.
25786         (Complete_Object_Operation): Rewrite node, rather than
25787         replacing it, so that we can trace back to the original selected
25788         component.
25789
25790         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
25791         and calls that use object notation, if the called function is not
25792         declared  in a withed unit, place the elaboration constraint on the
25793         unit in the context that makes the function accessible.
25794         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
25795         imposes an elaboration constraint between two packages.
25796
25797 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
25798
25799         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
25800         views of a private type after handling its private dependents, to
25801         maintain proper stack discipline between entry and exit from the
25802         package.
25803
25804 2005-02-09  Cyrille Comar  <comar@adacore.com>
25805
25806         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
25807         Minor reformatting.
25808
25809 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
25810
25811         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
25812         fields for foreign threads.
25813
25814 2005-02-09  Doug Rupp  <rupp@adacore.com>
25815
25816         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
25817         recursion warnings when compiled with -gnatdm.
25818
25819 2005-02-09  Robert Dewar  <dewar@adacore.com>
25820
25821         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
25822         Slight fix to documentation of -gnaty with no parameters
25823
25824         * xr_tabls.ads: Add ??? comment for missing overall comment
25825
25826         * xsinfo.adb: Make default file name be sinfo.h, since this is what
25827         we now use by default.
25828
25829         * xsnames.adb: Adjust end of file test to look for five space followed
25830         by '#' instead of six spaces. The format of xsnames.adb was modified
25831         in the last update.
25832
25833         * a-numeri.ads: Add reference to AI-388 for greek letter pi
25834         identifier.
25835
25836         * clean.adb: Minor reformatting.
25837
25838         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
25839         gnatname.adb: Minor reformatting
25840         Add 2005 to copyright output when utility is run
25841
25842         * csets.adb: Eliminate obsolete comment
25843
25844         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
25845         Update comments.
25846
25847         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
25848
25849 2005-02-09  Sergey Rybin  <rybin@adacore.com>
25850
25851         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
25852         the difference between compact and incompact layout and add the record
25853         representation clause to the example illustrating different layouts.
25854         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
25855         component clauses").
25856
25857 2005-02-09  Florian Villoing  <villoing@adacore.com>
25858
25859         * gnat_ugn.texi: Fix typos.
25860         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
25861         @file.
25862         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
25863         in the generated documentation.
25864
25865 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
25866
25867         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
25868         longer supported.
25869         Update linker wrapper when linking with non GNU C++.
25870
25871 2005-02-09  Pascal Obry  <obry@adacore.com>
25872
25873         * gnat_ugn.texi:
25874         Document the procedure to debug the DllMain routine on Windows.
25875         Add note about -funwind-tables and mixed Ada and C/C++ programming in
25876         ZCX mode.
25877         Document new BIND qualifer /RETURN_CODES=VMS.
25878
25879 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
25880
25881         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
25882         Edited gnatmetric chapter
25883
25884 2005-02-09  Robert Dewar  <dewar@adacore.com>
25885
25886         * gnat_rm.texi:
25887         Changes to document new wide wide character support
25888         For AI-285
25889         Update documentation on Normalize_Scalars and Initialize_Scalars
25890
25891 2005-02-09  Pascal Obry  <obry@adacore.com>
25892
25893         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
25894
25895 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
25896
25897         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
25898         from the VxWorks kernel) that is needed for getting the active
25899         priority of the different tasks.
25900
25901         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
25902         Use a pragma Elaborate_Body in the spec file instead.
25903         Noticed by code reading.
25904
25905 2005-02-09  Thomas Quinot  <quinot@adacore.com>
25906
25907         * exp_util.ads: Minor correction in comment.
25908
25909 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
25910
25911         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
25912         since this procedure is now too complex to be worth inlining.
25913
25914 2005-02-09  Richard Henderson  <rth@redhat.com>
25915
25916         * utils.c (gnat_define_builtin): Remove.
25917         (gnat_install_builtins): Use build_common_builtin_nodes.
25918
25919 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
25920
25921         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
25922         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
25923         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
25924         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
25925         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
25926         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
25927         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
25928         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
25929         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
25930         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
25931         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
25932         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
25933         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
25934         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
25935         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
25936         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
25937         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
25938         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
25939         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
25940         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
25941         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
25942         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
25943         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
25944         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
25945         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
25946         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
25947         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
25948         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
25949         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
25950         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
25951         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
25952         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
25953         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
25954         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
25955         library.
25956
25957 2005-01-27  Laurent Guerby  <laurent@guerby.net>
25958
25959         * Makefile.in: Fix a-intnam.ads from previous commit,
25960         add 2005 to copyright.
25961         * a-intman-rtems.ads: Renamed to...
25962         * a-intnam-rtems.ads:
25963
25964 2005-01-27  Laurent Guerby  <laurent@guerby.net>
25965
25966         * Makefile.in: Rename GNAT RTEMS specific files.
25967         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
25968         5rosinte.ads, 5rparame.adb: Replaced by files below.
25969         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
25970         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
25971
25972 2005-01-27  Joel Sherrill  <joel.sherrill@oarcorp.com>
25973             Laurent Guerby  <laurent@guerby.net>
25974
25975         PR ada/19488
25976         * 5rosinte.ads: Add No_Key constant.
25977         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
25978         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
25979
25980 2005-01-26  Laurent Guerby  <laurent@guerby.net>
25981
25982         PR ada/19414
25983         * i-cobol.adb (Valid_Numeric): Handle zero length case.
25984
25985 2005-01-20  Richard Henderson  <rth@redhat.com>
25986
25987         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
25988         a-intnam-linux.ads and system-linux-alpha.ads.
25989         * a-intnam-linux-alpha.ads: Remove file.
25990         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
25991         * system-linux-alpha.ads: New file.
25992
25993 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
25994
25995         PR ada/13470
25996         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
25997         set to the new string.
25998
25999 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
26000
26001         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
26002         to True.
26003
26004 2005-01-18  Richard Henderson  <rth@redhat.com>
26005
26006         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
26007         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
26008         for alpha-linux.
26009         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
26010
26011 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
26012
26013         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
26014         (GCC_ZCX_Support): Likewise.
26015
26016 2005-01-11  Bastian Blank  <waldi@debian.org>
26017
26018         * system-linux-s390.ads: Define Preallocated_Stacks.
26019         * system-linux-s390x.ads: Likewise.
26020
26021 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
26022
26023         * gnat_ugn.texi: Fix texi errors with null variables.
26024
26025 2005-01-03  Thomas Quinot  <quinot@adacore.com>
26026
26027         * gen-soccon.c: New utility program to generate g-soccon.ads
26028         automatically.
26029
26030         * socket.c, gsocket.h: Split inclusion of system header files into a
26031         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
26032
26033         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
26034         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
26035         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
26036         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
26037         should not be edited by hand anymore, but should be regenerated using
26038         gen-soccon.
26039
26040 2005-01-03  Robert Dewar  <dewar@adacore.com>
26041             Ed Schonberg  <schonberg@adacore.com>
26042             Vincent Celier  <celier@adacore.com>
26043
26044         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
26045         on/off, since this is an obsolescent feature, for which we now generate
26046         a warning.
26047
26048         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
26049         warning mode is set and obsolescent usage of this attribute occurs.
26050         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
26051         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
26052         predates, and partly motivates, the adoption of the AI.
26053         Implement new Ada 2005 attribute Mod
26054
26055         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
26056         attribute Mod.
26057
26058         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
26059
26060         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
26061         pragma restrictions.
26062         New entry for Ada 2005 attribute Mod.
26063
26064         * par-prag.adb:
26065         Add recognition of new pragma Restrictions No_Dependence
26066         Recognize restriction No_Obsolescent_Features at parse time
26067
26068         * bcheck.adb: Add circuitry for checking for consistency of
26069         No_Dependence restrictions.
26070
26071         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
26072         restrictions.
26073
26074         * restrict.ads, restrict.adb: Add subprograms to deal with
26075         No_Dependence restrictions.
26076
26077         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
26078         restrictions.
26079
26080         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
26081         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
26082
26083         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
26084         dummy parameter to scng instantiation.
26085         Needed for new restriction No_Obsolescent_Features
26086
26087         * scn.adb: (Obsolescent_Check): New procedure
26088         Needed for new restriction No_Obsolescent_Features
26089
26090         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
26091         specified by AI-285, needed for implementation of AI-388 (adding greek
26092         pi to Ada.Numerics).
26093         Add new generic formal to scng, needed for new restriction
26094         No_Obsolescent_Features.
26095
26096         * s-rident.ads: Add new restriction No_Obsolescent_Features.
26097
26098         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
26099         restrictions lines.
26100         (Scan_ALI): When finding an unexpected character on an R line, raise
26101         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
26102         Ignore_Errors is True, default restrictions are set and scanning of the
26103         ALI file continues with the next line. Also, when Bad_R_Line is raised
26104         and Ignore_Errors is True, skip to the end of le line.
26105
26106         * sem_ch10.adb: Check that explicit with's do not violate
26107         No_Dependence restrictions.
26108         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
26109         illegal context clauses containing child units of instance.
26110
26111         * sem_prag.adb: Processing and checking for new No_Dependence
26112         restrictions.
26113         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
26114         analyze and check the External argument.
26115
26116         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
26117
26118 2005-01-03  Robert Dewar  <dewar@adacore.com>
26119
26120         * atree.adb: Add a fifth component to entities
26121         This allows us to add 32 flags and four new fields
26122
26123         * atree.ads: Add a fifth component to entities
26124         This allows us to add 32 flags and four new fields
26125
26126         * einfo.ads, einfo.adb: Document new fields and new flags now available
26127         Add routines for printing new fields
26128
26129         * treepr.adb: Call routines to print out additional fields if present
26130
26131 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
26132
26133         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
26134         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
26135
26136         * Makefile.in: Add support to build shared Ada libraries on solaris x86
26137         Remove gpr2make, replaced by gprmake.
26138         Remove references to gnatmem and libaddr2line.
26139         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
26140         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
26141         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
26142         a-numaux-darwin.ads and a-numaux-darwin.adb
26143         Enable mlib-tgt-lynxos.adb on lynxos.
26144
26145         * Make-lang.in: Remove rules for gpr2make.
26146         When generating sdefault.adb, do not call Relocate_Path
26147         on S3 for function Target_Name, as it is not a path.
26148         Remove references to gnatmem and libaddr2line.
26149
26150         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
26151         files.
26152
26153 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
26154
26155         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
26156         address is incompatible with its base type alignment constraints when
26157         this can be decided statically.
26158
26159 2005-01-03  Olivier Hainque  <hainque@adacore.com>
26160
26161         * decl.c (compatible_signatures_p): New function. The intended purpose
26162         is to check if two function signatures for a call-site and a callee are
26163         compatible enough for the call to be valid. The underlying purpose is
26164         to check if a call to a mapped builtin is using the right interface.
26165         The current code actually does not check antyhing - this a placeholder
26166         for future refinements.
26167         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
26168         builtin calls for convention Intrinsic.
26169
26170         * gigi.h (builtin_decl_for): Declare (new function).
26171
26172         * utils.c (gnat_install_builtins): Install the target specific builtins.
26173         (builtin_decl_for): New function, provide a dummy body for now.
26174
26175 2005-01-03  Geert Bosch  <bosch@adacore.com>
26176
26177         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
26178         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
26179         (Pred): Implement in terms of Succ.
26180
26181         * trans.c (convert_with_check): Reimplement conversion of float to
26182         integer.
26183
26184 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
26185             Vincent Celier  <celier@adacore.com>
26186
26187         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
26188         bounds can be negative, and must be declared Int, not Nat.
26189
26190         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
26191         array is checked after using the index in the array.
26192
26193         * makegpr.adb (Add_Switches): Check if there is a package for the
26194         processor. If there is no package, do not look for switches.
26195
26196 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
26197
26198         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
26199         generation of predefined stream operations (specs and bodies) should
26200         proceed. Under various restrictions these subprograms must not be
26201         generated.
26202
26203 2005-01-03  Thomas Quinot  <quinot@adacore.com>
26204
26205         * exp_dist.adb:
26206         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
26207         amount of PCS-specific code in RACW stubs generation.
26208         (Copy_Specification): Set Etype on copied formal parameter entities, as
26209         this information is needed for PolyORB stubs generation.
26210         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
26211         variable Dynamic_Async.
26212         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
26213         (Build_RPC_Receiver_Specification): Make generic again, as recent
26214         changes have allowed RPC receivers to have the same profile for both
26215         variants of the PCS.
26216         Reorganise RPC receiver generation to reduce differences between the
26217         structure of GARLIC and PolyORB RPC receivers.
26218         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
26219         PCS-specific.
26220         Simplify elaboration code for RCI packages.
26221
26222         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
26223         generation to reduce differences between the structure of GARLIC and
26224         PolyORB RPC receivers.
26225
26226         * s-stratt.adb: Fix typo in comment.
26227
26228 2005-01-03  Thomas Quinot  <quinot@adacore.com>
26229
26230         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
26231         copied from Make_Init_Call).
26232
26233         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
26234         reads and assignments on a temporary variable declared with appropriate
26235         discriminants.
26236
26237 2005-01-03  Robert Dewar  <dewar@adacore.com>
26238
26239         * i-c.adb (To_C): Raise CE if string is null and Append_Null
26240
26241 2005-01-03  Robert Dewar  <dewar@adacore.com>
26242
26243         * i-cstrin.adb (Update): Do not append a null in form called with a
26244         String. This avoids unintended behavior.
26245
26246 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
26247
26248         PR ada/17527
26249         * init.c: Fix warnings on Free BSD section.
26250
26251 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
26252
26253         PR ada/16949
26254         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
26255         xsinfo.adb).
26256
26257 2005-01-03  Vincent Celier  <celier@adacore.com>
26258
26259         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
26260         libraries when Unique_Compile is True (-u switch).
26261         (Gnatmake): ditto.
26262
26263 2005-01-03  Robert Dewar  <dewar@adacore.com>
26264
26265         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
26266         upper case letter or underscore after W, as allowed by spec.
26267
26268 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
26269
26270         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
26271         darwin port by using proper type definitions from header files.
26272         Use SIGTERM instead of SIGABRT for SIGADAABORT.
26273
26274 2005-01-03  Robert Dewar  <dewar@adacore.com>
26275
26276         * par.adb: Enhance error message handling for configuration file
26277         pragmas.
26278
26279 2005-01-03  Robert Dewar  <dewar@adacore.com>
26280
26281         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
26282         removed during the previous update (test properly for case of dividing
26283         largest negative number by -1, which generates overflow).
26284
26285 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
26286             Sergey Rybin  <rybin@adacore.com>
26287
26288         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
26289         to use as the defining identifier for a formal package.
26290         (Remove_Parent): If the instance takes place within (an instance of)
26291         a sibling, preserve private declarations of common parent.
26292
26293 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
26294
26295         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
26296         to determine whether one of the operands is a fixed-point type for
26297         which a user-defined multiplication or division operation might be
26298         defined.
26299
26300         * sem_res.adb (Valid_Conversion): The legality rules for conversions
26301         of access types are symmetric in Ada 2005: either designated type can
26302         be unconstrained.
26303
26304 2005-01-03  Vincent Celier  <celier@adacore.com>
26305
26306         * s-fileio.adb (Temp_File_Record): Change length of string component
26307         Name from L_tmpnam + 1 to max_path_len + 1.
26308
26309 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
26310
26311         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
26312         Self_Id.Deferral_Level = 0.
26313         (Do_Pending_Action): Move this function to the spec.
26314
26315         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
26316         Do_Pending_Action explicitely when needed, in case we're using
26317         No_Abort restrictions.
26318
26319         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
26320         deferral level since it will not get changed by the generated code.
26321         Keeping a default value of 1 would prevent some operations (e.g.
26322         select or delay) to proceed successfully.
26323
26324 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
26325             Robert Dewar  <dewar@adacore.com>
26326             Cyrille Comar  <comar@adacore.com>
26327
26328         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
26329         porting guide chapter (vms version).
26330         Revised doc title (removed "for native platforms") and subtitle.
26331         Add discussion on warning flag for obsolescent features. First we
26332         note that it applies to obsolete GNAT features, which was previously
26333         omitted. Second we contrast the behavior with that of the new
26334         Ada 2005 AI-368 restriction No_Obsolescent_Features.
26335         Preliminary rewriting of GNAT & libraries chapter in order to take
26336         into account default project locations & new project manager
26337         capabilities.
26338
26339 2005-01-03  Robert Dewar  <dewar@adacore.com>
26340
26341         * cstand.adb (Create_Operators): Clean up format and documentation of
26342         unary and binary operator result tables. No change in code, just
26343         reformatting and addition of comments.
26344
26345         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
26346         sem_ch2.adb: Minor reformatting
26347
26348         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
26349         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
26350         comments for Tree_Read and Tree_Write.
26351
26352 2005-01-03  Pascal Obry  <obry@adacore.com>
26353
26354         * exp_attr.ads: Minor reformatting.
26355
26356 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
26357
26358         * comperr.adb (Compiler_Abort): Add specialized message for GAP
26359         versions.
26360
26361 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
26362
26363         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
26364         whether the ancestor type is private, as may be the case with nested
26365         instantiations.
26366
26367 2004-12-30  Sohail Somani  <sohail@sohailsomani.com>
26368
26369         PR ada/19128
26370         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
26371
26372 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
26373
26374         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
26375         * utils2.c (build_unary_op): Likewise.
26376
26377 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26378
26379         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
26380
26381 2004-12-19  Richard Henderson  <rth@redhat.com>
26382
26383         * trans.c (gigi): Update gimplify_body call.
26384
26385 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
26386
26387         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
26388
26389 2004-12-07  Ed Falis  <falis@adacore.com>
26390
26391         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
26392         current task being suspended.
26393
26394         * init.c (__gnat_clear_exception): added to reset VxWorks exception
26395         count.
26396         (__gnat_map_signal): removed test for current task being suspended.
26397
26398 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
26399
26400         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
26401         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
26402         targets (such as AAMP).
26403
26404 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
26405
26406         * atree.adb (Visit_Itype): Create a new name for the generated itype,
26407         because the back-end may otherwise treat it as a redefinition of the
26408         old symbol.
26409
26410 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
26411
26412         * back_end.adb (Scan_Back_End_Switches): Accept --param.
26413
26414         * lang-specs.h: Accept --param.
26415
26416 2004-12-07  Vincent Celier  <celier@adacore.com>
26417
26418         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
26419         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
26420         Current_Body_Suffix => Ada_Body_Suffix).
26421         Take into account Externally_Built attribute.
26422
26423         * clean.adb (In_Extension_Chain): Always return False when one of the
26424         parameter is No_Project.
26425         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
26426         Ada_Language_Index).
26427         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
26428         Process_Languages for procedure Parse).
26429
26430         * gnatcmd.adb (Carg_Switches): New table.
26431         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
26432         Adapt to name changes in package Prj (Current_Spec_Suffix =>
26433         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
26434
26435         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
26436         Header_Num and function Hash are now declared in package Prj,
26437         not Prj.Com.
26438
26439         * prj.adb (Suffix_Of): New function.
26440         (Set (Suffix)): New procedure.
26441         (Hash): One function moved from Prj.Com
26442         (Is_Present, Language_Processing_Data_Of): New functions
26443         (Set): Two new procedures
26444         (Add_Language_Name, Display_Language_Name): New procedures
26445
26446         * prj.ads: (Suffix_Of): New function
26447         (Set (Suffix)): New procedure
26448         Add several types and tables for multi-language support.
26449         (Header_Num): Type moved from Prj.Com
26450         (Hash): Two functions moved from Prj.Com
26451         (Is_Present, Language_Processing_Data_Of): New functions
26452         (Set): Two new procedures
26453         (Add_Language_Name, Display_Language_Name): New procedures
26454         (Naming): Component name changes:
26455         Current_Spec_Suffix => Ada_Spec_Suffix,
26456         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
26457         Impl_Suffixes, Supp_Suffixes.
26458         (Project_Data): New components: Externally_Built, Supp_Languages,
26459         First_Language_Processing, Supp_Language_Processing, Default_Linker,
26460         Default_Linker_Path.
26461
26462         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
26463         new package Language_Processing with its attributes (Compiler_Driver,
26464         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
26465         Binder_Driver, Default_Linker).
26466
26467         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
26468         (Header_Num): Type moved to package Prj
26469
26470         * prj-env.adb: Adapt to name changes in package Prj
26471         (Current_Spec_Suffix => Ada_Spec_Suffix,
26472         Current_Body_Suffix => Ada_Body_Suffix).
26473
26474         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
26475         default to the project path, except the "-" is one of the directories
26476         in env var ADA_PROJECT_PATH.
26477         (Current_Project_Path): Global variable, replacing Project_Path
26478         that was in the body of Prj.Part.
26479         (Project_Path): New function
26480         (Set_Project_Path): New procedure
26481         Initialize Current_Project_Path during elaboration of the package
26482         Remove dependency on Prj.Com, no longer needed
26483
26484         * prj-ext.ads (Project_Path): New function
26485         (Set_Project_Path): New procedure
26486
26487         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
26488         suffix is defined for language <lang>.
26489         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
26490         accessing directly the components of Naming.
26491         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
26492         Reorganise of this package.
26493         Break procedure Check in several procedures.
26494
26495         * prj-nmsc.ads: Replace all procedures (Ada_Check,
26496         Other_Languages_Check and Language_Independent_Check) with a single
26497         procedure Check.
26498
26499         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
26500         Process_Languages, no longer needed.
26501
26502         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
26503         Current_Project_Path.
26504         Remove elaboration code, moved to the body of Prj.Ext
26505         Use new function Prj.Ext.Project_Path instead of old variable
26506         Project_Path.
26507         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
26508         When comparing with project paths on the stack, first put the resolved
26509         path in canonical case.
26510         (Parse_Single_Project): Set the path name of the project file in the
26511         tree to the normalized path.
26512
26513         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
26514         parameter Process_Languages, no longer needed.
26515         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
26516         Other_Languages_Check.
26517
26518         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
26519         to store the resolved canonical path of the project file.
26520         Remove dependency to Prj.Com, no longer needed
26521
26522         * prj-util.adb: Adapt to name changes in package Prj
26523         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
26524         Ada_Body_Suffix).
26525
26526         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
26527         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
26528         Externally_Built, Include_Option, Language_Processing.
26529
26530         * makegpr.adb: Numerous changes due to changes in packages
26531         Prj and Prj.Nmsc.
26532
26533         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
26534         default to the project path, except whe "-" is one of the directories
26535         in env var ADA_PROJECT_PATH.
26536         (Gnatls): In verbose mode, add the new section "Project Search Path:"
26537
26538 2004-12-07  Robert Dewar  <dewar@adacore.com>
26539
26540         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
26541
26542         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
26543         set -gnatR3m mode.
26544
26545         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
26546         flag. No longer needed now that we handle this in gnat1drv.adb.
26547
26548         * repinfo.ads: Minor reformatting
26549
26550 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26551             Olivier Hainque  <hainque@adacore.com>
26552             Eric Botcazou  <ebotcazou@adacore.com>
26553
26554         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
26555         TYPE_SIZE_UNIT of result type if SIZE is not specified.
26556         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
26557         of a bitfield, which we know is useless and causes trouble because of
26558         alignment implications.
26559
26560         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
26561         BSS sections.
26562         (process_attributes): Clear DECL_COMMON again when a section attribute
26563         is present.
26564         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
26565         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
26566         (create_field_decl): Special case ADDRESSABLE negative to mean
26567         "no bitfield creation", to be used by make_aligning_type. Don't
26568         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
26569         fields claimed addressable still have to be bitfields. Use
26570         value_factor_p instead of a raw binop construction to check for the
26571         position's alignment.
26572
26573 2004-12-07  Geert Bosch  <bosch@adacore.com>
26574
26575         * eval_fat.adb: Revert previous change.
26576
26577 2004-12-07  Thomas Quinot  <quinot@adacore.com>
26578             Ed Schonberg  <schonberg@adacore.com>
26579
26580         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
26581         with an implicit dereference as its prefix, use
26582         Insert_Explicit_Dereference instead of merely rewriting the prefix into
26583         an explicit dereference. This ensures that a reference to the original
26584         prefix is generated, if appropriate.
26585
26586         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
26587         dereference is rewritten to an explicit one, generate a reference to
26588         the entity denoted by its prefix using the original prefix node, so
26589         the dereference can be properly recorded as a read of the denoted
26590         access value, if appropriate.
26591
26592         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
26593         emitting 'assigned but never read' warning on a variable on the basis
26594         that it has an access type.
26595         (Check_References): Emit unreferenced warning when the scope is a
26596         subprogram body.
26597
26598 2004-12-07  Robert Dewar  <dewar@adacore.com>
26599             Ed Schonberg  <schonberg@adacore.com>
26600
26601         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
26602         intrinsic
26603
26604         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
26605         leaving call unchanged.
26606         This deals with the case where the pragma Import specified
26607         an external name, to be handled by the back end.
26608
26609         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
26610         subprogram which is Imported with convention Intrinsic if an
26611         External_Name argument is specified.
26612         (Process_Import_Or_Interface): Properly diagnose link name argument.
26613         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
26614         with Sem_Ch6.Cannot_Inline.
26615         (Process_Inline): Provide separate warning for inapplicable inline
26616         pragma.
26617         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
26618         treatment is uniform on different targets.
26619
26620 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
26621
26622         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
26623         construct is rewritten, preserve end label to permit source navigation.
26624
26625 2004-12-07  Thomas Quinot  <quinot@adacore.com>
26626
26627         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
26628         Specific_Build_Stub_Target): New subprograms.
26629         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
26630         the PCS implementation used, using the above PCS-customized subprograms.
26631         Minor reformatting.
26632         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
26633         for generation of DSA code targeted to the PolyORB PCS.
26634         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
26635         implementation of the partition communication subsystem in ancillary
26636         subprograms.
26637         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
26638         PolyORB_Support.Build_Stub_Type): New subrograms containing the
26639         PCS-specific part of Add_Stub_Type.
26640         (Insert_Partition_Check): Use runtime library function to perform
26641         E.4(19) check.
26642
26643         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
26644         (RE_Same_Partition): New entity, from s-parint.
26645
26646         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
26647
26648 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
26649
26650         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
26651         Output the copyright message on a separate line from the version
26652         message.
26653
26654 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
26655
26656         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
26657         compile-time warning.
26658
26659 2004-12-07  Robert Dewar  <dewar@adacore.com>
26660
26661         * g-regpat.adb: (Match): Change a misuse of or to or else
26662
26663 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
26664
26665         * lib-xref.adb:
26666         (Generate_Reference): Handle properly a reference to an entry formal,
26667          when an accept statement has a pragma Unreferenced for it.
26668
26669         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
26670         and the Has_Pragma_Unreferenced flag for each formal before analyzing
26671         the body, to ensure that warnings are properly emitted for each accept
26672         statement of a given task entry.
26673
26674 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
26675
26676         * Makefile.in: Add support for foreign threads on VMS.
26677
26678 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26679
26680         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
26681         Remove.
26682         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
26683
26684         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
26685
26686         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
26687         exception.
26688         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
26689
26690 2004-12-07  Robert Dewar  <dewar@adacore.com>
26691
26692         * nlists.adb (Prepend_Debug): Remove parameters and nest within
26693         Prepend.
26694         (Remove_Next_Debug): Same fix
26695
26696         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
26697         maintain back pointers now, though we did not used to, and comments
26698         were out of date).
26699         (Prepend): Remove pragma Inline.
26700         (Remove_Next): Same cleanup
26701
26702 2004-12-07  Thomas Quinot  <quinot@adacore.com>
26703
26704         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
26705         used to record an implicit dereference as a read operation on its
26706         prefix when operating under -gnatc. Necessary to avoid spurious
26707         'variable assigned but never read' warnings in that mode.
26708         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
26709         is a non-overloaded implicit dereference, call the above subprogram to
26710         ensure proper recording of references.
26711
26712 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
26713
26714         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
26715         to be resolved later as part of Analyze_Iteration_Scheme's call to
26716         Make_Index.
26717
26718 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
26719
26720         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
26721         prefix is not a scalar type, place error message on prefix, not on
26722         type entity.
26723
26724 2004-12-07  Bernard Banner  <banner@adacore.com>
26725
26726         * vxaddr2line.adb: Add support for x86 vxworks
26727
26728 2004-12-07  Thomas Quinot  <quinot@adacore.com>
26729
26730         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
26731         documentation of the behaviour of these functions when passed an IP
26732         address that has no record in the system hosts database and no reverse
26733         record in the DNS.
26734
26735         * cstand.adb, a-tags.ads: Fix typos in comment.
26736
26737 2004-12-07  Robert Dewar  <dewar@adacore.com>
26738
26739         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
26740         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
26741         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
26742         s-poosiz.ads: Minor reformatting
26743
26744         * make.adb: Minor reformatting
26745         Add some ??? comments asking for more comments
26746
26747         * s-poosiz.adb: Minor reformatting
26748         Add comments on alignment requirement
26749
26750         * sinfo.ads: Remove obsolete comment and fix typo.
26751
26752 2004-12-07  Vincent Celier  <celier@adacore.com>
26753             Sergey Rybin  <rybin@adacore.com>
26754
26755         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
26756         Files" with the new tool and package names.
26757         Reformatting to suppress most of the warnings for line too long
26758         Document the new section "Project Search Path:" in the output of
26759         gnatls -v.
26760         Add gnatmetric section
26761
26762 2004-12-07  Vincent Celier  <celier@adacore.com>
26763
26764         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
26765         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
26766         and -eit to -ept. Added qualifier
26767         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
26768
26769 2004-11-27  Andreas Schwab  <schwab@suse.de>
26770
26771         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
26772
26773 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
26774
26775         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
26776         internal implementation unit GNAT.Sockets.Thin,
26777         as their usage for sockets is non-portable (using the read and write
26778         functions from the system runtime library is fine on UNIX but won't
26779         work under Windows).
26780
26781         * mingw32.h: Update copyright notice.
26782
26783 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
26784
26785         * ada-tree.h: Minor reformatting of previous change to avoid lines
26786         longer than 79 characters.
26787
26788 2004-11-25  Olivier Hainque  <hainque@adacore.com>
26789
26790         * tb-gcc.c: GCC infrastructure based implementation of
26791         __gnat_backtrace.
26792
26793 2004-11-24  Steven Bosscher  <stevenb@suse.de>
26794
26795         * misc.c (gnat_post_options): Don't clear
26796         flag_inline_functions.
26797
26798 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
26799
26800         PR ada/17986
26801         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
26802         tree.
26803
26804 2004-11-21  Andreas Jaeger  <aj@suse.de>
26805
26806         * stylesw.adb: Change Style_Check_Subprogram_Order to
26807         Style_Check_Order_Subprograms.
26808
26809 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
26810
26811         * adaint.h, adaint.c
26812         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
26813         to avoid warnings.
26814         Add also a cast to kill another warning.
26815         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
26816         parameter with the priority class of the parent process instead of
26817         always using the NORMAL_PRIORITY_CLASS.
26818         (__gnat_dup): New function.
26819         (__gnat_dup2): New function.
26820         (__gnat_is_symbolic_link): Enable the effective body of this
26821         function when __APPLE__ is defined.
26822
26823         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
26824         Update comments.
26825
26826 2004-11-18  Olivier Hainque  <hainque@adacore.com>
26827
26828         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
26829         address of which may be used to represent "others" and "all others"
26830         choices in exception tables, instead of the current harcoded
26831         (void *)0 and (void *)1.
26832         (Setup_Exception): Do nothing in the GNAT SJLJ case.
26833
26834         * gigi.h (others_decl, all_others_decl): New decls representing the
26835         new Others_Value and All_Others_Value objects.
26836         (struct attrib): Rename "arg" component as "args", since GCC expects a
26837         list of arguments in there.
26838
26839         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
26840         corresponding objects exported by a-exexpr, instead of hardcoded dummy
26841         addresses.
26842
26843         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
26844         others_decl and all_others_decl instead of hardcoded dummy addresses
26845         to represent "others" and "all others" choices, which is cleaner and
26846         more flexible with respect to the possible eh pointer encoding policies.
26847
26848         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
26849         (process_attributes): Account for the naming change of the "args"
26850         attribute list entry component.
26851
26852         * decl.c (build_attr_list): Rename into prepend_attributes to allow
26853         cumulating attributes for different entities into a single list.
26854         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
26855         attributes for the current entity and propagate first subtype
26856         attributes to other subtypes.
26857         <E_Procedure>: Attribute arguments are attr->args and not
26858         attr->arg any more.
26859         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
26860         argument provided, as this is what GCC expects. Use NULL_TREE instead
26861         of 0 for trees.
26862
26863 2004-11-18  Robert Dewar  <dewar@adacore.com>
26864
26865         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
26866         Minor reformatting througout (including new function specs)
26867         Add ??? comments asking for clarification.
26868
26869 2004-11-18  Thomas Quinot  <quinot@adacore.com>
26870
26871         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
26872         incomplete duplicate implementation of this subprogram from butil.
26873
26874 2004-11-18  Thomas Quinot  <quinot@adacore.com>
26875
26876         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
26877         procedures factors the common processing for building an RPC receiver
26878         for an RCI package or an RACW type.
26879         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
26880         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
26881         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
26882         in use.
26883         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
26884         Add_RACW_Features.
26885         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
26886         Add_RAST_Features.
26887         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
26888         distribution subprogram identifiers that are either subprogram numbers
26889         or strings.
26890         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
26891         string distribution identifiers assigned to a given subprogram.
26892         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
26893         (Add_RAS_Dereference_TSS): Add comments.
26894         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
26895         is not referenced yet because it will be used by the PolyORB DSA
26896         implementation.
26897         (Insert_Partition_Check): Remove fossile code.
26898         (First_RCI_Subprogram_Id): Document this constant.
26899         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
26900         RAS_Access TSS.
26901         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
26902         replaced with calls to Get_Library_Unit_Name_String. Previously there
26903         were several instances of the same code in different locations in the
26904         compiler; this checkin completes the replacement of all of these
26905         instances with calls to a common subprogram.
26906         Minor reformatting.
26907
26908         * sem_dist.adb: Remove comment noting that RPC receiver generation
26909         should be disabled for RACWs that implement RASs.
26910         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
26911
26912         * sem_util.ads, sem_util.adb (Has_Stream): New function
26913         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
26914         qualified name of a library unit into the name buffer.
26915         (Note_Possible_Modification): Generate a reference only
26916         if the context comes from source.
26917
26918         * snames.ads (PCS_Names): New subtype corresponding to names of
26919         supported implementations of the Partition Communication Subsystem
26920         (PCS) (i.e. the runtime library support modules for the distributed
26921         systems annex).
26922
26923 2004-11-18  Robert Dewar  <dewar@adacore.com>
26924             Ed Schonberg  <schonberg@adacore.com>
26925
26926         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
26927         (Has_Rep_Pragma): New function
26928         (Has_Attribute_Definition_Clause): New function
26929         (Record_Rep_Pragma): Moved here from sem_ch13.adb
26930         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
26931
26932         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
26933
26934         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
26935         (Expand_Pragma_Psect_Object): New procedure
26936         These procedures contain the revised and cleaned up processing for
26937         these two pragmas. This processing was formerly in Sem_Prag, but
26938         is more appropriately moved here. The cleanup involves making sure
26939         that the pragmas are properly attached to the tree, and that no
26940         nodes are improperly shared.
26941
26942         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
26943         pragmas to Exp_Prag, which is more appropriate.
26944         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
26945         check for duplicates Remove use of Is_Psected flag, no longer needed.
26946         Use new Make_String_Literal function with string.
26947
26948         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
26949         that are functions return universal values, that have to be converted
26950         to the context type.
26951         Use new Make_String_Literal function with string.
26952         (Get_Stream_Convert_Pragma): New function, replaces the use of
26953         Get_Rep_Pragma, which had to be kludged to work in this case.
26954
26955         * freeze.adb: Use new Has_Rep_Pragma function
26956
26957         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
26958         function with string.
26959         Use new Has_Rep_Pragma function.
26960
26961         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
26962         string argument.
26963
26964 2004-11-18  Robert Dewar  <dewar@adacore.com>
26965
26966         * errout.ads, errout.adb: (First_Sloc): New function
26967
26968         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
26969         check (-gnatyx) instead of being included as a redundant construct
26970         warning.
26971
26972         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
26973         Style_Check_Order_Subprograms.
26974
26975         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
26976         stylesw.adb: Add Style_Check_Xtra_Parens
26977
26978         * usage.adb: Add line for -gnatyx (check extra parens)
26979
26980         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
26981
26982 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
26983             Robert Dewar  <dewar@adacore.com>
26984
26985         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
26986         discriminant of a constrained subtype, analyze the copy of the
26987         corresponding constraint, because in some cases it may be only
26988         partially analyzed.
26989         Removes long-lived ??? comments.
26990
26991         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
26992         handled controlled or secondary-stack expressions within the
26993         iteration_scheme of a loop.
26994
26995         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
26996         bounds that may contain functions calls, to prevent memory leaks when
26997         the bound contains a call to a function that uses the secondary stack.
26998         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
26999         generate temporaries for loop bounds that might contain function calls
27000         that require secondary stack and/or finalization actions.
27001
27002         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
27003         selected component and the selector is overloadable (not just a
27004         function) treat as function call, Analyze_Call will disambiguate if
27005         necessary.
27006         (Analyze_Selected_Component): Do not generate an actual subtype for the
27007         selected component if expansion is disabled. The actual subtype is only
27008         needed for constraint checks.
27009         (Analyze_Allocator): If restriction No_Streams is set, then do
27010         not permit objects to be declared of a stream type, or of a
27011         composite type containing a stream.
27012
27013         * restrict.ads: Remove the a-stream entry from Unit_Array, since
27014         No_Streams no longer prohibits with'ing this package.
27015
27016         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
27017         discriminants, but the parent base has unknown discriminants, there is
27018         no discriminant constraint to inherit. Such a discrepancy can arise
27019         when the actual for a formal type with unknown discriminants is a
27020         similar private type whose full view has discriminants.
27021         (Analyze_Object_Declaration): If restriction No_Streams is set, then
27022         do not permit objects to be declared of a stream type, or of a
27023         composite type containing a stream.
27024
27025 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
27026
27027         * exp_dbug.ads: Update documentation to reflect simpler encoding for
27028         protected operations.
27029
27030         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
27031         generated name, it complicates decoding in gdb and hinders debugging
27032         of protected operations.
27033         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
27034         flag for the protected entry barrier function.
27035         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
27036         flag for the protected entry function.
27037
27038 2004-11-18  Nicolas Setton  <setton@adacore.com>
27039
27040         * expect.c: Define __unix__ when __APPLE__ is defined.
27041
27042         * Makefile.in: Inform the value of the variable GMEM_LIB in the
27043         Darwin-specific section.
27044
27045         * lang-specs.h: Change the placement of the %1 marker.
27046         Works around the fact that gcc adds -fPIC by default under Darwin.
27047
27048 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
27049
27050         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
27051         type of the object with the packed array type, set the Analyzed flag
27052         on the object if it is an entity or simple indexed component, to avoid
27053         spurious type errors.
27054
27055 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
27056
27057         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
27058         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
27059         separate line from the version message.
27060
27061 2004-11-18  Ed Falis  <falis@adacore.com>
27062
27063         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
27064         vthreads.
27065         (init_float): Eliminate initialization of floating point status for
27066         AE653. The instructions have no effect for vThreads.
27067
27068 2004-11-18  Vincent Celier  <celier@adacore.com>
27069
27070         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
27071         gnatbind is invoked with -shared.
27072
27073 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
27074
27075         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
27076         for Detect_Blocking which is redundant with the check done within the
27077         procedure Protected_Single_Entry_Call.
27078         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
27079         Detect_Blocking which is redundant with the check done within the
27080         procedure Protected_Single_Entry_Call.
27081
27082 2004-11-18  Vincent Celier  <celier@adacore.com>
27083
27084         * makegpr.adb (Compile): Put the compiling switches (in package
27085         Compiler and on the command line) immediately after "-c", instead of
27086         at the end of the command line invocation of the compiler, when
27087         compiling a non-Ada file.
27088         (Build_Global_Archive): When there is no need to rebuild the archive,
27089         set Global_Archive_Exists, so that the archive is passed to the linker
27090         if one is needed.
27091
27092 2004-11-18  Robert Dewar  <dewar@adacore.com>
27093             Sergey Rybin  <rybin@adacore.com>
27094
27095         * gnat_ugn.texi:
27096         Remove extra paren check from list of checks for redundant constructs
27097         Add documentation of new -gnatyx style check (check extra parens)
27098         Remove paragraph about gnatelim debug options.
27099
27100         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
27101         objects rather than forbidding dependencies on the package Ada.Streams.
27102
27103         * sinfo.ads: Add ??? note that we should document pragmas passed to
27104         back end.
27105
27106         * g-expect.ads: Fix a few typos in the comments.
27107
27108 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
27109
27110         * misc.c (gnat_handle_option): Use %< and %> for quoting in
27111         warning message.
27112
27113 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
27114
27115         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
27116
27117 2004-11-07  Andreas Schwab  <schwab@suse.de>
27118
27119         * Makefile.in (install-gnatlib): Remove spurious hyphen.
27120
27121 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
27122
27123         PR ada/18228
27124         * Makefile.in (darwin): Set soext to .dylib.
27125
27126 2004-10-26  Vincent Celier  <celier@gnat.com>
27127             Thomas Quinot   <quinot@act-europe.fr>
27128
27129         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
27130         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
27131         there is no use of GNAT.Sockets.Constants.
27132         Remove remaining pragma Import for C_Write
27133         Remove C_Read and C_Write from internal implementation unit
27134         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
27135         the read and write functions from the system runtime library is fine
27136         on UNIX but won't work under Windows).
27137
27138         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
27139         (Check_Selector): Use C_Recv instead of C_Read.
27140         Selectors are the GNAT.Sockets abstraction to perform a select()
27141         call on a set of descriptors. To allow abortion of an ongoing
27142         select operation, some data is written to a dedicated socket that
27143         is always monitored.
27144         Under Windows, the write and read library functions cannot operate
27145         on sockets, so we need to use send and recv instead, which is portable
27146         across all supported platforms.
27147
27148         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
27149         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
27150         (using the read and write functions from the system runtime library is
27151         fine on UNIX but won't work under Windows).
27152
27153 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
27154
27155         * mlib-tgt-darwin.adb: New file.
27156
27157         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
27158         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
27159         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
27160         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
27161         subprogram body.
27162
27163         * Makefile.in: Add support for building shared libraries under Darwin.
27164         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
27165         the low level EH init subprogram to be called from __gnat_initialize.
27166
27167         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
27168         indicates which options to pass to the archive indexer.
27169
27170         * mlib-utl.adb: Add support for calling ranlib with additional
27171         options. This is needed for instance under Mac OS X.
27172         (Ranlib_Options): New global variable, used to store the potential
27173         options to pass to ranlib.
27174         (Ar): Use Ranlib_Options when spawning ranlib.
27175         (Initialize): Set the value of ranlib option.
27176
27177 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
27178
27179         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
27180         instead of 8K, to reflect the real potential needs for stack-checking
27181         in the ZCX case.
27182
27183 2004-10-26  Pascal Obry  <obry@gnat.com>
27184
27185         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
27186
27187         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
27188         Windows only the initial thread stack size can be set so it is good to
27189         start we a low stack size.
27190         The OS will adjust the size as needed.
27191
27192 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
27193             Nicolas Setton  <setton@act-europe.fr>
27194
27195         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
27196         "__unix__" instead of "unix".
27197         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
27198         sections were just mistakenly ignored. The former is
27199         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
27200         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
27201         of hpux. This prevents an unwanted definition of the symbol
27202         convert_addresses in adaint.o.
27203
27204 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
27205
27206         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
27207         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
27208
27209 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
27210
27211         * a-filico.ads, a-filico.adb: fix incorrect header.
27212
27213 2004-10-26  Javier Miranda  <miranda@gnat.com>
27214
27215         * a-ststio.ads: Fix typo in identifier
27216
27217 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
27218
27219         * sem_ch4.adb: Minor reformatting.
27220
27221 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
27222
27223         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
27224         enabled, check the result of unary and binary operations when the
27225         expression is the right-hand side of an assignment.
27226
27227 2004-10-26  Vincent Celier  <celier@gnat.com>
27228
27229         * clean.adb (Delete): Do not output warnings when in quiet output and
27230         not in verbose mode.
27231         (Force_Deletions): New Boolean flag, defaulted to False
27232         (Delete): Only delete a file if it is writable, and when
27233         Force_Deletions is True.
27234         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
27235         (Usage): Line for new switch -f
27236         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
27237         own.
27238
27239 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
27240
27241         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
27242         JM type only if its size matches that of the wrapper.  When a size is
27243         prescribed and the field is not aliased, remove the wrapper of a JM
27244         type only if the size is not greater than that of the packed array.
27245         (gnat_to_gnu_entity): Change the extension of packed array wrappers
27246         from LJM to JM.
27247
27248 2004-10-26  Geert Bosch  <bosch@gnat.com>
27249
27250         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
27251         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
27252         (Pred): Implement in terms of Succ.
27253
27254 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
27255
27256         * exp_aggr.adb (Safe_Component): An aggregate component that is an
27257         unchecked conversion is safe for in-place use if the expression of the
27258         conversion is safe.
27259         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
27260         be expandable in place even if the aggregate does not come from source.
27261         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
27262         designated object of an allocator in place, rather than building it
27263         first on the stack. The previous scheme forces a full copy of the array,
27264         and may be altogether unsusable if the size of the array is too large
27265         for stack allocation.
27266
27267 2004-10-26  Robert Dewar  <dewar@gnat.com>
27268
27269         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
27270         compares if the component is atomic.
27271
27272         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
27273         array assignment if the component type is atomic.
27274
27275 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
27276             Eric Botcazou  <ebotcazou@act-europe.fr>
27277
27278         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
27279         is aliased and is a by_reference type, do not pass by copy.
27280         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
27281         detect whether the call is in the right side of an assignment or
27282         the expression of an object declaration.  Recurse on component
27283         association within aggregates.
27284         Call it in the condition that determines whether the temporary is
27285         necessary for correct stack-checking.
27286
27287 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
27288
27289         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
27290         RACW_Type, used in the PolyORB version.
27291         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
27292         version and the GARLIC version.
27293
27294         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
27295         Rename RCI_Info to RCI_Locator for better consistency between the
27296         GARLIC and PolyORB versions of the distributed systems annex.
27297         (DSA_Implementation_Name): This enumeration lists the possible
27298         implementations of the Partition Communication Subsystem for the
27299         Distributed Systems Annex (DSA). The three available implementations
27300         are the dummy stub implementation (No_DSA), and two versions based on
27301         two different distribution runtime libraries: GARLIC and PolyORB. Both
27302         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
27303         technology.
27304         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
27305         that organization.
27306
27307         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
27308         between the GARLIC and PolyORB versions of the distributed systems
27309         annex.
27310         Remove RE_Unbounded_Reclaim_Pool since it is unused.
27311
27312 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
27313
27314         * gnat1drv.adb: Suppress calling the back end when
27315         Frontend_Layout_On_Target is true.
27316
27317 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
27318
27319         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
27320         Set_Read_Only): New subprograms.
27321         These new routines allow the user to set or unset the Owner execute
27322         and Owner write permission flags on a file.
27323
27324         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
27325         GNAT.OS_Lib.Set_Executable instead of rolling our own.
27326
27327 2004-10-26  Matthew Gingell  <gingell@gnat.com>
27328
27329         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
27330
27331 2004-10-26  Pascal Obry  <obry@gnat.com>
27332
27333         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
27334         memory before the faulting page we properly test the process read
27335         access for this address using appropriate Win32 routine.
27336         (HPUX sections): guard with "__hpux__" instead of "hpux".
27337
27338 2004-10-26  Robert Dewar  <dewar@gnat.com>
27339
27340         * lib-xref.adb (Generate_Reference): Don't complain about reference to
27341         entry parameter if pragma Unreferenced set, since we do not properly
27342         handle the case of multiple parameters.
27343
27344 2004-10-26  Vincent Celier  <celier@gnat.com>
27345
27346         * prj-env.adb: (Contains_ALI_Files): New Boolean function
27347         (Ada_Objects_Path.Add): For a library project, add to the object path
27348         the library directory only if there is no object directory or if the
27349         library directory contains ALI files.
27350         (Set_Ada_Paths.Add.Recursive_Add): Ditto
27351
27352 2004-10-26  Vincent Celier  <celier@gnat.com>
27353
27354         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
27355         extension of library projects.
27356
27357         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
27358         path defaults to ".:<prefix>/lib/gnat".
27359         (Parse): For an extending all project, allow direct import of a project
27360         that is virtually extended.
27361
27362         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
27363         the specified name is directly imported, return its ID. Otherwise, if
27364         an extension of this project is imported, return the ID of the
27365         extension.
27366
27367 2004-10-26  Robert Dewar  <dewar@gnat.com>
27368
27369         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
27370         (Sub3): New procedure, used by Scaled_Divide
27371         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
27372         correct more than one instance of failure to propagate carries
27373         correctly.
27374         (Double_Divide): Handle overflow case of largest negative number
27375         divided by minus one.
27376
27377         * s-arit64.ads (Double_Divide): Document that overflow can occur in
27378         the case of a quotient value out of range.
27379         Fix comments.
27380
27381 2004-10-26  Robert Dewar  <dewar@gnat.com>
27382
27383         * s-bitops.adb (Bit_Eq): Remove redundant check.
27384
27385         * s-bitops.ads: Minor comment updates
27386         Change some occurrences of Address to System.Address
27387
27388         * s-carsi8.ads: Fix minor cut-and-paste error in comments
27389
27390 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
27391
27392         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
27393         accessibility check to prefix that is a protected operation.
27394
27395 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
27396
27397         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
27398         empty, post message on stub.
27399
27400 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
27401             Javier Miranda  <miranda@gnat.com>
27402
27403         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
27404         current instance appears within a unit that is directly in the context
27405         of the main unit.
27406         Used to determine whether the body of the instance should be analyzed
27407         immediately after its spec, to make its subprogram bodies available
27408         for front-end inlining.
27409         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
27410         constraint is not allowed on the component type (AARM 12.5.3(3))
27411
27412 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
27413
27414         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
27415         'Storage_Pool): enhance, document & limit detection of non-sharable
27416         internal pools.
27417
27418         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
27419
27420         * s-pooglo.ads: Add more documentation now that this pool is properly
27421         documented.
27422
27423 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
27424
27425         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
27426         or protected type with discriminants, do not constrain the
27427         corresponding record type if the subtype declaration has no
27428         discriminant constraints. This can be the case in source code, or in
27429         the subtype declaration created to rename an actual type within an
27430         instantiation.
27431
27432 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
27433
27434         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
27435         different kind of stub (possibly wrong name for file), do not check
27436         for conformance.
27437         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
27438         includes call to some function that returns an unconstrained type, do
27439         not inline.
27440
27441 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
27442
27443         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
27444         appear in the code for the main unit. Dependencies among units in the
27445         context of the main unit are established when those other units are
27446         compiled. Otherwise spurious elaboration constraints can generate
27447         incorrect elaboration circularities.
27448
27449 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
27450             Ed Schonberg   <schonberg@gnat.com>
27451
27452         * sem_util.adb (Is_Aliased_View): Defend against the case where this
27453         subprogram is called with a parameter that is not an object name. This
27454         situation arises for some cases of illegal code, which is diagnosed
27455         later, and in this case it is wrong to call Is_Aliased, as that might
27456         cause a compiler crash.
27457         (Explain_Limited_Type): Refine previous fix to include
27458         inherited components of derived types, to provide complete information.
27459
27460         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
27461         is the prival for a protected object.
27462         It is necessary to mark this entity as a variable, in addition to
27463         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
27464         modified to avoid checking the Aliased flag on entities that are not
27465         objects. (Checking that flag for non-objects is erroneous and could
27466         lead to a compiler crash).
27467
27468 2004-10-26  Robert Dewar  <dewar@gnat.com>
27469
27470         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
27471         X_Frac = 0.5, then we know that the number X must be positive.
27472         (Succ): Remove the same redundant test, and also fix the primary test
27473         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
27474         Minor reformatting
27475         (Decompose): Add fuller comments to spec
27476
27477 2004-10-26  Pascal Obry  <obry@gnat.com>
27478
27479         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
27480         validity (process must have read access). Set to 0 in all other cases.
27481         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
27482         violation on Win32.
27483         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
27484         segmentation violation.
27485
27486 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
27487
27488         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
27489         whose type is a constructed subtype of an aliased object with an
27490         unconstrained nominal subtype, convert the actual to the constructed
27491         subtype before taking its address.
27492
27493 2004-10-26  Vincent Celier  <celier@gnat.com>
27494
27495         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
27496         (Is_Path_Name_Case_Sensitive): New function
27497
27498         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
27499         (Base_Name, Simple_Name, Current_Directory, Compose,
27500         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
27501         the result.
27502
27503 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
27504             Vasiliy Fofanov  <fofanov@act-europe.fr>
27505             Vincent Celier   <celier@gnat.com>
27506
27507         * gnat_ugn.texi: Generalize "finding memory problems" section into a
27508         "memory management issues" section and document some of the useful
27509         memory pools provided as part of the GNAT library.
27510         Remove "virtual" from declaration of A::method2 in
27511         the simple example of Ada/C++ mixed system.
27512         Library Projects may be virtually extended: their virtual extensions
27513         are not Library Projects.
27514         Added section on extending project hierarchies.
27515
27516 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
27517
27518         * adaint.c (__gnat_get_libraries_from_registry): Cast value
27519         to LPBYTE.
27520         (__gnat_portable_spawn): Remove const.
27521
27522         * mingw32.h (MAXPATHLEN): Check for previous definition.
27523
27524 2004-10-17  Matthias Klose  <doko@debian.org>
27525
27526         * gnatvsn.ads: Set gnat library version to 4.0.
27527
27528 2004-10-05  Vincent Celier  <celier@gnat.com>
27529
27530         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
27531
27532 2004-10-04  Laurent Guerby  <laurent@guerby.net>
27533
27534         PR ada/15156
27535         * Makefile.in: Define and use RANLIB_FLAGS.
27536
27537 2004-10-04  Pascal Obry  <obry@gnat.com>
27538
27539         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
27540         other x86 platforms).
27541
27542 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
27543
27544         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
27545         in general and triggers stack alignment adjustment for thread entry
27546         points on targets where this is necessary.
27547
27548 2004-10-04  Bernard Banner  <banner@gnat.com>
27549
27550         PR ada/13897
27551         * Makefile.in: Add section for powerpc linux
27552         Add variant i-vxwork-x86.ads
27553
27554         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
27555
27556 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
27557
27558         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
27559         table registration calls when need be. Ensures no reference to the crt
27560         ctors symbol are issued in the SJLJ case, which avoids possible
27561         undefined symbol errors in the case of modules to be statically linked
27562         with the kernel.
27563
27564 2004-10-04  Javier Miranda  <miranda@gnat.com>
27565
27566         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
27567         in-line the code corresponding to subprogram Analyze_Actuals. In
27568         addition, analyze the actuals only in case of subprogram call.
27569
27570 2004-10-04  Ed Falis  <falis@gnat.com>
27571
27572         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
27573
27574 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
27575
27576         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
27577         in the documentation.
27578
27579 2004-10-04  Robert Dewar  <dewar@gnat.com>
27580
27581         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
27582         IF and CASE.
27583         (Analyze_Block_Statement): Add circuitry to detect following dead code
27584         (Check_Unreachable_Code): Handle case of block exit
27585
27586 2004-10-04  Robert Dewar  <dewar@gnat.com>
27587
27588         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
27589         (XMatchD): Avoid warning for Logic_Error call
27590
27591 2004-10-04  Robert Dewar  <dewar@gnat.com>
27592
27593         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
27594         consider expressions buried within a procedure actual to be an actual.
27595         This caused some blowups with uses of packed slices within a procedure
27596         actual.
27597
27598 2004-10-04  Robert Dewar  <dewar@gnat.com>
27599
27600         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
27601         longer need to be initialized to zero.
27602         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
27603         initialized to zero.
27604
27605         * checks.adb (Expr_Known_Valid): Packed arrays are now always
27606         considered valid, even if the representation is modular. That's correct
27607         now that we no longer initialize packed modular arrays to zero.
27608
27609         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
27610         suffixes. These are now documented as the only cases in which the
27611         debugger ignores outer records.
27612         Previously, the spec allowed arbitrary suffixes for this purpose.
27613         Change name of LJM to JM for packed array pad records
27614         Create separate section on packed array handling, and add a whole new
27615         set of comments to this section describing the situation with packed
27616         modular types and justification requirements depending on endianness.
27617
27618 2004-10-04  Robert Dewar  <dewar@gnat.com>
27619
27620         * a-except.adb: Add a comment for last change
27621
27622         * einfo.ads: Minor spelling correction in comment
27623
27624         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
27625
27626         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
27627         messages.
27628
27629         * sem_util.ads: Minor comment update
27630
27631 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
27632
27633         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
27634         Inline_Always when in Configurable_Run_Time mode.
27635
27636         * sem_prag.adb (Process_Convention): If entity is an inherited
27637         subprogram, apply convention to parent subprogram if in same scope.
27638         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
27639         when in Configurable_Run_Time mode.
27640
27641 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
27642
27643         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
27644         class_wide type after component list has been inherited.
27645
27646 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
27647
27648         * sem_ch12.adb (Check_Generic_Actuals): New predicate
27649         Denotes_Previous_Actual, to handle properly the case of a private
27650         actual that is also the component type of a subsequent array actual.
27651         The visibility status of the first actual is not affected when the
27652         second is installed.
27653         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
27654         make fully recursive the treatment of formals of packages declared
27655         with a box.
27656         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
27657         the above on exit from an instantiation.
27658         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
27659         current instantiation which is now complete.
27660         (Analyze_Package_Instantiation): No instantiated body is needed if the
27661         main unit is generic. Efficient, and avoid anomalies when a instance
27662         appears in a package accessed through rtsfind.
27663
27664 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
27665
27666         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
27667         do not generate a declaration for a temporary if the call is part of a
27668         library-level instantiation.
27669
27670 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
27671
27672         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
27673         searching for a limited component to flag.
27674
27675         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
27676         expansion of Input, to account for the fact that the implicit call
27677         generated by the attribute reference must freeze the user-defined
27678         stream subprogram. This is only relevant to 'Input, because it can
27679         appear in an object declaration, prior to the body of the subprogram.
27680
27681         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
27682         expansion can proceed and further errors uncovered.
27683         (Minor clean up): Fix cases of using | instead of \ for continuation
27684         messages.
27685
27686 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27687
27688         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
27689
27690         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
27691         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
27692         Use gcc_assert and gcc_unreachable.
27693
27694         * decl.c (gnat_to_gnu_entity, case object): Check and process a
27695         specified alignment before validating size.
27696         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
27697         stripped-down declaration for the type of the inner field when making
27698         a JM type.
27699
27700         * utils.c (finish_record_type): Do not compute the size in units
27701         incrementally. Instead compute it once for the rep clause case.
27702         Use gcc_assert and gcc_unreachable.
27703
27704 2004-10-04  Vincent Celier  <celier@gnat.com>
27705
27706         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
27707         in file name.
27708         (Is_Valid_Path_Name): Take '/' as a directory separator.
27709
27710 2004-10-04  Vincent Celier  <celier@gnat.com>
27711
27712         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
27713         (Extended_Project) only if Extended_Project is defined, to avoid
27714         assertion error.
27715         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
27716         resolved path.
27717         (Parse_Single_Project): Ditto.
27718
27719         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
27720         Add_To_Project_Path for virtual projects.
27721
27722 2004-10-04  Vincent Celier  <celier@gnat.com>
27723
27724         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
27725         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
27726         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
27727         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
27728         parameter Options_2.
27729
27730         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
27731         Build_Dynamic_Library with an empty Options_2.
27732
27733         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
27734         default anymore.
27735
27736         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
27737         directory separator, if any.
27738         (Gprmake): Do not allow mains on the command line for library projects.
27739         Do not attempt to link when the project is a library project.
27740         (Library_Opts): New table to store Library_Options.
27741         (Build_Library): If Library_Options is specified, pass these options
27742         when building a shared library.
27743
27744 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
27745
27746         * s-tposen.adb (Service_Entry): The object must be always unlocked at
27747         the end of this procedure now that the unlock operation was inserted
27748         by the expander.
27749
27750 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
27751
27752         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
27753         corresponding to the Preallocated_Stacks flags in System.
27754         (Get_Target_Parameters): Including the processing for
27755         Preallocated_Stacks.
27756
27757         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
27758         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
27759         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
27760         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
27761         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
27762         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
27763         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
27764         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
27765         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
27766         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
27767         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
27768         used to signal whether the compiler creates the required stacks and
27769         descriptors for the different tasks (when True) or it is done by the
27770         underlying operating system at run time (when False).
27771         It is initially set to False in all targets.
27772
27773         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
27774         if it is supported by the target.
27775         (Make_Task_Create_Call): Pass the stack address if it has been
27776         previously created. Otherwise pass a Null_Address.
27777
27778         * snames.adb: Add _stack.
27779
27780         * snames.ads: Add Name_uStack. Required to allow the expander to
27781         statically allocated task stacks.
27782
27783         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
27784         Stack_Address argument.
27785         Check that its value is equal to Null_Address because this target does
27786         not support the static stack allocation.
27787
27788 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
27789
27790         * usage.adb: Change "pragma inline" to "pragma Inline" in information
27791         and error messages
27792
27793 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
27794
27795         * exp_dist.adb: Split declaration of asynchronous flag out of
27796         Add_RACW_Read_Attribute.
27797         Minor reformatting for better alignment with PolyORB version.
27798         Store the entity for the asynchronous flag of an RACW, rather than the
27799         expression, in the asynchronous flags table. This will allow this flag
27800         to be used in other subprograms beside Add_RACW_Read_Attribute.
27801
27802 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
27803
27804         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
27805         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
27806         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
27807         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
27808         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
27809         sockets constant MSG_NOSIGNAL (Linux-specific).
27810         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
27811         all Send operations.
27812         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
27813         from trigerring SIGPIPE.
27814         Rename components to avoid clash with Ada 2005 possible reserved
27815         word 'interface'.
27816         (Check_Selector): When the select system call returns with an error
27817         condition, propagate Socket_Error to the caller.
27818
27819 2004-10-01  Jan Hubicka  <jh@suse.cz>
27820
27821         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
27822
27823 2004-09-23  Robert Dewar  <dewar@gnat.com>
27824
27825         PR ada/17540
27826         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
27827         instead do this at freeze time (we won't do it if there is an address
27828         clause).
27829         Change "pragma inline" to "pragma Inline" in information and error
27830         messages.
27831         Minor reformatting.
27832
27833         * freeze.adb (Check_Address_Clause): Remove previous change, not the
27834         right way of doing things after all.
27835         (Freeze_Entity): For object, set Is_Public for imported entities
27836         unless there is an address clause present.
27837
27838 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
27839
27840         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
27841         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
27842         ensures proper handling of types with rep clauses, which might have
27843         their TYPE_SIZE set already.
27844
27845 2004-09-21  Robert Dewar  <dewar@gnat.com>
27846
27847         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
27848         packed array types in both little- and big-endian cases. This change
27849         ensures that we no longer count on the unused bits being initialized
27850         for such types (and in particular ensures that equality testing will
27851         only read the relevant bits).
27852         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
27853         These changes mean that we no longer need to initialize small packed
27854         arrays.
27855         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
27856         optimization to an LJM field as to its parent field.
27857
27858         * ada-tree.h, trans.c, utils.c, utils2.c:
27859         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
27860
27861 2004-09-20  Jan Hubicka  <jh@suse.cz>
27862
27863         * utils.c (gnat_finalize): Remove.
27864         (end_subprog_body): Directly call cgraph_finalize_function;
27865         do not lower the nested functions.
27866
27867 2004-09-20  Robert Dewar  <dewar@gnat.com>
27868
27869         PR ada/17540
27870         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
27871         if an address clause is present, since that means that the Import
27872         should be ignored.
27873
27874 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
27875
27876         * 5tsystem.ads: Removed, no longer used.
27877
27878 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
27879             Zack Weinberg  <zack@codesourcery.com>
27880
27881         * ada-tree.def: Use tree_code_class enumeration constants
27882         instead of code letters.
27883         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
27884         Update for new tree-class enumeration constants.
27885
27886 2004-09-17  Vincent Celier  <celier@gnat.com>
27887
27888         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
27889         capabilities of the general project manager.
27890
27891 2004-09-09  Vincent Celier  <celier@gnat.com>
27892
27893         * a-direct.ads: Add pragma Ada_05
27894         (Directory_Entry_Type): Give default value to component Kind to avoid
27895         not initialized warnings.
27896
27897         * a-direct.adb (Current_Directory): Remove directory separator at the
27898         end.
27899         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
27900         an existing directory.
27901         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
27902         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
27903         Convert the result to File_Size.
27904
27905         * prj.ads: (Project_Error): New exception
27906
27907         * prj-attr.adb: Except in procedure Initialize, Fail comes from
27908         Prj.Com, not from Osint.
27909         (Attrs, Package_Attributes): Tables moved to private part of spec
27910         (Add_Attribute, Add_Unknown_Package): Moved to new child package
27911         Prj.Attr.PM.
27912         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
27913         Prj.Project_Error after call to Fail.
27914         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
27915         Fail. Check that package name is not already in use.
27916
27917         * prj-attr.ads: Comment updates to indicate that all subprograms may be
27918         used by tools, not only by the project manager, and to indicate that
27919         exception Prj.Prj_Error may be raised in case of problem.
27920         (Add_Unknown_Package, Add_Attribute): Moved to new child package
27921         Prj.Attr.PM.
27922         (Attrs, Package_Attributes): Table instantiations moved from the body to
27923         the private part to be accessible from Prj.Attr.PM body.
27924
27925         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
27926         from new package Prj.Attr.PM.
27927         (Parse_Attribute_Declaration): Call Add_Attribute from new package
27928         Prj.Attr.PM.
27929
27930         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
27931
27932         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
27933         instead of Elaboration_Checks).
27934
27935         * a-calend.adb: Minor reformatting
27936
27937 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27938
27939         * gigi.h (maybe_pad_type): New declaration.
27940         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
27941
27942         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
27943
27944         * cuintp.c: Convert to use buildN.
27945
27946         * decl.c (maybe_pad_type): No longer static.
27947         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
27948         target pointer.
27949         Convert to use buildN.
27950
27951         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
27952         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
27953         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
27954         RHS.
27955         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
27956         (gnat_gimplify_expr, case ADDR_EXPR): New case.
27957         Convert to use buildN.
27958
27959         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
27960         TREE_READONLY for const.
27961         Convert to use buildN.
27962
27963         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
27964         (create_var_decl): Refine when TREE_STATIC is set.
27965         Convert to use buildN.
27966
27967 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
27968
27969         * gnat_ugn.texi: Delete text relating to checking of ali and object
27970         consistency.
27971
27972         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
27973         routines.
27974
27975 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
27976
27977         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
27978         pragmas recognized by GNAT.
27979
27980         * gnat_rm.texi: Document pragma Detect_Blocking.
27981
27982         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
27983         raise Program_Error if called from a protected operation.
27984
27985         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
27986         the protected action nesting level.
27987         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
27988         protected action nesting level.
27989         (Unlock): When pragma Detect_Blocking is active decrease the protected
27990         action nesting level.
27991
27992         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
27993         Protected_Action_Nesting.
27994
27995         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
27996         Common_ATCB record. It contains the dynamic level of protected action
27997         nesting for each task. It is needed for checking whether potentially
27998         blocking operations are called from protected operations.
27999         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
28000         Detect_Blocking is active or not in the partition.
28001
28002         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
28003         raise Program_Error if called from a protected operation.
28004         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
28005         Program_Error if called from a protected operation.
28006         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
28007         Program_Error if called from a protected operation.
28008
28009         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
28010         raise Program_Error if called from a protected operation.
28011
28012         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
28013         raise Program_Error if called from a protected operation, and increase
28014         the protected action nesting level.
28015         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
28016         Program_Error if called from a protected operation, and increase the
28017         protected action nesting level.
28018         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
28019         protected action nesting level.
28020
28021         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
28022         raise Program_Error if called from a protected operation, and increase
28023         the protected action nesting level.
28024         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
28025         Program_Error if called from a protected operation, and increase the
28026         protected action nesting level.
28027         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
28028         raise Program_Error if called from a protected operation.
28029         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
28030         active, raise Program_Error if called from a protected operation.
28031         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
28032         protected action nesting level.
28033
28034         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
28035         insertion of the statement raising Program_Error. The run time
28036         contains the required machinery for handling that.
28037
28038         * sem_util.ads: Change comment associated to procedure
28039         Check_Potentially_Blocking_Operation.
28040         This procedure does not insert a call for raising the exception because
28041         that is currently done by the run time.
28042
28043         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
28044
28045         * init.c: Add the global variable __gl_detect_blocking that indicates
28046         whether pragma Detect_Blocking is active (1) or not (0). Needed for
28047         making the pragma available at run time.
28048         (__gnat_set_globals): Pass and update the detect_blocking parameter.
28049
28050         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
28051         pragma Detect_Blocking is active.
28052
28053         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
28054
28055         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
28056         DB is found in the ali file. Any unit compiled with pragma
28057         Detect_Blocking active forces its effect in the whole partition.
28058
28059         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
28060         Detect_Blocking is active and delay is called from a protected
28061         operation.
28062
28063         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
28064         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
28065         Detect_Blocking is active (0 otherwise).
28066         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
28067         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
28068         otherwise).
28069
28070 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
28071
28072         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
28073         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
28074         package.
28075
28076         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
28077         (Register_Receiving_Stub): Add Subp_Info formal parameter.
28078         Update API in placeholder implemetation of s-parint to reflect changes
28079         in distribution runtime library.
28080
28081         * sem_ch3.adb (Expand_Derived_Record): Rename to
28082         Expand_Record_Extension.
28083
28084         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
28085         primitive operations of potentially distributed object types that have
28086         non-controlling anonymous access formals.
28087
28088         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
28089         subprogram.
28090         New implementation of expansion for remote access-to-subprogram types,
28091         based on the RACW infrastructure.
28092         This version of sem_dist is compatible with PolyORB/DSA as well as
28093         GLADE.
28094
28095         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
28096         Asynchrronous that applies to a remote access-to-subprogram type, mark
28097         the underlying RACW type as asynchronous.
28098
28099         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
28100          __gnat_using_gnu_linker to 1.
28101
28102         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
28103         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
28104         GNAT.Perfect_Hash_Generators, and remove the empty
28105         GNAT.Perfect_Hash package.
28106
28107         * atree.adb: Minor reformatting
28108
28109         * exp_ch3.adb (Expand_Derived_Record): Rename to
28110         Expand_Record_Extension.
28111         (Build_Record_Init_Proc.Build_Assignment): The default expression in
28112         a component declaration must remain attached at that point in the
28113         tree so New_Copy_Tree copies it if the enclosing record type is derived.
28114         It is therefore necessary to take a copy of the expression when building
28115         the corresponding assignment statement in the init proc.
28116         As a side effect, in the case of a derived record type, we now see the
28117         original expression, without any rewriting that could have occurred
28118         during expansion of the ancestor type's init proc, and we do not need
28119         to go back to Original_Node.
28120
28121         * exp_ch3.ads (Expand_Derived_Record): Rename to
28122         Expand_Record_Extension.
28123
28124         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
28125         Returns the RACW type used to implement a remote access-to-subprogram
28126         type.
28127         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
28128         New subprograms. Used to create a proxy tagged object for a remote
28129         subprogram. The proxy object is used as the designated object
28130         for RAS values on the same partition (unless All_Calls_Remote applies).
28131         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
28132         System.Partition_Interface.Get_Unique_Remote_Pointer.
28133         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
28134         Renamed from Add_RAS_*_Attribute.
28135         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
28136         subprograms.
28137         New implementation of expansion for remote access-to-subprogram types,
28138         based on the RACW infrastructure.
28139
28140         * exp_dist.ads (Copy_Specification): Update comment to note that this
28141         function can copy the specification from either a subprogram
28142         specification or an access-to-subprogram type definition.
28143
28144 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
28145
28146         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
28147         in an instance, between an explicit subprogram an one inherited from a
28148         type derived from an actual.
28149
28150         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
28151         add a polling call if the subprogram is to be inlined by the back-end,
28152         to avoid repeated calls with multiple inlinings.
28153
28154         * checks.adb (Apply_Alignment_Check): If the expression in the address
28155         clause is a call whose name is not a static entity (e.g. a dispatching
28156         call), treat as dynamic.
28157
28158 2004-09-09  Robert Dewar  <dewar@gnat.com>
28159
28160         * g-trasym.ads: Minor reformatting
28161
28162         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
28163         packed arrays, since unused bits are expected to be zero for a
28164         comparison.
28165
28166 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
28167
28168         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
28169         comment.
28170
28171 2004-09-09  Pascal Obry  <obry@gnat.com>
28172
28173         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
28174         enable map file generation. Add the right option to generate the map
28175         file if Map_File is set to True.
28176
28177         * gnatdll.adb (Gen_Map_File): New variable.
28178         (Syntax): Add info about new -m (Map_File) option.
28179         (Parse_Command_Line): Add support for -m option.
28180         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
28181         Minor reformatting.
28182
28183 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
28184
28185         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
28186         new gnatdist implementation.
28187         Define a subpackage isolating the output routines specific to this
28188         verbose mode.
28189
28190 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
28191
28192         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
28193
28194         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
28195
28196 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
28197
28198         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
28199         internal unit.
28200
28201         * opt.ads: Add Ada_Version_Runtime constant used to decide which
28202         version of the language is used to compile the run time.
28203
28204 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
28205
28206         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
28207         of variable length temporaries for function return now that the
28208         back-end and gigi support it.
28209
28210 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28211
28212         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
28213
28214         * trans.c (struct stmt_group): Delete field GLOBAL.
28215         (gnat_init_stmt_group): Do not initialize it.
28216         (call_to_gnu): Use save_expr, not protect_multiple_eval.
28217         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
28218         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
28219         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
28220         (start_stmt_group): Likewise.
28221         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
28222
28223         * utils2.c (ggc.h): Include.
28224         (build_call_raise): Call build_int_cst, not build_int_2.
28225
28226         * utils.c (gnat_init_decl_processing): Fix arg to
28227         build_common_tree_nodes.
28228         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
28229         (gnat_define_builtin): Set built_in_decls.
28230         (init_gigi_decls): Call build_int_cst, not build_int_2.
28231
28232         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
28233         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
28234         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
28235         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
28236         SET_TYPE_MODULE): Use them.
28237         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
28238         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
28239         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
28240         SET_TYPE_ADA_SIZE): Likewise.
28241         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
28242         (DECL_CONST_CORRESPONDING_VAR,
28243         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
28244         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
28245         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
28246         (TYPE_RM_SIZE_NUM): New macro.
28247         (TYPE_RM_SIZE): Modified to use above.
28248
28249         * cuintp.c: (build_cst_from_int): New function.
28250         (UI_To_gnu): Use it.
28251
28252         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
28253         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
28254         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
28255         MIN_EXPR for the size, copy it into new.
28256
28257 2004-09-01  Robert Dewar  <dewar@gnat.com>
28258
28259         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
28260         packed indexed component where array is an IN OUT formal. This
28261         generated garbage code previously.
28262
28263         * gnat_ugn.texi: Document -fverbose-asm
28264
28265         * gnat-style.texi: Minor updates (note that boolean constants and
28266         variables are joined with AND/OR rather than short circuit forms).
28267
28268 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
28269
28270         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
28271         it is an upward conversion of an untagged type with no representation
28272         change.
28273
28274 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
28275
28276         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
28277         System.Partition_Interface.
28278
28279         * checks.adb (Apply_Access_Checks): Do not generate checks when
28280         expander is not active (but check for unset reference to prefix of
28281         dereference).
28282
28283         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
28284         pragma Debug as an if statement with a constant condition, for
28285         consistent treatment of entity references contained within the
28286         enclosed procedure call.
28287
28288 2004-09-01  Vincent Celier  <celier@gnat.com>
28289
28290         * bindgen.adb: (Set_EA_Last): New procedure
28291         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
28292         Set_EA_Last.
28293         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
28294         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
28295         linked without errors.
28296         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
28297         ST and EA.
28298         (Gen_Exception_Table_C): Correct same bugs
28299
28300         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
28301
28302         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
28303         on Windows, make sure that the drive letter is in upper case.
28304
28305         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
28306         Windows, when the drive letter is added and Case_Sensitive is True, the
28307         drive letter is forced to upper case.
28308
28309         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
28310         to Options_2 for the call to MLib.Utl.Gcc.
28311
28312         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
28313         directory separator when defining BASE_DIR.
28314
28315 2004-09-01  Pascal Obry  <obry@gnat.com>
28316
28317         * gprcmd.adb (Extend): Do not output trailing directory separator. This
28318         is not needed and it confuses Windows GNU/make which does not report
28319         directory terminated by a slash as a directory.
28320         (gprcmd): Idem for "pwd" internal command.
28321
28322         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
28323         target names rewrite to fix regressions with recent version of
28324         GNU/make. Starting with GNU/make 3.80 the pipe character was not
28325         handled properly anymore.
28326
28327 2004-09-01  Andreas Schwab  <schwab@suse.de>
28328
28329         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
28330         * raise.c [!IN_RTS]: Undef abort.
28331
28332 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
28333
28334         * utils2.c (build_allocator): Use ssize_int.
28335
28336         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
28337
28338 2004-08-27  Andreas Schwab  <schwab@suse.de>
28339
28340         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
28341
28342 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
28343             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28344
28345         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
28346
28347 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
28348
28349         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
28350         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
28351         * utils.c (init_gigi_decls): Likewise.
28352         * utils2.c (build_call_raise, build_allocator): Likewise.
28353
28354 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
28355
28356         * utils.c (gnat_init_decl_processing): Adjust
28357         build_common_tree_nodes call.
28358
28359 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
28360
28361         * utils2.c (build_allocator): Use build_int_cst for negative
28362         size types.
28363
28364 2004-08-18  Richard Henderson  <rth@redhat.com>
28365
28366         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
28367
28368 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
28369
28370         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
28371         call.s
28372         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
28373         (gnat_to_gnu): Likewise.
28374
28375 2004-08-16  Pascal Obry  <obry@gnat.com>
28376
28377         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
28378         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
28379         option and not mdll anymore. Update comment.
28380
28381 2004-08-16  Pascal Obry  <obry@gnat.com>
28382
28383         * bld.adb (Put_Include_Project): Properly handle directory separators
28384         on Windows.
28385
28386 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
28387
28388         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
28389         decreasing the number of allocated junk nodes while searching for the
28390         appropriate subprogram.
28391
28392 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
28393
28394         * cuintp.c (UI_To_gnu): Use build_int_cst..
28395         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
28396         * utils.c (init_gigi_decls): Likewise.
28397         * utils2.c (build_call_raise): Likewise.
28398
28399 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
28400
28401         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
28402         for a global aliased object with a variable size and an unconstrained
28403         nominal subtype, pretend there is no initializer if the one we have is
28404         incomplete, and avoid referencing an inexistant component in there. The
28405         part we have will be rebuilt anyway and the reference may confuse
28406         further operations.
28407
28408 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
28409
28410         * einfo.ads: Minor reformatting
28411
28412         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
28413         restrictions in the ALI if we only want to warn about violations.
28414
28415 2004-08-13  Vincent Celier  <celier@gnat.com>
28416
28417         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
28418         when creating a new Unit_Record in table Units.
28419
28420         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
28421         that are violated, if any.
28422
28423         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
28424         add directory separator if path already ends with a directory separator.
28425
28426 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
28427
28428         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
28429         unit, this is an attempt to inline a construct that is not available in
28430         the current restricted mode, so abort rather than trying to continue.
28431
28432         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
28433         discriminants that rename those of the parent, recover names of
28434         original discriminants for the constraint on the full view of the
28435         parent.
28436         (Complete_Private_Subtype): Do not create a subtype declaration if the
28437         subtype is an itype.
28438
28439         * gnat_rm.texi: Added section on implementation of discriminated
28440         records with default values for discriminants.
28441
28442 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
28443
28444         PR ada/15601
28445         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
28446         the second operand is overloaded.
28447
28448 2004-08-10  Richard Henderson  <rth@redhat.com>
28449
28450         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
28451         add __builtin_alloca.
28452
28453 2004-08-10  Richard Henderson  <rth@redhat.com>
28454
28455         * config-lang.in (boot_language): Yes.
28456
28457 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
28458
28459         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
28460         from complaining on potential uninitialized reference.
28461         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
28462         new specification and test explicitly for non-zero return value.
28463
28464         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
28465         returning C.int, to avoid using a derived boolean type.
28466
28467         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
28468         Duplicate_Subexpr_No_Checks in preference to direct use of
28469         Remove_Side_Effects and New_Copy_Tree.
28470         Clear Comes_From_Source on prefix of 'Size attribute reference.
28471
28472         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
28473         g-socthi-vxworks.adb: Change calls to
28474         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
28475         and test explicitly for non-zero return value.
28476
28477         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
28478         (Is_Socket_In_Set): Declare imported function as returning C.int, to
28479         avoid using a derived boolean type.
28480
28481 2004-08-09  Albert Lee  <lee@gnat.com>
28482
28483         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
28484
28485 2004-08-09  Pascal Obry  <obry@gnat.com>
28486
28487         * gnat_ugn.texi: Document new way to build DLLs on Windows using
28488         GCC's -shared option.
28489
28490         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
28491         Options_2 parameter (options put after object files).
28492
28493 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
28494
28495         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
28496         ignore overflows on low and high bounds of an index to also account for
28497         differences in signedness between sizetype and gnu_index_subtype.
28498         These are as legitimate as the ones caused by a lower TYPE_PRECISION
28499         on sizetype.
28500
28501 2004-08-09  Robert Dewar  <dewar@gnat.com>
28502
28503         * s-solita.ads, s-solita.adb: Minor reformatting
28504
28505         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
28506         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
28507         obsolescent section
28508         Add note that No_Implicit_Conditionals does not suppress
28509         run time constraint checks.
28510
28511         * vms_conv.ads: Minor reformatting
28512
28513         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
28514         and necessary for following change).
28515         (Mark): Return new format Mark_Id containing sec stack address
28516         (Release): Use sec stack address from Mark_Id avoiding Self call
28517
28518         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
28519         pointer (cleanup and necessary for following change).
28520         Define Mark_Id as record containing address of secondary stack, that way
28521         Release does not need to find the stack again, decreasing the number of
28522         calls to Self and improving efficiency.
28523
28524         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
28525
28526         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
28527         case variable into the individual case branches when possible.
28528
28529         * sem_ch11.adb: Minor reformatting
28530
28531         * prj.ads: Correct spelling of suffixs
28532
28533         * prj-nmsc.adb: Minor reformatting
28534         Correct spelling suffixs throughout (also in identifiers)
28535
28536         * freeze.adb: Minor spelling correction
28537
28538         * exp_ch2.adb: Cleanups to handling of Current_Value
28539         (no functional effect).
28540
28541         * bld.adb: Correct spelling of suffixs
28542
28543         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
28544
28545 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
28546
28547         PR ada/15408
28548         * sem_ch7.adb (Install_Private_Declarations): In the body of the
28549         package or of a child, private entities are both immediately_visible
28550         and not hidden.
28551
28552 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
28553
28554         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
28555         there are no range checks on the value of the literal.
28556
28557         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
28558         wrapped is the triggering alternative of an asynchronous select, action
28559         statements mustbe inserted before the select itself.
28560
28561         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
28562         case where the prefix is a protected function call.
28563         (Resolve_Attribute, case 'Access): The attribute reference on a
28564         subprogram is legal in a generic body if the subprogram is declared
28565         elsewhere.
28566
28567 2004-08-09  Vincent Celier  <celier@gnat.com>
28568
28569         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
28570         languages, otherwise building the library may fail with unresolved
28571         symbols.
28572         (Compile_Sources): Do not build libraries if -c switch is used
28573
28574         * gnatlink.adb (Process_Args): New switches -M and -Mmap
28575         (Write_Usage): If map file creation is supported, output new switches
28576         -M and -Mmap.
28577         (Gnatlink): When -M is specified, add the necessary switch(es) to the
28578         gcc call, when supported.
28579
28580         * Makefile.in: Added indepsw.o to the object list for gnatlink
28581         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
28582
28583         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
28584         indepsw.adb, indepsw.ads: New files.
28585
28586 2004-08-09  Bernard Banner  <banner@gnat.com>
28587
28588         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
28589
28590         * Makefile.in: add section for vxworks x86
28591
28592 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
28593
28594         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
28595         per-object constrained components where the discriminant is of an
28596         Access type.
28597         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
28598         the parent initialization procedure for derived Unchecked_Unions.
28599         Instead, derived Unchecked_Unions build their own initialization
28600         procedure.
28601         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
28602         Check the body of the subprogram for details.
28603         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
28604         functions for derived Unchecked_Union types by introducing a condition.
28605         Allow the creation of TSS equality functions for Unchecked_Unions.
28606         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
28607         Add formal parameter Discr to function signature. Discr is used to
28608         control the generated case statement for Unchecked_Union types.
28609         (Make_Eq_If): Rename formal parameter Node to E in function signature.
28610
28611         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
28612         Unchecked_Unions.
28613         Check the body of the subprogram for details.
28614         (Expand_Composite_Equality): Augment composite type equality to include
28615         correct handling of Unchecked_Union components.
28616         (Expand_N_In): Add condition to detect illegal membership tests when the
28617         subtype mark is a constrained Unchecked_Union and the expression lacks
28618         inferable discriminants, and build a Raise_Program_Error node.
28619         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
28620         to detect types that contain components of unconstrained Unchecked_Union
28621         subtype. Add condition to detect equality between types that have an
28622         unconstrained Unchecked_Union component, and build a Raise_Program_Error
28623         node. Add condition to detect equality between Unchecked_Union types
28624         that lack inferable discriminants, and build a Raise_Program_Error node.
28625         Otherwise build a TSS equality function call.
28626         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
28627         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
28628         with the operand lacking inferable discriminants, and build a Raise_
28629         Program_Error node.
28630         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
28631         composite equality.
28632         (Has_Inferable_Discriminants): Implement new predicate for objects and
28633         expressions of Unchecked_Union type. Check the body of subprogram for
28634         details.
28635         (Has_Unconstrained_UU_Components): Add function
28636         Component_Is_Unconstrained_UU. It is used to detect whether a single
28637         component is of an unconstrained Unchecked_Union subtype. Add function
28638         Variant_Is_Unconstrained_UU. It is used to detect whether a single
28639         component inside a variant is of an unconstrained Unchecked_Union type.
28640
28641         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
28642         inferred discriminant values. Add condition to generate a case
28643         statement with an inferred discriminant as the switch.
28644         (Make_Component_List_Assign): Introduce a Boolean flag that determines
28645         the behaviour of the subprogram in the presence of an Unchecked_Union.
28646         Add condition to trigger the usage of the inferred discriminant value
28647         as the generated case statement switch.
28648         (Make_Field_Assign): Introduce a Boolean flag that determines the
28649         behaviour of the subprogram in the presence of an Unchecked_Union. Add
28650         condition to trigger the usage of the inferred discriminant value as
28651         the right-hand side of the generated assignment.
28652
28653         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
28654         parameter generation when dealing with Unchecked_Unions.
28655
28656         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
28657         checks for Unchecked_Unions.
28658
28659         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
28660
28661         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
28662         Raise_Program_Error nodes for the execution of Read and Write
28663         attributes of Unchecked_Union types and the execution of Input and
28664         Output attributes of Unchecked_Union types that lack default
28665         discriminant values.
28666
28667         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
28668         Unchecked_Union. Add procedure Check_Component. It is used to inspect
28669         per-object constrained components of Unchecked_Unions for being
28670         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
28671         check individual components withing a variant.
28672
28673         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
28674         comparison of Unchecked_Unions.
28675         (Resolve_Equality_OP): Remove guard that prevents equality between
28676         Unchecked_Unions.
28677
28678         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
28679         of component subtypes for Unchecked_Union components.
28680         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
28681         since it is the actual subtype.
28682
28683         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
28684         pass of Unchecked_Union subtypes as generic actuals to formal types
28685         that lack known_discriminant_parts or that are derived Unchecked_Union
28686         types, and do nothing. In any other case, produce an error message.
28687
28688         * sem_ch3.adb (Analyze_Component_Declaration): Add function
28689         Contains_POC. It determines whether a constraint uses the discriminant
28690         of an enclosing record type.
28691         Add condition to detect per-object constrained component and set the
28692         appropriate flag.
28693         (Derived_Type_Declaration): Remove guard that prevents derivation from
28694         Unchecked_Union types.
28695         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
28696         Union subtypes.
28697
28698         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
28699         references to Unchecked_Union discriminants.
28700
28701         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
28702         formal generation when dealing with Unchecked_Unions.
28703         (Set_Actual_Subtypes): Add condition to prevent generation of actual
28704         subtypes for Unchecked_Unions.
28705
28706         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
28707         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
28708         completions of discriminated partial views by Unchecked_Unions and
28709         produce an error message.
28710
28711 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28712
28713         * trans.c (struct stmt_group): New field, GLOBAL.
28714         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
28715         (struct elab_info): New struct.
28716         (elab_info_list, gnu_elab_proc_stack): New variables.
28717         (Compilation_Unit_to_gnu): New procedure.
28718         (gigi): Call it and also handle elaboration procs we've saved.
28719         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
28720         global field from parent.
28721         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
28722         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
28723         (start_stmt_group): Initialize global field from parent.
28724         (add_decl_expr): Set to global for current statement group.
28725         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
28726         post.
28727
28728         * utils.c (global_bindings_p): True when no current_function_decl; no
28729         longer check current_binding_level.
28730
28731 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
28732
28733         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
28734         choice.
28735
28736         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
28737
28738 2004-08-06  Andreas Schwab  <schwab@suse.de>
28739
28740         * utils.c (gnat_define_builtin): Remove second parameter of
28741         make_decl_rtl.
28742         (begin_subprog_body): Likewise.
28743
28744 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
28745
28746         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
28747         optimization, not supported by the tree-ssa back-end.
28748
28749 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
28750
28751         * s-mastop-irix.adb: Update comments.
28752
28753         * a-except.adb (Exception_Information): Raise Constraint_Error if
28754         exception Id is Null_Id.
28755         This is required behavior, which is more reliably and clearly checked
28756         at the top level interface level.
28757
28758 2004-07-26  Javier Miranda  <miranda@gnat.com>
28759
28760         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
28761         call if a component has no default_expression and the box is used.
28762
28763         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
28764         default_expression and you use box, it behaves as if you had declared a
28765         stand-alone object.
28766         (Resolve_Record_Aggregate): If a component has no default_expression and
28767         you use box, it behaves as if you had declared a stand-alone object.
28768
28769         * sem_ch10.adb (Install_Siblings): Do not make visible the private
28770         entities of private-with siblings.
28771
28772 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
28773
28774         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
28775         for a component of an itype, set the parent pointer for analysis,
28776         there is no list in which to insert it.
28777
28778         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
28779         bona-fide renamings, not for inherited operations.
28780
28781         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
28782         actual for a formal that is an access parameter, create local
28783         finalization list even if the expression is not an aggregate.
28784
28785 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
28786
28787         PR ada/16213
28788         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
28789         Diagnose properly illegal subprogram renamings that are library units.
28790
28791 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
28792
28793         PR ada/15588
28794         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
28795         conversion rewritten as an unchecked conversion, check that original
28796         expression is a variable.
28797
28798         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
28799         unchecked_conversion, create new node rather than rewriting in place,
28800         to preserve original construct.
28801
28802 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28803
28804         * gigi.h (gnat_expand_body): Deleted.
28805
28806         * Make-lang.in: (trans.o): Depends on function.h.
28807
28808         * misc.c: (gnat_expand_body): Moved to here.
28809
28810         * trans.c (gnat_expand_body_1): Deleted.
28811         (gnat_expand_body): Moved from here.
28812         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
28813         (add_stmt): Check for marked visited with global_bindings_p.
28814         (gnat_gimplify_expr, case COMPONENT_REF): New case.
28815         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
28816
28817         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
28818         VIEW_CONVERT_EXPR if not operation type.
28819
28820         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
28821         fat pointer.
28822
28823         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
28824         changes: reformatting of negation operators, removing unneeded
28825         inequality comparison with zero, converting equality comparisons with
28826         zero to negations, changing int/0/1 to bool/false/true, replace calls
28827         to gigi_abort with abort, and various other similar changes.
28828
28829 2004-07-26  Vincent Celier  <celier@gnat.com>
28830
28831         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
28832         "setup".
28833
28834         * make.adb (Gnatmake): Fail when a library is not present and there is
28835         no object directory.
28836
28837         * mlib-prj.adb (Check_Library): No need to check if the library needs
28838         to be rebuilt if there is no object directory, hence no object files
28839         to build the library.
28840
28841         * opt.ads (Setup_Projects): New Boolean flag.
28842
28843         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
28844         Location.
28845         Create directory when Kind /= "" and in "gnat setup". Report error if
28846         directory cannot be created.
28847         (Ada_Check): Create library interface copy dir if it does not exist
28848         and we are in "gnat setup".
28849         (Find_Sources): No error if in "gnat setup" and no Ada sources were
28850         found.
28851         (Language_Independent_Check): Create object directory, exec directory
28852         and/or library directory if they do not exist and we are in
28853         "gnat setup".
28854
28855         * vms_conv.ads: (Command_Type): New command Setup.
28856
28857         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
28858
28859         * vms_data.ads: Add qualifiers/switches for new built-in command
28860         "setup".
28861
28862 2004-07-25  Richard Henderson  <rth@redhat.com>
28863
28864         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
28865         DECL_IGNORED_P on RESULT_DECL.
28866
28867 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
28868
28869         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
28870         allocation and potentially overflowing update with
28871         Tailored_Exception_Information. Use the sec-stack free procedural
28872         interface to output Exception_Information instead.
28873
28874         * a-except.adb (To_Stderr): New subprogram for character, and string
28875         version moved from a-exextr to be visible from other separate units.
28876         (Tailored_Exception_Information): Remove the procedural version,
28877         previously used by the default Last_Chance_Handler and not any more.
28878         Adjust various comments.
28879
28880         * a-exexda.adb: Generalize the exception information procedural
28881         interface, to minimize the use of secondary stack and the need for
28882         local buffers when the info is to be output to stderr:
28883         (Address_Image): Removed.
28884         (Append_Info_Character): New subprogram, checking for overflows and
28885         outputing to stderr if buffer to fill is of length 0.
28886         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
28887         (Append_Info_Address, Append_Info_Exception_Name,
28888         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
28889         Append_Info_Basic_Exception_Traceback,
28890         Append_Info_Exception_Information): New subprograms.
28891         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
28892         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
28893         Exception_Info_Maxlength, Exception_Name_Length,
28894         Exception_Message_Length): New subprograms.
28895         (Exception_Information): Use Append_Info_Exception_Information.
28896         (Tailored_Exception_Information): Use
28897         Append_Info_Basic_Exception_Information.
28898         Export services for the default Last_Chance_Handler.
28899
28900         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
28901         other separate units.
28902
28903 2004-07-20  Vincent Celier  <celier@gnat.com>
28904
28905         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
28906
28907 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
28908
28909         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
28910         emit itype references for the designated types of component types that
28911         are declared outside of the full record declaration, and that may
28912         denote a partial view of that record type.
28913
28914 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
28915
28916         PR ada/15607
28917         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
28918         which is the designated type in an access component declaration, to the
28919         list of incomplete dependents of the parent type, to avoid elaboration
28920         issues with out-of-scope subtypes.
28921         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
28922         full view of the parent.
28923
28924 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
28925
28926         PR ada/15610
28927         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
28928         entities that are hidden, such as references to generic actuals
28929         outside an instance.
28930
28931 2004-07-20  Javier Miranda  <miranda@gnat.com>
28932
28933         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
28934         support to the new notation.
28935         (Analyze_Selected_Component): Add call to Try_Object_Operation.
28936
28937 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
28938
28939         * s-taprob.adb: Adding the elaboration code required for initializing
28940         the tasking soft links that are common to the full and the restricted
28941         run times.
28942
28943         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
28944         restricted run time has been moved to the package
28945         System.Soft_Links.Tasking.
28946
28947         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
28948         restricted run time has been moved to the package
28949         System.Soft_Links.Tasking.
28950
28951         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
28952
28953         * s-solita.ads, s-solita.adb: New files.
28954
28955 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28956
28957         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
28958         Case_Statement_to_gnu): Split off from gnat_to_gnu.
28959         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
28960         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
28961         Exception_Handler_to_gnu_zcx): Likewise.
28962
28963 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
28964
28965         * gigi.h (builtin_function): Declare.
28966
28967 2004-07-15  Robert Dewar  <dewar@gnat.com>
28968
28969         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
28970         reformatting
28971
28972         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
28973         access values as an example of a warning.
28974
28975         * gnat_rm.texi: Document new attribute Has_Access_Values
28976
28977         * gnat-style.texi: Document that box comments belong on nested
28978         subprograms
28979
28980         * sem_util.ads (Has_Access_Values): Improved documentation
28981
28982         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
28983
28984         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
28985         (Process_Interface_Name): Call to this new procedure
28986         (Set_Extended_Import_Export_External_Name): Call to this new procedure
28987
28988         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
28989
28990         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
28991
28992         * einfo.ads: Minor comment typo fixed
28993
28994 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
28995
28996         * snames.adb: Add _atcb.
28997
28998         * snames.ads: Add Name_uATCB.
28999
29000         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
29001         (in the expanded code) when using the restricted run time.
29002
29003         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
29004         a in parameter in order to allow ATCBs to be preallocated (in the
29005         expanded code).
29006
29007         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
29008         order to allow ATCBs to be preallocated. In case of error, the ATCB is
29009         deallocated in System.Tasking.Stages.
29010
29011         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
29012         order to allow ATCBs to be preallocated.
29013
29014         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
29015         here. It was previously done in Initialize_ATCB.
29016
29017         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
29018
29019         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
29020         Restricted run time.
29021
29022         * exp_ch3.adb: When using the Restricted run time, pass the
29023         preallocated Ada_Task_Control_Block when creating a task.
29024
29025 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
29026
29027         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
29028         function call that is itself an actual in an enclosing call, diagnose
29029         problem here rather than assuming that resolution will catch it.
29030
29031         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
29032         the local copy of a generic unit for a formal package, and the generic
29033         is a child unit, install private part of ancestors before compiling
29034         private part of spec.
29035
29036         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
29037         use scope entities rather than tree structures, to handle properly
29038         parent units that are instances rewritten as bodies for inlining
29039         purposes.
29040
29041         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
29042         Remove_Parents): Handle properly a parent unit that is an
29043         instantiation, when the unit has been rewritten as a body for inlining
29044         purposes.
29045
29046         * par.adb (Goto_List): Global variable to collect goto statements in a
29047         given unit, for use in detecting natural loops.
29048
29049         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
29050         use in detecting natural loops.
29051
29052         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
29053         backwards goto's, and rewrite as a infinite loop, to improve locality
29054         of temporaries.
29055
29056         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
29057         subcomponent that includes an indexed reference, to prevent the
29058         generation of copies that would miscompile the desired assignment
29059         statement.
29060         (Build_Task_Image_Decls): Add a numeric suffix to
29061         generated name for string variable, to avoid spurious conflicts with
29062         the name of the type of a single protected object.
29063
29064         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
29065         loop with an explicit exit statement, to avoid generating an
29066         out-of-range value with 'Succ leading to spurious constraint_errors
29067         when compiling with -gnatVo.
29068
29069 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
29070
29071         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
29072         might not be analyzed yet, even if its Etype is already set (case of an
29073         unchecked conversion built using Unchecked_Convert_To, for example).
29074         If the prefix has already been analyzed, this will be a nop anyway.
29075
29076         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
29077         controller type, or an assignment of a record type with controlled
29078         components, copy only user data, and leave the finalization chain
29079         pointers untouched.
29080
29081 2004-07-15  Vincent Celier  <celier@gnat.com>
29082
29083         * make.adb (Collect_Arguments): Improve error message when attempting
29084         to compile a source not part of any project, when -x is not used.
29085
29086         * prj.ads: (Defined_Variable_Kind): New subtype
29087
29088         * prj-attr.adb (Register_New_Package): Two new procedures to register
29089         a package with or without its attributes.
29090         (Register_New_Attribute): Mew procedure to register a new attribute in a
29091         package.
29092         New attribute oriented subprograms: Attribute_Node_Id_Of,
29093         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
29094         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
29095         Next_Attribute.
29096         New package oriented subprograms: Package_Node_Id_Of,
29097         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
29098
29099         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
29100         type.
29101         (Package_Node_Id): Now a private, self initialized type
29102         (Register_New_Package): New procedure to register a package with its
29103         attributes.
29104         New attribute oriented subprograms: Attribute_Node_Id_Of,
29105         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
29106         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
29107         Next_Attribute.
29108         New package oriented subprograms: Package_Node_Id_Of,
29109         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
29110
29111         * prj-dect.adb (Parse_Attribute_Declaration,
29112         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
29113
29114         * prj-makr.adb (Make): Parse existing project file before creating
29115         other files. Fail if there was an error during parsing.
29116
29117         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
29118         new spec of Prj.Attr.
29119
29120         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
29121         to new spec of Prj.Attr.
29122
29123 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29124
29125         * utils2.c: Fix typo in comment.
29126
29127 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29128
29129         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
29130         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
29131
29132 2004-07-14  Andreas Schwab  <schwab@suse.de>
29133
29134         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
29135
29136 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29137
29138         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
29139         object type.
29140         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
29141         TYPE_STUB_DECL.
29142
29143         * misc.c (gnat_types_compatible_p): New function.
29144         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
29145         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
29146
29147         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
29148         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
29149         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
29150         (mark_visited): Don't mark dummy type.
29151         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
29152         parameter, we must remove any LJM building from GNU_NAME.
29153         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
29154         (pos_to_constructor): Use int_const_binop.
29155         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
29156         PARM_DECL.
29157
29158         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
29159         (gnat_pushlevel): Set TREE_USE on BLOCK node.
29160         (gnat_install_builtins): Add __builtin_memset.
29161
29162 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
29163
29164         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
29165         for a renaming, stabilize the initialization expression if we are at a
29166         local level.  At the local level, uses of the renaming may be performed
29167         by a direct dereference of the initializing expression, and we don't
29168         want possible variables there to be evaluated for every use.
29169
29170         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
29171         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
29172         them on the way.  Account for the fact that we may introduce side
29173         effects in the process.
29174
29175 2004-07-13  Richard Henderson  <rth@redhat.com>
29176
29177         * misc.c (default_pass_by_ref): Use pass_by_reference.
29178
29179 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
29180
29181         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
29182         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
29183
29184 2004-07-08  Richard Henderson  <rth@redhat.com>
29185
29186         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
29187         commentary.
29188
29189 2004-07-06  Vincent Celier  <celier@gnat.com>
29190
29191         * vms_conv.ads: Minor reformatting.
29192         Alphabetical order for enumerated values of type Command_Type, to have
29193         the command in alphabetical order for the usage.
29194
29195         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
29196         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
29197
29198         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
29199
29200         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
29201         (Add_Archive_Path): Only add the global archive if there is one.
29202         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
29203         or not any object file to put in the global archive, and don't build
29204         a global archive if there is none.
29205         (X_Switches): New table
29206         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
29207         in the X_Switches table, if any.
29208         (Initialize): Make sure the X_Switches table is empty
29209         (Scan_Arg): Record -X switches in table X_Switches
29210
29211         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
29212
29213         * make.adb: Minor comment fix
29214
29215         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
29216         invoked with directory information, add the directory in front of the
29217         path.
29218
29219         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
29220         invoked with directory information, add the directory in front of the
29221         path.
29222
29223         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
29224         when Keep_Temporary_Files is False.
29225         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
29226         directory information, add the directory in front of the path.
29227         When not on VMS, handle new switch -dn before the command to set
29228         Keep_Temporary_Files to True.
29229         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
29230         everywhere.
29231
29232         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
29233         invoked with directory information, add the directory in front of the
29234         path.
29235
29236 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
29237
29238         * snames.ads, snames.adb (Name_Stub): New name for the distributed
29239         systems annex.
29240
29241         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
29242         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
29243
29244         * g-socket.adb (To_Timeval): Fix incorrect conversion of
29245         Selector_Duration to Timeval for the case of 0.0.
29246
29247         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
29248         documentation from Evolve_And_Then.
29249
29250 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
29251
29252         * s-taprop-tru64.adb, s-taprop-os2.adb,
29253         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
29254
29255 2004-07-06  Robert Dewar  <dewar@gnat.com>
29256
29257         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
29258         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
29259         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
29260         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
29261         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
29262         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
29263         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
29264         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
29265         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
29266         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
29267         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
29268         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
29269         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
29270         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
29271         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
29272         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
29273         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
29274         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
29275         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
29276         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
29277         vms_data.ads: Minor reformatting,
29278         Fix bad box comment format.
29279
29280         * gnat_rm.texi: Fix minor grammatical error
29281
29282         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
29283
29284         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
29285         more cases of discriminated records to be recognized as not needing a
29286         secondary stack.
29287         (Has_Access_Values): New function.
29288
29289         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
29290
29291         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
29292         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
29293         with LRM terminology).
29294         Change terminology in comments primitive type => elementary type.
29295
29296 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
29297
29298         PR ada/15602
29299         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
29300         parameters do not impose any requirements on the presence of a body.
29301
29302 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
29303
29304         PR ada/15593
29305         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
29306         compilation unit and is in an open scope at the point of instantiation,
29307         assume that a body may be present later.
29308
29309 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
29310
29311         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
29312         Improve error message when specified size is not supported.
29313
29314         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
29315         is never a primitive operation.
29316
29317 2004-07-05  Andreas Schwab  <schwab@suse.de>
29318
29319         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
29320         RECORD_OR_UNION_CHECK.
29321         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
29322
29323 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
29324
29325         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
29326         dependency on xgnatugn, instead build it via a submake.
29327         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
29328
29329 2004-07-04  Richard Henderson  <rth@redhat.com>
29330
29331         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
29332
29333 2004-07-01  Richard Henderson  <rth@redhat.com>
29334
29335         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
29336         * utils.c (max_size): Likewise.
29337
29338 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29339
29340         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
29341         and rest_of_type_compilation; add arg to create_*_decl.
29342         (annotate_decl_with_node): Deleted.
29343         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
29344         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
29345         (get_current_block_context, gnat_pushdecl): New declarations.
29346         (gnat_init_stmt_group): Likewise.
29347         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
29348         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
29349         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
29350         (gnat_init): Call gnat_init_stmt_group.
29351         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
29352         (gnu_pending_elaboration_list): Deleted.
29353         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
29354         (gigi): Rearrange initialization calls and move some to last above.
29355         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
29356         Delete calls to add_decl_expr; add arg to create_*_decl.
29357         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
29358         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
29359         begin_subprog_body and call it.
29360         Don't push and pop ggc context.
29361         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
29362         (add_stmt): Remove handling of DECL_EXPR from here.
29363         If not in function, mark visited.
29364         (add_decl_expr): Put global at top level.
29365         Check for cases of DECL_INITIAL we have to handle here.
29366         (process_type): Add extra arg to create_type_decl.
29367         (build_unit_elab): Rework to just gimplify.
29368         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
29369         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
29370         (get_pending_elaborations, pending_elaborations_p): Likewise.
29371         (push_pending_elaborations, pop_pending_elaborations): Likewise.
29372         (get_elaboration_location, insert_elaboration_list): Likewise.
29373         (gnat_binding_level): Renamed from ada_binding_level.
29374         (init_gnat_to_gnu): Don't clear pending_elaborations.
29375         (global_bindings_p): Treat as global if no current_binding_level.
29376         (set_current_block_context): New function.
29377         (gnat_pushdecl): Renamed from pushdecl; major rework.
29378         All callers changed.
29379         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
29380         (finish_record_type): Call call pushdecl for stub decl.
29381         (function_nesting_depth): Deleted.
29382         (begin_subprog_body): Delete obsolete code.
29383         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
29384
29385 2004-06-28  Robert Dewar  <dewar@gnat.com>
29386
29387         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
29388         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
29389         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
29390         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
29391         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
29392
29393         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
29394         deal with problem of inefficient slices on machines with strict
29395         alignment, when the slice is a component of a composite.
29396
29397         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
29398         machines, we need the check there as well.
29399
29400 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
29401
29402         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
29403         determine safe copying direction for overlapping slice assignments
29404         when component is controlled.
29405
29406         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
29407         formal derived type in the actual for a formal package are visible in
29408         the enclosing instance.
29409
29410 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
29411
29412         PR ada/15600
29413         * sem_util.adb (Trace_Components): Diagnose properly an illegal
29414         circularity involving a private type whose completion includes a
29415         self-referential component.
29416         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
29417         renaming or an instantiation from an implicit derived operation.
29418
29419 2004-06-28  Pascal Obry  <obry@gnat.com>
29420
29421         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
29422         DLL.
29423         (Library_File_Name_For): Idem.
29424
29425 2004-06-28  Matthew Gingell  <gingell@gnat.com>
29426
29427         * g-traceb.ads: Add explanatory note on the format of addresses
29428         expected by addr2line.
29429
29430 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
29431
29432         * Makefile.in: Force debugging information on s-tasdeb.adb,
29433         a-except.adb and s-assert.adb needed by the debugger.
29434
29435 2004-06-28  Vincent Celier  <celier@gnat.com>
29436
29437         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
29438         Need_To_Build_Lib.
29439         (Gnatmake): Ditto.
29440
29441         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
29442
29443         * prj.adb: Minor reformatting
29444         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
29445
29446         * prj.ads: Comment updates
29447         Minor reformatting
29448         (Project_Data): Change Flag1 to Need_To_Build_Lib.
29449         Remove Flag2: not used.
29450
29451         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
29452         declaration.
29453
29454         * gnat_ugn.texi: Put a "null;" declaration in one project file example
29455
29456         * gnat_rm.texi: Document Empty declarations "null;".
29457
29458         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
29459         front of the linker options.
29460         (Link_Foreign): Put the global archives and the libraries in front of
29461         the linker options.
29462
29463 2004-06-28  Javier Miranda  <miranda@gnat.com>
29464
29465         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
29466         (RTU_Loaded): Code cleanup
29467         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
29468         withed predefined units.
29469
29470         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
29471         explicitly withed predefined units.
29472         Fix typo in comment
29473
29474         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
29475         explicitly withed predefined units.
29476
29477 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29478
29479         * ada-tree.def (DECL_STMT): Deleted.
29480         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
29481         (DECL_STMT_VAR): Deleted.
29482         * decl.c: add_decl_stmt now add_decl_expr.
29483         * gigi.h: Likewise.
29484         * trans.c: Likewise.
29485         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
29486         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
29487         (add_stmt): Only handle padded type here.
29488         (add_stmt_with_node): Allow gnat_node to not be present.
29489         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
29490         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
29491         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
29492         make a SAVE_EXPR for the entire fat pointer.
29493         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
29494         (create_index_type): Make a DECL_EXPR.
29495         (end_subprog_body): Don't call allocate_struct_function here but
29496         do clear cfun.
29497
29498 2004-06-25  Pascal Obry  <obry@gnat.com>
29499
29500         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
29501         Relocatable from Build_Dynamic_Library call.
29502
29503         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
29504         Relocatable are now synonym.
29505
29506         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
29507
29508         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
29509         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
29510         call.
29511
29512         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
29513         Lib_Address and Relocatable.
29514         (Default_DLL_Address): Removed.
29515
29516         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
29517         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
29518         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
29519         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
29520         (Default_DLL_Address): Removed.
29521
29522         * mlib-tgt-mingw.adb: Ditto.
29523         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
29524
29525         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
29526         the initial thread stack size.
29527
29528         * a-strmap.ads: Move package L to private part as it is not used in
29529         the spec. Found while reading code.
29530
29531 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
29532
29533         * tracebak.c: Introduce support for a GCC infrastructure based
29534         implementation of __gnat_backtrace.
29535
29536         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
29537         any more. Use accessors instead. This eases maintenance and relaxes
29538         some alignment constraints.
29539         (_GNAT_Exception structure): Remove the Ada specific fields
29540         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
29541         a-exexpr.adb.
29542         (is_handled_by, __gnat_eh_personality): Replace component references to
29543         exception structure by use of the new accessors.
29544
29545         * init.c (__gnat_initialize): Adjust comments to match the just
29546         reverted meaning of the -static link-time option.
29547
29548         * adaint.c (convert_addresses): Arrange not to define a stub for
29549         mips-irix any more, as we now want to rely on a real version from a
29550         recent libaddr2line.
29551
29552         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
29553         the personality routine can use them and not have to rely on a C
29554         counterpart of the record anymore. This simplifies maintenance and
29555         relaxes the constraint of having Standard'Maximum_Alignment match
29556         BIGGEST_ALIGNMENT.
29557         Update comments, and add a section on the common header alignment issue.
29558
29559 2004-06-25  Geert Bosch  <bosch@gnat.com>
29560
29561         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
29562         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
29563
29564 2004-06-25  Robert Dewar  <dewar@gnat.com>
29565
29566         * gnat_rm.texi: Fix section on component clauses to indicate that the
29567         restriction on byte boundary placement still applies for bit packed
29568         arrays.
29569         Add comment on stack usage from Initialize_Scalars
29570
29571         * gnat_ugn.texi: Add documentation for -gnatyLnnn
29572
29573         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
29574         limiting nesting level.
29575
29576         * usage.adb: Add line for -gnatyLnnn switch
29577
29578         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
29579         sem_ch13.adb, exp_aggr.adb: Minor reformatting
29580
29581         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
29582         type as well as on the subtype. This corrects a problem in freeze in
29583         setting alignments of atomic types.
29584
29585         * sem_eval.ads: Minor comment typo fixed
29586
29587         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
29588         level.  Minor reformatting.
29589
29590         * fname.adb (Is_Predefined_File_Name): Require a letter after the
29591         minus sign. This means that file names like a--b.adb will not be
29592         considered predefined.
29593
29594         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
29595         record Test new flag and give diagnostic for bad component clause.
29596         (Freeze_Entity): Set alignment of array from component alignment in
29597         cases where this is safe to do.
29598
29599         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
29600         arrays.
29601
29602         * cstand.adb: (Create_Standard): Set alignment of String to 1
29603
29604         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
29605
29606         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
29607         code in the common constrained array cases.
29608
29609         * a-storio.adb: Change implementation to avoid possible alignment
29610         problems on machines requiring strict alignment (data should be moved
29611         as type Buffer, not type Elmt).
29612
29613         * checks.adb (Apply_Array_Size_Check): Improve these checks by
29614         killing the overflow checks which we really do not need (64-bits is
29615         enough).
29616
29617 2004-06-25  Vincent Celier  <celier@gnat.com>
29618
29619         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
29620         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
29621         inconditionally for the main project.
29622         (Recursive_Add_Archives.Add_Archive_Path): New procedure
29623         (Link_Executables.Check_Time_Stamps): New procedure
29624         (Link_Executables.Link_Foreign): New procedure
29625         Changes made to reduce nesting level of this package
29626         (Check): New procedure
29627         (Add_Switches): When not in quiet output, check that a switch is not
29628         the concatenation of several valid switches. If it is, issue a warning.
29629         (Build_Global_Archive): If the global archive is rebuilt, linking need
29630         to be done.
29631         (Compile_Sources): Rebuilding a library archive does not imply
29632         rebuilding the global archive.
29633         (Build_Global_Archive): New procedure
29634         (Build_Library): New name for Build_Archive, now only for library
29635         project
29636         (Check_Archive_Builder): New procedure
29637         (Create_Global_Archive_Dependency_File): New procedure
29638         (Gprmake): Call Build_Global_Archive before linking
29639         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
29640         throughout.
29641         (Scan_Arg): Display the Copyright notice when -v is used
29642
29643         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
29644         for gnatls.
29645
29646         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
29647         COMPILE.
29648         Add new GNAT LIST qualifier /FILES=
29649         Added qualifier /DIRECTORY= to GNAT METRIC
29650         Added qualifier /FILES= to GNAT METRIC
29651         Added qualifier /FILES to GNAT PRETTY
29652
29653         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
29654         to take into account both versions of the switch.
29655
29656         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
29657         always be the last switch to the gcc driver. Disable switch storing so
29658         that switches automatically added by the gcc driver are not put in the
29659         ALI file.
29660
29661         * prj.adb (Project_Empty): Take into account changes in components of
29662         Project_Data.
29663
29664         * prj.ads (Languages_Processed): New enumaration value All_Languages.
29665
29666         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
29667         used. Split Boolean component Ada_Sources_Present in two Boolean
29668         components Ada_Sources_Present and Other_Sources_Present.
29669         Minor reformatting
29670
29671         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
29672         instead of Sources_Present.
29673         (Set_Ada_Paths.Add.Recursive_Add): Ditto
29674
29675         * prj-nmsc.adb: Minor reformatting
29676         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
29677         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
29678         Check_Ada_Naming_Scheme.
29679         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
29680         throughout.
29681
29682         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
29683         In_Limited.
29684         Make sure that all cycles where there is at least one "limited with"
29685         are detected.
29686         (Parse_Single_Project): New Boolean parameter In_Limited
29687
29688         * prj-proc.adb (Recursive_Check): When Process_Languages is
29689         All_Languages, call first Prj.Nmsc.Ada_Check, then
29690         Prj.Nmsc.Other_Languages_Check.
29691
29692         * prj-proc.adb (Process): Use Ada_Sources_Present or
29693         Other_Sources_Present (instead of Sources_Present) depending on
29694         Process_Languages.
29695
29696         * lang-specs.h: Keep -g and -m switches in the same order, and as the
29697         last switches.
29698
29699         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
29700         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
29701         False.
29702         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
29703         False.
29704
29705         * lib.ads (Disable_Switch_Storing): New procedure.
29706
29707         * make.adb: Modifications to reduce nesting level of this package.
29708         (Check_Standard_Library): New procedure
29709         (Gnatmake.Check_Mains): New procedure
29710         (Gnatmake.Create_Binder_Mapping_File): New procedure
29711         (Compile_Sources.Compile): Add switch -gnatez as the last option
29712         (Display): Never display -gnatez
29713
29714         * Makefile.generic:
29715         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
29716
29717         * gnatcmd.adb (Check_Project): New function
29718         (Process_Link): New procedure to reduce nesting depth
29719         (Check_Files): New procedure to reduce the nesting depth.
29720         For GNAT METRIC, include the inherited sources in extending projects.
29721         (GNATCmd): When GNAT LS is invoked with a project file and no files,
29722         add the list of files from the sources of the project file. If this list
29723         is too long, put it in a temp text files and use switch -files=
29724         (Delete_Temp_Config_Files): Delete the temp text file that contains
29725         a list of source for gnatpp or gnatmetric, if one has been created.
29726         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
29727         in the project file is too large, create a temporary text file that
29728         list them and pass it to the tool with "-files=<temp text file>".
29729         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
29730
29731         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
29732         generated file is in not in Ada.
29733
29734         * gnatls.adb: Remove all parameters And_Save that are no longer used.
29735         (Scan_Ls_Arg): Add processing for -files=
29736         (Usage): Add line for -files=
29737
29738         * g-os_lib.adb (On_Windows): New global constant Boolean flag
29739         (Normalize_Pathname): When on Windows and the path starts with a
29740         directory separator, make sure that the resulting path will start with
29741         a drive letter.
29742
29743         * clean.adb (Clean_Archive): New procedure
29744         (Clean_Project): When there is non-Ada code, delete the global archive,
29745         the archive dependency files, the object files and their dependency
29746         files, if they exist.
29747         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
29748
29749 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
29750
29751         * sinfo.ads: Fix typo in comment.
29752
29753         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
29754         the TSS for remote access-to-subprogram types, since these TSS are
29755         always present once the type has been analyzed.
29756         (RAS_E_Dereference): Same.
29757
29758         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
29759         reference raises Bad_Attribute, mark the reference as analyzed so the
29760         node (and any children resulting from rewrites that could have occurred
29761         during the analysis that ultimately failed) is not analyzed again.
29762
29763         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
29764
29765         * exp_dist.adb: Minor comment fix.
29766
29767         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
29768         type is an anonymous access type, no unchecked deallocation of the
29769         allocated object can occur. If the object is controlled, attach it with
29770         a count of 1. This allows attachment to the Global_Final_List, if
29771         no other relevant list is available.
29772         (Get_Allocator_Final_List): For an anonymous access type that is
29773         the type of a discriminant or record component, the corresponding
29774         finalisation list is the one of the scope of the type.
29775
29776 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
29777
29778         * sem_ch3.adb (Replace_Type): When computing the signature of an
29779         inherited subprogram, use the first subtype if the derived type
29780         declaration has no constraint.
29781
29782         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
29783         before applying previous optimization. Minor code cleanup.
29784
29785         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
29786         placed at the beginning of an unpacked record without explicit
29787         alignment, a slice of it will be aligned and does not need a copy when
29788         used as an actual.
29789
29790 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
29791
29792         PR ada/15591
29793         PR ada/15592
29794         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
29795         reference is written with expressions mimicking parameters.
29796
29797 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
29798
29799         PR ada/15589
29800         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
29801         STEP 2a. The constraints of a full type declaration of a derived record
29802         type are checked for conformance with those declared in the
29803         corresponding private extension declaration. The message
29804         "not conformant with previous declaration" is emitted if an error is
29805         detected.
29806
29807 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
29808
29809         * g-traceb.ads: Document the need for -E binder switch in the spec.
29810
29811         * g-trasym.ads: Document the need for -E binder switch in the spec.
29812
29813 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
29814
29815         * sem_prag.adb: Add handling of pragma Detect_Blocking.
29816
29817         * snames.h, snames.ads, snames.adb: Add entry for pragma
29818         Detect_Blocking.
29819
29820         * s-rident.ads: Change reference to pragma Detect_Blocking.
29821
29822         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
29823         system.ads.
29824
29825         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
29826         to indicate whether pragma Detect_Blocking is active.
29827
29828         * par-prag.adb: Add entry for pragma Detect_Blocking.
29829
29830         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
29831         of not handling WITH.
29832         Note that this replaces the previous update which was incorrect.
29833
29834 2004-06-25  Javier Miranda  <miranda@gnat.com>
29835
29836         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
29837         use-clauses to have a clean environment.
29838
29839         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
29840         the installation of the use-clauses to stablish a clean environment in
29841         case of compilation of a separate unit; otherwise the call to
29842         use_one_package is protected by the barrier Applicable_Use.
29843
29844         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
29845         the installation of the use-clauses to stablish a clean environment in
29846         case of compilation of a separate unit.
29847         (End_Use_Clauses): Minor comment cleanup.
29848
29849 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
29850
29851         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
29852
29853 2004-06-23  Richard Henderson  <rth@redhat.com>
29854
29855         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
29856
29857 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29858
29859         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
29860         now bool instead of int.
29861         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
29862         * trans.c (gnu_switch_label_stack): New function.
29863         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
29864         elaboration of renamed entity returns.
29865         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
29866         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
29867         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
29868         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
29869         DECL_SIZE_UNIT and simplify variable-sized case.
29870         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
29871         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
29872         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
29873         (build_unit_elab): Disable for now.
29874         * utils.c (mark_visited): New function.
29875         (pushdecl): Walk tree to call it for global decl.
29876         (update_pointer_to): Update all variants of pointer and ref types.
29877         Add arg to COMPONENT_REF.
29878         (convert): Likewise.
29879         Move check for converting between variants lower down.
29880         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
29881         (build_allocator): Don't force type of MODIFY_EXPR.
29882         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
29883         put_var_into_stack.
29884
29885 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29886
29887         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
29888         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
29889         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
29890         subprograms.
29891         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
29892         all callers changed.
29893         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
29894         the way that EXIT_STMT finds the loop label.
29895         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
29896         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
29897         (add_stmt): Use annotate_with_locus insted of setting directly.
29898         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
29899         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
29900         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
29901         (build_vms_descriptor): Add extra args to ARRAY_REF.
29902         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
29903         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
29904         New cases.
29905         (build_binary_op): Don't make explicit CONVERT_EXPR.
29906         Add extra rgs to ARRAY_REF.
29907
29908 2004-06-14  Pascal Obry  <obry@gnat.com>
29909
29910         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
29911         Windows.  Fix minor typo.
29912
29913         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
29914         which is now supported on Windows. With this implementation using the
29915         Library Project feature is no different on Windows than on UNIX.
29916
29917 2004-06-14  Vincent Celier  <celier@gnat.com>
29918
29919         * makegpr.adb (Compile_Sources): Nothing to do when there are no
29920         non-Ada sources.
29921
29922         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
29923
29924         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
29925         found, show the project name and the path of the previously parsed
29926         project file.
29927
29928 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
29929
29930         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
29931         array, avoid copying the actual before the call.
29932
29933 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
29934
29935         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
29936         Instead, allocate memory on worst-case alignment assumptions, and then
29937         return an aligned address within the allocated zone.
29938
29939 2004-06-14  Robert Dewar  <dewar@gnat.com>
29940
29941         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
29942         elab entities in predefined units in No_Run_Time_Mode.
29943         (Gen_Adainit_C): Same fix
29944         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
29945         units in No_Run_Time_Mode
29946         (Gen_Elab_Calls_C): Same fix
29947
29948         * symbols-vms-alpha.adb: Minor reformatting
29949
29950         * g-debpoo.ads: Minor reformatting
29951
29952         * lib.adb (In_Same_Extended_Unit): Version working on node id's
29953
29954         * lib.ads (In_Same_Extended_Unit): Version working on node id's
29955
29956         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
29957         working on nodes.
29958
29959         * make.adb: Minor reformatting
29960
29961         * par-ch12.adb: Minor reformatting
29962
29963         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
29964
29965         * prj-strt.adb: Minor reformatting
29966
29967         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
29968         be more general.
29969
29970         * sem_attr.adb: Minor reformatting
29971
29972         * sem_ch7.adb: Minor reformatting
29973
29974         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
29975         for type in the same unit as the object declaration.
29976
29977         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
29978         static string expressions and not just string literals.
29979         Minor reformatting
29980         (Set_Warning): Reset restriction warning flag for restriction pragma
29981         Implement pragma Profile_Warnings
29982         Implement pragma Profile (Restricted)
29983         Give obolescent messages for old restrictions and pragmas
29984
29985         * snames.h, snames.ads, snames.adb: Add new entry for pragma
29986         Profile_Warnings.
29987
29988         * s-rident.ads: Add declarations for restrictions required by profile
29989         Restricted and profile Ravenscar.
29990
29991         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
29992
29993         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
29994         configuration pragmas.
29995
29996 2004-06-11  Vincent Celier  <celier@gnat.com>
29997
29998         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
29999         gnatsym, when symbol policy is Restricted.
30000
30001         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
30002         gnatsym, when symbol policy is Restricted.
30003
30004         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
30005         read the symbol file.
30006         (Finalize): Fail in symbol policy Restricted if a symbol in the original
30007         symbol file is not in the object files. Do not create a new symbol file
30008         when symbol policy is Restricted.
30009
30010         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
30011         in Scng.
30012
30013         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
30014         Restricted.
30015         (Usage): Line for new switch -R
30016
30017         * make.adb (Initialize): When the platform is not VMS, add the
30018         directory where gnatmake is invoked in the front of the path, if
30019         gnatmake is invoked with directory information.  Change the Scan_Args
30020         while loop to a for loop.
30021         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
30022         if Depth is equal or greater than the proposed depth, there is nothing
30023         to do.
30024         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
30025         instead of 0.
30026
30027         * prj.ads: Add new symbol policy Restricted.
30028
30029         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
30030         with the new parameters Check_All_Labels and Case_Location.
30031
30032         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
30033         (Library_Symbol_File needs to be defined).
30034
30035         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
30036         and Case_Location If Check_All_Labels is True, check that all values of
30037         the string type are used, and output warning(s) if they are not.
30038
30039         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
30040         and Case_Location.
30041
30042         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
30043
30044         * gnat_ugn.texi: Update documentation about the library directory in
30045         Library Projects.
30046
30047         * makegpr.adb (Display_Command): In verbose mode, also display the
30048         value of the CPATH env var, when the compiler is gcc.
30049         (Initialize): Change the Scan_Args while loop to a for loop
30050         (Compile_Individual_Sources): Change directory to object directory
30051         before compilations.
30052
30053         * symbols.ads: New symbol policy Restricted.
30054
30055 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
30056
30057         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
30058         is now taken care of internally in the Exception_Propagation package
30059         and does not require clients assistance any more.
30060
30061         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
30062         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
30063         functions. Helpers to maintain a predicate required in the handling of
30064         occurrence transfer between tasks.
30065         This is now handled internally and does not require clients assistance
30066         for the setup/propagate separation anymore.
30067         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
30068         allocation strategy, handle the Setup_And_Not_Propagated predicate and
30069         document.
30070
30071         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
30072         raise_after_setup, now that everything is handled internally within the
30073         setup/propagation engine.
30074
30075 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
30076
30077         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
30078         Add additional conditions for the case of an actual being a simple
30079         name or literal. Improve inlining by preventing the generation
30080         of temporaries with a short lifetime (one use).
30081
30082 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
30083
30084         PR ada/15587
30085         * einfo.ads: Minor comment updates for Has_Completion and
30086         E_Constant list of flags.
30087
30088         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
30089         and constant redeclarations now set the Has_Completion flag of their
30090         defining identifiers.
30091
30092         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
30093         Inspect_Deferred_Constant_Completion.
30094         Used to detect private deferred constants that have not been completed
30095         either by a constant redeclaration or pragma Import. Emits error message
30096         "constant declaration requires initialization expression".
30097
30098         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
30099         completes a deferred constant.
30100
30101 2004-06-11  Geert Bosch  <bosch@gnat.com>
30102
30103         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
30104
30105         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
30106         calculating exponent for scaling denormal numbers.
30107         (Leading_Part): Properly raise Constraint_Error for zero or negative
30108         Adjustment.
30109         (Remainder): Properly raise Constraint_Error for zero divisor.
30110
30111 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
30112
30113         * sem_util.adb: Minor reformatting.
30114
30115         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
30116         dereference when accessing the entry parameter record.
30117         (Check_Array_Type): Always check for possible implicit dereference.
30118         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
30119         Abort if a pointer is still present (denoting that an implicit
30120         dereference was left in the tree by the front-end).
30121
30122         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
30123         dereference when accessing the entry parameter record.
30124         (Check_Array_Type): Always check for possible implicit dereference.
30125         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
30126         Abort if a pointer is still present (denoting that an implicit
30127         dereference was left in the tree by the front-end).
30128
30129 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
30130
30131         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
30132         message, like the compiler itself does. Easier to parse the output.
30133
30134         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
30135
30136         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
30137         be base names, and not includes directories.
30138
30139 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
30140
30141         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
30142         so that dependencies are properly taken into account by make.
30143
30144 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
30145
30146         PR ada/15622
30147         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
30148         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
30149
30150 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
30151
30152         * Makefile.in (install-gnatlib): install target-specific run-time files.
30153
30154         * Make-lang.in: Remove obsolete targets.
30155
30156 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
30157
30158         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
30159         specification, to catch misuses of program unit names.
30160
30161         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
30162         superfluous conversions in an instance.
30163
30164 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
30165
30166         PR ada/15403
30167         * sem_ch12.adb (Save_References): If operator node has been folded to
30168         enumeration literal, associated_node must be discarded.
30169
30170 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
30171
30172         * s-stchop-vxworks.adb: Add required pragma Convention to
30173         Task_Descriptor because it is updated by a C function.
30174
30175 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
30176
30177         PR ada/15568
30178         * Makefile.in: Remove target specific SO_OPT on IRIX
30179
30180 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30181
30182         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
30183         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
30184         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
30185         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
30186         (STMT_STMT, USE_STMT): New statement codes.
30187         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
30188         * ada-tree.h: Reflect above changes.
30189         (struct tree_loop_id): Deleted.
30190         (union lang_tree_node, struct lang_decl, struct lang_type):
30191         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
30192         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
30193         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
30194         (IS_ADA_STMT): New macro.
30195         * decl.c (annotate_decl_with_node): New function.
30196         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
30197         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
30198         Call add_stmt_with_node to do needed assignments.
30199         Add call to update setjmp buffer directly, not via EXPR_STMT.
30200         (maybe_variable): Argment GNAT_NODE deleted.
30201         * gigi.h (maybe_variable): Likewise.
30202         (make_transform, add_stmt_with_node, set_block_for_group): New.
30203         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
30204         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
30205         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
30206         (set_lineno, set_lineno_from_sloc): Likewise.
30207         (record_code_position, insert_code_for): Likewise.
30208         (gnat_poplevel): Now returns void.
30209         (end_subprog_body): Now takes argument.
30210         * misc.c (cgraph.h, tree-inline.h): New includes.
30211         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
30212         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
30213         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
30214         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
30215         (gnat_parse_file): Don't set immediate_size_expand.
30216         Call cgraph functions.
30217         (gnat_expand_expr): Remove most cases.
30218         (record_code_position, insert_code_for): Remove from here.
30219         * trans.c (toplev.h, tree-gimple.h): Now included.
30220         (discard_file_names): Deleted.
30221         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
30222         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
30223         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
30224         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
30225         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
30226         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
30227         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
30228         (set_block_for_group, add_stmt_list): Likewise.
30229         (start_stmt_group): Renamed from start_block_stmt.
30230         (end_stmt_group): Likewise, from end_block_stmt.
30231         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
30232         (gigi): Don't set discard_file_names or call set_lineno.
30233         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
30234         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
30235         Numerous changes throughout to reflect new names and complete
30236         function-at-a-time implementation.
30237         (gnat_expand_stmt): Delete or comment out all cases.
30238         (process_inlined_subprograms): Use add_stmt.
30239         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
30240         call set_lineno; also remove unneeded block handling.
30241         (process_type): Remove unneeded block handling.
30242         (build_unit_elab): Remove calls to deleted functions.
30243         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
30244         (tree-dump.h): Likewise.
30245         (struct ada_binding_level): Add field jmpbuf_decl.
30246         (gnat_define_builtin, gnat_install_builtins): New.
30247         (gnat_gimplify_function, gnat_finalize): Likewise.
30248         (gnat_poplevel): No longer return BLOCK, set it instead.
30249         Remove code dealing with nested functions.
30250         (gnat_init_decl_processing): Also set size_type_node.
30251         Call gnat_install_builtins.
30252         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
30253         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
30254         Remove special-case for "main".
30255         (end_subprog_body): Add arg and rework for tree-ssa.
30256         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
30257         Add case for BOOLEAN_TYPE.
30258         * utils2.c (rtl.h): Now include.
30259         (build_call_raise): Test Debug_Flag_NN directly.
30260         (build_call_alloc_dealloc): Don't use local stack allocation for now.
30261         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
30262         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
30263
30264 2004-06-07  Robert Dewar  <dewar@gnat.com>
30265
30266         * a-direct.ads, einfo.ads: Minor comment updates
30267
30268         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
30269         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
30270         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
30271         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
30272         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
30273
30274         * s-interr-sigaction.adb: Remove unreferenced variable
30275         (Attached_Interrupts).  Minor reformatting.
30276         Avoid use of variable I (replace by J).
30277
30278         * par-ch10.adb: Fix text of one error message
30279
30280         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
30281         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
30282         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
30283         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
30284         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
30285         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
30286         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
30287         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
30288         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
30289         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
30290         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
30291         2005 support.
30292
30293 2004-06-07  Doug Rupp  <rupp@gnat.com>
30294
30295         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
30296
30297         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
30298
30299         * mlib-tgt-vms-ia64.adb: New file.
30300
30301         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
30302         Add mlib-tgt-vms-ia64.adb
30303         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
30304         Move to alpha specific ifeq section.
30305         Add VMS specific versions of symbols.adb
30306         Renaming of 5q vms files.
30307
30308         * 5qsystem.ads renamed to system-vms_64.ads.
30309
30310 2004-06-07  Vincent Celier  <celier@gnat.com>
30311
30312         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
30313         explain that when a time of day corresponding to the non existing hour
30314         on the day switching to DST is specified, Split may return a different
30315         value for Seconds.
30316
30317         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
30318         to GNAT PRETTY.
30319
30320         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
30321         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
30322
30323         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
30324         to False.
30325         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
30326         the linking options.
30327         (Build_Library.Check_Libs): On VMS, if there is a dependency on
30328         g-trasym.ads, set Gtrasymobj_Needed to True.
30329
30330         * prj-attr.adb: Add new package Metrics for gnatmetric
30331
30332         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
30333         canonical case to take into account files with upper case characters on
30334         Windows.
30335         (Ada_Check): Load the reference symbol file name in the name buffer to
30336         check it, not the symbol file name.
30337
30338         * snames.ads, snames.adb: Add standard name Metrics (name of project
30339         file package for gnatmetric).
30340
30341         * vms_conv.ads: Add Metric to Comment_Type
30342
30343         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
30344
30345         * vms_data.ads: Add qualifiers for GNAT METRIC
30346
30347         * makegpr.adb (Link_Executables): Take into account the switches
30348         specified in package Linker of the main project.
30349
30350 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
30351
30352         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
30353         the index of the last element is Units.Last, not Units.Table'Last
30354         (which is usually not a valid index within the actually allocated
30355         storage for the table).
30356
30357         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
30358         determines whether to generate a call to a checked storage pool
30359         Dereference action.
30360         Generate such a call only for a dereference that either comes from
30361         source, or is the result of rewriting a dereference that comes from
30362         source.
30363
30364 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
30365
30366         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
30367
30368 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
30369
30370         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
30371         file level, elaborate the stride for inner dimensions in alignment
30372         units, not bytes.
30373
30374         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
30375         in a comment.
30376
30377 2004-06-07  Javier Miranda  <miranda@gnat.com>
30378
30379         * exp_ch6.adb: Correct wrong modification in previous patch
30380
30381 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
30382
30383         * g-trasym.ads: Corrected comment to properly reflect level of support
30384         on VMS.
30385
30386 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
30387
30388         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
30389         includes case of a variable referenced on the left hand side of an
30390         assignment, therefore remove redundant code. Variables and prefixes of
30391         indexed or selected components are now marked as referenced on left
30392         hand side. Warnings are now properly emitted when variables or prefixes
30393         are assigned but not read.
30394
30395         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
30396         left hand side referenced variables. Private access types do not
30397         produce the warning "variable ... is assigned but never read".
30398         Add also additional checks to left hand side referenced variables.
30399         Aliased, renamed objects and access types do not produce the warning
30400         "variable ... is assigned but never read" since other entities may read
30401         the memory location.
30402
30403 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
30404
30405         * Makefile.in: In the powerpc/vxworks-specific section, restore
30406         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
30407         by mistake).
30408
30409 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
30410
30411         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
30412         predefined operators.
30413         Removes spurious type errors from g-trasym-vms.adb.
30414
30415         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
30416         distinct from the operator appearing in the source, call appropriate
30417         routine to insert conversions when needed, and complete resolution of
30418         node.
30419         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
30420         interpretations for rewritten right operand.
30421         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
30422         the other operand is overloaded and the context is a type conversion.
30423
30424 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30425
30426         * ada-tree.def (BLOCK_STMT): Now has two operands.
30427         (BREAK_STMT): New.
30428
30429         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
30430
30431         * gigi.h: (gnat_poplevel): Now returns a tree.
30432
30433         * trans.c (end_block_stmt): Add arg; all callers changed.
30434         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
30435         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
30436         (add_stmt): Set TREE_TYPE.
30437         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
30438         (gnat_expand_stmt, case BREAK_STMT): New case.
30439
30440         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
30441
30442 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
30443
30444         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
30445         procedure Set_Stack_Size that is not needed.
30446
30447 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
30448
30449         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
30450         used for gnatpp input file and for the files upon which it depends
30451
30452 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
30453
30454         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
30455
30456 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
30457
30458         * gnatvsn.ads: Bump version numbers appropriately.
30459         Add new build type.
30460
30461 2004-06-07  Pascal Obry  <obry@gnat.com>
30462
30463         * gnat_ugn.texi: Improve comments about imported names and link names
30464         on Windows. Add a note about the requirement to use -k gnatdll's option
30465         when working with a DLL which has stripped stdcall symbols (no @nn
30466         suffix).
30467
30468 2004-05-27  Vincent Celier  <celier@gnat.com>
30469
30470         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
30471         COMMENTS_LAYOUT=UNTOUCHED
30472
30473         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
30474         symbols-vms-alpha.adb
30475
30476 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
30477
30478         * sem.ads: Clarify documentation on checks suppression.
30479
30480         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
30481
30482 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
30483
30484         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
30485         the case of multiple derivations.
30486         (Is_Object_Reference): For a selected component, verify that the prefix
30487         is itself an object and not a value.
30488
30489         * sem_ch12.adb (Same_Instantiated_Constant): New name for
30490         Same_Instantiated_Entity.
30491         (Same_Instantiated_Variable): Subsidiary to
30492         Check_Formal_Package_Instance, to recognize actuals for in-out generic
30493         formals that are obtained from a previous formal package.
30494         (Instantiate_Subprogram_Body): Emit proper error when
30495         generating code and the proper body of a stub is missing.
30496
30497         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
30498         has a universal interpretation, do the disambiguation here.
30499
30500         * exp_ch4.adb (Expand_N_Type_Conversion,
30501         Expand_N_Unchecked_Type_Conversion): Special handling when target type
30502         is Address, to avoid typing anomalies when Address is a visible integer
30503         type.
30504
30505         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
30506         to determine whether a subprogram should not be marked Pure, even when
30507         declared in a pure package.
30508
30509 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
30510
30511         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
30512
30513         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
30514         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
30515         Update the documentation about the Ravenscar profile, following the
30516         definition found in AI-249.
30517
30518         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
30519         setting the Profile (Ravenscar). This must be done in addition to
30520         setting the required restrictions.
30521
30522         * rtsfind.ads: Add the set of operations defined in package
30523         Ada.Interrupts.
30524
30525         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
30526         restriction.
30527
30528 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
30529
30530         lang-specs.h: Always require -c or -S and always redirect to /dev/null
30531         if -gnatc or -gnats is passed.
30532
30533 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
30534
30535         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
30536         a significant reference. Warnings are now properly emitted when a
30537         discriminated type is not referenced.
30538
30539         * lib-xref.adb (Generate_Reference): A deferred constant completion,
30540         record representation clause or record type discriminant does not
30541         produce a reference to its corresponding entity. Warnings are now
30542         properly emitted when deferred constants and record types are not
30543         referenced.
30544
30545 2004-05-27  Geert Bosch  <bosch@gnat.com>
30546
30547         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
30548         Fixes ACATS Annex G tests.
30549
30550 2004-05-27  Robert Dewar  <dewar@gnat.com>
30551
30552         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
30553         handling WITH
30554
30555 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
30556
30557         * s-interr.adb (Server_Task): Take into account case of early return
30558         from sigwait under e.g. linux.
30559
30560 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
30561
30562         * gnat_ugn.texi: Add description for the new gnatpp options:
30563          -rnb - replace the original source without creating its backup copy
30564          -c0 - do not format comments
30565
30566 2004-05-24  Geert Bosch  <bosch@gnat.com>
30567
30568         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
30569         with 192 bits of precision, sufficient to reduce a double-extended
30570         arguments X with a maximum relative error of T'Machine_Epsilon, for X
30571         in -2.0**32 .. 2.0**32.
30572         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
30573         reduction by the processor, which only uses a 68-bit approximation of
30574         Pi.
30575         (Tan): Always reduce arguments and compute function either using
30576         the processor's fptan instruction, or by dividing sin and cos as needed.
30577
30578 2004-05-24  Doug Rupp  <rupp@gnat.com>
30579
30580         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
30581         gcc error on 32/64 bit VMS.
30582
30583 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
30584
30585         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
30586         since this is what we get for stack overflows although not documented
30587         as such.
30588         Document the issues which may require adjustments to our signal
30589         handlers.
30590
30591 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
30592
30593         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
30594         enclosing dynamic scope if the instantiation is within a generic unit.
30595
30596 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
30597
30598         * exp_dbug.ads: Fix typo.
30599
30600         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
30601         Rename it to its proper name: system-linux-ia64.ads
30602         (stamp-gnatlib1): Remove extra target specific run time files when
30603         setting up the rts directory.
30604
30605 2004-05-24  Javier Miranda  <miranda@gnat.com>
30606
30607         * einfo.ads, einfo.adb (Limited_Views): Removed.
30608         (Limited_View): New attribute that replaces the previous one. It is
30609         now a bona fide package with the limited-view list through the
30610         first_entity and first_private attributes.
30611
30612         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
30613         limited-private-with clause.
30614         (Install_Limited_Withed_Unit): Install the private declarations of a
30615         limited-private-withed package. Update the installation of the shadow
30616         entities according to the new structure (see Build_Limited_Views)
30617         (Build_Limited_Views): Replace the previous implementation of the
30618         limited view by a package entity that references the first shadow
30619         entity plus the first shadow private entity (required for limited-
30620         private-with clause)
30621         (New_Internal_Shadow_Entity): Code cleanup.
30622         (Remove_Limited_With_Clause): Update the implementation to undo the
30623         new work carried out by Build_Limited_Views.
30624         (Build_Chain): Complete documentation.
30625         Replace Ada0Y by Ada 0Y in comments
30626         Minor reformating
30627
30628         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
30629         types the level of accessibility depends on the enclosing type
30630         declaration.
30631
30632         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
30633         entities. Complete documentation of previous change.
30634
30635 2004-05-24  Robert Dewar  <dewar@gnat.com>
30636
30637         * namet.adb: Minor reformatting
30638         Avoid use of name I (replace by J)
30639         Minor code restructuring
30640
30641         * sem_ch6.adb: Minor reformatting
30642
30643         * lib-writ.adb: Do not set restriction as active if this is a
30644         Restriction_Warning case.
30645
30646         * sem_prag.adb: Reset restriction warning flag if real pragma
30647         restriction encountered.
30648
30649         * s-htable.adb: Minor reformatting
30650         Change rotate count to 3 in Hash (improves hash for small strings)
30651
30652         * 5qsystem.ads: Add comments for type Address (no literals allowed).
30653
30654         * gnat_ugn.texi: Add new section of documentation "Code Generation
30655         Control", which describes the use of -m switches.
30656
30657 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
30658
30659         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
30660         through the DECL_INITIAL for renamed variables.
30661
30662 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
30663
30664         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
30665
30666 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
30667
30668         * exp_dbug.ads: Correct comments concerning handling of overloading,
30669         since we no longer use $ anymore.
30670
30671 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
30672
30673         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
30674         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
30675         with illegal subunits.
30676
30677 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
30678
30679         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
30680         body with front-end inlining enabled, check whether an inline pragma
30681         appears immediately after the body and applies to it.
30682
30683         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
30684         enabled and the pragma appears after the body of the subprogram.
30685
30686 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30687
30688         Part of function-at-a-time conversion
30689
30690         * misc.c (adjust_decl_rtl): Deleted.
30691         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
30692         Define.
30693
30694         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
30695         (add_decl_stmt, add_stmt, block_has_vars): New functions.
30696         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
30697
30698         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
30699         when making a decl.
30700         (gnat_to_gnu_entity): Likewise.
30701         Use add_stmt to update setjmp buffer.
30702         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
30703         flush_addressof.
30704         No longer call adjust_decl_rtl.
30705         (DECL_INIT_BY_ASSIGN_P): New macro.
30706         (DECL_STMT_VAR): Likewise.
30707
30708         * trans.c (gigi): Call start_block_stmt to make the outermost
30709         BLOCK_STMT.
30710         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
30711         Call start_block_stmt and end_block_stmt temporarily.
30712         Use gnat_expand_stmt instead of expand_expr_stmt.
30713         (add_decl_stmt): New function.
30714         (tree_transform): Call it.
30715         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
30716         (end_block_stmt): Set type and NULL_STMT.
30717         (gnat_expand_stmt): Make recursize call instead of calling
30718         expand_expr_stmt.
30719         (gnat_expand_stmt, case DECL_STMT): New case.
30720         (set_lineno_from_sloc): Do nothing if global.
30721         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
30722         (start_block_stmt, add_stmt, end_block_stmt): New functions.
30723         (build_block_stmt): Call them.
30724         (gnat_to_code): Don't expand NULL_STMT.
30725         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
30726         args.
30727         (tree_transform): Likewise.
30728         (tree_transform, case N_Null_Statement): Return NULL_STMT.
30729         (gnat_expand_stmt, case NULL_STMT): New case.
30730         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
30731         IF_STMT_TRUE.
30732
30733         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
30734         TREE_ADDRESSABLE.
30735
30736         * utils.c (create_var_decl): Do not call expand_decl or
30737         expand_decl_init.
30738         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
30739         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
30740         here.
30741         (struct e_stack): Add chain_next to GTY.
30742         (struct binding_level): Deleted.
30743         (struct ada_binding_level): New struct.
30744         (free_block_chain): New.
30745         (global_binding_level, clear_binding_level): Deleted.
30746         (global_bindings_p): Rework to see if no chain.
30747         (kept_level_p, set_block): Deleted.
30748         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
30749         new data structure and work directly on BLOCK node.
30750         (gnat_poplevel): Similarly.
30751         (get_decls): Look at BLOCK_VARS.
30752         (insert_block): Work directly on BLOCK node.
30753         (block_has_var): New function.
30754         (pushdecl): Rework for new binding structures.
30755         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
30756         poplevel.
30757         (build_subprog_body): Likewise.
30758         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
30759
30760         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
30761
30762         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
30763         (DECL_STMT_VAR): Likewise.
30764
30765 2004-05-17  Robert Dewar  <dewar@gnat.com>
30766
30767         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
30768         procedure
30769
30770         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
30771         of restriction synonyums by using
30772         Restrict.Process_Restriction_Synonyms.
30773
30774         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
30775
30776         * s-restri.ads (Tasking_Allowed): Correct missing comment
30777
30778         * s-rident.ads: Add entries for restriction synonyms
30779
30780         * ali.adb: Fix some problems with badly formatted ALI files that can
30781         result in infinite loops.
30782
30783         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
30784         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
30785         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
30786         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
30787         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
30788         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
30789         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
30790         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
30791         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
30792         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
30793         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
30794         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
30795         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
30796         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
30797         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
30798         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
30799         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
30800         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
30801         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
30802         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
30803         to Task_Id (minor cleanup).
30804
30805 2004-05-17  Vincent Celier  <celier@gnat.com>
30806
30807         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
30808         directory separator.
30809
30810         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
30811         project being extended, if Languages is not declared in extending
30812         project.
30813
30814 2004-05-17  Javier Miranda  <miranda@gnat.com>
30815
30816         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
30817         limited view of a visible sibling.
30818
30819 2004-05-14  Robert Dewar  <dewar@gnat.com>
30820
30821         * gnat_ugn.texi: Minor change to -gnatS documentation
30822
30823         * sprint.adb: Remove some instances of Assert (False) and for this
30824         purpose replace them by output of a ??? string.
30825
30826         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
30827         Assert (False).
30828
30829         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
30830         flag processing. This was suppressing required dependencies in
30831         No_Run_Time mode and is not needed since the binder does not generate
30832         references for things in libgnat anyway.
30833
30834         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
30835         warning.
30836
30837 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
30838
30839         * gnat_ugn.texi: Document AIX-specific issue with initialization of
30840         resolver library.
30841
30842         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
30843         action for the case of an actual parameter in an init proc call.
30844
30845 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
30846
30847         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
30848         subtype, check visible entities in base type.
30849
30850         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
30851         actions if the object is a renaming.
30852
30853         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
30854         Check_Formal_Package_Instance, to determine more precisely when the
30855         formal and the actual denote the same entity.
30856
30857 2004-05-14  Javier Miranda  <miranda@gnat.com>
30858
30859         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
30860
30861         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
30862         corresponding to a private_with must be removed from visibility; it
30863         will be made visible later, just before we analyze the private part of
30864         the package.
30865         (Check_Private_Child_Unit): Allow private_with clauses in public
30866         siblings.
30867         (Install_Siblings): Make visible the private entities of private-withed
30868         siblings.
30869         (Install_Withed_Unit): Do not install the private withed unit if we
30870         are compiling a package declaration and the Private_With_OK flag was
30871         not set by the caller. These declarations will be installed later,
30872         just before we analyze the private part of the package.
30873
30874         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
30875         during the evaluation of the expression that initializes the object,
30876         decorate it with the expected type to avoid cascade errors.
30877         Code cleanup.
30878
30879         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
30880         subprogram we have to install the private_with clauses after its
30881         specification has been analyzed (as documented in AI-262.TXT).
30882
30883         * sem_ch8.adb (Has_Private_With): New function. Determines if the
30884         current compilation unit has a private with on a given entity.
30885         (Find_Direct_Name): Detect the Beaujolais problem described in
30886         AI-262.TXT
30887
30888         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
30889         provides the functionality of the function Is_Ancestor that was
30890         previously available in sem_ch10. It has been renamed to avoid
30891         overloading.
30892
30893         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
30894
30895 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30896
30897         * utils.c (build_vms_descriptor): Use SImode pointers.
30898
30899 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
30900
30901         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
30902
30903 2004-05-14  GNAT Script  <nobody@gnat.com>
30904
30905         * Make-lang.in: Makefile automatically updated
30906
30907 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
30908
30909         Renaming of target specific files for clarity
30910
30911         * Makefile.in: Rename GNAT target specific files.
30912
30913         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
30914         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
30915         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
30916         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
30917         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
30918         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
30919         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
30920         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
30921         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
30922         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
30923         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
30924         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
30925         51osinte.adb, 51osinte.ads, 51system.ads,
30926         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
30927         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
30928         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
30929         56tpopsp.adb, 57system.ads, 58system.ads,
30930         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
30931         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
30932         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
30933         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
30934         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
30935         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
30936         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
30937         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
30938         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
30939         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
30940         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
30941         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
30942         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
30943         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
30944         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
30945         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
30946         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
30947         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
30948         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
30949         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
30950         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
30951         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
30952         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
30953         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
30954         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
30955         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
30956         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
30957         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
30958         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
30959         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
30960         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
30961         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
30962         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
30963         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
30964         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
30965         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
30966         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
30967         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
30968         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
30969         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
30970
30971         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
30972         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
30973         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
30974         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
30975         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
30976         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
30977         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
30978         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
30979         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
30980         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
30981         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
30982         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
30983         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
30984         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
30985         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
30986         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
30987         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
30988         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
30989         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
30990         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
30991         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
30992         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
30993         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
30994         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
30995         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
30996         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
30997         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
30998         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
30999         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
31000         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
31001         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
31002         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
31003         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
31004         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
31005         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
31006         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
31007         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
31008         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
31009         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
31010         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
31011         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
31012         s-osinte-vms.ads, s-osinte-vxworks.adb,
31013         s-osinte-vxworks.ads, s-osprim-mingw.adb,
31014         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
31015         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
31016         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
31017         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
31018         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
31019         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
31020         s-stchop-vxworks.adb, s-taprop-dummy.adb,
31021         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
31022         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
31023         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
31024         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
31025         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
31026         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
31027         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
31028         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
31029         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
31030         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
31031         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
31032         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
31033         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
31034         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
31035         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
31036         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
31037         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
31038         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
31039         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
31040         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
31041         system-irix-o32.ads, system-linux-x86_64.ads,
31042         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
31043         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
31044         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
31045         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
31046         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
31047         system-vxworks-mips.ads, system-vxworks-ppc.ads,
31048         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
31049         above.
31050
31051 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
31052
31053         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
31054
31055 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
31056
31057         Merge from tree-ssa-20020619-branch.
31058
31059         * config-lang.in (boot_language, build_by_default): Set
31060         to no.
31061         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
31062         (max_size): Add static chain op for call_expr.
31063
31064 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
31065
31066         PR target/15331
31067         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
31068
31069 2004-05-11  Roger Sayle  <roger@eyesopen.com>
31070
31071         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
31072         COND_EXPR.
31073
31074 2004-05-10  Doug Rupp  <rupp@gnat.com>
31075
31076         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
31077         system.aux_dec.
31078
31079         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
31080
31081         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
31082
31083         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
31084         Fixes undefined symbols in IA64 gnatlib.
31085
31086         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
31087
31088         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
31089         Short_Address). This will be moved to system.auxdec.
31090
31091 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
31092
31093         * sem_util.adb: Replace test for presence of a node that is always
31094         present with a call to Discard_Node.
31095
31096         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
31097         Analyze on the library unit node after generation of distribution stub
31098         constructs.  The call was a no-op because Unit_Node has already been
31099         Analyzed, and the tree fragments for the distribution stubs are
31100         analyzed as they are inserted in Exp_Dist.
31101         Update comment regarding to distribution stubs to reflect that we
31102         do not generate stub in separate files anymore.
31103
31104         * einfo.ads: Clarify the fact that a tagged private type has the
31105         E_Record_Type_With_Private Ekind.
31106
31107         * erroutc.adb: Minor reformatting
31108
31109         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
31110         values if line length is increased using -gnatyM (noticed during code
31111         reading).
31112
31113         * eval_fat.adb: Minor reformatting
31114         Put spaces around exponentiation operator
31115
31116 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
31117
31118         PR ada/15005
31119         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
31120         has been rewritten as an explicit dereference, retrieve type of
31121         original node to check for possibly unconstrained record type.
31122
31123 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
31124
31125         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
31126         overriding, use the operation of the parent unconditionally.
31127
31128         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
31129         operation when either operand is a literal, to avoid further
31130         ambiguities.
31131
31132         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
31133         overridden by a previous explicit declaration, mark the previous entity
31134         as overriding.
31135
31136         * sem_disp.adb (Check_Dispatching_Operation): New predicate
31137         Is_Visibly_Controlled, to determine whether a declaration of a
31138         primitive control operation for a derived type overrides an inherited
31139         one. Add warning if the explicit declaration does not override.
31140
31141 2004-05-10  Vincent Celier  <celier@gnat.com>
31142
31143         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
31144         some cases when the sources are no longer present.
31145
31146         * make.adb (Collect_Arguments): Fail if an external source, not part
31147         of any project need to be compiled, when switch -x has not been
31148         specified.
31149
31150         * makeusg.adb: Document new switch -x
31151
31152         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
31153         defaulted to False.
31154
31155         * switch-m.adb (Scan_Make_Switches): New switch -x
31156
31157         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
31158         gnatmake switch -x.
31159
31160         * gnat_ugn.texi: Document new gnatmake switch -x
31161
31162 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
31163
31164         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
31165
31166         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
31167         (process_attributes): Likewise.
31168
31169 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
31170
31171         * s-inmaop.ads: Fix spelling mistake in one of the comments.
31172
31173 2004-05-10  Robert Dewar  <dewar@gnat.com>
31174
31175         * gnat_ugn.texi: Document that for config pragma files, the maximum
31176         line length is always 32767.
31177
31178         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
31179         literals is now allowed.
31180
31181         * gnat-style.texi: Remove statement about splitting long lines before
31182         an operator rather than after, since we do not follow this rule at all.
31183         Clarify rule (really lack of rule) for spaces around exponentiation
31184
31185         * sem_elim.adb: Allow concatenation of string literals as well as a
31186         single string literal for pragma arguments.
31187
31188         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
31189
31190         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
31191         written for append case.
31192
31193         * frontend.adb: Changes to avoid checking max line length in config
31194         pragma files.
31195
31196         * g-os_lib.ads: Minor reformatting
31197
31198         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
31199         wrong in any case. Instead use standard value. Noticed during code
31200         reading.
31201
31202         * opt.ads (Max_Line_Length): New field, used to implement removal of
31203         limitation on length of lines when scanning config pragma files.
31204
31205         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
31206         makeutl.ads, makeutl.adb: Minor reformatting
31207
31208         * scn.adb: Do not check line length while scanning config pragma files
31209         Do not check line length while scanning out license information
31210
31211         * scng.adb: Changes to avoid line length checks while parsing config
31212         pragma files.
31213
31214 2004-05-10  GNAT Script  <nobody@gnat.com>
31215
31216         * Make-lang.in: Makefile automatically updated
31217
31218 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
31219
31220         * osint.adb (Find_Program_Name): Fix handling of VMS version
31221         number.
31222
31223 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
31224
31225         * g-os_lib.ads (Invalid_Time): New constant
31226
31227         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
31228         return OS_Time instead of time_t to match what is imported by Ada.
31229         Now return -1 if the file doesn't exist, instead of a random value
31230
31231 2004-05-05  Robert Dewar  <dewar@gnat.com>
31232
31233         * usage.adb: Add line for -gnatR?s switch
31234
31235         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
31236
31237         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
31238         and for Match (Data_First, Data_last)
31239
31240         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
31241         written when we are dealing with multi-unit files.
31242
31243 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
31244
31245         * Makefile.in: Remove unused targets and variables.
31246
31247 2004-05-05  Vincent Celier  <celier@gnat.com>
31248
31249         * switch-m.adb: New gnatmake switch -eI
31250
31251         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
31252         of new gnatmake switch -eInnn.
31253
31254         * makegpr.adb: Take into account new parameters Index and Src_Index in
31255         Prj.Util.
31256
31257         * clean.adb: Implement support for multi-unit sources, including new
31258         switch -i.
31259
31260         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
31261         Src_Index.
31262
31263         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
31264         (Extract_From_Q): New out parameter Index
31265         (Mark, Is_Marked): Subprograms moved to Makeutl
31266         (Switches_Of): New parameter Source_Index
31267         (Add_Switch): New parameter Index
31268         (Check): New parameter Source_Index
31269         (Collect_Arguments): New parameter Source_Index
31270         (Collect_Arguments_And_Compile): New parameter Source_Index
31271         (Compile): New parameter Source_Index
31272         Put subprograms in alphabetical order
31273         Add support for multi-source sources, including in project files.
31274
31275         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
31276         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
31277         Make.
31278
31279         * makeusg.adb: New gnatmake switch -eInnn
31280
31281         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
31282         Prj.Util.Value_Of.
31283
31284         * opt.ads (Main_Index): New variable, defaulted to 0.
31285
31286         * osint.ads, osinte.adb (Add_File): New parameter Index
31287         (Current_Source_Index): New function
31288
31289         * prj.adb: Take into account new components Index and Src_Index
31290
31291         * prj.ads (String_Element): New component Index
31292         (Variable_Value): New component Index
31293         (Array_Element): New component Src_Index
31294
31295         * prj-attr.adb: Indicate that optional index may be specified for
31296         attributes Main, Executable, Spec, Body and some of Switches.
31297
31298         * prj-attr.ads (Attribute_Kind): New values for optional indexes
31299         (Attribute_Record): New component Optional_Index
31300
31301         * prj-com.ads (File_Name_Data): New component Index
31302
31303         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
31304
31305         * prj-env.adb (Put): Output optional index
31306
31307         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
31308         attributes Spec and Body.
31309
31310         * prj-nmsc.adb: Process optional indexes
31311
31312         * prj-pp.adb: Ouput "at" for optional indexes
31313
31314         * prj-proc.adb: Take into account optional indexes
31315
31316         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
31317         Optional_Index. For string literal,
31318         process optional index when Optional_Index is True.
31319         (Parse_Expresion): New Boolean parameter Optional_Index
31320
31321         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
31322         (Set_Source_Index_Of): New procedure
31323
31324         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
31325         index.
31326
31327         * prj-util.ads (Executable_Of): New parameter Index
31328         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
31329         New parameter Src_Index, defaulted to 0.
31330
31331 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
31332
31333         PR ada/15257
31334         * sem_ch3.adb (Access_Definition): If this is an access parameter
31335         whose designated type is imported through a limited_with clause, do
31336         not add the enclosing subprogram to the list of private dependents of
31337         the type.
31338
31339 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
31340
31341         PR ada/15258
31342         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
31343         a limited_with clause, and the other is its non-limited view.
31344
31345 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
31346
31347         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
31348
31349         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
31350         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
31351         Stand.Boolean_Literals to produce references to entities
31352         Standard_False and Standard_True from compile-time computed boolean
31353         values.
31354
31355         * stand.ads (Boolean_Literals): New variable, provides the entity
31356         values for False and True, for use by the expander.
31357
31358 2004-05-05  Doug Rupp  <rupp@gnat.com>
31359
31360         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
31361         5vinmaop.adb: Unchecked convert Short_Address vice Address
31362
31363         * adaint.c, raise.c: Caste CRTL function return value
31364         to avoid gcc error on 32/64 bit IVMS.
31365
31366         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
31367         target = IA64/VMS.
31368
31369         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
31370
31371         * 5qsystem.ads (Address): Declare as Long_Integer
31372         (Short_Address): Declare as 32 bit subtype of Address
31373         Declare  abstract address operations to avoid gratuitous ambiguities.
31374
31375 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
31376
31377         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
31378         instead of the old Boolean_Entry_Barriers.
31379         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
31380
31381 2004-05-05  GNAT Script  <nobody@gnat.com>
31382
31383         * Make-lang.in: Makefile automatically updated
31384
31385 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
31386
31387         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
31388
31389 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
31390
31391         PR ada/15152
31392         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
31393         alone. Replacing object references by literals is inappropriate in a
31394         so low level context.
31395
31396 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
31397
31398         * a-exexpr.adb: Add comments
31399
31400 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
31401
31402         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
31403         declare the Ancestor_Tags array in Type_Specific_Data with a small size
31404         without risking a bounds check error when accessing one of its
31405         components.
31406         (Type_Specific_Data): Define Ancestor_Tags as a small array.
31407         This prevents us from hitting a limitation during the debug info
31408         generation when using stabs.
31409
31410         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
31411         small array.
31412         This prevents us from hitting a limitation during the debug info
31413         generation when using stabs.
31414
31415 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
31416
31417         lang-specs.h: Remove -gnatz* from specs.
31418
31419 2004-05-03  Vincent Celier  <celier@gnat.com>
31420
31421         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
31422
31423         * Make-lang.in, Makefile.in: Add gprmake
31424
31425 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
31426
31427         * sem_aggr.adb: Fix typo in comment.
31428
31429 2004-05-03  Robert Dewar  <dewar@gnat.com>
31430
31431         * make.adb: Minor reformatting
31432
31433         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
31434
31435         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
31436         so that it works when address is not a private type.
31437
31438         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
31439         properly with rewritten unchecked conversions. This prevents
31440         order-of-elaboration issues that can otherwise arise.
31441         (Minimum_Size): Don't check size of access types under VMS
31442
31443         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
31444         interpretations of integer literals as type System.Address.
31445
31446         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
31447         (Is_Descendent_Of): New function
31448
31449 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
31450
31451         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
31452         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
31453         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
31454
31455         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
31456         of the old Max_Entry_Queue_Depth.
31457
31458         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
31459         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
31460         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
31461
31462         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
31463         New entry for proper handling of Max_Entry_Queue_Depth.
31464         New entry for proper handling of No_Dynamic_Interrupts.
31465
31466         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
31467         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
31468         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
31469         the GNAT specific restriction Max_Entry_Queue_Depth.
31470         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
31471         the GNAT specific restriction No_Dynamic_Interrupts.
31472
31473         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
31474         instead of the old Boolean_Entry_Barriers.
31475         Use the new restriction No_Dynamic_Attachment instead of the old
31476         No_Dynamic_Interrupts.
31477
31478         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
31479         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
31480
31481         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
31482         of the old Max_Entry_Queue_Depth.
31483
31484 2004-05-03  GNAT Script  <nobody@gnat.com>
31485
31486         * Make-lang.in: Makefile automatically updated
31487
31488 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
31489
31490         * checks.adb (Enable_Range_Check): If the prefix of an index component
31491         is an access to an unconstrained array, perform check unconditionally.
31492
31493 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31494
31495         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
31496         Component_Clause.
31497
31498 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
31499
31500         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
31501         alternate stack setting. There was no support for the tasking cases
31502         and the changes eventually caused a number of side-effect failures in
31503         the non-tasking case too.
31504
31505 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
31506
31507         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
31508         -gnats is passed.
31509
31510 2004-04-29  Vincent Celier  <celier@gnat.com>
31511
31512         * make.adb (Gnatmake): Increase max size of argument array for
31513         gnatbind for the potential addition of -F.
31514         If there are Stand-Alone Library projects, invoke gnatbind with -F to
31515         be sure that elaboration flags will be checked.
31516
31517         * switch-c.adb: Correct call to Scan_Pos for -gnateI
31518
31519 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
31520
31521         * sem_warn.adb (Check_References): Move '<access-variable> may be
31522         null' warning out of under Warn_On_No_Value_Assigned.
31523
31524 2004-04-29  Ed Falis  <falis@gnat.com>
31525
31526         * gnat_ugn.texi: Fixed texi error
31527
31528 2004-04-29  Robert Dewar  <dewar@gnat.com>
31529
31530         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
31531         abstract operations if they come from predefined files.
31532
31533         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
31534         Dynamic, not RM).
31535
31536         * s-addope.adb: Correct obvious error in mod function
31537
31538 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
31539
31540         * Makefile.in: Add target pairs for powerpc darwin*
31541         tasking support.
31542
31543         * a-intnam-darwin.ads, s-osinte-darwin.adb,
31544         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
31545
31546 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
31547
31548         * Makefile.in: Add target macro definitions for s390*-linux*.
31549         * system-linux-s390.ads: New file.
31550         * system-linux-s390x.ads: New file.
31551
31552 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
31553
31554         * gnat_ugn.texi: Correct argument to @setfilename.
31555
31556 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
31557
31558         * a-exexpr.adb (Unwind_Word): New data type.
31559         (Unwind_Exception): Use it as type of Private1 and Private2.
31560
31561         * raise.c (db_action_for): Fix debug printf.
31562
31563 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
31564
31565         * a-wtmoio.ads: Formal type must be a modular type, not a signed
31566         integer type.
31567
31568 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31569
31570         * decl.c (gnat_to_gnu_entity, case object): Call
31571         __builtin_update_setjmp_buf.
31572
31573         * gigi.h (update_setjmp_buf): Deleted.
31574         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
31575
31576         * misc.c: (update_setjmp_buf): Deleted.
31577
31578         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
31579         around block of RTL.
31580
31581         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
31582
31583 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
31584
31585         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
31586         subprogram for which no pragma All_Calls_Remote applies, store the
31587         address of the real subprogram in the underlying record type, so local
31588         dereferences do not go through the PCS.
31589
31590 2004-04-26  Robert Dewar  <dewar@gnat.com>
31591
31592         * i-c.ads: Add some type qualifications to avoid ambiguities when
31593         compiling with s-auxdec.ads and a non-private address type.
31594
31595 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
31596
31597         * Makefile.rtl: Fix error in previous check-in:
31598         Add s-addope.o to non tasking object list (rather than tasking object
31599         list).
31600
31601 2004-04-26  Javier Miranda  <miranda@gnat.com>
31602
31603         * sem_aggr.adb: Fix typo in comments
31604         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
31605         Required to check the null-exclusion attribute.
31606
31607         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
31608         case of anonymous access types in record and array components. For a
31609         component definition the level is the same of the enclosing composite
31610         type.
31611
31612         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
31613         that are anonymous access types the level of accessibility depends on
31614         the enclosing type declaration. In order to have this information, set
31615         the scope of the anonymous access type to the enclosing record type
31616         declaration.
31617         (Array_Type_Declaration): In case of components that are anonymous
31618         access types the level of accessibility depends on the enclosing type
31619         declaration. In order to have this information, set the scope of the
31620         anonymous access type to the enclosing array type declaration.
31621
31622         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
31623         access type.
31624
31625         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
31626         renaming of anonymous access-to-constant types allowed if and only if
31627         the renamed object is access-to-constant.
31628
31629         * sem_util.adb (Type_Access_Level): In case of anonymous access types
31630         that are component_definition or discriminants of a nonlimited type,
31631         the level is the same as that of the enclosing component type.
31632
31633 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
31634
31635         * sem_elim.adb: Some minor code reorganization from code reading. Fix
31636         misprint in the function name (File_Name_Match).
31637
31638 2004-04-23  Laurent Guerby  <laurent@guerby.net>
31639
31640         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
31641         install.
31642
31643 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31644
31645         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
31646
31647 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
31648
31649         * adaint.c (__gnat_try_lock): No longer requires that the parent
31650         directory be writable, the directory itself is enough.
31651         (gnat_is_absolute_path): Change profile, so that the call from
31652         GNAT.OS_Lib can be made more efficient.
31653
31654         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
31655         from GNAT.OS_Lib can be made more efficient.
31656
31657         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
31658         one copy of the file name. Found by code reading.
31659
31660 2004-04-23  Vincent Celier  <celier@gnat.com>
31661
31662         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
31663         Correct documentation on gnatmake switches transmitted to the compiler
31664
31665         * ali.ads: Minor comment fix
31666
31667 2004-04-23  Javier Miranda  <miranda@gnat.com>
31668
31669         * sem_ch6.adb: (Confirming Types): Code cleanup
31670
31671         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
31672         subprogram types: E_Anonymous_Access_Subprogram_Type and
31673         E_Anonymous_Access_Protected_Subprogram_Type.
31674
31675 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
31676
31677         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
31678         whether a pragma All_Calls_Remote applies to the subprogram on which
31679         'Access is taken.
31680         No functional change is introduced by this revision; the new parameter
31681         will be used to allow calls to local RCI subprograms to be optimized
31682         to not use the PCS in the case where no pragma All_Calls_Remote applies,
31683         as is already done in the PolyORB implementation of the DSA.
31684
31685         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
31686         whether a pragma All_Calls_Remote applies to the subprogram on which
31687         'Access is taken.
31688         No functional change is introduced by this revision; the new parameter
31689         will be used to allow calls to local RCI subprograms to be optimized
31690         to not use the PCS in the case where no pragma All_Calls_Remote applies,
31691         as is already done in the PolyORB implementation of the DSA.
31692
31693 2004-04-23  Robert Dewar  <dewar@gnat.com>
31694
31695         * Makefile.rtl: Add entry for s-addope.o in run time library list
31696         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
31697         * s-addope.ads, s-addope.adb: New files.
31698
31699         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
31700         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
31701         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
31702         System.Address to be non-private and signed.
31703
31704         * sem_elim.adb: Minor reformatting (fairly extensive)
31705         Some minor code reorganization from code reading
31706         Add a couple of ??? comments
31707
31708 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31709
31710         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
31711         (tree_transform, case N_If_Statement): Remove non-determinism.
31712
31713         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
31714
31715 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
31716
31717         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
31718         Eliminate' section.
31719
31720         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
31721         no longer used as a parameter name for Eliminate pragma).
31722
31723 2004-04-22  Laurent Guerby  <laurent@guerby.net>
31724
31725         PR optimization/14984
31726         PR optimization/14985
31727         * trans.c (gigi): Fix non determinism leading to bootstrap
31728         comparison failures.
31729
31730 2004-04-21  Pascal Obry  <obry@gnat.com>
31731
31732         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
31733         passed to spawnvp() to properly handle program pathname with spaces on
31734         Win32.
31735
31736 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
31737
31738         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
31739         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
31740         unlocked in case of exceptions.
31741
31742 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
31743
31744         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
31745         This function does not exist anymore.
31746
31747 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
31748
31749         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
31750
31751         * link.c: Move variables to the __gnat name space.
31752
31753         * Makefile.in: list link.o explicitly when needed.
31754
31755         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
31756
31757 2004-04-21  Javier Miranda  <miranda@gnat.com>
31758
31759         * einfo.adb (Original_Access_Type): New subprogram
31760         (Set_Original_Access_Type): New subprogram
31761         (Write_Field21_Name): Write the name of the new field
31762
31763         * einfo.ads (Original_Access_Type): New field present in access to
31764         subprogram types.
31765         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
31766         E_Anonymous_Access_Protected_Subprogram_Type.
31767
31768         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
31769         subprogram types.
31770
31771         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
31772         to anonymous access to subprogram types.
31773
31774         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
31775         to subprogram types.
31776
31777         * sem_ch3.adb (Access_Definition): Complete decoration of entities
31778         corresponding to anonymous access to subprogram types.
31779         (Analyze_Component_Declaration): Add new actual to the call to
31780         subprogram replace_anonymous_access_to_protected_subprogram.
31781         (Array_Type_Declaration): Add new actual to the call to subprogram
31782         replace_anonymous_access_to_protected_subprogram.
31783         (Process_Discriminants): Add new actual to the call to subprogram
31784         replace_anonymous_access_to_protected_subprogram.
31785         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
31786
31787         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
31788         formal.
31789
31790         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
31791         access to subprogram types.
31792
31793         * sem_util.adb (Has_Declarations): Addition of package_specification
31794         nodes.
31795
31796 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
31797
31798         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
31799         inlined flags to renamed entity only if in current unit.
31800
31801 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
31802
31803         * s-parint.ads: Add DSA implementation marker.
31804
31805         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
31806         value of System.Partition_Interface.DSA_Implementation to determine
31807         what version of the distributed systems annex is available (no
31808         implementation, GLADE, or PolyORB).
31809
31810 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
31811
31812         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
31813
31814 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31815
31816         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
31817         with new type if alias sets differ.
31818         Fixes ACATS c41103b.
31819
31820 2004-04-21  Vincent Celier  <celier@gnat.com>
31821
31822         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
31823         Add array Lang_Args for the language specific compiling argument
31824         switches.
31825
31826         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
31827
31828 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
31829
31830         * gnat_rm.texi: Update the descripton of the Eliminate pragma
31831         according to the recent changes in the format of the parameters of the
31832         pragma (replacing Homonym_Number with Source_Location).
31833
31834 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
31835
31836         * 5isystem.ads: Removed, unused.
31837
31838         * gnat_rm.texi: Redo 1.13 change.
31839
31840 2004-04-19  Robert Dewar  <dewar@gnat.com>
31841
31842         * s-stoele.ads: Clean up definition of Storage_Offset (the new
31843         definition is cleaner, avoids the kludge of explicit Standard operator
31844         references, and also is consistent with a visible System.Address with
31845         no visible operations.
31846
31847         * s-geveop.adb: Add declarations to avoid assumption of visible
31848         operations on type System.Address (since these might not be available
31849         if Address is a non-private type for which the operations
31850         are made abstract).
31851
31852         * sem_eval.adb: Minor reformatting
31853
31854         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
31855         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
31856         reformatting (new function spec format).
31857
31858         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
31859         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
31860         s-caun64.adb: Add declarations to avoid assumption of visible
31861         operations on type System.Address (since these might not be available
31862         if Address is a non-private type for which the operations are made
31863         abstract).
31864
31865         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
31866
31867         * exp_intr.adb: Minor comment update
31868
31869         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
31870
31871         * 5omastop.adb: Add declarations to avoid assumption of visible
31872         operations on type System.Address (since these might not be available
31873         if Address is a non-private type for which the operations
31874         are made abstract).
31875
31876 2004-04-19  Vincent Celier  <celier@gnat.com>
31877
31878         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
31879
31880         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
31881         defaulted to Ada.
31882
31883         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
31884         defaulted to Ada.
31885         Call Check with Process_Languages.
31886         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
31887         with Process_Languages.
31888         (Recursive_Check): New Boolean parameter Process_Languages. Call
31889         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
31890         Process_Languages.
31891
31892         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
31893
31894         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
31895         parameter Ada_Main, defaulted to True.
31896         Check for Ada specific characteristics only when Ada_Main is True.
31897
31898         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
31899
31900         * prj.adb: (Project_Empty): Add new Project_Data components.
31901
31902         * prj.ads: New types and tables for non Ada languages.
31903         (Project_Data): New components Languages, Impl_Suffixes,
31904         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
31905         Include_Path, Include_Data_Set.
31906
31907         * prj-env.ads, prj-env.adb: Minor reformatting
31908
31909         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
31910         Put subprograms in alphabetical order
31911
31912         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
31913         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
31914         Opt.Follow_Links.
31915
31916         * mlib-prj.adb: Back out modification in last version, as they are
31917         incorrect.
31918         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
31919
31920         * make.adb: (Mains): Moved to package Makeutl
31921         (Linker_Opts): Moved to package Makeutl
31922         (Is_External_Assignment): Moved to package Makeutl
31923         (Test_If_Relative_Path): Moved to package Makeutl
31924         (Gnatmake): Move sorting of linker options to function
31925         Makeutl.Linker_Options_Switches.
31926
31927         * makeutl.ads, makeutl.adb: New files.
31928
31929         * Makefile.in: Add makeutl.o to the object files for gnatmake
31930
31931         * makeusg.adb: Add line for new switch -eL.
31932
31933         * gnatls.adb (Image): New function.
31934         (Output_Unit): If in verbose mode, output the list of restrictions
31935         specified by pragmas Restrictions.
31936
31937         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
31938         Text_IO.
31939
31940         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
31941         needed, to put it in the range 1970 (included) - 2026 (excluded).
31942         (Time_Of): Do not shift Unix_Min_Year (1970).
31943         Shift the date by multiple of 56 years, if needed, to put it in the
31944         range 1970 (included) - 2026 (excluded).
31945
31946         * adaint.h, adaint.c (__gnat_set_executable): New function.
31947
31948 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31949
31950         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
31951         and pop GC context.
31952         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
31953         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
31954         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
31955         (tree_transform, case N_Code_Statement): Likewise.
31956         (gnat_expand_stmt, case LABEL_STMT): Don't look at
31957         LABEL_STMT_FIRST_IN_EH.
31958         (gnat_expand_stmt, case ASM_STMT): New case.
31959
31960         * utils2.c (build_unary_op): Properly set TREE_READONLY of
31961         UNCONSTRAINED_ARRAY_REF.
31962
31963         * utils.c (poplevel): Temporarily push/pop GC context around inline
31964         function expansion.
31965
31966         * decl.c (maybe_variable): Properly set TREE_READONLY of
31967         UNCONSTRAINED_ARRAY_REF.
31968         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
31969
31970         * ada-tree.def: (ASM_STMT): New.
31971
31972         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
31973         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
31974         ASM_STMT_INPUT): New.
31975         (ASM_STMT_CLOBBER): Likewise.
31976
31977 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
31978
31979         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
31980         general rcheck mechanism to raise Program_Error for E.4(18), instead
31981         of a custom raiser in System.Partition_Interface.
31982         Part of general cleanup work before PolyORB integration.
31983
31984         * snames.ads, snames.adb: Add new runtime library entities and names
31985         for PolyORB DSA.
31986
31987         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
31988         exp_dist.
31989         (Build_Subprogram_Id): New subprogram provided by exp_dist
31990         Code reorganisation in preparation for PolyORB integration.
31991
31992         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
31993         exp_dist.
31994         (Build_Subprogram_Id): New subprogram provided by exp_dist
31995
31996         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
31997         actual parameter types for call to dereference of an
31998         access-to-subprogram type.
31999
32000         * rtsfind.ads: Add new runtime library entities and names for PolyORB
32001         DSA.
32002
32003         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
32004         instead, which has the same behaviour here since we never pass it a
32005         NULL pointer.
32006
32007         * link.c (run_path_option, Solaris case): Use -Wl, as for other
32008         platforms.
32009
32010         * Makefile.in: adjust object file lists for gnatlink and gnatmake
32011         to account for new dependency upon Interfaces.C.Strings + link.o
32012         For x86 FreeBSD, use 86numaux.
32013
32014         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
32015         from Mlib.Tgt to Mlib.
32016
32017         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
32018         target-independent.
32019
32020         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
32021         target-specific versions of this subprogram, now implemented as a
32022         target-independent function in Mlib.
32023
32024         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
32025         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
32026         (Linker_Library_Path_Option): Remove target-specific versions of this
32027         subprogram, now implemented as a target-independent function in Mlib.
32028
32029         * atree.adb: (Allocate_Initialize_Node): New subprogram.
32030         Factors out node table slots allocation.
32031         (Fix_Parents): New subprogram.
32032         Encapsulate the pattern of fixing up parent pointers for syntactic
32033         children of a rewritten node.
32034         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
32035         (Rewrite): Use New_Copy when creating saved copy of original node.
32036         (Replace): Use Copy_Node to copy nodes.
32037
32038 2004-04-19  Javier Miranda  <miranda@gnat.com>
32039
32040         * sprint.adb (Sprint_Node_Actual): Give support to the new
32041         Access_To_Subprogram node available in Access_Definition nodes. In
32042         addition, give support to the AI-231 node fields: null-exclusion,
32043         all-present, constant-present.
32044
32045         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
32046
32047         * sinfo.ads, sinfo.adb:
32048         New field Access_To_Subprogram_Definition in Access_Definition nodes
32049
32050         * sem_ch6.adb (Process_Formals): Move here the code that creates and
32051         decorates internal subtype declaration corresponding to the
32052         null-excluding formal. This code was previously in Set_Actual_Subtypes.
32053         In addition, carry out some code cleanup on this code. In case of
32054         access to protected subprogram call
32055         Replace_Anonymous_Access_To_Protected_Subprogram.
32056         (Set_Actual_Subtypes): Code cleanup.
32057
32058         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
32059         Find_Type in case of anonymous access renamings. Add warning in case of
32060         null-excluding attribute used in anonymous access renaming.
32061
32062         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
32063         subprogram
32064
32065         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
32066         subprogram.
32067         (Access_Definition): In case of anonymous access to subprograms call
32068         the corresponding semantic routine to decorate the node.
32069         (Access_Subprogram_Declaration): Addition of some comments indicating
32070         some code that probably should be added here. Detected by comparison
32071         with the access_definition subprogram.
32072         (Analyze_Component_Declaration): In case of access to protected
32073         subprogram call Replace_Anonymous_Access_To_Protected.
32074         (Array_Type_Declaration): In case of access to protected subprogram call
32075         Replace_Anonymous_Access_To_Protected_Subprogram.
32076         (Process_Discriminants): In case of access to protected subprogram call
32077         Replace_Anonymous_Access_To_Protected_Subprogram.
32078
32079         * par.adb (P_Access_Definition): New formal that indicates if the
32080         null-exclusion part was present.
32081         (P_Access_Type_Definition): New formal that indicates if the caller has
32082         already parsed the null-excluding part.
32083
32084         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
32085         (P_Identifier_Declarations): Code cleanup and give support to renamings
32086         of anonymous access to subprogram types.
32087         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
32088         (P_Array_Type_Definition): Give support to AI-254.
32089         (P_Component_Items): Give support to AI-254.
32090         (P_Access_Definition): New formal that indicates if the header was
32091         already parsed by the caller.
32092         (P_Access_Type_Definition): New formal that indicates if the caller has
32093         already parsed the null-excluding part.
32094
32095         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
32096         call to P_Access_Definition.
32097
32098 2004-04-19  Geert Bosch  <bosch@gnat.com>
32099
32100         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
32101         the delicate semantics of floating-point to integer conversion.
32102         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
32103
32104         * eval_fat.adb (Machine_Mantissa): Moved to spec.
32105         (Machine_Radix): New function.
32106
32107         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
32108         conversion checks.
32109         (Machine_Radix): New function also for use in conversion checks.
32110
32111 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
32112
32113         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
32114
32115         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
32116         to decorate the access-to-protected subprogram and the equivalent type.
32117
32118         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
32119         to anonymous access to subprogram types.
32120
32121         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
32122         constant-folding, for legality checks in contexts that require an RM
32123         static expression.
32124
32125         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
32126         temporary but stack checking is not enabled, increment serial number
32127         to so that symbol generation is consistent with and without stack
32128         checking.
32129
32130         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
32131         independent on whether stack checking is enabled, caller must check
32132         the corresponding flag.
32133
32134         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
32135         range checks.
32136         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
32137         parent if it has discriminants.
32138         (Build_Derived_Private_Type): Constructed full view does
32139         not come from source.
32140         (Process_Discriminants): Default discriminants on a tagged type are
32141         legal if this is the internal completion of a private untagged
32142         derivation.
32143
32144         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
32145         no constraint checks, because it corresponds to an existing object.
32146
32147         * sem_prag.adb (Process_Convention): Pragma applies
32148         only to subprograms in the same declarative part, i.e. the same unit,
32149         not the same scope.
32150
32151         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
32152         ignore type mismatch on a numeric conversion if expression comes from
32153         expansion.
32154
32155 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
32156
32157         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
32158         Homonym_Number parameter, add processing for Source_Location parameter
32159         corresponding.
32160         (Check_Eliminated): Remove the check for homonym numbers, add the check
32161         for source location traces.
32162
32163         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
32164         with Arg_Source_Location corresponding to the changes in the format of
32165         the pragma.
32166
32167         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
32168         Eliminate pragma corresponding to the changes in the format of the
32169         pragma: Homonym_Number is replaced with Source_Location, two ways of
32170         distinguishing homonyms are mutially-exclusive.
32171
32172 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
32173
32174         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
32175
32176         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
32177         No_Dollar_In_Label, no longer necessary, as it is always True.
32178         (Strip_Suffixes): Likewise.
32179
32180 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
32181
32182         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
32183         modulus for compatibility with size clause on targets with 16-bit
32184         Integer.
32185
32186         * layout.adb (Discrimify): In the case of private types, set Vtyp to
32187         full type to fix type mismatches on calls to size functions for
32188         discriminant-dependent array components.
32189
32190 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
32191
32192         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
32193         lib.
32194
32195 2004-04-19  Pascal Obry  <obry@gnat.com>
32196
32197         * mdll-utl.adb (Locate): New version is idempotent.
32198
32199 2004-04-17  Laurent Guerby  <laurent@guerby.net>
32200
32201         PR ada/14988 (partial)
32202         * impunit.adb: Fix typo.
32203
32204 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
32205
32206         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
32207         and install-rts-cert targets.  Remove all gnatlib and gnattools
32208         targets and all other rts-* targets (moved to libada).  Remove (now)
32209         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
32210         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
32211
32212 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32213
32214         * trans.c (tree_transform): Shortcut returning error_mark_node for
32215         statements in annotate_only_mode.
32216         (tree_transform, case N_Label, case N_Return_Statement,
32217         N_Goto_Statement): Make statement tree instead of generating code.
32218         (tree_transform, case N_Assignment_Statement): No longer check
32219         type_annotate_only.
32220         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
32221         RETURN_STMT): New.
32222         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
32223         New fcns.
32224         (gnat_to_gnu): Collect any RTL generated and deal with it.
32225         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
32226         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
32227         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
32228
32229         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
32230
32231         * ada-tree.def (EXPR_STMT): Fix typo in name.
32232         (BLOCK_STMT, IF_STMT): New nodes.
32233
32234         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
32235         LABEL_STMT_FIRST_IN_EH): New macros.
32236         (RETURN_STMT_EXPR): Likewise.
32237
32238         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
32239         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
32240
32241 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
32242
32243         * atree.ads: Correct documentation on extended nodes.
32244
32245         * link.c: Set run_path_option for FreeBSD.
32246
32247 2004-04-08  Vincent Celier  <celier@gnat.com>
32248
32249         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
32250         one of the ALI file, do not link with DEC lib.
32251
32252         * par.adb Remove the last two characters ("%s" or "%b") when checking
32253         if a language defined unit may be recompiled.
32254
32255 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
32256
32257         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
32258         removal of abstract operation leaves no possible interpretation for
32259         expression.
32260
32261         * sem_eval.adb (Eval_Qualified_Expression): Use
32262         Set_Raises_Constraint_Error on node when needed, so that it does not
32263         get optimized away by subsequent optimizations.
32264
32265         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
32266         operands even when they are not wrapped in a type conversion.
32267
32268 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
32269
32270         * sem_prag.adb (Set_Exported): Warn about making static as result of
32271         export only when the export is coming from source. This may be not
32272         be true e.g. on VMS where we expand export pragmas for exception codes
32273         together with imported or exported exceptions, and we don't want the
32274         user to be warned about something he didn't write.
32275
32276 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
32277
32278         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
32279         duplication between normal entities and those declared as renamings.
32280         No functional change.
32281
32282         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
32283         inline functions returning an unconstrained result.
32284
32285 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
32286
32287         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
32288         conform to what other front-ends do.
32289
32290 2004-04-08  Doug Rupp  <rupp@gnat.com>
32291
32292         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
32293         libraries.
32294
32295 2004-04-06  Pascal Obry  <obry@gnat.com>
32296
32297         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
32298
32299         * osint.adb (Program_Name): Do not look past a directory separator.
32300
32301 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
32302
32303         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
32304
32305         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
32306         requirement for preserving a copy of the original assignment node.
32307
32308         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
32309
32310 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
32311
32312         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
32313         when supported.
32314
32315 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
32316
32317         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
32318         operator calls in functional notation, and apply
32319         Universal_Interpretation to operands, not to their type.
32320
32321 2004-04-06  Robert Dewar  <dewar@gnat.com>
32322
32323         * 5wdirval.adb: Minor reformatting
32324
32325 2004-04-06  Ed Falis  <falis@gnat.com>
32326
32327         * gnat_rm.texi: Improve a reference to the GCC manual
32328
32329 2004-04-05  Vincent Celier  <celier@gnat.com>
32330
32331         * adaint.h, adaint.c: Add function __gnat_named_file_length
32332
32333         * impunit.adb: Add Ada.Directories to the list
32334
32335         * Makefile.in: Add VMS and Windows versions of
32336         Ada.Directories.Validity package body.
32337
32338         * Makefile.rtl: Add a-direct and a-dirval
32339
32340         * mlib-tgt.ads: Minor comment update.
32341
32342         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
32343         a-direct.ads, a-direct.adb: New files.
32344
32345 2004-04-05  Vincent Celier  <celier@gnat.com>
32346
32347         PR ada/13620
32348         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
32349         just to the compiler.
32350
32351 2004-04-05  Robert Dewar  <dewar@gnat.com>
32352
32353         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
32354         returned string is 1.
32355
32356         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
32357
32358         * eval_fat.ads: Minor reformatting
32359
32360         * g-curexc.ads: Document that lower bound of returned string values
32361         is always one.
32362
32363         * gnatlink.adb: Add ??? comment for previous change
32364         (need to document why this is VMS specific)
32365
32366         * s-stoele.ads: Minor reformatting
32367
32368         * tbuild.ads: Minor reformatting throughout (new function specs)
32369
32370         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
32371         after WITH.
32372
32373         * scng.adb: Minor reformatting
32374
32375 2004-04-05  Geert Bosch  <bosch@gnat.com>
32376
32377         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
32378         (Leading_Part): Still perform truncation to machine number if the
32379         specified radix_digits is greater or equal to machine_mantissa.
32380
32381 2004-04-05  Javier Miranda  <miranda@gnat.com>
32382
32383         * par-ch3.adb: Complete documentation of previous change
32384         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
32385         (aliased must appear before constant).
32386
32387         * par-ch4.adb: Complete documentation of previous change.
32388
32389         * par-ch6.adb: Complete documentation of previous change.
32390
32391         * sinfo.ads: Fix typo in commment.
32392
32393 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
32394
32395         * sem_ch3.adb (Inherit_Components): If derived type is private and has
32396         stored discriminants, use its discriminants to constrain parent type,
32397         as is done for non-private derived record types.
32398
32399         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
32400         Ada 2005 AI-310: an abstract non-dispatching operation is not a
32401         candidate interpretation in an overloaded call.
32402
32403         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
32404         expression is Null and target type is not an access type (e.g. a
32405         non-private address type).
32406
32407 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
32408
32409         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
32410         statement whose right-hand side is an inlined call, save a copy of the
32411         original assignment subtree to preserve enough consistency for
32412         Analyze_Assignment to proceed.
32413
32414         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
32415         complete assignment subtree which is now unnecessary, as the expansion
32416         of inlined call has been improved to preserve a consistent assignment
32417         tree.  Note_Possible_Modification must be called only
32418         after checks have been applied, or else unnecessary checks will
32419         be generated.
32420
32421         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
32422         of explicit dereferences that do not Come_From_Source:
32423          - be selective on cases where we must go back to the dereferenced
32424            pointer (an assignment to an implicit dereference must not be
32425            recorded as modifying the pointer);
32426          - do not rely on Original_Node being present (Analyze_Assignment
32427            calls Note_Possible_Modification on a copied tree).
32428
32429         * sem_warn.adb (Check_References): When an unset reference to a pointer
32430         that is never assigned is encountered, prefer '<pointer> may be null'
32431         warning over '<pointer> is never assigned a value'.
32432
32433 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
32434
32435         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
32436         the ABI.
32437
32438 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
32439
32440         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
32441         libexc. We currently don't reference anything in this library and
32442         linking it in triggers linker warnings we don't want to see.
32443
32444         * init.c: Update comments.
32445
32446 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32447
32448         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
32449         * utils.c (create_field_decl): Likewise.
32450         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
32451
32452 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
32453
32454         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
32455         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
32456         Add info directory entry and category.
32457
32458 2004-04-02  Jan Hubicka  <jh@suse.cz>
32459
32460         * utils.c: Include function.h
32461         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
32462
32463 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
32464
32465         PR ada/14150
32466         * Make-lang.in: Clean up generation of documentation
32467
32468         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
32469
32470         * xgnatug.adb: Removed, replaced by xgnatugn.adb
32471
32472         * xgnatugn.adb: Replaces xgnatug.adb
32473
32474         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
32475
32476         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
32477
32478         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
32479         gnat_ug_wnt.texi: Removed.
32480
32481 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
32482
32483         * utils2.c: Update copyright notice.
32484
32485 2004-04-01  Robert Dewar  <dewar@gnat.com>
32486
32487         * checks.adb: Minor reformatting throughout
32488         Note that prev checkin added RM reference to alignment warning
32489
32490 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
32491
32492         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
32493         non-static when building aggregate for bit-packed array.
32494
32495         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
32496         function call that is itself the actual in a procedure call, build
32497         temporary for it.
32498
32499         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
32500         a string literal, create a temporary for it, constant folding only
32501         handles scalars here.
32502
32503 2004-04-01  Vincent Celier  <celier@gnat.com>
32504
32505         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
32506         Error_Msg_SP): New empty procedures to instantiate the Scanner.
32507         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
32508         tokens.
32509         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
32510         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
32511         and get the checksum.
32512
32513         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
32514         already in the Q.
32515         Increase the Marking_Label at the end of the Multiple_Main_Loop,
32516         instead of at the beginning.
32517
32518         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
32519         directly.
32520         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
32521         on VMS.
32522
32523         * osint.ads (Multi_Unit_Index_Character): New Character global variable
32524
32525         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
32526         not '~' directly.
32527
32528         * par.adb: Remove test on file name to detect language defined units.
32529         Add test on unit name, after parsing, to detect language defined units
32530         that are not compiled with -gnatg (except System.RPC and its children)
32531
32532         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
32533         following units without style checking.
32534
32535         * switch-c.adb: Change -gnatC to -gnateI
32536
32537         * usage.adb: Document new switch -gnateInnn
32538
32539         * scng.adb (Accumulate_Token_Checksum): New procedure
32540         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
32541         word or literal number.
32542         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
32543         numbers.
32544
32545 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
32546
32547         * a-tasatt.adb,
32548         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
32549         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
32550         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
32551         5vtpopde.adb: Add missing 'constant' keywords.
32552
32553 2004-04-01  Javier Miranda  <miranda@gnat.com>
32554
32555         * par-ch4.adb: (P_Allocator): Code cleanup
32556
32557         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
32558         attribute.
32559
32560         * sinfo.ads: Complete documentation of previous change
32561
32562 2004-04-01  Pascal Obry  <obry@gnat.com>
32563
32564         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
32565         only on VMS.  This special handling was done because an old GNU/ld bug
32566         on Windows which has been fixed.
32567
32568 2004-04-01  GNAT Script  <nobody@gnat.com>
32569
32570         * Make-lang.in: Makefile automatically updated
32571
32572 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32573
32574         * decl.c (gnat_to_gnu_entity, make_type_from_size):
32575         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
32576         * trans.c (tree_transform, convert_with_check): Likewise.
32577         * utils.c (gnat_signed_or_unsigned_type): Likewise.
32578         (build_vms_descriptor, unchecked_convert): Likewise.
32579         * utils2.c (nonbinary_modular_operation): Likewise.
32580
32581 2004-03-29  Javier Miranda  <miranda@gnat.com>
32582
32583         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
32584         (Install_Null_Excluding_Check): Local subprogram that determines whether
32585         an access node requires a runtime access check and if so inserts the
32586         appropriate run-time check.
32587         (Apply_Access_Check): Call Install_Null_Excluding check if required
32588         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
32589
32590         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
32591
32592         * einfo.ads: Fix typo in comment
32593
32594         * exp_ch3.adb (Build_Assignment): Generate conversion to the
32595         null-excluding type to force the corresponding run-time check.
32596         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
32597         type to force the corresponding run-time check.
32598
32599         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
32600         the null-excluding type to force the corresponding run-time check.
32601
32602         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
32603         case of access types unless they have the null-excluding attribute.
32604
32605         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
32606         part.
32607
32608         * exp_util.ads: Fix typo in comment
32609
32610         * par.adb (P_Null_Exclusion): New subprogram
32611         (P_Subtype_Indication): New formal that indicates if the null-excluding
32612         part has been scanned-out and it was present
32613
32614         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
32615
32616         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
32617         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
32618         type to force the corresponding run-time check
32619         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
32620         components
32621         (Resolve_Array_Aggregate): Carry out some static checks
32622         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
32623
32624         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
32625         attribute must be set only if specified by means of the null-excluding
32626         part. In addition, we must also propagate the access-constant attribute
32627         if present.
32628         (Access_Subprogram_Declaration, Access_Type_Declaration,
32629         Analyze_Component_Declaration, Analyze_Object_Declaration,
32630         Array_Type_Declaration, Process_Discriminants,
32631         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
32632         and carry out some static checks.
32633         (Build_Derived_Access_Type): Set the null-excluding attribute
32634         (Derived_Type_Declaration, Process_Subtype): Carry out some static
32635         checks.
32636
32637         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
32638
32639         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
32640
32641         * sem_ch6.adb (Process_Formals): Carry out some static checks.
32642         (Set_Actual_Subtypes): Generate null-excluding subtype if the
32643         null-excluding part was present; it is not required to be done here in
32644         case of anonymous access types.
32645         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
32646         value.
32647
32648         * sem_res.adb (Resolve_Actuals): Carry out some static check
32649         (Resolve_Null): Allow null in anonymous access
32650
32651         * sinfo.adb: New subprogram Null_Exclusion_Present
32652         All_Present and Constant_Present available on access_definition nodes
32653
32654         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
32655         object_declaration, derived_type_definition, component_definition,
32656         discriminant_specification, access_to_object_definition,
32657         access_function_definition, allocator, access_procedure_definition,
32658         access_definition, parameter_specification, All_Present and
32659         Constant_Present flags available on access_definition nodes.
32660
32661 2004-03-29  Robert Dewar  <dewar@gnat.com>
32662
32663         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
32664         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
32665         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
32666         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
32667         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
32668         sem_prag.adb: Updates to handle multiple units/file
32669
32670         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
32671
32672         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
32673         sem_util.adb: Minor reformatting
32674
32675         * sem_ch12.adb: Add comment for previous change
32676
32677 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
32678
32679         * osint.adb (Executable_Prefix): Set Exec_Name to the current
32680         executable name when not initialized. Otherwise, use its current value.
32681
32682         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
32683         initialize it to another executable name than the current one. This
32684         allows to configure paths for an executable name (gnatmake) different
32685         from the current one (gnatdist).
32686
32687 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
32688
32689         * exp_ch6.adb (Expand_Call): A call to a function declared in the
32690         current unit cannot be inlined if it appears in the body of a withed
32691         unit, to avoid order of elaboration problems in gigi.
32692
32693         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
32694         information for protected (wrapper) operation as well, to simplify gdb
32695         use.
32696
32697         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
32698         protected body, indicate that the entity for the generated spec comes
32699         from source, to ensure that references are properly generated for it.
32700         (Build_Body_To_Inline): Do not inline a function that returns a
32701         controlled type.
32702
32703         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
32704         apply convention to homonyms that are declared explicitly.
32705
32706         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
32707         that renames an equality operator and the operands are overloaded,
32708         resolve them with the declared formal types, before rewriting as an
32709         operator.
32710
32711 2004-03-29  GNAT Script  <nobody@gnat.com>
32712
32713         * Make-lang.in: Makefile automatically updated
32714
32715 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
32716
32717         * memtrack.adb: Log realloc calls, which are treated as free followed
32718         by alloc.
32719
32720 2004-03-25  Vincent Celier  <celier@gnat.com>
32721
32722         * prj-makr.adb (Process_Directories): Detect when a file contains
32723         several units. Do not include such files in the config pragmas or
32724         in the naming scheme.
32725
32726         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
32727         Resolve links only when not in Trusted_Mode.
32728         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
32729         Do not resolve links for the display names.
32730
32731         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
32732         resolve links when computing the display names.
32733
32734 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
32735
32736         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
32737         attribute reference does not denote a subtype, it can be any
32738         expression that has a classwide type, potentially after an implicit
32739         dereference.  In particular, the prefix can be a view conversion for
32740         a classwide type (for which Is_Object_Reference holds), but it can
32741         also be a value conversion for an access-to-classwide type. In the
32742         latter case, there is an implicit dereference, and the original node
32743         for the prefix does not verify Is_Object_Reference.
32744
32745         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
32746         conversion of a discriminant-dependent component of a mutable object
32747         is one itself.
32748
32749 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
32750
32751         * freeze.adb (Freeze_Entity): When an inherited subprogram is
32752         inherited, has convention C, and has unconstrained array parameters,
32753         place the corresponding warning on the derived type declaration rather
32754         than the original subprogram.
32755
32756         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
32757         indication on renaming declaration, if formal has a box and actual
32758         is absent.
32759
32760         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
32761         determine whether to generate an implicit or explicit reference to
32762         the renamed entity.
32763
32764         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
32765         subprogram renaming comes from a defaulted formal subprogram in an
32766         instance.
32767
32768 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
32769
32770         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
32771         value expressions to ensure that calls within a component definition
32772         will be checked (since those are evaluated during the record type's
32773         elaboration).
32774
32775 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
32776
32777         * s-tpobop.adb: Code clean up:
32778         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
32779         code.
32780         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
32781
32782 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
32783
32784         * Makefile.in: Clean up in the ravenscar run time.
32785
32786 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32787
32788         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
32789         of No_Strict_Aliasing to build_pointer_type_for_mode.
32790         * utils.c (update_pointer_to): Walk pointer and ref chains.
32791
32792 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
32793
32794         * ali.ads: Fix Comment about Dynamic_Elab.
32795
32796         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
32797         Has_RACW, Is_Generic, etc.)
32798         (Output_Object, Gnatls): Take into account ALI files not attached to
32799         an object.
32800
32801 2004-03-22  Vincent Celier  <celier@gnat.com>
32802
32803         * gprep.adb: Change all String_Access to Name_Id
32804         (Is_ASCII_Letter): new function
32805         (Double_File_Name_Buffer): New procedure
32806         (Preprocess_Infile_Name): New procedure
32807         (Process_Files): New procedure
32808         (Gnatprep): Check if output and input are existing directories.
32809         Call Process_Files to do the real job.
32810
32811 2004-03-22  Robert Dewar  <dewar@gnat.com>
32812
32813         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
32814         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
32815
32816 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
32817
32818         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
32819         case when the source contains only comments.
32820
32821 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
32822
32823         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
32824         declaration for a child subprogram body that acts as a spec, indicate
32825         that the entity in the declaration needs debugging information.
32826
32827         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
32828         full view if the subtype is created for a constrained record component;
32829         gigi has enough information to construct the record, and there is no
32830         place in the tree for the declaration.
32831
32832         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
32833         serial number for the dummy body that is built for analysis, to avoid
32834         inconsistencies in the generation of internal names when compiling
32835         with -gnatN.
32836
32837 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
32838
32839         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
32840         object.
32841
32842 2004-03-22  GNAT Script  <nobody@gnat.com>
32843
32844         * Make-lang.in: Makefile automatically updated
32845
32846 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32847
32848         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
32849         * trans.c (tree_transform, emit_index_check): Likewise.
32850         * utils.c (build_template): Likewise.
32851         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
32852         (maybe_unconstrained_array, unchecked_convert): Likewise.
32853         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
32854         (build_unary_op): Likewise.
32855         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
32856         (fill_vms_descriptor): Likewise.
32857         (build_call_alloc_dealloc): Likewise.
32858         ALIGN is unsigned.
32859         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
32860
32861 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
32862
32863         PR other/14630
32864         * gnat_ug.texi: Add info directory category and entry.
32865         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
32866         gnat_ug_wnt.texi: Regenerate.
32867
32868 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
32869
32870         * ada-tree.h: Update copyright notice.
32871         Minor reformatting.
32872
32873 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
32874
32875         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
32876         as regular exception objects and not as mere integers representing the
32877         condition code.  The latter approach required some dynamics to mask off
32878         severity bits, which did not fit well into the GCC table based model.
32879         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
32880         exception data objects. We don't it and it would conflict with the other
32881         external symbol we have to generate for such exceptions.
32882
32883         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
32884         the special code for VMS exceptions, since these are now represented
32885         as regular exceptions objects.
32886
32887 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32888
32889         * decl.c (debug_no_type_hash): Remove.
32890         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
32891         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
32892
32893 2004-03-19  Laurent Guerby  <laurent@guerby.net>
32894
32895         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
32896         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
32897
32898 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32899
32900         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
32901         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
32902         (TYPE_RM_SIZE_INT): Directly use type.values.
32903         (TREE_LOOP_ID): Clean up check.
32904         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
32905         TYPE_VALUES, not TYPE_FIELDS.
32906         * trans.c (convert_with_check): Delay access of bounds of basetype
32907         until sure is numeric.
32908
32909 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
32910
32911         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
32912
32913         Code clean up:
32914         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
32915         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
32916         Specific.Set instead of direct call to e.g pthread_setspecific.
32917
32918 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
32919
32920         * adaint.c: Update comments.
32921
32922         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
32923         GNATLIB_SHARED for FreeBSD.
32924
32925 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
32926
32927         * init.c [VxWorks]: Do not fix the stack size for the environment task.
32928         When needed (stack checking) the stack size is retrieved
32929         from the VxWorks kernel.
32930
32931         * Makefile.in: Flag -nostdinc is required when building the run time
32932         for avoiding looking for files in the base compiler.
32933         Add the VxWorks specific version of the package body for
32934         System.Stack_checking.Operations (5zstchop.adb).
32935
32936         * Make-lang.in: Add the object file for
32937         System.Stack_Checking.Operations.
32938
32939         * Makefile.rtl: Add object file for the package
32940         System.Stack_Checking.Operations.
32941
32942         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
32943
32944         * s-stache.ads, s-stache.adb: Move the operations related to stack
32945         checking from this package to package System.Stack_Checking.Operations.
32946         This way, stack checking operations are only linked in the final
32947         executable when using the -fstack-check flag.
32948
32949 2004-03-18  Doug Rupp  <rupp@gnat.com>
32950
32951         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
32952         Reorganize ifeq's.
32953
32954         * 5qsystem.ads, 5xcrtl.ads: New files.
32955
32956 2004-03-18  Vincent Celier  <celier@gnat.com>
32957
32958         * prj.adb (Reset): Reset hash table Files_Htable
32959
32960         * prj-env.adb (Source_Paths, Object_Paths): New tables.
32961         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
32962         the procedures Add_To_Path_File.
32963         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
32964         making sure that each directory is present only once and, for object
32965         dirs, when a directory already present is added, the duplicate is
32966         removed and the directory is always put as the last in the table.
32967         Write the path files at the end of these accumulations.
32968
32969         * prj-nmsc.adb (Record_Source): Add source file name in hash table
32970         Files_Htable for all sources.
32971
32972         * prj-proc.adb (Process): Remove restrictions between not directly
32973         related extending projects.
32974
32975 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
32976
32977         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
32978         (Find_Sources): Minor speed optimization.
32979
32980         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
32981         parameter Trusted_Mode.
32982
32983 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
32984
32985         * scn.adb (Determine_License): Take into account a degenerated case
32986         when the source contains only comments.
32987
32988 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
32989
32990         * sem_warn.adb (Check_References): For a warning on a selected
32991         component that does not come from source, locate an uninitialized
32992         component of the record type to produce a more precise error message.
32993
32994 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
32995
32996         * 3zsoccon.ads: Fix multicast options.
32997
32998         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
32999         in the spec.
33000
33001 2004-03-15  Robert Dewar  <dewar@gnat.com>
33002
33003         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
33004         pragma used for a private type.
33005
33006         * lib-xref.adb (Generate_Reference): Do not generate warning if
33007         reference is in a different unit from the pragma Unreferenced.
33008
33009         * 5vtpopde.adb: Minor reformatting
33010         Fix casing of To_Task_ID
33011
33012         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
33013         flag if we have an unchecked conversion to an access type in the same
33014         unit.
33015
33016 2004-03-15  Geert Bosch  <bosch@gnat.com>
33017
33018         * a-ngcoty.adb (Modulus): In alternate formula for large real or
33019         imaginary parts, use Double precision throughout.
33020
33021         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
33022         we want to be able to compile run-time with -gnata for testing, but
33023         this may also be instantiated in user code that is compiled with -gnata.
33024
33025 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
33026
33027         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
33028         codes. Having a separate type for this is useful to enforce consistency
33029         throughout the various run-time units.
33030         (Exception_Data): Use Exception_Code for Import_Code.
33031
33032         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
33033         Natural and Integer in various places.
33034         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
33035         with the severity bits masked off.
33036         (Register_VMS_Exception): Handle the additional exception data pointer
33037         argument.
33038
33039         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
33040         component, now reflected by an exported accessor.
33041         (is_handled_by): New routine to compute whether the propagated
33042         occurrence matches some handler choice specification. Extracted out of
33043         get_action_description_for, and expanded to take care of the VMS
33044         specifities.
33045         (get_action_description_for): Use is_handled_by instead of an explicit
33046         complex condition to decide if the current choice at hand catches the
33047         propagated occurrence.
33048
33049         * raise.h (Exception_Code): New type for C.
33050
33051         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
33052         System.Standard_Library.Exception_Code, to allow references from the
33053         pragma import/export expander.
33054
33055         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
33056         New accessors to allow easy access to GNAT exception data
33057         characteristics.
33058         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
33059         redundant Handled_By_Others component, helper for the personality
33060         routine which will now be able to call the appropriate exception data
33061         accessor instead.
33062
33063         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
33064         component of Standard_Exception_Type to be the closest possible to
33065         Exception_Code in System.Standard_Library, that we cannot get at this
33066         point. Expand a ??? comment to notify that this type node should
33067         probably be rewritten later on.
33068
33069         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
33070         registration call to include a pointer to the exception object in the
33071         arguments.
33072
33073         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
33074         instead of int and explicit bitmasks.
33075
33076 2004-03-15  Vincent Celier  <celier@gnat.com>
33077
33078         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
33079         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
33080
33081         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
33082         longer needed now that it is in the spec of
33083         System.Tasking.Task_Attributes.
33084
33085         * adaint.h, adaint.c: (__gnat_create_output_file): New function
33086
33087         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
33088
33089         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
33090
33091         * make.adb (Gnatmake): Do not check the executable suffix; it is being
33092         taken care of in Scan_Make_Arg.
33093         (Scan_Make_Arg): Add the executable suffix only if the argument
33094         following -o, in canonical case, does not end with the executable
33095         suffix.  When in verbose mode and executable file name does not end
33096         with executable suffix, output the executable name, in canonical case.
33097
33098         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
33099         to avoid warnings when instantiating Ada.Task_Attributes.
33100         Minor reformating.
33101
33102         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
33103         in the correct order.
33104
33105         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
33106         redirect standard output and error to a file for the invocation of the
33107         compiler, then read the file.
33108
33109         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
33110         directory, instead of the Value.
33111         (Find_Source_Dirs): Remove useless code & comments.
33112
33113 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
33114
33115         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
33116         tagged type is inherited, and the parent operation is not frozen yet,
33117         force generation of a freeze node for the inherited operation, so the
33118         corresponding dispatch entry is properly initialized.
33119         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
33120         when looking for user-defined equality operation.
33121
33122         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
33123         boolean when locating primitive equality of tagged component.
33124
33125         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
33126         bit-aligned field and the right-hand side a string literal, introduce
33127         a temporary before expanding assignment into a loop.
33128
33129         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
33130         priority in full, to ensure that any expanded subepxressions of it are
33131         elaborated in the scope of the init_proc.
33132
33133         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
33134         after object declaration, skipping over code that may have been
33135         generated for validity checks.
33136
33137         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
33138         discriminants, ignore the known discriminants of its full view, if
33139         any, to check legality.
33140
33141         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
33142         component if type has unknown discriminants.
33143         (Analyze_Private_Extension_Declaration): Discriminant constraint is
33144         null if type has unknown discriminants.
33145
33146         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
33147         for end label when present.
33148
33149         * s-fileio.adb (Open): When called with a C_Stream, use given name for
33150         temporary file, rather than an empty string.
33151
33152 2004-03-15  Ed Falis  <falis@gnat.com>
33153
33154         * s-thread.adb: Removed, no longer used.
33155
33156 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33157
33158         * decl.c (target.h): Now include.
33159         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
33160         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
33161         (validate_size): For POINTER_TYPE, get smallest size permitted on
33162         machine.
33163
33164         * fe.h: Sort Einfo decls and add Set_Mechanism.
33165
33166         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
33167         (ada/decl.o): Depends on target.h.
33168
33169         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
33170         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
33171
33172 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
33173
33174         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
33175
33176         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
33177         Insert_Dereference_Action when rewriting an implicit dereference into
33178         an explicit one, this will be taken care of during expansion of the
33179         explicit dereference.
33180         (Expand_N_Slice): Same. Always do the rewriting, even for the case
33181         of non-packed slices, since the dereference action generated by
33182         expansion of the explicit dereference is needed in any case.
33183         (Expand_N_Selected_Component): When rewriting an implicit dereference,
33184         analyze and resolve the rewritten explicit dereference so it is seen
33185         by the expander.
33186         (Insert_Dereference_Action): This procedure is now called only for the
33187         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
33188         dereferences that do not come from source (including explicit
33189         dereferences resulting from rewriting implicit ones), but do not
33190         recursively insert a check for the dereference nodes contained within
33191         the check.
33192         (Insert_Dereference_Action): Clarify and correct comment.
33193
33194 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
33195
33196         PR ada/14131
33197         Move language detection to the top level.
33198         * config-lang.in: Build by default.
33199
33200 2004-03-05  Robert Dewar  <dewar@gnat.com>
33201
33202         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
33203
33204         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
33205         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
33206         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
33207         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
33208         unchecked conversion to spec to avoid warnings.
33209
33210         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
33211         to Task_ID
33212
33213         * 7stpopsp.adb: Correct casing in To_Task_ID call
33214
33215         * a-strsea.ads, a-strsea.adb: Minor reformatting
33216
33217         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
33218
33219         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
33220         Adjust Max_Msg_Length to be clearly large enough.
33221
33222         * fe.h: Define In_Same_Source_Unit
33223
33224         * osint.adb: Add pragma Warnings Off to suppress warnings
33225         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
33226         aliasing warnings.
33227
33228         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
33229
33230         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
33231
33232         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
33233
33234         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
33235
33236         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
33237
33238         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
33239         node. We now do generate them for gcc back end.
33240
33241         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
33242         warning.
33243
33244         * sinput-c.adb: Fix bad name in header.
33245         Add pragma Warnings Off to suppress aliasing warning.
33246
33247         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
33248
33249         * snames.h, snames.ads, snames.adb: Add entry for pragma
33250         No_Strict_Aliasing.
33251
33252 2004-03-05  Vincent Celier  <celier@gnat.com>
33253
33254         * prj-com.ads: Add hash table Files_Htable to check when a file name
33255         is already a source of another project.
33256
33257         * prj-nmsc.adb (Record_Source): Before recording a new source, check
33258         if its file name is not already a source of another project. Report an
33259         error if it is.
33260
33261         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
33262         source file name, call gnatpp with all the sources of the main project.
33263
33264         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
33265         of file names.
33266
33267         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
33268         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
33269         /RUNTIME_SYSTEM=, converted to --RTS=
33270         /NOTABS, converted to -notabs
33271
33272 2004-03-05  Pascal Obry  <obry@gnat.com>
33273
33274         * make.adb: Minor reformatting.
33275
33276 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
33277
33278         Part of implemention of AI-262.
33279         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
33280
33281         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
33282         procedure.
33283
33284         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
33285         when component type is a partially constrained class-wide subtype.
33286         (Constrain_Discriminated_Type): If parent type has unknown
33287         discriminants, a constraint is illegal, even if full view has
33288         discriminants.
33289         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
33290         with unknown discriminants whose full view is a discriminated record.
33291
33292         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
33293         flag, to handle properly derivations of tagged types with unknown
33294         discriminants.
33295         (Analyze_Package_Spec, Analyze_Package_Body): Install
33296         Private_With_Clauses before analyzing private part or body.
33297
33298         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
33299         Has_Discriminants can be true for a given type (documentation).
33300
33301 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
33302
33303         * s-restri.ads: Fix license (GPL->GMGPL).
33304
33305         * s-tassta.adb: Minor reformatting.
33306
33307         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
33308         by calls to Exit_One_ATC_Level, since additional clean up is performed
33309         by this function.
33310
33311         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
33312         by calls to Exit_One_ATC_Level, since additional clean up is performed
33313         by this function.
33314
33315 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33316
33317         * trans.c: Reflect GCC changes to fix bootstrap problem.
33318         Add warning for suspicious aliasing unchecked conversion.
33319
33320 2004-03-05  GNAT Script  <nobody@gnat.com>
33321
33322         * Make-lang.in: Makefile automatically updated
33323
33324 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
33325
33326         * ali.adb (Read_Instantiation_Instance): Do not modify the
33327         current_file_num when reading information about instantiations, since
33328         this corrupts files in later references.
33329
33330 2004-03-02  Vincent Celier  <celier@gnat.com>
33331
33332         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
33333         before checking if it is read-only.
33334
33335         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
33336         of SRC_DIRS and eliminate duplicates.
33337
33338         * gprcmd.adb: Replace command "path" with command "path_sep" to return
33339         the path separator.
33340         (Usage): Document path_sep
33341
33342         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
33343         C++ compiler. No need for a script.
33344         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
33345         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
33346         subst.
33347
33348         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
33349         where there are Ada sources.
33350         (Set_Ada_Paths): Only add to the include path the source dirs of project
33351         with Ada sources.
33352         (Add_To_Path): Add the Display_Values of the directories, not their
33353         Values.
33354
33355         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
33356         data.
33357
33358         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
33359         is not No_Name.
33360         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
33361         Value is canonicalized.
33362         (Language_Independent_Check): Do not copy Value to Display_Value when
33363         canonicalizing Value.
33364
33365         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
33366         path to find limited with cycles.
33367         (Parse_Single_Project): Use canonical cased path to find the end of a
33368         with cycle.
33369
33370 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
33371
33372         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
33373         and not a child unit.
33374
33375         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
33376         appear in a with_clause.
33377
33378         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
33379         only happen in type_annotate mode, do not try to elaborate it.
33380
33381         * exp_util.adb (Force_Evaluation): If expression is a selected
33382         component on the left of an assignment, use a renaming rather than a
33383         temporary to remove side effects.
33384
33385         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
33386         inlined instance body, which is analyzed before the end of the
33387         enclosing scope.
33388
33389 2004-03-02  Robert Dewar  <dewar@gnat.com>
33390
33391         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
33392         sem_ch4.adb: Use new feature for substitution of keywords in VMS
33393
33394         * errout.ads, errout.adb: Implement new circuit for substitution of
33395         keywords in VMS.
33396
33397         * sem_case.adb (Analyze_Choices): Place message properly when case is
33398         a subtype reference rather than an explicit range.
33399
33400         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
33401
33402 2004-03-02  Doug Rupp  <rupp@gnat.com>
33403
33404         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
33405
33406 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
33407
33408         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
33409
33410 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33411
33412         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
33413         BLKmode bitfield.
33414
33415 2004-02-25  Robert Dewar  <dewar@gnat.com>
33416
33417         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
33418         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
33419         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
33420         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
33421         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
33422         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
33423         the defining instance of the type to avoid aliasing problems.
33424         Fix copyright header.  Fix bad comments in package header.
33425
33426         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
33427
33428 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
33429
33430         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
33431         rewritten as references when aliased through an address clause.
33432
33433         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
33434         whether call can be interpreted as an indirect call to the result of a
33435         parameterless function call returning an access subprogram.
33436
33437 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
33438
33439         Code clean up:
33440         * exp_ch7.adb (Make_Clean): Remove generation of calls to
33441         Unlock[_Entries], since this is now done by Service_Entries directly.
33442
33443         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
33444
33445         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
33446         Requeue_Call for better code readability. Change spec and update calls:
33447         PO_Service_Entries now unlock the PO on exit.
33448         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
33449         PO_Service_Entries.
33450
33451         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
33452
33453         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
33454
33455 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
33456
33457         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
33458         protected subprogram call and analyzing the result of such expanding
33459         in case when the called protected subprogram is eliminated.
33460
33461         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
33462         names.
33463
33464 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
33465
33466         * Makefile.in: Clean ups.
33467
33468 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
33469
33470         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
33471         protected operations if original subprogram is flagged as eliminated.
33472         (Expand_N_Subprogram_Body): For a protected operation, create
33473         discriminals for next operation before checking whether the operation
33474         is eliminated.
33475
33476         * exp_ch9.adb (Expand_N_Protected_Body,
33477         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
33478         for internal protected operations if the original subprogram is
33479         eliminated.
33480
33481         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
33482         declared in a single protected object.
33483
33484 2004-02-23  Vincent Celier  <celier@gnat.com>
33485
33486         * prj-attr.adb: Make attribute Builder'Executable an associative array,
33487         case insensitive if file names are case insensitive, instead of a
33488         standard associative array.
33489
33490         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
33491         them as case insensitive on platforms where the file names are case
33492         sensitive.
33493
33494         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
33495         project file has already been parsed that canonical path are compared.
33496
33497 2004-02-23  Robert Dewar  <dewar@gnat.com>
33498
33499         * sinput-c.ads: Correct bad unit title in header
33500
33501         * freeze.adb: Minor reformatting
33502
33503 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33504
33505         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
33506         nonaddressable COMPONENT_REF that is removing padding that we are
33507         taking the address of, take the address of the padded record instead
33508         if item is variable size.
33509
33510 2004-02-20  Robert Dewar  <dewar@gnat.com>
33511
33512         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
33513
33514 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
33515
33516         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
33517         itype references for the constrained designated type of a component
33518         whose base type is already frozen.
33519
33520 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
33521
33522         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
33523         avoid GCC warnings.
33524
33525 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
33526
33527         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
33528         identifier for a phantom package that rewrites the formal package
33529         declaration with a box. The Add semantic decorations for the defining
33530         identifier from the original node (that represents the formal package).
33531
33532 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
33533
33534         * Make-lang.in (ada/stamp-sdefault): Use the top level
33535         move-if-change.
33536
33537 2004-02-19  Richard Henderson  <rth@redhat.com>
33538
33539         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
33540
33541 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
33542
33543         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
33544         Scan_ALI can be used for multiple ALI files without reinitializing
33545         between calls.
33546
33547 2004-02-18  Robert Dewar  <dewar@gnat.com>
33548
33549         * debug.adb: Minor reformatting.
33550
33551 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33552
33553         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
33554         to zero if there is an address clause.
33555
33556 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
33557
33558         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
33559
33560 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
33561
33562         * layout.adb (Layout_Component_List): Revise generation of call to
33563         discriminant-checking function to pass selections of all of the type's
33564         discriminants rather than just the variant-controlling discriminant.
33565
33566 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
33567
33568         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
33569         fail in the current setup and triggers spurious system error messages.
33570         Pretend it occurred and failed instead.
33571
33572 2004-02-18  Vincent Celier  <celier@gnat.com>
33573
33574         * bld.adb: Mark FLDFLAGS as saved
33575         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
33576         it is not the root project.  Put each directory to be
33577         extended between double quotes to prevent it to be expanded on Windows.
33578         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
33579         the project file. Set them back to their initial values if they have not
33580         been set in the project file.
33581
33582         * gprcmd.adb: (Gprdebug, Debug): New global variables
33583         (Display_Command): New procedure
33584         (Usage): Document new command "linkopts"
33585         Call Display_Command when env var GPRDEBUG has the value "TRUE"
33586         Implement new command "linkopts"
33587         Remove quotes that may be around arguments for "extend"
33588         Always call Normalize_Pathname with arguments formatted for the platform
33589
33590         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
33591         Change @echo to @$(display) in target clean to be able to clean silently
33592
33593         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
33594
33595         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
33596         canonical case.
33597
33598         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
33599         = Extending_All when current project is an extending all project.
33600
33601         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
33602         set to True only for LINK command, after Unix switch -o.
33603         (Process_Arguments): Set Output_File_Expected to True for LINK command
33604         after Unix switch -o. When Output_File_Expected is True, never add an
33605         extension to a file name.
33606
33607         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
33608         option file name, only to the --for-linker= switch.
33609         (Option_File_Name): If option file name do not end with ".opt", append
33610         "/OPTIONS".
33611
33612 2004-02-18  GNAT Script  <nobody@gnat.com>
33613
33614         * Make-lang.in: Makefile automatically updated
33615
33616 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
33617
33618         * Make-lang.in (stamp-sdefault): Do not depend on
33619         move-if-change.
33620
33621 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
33622
33623         * config-lang.in: Disable Ada by default until probe logic for
33624         a bootstrap Ada compiler can be moved to the top level configure
33625         script.
33626
33627 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
33628
33629         * decl.c (components_to_record): Don't claim that the internal fields
33630         we make to hold the variant parts are semantically addressable, because
33631         they are not.
33632
33633         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
33634         adjust the comment describing the modular type form when we can use it.
33635         (Install_PAT): Account for the Esiz renaming.
33636
33637         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
33638         sc_onstack context indication before raising the exception to which
33639         the signal is mapped. Allows better handling of later signals possibly
33640         triggered by the resumed user code if the exception is handled.
33641
33642 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
33643
33644         * 5zinit.adb: Removed, no longer used.
33645
33646 2004-02-12  Robert Dewar  <dewar@gnat.com>
33647
33648         * ali.adb: Remove separating space between parameters on R line. Makes
33649         format consistent with format used by the binder for Set_Globals call.
33650
33651         * atree.ads, atree.adb: Minor reformatting (new function header format)
33652
33653         * bindgen.adb: Add Run-Time Globals documentation section containing
33654         detailed documentation of the globals passed from the binder file to
33655         the run time.
33656
33657         * gnatls.adb: Minor reformatting
33658
33659         * init.c (__gnat_set_globals): Add note pointing to documentation in
33660         bindgen.
33661
33662         * lib-writ.ads, lib-writ.adb: Remove separating space between
33663         parameters on R line.
33664         Makes format consistent with format used by the binder for Set_Globals
33665         call.
33666
33667         * osint.ads: Add 2004 to copyright notice
33668         Minor reformatting
33669
33670         * snames.ads: Correct capitalization of FIFO_Within_Priorities
33671         Noticed during code reading, documentation issue only
33672
33673         * usage.adb: Remove junk line for obsolete C switch
33674         Noticed during code reading
33675
33676 2004-02-12  Vincent Celier  <celier@gnat.com>
33677
33678         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
33679         extend for each directory, so that multiple /** directories are
33680         extended individually.
33681         (Recursive_Process): Set the default for LANGUAGES to ada
33682
33683         * gprcmd.adb: Define new command "ignore", to do nothing.
33684         Implement new comment "path".
33685
33686         * Makefile.generic: Suppress output when SILENT is set
33687         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
33688         used, so that the correct compiler is invoked.
33689         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
33690         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
33691
33692 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
33693
33694         * Makefile.in: Clean ups and remove obsolete targets.
33695
33696 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
33697
33698         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
33699         predicate declared in exp_util.
33700
33701         * exp_util.adb: Add comments.
33702
33703         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
33704         visibility before compiling context of the subunit.
33705
33706         * sem_res.adb (Check_Parameterless_Call): If the context expects a
33707         value but the name is a procedure, do not attempt to analyze as a call,
33708         in order to obtain more telling diagnostics.
33709
33710         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
33711         'Access on parameterless function calls.
33712         (Normalize_Actuals): For a parameterless function call with missing
33713         actuals, defer diagnostic until resolution of enclosing call.
33714
33715         * sem_util.adb (Wrong_Type): If the context type is an access to
33716         subprogram and the expression is a procedure name, suggest a missing
33717         'attribute.
33718
33719 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
33720             Nathanael Nerode  <neroden@gcc.gnu.org>
33721
33722         PR ada/6637
33723         PR ada/5911
33724         Merge with libada-branch:
33725         * config-lang.in: Build libada only when ada is built.
33726
33727 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
33728
33729         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
33730         for a tagged type, verify that both formals have the same type.
33731
33732         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
33733         temporary when the formal is an in-parameter and the actual a possibly
33734         unaligned slice.
33735
33736         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
33737         when expansion is disabled, to ensure proper name capture with
33738         overloaded literals.  Condition can be of any boolean type, resolve
33739         accordingly.
33740
33741         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
33742         renaming is for a formal subprogram with a default operator name, and
33743         there is a usable operator that is visible at the point of
33744         instantiation.
33745
33746 2004-02-09  Robert Dewar  <dewar@gnat.com>
33747
33748         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
33749         rewrite to ignore errors in ali files, intended to allow tools downward
33750         compatibility with new versions of ali files.
33751
33752         * ali.ads: Add new parameter Ignore_Errors
33753
33754         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
33755         duplicating the error message giving the file with restrictions.
33756
33757         * debug.adb: Add debug flag I for gnatbind
33758
33759         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
33760         operators for the case where the operator is a defining operator.
33761
33762         * exp_ch3.adb: Minor reformatting (new function spec format).
33763
33764         * exp_ch4.adb: Add comment for previous change, and make minor
33765         adjustment to loop to always check for improper loop termination.
33766         Minor reformatting throughout (new function spec format).
33767
33768         * gnatbind.adb: Implement -di debug flag for gnatbind
33769
33770         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
33771
33772         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
33773
33774         * lib-load.adb: Fix bad assertion.
33775         Found by testing and code reading.
33776         Minor reformatting.
33777
33778         * lib-load.ads: Minor reformatting.
33779
33780         * lib-writ.adb: There is only one R line now.
33781
33782         * lib-writ.ads: Add documentation on making downward compatible changes
33783         to ali files so old tools work with new ali files.
33784         There is only one R line now.
33785         Add documentation on format incompatibilities (with special GPS note)
33786
33787         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
33788
33789         * par-load.adb: Minor reformatting
33790
33791         * sem_ch8.adb: Fix to error message from last update
33792         Minor reformatting and restructuring of code from last update
33793
33794         * par-prag.adb, snames.adb, snames.ads, snames.h,
33795         sem_prag.adb: Implement pragma Profile.
33796
33797         * stylesw.adb: Implement -gnatyN switch to turn off all style check
33798         options.
33799
33800         * usage.adb: Add line for -gnatyN switch
33801
33802         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
33803
33804 2004-02-09  Albert Lee  <lee@gnat.com>
33805
33806         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
33807
33808 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
33809
33810         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
33811         slices.
33812
33813         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
33814         is nested in an instance that is not frozen yet, to avoid
33815         order-of-elaboration problems in gigi.
33816
33817         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
33818         body the attribute is legal.
33819
33820 2004-02-09  Robert Dewar  <dewar@gnat.com>
33821
33822         * s-rident.ads: Minor comment correction
33823
33824         * targparm.adb: Remove dependence on uintp completely. There was
33825         always a bug in Make in that it called Targparm before initializing
33826         the Uint package. The old code appeared to get away with this, but
33827         the new code did not! This caused an assertion error in gnatmake.
33828
33829         * targparm.ads: Fix bad comment, restriction pragmas with parameters
33830         are indeed fully supported.
33831
33832 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
33833
33834         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
33835
33836 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
33837
33838         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
33839         with targetm.calls.promote_prototypes.
33840
33841 2004-02-04  Robert Dewar  <dewar@gnat.com>
33842
33843         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
33844         ali.ads, gprcmd.adb: Minor reformatting
33845
33846         * bindgen.adb: Output restrictions string for new style restrictions
33847         handling
33848
33849         * impunit.adb: Add s-rident.ads (System.Rident) and
33850         s-restri (System.Restrictions)
33851
33852         * lib-writ.adb: Fix bug in writing restrictions string (last few
33853         entries wrong)
33854
33855         * s-restri.ads, s-restri.adb: Change name Restrictions to
33856         Run_Time_Restrictions to avoid conflict with package name.
33857         Add circuit to read and acquire run time restrictions.
33858
33859 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
33860
33861         * restrict.ads, restrict.adb: Use the new restriction
33862         No_Task_Attributes_Package instead of the old No_Task_Attributes.
33863
33864         * sem_prag.adb: No_Task_Attributes is a synonym of
33865         No_Task_Attributes_Package.
33866
33867         * snames.ads, snames.adb: New entry for proper handling of
33868         No_Task_Attributes.
33869
33870         * s-rident.ads: Adding restriction No_Task_Attributes_Package
33871         (AI-00249) that supersedes the GNAT specific restriction
33872         No_Task_Attributes.
33873
33874 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
33875
33876         * sem_prag.adb:
33877         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
33878          body, an identifier may be wrapped in an unchecked conversion.
33879
33880 2004-02-04  Vincent Celier  <celier@gnat.com>
33881
33882         * lib-writ.ads: Comment update for the W lines
33883
33884         * bld.adb: (Expression): An empty string list is static
33885
33886         * fname-uf.adb: Minor comment update
33887
33888         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
33889
33890         * gnatbind.adb: Initialize Cumulative_Restrictions with the
33891         restrictions on the target.
33892
33893 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
33894
33895         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
33896         gen_rtx.
33897
33898 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
33899
33900         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
33901
33902 2004-02-02  Vincent Celier  <celier@gnat.com>
33903
33904         * gprcmd.adb (Check_Args): If condition is false, print the invoked
33905         comment before the usage.
33906         Gprcmd: Fail when command is not recognized.
33907         (Usage): Document command "prefix"
33908
33909         * g-md5.adb (Digest): Process last block.
33910         (Update): Do not process last block. Store remaining characters and
33911         length in Context.
33912
33913         * g-md5.ads (Update): Document that several call to update are
33914         equivalent to one call with the concatenated string.
33915         (Context): Add fields to allow new Update behaviour.
33916
33917         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
33918         defaulted to False.
33919         When May_Fail is True and no existing file can be found, return No_File.
33920
33921         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
33922         functions.
33923
33924         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
33925         spec file name instead on the W line.
33926
33927 2004-02-02  Robert Dewar  <dewar@gnat.com>
33928
33929         * ali.adb: Read and acquire info from new format restrictions lines
33930
33931         * bcheck.adb: Add circuits for checking restrictions with parameters
33932
33933         * bindgen.adb: Output dummy restrictions data
33934         To be changed later
33935
33936         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
33937         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
33938         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
33939         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
33940         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
33941
33942         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
33943         the warning message on access to possibly uninitialized variable S)
33944         Minor changes for new restrictions handling.
33945
33946         * gnatbind.adb: Minor reformatting
33947         Minor changes for new restrictions handling
33948         Move circuit for -r processing here from bcheck (cleaner)
33949
33950         * gnatcmd.adb, gnatlink.adb: Minor reformatting
33951
33952         * lib-writ.adb: Output new format restrictions lines
33953
33954         * lib-writ.ads: Document new R format lines for new restrictions
33955         handling.
33956
33957         * s-restri.ads/adb: New files
33958
33959         * Makefile.rtl: Add entry for s-restri.ads/adb
33960
33961         * par-ch3.adb: Fix bad error messages starting with upper case letter
33962         Minor reformatting
33963
33964         * restrict.adb: Major rewrite throughout for new restrictions handling
33965         Major point is to handle restrictions with parameters
33966
33967         * restrict.ads: Major changes in interface to handle restrictions with
33968         parameters. Also generally simplifies setting of restrictions.
33969
33970         * snames.ads/adb: New entry for proper handling of No_Requeue
33971
33972         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
33973         restriction counting.
33974         Other minor changes for new restrictions handling
33975
33976         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
33977         Restriction_Warnings now allows full parameter notation
33978         Major rewrite of Restrictions for new restrictions handling
33979
33980 2004-02-02  Javier Miranda  <miranda@gnat.com>
33981
33982         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
33983         syntax rule for object renaming declarations.
33984         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
33985         component definitions.
33986
33987         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
33988         components.
33989         (Array_Type_Declaration): Give support to access components. In addition
33990         it was also modified to reflect the name of the object in anonymous
33991         array types. The old code did not take into account that it is possible
33992         to have an unconstrained anonymous array with an initial value.
33993         (Check_Or_Process_Discriminants): Allow access discriminant in
33994         non-limited types.
33995         (Process_Discriminants): Allow access discriminant in non-limited types
33996         Initialize the new Access_Definition field in N_Object_Renaming_Decl
33997         node.  Change Ada0Y to Ada 0Y in comments
33998
33999         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
34000         equality operators.
34001         Change Ada0Y to Ada 0Y in comments
34002
34003         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
34004         renamings Change Ada0Y to Ada 0Y in comments
34005
34006         * sem_type.adb (Find_Unique_Type): Give support to the equality
34007         operators for universal access types
34008         Change Ada0Y to Ada 0Y in comments
34009
34010         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
34011
34012         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
34013         field.
34014         (N_Object_Renaming_Declaration): Addition of Access_Definition field
34015         Change Ada0Y to Ada 0Y in comments
34016
34017         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
34018         component definition and object renaming nodes
34019         Change Ada0Y to Ada 0Y in comments
34020
34021 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
34022
34023         * restrict.adb: Use the new restriction identifier
34024         No_Requeue_Statements instead of the old No_Requeue for defining the
34025         restricted profile.
34026
34027         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
34028         No_Requeue_Statements.
34029
34030         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
34031         that supersedes the GNAT specific restriction No_Requeue. The later is
34032         kept for backward compatibility.
34033
34034 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
34035
34036         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
34037         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
34038         pragma and fix incorrect ones.
34039
34040         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
34041         warning if the pragma is redundant.
34042
34043 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
34044
34045         * 5staprop.adb: Add missing 'constant' keywords.
34046
34047         * Makefile.in: use consistent value for SYMLIB on
34048         platforms where libaddr2line is supported.
34049
34050 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34051
34052         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
34053         annotating types.
34054
34055 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
34056
34057         * init.c (__gnat_install_handler): Setup an alternate stack for signal
34058         handlers in the environment thread. This allows proper propagation of
34059         an exception on stack overflows in this thread even when the builtin
34060         ABI stack-checking scheme is used without support for a stack reserve
34061         region.
34062
34063         * utils.c (create_field_decl): Augment the head comment about bitfield
34064         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
34065         here, because the former is not accurate enough at this point.
34066         Let finish_record_type decide instead.
34067         Don't make a bitfield if the field is to be addressable.
34068         Always set a size for the field if the record is packed, to ensure the
34069         checks for bitfield creation are triggered.
34070         (finish_record_type): During last pass over the fields, clear
34071         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
34072         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
34073         from DECL_BIT_FIELD.
34074
34075 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
34076
34077         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
34078         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
34079         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
34080
34081 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34082
34083         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
34084
34085         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
34086         (ZCX_By_Default): Likewise.
34087         (Front_End_ZCX_Support): Likewise.
34088
34089         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
34090         (Initialize_Lock): Mark Level unreferenced.
34091         (Sleep): Mark Reason unreferenced.
34092         (Timed_Sleep): Likewise.
34093         (Wakeup): Likewise.
34094         (Exit_Task): Use Result.
34095         (Check_No_Locks): Mark Self_ID unreferenced.
34096
34097         * 5gtasinf.adb (New_Sproc): Make Attr constant.
34098         (Bound_Thread_Attributes): Make Sproc constant.
34099         (New_Bound_Thread_Attributes): Likewise.
34100
34101 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
34102
34103         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
34104         one-dimensional array an slice assignments, when component type is
34105         controlled.
34106
34107         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
34108         component type is controlled, and control_actions are in effect, use
34109         TSS procedure rather than generating inline code.
34110
34111         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
34112         arrays with controlled components.
34113
34114 2004-01-26  Vincent Celier  <celier@gnat.com>
34115
34116         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
34117         command line for the non VMS case.
34118
34119         * gnatlink.adb (Process_Binder_File): When building object file, if
34120         GNU linker is used, put all object paths between quotes, to prevent ld
34121         error when there are unusual characters (such as '!') in the paths.
34122
34123         * Makefile.generic: When there are sources in Ada and the main is in
34124         C/C++, invoke gnatmake with -B, instead of -z.
34125
34126         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
34127         from VMS_Conversion.
34128         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
34129         specification of argument file on the command line.
34130
34131 2004-01-26  Bernard Banner  <banner@gnat.com>
34132
34133         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
34134
34135 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
34136
34137         * snames.adb: Update copyright notice.
34138         Add info on slice assignment for controlled arrays.
34139
34140 2004-01-23  Robert Dewar  <dewar@gnat.com>
34141
34142         * exp_aggr.adb: Minor reformatting
34143
34144         * exp_ch9.adb: Minor code clean up
34145         Minor reformatting
34146         Fix bad character in comment
34147
34148         PR ada/13471
34149         * targparm.adb (Get_Target_Parameters): Give clean abort error on
34150         unexpected end of file, along with more detailed message.
34151
34152 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34153
34154         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
34155         PAT.
34156
34157         * decl.c (copy_alias_set): New function.
34158         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
34159
34160 2004-01-23  Doug Rupp  <rupp@gnat.com>
34161
34162         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
34163         lib$${file} in case subsequent character is not a separator.
34164
34165 2004-01-23  Vincent Celier  <celier@gnat.com>
34166
34167         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
34168         when the GCC version is at least 3.
34169
34170         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
34171         Remove all "Opt.", to prepare for opt split
34172
34173         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
34174         Extends_All. Set to True when the project parsed is an extending all
34175         project. Fails for importing an extending all project only when the
34176         imported project is an extending all project.
34177         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
34178         depending on the value of Extends_All returned.
34179
34180         * prj-proc.adb (Process): Check that no project shares its object
34181         directory with a project that extends it, directly or indirectly,
34182         including a virtual project.
34183         Check that no project extended by another project shares its object
34184         directory with another also extended project.
34185
34186         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
34187         Kind = N_With_Clause
34188
34189         * prj-tree.ads: Minor reformatting
34190         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
34191
34192 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
34193
34194         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
34195         applies to a type with an incomplete view, use full view in Name of
34196         clause, for consistency with uses of Get_Attribute_Definition_Clause.
34197
34198 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
34199
34200         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
34201         SCHED_RR, since other values are not supported by this policy.
34202         (Initialize): Move initialization of mutex attribute to package
34203         elaboration, to prevent early access to this variable.
34204
34205         * Makefile.in: Remove mention of Makefile.adalib, unused.
34206
34207         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
34208         1ssecsta.ads: Removed, unused.
34209
34210 2004-01-21  Javier Miranda  <miranda@gnat.com>
34211
34212         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
34213         entity if already built in the current scope.
34214
34215         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
34216         reminder in internal scopes. Required for nested limited aggregates.
34217
34218 2004-01-21  Doug Rupp  <rupp@gnat.com>
34219
34220         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
34221         VMS. Replace all occurences of libgnat- and libgnarl- with
34222         libgnat$(hyphen) and libgnarl$(hyphen).
34223         Fixed shared library build problem on VMS.
34224
34225 2004-01-21  Robert Dewar  <dewar@gnat.com>
34226
34227         * mlib-prj.adb: Minor reformatting
34228
34229 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
34230
34231         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
34232         'constant' keywords for declaration of pointers that are not modified.
34233
34234         * exp_pakd.adb: Fix English in comment.
34235
34236 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
34237
34238         PR ada/10889
34239         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
34240         copy all attributes of the parent, including the foreign language
34241         convention.
34242
34243 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
34244
34245         PR ada/10565
34246         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
34247         for 'delay until' statement.
34248
34249 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
34250
34251         * Make-lang.in: Replace $(docdir) with doc.
34252         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
34253         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
34254         to use consistent MAKEINFO rule.
34255         (ada.man, ada.srcman): Dummy entry.
34256         (ADA_INFOFILES): Define.
34257         (ada.info, ada.srcinfo): New rules.
34258
34259 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
34260
34261         * utils.c: Update copyright notice, missed in previous change.
34262
34263 2004-01-19  Vincent Celier  <celier@gnat.com>
34264
34265         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
34266         args if Bind is True. Set First_ALI, if not already done.
34267         (Build_Library): For Stand Alone Libraries, extract from one ALI file
34268         an eventual --RTS switch, for gnatbind, and all backend switches +
34269         --RTS, for linking.
34270
34271 2004-01-19  Robert Dewar  <dewar@gnat.com>
34272
34273         * sem_attr.adb, memtrack.adb: Minor reformatting
34274
34275 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
34276
34277         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
34278         that rename enumeration literals. This is properly done in sem_eval.
34279
34280         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
34281         to functions that rename enumeration literals.
34282
34283         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
34284         functions that rename enumeration literals.
34285
34286 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
34287
34288         * Make-lang.in (utils.o): Depend on target.h.
34289         * utils.c: Include target.h.
34290         (process_attributes): Use targetm.have_named_sections instead
34291         of ASM_OUTPUT_SECTION_NAME.
34292
34293 2004-01-16  Andreas Jaeger  <aj@suse.de>
34294
34295         * Makefile.in: Add $(DESTDIR).
34296
34297 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
34298
34299         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
34300         also when not defining if a Size clause applies. That information is
34301         not to be ignored.
34302
34303 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
34304
34305         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
34306         symbolic links for the shared gnat run time when needed.
34307
34308 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
34309
34310         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
34311         for writing, and terminate with an error message if not.
34312
34313 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
34314
34315         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
34316         warning on an access to subprogram in an instance, when the target
34317         type is declared in the same generic unit.
34318         (Eval_Attribute): If 'access is known to fail accessibility check,
34319         rewrite as a raise statement.
34320
34321 2004-01-15  GNAT Script  <nobody@gnat.com>
34322
34323         * Make-lang.in: Makefile automatically updated
34324
34325 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
34326
34327         * Make-lang.in (ada.srcextra): Dummy entry.
34328
34329 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
34330
34331         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
34332
34333 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
34334
34335         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
34336         components that are initialized with aggregates.
34337
34338 2004-01-13  Vincent Celier  <celier@gnat.com>
34339
34340         * gnatlink.adb (Process_Binder_File): To find directory of shared
34341         libgcc, if "gcc-lib" is not a subdirectory, look for the last
34342         subdirectory "lib" in the path of the shared libgnat or libgnarl.
34343
34344         * make.adb (Gnatmake): If GCC version is at least 3, link with
34345         -shared-libgcc, when there is at least one shared library project.
34346
34347         * opt.ads (GCC_Version): New integer constant.
34348
34349         * adaint.c (get_gcc_version): New function.
34350
34351 2004-01-13  Robert Dewar  <dewar@gnat.com>
34352
34353         * sem_dist.adb, sem_res.adb, sem_util.adb,
34354         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
34355         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
34356
34357 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
34358
34359         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
34360         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
34361         declarations.
34362
34363 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
34364
34365         * misc.c: Remove trailing spaces.
34366         Update copyright notice missed in previous change.
34367
34368         PR ada/13572
34369         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
34370         prefix/share/make
34371
34372         * Makefile.generic: Update copyright.
34373         Add license notice.
34374
34375         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
34376         of prefix/share/make.
34377
34378         * Makefile.prolog: Update copyright.
34379         Add license notice.
34380
34381 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
34382
34383         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
34384         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
34385         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
34386         instead of String.
34387
34388         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
34389         signature.
34390
34391 2004-01-12  Javier Miranda  <miranda@gnat.com>
34392
34393         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
34394         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
34395         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
34396         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
34397         Component_Definition node.
34398
34399 2004-01-12  Ed Falis  <falis@gnat.com>
34400
34401         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
34402
34403 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
34404
34405         * link.c: Change default libgnat kind to STATIC for FreeBSD.
34406
34407 2004-01-12  Bernard Banner  <banner@gnat.com>
34408
34409         * Makefile.in: map 86numaux to a-numaux for x86_64
34410
34411 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
34412
34413         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
34414         generated to rename a generic actual, go to the actual itself, the
34415         subtype is not a user-visible entity.
34416
34417         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
34418         part is a private subtype, reset the visibility of its full view, if
34419         any, to be consistent.
34420
34421         PR ada/13417
34422         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
34423         to use a generic package G as a formal package for another generic
34424         declared within G.
34425
34426 2004-01-12  Robert Dewar  <dewar@gnat.com>
34427
34428         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
34429
34430         * usage.adb: Remove mention of obsolete -gnatwb switch
34431         Noticed during code reading
34432
34433 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
34434
34435         * 1ssecsta.adb: Minor changes for -gnatwa warnings
34436
34437 2004-01-12  GNAT Script  <nobody@gnat.com>
34438
34439         * Make-lang.in: Makefile automatically updated
34440
34441 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
34442
34443         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
34444
34445 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34446
34447         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
34448
34449 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
34450
34451         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
34452         Update comment and copyright date.
34453         * stamp-xgnatug: Delete.
34454
34455 2004-01-05  Robert Dewar  <dewar@gnat.com>
34456
34457         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
34458         be modified by the binder generated main program if the -D switch is
34459         used.
34460
34461         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
34462         imported functions (since now we expect this to be done for imported
34463         functions)
34464
34465         * 5vtaprop.adb: Add several ??? for sections requiring more comments
34466         Minor reformatting throughout
34467
34468         * 5zinit.adb: Minor reformatting
34469         Add 2004 to copyright date
34470         Minor changes to avoid -gnatwa warnings
34471         Correct some instances of using OR instead of OR ELSE (noted while
34472         doing reformatting)
34473
34474         * sprint.adb: Minor updates to avoid -gnatwa warnings
34475
34476         * s-secsta.ads, s-secsta.adb:
34477         (SS_Get_Max): New function to obtain high water mark for ss stack
34478         Default_Secondary_Stack is not a constant since it may be modified by
34479         the binder generated main program if the -D switch is used.
34480
34481         * switch-b.adb: New -Dnnn switch for binder
34482
34483         * switch-c.adb:
34484         Make -gnatg imply all warnings currently in -gnatwa
34485
34486         * vms_conv.adb: Minor reformatting
34487         Add 2004 to copyright notice
34488         Add 2004 to printed copyright notice
34489
34490         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
34491         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
34492         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
34493         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
34494         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
34495         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
34496         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
34497         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
34498         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
34499         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
34500         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
34501         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
34502         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
34503         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
34504         checks.adb, clean.adb, cstand.adb, einfo.ads,
34505         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
34506         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
34507         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
34508         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
34509         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
34510         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
34511         Minor reformatting and code clean ups.
34512         Minor changes to prevent -gnatwa warnings
34513
34514         * ali.adb: Minor reformatting and cleanup of code
34515         Acquire new SS indication of secondary stack use from ali files
34516
34517         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
34518         (since now we expect this to be done for imported functions)
34519
34520         * bindgen.adb: Generate call to modify default secondary stack size if
34521         -Dnnn switch given
34522
34523         * bindusg.adb: Add line for new -D switch
34524
34525         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
34526         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
34527         Add circuitry for both records and arrays to avoid gigi
34528         processing if the type involved has non-bit-aligned components
34529
34530         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
34531         N_String_Literal node always references an E_String_Literal_Subtype
34532         entity. This may not be true in the future.
34533         (Possible_Bit_Aligned_Component): Move processing of
34534         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
34535
34536         * exp_ch6.adb (Expand_Thread_Body): Pick up
34537         Default_Secondary_Stack_Size as variable so that we get value modified
34538         by possible -Dnnn binder parameter.
34539
34540         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
34541         (Type_May_Have_Bit_Aligned_Components): New function.
34542
34543         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
34544         (Type_May_Have_Bit_Aligned_Components): New function.
34545
34546         * fe.h: (Set_Identifier_Casing): Fix prototype.
34547         Add declaration for Sem_Elim.Eliminate_Error_Msg.
34548         Minor reformatting.
34549
34550         * freeze.adb (Freeze_Entity): Add RM reference to error message about
34551         importing constant atomic/volatile objects.
34552         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
34553         unless explicit Pure_Function pragma given, to avoid insidious bug of
34554         call to non-pure imported function getting eliminated.
34555
34556         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
34557         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
34558         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
34559         Add 2004 to printed copyright notice
34560
34561         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
34562         stack used.
34563
34564         * Makefile.rtl: Add entry for g-sestin.o
34565         g-sestin.ads: New file.
34566
34567         * mdll.adb: Minor changes to avoid -gnatwa warnings
34568
34569         * mlib-tgt.adb: Minor reformatting
34570
34571         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
34572         New switch Sec_Stack_Used (GNAT, GNATBIND)
34573         Make Default_Secondary_Stack_Size a variable instead of a constant,
34574         so that it can be modified by the new -Dnnn bind switch.
34575
34576         * rtsfind.adb (Load_Fail): Give full error message in configurable
34577         run-time mode if all_errors mode is set. This was not done in the case
34578         of a file not found, which was an oversight.
34579         Note if secondary stack unit is used by compiler.
34580
34581         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
34582         ineffective elaborate all pragmas on non-visible packages (this
34583         happened when a renamed subprogram was called). Now the elaborate all
34584         always goes on the package containing the renaming rather than the one
34585         containing the renamed subprogram.
34586
34587         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
34588         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
34589
34590         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
34591         has an Etype that references an E_String_Literal.
34592         (Eval_String_Literal): Avoid assumption that N_String_Literal node
34593         always references an E_String_Literal_Subtype entity. This may not
34594         be true in the future.
34595
34596         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
34597         pragma location.
34598
34599         * sem_res.adb (Resolve): Specialize msg for function name used in proc
34600         call.
34601
34602 2004-01-05  Ed Falis  <falis@gnat.com>
34603
34604         * g-debuti.adb: Replaced direct boolean operator with short-circuit
34605         form.
34606
34607 2004-01-05  Vincent Celier  <celier@gnat.com>
34608
34609         * bld.adb: Minor comment updates
34610         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
34611         of Item_Name).
34612
34613         * make.adb (Gnatmake): Special process for files to compile/check when
34614         -B is specified. Fail when there are only foreign mains in attribute
34615         Main of the project file and -B is not specified. Do not skip bind/link
34616         steps when -B is specified.
34617
34618         * makeusg.adb: Document new switch -B
34619
34620         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
34621
34622         * switch-m.adb: (Scan_Make_Switches): Process -B switch
34623
34624         * vms_data.ads: Add new GNAT PRETTY qualifier
34625         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
34626
34627 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34628
34629         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
34630         case.
34631
34632         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
34633         Set_Identifier_Casing.
34634
34635         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
34636         has size that overflows.
34637
34638 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
34639
34640         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
34641         -gnatwa warning on static condition.
34642
34643 2004-01-05  Doug Rupp  <rupp@gnat.com>
34644
34645         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
34646
34647 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
34648
34649         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
34650         all attributes, including read-only attribute.
34651
34652 2004-01-05  Pascal Obry  <obry@gnat.com>
34653
34654         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
34655         library naming scheme.
34656
34657         * mlib-prj.adb (Build_Library): Generate different names for the static
34658         or dynamic version of the GNAT runtime. This is needed to support the
34659         new shared library naming scheme.
34660         (Process_Binder_File): Add detection of shared library in binder file
34661         based on the new naming scheme.
34662
34663         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
34664         scheme for the shared runtime libraries.
34665
34666         * Makefile.in:
34667         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
34668         scheme.
34669         (install-gnatlib): Do not create symlinks for shared libraries.
34670         (gnatlib-shared-default): Idem.
34671         (gnatlib-shared-dual-win32): New target. Not used for now as the
34672         auto-import feature does not support arrays/records.
34673         (gnatlib-shared-win32): Do not create copy for the shared libraries.
34674         (gnatlib-shared-vms): Fix shared runtime libraries names.
34675
34676         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
34677         dependent runtime shared library name.
34678
34679 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
34680
34681         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
34682         than the object.
34683
34684 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
34685
34686         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
34687         protected objects when allocator has a subtype indication, not a
34688         qualified expression. Note that qualified expressions may have to be
34689         checked when limited aggregates are implemented.
34690
34691         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
34692         pure, emit warning.
34693         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
34694         subprogram is imported, remove warning.
34695
34696 2004-01-05  Geert Bosch  <bosch@gnat.com>
34697
34698         * s-poosiz.adb: Update copyright notice.
34699         (Allocate): Use Task_Lock to protect against concurrent access.
34700         (Deallocate): Likewise.
34701
34702 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
34703
34704         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
34705         comment.
34706
34707 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
34708
34709         * gnat_ug.texi: Force a CVS commit by updating copyright.
34710         * gnat_ug_vxw.texi: Regenerate.
34711         * gnat_ug_wnt.texi: Regenerate.
34712         * gnat_ug_vms.texi: Regenerate.
34713         * gnat_ug_unx.texi: Regenerate.
34714
34715 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
34716
34717         * trans.c: Remove uses of "register" specifier in
34718         declarations of local variables.
34719
34720 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
34721
34722         * stamp-xgnatug: New stamp file.
34723         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
34724         (ada/doctools/xgnatug): Add $(build_exeext).
34725         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
34726         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
34727
34728 2003-12-17  Ed Falis  <falis@gnat.com>
34729
34730         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
34731         eliminate warning.
34732
34733         * a-exextr.adb: Add context clause for
34734         Ada.Exceptions.Last_Chance_Handler.
34735
34736 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
34737
34738         * cstand.adb (Create_Standard): Change the way how the declaration of
34739         the Duration type is created (making it the same way as it is for all
34740         the other standard types).
34741
34742 2003-12-17  Robert Dewar  <dewar@gnat.com>
34743
34744         * s-crtl.ads: Fix header format
34745         Change Pure to Preelaborate
34746
34747 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
34748
34749         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
34750         the expression type only if it is declared in the current unit.
34751
34752         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
34753         are universal and already analyzed, as can occur in constrained
34754         subcomponents that depend on discriminants, when one constraint is a
34755         subtype mark.
34756
34757         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
34758         type Any_Fixed is legal as the argument of a conversion, if only one
34759         fixed-point type is in context.
34760
34761 2003-12-17  GNAT Script  <nobody@gnat.com>
34762
34763         * Make-lang.in: Makefile automatically updated
34764
34765 2003-12-15  Robert Dewar  <dewar@gnat.com>
34766
34767         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
34768         sec stack size.
34769
34770 2003-12-15  Vincent Celier  <celier@gnat.com>
34771
34772         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
34773         (Gnatchop): Do not set failure status when reporting the number of
34774         warnings.
34775
34776 2003-12-15  Doug Rupp  <rupp@gnat.com>
34777
34778         * s-ctrl.ads: New file.
34779
34780         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
34781
34782         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
34783         (GNATBIND_OBJS): Add ada/s-crtl.o.
34784
34785         * Makefile.in [VMS]: Clean up ifeq rules.
34786
34787         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
34788         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
34789         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
34790         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
34791         s-tasdeb.adb: Update copyright.
34792         Import System.CRTL.
34793         Make minor modifications to use System.CRTL declared functions instead
34794         of importing locally.
34795
34796 2003-12-15  GNAT Script  <nobody@gnat.com>
34797
34798         * Make-lang.in: Makefile automatically updated
34799
34800 2003-12-11  Ed Falis  <falis@gnat.com>
34801
34802         * 5zinit.adb: Clean up.
34803
34804         * 5zintman.adb (Notify_Exception): replaced case statement with a call
34805         to __gnat_map_signal, imported from init.c to support
34806         signal -> exception mappings that depend on the vxWorks version.
34807
34808         * init.c:
34809         Created and exported __gnat_map_signal to support signal -> exception
34810         mapping that is dependent on the VxWorks version.
34811         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
34812
34813 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
34814
34815         * 5wosinte.ads: Link with -mthreads switch.
34816
34817 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
34818
34819         * init.c (__gnat_install_handler [NetBSD]): Set
34820         __gnat_handler_installed, as done on all other platforms.
34821         Remove duplicated code.
34822
34823 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
34824
34825         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
34826
34827 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
34828
34829         * sinfo.ads: Fix inconsistent example code in comment.
34830
34831 2003-12-11  Robert Dewar  <dewar@gnat.com>
34832
34833         * a-tiinau.adb: Add a couple of comments
34834
34835         * sem_ch3.adb: Minor reformatting
34836
34837         * sem_prag.adb:
34838         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
34839         Minor reformatting throughout
34840
34841 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
34842
34843         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
34844         bounds of a loop, create a separate block in order to generate proper
34845         cleanup actions to prevent memory leaks.
34846
34847         * sem_res.adb (Resolve_Call): After a call to
34848         Establish_Transient_Scope, the call may be rewritten and relocated, in
34849         which case no further processing is needed.
34850
34851         * sem_util.adb: (Wrong_Type): Refine previous fix.
34852          Fixes ACATS regressions.
34853
34854         PR ada/13353
34855         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
34856         be inlined.
34857
34858 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
34859
34860         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
34861         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
34862         obsolete files.
34863
34864         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
34865         (rts-zfp): Ditto.
34866
34867 2003-12-08  Robert Dewar  <dewar@gnat.com>
34868
34869         * 7sintman.adb: Minor reformatting
34870
34871         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
34872         standard linker options to get standard libraries linked. We now plan
34873         to provide dummy versions of these libraries to match the appropriate
34874         configurable run-time (e.g. if a library is not needed at all, provide
34875         a dummy empty library).
34876
34877         * targparm.ads: Configurable_Run_Time mode no longer affects linker
34878         options (-L parameters and standard libraries). What we plan to do is
34879         to provide dummy libraries where the libraries are not required.
34880
34881         * gnatbind.adb: Minor comment improvement
34882
34883 2003-12-08  Javier Miranda  <miranda@gnat.com>
34884
34885         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
34886         aggregate in the parent. Otherwise constants with limited aggregates
34887         are not supported. Add new formal to pass the component type (Ctype).
34888         It is required to call the corresponding IP subprogram in case of
34889         default initialized components.
34890         (Gen_Assign): In case of default-initialized component, generate a
34891         call to the IP subprogram associated with the component.
34892         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
34893         of aggregate with default initialized components.
34894         (Has_Default_Init_Comps): Improve implementation to recursively check
34895         all the present expressions.
34896
34897         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
34898         to indicate that the initialization call corresponds to a
34899         default-initialized component of an aggregate.
34900         In case of default initialized aggregate with tasks this parameter is
34901         used to generate a null string (this is just a workaround that must be
34902         improved later). In case of discriminants, this parameter is used to
34903         generate a selected component node that gives access to the discriminant
34904         value.
34905
34906         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
34907         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
34908         allocated aggregates with default-initialized components.
34909
34910         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
34911         the box notation is used in positional aggregates.
34912
34913 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
34914
34915         * lib.ads: Fix typo in comment
34916
34917 2003-12-08  Vincent Celier  <celier@gnat.com>
34918
34919         * prj.adb (Project_Empty): New component Unkept_Comments
34920         (Scan): Remove procedure; moved to Prj.Err.
34921
34922         * prj.ads (Project_Data): New Boolean component Unkept_Comments
34923         (Scan): Remove procedure; moved to Prj.Err.
34924
34925         * prj-dect.adb: Manage comments for the different declarations.
34926
34927         * prj-part.adb (With_Record): New component Node
34928         (Parse): New Boolean parameter Store_Comments, defaulted to False.
34929         Set the scanner to return ends of line and comments as tokens, if
34930         Store_Comments is True.
34931         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
34932         comments are associated with these nodes. Store the node IDs in the
34933         With_Records.
34934         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
34935         With_Records.
34936         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
34937         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
34938         current project. Call Tree.Restore afterwards. Set the various nodes
34939         for comment storage (Next_End, End_Of_Line, Previous_Line,
34940         Previous_End).
34941
34942         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
34943         defaulted to False.
34944
34945         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
34946         to False. When Truncated is True, truncate the string, never go to the
34947         next line.
34948         (Write_End_Of_Line_Comment): New procedure
34949         (Print): Process comments for nodes N_With_Clause,
34950         N_Package_Declaration, N_String_Type_Declaration,
34951         N_Attribute_Declaration, N_Typed_Variable_Declaration,
34952         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
34953         Process nodes N_Comment.
34954
34955         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
34956         without comments and there are some comments, set the flag
34957         Unkept_Comments to True.
34958         (Scan): If there are comments, set the flag Unkept_Comments to True and
34959         clear the comments.
34960         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
34961         (Next_End_Nodes: New table
34962         (Comment_Zones_Of): New function
34963         (Scan): New procedure; moved from Prj. Accumulate comments in the
34964         Comments table and set end of line comments, comments after, after end
34965         and before end.
34966         (Add_Comments): New procedure
34967         (Save, Restore, Seset_State): New procedures
34968         (There_Are_Unkept_Comments): New function
34969         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
34970         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
34971         procedures.
34972         (First_Comment_After, First_Comment_After_End): New functions
34973         (First_Comment_Before, First_Comment_Before_End): New functions
34974         (Next_Comment): New function
34975         (End_Of_Line_Comment, Follows_Empty_Line,
34976         Is_Followed_By_Empty_Line): New functions
34977         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
34978         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
34979         (Set_Next_Comment): New procedure
34980         (Default_Project_Node): Associate comment before if the node can store
34981         comments.
34982
34983         * scans.ads (Token_Type): New enumeration value Tok_Comment
34984         (Comment_Id): New global variable
34985
34986         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
34987         defaulted to False.
34988         (Scan): Store position of start of comment. If comments are tokens, set
34989         Comment_Id and set Token to Tok_Comment when scanning a comment.
34990         (Set_Comment_As_Token): New procedure
34991
34992         * sinput-p.adb: Update Copyright notice
34993         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
34994         that no longer exists.
34995
34996 2003-12-08  Javier Miranda  <miranda@gnat.com>
34997
34998         * sem_aggr.adb: Add dependence on Exp_Tss package
34999         Correct typo in comment
35000         (Resolve_Aggregate): In case of array aggregates set the estimated
35001         type of the aggregate before calling resolve. This is needed to know
35002         the name of the corresponding IP in case of limited array aggregates.
35003         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
35004         in case of default initialized array components.
35005
35006         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
35007         types. Required to give support to limited aggregates in generic
35008         formals.
35009
35010 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
35011
35012         * sem_ch3.adb (Check_Initialization): For legality purposes, an
35013         inlined body functions like an instantiation.
35014         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
35015         until bounds are analyzed, to diagnose premature use of type.
35016
35017         * sem_util.adb (Wrong_Type): Improve error message when the type of
35018         the expression is used prematurely.
35019
35020 2003-12-08  GNAT Script  <nobody@gnat.com>
35021
35022         * Make-lang.in: Makefile automatically updated
35023
35024 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
35025
35026         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
35027         they are automatically generated by Make-lang.in and cause nothing but
35028         maintenance troubles.
35029
35030 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
35031
35032         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
35033         version of this unit).
35034
35035 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
35036
35037         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
35038         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
35039         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
35040         the body of System.Interrupt_Management common to several targets.
35041         Update copyright notice when appropriate.
35042
35043         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
35044         constant.
35045
35046         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
35047         to ensure that the kernel fills in the interrupted context structure
35048         before calling a signal handler, which is necessary to be able to
35049         unwind past it. Update the copyright notice.
35050
35051 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
35052
35053         * a-elchha.ads: New file.
35054
35055         * a-elchha.adb: New default last chance handler. Contents taken from
35056         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
35057
35058         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
35059         is moved to a-elchha.adb to provide a target-independent default last
35060         chance handler.
35061
35062         * Makefile.rtl: Add a-elchha.o
35063
35064         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
35065
35066 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
35067
35068         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
35069         declared in an instance, do not inline the call if the instance is not
35070         frozen yet, to prevent order of elaboration problems.
35071
35072         * sem_prag.adb: Add comments for previous fix.
35073
35074 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
35075
35076         * g-table.adb: Use the right variable in Set_Item.
35077         Update copyright notice.
35078
35079 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
35080
35081         * Makefile.in: Remove unused rules.
35082
35083 2003-12-05  Vincent Celier  <celier@gnat.com>
35084
35085         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
35086         -nostdlib. Not needed here after all.
35087
35088 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
35089
35090         PR ada/11724
35091         * adaint.h, adaint.c, g-os_lib.ads:
35092         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
35093         on some platforms (including FreeBSD), it is a 64 bit value.
35094         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
35095
35096 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
35097
35098         * gnatvsn.ads (Library_Version): Now contain only the relevant
35099         version info.
35100         (Verbose_Library_Version): New constant.
35101
35102         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
35103         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
35104         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
35105
35106         * gnatlbr.adb: Clean up: replace Library_Version by
35107         Verbose_Library_Version.
35108
35109         * make.adb, lib-writ.adb, exp_attr.adb:
35110         Clean up: replace Library_Version by Verbose_Library_Version.
35111
35112         * 5lintman.adb: Removed.
35113
35114         * Makefile.in:
35115         Update and simplify computation of LIBRARY_VERSION.
35116         Fix computation of GSMATCH_VERSION.
35117         5lintman.adb is no longer used: replaced by 7sintman.adb.
35118
35119 2003-12-03  Robert Dewar  <dewar@gnat.com>
35120
35121         * exp_ch5.adb:
35122         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
35123         name. Modified to consider small non-bit-packed arrays as troublesome
35124         and in need of component-by-component assigment expansion.
35125
35126 2003-12-03  Vincent Celier  <celier@gnat.com>
35127
35128         * lang-specs.h: Process nostdlib as nostdinc
35129
35130         * back_end.adb: Update Copyright notice
35131         (Scan_Compiler_Arguments): Process -nostdlib directly.
35132
35133 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
35134
35135         * Makefile.in:
35136         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
35137         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
35138         included in HIE_NONE_TARGET_PAIRS.
35139
35140 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
35141
35142         * sem_attr.adb:
35143         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
35144         is legal in an instance, because legality is cheched in the template.
35145
35146         * sem_prag.adb:
35147         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
35148         appplied to an unchecked conversion of a formal parameter.
35149
35150         * sem_warn.adb:
35151         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
35152         variables.
35153
35154 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
35155
35156         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
35157         routines. The second one is new functionality to deal with backtracing
35158         through signal handlers.
35159         (unwind): Split into the two separate subroutines above.
35160         Update the documentation, and deal properly with sizeof (REG) different
35161         from sizeof (void*).
35162
35163 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
35164
35165         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
35166         so that the debugger can reliably access the value of the parameter,
35167         and therefore is able to display the exception name when an exception
35168         breakpoint is reached.
35169
35170 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
35171
35172         * fmap.adb: Fix typo in warning message.
35173
35174         * g-socket.ads, g-socket.adb: Make Free a visible instance of
35175         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
35176
35177 2003-12-01  Vincent Celier  <celier@gnat.com>
35178
35179         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
35180         ther is no Afile.
35181         (Build_Library): Get the switches only if Default_Switches is declared
35182         in package Binder.
35183
35184 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
35185
35186         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
35187         actuals that are indexed components, reanalyze actual to ensure that
35188         packed array references are properly expanded.
35189
35190         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
35191         attempted assignment to a discriminant.
35192
35193 2003-12-01  Robert Dewar  <dewar@gnat.com>
35194
35195         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
35196         reformatting.
35197
35198         * switch-c.adb: Minor reformatting of comments
35199
35200 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
35201
35202         * Makefile.in: Clean ups.
35203
35204 2003-12-01  GNAT Script  <nobody@gnat.com>
35205
35206         * Make-lang.in: Makefile automatically updated
35207
35208 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
35209
35210         * 5wsystem.ads: Disable zero cost exception, not ready yet.
35211
35212 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
35213
35214         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
35215         to force serialization.
35216
35217 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
35218
35219         * g-socket.ads, g-socket.adb:
35220         Clarify documentation of function Stream. Introduce a Free procedure
35221         to release the returned Stream once it becomes unused.
35222
35223         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
35224
35225 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
35226
35227         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
35228         since NT 4 cannot handle timeout values that are too large,
35229         e.g. DWORD'Last - 1.
35230
35231 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
35232
35233         * exp_ch4.adb:
35234         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
35235         in procedure calls and whose expansion must be deferred.
35236
35237         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
35238         is in exp_ch4.
35239
35240         * sem_ch3.adb:
35241         (Build_Derived_Array_Type): Create operator for unconstrained type
35242         if ancestor is unconstrained.
35243
35244 2003-11-26  Vincent Celier  <celier@gnat.com>
35245
35246         * make.adb (Project_Object_Directory): New global variable
35247         (Change_To_Object_Directory): New procedure
35248         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
35249         of Change_Dir directly. Do not change working directory to object
35250         directory of main project after each compilation.
35251         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
35252         directly.
35253         Change to object directory of main project before binding step.
35254         (Initialize): Initialize Project_Object_Directory to No_Project
35255
35256         * mlib-prj.adb:
35257         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
35258         binding a Stand-Alone Library.
35259
35260         * output.adb: Update Copyright notice
35261         (Write_Char): Output buffer when full
35262
35263 2003-11-26  Robert Dewar  <dewar@gnat.com>
35264
35265         * sem_ch13.adb: (Check_Size): Reset size if size is too small
35266
35267         * sem_ch13.ads:
35268         (Check_Size): Fix documentation to include bit-packed array case
35269
35270         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
35271
35272         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
35273
35274         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
35275
35276 2003-11-24  Arnaud Charlet  <charlet@act-europe.fr>
35277
35278         PR ada/13142
35279         * utils.c (init_gigi_decls): Change name of built-in setjmp to
35280         __builtin_setjmp, since this is apparently needed by recent
35281         non Ada changes.
35282
35283 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
35284
35285         * adadecode.c: Only include ctype.h if not IN_GCC.
35286         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
35287
35288 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
35289
35290         * Makefile.in:
35291         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
35292         signals and interrupts.
35293
35294         * 5zintman.ads: New File.
35295
35296         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
35297         add exception signals to the set of unmasked signals.
35298
35299         * 5ztaprop.adb:
35300         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
35301         between signals and interrupts.
35302         Add to Unblocked_Signal_Mask the set of signals that are in
35303         Keep_Unmasked.
35304
35305         * 7sinmaop.adb:
35306         Adding a check to see whether the Interrupt_ID we want to unmask is in
35307         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
35308         reason is that the index type of the Keep_Unmasked array is not always
35309         Interrupt_ID; it may be a subtype of Interrupt_ID.
35310
35311 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
35312
35313         * exp_util.adb:
35314         (Remove_Side_Effects): Condition constantness of object created for a
35315          an unchecked type conversion on the constantness of the expression
35316          to ensure the correct value for 'Constrained when passing components
35317          of view-converted class-wide objects.
35318
35319 2003-11-24  Robert Dewar  <dewar@gnat.com>
35320
35321         * par-load.adb (Load): Improve handling of misspelled and missing units
35322         Removes several cases of compilation abandoned messages
35323
35324         * lib.adb: (Remove_Unit): New procedure
35325
35326         * lib.ads: (Remove_Unit): New procedure
35327
35328         * lib-load.adb: Minor reformatting
35329
35330 2003-11-24  Vincent Celier  <celier@gnat.com>
35331
35332         * make.adb:
35333         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
35334         (Marking_Label): Label to mark processed source files. Incremented for
35335         each executable.
35336         (Gnatmake): Increase Marking_Labet for each executable
35337         (Is_Marked): Compare against marking label
35338         (Mark): Mark with marking label
35339
35340 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
35341
35342         * s-thread.ads:
35343         Move the declaration of the TSD for System.Threads to System.Soft_Links.
35344         Add some comments.
35345
35346         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
35347         (rts-cert): build a single relocatable object for the run-time lib.
35348         Fix perms.
35349
35350 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
35351
35352         * Make-lang.in:
35353         Use gnatls rather than gcc to obtain the location of GNAT RTL for
35354         crosstools build.
35355
35356 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
35357
35358         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
35359         can not use it as before (that is, as a variable) when dumping it into
35360         the tree file. Add a local variable to store the result of this
35361         function and to be used as the string to be written into the tree.
35362
35363         * scn.adb (Initialize_Scanner): Add comments explaining the recent
35364         changes.
35365
35366         * sinput.adb (Source_First, Source_Last): In case of
35367         Internal_Source_File, replace returning attributes of
35368         Internal_Source_Ptr (which is wrong) with returning attributes of
35369         Internal_Source.
35370
35371 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
35372
35373         * sem_ch3.adb:
35374         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
35375         used for implicit concatenation operators.
35376         Code cleanup.
35377
35378         * sem_elab.adb:
35379         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
35380         task bodies that are in the scope of a Suppress pragma.
35381         (Check_A Call): Use the flag to prevent spurious elaboration checks.
35382
35383         * sinfo.ads, sinfo.adb:
35384         New flag No_Elaboration_Check on function/procedure calls, to properly
35385         suppress checks on calls in task bodies that are within a local suppress
35386         pragma.
35387
35388         * exp_ch4.adb:
35389         (Expand_Concatenate_Other): Use the proper integer type for the
35390         expression for the upper bound, to avoid universal_integer computations
35391         when possible.
35392
35393 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
35394
35395         * .cvsignore: Delete.
35396
35397 2003-11-21  Andreas Schwab  <schwab@suse.de>
35398
35399         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
35400
35401 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
35402
35403         * 5wsystem.ads: Enable zero cost exception.
35404
35405 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
35406
35407         * 5ztiitho.adb: Remove an unreferenced variable.
35408
35409 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
35410
35411         * adaint.c: For FreeBSD, use mkstemp.
35412
35413 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
35414
35415         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
35416
35417 2003-11-21  Robert Dewar  <dewar@gnat.com>
35418
35419         * bld.adb: Remove useless USE of gnatvsn
35420
35421         * gnatchop.adb: Minor reformatting
35422         Clean up version handling to be more consistent
35423
35424         * gnatxref.adb: Minor reformatting
35425
35426         * gprcmd.adb: Minor reformatting
35427         Fix output of copyright to be more consistent with other tools
35428
35429 2003-11-21  Vincent Celier  <celier@gnat.com>
35430
35431         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
35432
35433 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
35434
35435         * atree.adb (Initialize): Add initializations for global variables
35436         used in New_Copy_Tree.
35437
35438         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
35439         Internal_Source_File as the actual).
35440         Put the set of statements creating Any_Character before the set of
35441         statements creating Any_Array to have Any_Character fully initialized
35442         when it is used in creating Any_Array.
35443
35444         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
35445         not call Scan in case if the actual is Internal_Source_File
35446         Add 2003 to copyright note.
35447
35448         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
35449         processing Internal_Source_File.
35450
35451         * types.ads: Add the constant Internal_Source_File representing the
35452         source buffer for artificial source-code-like strings created within
35453         the compiler (the definition of Source_File_Index is changed).
35454
35455 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
35456
35457         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
35458         56system.ads: New file, FreeBSD version.
35459
35460 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
35461
35462         * Make-lang.in (ada.extraclean): Delete.
35463
35464 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
35465
35466         * gnatmem.adb: Clean up verbose output.
35467
35468         * gprcmd.adb: Change copyright to FSF.
35469
35470 2003-11-19  Vincent Celier  <celier@gnat.com>
35471
35472         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
35473         and Version (ignored).
35474
35475         * symbols.ads: (Policy): New type
35476         (Initialize): New parameter Reference, Symbol_Policy and
35477         Library_Version.
35478         Remove parameter Force.
35479         Minor reformatting.
35480
35481         * snames.ads, snames.adbadb: New standard names
35482         Library_Reference_Symbol_File and Library_Symbol_Policy
35483
35484         * mlib-prj.adb:
35485         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
35486         project.
35487
35488         * mlib-tgt.adb:
35489         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
35490
35491         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
35492
35493         * prj.adb: (Project_Empty): New component Symbol_Data
35494
35495         * prj.ads: (Policy, Symbol_Record): New types
35496         (Project_Data): New component Symbol_Data
35497
35498         * prj-attr.adb:
35499         New attributes Library_Symbol_File, Library_Symbol_Policy and
35500         Library_Reference_Symbol_File.
35501
35502         * prj-nmsc.adb:
35503         (Ada_Check): When project is a Stand-Alone library project, process
35504         attribute Library_Symbol_File, Library_Symbol_Policy and
35505         Library_Reference_Symbol_File.
35506
35507         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
35508         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
35509         5sml-tgt.adb (Build_Dynamic_Library): New parameter
35510         Symbol_Data (ignored).
35511
35512         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
35513         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
35514         functions Option_File_Name and Version_String. Set new options of
35515         gnatsym related to symbol file, symbol policy and reference symbol
35516         file.
35517
35518         * 5vsymbol.adb:
35519         Extensive modifications to take into account the reference symbol file,
35520         the symbol policy, the library version and to put in the symbol file the
35521         minor and major IDs.
35522
35523         * bld.adb (Process_Declarative_Items): Put second argument of
35524         gprcmd to_absolute between single quotes, to avoid problems with
35525         Windows.
35526
35527         * bld-io.adb: Update Copyright notice.
35528         (Flush): Remove last character of a line, if it is a back slash, to
35529         avoid make problems.
35530
35531         * gnatsym.adb:
35532         Implement new scheme with reference symbol file and symbol policy.
35533
35534         * g-os_lib.ads: (Is_Directory): Clarify comment
35535
35536 2003-11-19  Robert Dewar  <dewar@gnat.com>
35537
35538         * atree.adb: Move New_Copy_Tree global variables to head of package
35539
35540         * errout.adb: Minor reformatting
35541
35542 2003-11-19  Javier Miranda  <miranda@gnat.com>
35543
35544         * sem_ch4.adb: (Diagnose_Call): Improve error message.
35545         Add reference to Ada0Y (AI-50217)
35546
35547         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
35548         sem_util.adb: Add reference to AI-50217
35549
35550         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
35551
35552         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
35553
35554         * sem_aggr.adb: Complete documentation of AI-287 changes
35555
35556         * par-ch4.adb: Document previous changes.
35557
35558         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
35559         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
35560         Ada0Y (AI-50217)
35561
35562         * exp_aggr.adb: Add references to AI-287 in previous changes
35563
35564 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
35565
35566         * exp_ch6.adb:
35567         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
35568         in the rewriting is the result of an inlined call.
35569
35570         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
35571         parameter is a type conversion, use original node to construct the
35572         post-call assignment, because expression may have been rewritten, e.g.
35573         if it is a packed array.
35574
35575         * sem_attr.adb:
35576         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
35577         body, just as it is in an instance.
35578         Categorization routines
35579
35580         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
35581         Instantiate_Object): Set proper sloc reference for message on missing
35582         actual.
35583
35584 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
35585
35586         * Makefile.in: Add FreeBSD libgnat pairs.
35587
35588         * usage.adb: Fix typo in usage message.
35589
35590 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
35591
35592         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
35593         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
35594         pragma Thread_Body.
35595         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
35596
35597         * s-thread.adb: This file is now a dummy implementation of
35598         System.Thread.
35599
35600 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
35601
35602         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
35603
35604 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
35605
35606         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
35607         instanciation references in the parent type description.
35608
35609 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35610
35611         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
35612
35613         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
35614         TYPE_PRECISION directly from esize.
35615
35616 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
35617
35618         * cstreams.c:
35619         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
35620
35621         * init.c: Initialization routines for FreeBSD
35622
35623         * link.c: Link info for FreeBSD
35624
35625         * sysdep.c: Add the case of FreeBSD
35626
35627 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
35628
35629         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
35630         already called in System.Threads.
35631
35632         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
35633         environment task, as it has been moved to System.Threads.Initialization.
35634
35635 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
35636
35637         * adaint.c (__gnatlib_install_locks): Only reference
35638         __gnat_install_locks on VMS, since other platforms can avoid using
35639         --enable-threads=gnat
35640
35641 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35642
35643         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
35644
35645         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
35646         TYPE_PACKED_ARRAY_TYPE_P.
35647         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
35648
35649         Part of PR ada/12806
35650         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
35651         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
35652
35653 2003-11-17  Vincent Celier  <celier@gnat.com>
35654
35655         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
35656         to False.
35657         Do not set exit status to Failure when Warning is True.
35658         (Gnatchop): Make errors "no compilation units found" and
35659         "no source files written" warnings only.
35660
35661         * make.adb (Gnatmake): When using a project file, set
35662         Look_In_Primary_Dir to False.
35663         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
35664         and Local_Configuration_Pragmas in the project where they are declared
35665         not an extending project which might have inherited them.
35666
35667         * osint.adb (Locate_File): If Name is already an absolute path, do not
35668         look for a directory.
35669
35670         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
35671         -gnats (Check_Syntax) is used, issue only a warning, not an error.
35672
35673         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
35674         in objects of type Variable_Value.
35675
35676         * prj.ads: (Variable_Value): New component Project
35677
35678         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
35679         is in a project extended by Project.
35680
35681         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
35682         Project of Variable_Values to this new parameter value.
35683         (Expression): Set component Project of Variable_Values.
35684         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
35685         Set the component Project in array elements.
35686
35687 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
35688
35689         * errout.adb: (Initialize): Add initialization for error nodes.
35690
35691         * sem_ch12.adb (Initialize): Add missing initializations for
35692         Exchanged_Views and Hidden_Entities.
35693
35694 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
35695
35696         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
35697         already instantiated tree for use in subsequent inlining.
35698         (Analyze_Associations, Instantiate_Formal_Subprogram,
35699         Instantiate_Object): improve error message for mismatch in
35700         instantiations.
35701
35702         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
35703         instantiations of subprograms declared in instances.
35704
35705 2003-11-17  Javier Miranda  <miranda@gnat.com>
35706
35707         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
35708         executed only under the Extensions_Allowed flag.
35709
35710 2003-11-17  Robert Dewar  <dewar@gnat.com>
35711
35712         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
35713         zeroes suppressed.
35714         (Address_Image): Fix bug of returning 0x instead of 0x0
35715         Minor reformatting (function specs).
35716
35717         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
35718         (missed case of 33-63)
35719
35720         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
35721
35722         * s-thread.adb: Add comments for pragma Restriction
35723
35724         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
35725         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
35726
35727 2003-11-17  Ed Falis  <falis@gnat.com>
35728
35729         * s-thread.adb: Added No_Tasking restriction for this implementation.
35730
35731 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
35732
35733         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
35734         instanciation references in the parent type description.
35735
35736 2003-11-17  GNAT Script  <nobody@gnat.com>
35737
35738         * Make-lang.in: Makefile automatically updated
35739
35740 2003-11-16  Jason Merrill  <jason@redhat.com>
35741
35742         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
35743         and TAGS files that include them for each front end.
35744
35745 2003-11-14  Andreas Jaeger  <aj@suse.de>
35746
35747         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
35748         is the canonical version.
35749         * misc.c (gnat_handle_option): Likewise.
35750
35751         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
35752
35753         * 5nsystem.ads: New file for x86_64-linux-gnu.
35754
35755 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
35756
35757         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
35758
35759         * comperr.adb: Fix logic in previous change.
35760
35761 2003-11-13  Vincent Celier  <celier@gnat.com>
35762
35763         * 5bml-tgt.adb (Build_Dynamic_Library): Use
35764         Osint.Include_Dir_Default_Prefix instead of
35765         Sdefault.Include_Dir_Default_Name.
35766
35767         * gnatlbr.adb: Update Copyright notice
35768         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
35769         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
35770         instead of Sdefault.Object_Dir_Default_Name
35771
35772         * gnatlink.adb:
35773         (Process_Binder_File): Never suppress the option following -Xlinker
35774
35775         * mdll-utl.adb:
35776         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
35777         Sdefault.Object_Dir_Default_Name.
35778
35779         * osint.ads, osint.adb:
35780         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
35781         Minor reformatting.
35782
35783         * vms_conv.ads: Minor reformating
35784         Remove GNAT STANDARD and GNAT PSTA
35785
35786         * vms_conv.adb:
35787         Allow GNAT MAKE to have several files on the command line.
35788         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
35789         Sdefault.Object_Dir_Default_Name.
35790         Minor Reformating
35791         Remove data for GNAT STANDARD
35792
35793         * vms_data.ads:
35794         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
35795         Remove data for GNAT STANDARD
35796         Remove options and documentation for -gnatwb/-gnatwB: these warning
35797         options no longer exist.
35798
35799 2003-11-13  Ed Falis  <falis@gnat.com>
35800
35801         * 5zthrini.adb: (Init_RTS): Made visible
35802
35803         * 5zthrini.adb:
35804         (Register): Removed unnecessary call to taskVarGet that checked whether
35805          an ATSD was already set as a task var for the argument thread.
35806
35807         * s-thread.adb:
35808         Updated comment to reflect that this is a VxWorks version
35809         Added context clause for System.Threads.Initialization
35810         Added call to System.Threads.Initialization.Init_RTS
35811
35812 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
35813
35814         * 5zthrini.adb:
35815         (Init_RTS): New procedure, for the initialization of the run-time lib.
35816
35817         * s-thread.adb:
35818         Remove dependancy on System.Init, so that this file can be used in the
35819         AE653 sequential run-time lib.
35820
35821 2003-11-13  Robert Dewar  <dewar@gnat.com>
35822
35823         * bindgen.adb: Minor reformatting
35824
35825 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
35826
35827         * checks.adb:
35828         (Apply_Discriminant_Check): Do no apply check if target type is derived
35829         from source type with no applicable constraint.
35830
35831         * lib-writ.adb:
35832         (Ensure_System_Dependency): Do not apply the style checks that may have
35833         been specified for the main unit.
35834
35835         * sem_ch8.adb:
35836         (Find_Selected_Component): Further improvement in error message, with
35837         RM reference.
35838
35839         * sem_res.adb:
35840         (Resolve): Handle properly the case of an illegal overloaded protected
35841         procedure.
35842
35843 2003-11-13  Javier Miranda  <miranda@gnat.com>
35844
35845         * exp_aggr.adb:
35846         (Has_Default_Init_Comps): New function to check the presence of
35847         default initialization in an aggregate.
35848         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
35849         extension aggregate of a limited record. In addition, a new formal
35850         was added to do not initialize the record controller (if any) during
35851         this recursive expansion of ancestors.
35852         (Init_Controller): Add support for limited record components.
35853         (Expand_Record_Aggregate): In case of default initialized components
35854         convert the aggregate into a set of assignments.
35855
35856         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
35857         describing the new syntax.
35858         Nothing else needed to be done because this subprogram delegates part of
35859         its work to P_Precord_Or_Array_Component_Association.
35860         (P_Record_Or_Array_Component_Association): Give support to the new
35861         syntax for default initialization of components.
35862
35863         * sem_aggr.adb:
35864         (Resolve_Aggregate): Relax the strictness of the frontend in case of
35865         limited aggregates.
35866         (Resolve_Record_Aggregate): Give support to default initialized
35867         components.
35868         (Get_Value): In case of default initialized components, duplicate
35869         the corresponding default expression (from the record type
35870         declaration). In case of default initialization in the *others*
35871         choice, do not check that all components have the same type.
35872         (Resolve_Extension_Aggregate): Give support to limited extension
35873         aggregates.
35874
35875         * sem_ch3.adb:
35876         (Check_Initialization): Relax the strictness of the front-end in case
35877         of aggregate and extension aggregates. This test is now done in
35878         Get_Value in a per-component manner.
35879
35880         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
35881         expression corresponds to a limited aggregate. This test is now done
35882         in Get_Value.
35883
35884         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
35885         Box_Present flag.
35886
35887         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
35888         present in an N_Component_Association node
35889
35890 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
35891
35892         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
35893         type-conformant entry only if they are homographs.
35894
35895 2003-11-13  GNAT Script  <nobody@gnat.com>
35896
35897         * Make-lang.in: Makefile automatically updated
35898
35899 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
35900
35901         * adadecode.c: Use <> form of include for ctype.h.
35902         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
35903
35904 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
35905
35906         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
35907         Works around PR middle-end/6552.
35908
35909 2003-11-10  Ed Falis  <falis@gnat.com>
35910
35911         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
35912
35913         * 5zinit.adb: (Install_Handler): Moved back to spec
35914         (Install_Signal_Handlers): Deleted
35915
35916         * 5zthrini.adb: Added context clause for System.Storage_Elements
35917         (Register): Only handles creation of taskVar; initialization moved to
35918         Thread_Body_Enter.
35919         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
35920         Added declaration of environment task secondary stack and
35921         initialization.
35922
35923         * s-thread.adb: Implement bodies for thread body processing
35924
35925         * s-thread.ads:
35926         Added comment identifying supported targets for pragma Thread_Body.
35927
35928 2003-11-10  Pascal Obry  <obry@gnat.com>
35929
35930         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
35931         GNAT_MAX_PATH_LEN.
35932
35933         * s-fileio.adb:
35934         (Open): Properly check for string length before copying into the buffer.
35935         Raises Name_Error if buffer is too small. Note that this was a potential
35936         buffer overflow.
35937
35938 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
35939
35940         * bindgen.adb, comperr.adb: Code clean ups.
35941         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
35942
35943 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
35944
35945         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
35946
35947 2003-11-10  Vincent Celier  <celier@gnat.com>
35948
35949         * gprcmd.adb:
35950         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
35951         installation.
35952
35953         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
35954
35955         * prj.adb: (Project_Empty): Add new boolean component Virtual
35956
35957         * prj.ads: (Virtual_Prefix): New constant string
35958         (Project_Data): New boolean component Virtual
35959
35960         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
35961         a library project is extended by a virtual extending project.
35962
35963         * prj-part.adb:
35964         Modifications throughout to implement extending-all project, including:
35965         (Virtual_Hash, Processed_Hash): New hash tables
35966         (Create_Virtual_Extending_Project): New procedure
35967         (Look_For_Virtual_Projects_For): New procedure
35968
35969         * prj-proc.adb:
35970         (Process): After checking the projects, if main project is an
35971         extending-all project, set the object directory of all virtual extending
35972         project to the object directory of the main project.
35973         Adjust error message when a virtual extending project has the same
35974         object directory as an project being extended.
35975         (Recursive_Process): If name starts with the virtual prefix, set Virtual
35976         to True in the project data.
35977
35978         * prj-tree.adb:
35979         (Default_Project_Node): Add new boolean component Extending_All
35980         (Is_Extending_All): New function
35981         (Set_Is_Extending_All): New procedure
35982
35983         * prj-tree.ads: (Is_Extending_All): New function
35984         (Set_Is_Extending_All): New procedure
35985         (Project_Node_Record): New boolean component Extending_All
35986
35987         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
35988
35989         * vms_data.ads:
35990         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
35991
35992         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
35993         "gprcmd prefix" to define it.
35994
35995 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
35996
35997         * einfo.ads: Fix a typo and remove an extraneous word in comments.
35998
35999         * lib-load.adb:
36000         (Create_Dummy_Package_Unit): Set the scope of the entity for the
36001         created dummy package to Standard_Standard, not to itself, to
36002         defend other parts of the front-end against encoutering a cycle in
36003         the scope chain.
36004
36005         * sem_ch10.adb:
36006         (Analyze_With_Clause): When setting the entities for the successive
36007         N_Expanded_Names that constitute the name of a child unit, do not
36008         attempt to go further than Standard_Standard in the chain of scopes.
36009         This case arises from the placeholder units created by
36010         Create_Dummy_Package_Unit in the case of a with_clause for a
36011         nonexistent child unit.
36012
36013 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
36014
36015         * exp_ch6.adb:
36016         (Expand_Thread_Body): Place subprogram on scope stack, so that new
36017         declarations are given the proper scope.
36018
36019         * sem_ch13.adb:
36020         (Check_Expr_Constants): Reject an expression that contains a constant
36021         created during expansion, and that appears after the object to which
36022         the address clause applies.
36023
36024         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
36025         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
36026         that uses 'Range of a function call with controlled components, so
36027         that the function result can be finalized before starting the loop.
36028
36029         * sem_ch8.adb:
36030         (Find_Selected_Component): Improve error message when prefix is
36031         an implicit dereference of an incomplete type.
36032
36033 2003-11-10  Robert Dewar  <dewar@gnat.com>
36034
36035         * opt.ads: New Print_Standard flag for -gnatS switch
36036
36037         * sem_ch13.adb: Remove some additional checks for unaligned arrays
36038
36039         * cstand.adb (Create_Standard): Print out package standard if -gnatS
36040         switch set
36041
36042         * debug.adb: Update doc for -gnatds to discuss relationship with new
36043         -gnatS flag
36044
36045         * sinfo.adb: Add new field Entity_Or_Associated_Node
36046
36047         * sinfo.ads: Add new field Entity_Or_Associated_Node
36048         Update documentation for Associated_Node and Entity fields to clarify
36049         relationship and usage.
36050
36051         * sprint.adb:
36052         (Write_Id): Properly process Associated_Node field in generic template
36053
36054         * switch-c.adb:
36055         Recognize new -gnatS switch for printing package Standard
36056         This replaces gnatpsta
36057
36058         * usage.adb:
36059         Add line for  new -gnatS switch for printing package Standard
36060         This replaces gnatpsta
36061
36062 2003-11-10  Andreas Jaeger  <aj@suse.de>
36063
36064         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
36065         integer.
36066
36067 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
36068
36069         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
36070         by gnat1.
36071
36072 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
36073
36074         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
36075         no longer needed.
36076
36077         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
36078
36079         * sysdep.c: Add handling of cygwin.
36080
36081 2003-11-10  GNAT Script  <nobody@gnat.com>
36082
36083         * Make-lang.in: Makefile automatically updated
36084
36085 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
36086
36087         PR 12950
36088         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
36089         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
36090         Replace GNAT_ROOT by GCC_ROOT.
36091
36092         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
36093
36094 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
36095
36096         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
36097         and update for changed meaning of GET_MODE_BITSIZE.
36098
36099 2003-11-04  Doug Rupp  <rupp@gnat.com>
36100
36101         * sysdep.c: Problem discovered during IA64 VMS port.
36102         [VMS] #include <unixio.h> to get proper prototypes.
36103
36104         * adaint.c:
36105         Issues discovered/problems fixed during IA64 VMS port.
36106         [VMS] #define _POSIX_EXIT for proper semantics.
36107         [VMS] #include <unixio.h> for proper prototypes.
36108         [VMS] (fork): #define IA64 version.
36109         (__gnat_os_exit): Remove unnecessary VMS specific code.
36110
36111 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36112
36113         Part of PR ada/12806
36114         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
36115         tree, not integer.
36116
36117         * decl.c:
36118         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
36119         not integer.
36120
36121         * targtyps.c, decl.c, misc.c,
36122         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
36123         routines to work around change in FP sizing semantics in GCC.
36124
36125         * utils.c:
36126         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
36127
36128         * gigi.h: (enumerate_modes): New function.
36129
36130         * Make-lang.in: (ada/misc.o): Add real.h.
36131
36132         * misc.c: (enumerate_modes): New function.
36133
36134 2003-11-04  Robert Dewar  <dewar@gnat.com>
36135
36136         * 3vtrasym.adb: Minor reformatting
36137         Use terminology encoded/decoded name, rather than C++ specific notion
36138         of mangling (this is the terminology used throughout GNAT).
36139
36140         * einfo.h: Regenerated
36141
36142         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
36143
36144         * exp_ch6.adb:
36145         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
36146
36147         * par-prag.adb: Add dummy entry for Thread_Body pragma
36148
36149         * rtsfind.ads:
36150         Add entries for System.Threads entities for thread body processing
36151
36152         * sem_attr.adb:
36153         (Analyze_Pragma, Access attributes): Check these are not applied to a
36154         thread body, since this is not permitted
36155
36156         * sem_prag.adb: Add processing for Thread_Body pragma.
36157         Minor comment fix.
36158
36159         * sem_res.adb:
36160         (Resolve_Call): Check for incorrect attempt to call a thread body
36161          procedure with a direct call.
36162
36163         * snames.ads, snames.adb: Add entry for Thread_Body pragma
36164         Add names associated with thread body expansion
36165
36166         * snames.h: Add entry for Thread_Body pragma
36167
36168         * s-thread.adb: Add entries for thread body processing
36169         These are dummy bodies so far
36170
36171         * s-thread.ads: Add documentation on thread body handling.
36172         Add entries for thread body processing.
36173
36174 2003-11-04  Javier Miranda  <miranda@gnat.com>
36175
36176         * sem_ch10.adb:
36177         (Build_Limited_Views): Return after posting an error in case of limited
36178         with_clause on subprograms, generics, instances or generic renamings
36179         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
36180         on subprograms, generics, instances or generic renamings
36181
36182 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
36183
36184         * raise.c (setup_to_install): Correct mistake in last revision; two
36185         arguments out of order.
36186
36187         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
36188         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
36189         notice, missed in previous change.
36190         Remove trailing blanks and other style errors introduced in previous
36191         change.
36192
36193 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
36194
36195         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
36196         rid of the wrapper for a LJM type, ensuring we don't do that if the
36197         field is addressable.  This avoids potential low level type view
36198         mismatches later on, for instance in a by-reference argument passing
36199         process.
36200
36201 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36202
36203         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
36204         aligned at byte boundary.
36205
36206 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
36207
36208         * decl.c (components_to_record): Do not delete the empty variants from
36209         the end of the union type.
36210
36211 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
36212
36213         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
36214         operation for a derived type, an explicit declaration may use a local
36215         subtype of Boolean.
36216
36217 2003-11-04  Vincent Celier  <celier@gnat.com>
36218
36219         * make.adb (Gnatmake): Allow main sources on the command line with a
36220         library project when it is only for compilation (no binding or
36221         linking).
36222
36223 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
36224
36225         * Makefile.in: Remove many duplicate variables.
36226
36227 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
36228
36229         * Make-lang.in (dvi): Move targets to $(docobjdir).
36230         (gnat_ug_vms.dvi): Simplify rule and adjust target.
36231         (gnat_ug_wnt.dvi): Likewise.
36232         (gnat_ug_unx.dvi): Likewise.
36233         (gnat_ug_vxw.dvi): Likewise.
36234         (gnat_rm.dvi): Likewise.
36235         (gnat-style.dvi): Likewise.
36236
36237 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
36238
36239         * gigi.h: Missed commit from update for C90.
36240
36241 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
36242
36243         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
36244
36245 2003-10-31  Andreas Schwab  <schwab@suse.de>
36246
36247         * raise.c (get_action_description_for): Fix typo in last change.
36248
36249 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
36250
36251         PR ada/12761
36252         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
36253         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
36254
36255 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
36256
36257         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
36258         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
36259         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
36260         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
36261         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
36262
36263 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
36264
36265         * 3vtrasym.adb:
36266         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
36267         numbers when symbol name is too long.
36268
36269 2003-10-30  Ed Falis  <falis@gnat.com>
36270
36271         * g-signal.ads, g-signal.adb: New files
36272
36273         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
36274
36275         * Makefile.rtl: Introduce GNAT.Signals
36276
36277 2003-10-30  Robert Dewar  <dewar@gnat.com>
36278
36279         * freeze.adb: Minor reformatting
36280
36281         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
36282
36283         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
36284         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
36285         New handling of Id_Check parameter to improve recognition of keywords
36286         used as identifiers.
36287         Update copyright notice to include 2003
36288
36289 2003-10-29  Robert Dewar  <dewar@gnat.com>
36290
36291         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
36292         sem_ch10.adb: Minor reformatting
36293
36294         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
36295         (Expand_Assign_Record): Test right hand side for bit unaligned as well
36296
36297 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
36298
36299         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
36300         Support for TBK$SYMBOLIZE-based symbolic traceback.
36301
36302 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
36303
36304         * exp_disp.adb:
36305         Revert previous change, that did not work well when pragma No_Run_Time
36306         was used in conjunction with a run-time other than ZFP.
36307
36308 2003-10-29  Vincent Celier  <celier@gnat.com>
36309
36310         * make.adb:
36311         (Gnatmake): When there are no Ada mains in attribute Main, disable the
36312          bind and link steps only is switch -z is not used.
36313
36314 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
36315
36316         * Makefile.generic: Remove duplicated setting of CC.
36317
36318         * Makefile.prolog: Set CC to gcc by default, to override make's
36319         default (cc).
36320
36321         * einfo.h: Regenerated.
36322
36323 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
36324
36325         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
36326         current body, after compiling subunit.
36327
36328         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
36329         when in deleted code, because gigi needs properly ordered freeze
36330         actions to annotate types.
36331
36332         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
36333         prevent the premature freezing of record type that contains
36334         subcomponents with a private type that does not yet have a completion.
36335
36336 2003-10-29  Javier Miranda  <miranda@gnat.com>
36337
36338         * sem_ch12.adb:
36339         (Analyze_Package_Instantiation): Check that instances can not be used in
36340         limited with_clauses.
36341
36342         * sem_ch8.adb:
36343         (Analyze_Package_Renaming): Check that limited withed packages cannot
36344         be renamed. Improve text on error messages related to limited
36345         with_clauses.
36346
36347         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
36348
36349         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
36350         Update copyright notice.
36351
36352         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
36353         (Install_Limited_Context_Clauses): New subprogram that isolates all the
36354         checks required for limited context_clauses and installs the limited
36355         view.
36356         (Install_Limited_Withed_Unit): Complete its documentation.
36357         (Analyze_Context): Check that limited with_clauses are only allowed in
36358         package specs.
36359         (Install_Context): Call Install_Limited_Context_Clauses after the
36360         parents have been installed.
36361         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
36362         package as 'From_With_Type'; this mark indicates that the limited view
36363         is installed. Used to check bad usages of limited with_clauses.
36364         (Build_Limited_Views): Do not add shadow entities to the scope's list
36365         of entities. Do not add real entities to the Non_Limited_Views chain.
36366         Improve error notification.
36367         (Remove_Context_Clauses): Remove context clauses in two phases:
36368         limited views first and regular views later (to maintain the
36369         stack model).
36370         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
36371         its visible entities.
36372
36373 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
36374
36375         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
36376         with any type that Is_Fixed_Point_Type.
36377
36378         * sinfo.ads: Fix documentation for Associated_Node attribute.
36379
36380 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
36381
36382         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
36383         both '-gnatc' and '-gnatt' are specified.
36384
36385         * atree.adb (Initialize): Add initialization for Node_Count (set to
36386         zero).
36387
36388 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36389
36390         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
36391         do not consider as Pure.
36392
36393         Part of implementation of function-at-a-time:
36394
36395         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
36396         (tree_transform): Add new argument to build_component_ref.
36397         (tree_transform, case N_Assignment_Statement): Make and return an
36398         EXPR_STMT.
36399         (tree_transform): If result IS_STMT, set flags and return it.
36400         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
36401
36402         * utils2.c (build_simple_component_ref, build_component_ref): Add new
36403         arg, NO_FOLD_P.
36404         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
36405         (build_allocator): Likewise.
36406
36407         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
36408         Add new arg to build_component_ref.
36409         (maybe_unconstrained_array, unchecked_convert): Likewise.
36410
36411         * ada-tree.def (EXPR_STMT): New code.
36412
36413         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
36414
36415         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
36416         build_component_ref calls.
36417
36418         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
36419
36420         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
36421         (build_component_ref): Add new argument, NO_FOLD_P.
36422
36423 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
36424
36425         * Makefile.generic: Add missing substitution on object_deps handling.
36426
36427         PR ada/5909
36428         * Make-lang.in (check-ada): Enable ACATS test suite.
36429
36430 2003-10-27  Robert Dewar  <dewar@gnat.com>
36431
36432         * exp_ch3.adb:
36433         (Freeze_Array_Type): We do not need an initialization routine for types
36434         derived from String or Wide_String. They should be treated the same
36435         as String and Wide_String themselves. This caused problems with the
36436         use of Initialize_Scalars.
36437
36438         * exp_ch5.adb:
36439         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
36440         composites. This allows use of component clauses that are not byte
36441         aligned.
36442
36443         * sem_prag.adb:
36444         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
36445         is an attempt to pack an array of atomic objects.
36446
36447         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
36448
36449 2003-10-27  Pascal Obry  <obry@gnat.com>
36450
36451         * g-dirope.adb:
36452         (Basename): Check for drive letters in a pathname only on DOS based OS.
36453
36454 2003-10-27  Vincent Celier  <celier@gnat.com>
36455
36456         * make.adb:
36457         (Gnatmake): When unable to change dir to the object dir, display the
36458         content of the parent dir of the obj dir, to try to understand why this
36459         happens.
36460
36461 2003-10-27  GNAT Script  <nobody@gnat.com>
36462
36463         * Make-lang.in: Makefile automatically updated
36464
36465 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
36466
36467         * sem_ch12.adb:
36468         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
36469         should not be done in Save/Restore_Scope_Stack, because it is performed
36470         locally.
36471
36472         * sem_ch8.adb:
36473         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
36474         whether use clauses should be removed/restored.
36475
36476         * sem_ch8.ads:
36477         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
36478         whether use clauses should be removed/restored.
36479
36480 2003-10-26  Andreas Jaeger  <aj@suse.de>
36481
36482         * Makefile.in: Remove duplicated lines.
36483
36484 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
36485
36486         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
36487         minimize the differences with ACT tree.
36488
36489         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
36490         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
36491         Gnatvsn.Gnat_Static_Version_String to reduce differences between
36492         ACT and FSF trees.
36493
36494 2003-10-24  Pascal Obry  <obry@gnat.com>
36495
36496         PR ada/12014
36497         * adadecode.c (ostrcpy): New function.
36498         (__gnat_decode): Use ostrcpy of strcpy.
36499         (has_prefix): Set first parameter a const.
36500         (has_suffix): Set first parameter a const.
36501         Update copyright notice. Fix source name in header.
36502         Removes a trailing space.
36503
36504 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
36505
36506         * exp_disp.adb:
36507         Remove the test against being in No_Run_Time_Mode before generating a
36508         call to Register_Tag. It is redundant with the test against the
36509         availability of the function Register_Tag.
36510
36511 2003-10-24  Vincent Celier  <celier@gnat.com>
36512
36513         * g-catiio.adb: (Month_Name): Correct spelling of February
36514
36515         * make.adb: (Mains): New package
36516         (Initialize): Call Mains.Delete
36517         (Gnatmake): Check that each main on the command line is a source of a
36518         project file and, if there are several mains, each of them is a source
36519         of the same project file.
36520         (Gnatmake): When a foreign language is specified in attribute Languages,
36521         no main is specified on the command line and attribute Mains is not
36522         empty, only build the Ada main. If there is no Ada main, just compile
36523         the Ada sources and their closure.
36524         (Gnatmake): If a main is specified on the command line with directory
36525         information, check that the source exists and, if it does, that the path
36526         is the actual path of a source of a project.
36527
36528         * prj-env.adb:
36529         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
36530         Full_Path is True, return the full path instead of the simple file name.
36531         (Project_Of): New function
36532
36533         * prj-env.ads:
36534         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
36535         defaulted to False.
36536         (Project_Of): New function
36537
36538 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
36539
36540         * Makefile.generic:
36541         Ensure objects of main project are always checked and rebuilt if needed.
36542         Set CC to gcc by default.
36543         Prepare new handling of link by creating a global archive (not activated
36544         yet).
36545
36546         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
36547         stringt.h: Update copyright notice. Remove trailing blanks.
36548         Fix source name in header.
36549
36550 2003-10-24  Robert Dewar  <dewar@gnat.com>
36551
36552         * sem_ch12.adb: Minor reformatting
36553
36554         * sem_ch3.adb:
36555         Minor reformatting (including new function return style throughout)
36556
36557         * sem_ch3.ads:
36558         Minor reformatting (including new function return style throughout)
36559
36560 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
36561
36562         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
36563         stringt.h: Update copyright notice. Remove trailing blanks.
36564         Fix source name in header.
36565
36566 2003-10-24  GNAT Script  <nobody@gnat.com>
36567
36568         * Make-lang.in: Makefile automatically updated
36569
36570 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
36571
36572         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
36573         stringt.h: Convert to ISO C90 declarations and definitions.
36574
36575 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
36576
36577         PR ada/11978
36578         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
36579         External_Tag attribute definition clauses.
36580
36581 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
36582
36583         PR ada/7613
36584         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
36585         child unit, generate a fully qualified name to avoid spurious errors
36586         when the context contains renamings of different child units with
36587         the same simple name.
36588
36589         * exp_dbug.ads: Add documentation on name qualification for renamings
36590         of child units.
36591
36592 2003-10-23  Robert Dewar  <dewar@gnat.com>
36593
36594         * g-regpat.ads, g-regpat.adb: Minor reformatting
36595
36596 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
36597
36598         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
36599
36600 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36601
36602         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
36603         Machine call.
36604
36605         * urealp.h: (Machine): Update to proper definition.
36606
36607 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
36608
36609         * init.c, adaint.c: Minor reformatting.
36610
36611 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
36612
36613         * adaint.c (w32_epoch_offset): Define static const at file level.
36614         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
36615         rather than t_create, t_access in call to GetFileTime. Use union
36616         to convert between FILETIME and  unsigned long long.
36617         (__gnat_file_time_name): Test for invalid file handle.
36618         (__gnat_set_filetime_name): Support win32 targets using
36619         w32api SetFileTime.
36620
36621 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
36622
36623         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
36624
36625         * ctrl_c.c (__gnat_int_handler): Remove declaration.
36626
36627         * decl.c (creat_concat_name):  Const-ify prefix.
36628
36629         * adaint.c: Include ctype.h if __MINGW32__.
36630         (__gnat_readlink): Mark arguments as possibly unused.
36631         (__gnat_symlink): Likewise.
36632         (__gnat_is_symbolic_link): Likewise.
36633         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
36634         declaration
36635         (__gnat_file_time_name): Don't declare struct stat statbuf when
36636         not needed.
36637         (__gnat_is_absolute_path): Add parenthesis around condition of
36638         'if' statement to avoid warning.
36639         (__gnat_plist_init): Specify void as parameter.
36640         (plist_enter): Likewise.
36641         (plist_leave): Likewise.
36642         (remove_handle): Make static. Initialize prev.
36643
36644 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
36645
36646         PR ada/10110
36647         * Makefile.in: Disable build of gnatpsta.
36648         * cstreams.c (__gnat_full_name): Minor improvements and clean up
36649         of previous change.
36650
36651 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
36652
36653         * tracebak.c (MAX): Avoid redefinition warning.
36654
36655         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
36656         Change msg to const char *.
36657         (__gnat_install_handler): Remove ss, unused.
36658         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
36659         to const char *.
36660         * cstreams.c (__gnat_full_name): Declare p only when used.
36661         (__gnat_full_name) [sgi] Return buffer.
36662
36663 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
36664
36665         * mingw32.h: New file.
36666         * gnat_wrapper.adb: New file.
36667
36668 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
36669
36670         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
36671         string match a pre compiled regular expression (the corresponding
36672         version of the function working on a raw regular expression)
36673         Fix typos in various comments
36674         Update copyright notice in spec
36675
36676 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
36677
36678         * exp_ch3.adb:
36679         (Component_Needs_Simple_Initialization): Return False when the type is a
36680         packed bit array. Revise spec comments to document this case.
36681
36682         * exp_prag.adb:
36683         (Expand_Pragma_Import): Set any expression on the imported object to
36684         empty to avoid initializing imported objects (in particular this
36685         covers the case of zero-initialization of bit arrays).
36686         Update copyright notice.
36687
36688 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
36689
36690         * sem_ch12.adb:
36691         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
36692         a subunit is missing.
36693         (Instantiate_Subprogram_Body): If body of function is missing, set type
36694         of return expression explicitly in dummy body, to prevent cascaded
36695         errors when a subunit is missing.
36696         Fixes PR 5677.
36697
36698         * sem_ch3.adb:
36699         (Access_Subprogram_Declaration): Verify that return type is valid.
36700         Fixes PR 8693.
36701
36702         * sem_elab.adb:
36703         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
36704         generic.
36705         Fixes PR 12318.
36706
36707         * sem_util.adb:
36708         (Corresponding_Discriminant): If the scope of the discriminant is a
36709         private type without discriminant, use its full view.
36710         Fixes PR 8247.
36711
36712 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
36713
36714         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
36715         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
36716         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
36717         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
36718         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
36719         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
36720         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
36721         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
36722         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
36723         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
36724         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
36725         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
36726         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
36727         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
36728         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
36729         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
36730         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
36731         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
36732         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
36733         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
36734         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
36735         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
36736         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
36737         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
36738         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
36739         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
36740         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
36741         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
36742         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
36743         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
36744         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
36745         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
36746         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
36747         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
36748         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
36749         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
36750         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
36751         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
36752         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
36753         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
36754         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
36755         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
36756         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
36757         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
36758         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
36759         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
36760         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
36761         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
36762         vms_conv.ads, vms_conv.adb, vms_data.ads,
36763         vxaddr2line.adb: Files added. Merge with ACT tree.
36764
36765         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
36766         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
36767         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
36768         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
36769         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
36770         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
36771         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
36772         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
36773         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
36774         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
36775
36776         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
36777         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
36778         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
36779         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
36780         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
36781         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
36782         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
36783         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
36784         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
36785         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
36786         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
36787         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
36788         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
36789         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
36790         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
36791         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
36792         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
36793         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
36794         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
36795         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
36796         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
36797         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
36798         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
36799         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
36800         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
36801         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
36802         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
36803         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
36804         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
36805         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
36806         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
36807         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
36808         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
36809         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
36810         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
36811         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
36812         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
36813         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
36814         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
36815         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
36816         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
36817         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
36818         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
36819         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
36820         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
36821         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
36822         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
36823         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
36824         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
36825         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
36826         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
36827         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
36828         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
36829         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
36830         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
36831         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
36832         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
36833         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
36834         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
36835         checks.adb, checks.ads, cio.c, comperr.adb,
36836         comperr.ads, csets.adb, cstand.adb, cstreams.c,
36837         debug_a.adb, debug_a.ads, debug.adb, decl.c,
36838         einfo.adb, einfo.ads, errout.adb, errout.ads,
36839         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
36840         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
36841         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
36842         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
36843         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
36844         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
36845         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
36846         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
36847         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
36848         fe.h, fmap.adb, fmap.ads, fname.adb,
36849         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
36850         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
36851         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
36852         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
36853         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
36854         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
36855         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
36856         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
36857         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
36858         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
36859         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
36860         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
36861         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
36862         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
36863         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
36864         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
36865         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
36866         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
36867         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
36868         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
36869         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
36870         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
36871         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
36872         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
36873         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
36874         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
36875         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
36876         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
36877         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
36878         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
36879         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
36880         layout.adb, lib.adb, lib.ads, lib-list.adb,
36881         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
36882         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
36883         link.c, live.adb, make.adb, make.ads,
36884         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
36885         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
36886         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
36887         misc.c, mkdir.c, mlib.adb, mlib.ads,
36888         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
36889         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
36890         namet.adb, namet.ads, namet.h, nlists.ads,
36891         nlists.h, nmake.adt, opt.adb, opt.ads,
36892         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
36893         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
36894         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
36895         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
36896         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
36897         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
36898         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
36899         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
36900         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
36901         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
36902         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
36903         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
36904         prj-util.adb, prj-util.ads, raise.c, raise.h,
36905         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
36906         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
36907         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
36908         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
36909         scans.ads, scn.adb, scn.ads, s-crc32.adb,
36910         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
36911         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
36912         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
36913         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
36914         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
36915         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
36916         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
36917         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
36918         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
36919         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
36920         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
36921         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
36922         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
36923         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
36924         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
36925         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
36926         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
36927         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
36928         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
36929         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
36930         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
36931         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
36932         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
36933         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
36934         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
36935         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
36936         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
36937         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
36938         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
36939         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
36940         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
36941         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
36942         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
36943         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
36944         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
36945         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
36946         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
36947         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
36948         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
36949         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
36950         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
36951         stringt.adb, stringt.ads, stringt.h, style.ads,
36952         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
36953         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
36954         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
36955         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
36956         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
36957         table.adb, table.ads, targparm.adb, targparm.ads,
36958         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
36959         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
36960         ttypes.ads, types.ads, types.h, uintp.adb,
36961         uintp.ads, uintp.h, uname.adb, urealp.adb,
36962         urealp.ads, urealp.h, usage.adb, utils2.c,
36963         utils.c, validsw.adb, validsw.ads, widechar.adb,
36964         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
36965         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
36966         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
36967         gnatvsn.ads: Merge with ACT tree.
36968
36969         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
36970
36971 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
36972
36973         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
36974         (gnat_ug_vmx.info): Likewise.
36975         (gnat_ug_vxw.info): Likewise.
36976         (gnat_ug_wnt.info): Likewise.
36977         (gnat_rm.info): Likewise.
36978         (gnat-style.info): Likewise.
36979
36980         * Make-lang.in (ada.install-info): Remove target.
36981         (info): New target.
36982         (install-info): Likewise.
36983         (gnat_ug_unx.info): Simplify rule.
36984         (gnat_ug_vmx.info): Likewise.
36985         (gnat_ug_vxw.info): Likewise.
36986         (gnat_ug_wnt.info): Likewise.
36987         (gnat_rm.info): Likewise.
36988         (gnat-style.info): Likewise.
36989
36990 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
36991
36992         * Make-lang.in: Replace uses of $(target_alias) with
36993         $(target_noncanonical).
36994         * ada/Makefile.in: Remove unused mention of $(target_alias).
36995
36996 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
36997
36998         * Make-lang.in (ada.info): Replace with ...
36999         (info): ... this.
37000         (ada.dvi): Replace with ...
37001         (dvi): ... this.
37002
37003 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
37004
37005         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
37006         initialize dconstp5 and dconstmp5.
37007
37008 2003-09-28  Richard Henderson  <rth@redhat.com>
37009
37010         * trans.c (tree_transform): Update call to expand_asm_operands.
37011
37012 2003-09-21  Richard Henderson  <rth@redhat.com>
37013
37014         * trans.c, utils.c: Revert.
37015
37016 2003-09-21  Richard Henderson  <rth@redhat.com>
37017
37018         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
37019         change to const.
37020
37021 2003-09-04  Michael Matz  <matz@suse.de>
37022
37023         * misc.c: Include "target.h".
37024         * Make-lang.in (misc.o): Add dependency on target.h.
37025
37026 2003-09-03  DJ Delorie  <dj@redhat.com>
37027
37028         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
37029         hook.
37030
37031 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
37032
37033         * Makefile.in: Update substitutions to match changes to
37034         configure.  Use include directives instead of @-insertions
37035         to read in host and target fragments.  Add a rule to
37036         regenerate ada/Makefile.
37037
37038 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
37039
37040         * lang-options.h: Remove.
37041         * lang.opt: Add help text.
37042
37043 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
37044
37045         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
37046         calls.
37047
37048 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
37049
37050         * misc.c (gnat_handle_option): Don't handle filenames.
37051
37052 2003-07-04  H.J. Lu  <hongjiu.lu@intel.com>
37053
37054         * Make-lang.in: Replace PWD with PWD_COMMAND.
37055         * Makefile.adalib: Likewise.
37056         * Makefile.in: Likewise.
37057
37058 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
37059
37060         * misc.c (gnat_argv): Revert last change.
37061         (gnat_handle_option, gnat_init_options): Copy arguments.
37062
37063 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
37064
37065         * misc.c (gnat_argv): Make const.
37066
37067 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
37068
37069         * misc.c (save_argc, save_argv): Keep non-static!
37070
37071 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
37072
37073         * misc.c (save_argc, save_argv): Make static.
37074         (gnat_init_options): New prototype.
37075         (gnat_init_options): Update.
37076
37077 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
37078
37079         * gnat_ug.texi: Remove unlikely characters from @vars.
37080         * gnat_ug_vms.texi: Regenerate.
37081
37082 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
37083
37084         * misc.c (record_code_position): Adjust emit_note call.
37085
37086 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
37087
37088         * misc.c (gnat_handle_option): Don't check for missing arguments.
37089
37090 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
37091
37092         * utils.c (end_subprog_body): Adjust expand_function_end call.
37093
37094 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
37095
37096         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
37097         Bind_Main_Program.
37098
37099 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
37100
37101         * lang.opt: Declare Ada.
37102         * misc.c (gnat_init_options): Update.
37103
37104 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
37105
37106         * utils.c (begin_subprog_body): Adjust init_function_start call.
37107
37108 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
37109
37110         * Make-lang.in: Update to use options.c and options.h.
37111         * misc.c: Include options.h not aoptions.h.
37112         (gnat_handle_option): Abort on unrecognized switch.
37113         (gnat_init_options): Request Ada switches.
37114
37115 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
37116
37117         * lang.opt: Add -Wall.
37118         * misc.c (gnat_handle_option): Handle it.
37119
37120 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
37121
37122         * misc.c (gnat_handle_option): Fix warnings.
37123
37124 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
37125
37126         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
37127
37128 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
37129
37130         * Make-lang.in: Update to handle command-line options.
37131         * lang.opt: New file.
37132         * misc.c: Include aoptions.h.
37133         (cl_options_count, cl_options): Remove.
37134         (gnat_handle_option): New.
37135         (gnat_decode_option): Remove.
37136         (LANG_HOOKS_DECODE_OPTION): Remove.
37137         (LANG_HOOKS_HANDLE_OPTION): Override.
37138
37139 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
37140
37141         * init.c, misc.c, trans.c, utils.c: Remove dead code.
37142
37143 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
37144
37145         * Makefile.in: Replace "host_canonical" with "host" for autoconf
37146         substitution.
37147
37148 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
37149
37150         * Make-lang.in: Update.
37151         * misc.c: Include opts.h. Define cl_options_count and cl_options.
37152
37153 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
37154
37155         * misc.c (gnat_init_options): Update.
37156
37157 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
37158
37159         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
37160         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
37161         __attribute__ ((__unused__)).
37162
37163 2003-06-05  Jan Hubicka  <jh@suse.cz>
37164
37165         * Make-lang.in:  Add support for stageprofile and stagefeedback
37166
37167 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
37168
37169         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
37170         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
37171
37172 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
37173
37174         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
37175         Remove non-VMS directive.
37176         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
37177         alternatives.
37178         (Examples of gnatls Usage): Remove VMS alternative.
37179
37180 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
37181
37182         PR ada/9953
37183         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
37184         and turn ZCX_By_Default back to False since the underlying support
37185         is not quite there yet.
37186
37187 2003-06-01  Andreas Jaeger  <aj@suse.de>
37188
37189         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
37190         and ROUND_TYPE_SIZE_UNIT.
37191
37192 2003-05-22   Geert Bosch  <bosch@gnat.com>
37193
37194         * gnat_rm.texi : Remove reference to Ada Core Technologies.
37195
37196 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
37197
37198         * trans.c (tree_transform): Use location_t and input_location
37199         directly.
37200         (build_unit_elab): Likewise.
37201         * utils.c (create_label_decl): Likewise.
37202
37203 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
37204
37205         * trans.c (tree_transform, build_unit_elab,
37206         set_lineno): Rename lineno to input_line.
37207         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
37208         end_subprog_body): Likewise.
37209         * utils2.c (build_call_raise): Likewise.
37210
37211 2003-05-01  Laurent Guerby  <guerby@acm.org>
37212
37213         PR ada/10546
37214         * 5iosinte.ads: Increase pthread_cond_t size to match recent
37215         LinuxThread and NPTL version, merge from ACT.
37216
37217 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
37218
37219         * utils.c (convert): No need to clear TREE_CST_RTL.
37220
37221 2003-04-23   Geert Bosch  <bosch@gnat.com>
37222
37223         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
37224         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
37225         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
37226         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
37227         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
37228         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
37229         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
37230         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
37231         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
37232         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
37233         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
37234         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
37235         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
37236         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
37237         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
37238         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
37239         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
37240         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
37241         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
37242         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
37243         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
37244         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
37245         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
37246         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
37247         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
37248         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
37249         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
37250         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
37251         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
37252         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
37253         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
37254         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
37255         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
37256         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
37257         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
37258         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
37259         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
37260         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
37261         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
37262         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
37263         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
37264         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
37265         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
37266         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
37267         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
37268         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
37269         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
37270         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
37271         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
37272         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
37273         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
37274         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
37275         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
37276         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
37277         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
37278         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
37279         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
37280         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
37281         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
37282         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
37283         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
37284         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
37285         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
37286         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
37287         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
37288         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
37289         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
37290         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
37291         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
37292         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
37293         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
37294         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
37295         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
37296         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
37297         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
37298         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
37299         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
37300         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
37301         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
37302         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
37303         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
37304         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
37305         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
37306         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
37307         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
37308         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
37309         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
37310         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
37311         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
37312         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
37313         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
37314         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
37315         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
37316         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
37317         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
37318         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
37319         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
37320         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
37321         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
37322         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
37323         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
37324         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
37325         ali.adb, ali.ads, alloc.ads, argv.c,
37326         atree.adb, atree.ads, atree.h, aux-io.c,
37327         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
37328         binde.adb, binde.ads, binderr.adb, binderr.ads,
37329         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
37330         butil.adb, butil.ads, cal.c, calendar.ads,
37331         casing.adb, casing.ads, ceinfo.adb, checks.adb,
37332         checks.ads, cio.c, comperr.adb, comperr.ads,
37333         config-lang.in, csets.adb, csets.ads, csinfo.adb,
37334         cstand.adb, cstand.ads, cuintp.c, debug.adb,
37335         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
37336         dec-io.ads, dec.ads, deftarg.c, directio.ads,
37337         einfo.adb, einfo.ads, elists.adb, elists.ads,
37338         elists.h, errno.c, errout.adb, errout.ads,
37339         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
37340         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
37341         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
37342         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
37343         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
37344         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
37345         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
37346         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
37347         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
37348         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
37349         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
37350         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
37351         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
37352         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
37353         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
37354         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
37355         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
37356         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
37357         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
37358         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
37359         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
37360         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
37361         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
37362         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
37363         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
37364         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
37365         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
37366         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
37367         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
37368         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
37369         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
37370         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
37371         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
37372         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
37373         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
37374         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
37375         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
37376         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
37377         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
37378         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
37379         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
37380         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
37381         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
37382         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
37383         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
37384         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
37385         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
37386         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
37387         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
37388         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
37389         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
37390         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
37391         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
37392         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
37393         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
37394         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
37395         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
37396         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
37397         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
37398         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
37399         lib.adb, lib.ads, live.adb, live.ads,
37400         machcode.ads, make.adb, make.ads, makeusg.adb,
37401         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
37402         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
37403         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
37404         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
37405         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
37406         mlib.ads, namet.adb, namet.ads, nlists.adb,
37407         nlists.ads, opt.adb, opt.ads, osint-b.adb,
37408         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
37409         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
37410         osint.ads, output.adb, output.ads, par-ch10.adb,
37411         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
37412         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
37413         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
37414         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
37415         par-tchk.adb, par-util.adb, par.adb, par.ads,
37416         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
37417         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
37418         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
37419         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
37420         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
37421         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
37422         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
37423         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
37424         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
37425         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
37426         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
37427         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
37428         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
37429         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
37430         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
37431         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
37432         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
37433         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
37434         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
37435         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
37436         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
37437         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
37438         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
37439         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
37440         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
37441         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
37442         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
37443         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
37444         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
37445         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
37446         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
37447         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
37448         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
37449         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
37450         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
37451         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
37452         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
37453         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
37454         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
37455         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
37456         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
37457         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
37458         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
37459         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
37460         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
37461         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
37462         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
37463         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
37464         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
37465         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
37466         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
37467         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
37468         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
37469         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
37470         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
37471         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
37472         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
37473         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
37474         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
37475         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
37476         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
37477         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
37478         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
37479         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
37480         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
37481         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
37482         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
37483         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
37484         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
37485         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
37486         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
37487         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
37488         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
37489         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
37490         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
37491         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
37492         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
37493         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
37494         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
37495         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
37496         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
37497         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
37498         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
37499         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
37500         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
37501         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
37502         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
37503         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
37504         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
37505         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
37506         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
37507         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
37508         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
37509         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
37510         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
37511         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
37512         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
37513         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
37514         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
37515         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
37516         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
37517         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
37518         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
37519         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
37520         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
37521         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
37522         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
37523         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
37524         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
37525         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
37526         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
37527         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
37528         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
37529         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
37530         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
37531         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
37532         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
37533         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
37534         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
37535         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
37536         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
37537         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
37538         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
37539         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
37540         snames.ads, sprint.adb, sprint.ads, stand.adb,
37541         stand.ads, stringt.adb, stringt.ads, style.adb,
37542         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
37543         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
37544         switch-m.ads, switch.adb, switch.ads, system.ads,
37545         table.adb, table.ads, targparm.adb, targparm.ads,
37546         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
37547         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
37548         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
37549         ttypef.ads, ttypes.ads, types.adb, types.ads,
37550         uintp.adb, uintp.ads, uname.adb, uname.ads,
37551         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
37552         usage.adb, usage.ads, validsw.adb, validsw.ads,
37553         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
37554         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
37555         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
37556         formatting and other trivial changes from ACT.
37557
37558 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
37559
37560         * gigi.h, utils2.c (build_constructor):
37561         Rename gnat_build_constructor. Use build_constructor.
37562         * decl.c (gnat_to_gnu_entity)
37563         * trans.c (tree_transform, pos_to_constructor, extract_values)
37564         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
37565         (unchecked_convert)
37566         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
37567         (fill_vms_descriptor):
37568         Update to match.
37569
37570 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
37571
37572         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
37573         * misc.c (gnat_tree_size): New function.
37574         (LANG_HOOKS_TREE_SIZE): Override.
37575
37576 2003-04-03  Jason Merrill  <jason@redhat.com>
37577
37578         * misc.c (gnat_adjust_rli): #if 0.
37579
37580 2003-03-31   Geert Bosch  <bosch@gnat.com>
37581
37582         PR ada/10020
37583         * link.c : Fix misspelled "const" keyword
37584
37585 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
37586
37587         PR c++/7086
37588         * utils2.c: Adjust calls to put_var_into_stack.
37589
37590 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
37591
37592         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
37593
37594 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
37595
37596         * misc.c (gnat_init): Update for new prototype.
37597
37598 2003-03-05  Olivier Hainque  <hainque@gnat.com>
37599
37600         ada/9961
37601         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
37602         warning, and fix return type for the IN_RTS && !SJLJ case.
37603
37604 2003-03-04  Tom Tromey  <tromey@redhat.com>
37605
37606         * Make-lang.in (ada.tags): New target.
37607
37608 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
37609
37610         ada/9911
37611         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
37612         wrapper, which name remains constant whatever underlying GCC
37613         scheme.
37614
37615         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
37616         the stable interface needed for a-except.
37617
37618 2003-03-02  Andreas Jaeger  <aj@suse.de>
37619
37620         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
37621         gnat_ug_wnt.texi: Regenerate.
37622
37623 2003-03-02  Laurent Guerby  <guerby@acm.org>
37624
37625         * Makefile.in (install-gnatlib): Match previous change there
37626         so it works.
37627
37628 2003-02-28  Andreas Schwab  <schwab@suse.de>
37629
37630         * Make-lang.in (install-gnatlib): Change to ada directory before
37631         running make instead of using ada/Makefile directly.
37632
37633 2003-02-18  Ben Elliston  <bje@redhat.com>
37634
37635         Part of PR ada/9406
37636         * gnat_ug.texi (Binder output file): Grammar fix.
37637
37638 2003-02-18  Ben Elliston  <bje@redhat.com>
37639
37640         PR other/7350
37641         * 5qtaprop.adb (Sleep): Fix typo in comment.
37642
37643 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
37644
37645         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
37646         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
37647         gnat_ug_wnt.texi: Regenerate.
37648
37649 2003-02-03  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
37650
37651         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
37652         be created if necessary.
37653         (ada.install-common): Let $(DESTDIR)$(bindir) be created
37654         if necessary.  Remove erroneous and redundant gnatchop
37655         installation commands.  Test for gnatdll before attempting
37656         to install it.
37657         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
37658         and gnatdll from all plausible locations.
37659
37660 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
37661
37662         * utils2.c (build_unary_op): Don't check flag_volatile.
37663         * gnat_ug.texi: Remove -fvolatile from example.
37664         * gnat_ug_vxw.texi: Likewise.
37665
37666 2003-01-29  Laurent Guerby  <guerby@acm.org>
37667
37668         PR ada/8344
37669         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
37670         * Makefile.in: match previous change.
37671         * Make-lang.in: match previous change.
37672
37673 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
37674
37675         * 5rosinte.ads: Add SIGXCPU.
37676         * 5rtpopsp.adb: New file.
37677         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
37678         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
37679         specific file 5rtpopsp.adb.
37680         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
37681         is likely needed for all newlib targets.
37682         * init.c: Add RTEMS specific version of __gnat_initialize().
37683
37684 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
37685
37686         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
37687
37688 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
37689
37690         * init.c (__gnat_error_handler): Make msg const.
37691
37692         * gmem.c (convert_addresses): Move declaration ...
37693         * adaint.h: ... here.
37694         * adaint.c (convert_addresses): Adapt addrs type to match
37695         prototype.
37696
37697         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
37698
37699 2003-01-24  Andreas Schwab  <schwab@suse.de>
37700
37701         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
37702         size_t to avoid warning.
37703
37704 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
37705
37706         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
37707
37708 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
37709
37710         * gnat_rm.texi: Remove RCS version number.
37711
37712         * ada-tree.h (union lang_tree_node): Add chain_next option.
37713
37714 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
37715
37716         * Make-lang.in (ada.install-info, ada.install-common,
37717         ada.uninstall): Prepend $(DESTDIR) to the destination
37718         directory in all (un)installation commands.
37719         * Makefile.in (install-gnatlib, install-rts): Ditto.
37720
37721 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
37722
37723         * gnat_rm.texi, gnat_ug.texi: Use @copying.
37724         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
37725         gnat_ug_wnt.texi: Regenerate.
37726
37727 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
37728
37729         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
37730         only.
37731         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
37732         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
37733         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
37734         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
37735         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
37736         $(srcdir)/doc/include/gcc-common.texi.
37737
37738 2002-12-15   Geert Bosch  <bosch@gnat.com>
37739
37740         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
37741
37742 2002-12-14   Geert Bosch  <bosch@gnat.com>
37743
37744         PR ada/5690
37745         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
37746         case of a body created for a Renaming_As_Body, on which
37747         conformance checks are not performed.
37748
37749 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
37750
37751         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
37752         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
37753         not already included.
37754         * Make-lang.in: Update dependencies.
37755
37756 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
37757         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
37758         solution to buffer overflow bug on GNU/Linux.
37759
37760 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
37761
37762         PR ada/5856
37763         PR ada/6919
37764         * bindgen.adb: Remove all references to Public_Version.
37765         * comperr.adb: Remove all references to Public_Version and
37766         GNATPRO_Version; correct bug reporting instructions.
37767         * comperr.ads: Change to match bug box.
37768         * gnatvsn.ads: Remove all references to Public version and
37769         GNATPRO version.
37770
37771 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
37772
37773         PR ada/6919
37774         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
37775         GNU/Linux.
37776
37777         PR ada/6558
37778         * config-lang.in: Remove diff_excludes.
37779
37780 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
37781
37782         PR ada/8358
37783         * trans.c (gnu_pending_elaboration_lists): New GC root.
37784         (build_unit_elab): Use..
37785
37786 2002-10-30   Geert Bosch  <bosch@gnat.com>
37787
37788         PR ada/6558
37789         * misc.c : Include optabs.h
37790
37791         * Make-lang.in (misc.o): Add dependency on optabs.h
37792
37793 2002-10-29   Geert Bosch  <bosch@gnat.com>
37794
37795         PR ada/6558
37796         * Make-lang.in (gnatbind): Depend on CONFIG_H
37797
37798 2002-10-29  Geert bosch  <bosch@gnat.com>
37799
37800         PR ada/6558
37801         * misc.c: Unrevert misc.c (1.13)
37802
37803 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
37804
37805         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
37806         maintainership comments.
37807
37808 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
37809
37810         PR ada/5904
37811         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
37812         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
37813         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
37814         7staprop.adb: Correct statements in comments about
37815         maintainership of GNAT.
37816
37817         PR ada/5904
37818         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
37819         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
37820         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
37821         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
37822         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
37823         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
37824         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
37825         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
37826         comments about maintainership of GNAT.
37827
37828         PR ada/6919 (forward port of patch for PR ada/5904)
37829         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
37830         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
37831         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
37832         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
37833         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
37834         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
37835         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
37836         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
37837         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
37838         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
37839         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
37840         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
37841         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
37842         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
37843         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
37844         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
37845         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
37846         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
37847         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
37848         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
37849         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
37850         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
37851         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
37852         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
37853         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
37854         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
37855         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
37856         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
37857         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
37858         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
37859         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
37860         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
37861         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
37862         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
37863         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
37864         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
37865         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
37866         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
37867         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
37868         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
37869         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
37870         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
37871         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
37872         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
37873         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
37874         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
37875         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
37876         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
37877         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
37878         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
37879         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
37880         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
37881         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
37882         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
37883         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
37884         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
37885         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
37886         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
37887         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
37888         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
37889         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
37890         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
37891         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
37892         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
37893         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
37894         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
37895         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
37896         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
37897         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
37898         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
37899         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
37900         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
37901         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
37902         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
37903         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
37904         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
37905         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
37906         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
37907         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
37908         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
37909         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
37910         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
37911         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
37912         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
37913         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
37914         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
37915         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
37916         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
37917         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
37918         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
37919         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
37920         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
37921         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
37922         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
37923         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
37924         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
37925         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
37926         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
37927         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
37928         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
37929         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
37930         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
37931         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
37932         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
37933         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
37934         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
37935         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
37936         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
37937         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
37938         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
37939         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
37940         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
37941         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
37942         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
37943         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
37944         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
37945         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
37946         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
37947         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
37948         par-endh.adb par-labl.adb par-load.adb par-prag.adb
37949         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
37950         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
37951         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
37952         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
37953         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
37954         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
37955         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
37956         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
37957         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
37958         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
37959         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
37960         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
37961         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
37962         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
37963         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
37964         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
37965         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
37966         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
37967         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
37968         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
37969         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
37970         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
37971         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
37972         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
37973         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
37974         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
37975         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
37976         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
37977         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
37978         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
37979         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
37980         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
37981         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
37982         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
37983         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
37984         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
37985         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
37986         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
37987         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
37988         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
37989         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
37990         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
37991         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
37992         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
37993         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
37994         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
37995         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
37996         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
37997         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
37998         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
37999         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
38000         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
38001         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
38002         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
38003         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
38004         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
38005         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
38006         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
38007         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
38008         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
38009         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
38010         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
38011         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
38012         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
38013         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
38014         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
38015         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
38016         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
38017         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
38018         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
38019         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
38020         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
38021         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
38022         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
38023         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
38024         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
38025         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
38026         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
38027         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
38028         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
38029         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
38030         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
38031         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
38032         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
38033         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
38034         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
38035         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
38036         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
38037         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
38038         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
38039         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
38040         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
38041         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
38042         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
38043         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
38044         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
38045         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
38046         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
38047         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
38048         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
38049         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
38050         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
38051         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
38052         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
38053         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
38054         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
38055         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
38056         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
38057         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
38058         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
38059         stringt.ads stringt.h style.adb style.ads stylesw.adb
38060         stylesw.ads switch.adb switch.ads sysdep.c system.ads
38061         table.adb table.ads targparm.adb targparm.ads targtyps.c
38062         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
38063         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
38064         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
38065         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
38066         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
38067         usage.ads utils.c utils2.c validsw.adb validsw.ads
38068         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
38069         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
38070         xtreeprs.adb: Correct statements in comments about maintainership
38071         of GNAT.
38072
38073 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
38074
38075         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
38076         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
38077         * gnatvsn.ads: Gnat_Version_String is now a function.
38078         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
38079         copy the C version_string into a String and return it.
38080         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
38081         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
38082         Remove pragma Ident (Gnat_Version_String).  If this was the
38083         sole use of package Gnatvsn, remove the with statement too.
38084         * gnat1drv.adb: Tweak -gnatv output.
38085
38086 2002-09-17  Richard Henderson  <rth@redhat.com>
38087
38088         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
38089         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
38090         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
38091         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
38092         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
38093         and real_2expN instead of a loop.
38094         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
38095         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
38096
38097 2002-08-25  Andre Leis  <a.leis@gmx.net>
38098             David Billinghurst  <David.Billinghurst@riotinto.com>
38099
38100         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
38101
38102 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
38103
38104         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
38105         Remove $(CONFIG_H) dependency.
38106
38107 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
38108
38109         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
38110
38111 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
38112
38113         * adadecode.c (ada_demangle): Use xstrdup in lieu of
38114         xmalloc/strcpy.
38115         * misc.c (gnat_decode_option): Likewise.
38116
38117 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
38118
38119         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
38120         function approach did not work well because of a side effect (the
38121         function call could reallocate the table which was being indexed
38122         using its result). Fixes ada/4851. [RESURRECTED]
38123
38124 2002-07-01  Roger Sayle  <roger@eyesopen.com>
38125
38126         * ada/utils.c (builtin_function): Accept an additional parameter.
38127
38128 2002-06-28  Andreas Jaeger  <aj@suse.de>
38129
38130         PR ada/7144
38131         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
38132         <adi@thur.de>.
38133
38134 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
38135
38136         * Makefile.in (SHELL): Set to @SHELL@.
38137
38138 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
38139
38140         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
38141         array size calculation.
38142
38143 2002-06-04  Andreas Jaeger  <aj@suse.de>
38144
38145         * Make-lang.in (gnatbind): Readd rule that has been lost in last
38146         patch.
38147
38148 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
38149
38150         Merge from pch-branch:
38151
38152         * config-lang.in (gtfiles): Add ada-tree.h.
38153         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
38154         (SET_TYPE_MODULUS): New.
38155         (SET_TYPE_INDEX): New.
38156         (SET_TYPE_DIGITS_VALUE): New.
38157         (SET_TYPE_RM_SIZE): New.
38158         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
38159         (SET_TYPE_ADA_SIZE): New.
38160         (SET_TYPE_ACTUAL_BOUNDS): New.
38161         (SET_DECL_CONST_CORRESPONDING_VAR): New.
38162         (SET_DECL_ORIGINAL_FIELD): New.
38163         (TREE_LOOP_ID): Correct typo.
38164         * decl.c: Use new macros.
38165         * utils.c: Include debug.h, use new macros.
38166         * utils2.c: Use new macros.
38167
38168         * ada-tree.h: Update all macros for new tree description.
38169         (struct tree_loop_id): New.
38170         (union lang_tree_node): New.
38171         (struct lang_decl): New.
38172         (struct lang_type): New.
38173         * misc.c (gnat_mark_tree): Delete.
38174         (LANG_HOOKS_MARK_TREE): Delete.
38175         * trans.c (tree_transform): No longer any need to cast
38176         for TREE_LOOP_ID.
38177
38178         * utils.c (struct language_function): New dummy structure.
38179
38180         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
38181         (misc.o): Likewise.
38182         (utils.o): Likewise; also gtype-ada.h.
38183         * Make-lang.in (gnat1): Add dependency on s-gtype.
38184         (gnatbind): Add dependency on $(CONFIG_H).
38185         * utils.c: Correct last #include.
38186         (stuct e_stack): Remove unnecessary 'static'.
38187         (mark_e_stack): Remove unused prototype.
38188
38189         * scn-nlit.adb: Remove whitespace after version number to
38190         keep lines under 80 chars.
38191         * snames.adb: Likewise.
38192         * treepr.ads: Likewise.
38193
38194         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
38195         (misc.o): Likewise.
38196         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
38197         * config-lang.in (gtfiles): New.
38198         * decl.c: Use gengtype for roots.
38199         * gigi.h: Use gengtype for roots.
38200         * trans.c: Use gengtype for roots.
38201         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
38202
38203 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
38204
38205         * misc.c (gnat_init): Adjust setting of internal_error_function.
38206
38207 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
38208
38209         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
38210         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
38211         gnat_ug_wnt.texi: Regenerate.
38212
38213 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
38214
38215         * 5ntaprop.adb (with System.OS_Primitives): Remove.
38216
38217         * cstreams.c (max_path_len): Move from here ...
38218         * adaint.c (__gnat_max_path_len): ... to here.
38219         * adaint.c (__gnat_max_path_len): Declare.
38220         * g-dirope.adb (Max_Path): Adjust.
38221         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
38222         * i-cstrea.ads (max_path_len): Adjust.
38223         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
38224         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
38225
38226         * Makefile.in, Make-lang.in: Documentation is now built in
38227         Make-lang.in.  Store Info and generated Texinfo files in the
38228         source directory.
38229         * gnat_ug.texi: Remove CVS keywords, correct version number.
38230         Set file name correctly.
38231
38232         * gnat_ug_*.texi: Add.
38233         * .cvsignore: Ignore generated Texinfo files.
38234
38235 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
38236
38237         * ada.h: Add MI guard macro.
38238         (SUBTYPE): Define constants with an anonymous enum, not static
38239         const variables.
38240         (IN): Cast constants to appropriate type before use.
38241
38242 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
38243
38244         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
38245         (experimental)".
38246
38247 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
38248
38249         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
38250         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
38251         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
38252         (ALL_ADA_CFLAGS): Likewise.
38253         (ADA_INCLUDES): Likewise.
38254         Adapt for new working dir.
38255         (GNATBIND): Use Makefile.in version.
38256         (.SUFFIXES): Copy from Makefile.in.
38257         (ada-warn): Define.
38258         (.adb.o, .ads.o): Copy from Makefile.in.
38259         Added $(OUTPUT_OPTION).
38260         (GNAT1_C_OBJS): Moved from Makefile.in.
38261         Prefix with ada subdir.
38262         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
38263         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
38264         Adapt for new working dir.
38265         (EXTRA_GNATBIND_OBJS): Likewise.
38266         (ADA_BACKEND): Moved from Makefile.in.
38267         Renamed to avoid conflict with global BACKEND.
38268         Use that one.
38269         (TARGET_ADA_SRCS): Moved from Makefile.in.
38270         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
38271         Use ADA_BACKEND.
38272         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
38273         (ada_extra_files): Moved from Makefile.in.
38274         Prefix with ada subdir.
38275         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
38276         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
38277         (ada/nmake.ads): Likewise.
38278         (update-sources): Moved from Makefile.in.
38279         Prefix with ada subdir.
38280         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
38281         (ADA_TREE_H): Likewise.
38282         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
38283         (ada/memtrack.o): Likewise.
38284         (ada/adadecode.o): Likewise.
38285         Update dependencies.
38286         (ada/adaint.o): New.
38287         (ada/argv.o): Moved from Makefile.in.
38288         Prefix with ada subdir.
38289         Update dependencies.
38290         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
38291         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
38292         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
38293         Prefix with ada subdir.
38294         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
38295         (GNAT DEPENDENCIES): Regenerate.
38296         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
38297         toplevel Makefile.in.
38298         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
38299         (TARGET_ADA_SRCS): Removed.
38300         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
38301         (GNATBIND_OBJS): Likewise.
38302         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
38303         (BACKEND): Removed.
38304         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
38305         (TREE_H): Likewise.
38306         (ada_extra_files): Likewise.
38307         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
38308         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
38309         (update-sources): Likewise.
38310         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
38311         (ADA_TREE_H): Likewise.
38312         (adadecoce.o): Likewise.
38313         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
38314         (GNAT DEPENDENCIES): Likewise.
38315
38316 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
38317
38318         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
38319         * Makefile.in: Likewise.
38320
38321 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
38322
38323         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
38324         Restore $(CONFIG_H) and prefix.o dependencies.
38325         (ada.stage[1-4]): Depend on stage?-start.
38326
38327         * Makefile.in (b_gnatb.c): Depend on interfac.o.
38328
38329 2002-05-02  Jim Wilson  <wilson@redhat.com>
38330
38331         * utils.c (finish_record_type): Change record_size to record_type.
38332
38333 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
38334
38335         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
38336         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
38337         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
38338
38339 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
38340
38341         * misc.c (gnat_parse_file): Update.
38342
38343 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
38344
38345         * misc.c (gnat_init): Don't set lang_attribute_common.
38346
38347 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
38348
38349         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
38350
38351 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
38352
38353         * gnat_ug.texi: New file.
38354
38355         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
38356         instead of gfdl.texi
38357
38358         * xgnatug.adb, ug_words: New files.
38359
38360         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
38361         gnat_rm and gnat-style manuals.
38362
38363 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
38364
38365         * gigi.h (incomplete_type_error): Remove.
38366         * utils.c (incomplete_type_error): Remove.
38367
38368 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
38369
38370         * trans.c (tree_transform): Add has_scope argument to
38371         expand_start_stmt_expr.
38372
38373 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
38374
38375         * gigi.h (truthvalue_conversion): Rename.
38376         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
38377         * trans.c (tree_transform): Update.
38378         * utils2.c (truthvalue_conversion): Rename, update.
38379         (build_binary_op, build_unary_op): Update.
38380
38381 2002-04-04  Laurent Guerby  <guerby@acm.org>
38382
38383         * make.adb: Implement -margs, remove restriction about file name placement.
38384         * makeusg.adb: Documentation update.
38385         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
38386         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
38387
38388 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
38389
38390         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
38391         (builtin_function): Similarly.
38392
38393 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
38394
38395         * decl.c (gnat_to_gnu_entity): Update.
38396         * gigi.h (mark_addressable): Rename.
38397         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
38398         * trans.c (tree_transform): Update.
38399         * utils.c (create_var_decl): Update.
38400         * util2.c (build_binary_op, build_unary_op,
38401         fill_vms_descriptor): Update.
38402         (mark_addressable): Rename, update.
38403
38404 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
38405
38406         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
38407         Rename.
38408         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
38409         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
38410         * trans.c (tree_transform, convert_with_check): Update.
38411         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
38412         Rename.
38413
38414 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
38415
38416         * gigi.h (finish_incomplete_decl): Rename.
38417         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
38418         * utils.c (gnat_init_decl_processing): Don't set hook.
38419         (finish_incomplete_decl): Rename.
38420
38421 2002-03-29  Andreas Schwab  <schwab@suse.de>
38422
38423         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
38424         directory.
38425
38426 2001-03-28  Robert Dewar  <dewar@gnat.com>
38427
38428         * checks.ads:
38429         (Remove_Checks): New procedure
38430
38431         * checks.adb:
38432         (Remove_Checks): New procedure
38433
38434         * exp_util.adb:
38435         Use new Duplicate_Subexpr functions
38436         (Duplicate_Subexpr_No_Checks): New procedure
38437         (Duplicate_Subexpr_No_Checks_Orig): New procedure
38438         (Duplicate_Subexpr): Restore original form (checks duplicated)
38439         (Duplicate_Subexpr): Call Remove_Checks
38440
38441         * exp_util.ads:
38442         (Duplicate_Subexpr_No_Checks): New procedure
38443         (Duplicate_Subexpr_No_Checks_Orig): New procedure
38444         Add 2002 to copyright notice
38445
38446         * sem_util.adb: Use new Duplicate_Subexpr functions
38447
38448         * sem_eval.adb:
38449         (Eval_Indexed_Component): This is the place to call
38450         Constant_Array_Ref and to replace the value. We simply merge
38451         the code of this function in here, since it is now no longer
38452         used elsewhere. This fixes the problem of the back end not
38453         realizing we were clever enough to see that this was
38454         constant.
38455         (Expr_Val): Remove call to Constant_Array_Ref
38456         (Expr_Rep_Val): Remove call to Constant_Array_Ref
38457         Minor reformatting
38458         (Constant_Array_Ref): Deal with string literals (patch
38459         suggested by Zack Weinberg on the gcc list)
38460
38461 2001-03-28  Ed Schonberg  <schonber@gnat.com>
38462
38463         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
38464         Duplicate_Subexpr_Move_Checks.
38465
38466         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
38467         Duplicate_Subexpr_Move_Checks.
38468
38469         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
38470         value of array exists before retrieving it (it may a private
38471         protected component in a function).
38472
38473 2002-03-28   Geert Bosch  <bosch@gnat.com>
38474
38475         * prj-pp.adb : New file.
38476
38477         * prj-pp.ads : New file.
38478
38479 2002-03-28  Andreas Jaeger  <aj@suse.de>
38480
38481         * Makefile.in (stamp-sdefault): Fix path for Makefile.
38482
38483 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
38484
38485         * misc.c (gnat_expand_expr): Move prototype.
38486
38487 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
38488
38489         * misc.c (insert_default_attributes): Remove.
38490
38491 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
38492
38493         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
38494         (gnat_init): Don't set hook.
38495         (gnat_expand_expr): Fix prototype.
38496
38497 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
38498
38499         * misc.c (ggc_p): Remove.
38500
38501 2002-03-27  Geert Bosch  <bosch@gnat.com>
38502
38503         * prj-makr.ads, prj-makr.adb : New files.
38504
38505 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
38506
38507         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
38508         (lang_mark_tree): Make static, rename.
38509
38510 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
38511
38512         * misc.c (maybe_build_cleanup): Remove.
38513
38514 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
38515
38516         * gigi.h (yyparse): Remove.
38517
38518 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
38519
38520         From Ben Brosgol  <brosgol@gnat.com>
38521         * gnat_rm.texi: Sync with ACT version.
38522
38523 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
38524
38525         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
38526         (gnat_init): Remove old hook.
38527
38528 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
38529
38530         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
38531         (yyparse): Rename gnat_parse_file.
38532
38533 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
38534
38535         Delete all lines containing "$Revision:".
38536         * xeinfo.adb: Don't look for revision numbers.
38537         * xnmake.adb: Likewise.
38538         * xsinfo.adb: Likewise.
38539         * xsnames.adb: Likewise.
38540         * xtreeprs.adb: Likewise.
38541
38542 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
38543
38544         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
38545         gnat_tree_code_name): Delete.
38546         (tree_code_type, tree_code_length, tree_code_name): Define.
38547         (gnat_init): Don't try to copy into the various tree_code
38548         arrays.
38549
38550 2002-03-11  Richard Henderson  <rth@redhat.com>
38551
38552         * Makefile.in (.NOTPARALLEL): Add fake tag.
38553
38554 2002-03-07  Geert Bosch  <bosch@gnat.com>
38555
38556         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
38557         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
38558         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
38559         switch-m.adb, switch-m.ads : New files.
38560
38561 2002-03-07  Geert Bosch  <bosch@gnat.com>
38562
38563         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
38564         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
38565         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
38566         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
38567         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
38568         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
38569         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
38570         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
38571         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
38572         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
38573         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
38574         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
38575         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
38576         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
38577         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
38578         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
38579         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
38580         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
38581         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
38582         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
38583         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
38584         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
38585         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
38586         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
38587         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
38588         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
38589         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
38590         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
38591         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
38592         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
38593         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
38594         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
38595         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
38596         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
38597         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
38598         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
38599         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
38600         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
38601         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
38602         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
38603         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
38604         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
38605         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
38606         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
38607         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
38608         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
38609         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
38610         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
38611         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
38612         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
38613         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
38614         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
38615         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
38616         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
38617         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
38618         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
38619         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
38620         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
38621         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
38622         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
38623         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
38624         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
38625         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
38626         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
38627         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
38628         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
38629         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
38630         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
38631         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
38632         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
38633         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
38634         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
38635         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
38636         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
38637         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
38638         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
38639         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
38640         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
38641         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
38642         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
38643         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
38644         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
38645         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
38646         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
38647         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
38648         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
38649         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
38650         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
38651         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
38652         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
38653         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
38654         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
38655         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
38656         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
38657         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
38658         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
38659         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
38660
38661         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
38662         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
38663         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
38664         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
38665
38666         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
38667         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
38668
38669         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
38670         to mdll-fil.ad[bs] and mdll-util.ad[bs]
38671
38672         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
38673         from mdllfile.ad[bs] and mdlltool.ad[bs]
38674
38675 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
38676
38677         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
38678         lieu of explicit sizeof/sizeof.
38679
38680 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
38681
38682         * misc.c (copy_lang_decl): Remove.
38683
38684 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
38685
38686         * misc.c: Delete traditional-mode-related code copied from the
38687         C front end but not used, or used only to permit the compiler
38688         to link.
38689
38690 2002-02-07  Richard Henderson  <rth@redhat.com>
38691
38692         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
38693         * adaint.h (__gnat_to_gm_time): Update prototype.
38694
38695 2002-01-30  Richard Henderson  <rth@redhat.com>
38696
38697         * trans.c (tree_transform) [N_Loop_Statement]: Use
38698         expand_exit_loop_top_cond.
38699
38700 2001-12-23  Richard Henderson  <rth@redhat.com>
38701
38702         * utils.c (end_subprog_body): Push GC context around
38703         rest_of_compilation for nested functions.
38704
38705 2001-12-23  Richard Henderson  <rth@redhat.com>
38706
38707         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
38708
38709 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
38710
38711         * gnat-style.texi (Declarations and Types): Remove ancient style
38712         rule which was mandated by code generation issues.
38713
38714         * gnat-style.texi (header): Add @dircategory, @direntry.
38715         (title page): Remove date.
38716         (general) Add @./@: where approriate, and two spaces after the
38717         full stop at the end of a sentence.  Use @samp markup when
38718         referring concrete lexical entities (keywords, attribute names
38719         etc.), and @syntax for ARM grammar elements. Use @r for English
38720         text in comments.  Use @emph for emphasis.  Change "if-statements"
38721         etc. to "if statements" (without @samp). Break long lines.  Make
38722         casing of section names consistent.
38723         (Identifiers): Use @samp markup for variable names.
38724         (Comments): Use @samp markup for comment characters. Line-end
38725         comments may follow any Ada code, not just statements.  Fix
38726         misspelling of "Integer" as "integer".
38727         (Loop statements): Do not use variable name "I", use "J".
38728         (Subprogram Declarations): Document alignment.
38729         (Subprogram Bodies, Block statements): Document empty line before
38730         "begin".
38731
38732 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
38733
38734         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
38735         function approach did not work well because of a side effect (the
38736         function call could reallocate the table which was being indexed
38737         using its result). Fixes ada/4851.
38738
38739 2001-12-19  Robert Dewar  <dewar@gnat.com>
38740
38741         * bindgen.adb: Minor reformatting
38742
38743         * cstand.adb: Minor reformatting
38744
38745         * fmap.adb: Minor reformatting
38746         Change name from Add for Add_To_File_Map (Add is much too generic)
38747         Change Path_Name_Of to Mapped_Path_Name
38748         Change File_Name_Of to Mapped_File_Name
38749         Fix copyright dates in header
38750
38751         * fmap.ads:
38752         Change name from Add for Add_To_File_Map (Add is much too generic)
38753         Change Path_Name_Of to Mapped_Path_Name
38754         Change File_Name_Of to Mapped_File_Name
38755         Fix copyright dates in header
38756
38757         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
38758         Add use clause for Fmap.
38759
38760         * make.adb: Minor reformatting
38761
38762         * osint.adb: Minor reformatting.  Change of names in Fmap.
38763         Add use clause for Fmap.
38764
38765         * prj-env.adb: Minor reformatting
38766
38767         * prj-env.ads: Minor reformatting
38768
38769         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
38770         error found (there were odd exceptions to this general rule in
38771         -gnatec/-gnatem processing)
38772
38773 2001-12-19  Olivier Hainque  <hainque@gnat.com>
38774
38775         * raise.c (__gnat_eh_personality): Exception handling personality
38776         routine for Ada.  Still in rough state, inspired from the C++ version
38777         and still containing a bunch of debugging artifacts.
38778         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
38779         inspired from the C++ library.
38780
38781         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
38782         exception handling integration.
38783
38784 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
38785
38786         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
38787         (HIE_SOURCES): Add s-secsta.ad{s,b}.
38788         (HIE_OBJS): Add s-fat*.o
38789         (RAVEN_SOURCES): Remove files that are no longer required. Add
38790         interrupt handling files.
38791         (RAVEN_MOD): Removed, no longer needed.
38792
38793 2001-12-19  Robert Dewar  <dewar@gnat.com>
38794
38795         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
38796         Add 2001 to copyright date
38797
38798         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
38799         need to force universal inlining for these cases.
38800
38801 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
38802
38803         * s-taprob.adb: Minor clean ups so that this unit can be used in
38804         Ravenscar HI.
38805
38806         * exp_ch7.adb: Allow use of secondary stack in HI mode.
38807         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
38808
38809 2001-12-19  Vincent Celier  <celier@gnat.com>
38810
38811         * prj-tree.ads (Project_Node_Record): Add comments for components
38812         Pkg_Id and Case_Insensitive.
38813
38814 2001-12-19  Pascal Obry  <obry@gnat.com>
38815
38816         * g-socket.adb: Minor reformatting. Found while reading code.
38817
38818 2001-12-19  Robert Dewar  <dewar@gnat.com>
38819
38820         * prj-tree.ads: Minor reformatting
38821
38822 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
38823
38824         * config-lang.in (diff_excludes): Remove.
38825
38826 2001-12-17  Ed Schonberg  <schonber@gnat.com>
38827
38828         * sem_res.adb (Resolve_Selected_Component): do not generate a
38829         discriminant check if the selected component is a component of
38830         the argument of an initialization procedure.
38831
38832         * trans.c (tree_transform, case of arithmetic operators): If result
38833         type is private, the gnu_type is the base type of the full view,
38834         given that the full view itself may be a subtype.
38835
38836 2001-12-17  Robert Dewar  <dewar@gnat.com>
38837
38838         * sem_res.adb: Minor reformatting
38839
38840         * trans.c (tree_transform, case N_Real_Literal): Add missing third
38841         parameter in call to Machine (unknown horrible effects from this
38842         omission).
38843
38844         * urealp.h: Add definition of Round_Even for call to Machine
38845         Add third parameter for Machine
38846
38847 2001-12-17  Ed Schonberg  <schonber@gnat.com>
38848
38849         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
38850         predefined units in No_Run_Time mode.
38851
38852 2001-12-17  Richard Kenner  <kenner@gnat.com>
38853
38854         * misc.c (insn-codes.h): Now include.
38855
38856 2001-12-17  Olivier Hainque  <hainque@gnat.com>
38857
38858         * a-except.adb: Preparation work for future integration of the GCC 3
38859         exception handling mechanism
38860         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
38861         to factorize previous code sequences and make them externally callable,
38862         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
38863         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
38864         Use the new notification routines.
38865
38866 2001-12-17  Emmanuel Briot  <briot@gnat.com>
38867
38868         * prj-tree.ads (First_Choice_Of): Document the when others case
38869
38870 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
38871
38872         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
38873         HI-E mode, in order to support Ravenscar profile properly.
38874
38875         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
38876         mode on 32 bits targets.
38877
38878 2001-12-17  Vincent Celier  <celier@gnat.com>
38879
38880         * fmap.adb: Initial version.
38881
38882         * fmap.ads: Initial version.
38883
38884         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
38885         If search is successfully done, add to mapping.
38886
38887         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
38888
38889         * make.adb:
38890         (Gnatmake): Add new local variable Mapping_File_Name.
38891          Create mapping file when using project file(s).
38892          Delete mapping file before exiting.
38893
38894         * opt.ads (Mapping_File_Name): New variable
38895
38896         * osint.adb (Find_File): Use path name found in mapping, if any.
38897
38898         * prj-env.adb (Create_Mapping_File): New procedure
38899
38900         * prj-env.ads (Create_Mapping_File): New procedure.
38901
38902         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
38903         (Mapping_File)
38904
38905         * usage.adb: Add entry for new switch -gnatem.
38906
38907         * Makefile.in: Add dependencies for fmap.o.
38908
38909 2001-12-17  Ed Schonberg  <schonber@gnat.com>
38910
38911         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
38912         is a package instantiation rewritten as a package body.
38913         (Install_Withed_Unit): Undo previous change, now redundant.
38914
38915 2001-12-17  Gary Dismuke  <dismukes@gnat.com>
38916
38917         * layout.adb:
38918         (Compute_Length): Move conversion to Unsigned to callers.
38919         (Get_Max_Size): Convert Len expression to Unsigned after calls to
38920         Compute_Length and Determine_Range.
38921         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
38922         Compute_Length and Determine_Range.
38923         Above changes fix problem with length computation for supernull arrays
38924         where Max (Len, 0) wasn't getting applied due to the Unsigned
38925         conversion used by Compute_Length.
38926
38927 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
38928
38929         * rtsfind.ads:
38930         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
38931          System.Secondary_Stack.
38932         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
38933          in HI-E mode.
38934         Remove unused entity RE_Exception_Data.
38935
38936         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
38937
38938         * rident.ads (No_Secondary_Stack): New restriction.
38939
38940 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
38941
38942         * gnat_rm.texi: Fix minor typos. Found while reading the section
38943         regarding "Bit_Order Clauses" that was sent to a customer.
38944         Very interesting documentation!
38945
38946 2001-12-17  Robert Dewar  <dewar@gnat.com>
38947
38948         * sem_case.adb (Choice_Image): Avoid creating improper character
38949         literal names by using the routine Set_Character_Literal_Name. This
38950         fixes bombs in certain error message cases.
38951
38952 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
38953
38954         * a-reatim.adb: Minor reformatting.
38955
38956 2001-12-17  Ed Schonberg  <schonber@gnat.com>
38957
38958         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
38959         case where the formal is an extension of another formal in the current
38960         unit or in a parent generic unit.
38961
38962 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
38963
38964         * s-tposen.adb: Update comments.  Minor reformatting.
38965         Minor code clean up.
38966
38967         * s-tarest.adb: Update comments.  Minor code reorganization.
38968
38969 2001-12-17  Gary Dismukes  <dismukes@gnat.com>
38970
38971         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
38972         when Java_VM.
38973
38974 2001-12-17  Robert Dewa  <dewar@gnat.com>
38975
38976         * exp_attr.adb: Minor reformatting
38977
38978 2001-12-17  Ed Schonberg  <schonber@gnat.com>
38979
38980         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
38981         derivations nested within a child unit: verify that the parent
38982         type is declared in an outer scope.
38983
38984 2001-12-17  Robert Dewar  <dewar@gnat.com>
38985
38986         * sem_ch12.adb: Minor reformatting
38987
38988 2001-12-17  Ed Schonberg  <schonber@gnat.com>
38989
38990         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
38991         warning if current unit is a predefined one, from which bodies may
38992         have been deleted.
38993
38994 2001-12-17  Robert Dewar  <dewar@gnat.com>
38995
38996         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
38997         Fix header format. Add 2001 to copyright date.
38998
38999         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
39000         which caused CE during compilation if checks were enabled.
39001
39002 2001-12-17  Vincent Celier  <celier@gnat.com>
39003
39004         * make.adb:
39005         (Switches_Of): New function
39006         (Test_If_Relative_Path): New procedure
39007         (Add_Switches): Use new function Switches_Of
39008         (Collect_Arguments_And_Compile): Use new function Switches_Of.
39009         When using a project file, test if there are any relative
39010         search path. Fail if there are any.
39011         (Gnatmake): Only add switches for the primary directory when not using
39012         a project file. When using a project file, change directory to the
39013         object directory of the main project file. When using a project file,
39014         test if there are any relative search path. Fail if there are any.
39015         When using a project file, fail if specified executable is relative
39016         path with directory information, and prepend executable, if not
39017         specified as an absolute path, with the exec directory.  Make sure
39018         that only one -o switch is transmitted to the linker.
39019
39020         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
39021
39022         * prj-nmsc.adb:
39023         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
39024         when using a non standard naming scheme.
39025         (Check_Ada_Naming_Scheme): Make sure that error messages
39026         do not raise exceptions.
39027         (Is_Illegal_Append): Return True if there is no dot in the suffix.
39028         (Language_Independent_Check): Check the exec directory.
39029
39030         * prj.adb (Project_Empty): Add new component Exec_Directory
39031
39032         * prj.ads:
39033         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
39034         (Project_Data): Add component Exec_Directory
39035
39036         * snames.adb: Updated to match snames.ads revision 1.215
39037
39038         * snames.ads: Added Exec_Dir
39039
39040 2001-12-17  Robert Dewar  <dewar@gnat.com>
39041
39042         * make.adb: Minor reformatting
39043
39044         * prj-nmsc.adb: Minor reformatting
39045
39046         * snames.adb: Updated to match snames.ads
39047
39048         * snames.ads: Alphebetize entries for project file
39049
39050 2001-12-17  Ed Schonberg  <schonber@gnat.com>
39051
39052         * trans.c (process_freeze_entity): Do nothing if the entity is a
39053         subprogram that was already elaborated.
39054
39055 2001-12-17  Richard Kenner  <kenner@gnat.com>
39056
39057         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
39058         and Esize if object is referenced via pointer.
39059
39060 2001-12-17  Ed Schonberg  <schonber@gnat.com>
39061
39062         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
39063         is discrete before analyzing choices.
39064
39065 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
39066
39067         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
39068         containing the name of the Ada Main Program. This string is mainly
39069         intended for the debugger.
39070         (Gen_Output_File_C): Do the equivalent change when generating a C file.
39071
39072 2001-12-17  Robert Dewar  <dewar@gnat.com>
39073
39074         * ali.adb: Set new Dummy_Entry field in dependency entry
39075
39076         * ali.ads: Add Dummy_Entry field to source dependency table
39077
39078         * bcheck.adb (Check_Consistency): Ignore dummy D lines
39079
39080         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
39081
39082         * lib-writ.ads: Document dummy D lines for missing files.
39083
39084         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
39085
39086 2001-12-17  Robert Dewar  <dewar@gnat.com>
39087
39088         * ali.adb: Type reference does not reset current file.
39089
39090         * ali.adb: Recognize and scan renaming reference
39091
39092         * ali.ads: Add spec for storing renaming references.
39093
39094         * lib-xref.ads: Add documentation for handling of renaming references
39095
39096         * lib-xref.adb: Implement output of renaming reference.
39097
39098         * checks.adb:
39099         (Determine_Range): Document local variables
39100         (Determine_Range): Make sure Hbound is initialized. It looks as though
39101          there could be a real problem here with an uninitialized reference
39102          to Hbound, but no actual example of failure has been found.
39103
39104 2001-12-17  Laurent Pautet  <pautet@gnat.com>
39105
39106         * g-socket.ads:
39107         Fix comment of Shutdown_Socket and Close_Socket. These functions
39108         should not fail silently because if they are called twice, this
39109         probably means that there is a race condition in the user program.
39110         Anyway, this behaviour is consistent with the rest of this unit.
39111         When an error occurs, an exception is raised with the error message
39112         as exception message.
39113
39114 2001-12-17  Robert Dewar  <dewar@gnat.com>
39115
39116         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
39117         that it happens before modification of Sloc values for -gnatD.
39118
39119         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
39120         so that it happens before modification of Sloc values for -gnatD.
39121
39122         * switch.adb: Minor reformatting
39123
39124 2001-12-15  Richard Henderson  <rth@redhat.com>
39125
39126         * sem_ch7.adb: Wrap comment.
39127
39128 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
39129
39130         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
39131         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
39132         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
39133         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
39134         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
39135         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
39136         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
39137         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
39138         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
39139         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
39140         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
39141         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
39142         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
39143         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
39144         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
39145         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
39146         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
39147         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
39148         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
39149         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
39150         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
39151         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
39152         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
39153         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
39154         spelling errors.
39155
39156 2001-12-14  Vincent Celier  <celier@gnat.com>
39157
39158         * osint.adb(Create_Debug_File): When an object file is specified,
39159         put the .dg file in the same directory as the object file.
39160
39161 2001-12-14  Robert Dewar  <dewar@gnat.com>
39162
39163         * osint.adb: Minor reformatting
39164
39165         * lib-xref.adb (Output_Instantiation): New procedure to generate
39166         instantiation references.
39167
39168         * lib-xref.ads: Add documentation of handling of generic references.
39169
39170         * ali.adb (Read_Instantiation_Ref): New procedure to read
39171         instantiation references
39172
39173         * ali.ads: Add spec for storing instantiation references
39174
39175         * bindusg.adb: Minor reformatting
39176
39177         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
39178
39179         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
39180
39181         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
39182
39183         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
39184
39185         * csets.ads:
39186         Fix header format
39187         Add 2001 to copyright date
39188         Add entry for Latin-5 (Cyrillic ISO-8859-5)
39189
39190 2001-12-14  Matt Gingell  <gingell@gnat.com>
39191
39192         * adaint.c: mktemp is a macro on Lynx and can not be used as an
39193         expression.
39194
39195 2001-12-14  Richard Kenner  <kenner@gnat.com>
39196
39197         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
39198         if operand is CONSTRUCTOR.
39199
39200 2001-12-14  Ed Schonberg  <schonber@gnat.com>
39201
39202         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
39203         before emiting check on right-hand side, so that exception information
39204         is correct.
39205
39206 2001-12-14  Richard Kenner  <kenner@gnat.com>
39207
39208         * utils.c (create_var_decl): Throw away initializing expression
39209         if just annotating types and non-constant.
39210
39211 2001-12-14  Vincent Celier  <celier@gnat.com>
39212
39213         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
39214         Default_Ada_...
39215
39216         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
39217         Remove functions.
39218         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
39219
39220         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
39221         Remove functions.
39222         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
39223
39224 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
39225
39226         * ChangeLog: Remove piece of diff output.
39227
39228 2001-12-14  Geert Bosch  <bosch@gnat.com>
39229
39230         * config-lang.in: Update copyright notice
39231
39232         * layout.adb: Remove commented out code.
39233
39234         * mdllfile.ads: Update copyright notice. Fix header format.
39235
39236         * sem_case.ads: Likewise.
39237
39238         * sem_ch3.adb: Minor reformatting.
39239
39240 2001-12-12  Geert Bosch  <bosch@gnat.com>
39241
39242         * freeze.ads: Update copyright date.
39243
39244         * g-comlin.ads: Minor reformatting.
39245
39246         * gnat-style.texi: Fix typo.
39247
39248 2001-12-12  Geert Bosch  <bosch@gnat.com>
39249
39250         *  einfo.h: Regenerate.
39251
39252 2001-12-12  Ed Schonberg  <schonber@gnat.com>
39253
39254         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
39255         on known node types, rather than untyped fields. Further cleanups.
39256
39257 2001-12-12  Robert Dewar  <dewar@gnat.com>
39258
39259         * sem_ch12.adb:
39260         (Save_Entity_Descendant): Minor comment update.
39261         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
39262          of an N_Attribute_Reference node. As per note below, this does not
39263         eliminate need for Associated_Node in attribute ref nodes.
39264         (Associated_Node): Documentation explicitly mentions attribute
39265         reference nodes, since this field is used in such nodes.
39266
39267         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
39268
39269 2001-12-12  Robert Dewar  <dewar@gnat.com>
39270
39271         * s-stalib.adb: Add more comments on with statements being needed
39272
39273         * par-ch12.adb: Minor reformatting
39274
39275         * prj-dect.ads: Fix copyright header
39276
39277         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
39278         inputs fit in 32 bits, but the result still overflows.
39279
39280         * s-fatgen.ads: Minor comment improvement
39281
39282 2001-12-12  Ed Schonberg  <schonber@gnat.com>
39283
39284         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
39285         formal derived type, look for an inherited component from the full
39286         view of the parent, if any.
39287
39288 2001-12-12  Robert Dewar  <dewar@gnat.com>
39289
39290         * checks.ads (Apply_Alignment_Check): New procedure.
39291
39292         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
39293         ensure that the alignment of objects with address clauses is
39294         appropriate, and raise PE if not.
39295
39296         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
39297         Exp_Pakd.Known_Aligned_Enough
39298
39299         * mdllfile.ads: Minor reformatting
39300
39301         * mlib-fil.ads: Minor reformatting
39302
39303 2001-12-12  Ed Schonberg  <schonber@gnat.com>
39304
39305         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
39306         fix to any component reference if enclosing record has non-standard
39307         representation.
39308
39309 2001-12-12  Vincent Celier  <celier@gnat.com>
39310
39311         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
39312         Iteration
39313
39314 2001-12-12  Ed Schonberg  <schonber@gnat.com>
39315
39316         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
39317         sem_attr.
39318
39319 2001-12-12  Robert Dewar  <dewar@gnat.com>
39320
39321         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
39322
39323 2001-12-12  Emmanuel Briot  <briot@gnat.com>
39324
39325         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
39326         and it adds dependencies to system.io.
39327
39328 2001-12-12  Pascal Obry  <obry@gnat.com>
39329
39330         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
39331         variable name.
39332
39333 2001-12-11  Ed Schonberg  <schonber@gnat.com>
39334
39335         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
39336         that is the parent of other generics, the instance body replaces the
39337         instance node.  Retrieve the instance of the spec, which is the one
39338         that is visible in clients and within the body.
39339
39340 2001-12-11  Vincent Celier  <celier@gnat.com>
39341
39342         * gnatmain.adb: Initial version.
39343
39344         * gnatmain.ads: Initial version.
39345
39346         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
39347
39348         * snames.adb: Updated to match snames.ads.
39349
39350         * snames.ads: Added Gnatstub.
39351
39352 2001-12-11  Vincent Celier  <celier@gnat.com>
39353
39354         * prj-attr.adb (Initialization_Data): Change name from
39355         Initialisation_Data.
39356
39357 2001-12-11  Emmanuel Briot  <briot@gnat.com>
39358
39359         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
39360         + and * applied to backslashed expressions like \r.
39361
39362 2001-12-11  Vasiliy Fofanov  <fofanov@gnat.com>
39363
39364         * g-os_lib.ads: String_List type added, Argument_List type is now
39365         subtype of String_List.
39366
39367 2001-12-11  Robert Dewar  <dewar@gnat.com>
39368
39369         * g-os_lib.ads: Change copyright to FSF
39370         Add comments for String_List type
39371
39372 2001-12-11  Vincent Celier  <celier@gnat.com>
39373
39374         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
39375         string to the buffer).
39376
39377 2001-12-11  Ed Schonberg  <schonber@gnat.com>
39378
39379         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
39380         sem_attr.
39381
39382         * sem_attr.adb: Simplify previous fix for Address.
39383         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
39384         to avoid anomalies where the bound of the type appears to raise
39385         constraint error.
39386
39387 2001-12-11  Robert Dewar  <dewar@gnat.com>
39388
39389         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
39390         handled.
39391
39392 2001-12-11  Ed Schonber   <schonber@gnat.com>
39393
39394         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
39395         renamed unit before checking for recursive instantiations.
39396
39397 2001-12-11  Emmanuel Briot  <briot@gnat.com>
39398
39399         * prj.ads: Add comments for some of the fields.
39400
39401 2001-12-11  Robert Dewar  <dewar@gnat.com>
39402
39403         * lib-xref.adb (Output_Refs): Don't output type references outside
39404         the main unit if they are not otherwise referenced.
39405
39406 2001-12-11  Ed Schonberg  <schonber@gnat.com>
39407
39408         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
39409         code and diagnose additional illegal uses
39410
39411         * sem_util.adb (Is_Object_Reference): An indexed component is an
39412         object only if the prefix is.
39413
39414 2001-12-11  Vincent Celier  <celier@gnat.com>
39415
39416         * g-diopit.adb: Initial version.
39417
39418         * g-diopit.ads: Initial version.
39419
39420         * g-dirope.adb:
39421         (Expand_Path): Avoid use of Unbounded_String
39422         (Find, Wildcard_Iterator): Moved to child package Iteration
39423
39424         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
39425
39426 2001-12-11  Robert Dewar  <dewar@gnat.com>
39427
39428         * sem_attr.adb: Minor reformatting
39429
39430 2001-12-11  Ed Schonberg  <schonber@gnat.com>
39431
39432         * sem_ch3.adb: Clarify some ???.
39433
39434 2001-12-11  Robert Dewar  <dewar@gnat.com>
39435
39436         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
39437         Exp_Pakd.Known_Aligned_Enough
39438
39439         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
39440         version is moved to Exp_Ch13.
39441
39442 2001-12-11  Robert Dewar  <dewar@gnat.com>
39443
39444         * einfo.ads: Minor reformatting
39445
39446         * exp_ch5.adb: Add comment for previous.change
39447
39448         * ali.adb: New interface for extended typeref stuff.
39449
39450         * ali.ads: New interface for typeref stuff.
39451
39452         * checks.adb (Apply_Alignment_Check): New procedure.
39453
39454         * debug.adb: Add -gnatdM for modified ALI output
39455
39456         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
39457
39458         * lib-xref.adb: Extend generation of <..> notation to cover
39459         subtype/object types. Note that this is a complete rewrite,
39460         getting rid of the very nasty quadratic algorithm previously
39461         used for derived type output.
39462
39463         * lib-xref.ads: Extend description of <..> notation to cover
39464         subtype/object types. Uses {..} for these other cases.
39465         Also use (..) for pointer types.
39466
39467         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
39468
39469         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
39470         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
39471
39472 2001-12-11  Vincent Celier  <celier@gnat.com>
39473
39474         * gnatcmd.adb:
39475         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
39476         Changed /BIND_ONLY to /ACTIONS=BIND
39477         Changed /LINK_ONLY to /ACTIONS=LINK
39478
39479 2001-12-11  Ed Schonberg  <schonber@gnat.com>
39480
39481         * sem_ch8.adb (Find_Selected_Component): improved search for a
39482         candidate package in case of error.
39483
39484         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
39485         chain back on scope stack before reinstalling use clauses.
39486
39487         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
39488         is enabled, do not kill the code for the condition, to preserve
39489         warning.
39490
39491 2001-12-11  Robert Dewar  <dewar@gnat.com>
39492
39493         * checks.adb (Insert_Valid_Check): Apply validity check to expression
39494         of conversion, not to result of conversion.
39495
39496 2001-12-11  Ed Schonberg  <schonber@gnat.com>
39497
39498         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
39499         before freezing parent. If the declarations are mutually recursive,
39500         an access to the current record type may be frozen before the
39501         derivation is complete.
39502
39503 2001-12-05  Vincent Celier  <celier@gnat.com>
39504
39505         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
39506         -c /COMPILE_ONLY, -l /LINK_ONLY
39507
39508         * opt.ads:
39509         (Bind_Only): New Flag
39510         (Link_Only): New flag
39511
39512         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
39513         and -l (Link_Only)
39514
39515         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
39516
39517         * make.adb:
39518         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
39519         (Gnatmake): Set the step flags. Only perform a step if the
39520         corresponding step flag is True.
39521         (Scan_Make_Arg): Reset the bind and link step flags when -u
39522         or -gnatc has been specified.
39523
39524 2001-12-05  Ed Schonberg  <schonber@gnat.com>
39525
39526         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
39527         get bounds from right operand.
39528
39529         * sem_eval.adb: Minor reformatting
39530
39531         * exp_util.adb (Make_Literal_Range): use bound of literal rather
39532         than Index'First, its lower bound may be different from 1.
39533
39534         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
39535         and C48009J
39536
39537 2001-12-05  Vincent Celier  <celier@gnat.com>
39538
39539         * prj-nmsc.adb Minor reformatting
39540
39541         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
39542         set and libraries are not supported.
39543
39544 2001-12-05  Ed Schonberg  <schonber@gnat.com>
39545
39546         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
39547         private view explicitly, so the back-end can treat as a global
39548         when appropriate.
39549
39550 2001-12-05  Ed Schonberg  <schonber@gnat.com>
39551
39552         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
39553          unit, always replace instance node with new body, for ASIS use.
39554
39555 2001-12-05  Vincent Celier  <celier@gnat.com>
39556
39557         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
39558         libraries are not supported and both attributes Library_Name and
39559         Library_Dir are specified.
39560
39561         * prj-proc.adb (Expression): Set location of Result to location of
39562         first term.
39563
39564         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
39565         (prj-nmsc is now importing MLib.Tgt)
39566
39567         * prj-proc.adb: Put the change indicated above that was forgotten.
39568
39569 2001-12-05  Robert Dewar  <dewar@gnat.com>
39570
39571         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
39572
39573 2001-12-05  Ed Schonberg  <schonber@gnat.com>
39574
39575         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
39576         constraint, introduce explicit subtype declaration and derive from it.
39577
39578         * sem_ch3.adb: Minor reformatting
39579
39580 2001-12-05  Robert Dewar  <dewar@gnat.com>
39581
39582         * checks.adb (Determine_Range): Increase cache size for checks.
39583         Minor reformatting
39584
39585         * exp_ch6.adb: Minor reformatting
39586         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
39587         a parameter whose root type is System.Address, since treating such
39588         subprograms as pure in the code generator is almost surely a mistake
39589         that will lead to unexpected results.
39590
39591         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
39592         change handling of conversions.
39593
39594         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
39595
39596 2001-12-05  Ed Schonberg  <schonber@gnat.com>
39597
39598         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
39599         aggregate with static wrong size, attach generated Raise node to
39600         declaration.
39601
39602 2001-12-05  Robert Dewar  <dewar@gnat.com>
39603
39604         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
39605         Fixes compilation abandoned bomb in B24009B.
39606
39607 2001-12-05  Ed Schonberg  <schonber@gnat.com>
39608
39609         * sem_ch12.adb:
39610         Document use of Associated_Node on Selected_Components.
39611         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
39612         to clarify use of untyped descendant fields.
39613
39614 2001-12-05  Robert Dewar  <dewar@gnat.com>
39615
39616         * prj-dect.ads: Add ??? comment
39617         Add 2001 to copyright notice (was not done in after all)
39618
39619         * prj-part.adb: Minor reformatting. Reword one awkward error message.
39620
39621         * prj.ads: Minor reformatting throughout, and add some ??? comments
39622
39623         * snames.ads: Minor reformatting
39624
39625 2001-12-05  Geert Bosch  <bosch@gnat.com>
39626
39627         * snames.adb: Autoupdate
39628
39629 2001-12-05  Vincent Celier  <celier@gnat.com>
39630
39631         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
39632
39633         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
39634
39635         * prj-env.adb: Minor comment changes (modifying -> extends).
39636
39637         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
39638
39639         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
39640         Tok_Extends.
39641
39642         * prj.adb (Initialize): Change Modifying to Extends.
39643
39644         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
39645
39646         * prj.ads: Minor comment change (Modifying -> extending).
39647
39648         * snames.ads: Change modifying to extends.
39649
39650 2001-12-05  Robert Dewar  <dewar@gnat.com>
39651
39652         * sem_warn.adb: Remove stuff for conditionals, we are not going to
39653         do this after all.
39654
39655         * sem_warn.ads: Remove stuff for conditionals, we are not going to
39656         do this after all.  Add 2001 to copyright notice
39657
39658 2001-12-04  Geert Bosch  <bosch@gnat.com>
39659
39660         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
39661
39662 2001-12-04  Robert Dewar  <dewar@gnat.com>
39663
39664         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
39665         location if we already have errors. Stops some cases of cascaded
39666         errors.
39667
39668         * errout.adb: Improve comment.
39669
39670 2001-12-04  Robert Dewar  <dewar@gnat.com>
39671
39672         * sem_ch12.adb:
39673         (Analyze_Formal_Type_Definition): Defend against Error.
39674         (Analyze_Formal_Subprogram): Defend against Error.
39675
39676         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
39677         remove following semicolon if present. Removes cascaded error.
39678
39679 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
39680
39681         * bindgen.adb:
39682         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
39683          exceptions equals 0.
39684         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
39685         Fixes PIWG E tests (which have to be run with -gnatL).
39686
39687 2001-12-04  Robert Dewar  <dewar@gnat.com>
39688
39689         * einfo.ads: Minor reformatting
39690
39691 2001-12-04  Ed Schonberg  <schonber@gnat.com>
39692
39693         * einfo.ads: Block_Node points to the identifier of the block, not to
39694         the block node itself, to preserve the link when the block is
39695         rewritten, e.g. within an if-statement with a static condition.
39696
39697         * inline.adb (Cleanup_Scopes): recover block statement from block
39698         entity using new meaning of Block_Node.
39699
39700         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
39701         identifier of block node, rather than to node itself.
39702
39703 2001-12-04  Gary Dismukes  <dismukes@gnat.com>
39704
39705         * layout.adb:
39706         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
39707         (Discrimify): Go back to setting the Etypes of the selected component
39708         because the Vname component does not exist at this point and will
39709         fail name resolution. Also set Analyzed.
39710         Remove with and use of Sem_Res.
39711
39712 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
39713
39714         * Makefile.in: (HIE_SOURCES): add s-fat*.
39715
39716 2001-12-04  Robert Dewar  <dewar@gnat.com>
39717
39718         * sem_attr.adb:
39719         (Compile_Time_Known_Attribute): New procedure.
39720         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
39721          proper range check.
39722
39723 2001-12-04  Ed Schonberg  <schonber@gnat.com>
39724
39725         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
39726         processing discriminants to diagnose illegal default values.
39727
39728 2001-12-04  Ed Schonberg  <schonber@gnat.com>
39729
39730         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
39731         access discriminant within a type extension that constrains its
39732         parent discriminants.
39733
39734 2001-12-04  Ed Schonberg  <schonber@gnat.com>
39735
39736         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
39737         is malformed, use instance of Any_Id to allow analysis to proceed.
39738
39739         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
39740         type definition is illegal.
39741         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
39742         misplaced.
39743
39744 2001-12-04  Ed Schonberg  <schonber@gnat.com>
39745
39746         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
39747         constants.
39748
39749 2001-12-04  Robert Dewar  <dewar@gnat.com>
39750
39751         * errout.adb: Minor reformatting
39752
39753 2001-12-04  Robert Dewar  <dewar@gnat.com>
39754
39755         * exp_util.adb: Minor reformatting from last change
39756
39757         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
39758         which is a rewriting of an expression, traverse the original
39759         expression to remove warnings that may have been posted on it.
39760
39761 2001-12-04  Ed Schonberg  <schonber@gnat.com>
39762
39763         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
39764         record that has other packed components.
39765
39766 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
39767
39768         * adaint.c: Minor cleanups.
39769
39770 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
39771
39772         * adaint.c: Do not use utime.h on vxworks.
39773
39774 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
39775
39776         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
39777         more confusion than it solves.
39778
39779 2001-12-04  Geert bosch  <bosch@gnat.com>
39780
39781         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
39782
39783 2001-12-04  Geert Bosch  <bosch@gnat.com>
39784
39785         * Makefile.in (update-sources): New target.
39786         For use by gcc_release script.
39787
39788 2001-12-04  Ed Schonberg  <schonber@gnat.com>
39789
39790         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
39791         a configuration pragma, it is now legal wherever a pragma can appear.
39792
39793 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
39794
39795         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
39796         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
39797         is now @CROSS@ -DIN_GCC; update comment.
39798
39799 2001-12-04  Robert Dewar  <dewar@gnat.com>
39800
39801         * einfo.adb (Has_Pragma_Pure_Function): New flag.
39802         Fix problem that stopped ceinfo from working
39803
39804         * einfo.ads (Has_Pragma_Pure_Function): New flag.
39805
39806         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
39807
39808 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
39809
39810         * gnatchop.adb:
39811         (File_Time_Stamp): New procedure.
39812         (Preserve_Mode): New boolean.
39813         (Write_Unit): Pass time stamp.
39814         Implement -p switch (preserve time stamps).
39815
39816         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
39817
39818         * gnatchop.adb: Do usage info for -p switch
39819
39820         * adaint.h (__gnat_set_file_time_name): New function
39821
39822         * adaint.c (__gnat_set_file_time_name): Implement
39823
39824         * adaint.h: Fix typo
39825
39826 2001-12-03  Robert Dewar  <dewar@gnat.com>
39827
39828         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
39829         have Associated_Node.
39830
39831 2001-12-03  Robert Dewar  <dewar@gnat.com>
39832
39833         * prj-proc.adb: Minor reformatting
39834
39835         * make.adb: Minor reformatting
39836
39837 2001-12-03  Geert Bosch  <bosch@gnat.com>
39838
39839         * make.adb: Minor reformatting.
39840
39841 2001-12-03 Robert Dewar  <dewar@gnat.com>
39842
39843         * sem_ch12.adb: Minor reformatting
39844
39845 2001-12-03  Ed Schonberg  <schonber@gnat.com>
39846
39847         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
39848         push Standard on the stack before analyzing the instance body,
39849         in order to have a clean visibility environment.
39850
39851         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
39852
39853 2001-12-03  Ed Schonberg  <schonber@gnat.com>
39854
39855         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
39856         instantiation of a body that contains an inlined body.
39857
39858 2001-12-03  Ed Schonberg  <schonber@gnat.com>
39859
39860         * sem_ch12.adb:
39861         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
39862         to prevent freezing within formal packages.
39863         (Freeze_Subprogram_Body): If body comes from another instance that
39864         appeared before its own body, place freeze node at end of current
39865         declarative part, to prevent a back-end crash.
39866         (Inline_Instance_Body): Handle properly a package instance within
39867         a subprogram instance that is a child unit.
39868
39869 2001-12-01  Graham Stott  <grahams@redhat.com>
39870
39871         * Makefile.in (misc.o): Add missing $(srcdir) prefix
39872         and add optabs.h dependency.
39873
39874         * misc.c: Include optabs.h
39875         (gnat_tree_code_type): Make static and const.
39876         (gnat_tree_code_length): Likewise.
39877         (gnat_tree_code_name): Likewise.
39878         (update_setjmp_buf): Obtain operands mode from insn_data.
39879
39880 2001-11-29  Richard Henderson  <rth@redhat.com>
39881
39882         * init.c: Remove obsolete dwarf2 frame.h section.
39883
39884 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
39885
39886         * Make-lang.in (ada.generated-manpages): New dummy target.
39887
39888 2001-11-29  Ed Schonberg  <schonber@gnat.com>
39889
39890         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
39891         into Command, an array conversion is illegal here. Uncovered by
39892         ACATS B460005.
39893
39894 2001-11-28  Geert Bosch  <bosch@gnat.com>
39895
39896         * init.c: Minor whitespace changes.
39897
39898 2001-11-28  Doug Rupp  <rupp@gnat.com>
39899
39900         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
39901         signal stack.
39902
39903 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
39904
39905         * misc.c (gnat_expand_constant): Move declaration above
39906         definition of lang_hooks.
39907         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
39908         (gnat_init): lang_expand_constant no longer exists.
39909
39910         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
39911         always have vprintf.
39912         (gnat_init): Always call set_internal_error_function.
39913
39914 2001-11-27  Andreas Jaeger  <aj@suse.de>
39915
39916         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
39917
39918 2001-11-27  Laurent Guerby  <guerby@acm.org>
39919
39920         * Makefile.in: Regenerate Ada dependencies.
39921
39922 2001-11-26  Richard Henderson  <rth@redhat.com>
39923
39924         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
39925         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
39926         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
39927
39928 2001-11-25  Laurent Guerby  <guerby@acm.org>
39929
39930         * sysdep.c (rts_get_*): Fix style.
39931
39932 2001-11-19  Laurent Guerby  <guerby@acm.org>
39933
39934         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
39935         since it is of no apparent use and cause warnings.
39936
39937 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
39938
39939         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
39940         static too.
39941         (gnat_init): Don't return NULL.
39942         (finish_parse): Remove.
39943
39944 2001-11-17  Laurent Guerby  <guerby@acm.org>
39945
39946         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
39947         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
39948         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
39949         * lang-spec.h: Add missing struct field to silence warnings.
39950         * sysdep.c (rts_get_*): Provide K&R prototype.
39951         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
39952         * traceback.c (Unlock_Task, Lock_Task): Likewise.
39953         * tracebak.c (__gnat_backtrace): Remove unused variable.
39954         * utils.c (end_subprog_body): Move to K&R style.
39955
39956 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39957
39958         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
39959
39960 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
39961
39962         * misc.c (gnat_init): Change prototype.  Include the
39963         functionality of the old init_parse and init_decl_processing.
39964         (gnat_init_decl_processing): New prototype.
39965         (init_parse): Remove.
39966         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
39967
39968 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
39969
39970         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
39971         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
39972         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
39973         set_yydebug): Remove.
39974
39975 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
39976
39977         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
39978         (struct lang_hooks): Constify.
39979         (language_string, lang_identify): Remove.
39980         * utils.c (init_decl_processing): Update.
39981
39982 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
39983
39984         * misc.c: Include langhooks-def.h.
39985         * Makefile.in: Update.
39986
39987 2001-10-30  Robert Dewar  <dewar@gnat.com>
39988
39989         * style.adb:
39990         (Check_Identifier): Rewrite circuit to be compatible with use of letters
39991         in the upper half of ASCII.
39992         (Check_Identifier): Minor reformatting
39993
39994 2001-10-30  Geert Bosch  <bosch@gnat.com>
39995
39996         * (Associated_Node, Set_Associated_Node): Do not check for
39997         Freeze_Entity.
39998
39999 2001-10-30  Robert Dewar  <dewar@gnat.com>
40000
40001         * a-reatim.ads: Minor reformatting
40002
40003 2001-10-30  Robert Dewar  <dewar@gnat.com>
40004
40005         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
40006         undocumented declarations.
40007
40008 2001-10-30  Pascal Obry  <obry@gnat.com>
40009
40010         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
40011         to the binder and linker.
40012         Minor style fix.
40013
40014         * mdll.ads: Fix layout.  Update copyright notice.
40015
40016         * mdll.adb: Fix layout.  Update copyright notice.
40017
40018 2001-10-30  Robert Dewar  <dewar@gnat.com>
40019
40020         * usage.adb: Minor fix to output for -gnaty.
40021
40022 2001-10-30  Ed Schonberg  <schonber@gnat.com>
40023
40024         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
40025         to accommodate all its possible values.
40026
40027         * a-reatim.adb (Split): Special-case handling of Time_Span_First
40028         and of small absolute values of T.
40029
40030 2001-10-30  Richard Kenner  <kenner@gnat.com>
40031
40032         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
40033         set_mem_attributes since not needed and wrong if RESULT if a REG;
40034         fixes ACATS failures.
40035
40036 2001-10-30  Geert Bosch  <bosch@gnat.com>
40037
40038         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
40039         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
40040
40041 2001-10-30  Robert Dewar  <dewar@gnat.com>
40042
40043         * bindusg.adb: Undocument -f switch.
40044
40045         * gnatcmd.adb: Remove /FULL_ELABORATION.
40046
40047         * opt.ads (Force_RM_Elaboration_Order): Document that this is
40048         obsolescent.
40049
40050         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
40051
40052         * gnatbind.adb: Minor update of warning msg.
40053
40054 2001-10-30  Vincent Celier  <celier@gnat.com>
40055
40056         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
40057         for project file switches (-P (/PROJECT_FILE=),
40058          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
40059         or MEDIUM or HIGH)
40060
40061 2001-10-30  Geert Bosch  <bosch@gnat.com>
40062
40063         * decl.c: Minor whitespace fixes.
40064
40065 2001-10-30  Richard Kenner  <kenner@gnat.com>
40066
40067         * utils2.c (build_allocator): Test for SIZE overflow in array case too
40068
40069 2001-10-30  Geert Bosch  <bosch@gnat.com>
40070
40071         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
40072         Found due to GCC 3.0 warning of using uninitialized value.
40073
40074         * layout.adb:
40075         (Get_Max_Size): Use variant record for tracking value/expression.
40076          Makes logic clearer and prevents warnings for uninitialized variables.
40077         (Layout_Array_Type): Use variant record for tracking value/expression.
40078          Makes logic clearer and prevents warnings for uninitialized variables.
40079
40080 2001-10-30  Robert Dewar  <dewar@gnat.com>
40081
40082         * lib.adb: Minor reformatting
40083
40084         * s-taprop.ads: Minor reformatting
40085
40086 2001-10-29  Laurent Guerby  <guerby@acm.org>
40087
40088         * init.c:
40089         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
40090         const.
40091         (_gnat_error_handler): Make MSG const.
40092
40093 2001-10-29  Richard Kenner  <kenner@gnat.com>
40094
40095         * sysdep.c: Fix localtime_r problem on LynxOS.
40096         Also remove #elif to avoid warnings.
40097
40098         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
40099         used by this.
40100
40101         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
40102
40103 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
40104
40105         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
40106         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
40107         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
40108         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
40109         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
40110         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
40111         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
40112         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
40113         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
40114         types.ads, urealp.adb: Fix spelling errors.
40115
40116 2001-10-27  Laurent Guerby  <guerby@acm.org>
40117
40118         * trans.c (gigi): Fix non determinism leading to bootstrap
40119         comparison failures for debugging information.
40120
40121 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
40122
40123         * gnat_rm.texi: Use @./@: where appropriate.
40124
40125 2001-10-26  Robert Dewar  <dewar@gnat.com>
40126
40127         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
40128
40129 2001-10-26  Richard Kenner  <kenner@gnat.com>
40130
40131         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
40132
40133 2001-10-26  Richard Kenner  <kenner@gnat.com>
40134
40135         * decl.c (validate_size): Modify message for bad size to avoid
40136         implication that compiler is modifying the size.
40137
40138 2001-10-26  Robert Dewar  <dewar@gnat.com>
40139
40140         * prj-util.adb: Minor reformatting. Fix bad header format.
40141
40142 2001-10-26  Robert Dewar  <dewar@gnat.com>
40143
40144         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
40145
40146         * sinfo.ads: Clarify use of Associated_Node (documentation only).
40147
40148         * sem_ch12.adb: Change Node4 to Associated_Node. Change
40149         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
40150         much more narrowly in places where needed. These are cleanups.
40151
40152 2001-10-26  Joel Brobecker  <brobecke@gnat.com>
40153
40154         * 5zosinte.ads (null_pthread): new constant.
40155
40156         * 5ztaprop.adb:
40157         (Initialize_TCB): Initialize thread ID to null, to be able to verify
40158          later that this field has been set.
40159         (Finalize_TCB): ditto.
40160         (Suspend_Task): Verify that the thread ID is not null before using it.
40161         (Resume_Task): ditto.
40162
40163         * s-tasdeb.adb:
40164         (Resume_All_Tasks): Lock the tasks list before using it.
40165         (Suspend_All_Tasks): ditto.
40166
40167 2001-10-26  Richard Kenner  <kenner@gnat.com>
40168
40169         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
40170         Make constant variant of designated type for Is_Access_Constant.
40171         Call update_pointer_to with main variant.
40172
40173         * trans.c (process_freeze_entity, process_type):
40174         Call update_pointer_to on main variant.
40175
40176         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
40177         If main variant, update all other variants.
40178
40179         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
40180         TREE_STATIC.
40181
40182 2001-10-26  Robert Dewar  <dewar@gnat.com>
40183
40184         * prj-util.adb: Minor reformatting
40185
40186 2001-10-26  Robert Dewar  <dewar@gnat.com>
40187
40188         * prj-util.adb: Minor reformatting
40189
40190 2001-10-26  Robert Dewar  <dewar@gnat.com>
40191
40192         * prj-attr.adb: Minor reformatting throughout
40193
40194 2001-10-26  Robert Dewar  <dewar@gnat.com>
40195
40196         * prj-attr.ads: Minor reformatting
40197         Add ??? comment (this whole spec has almost no comments)
40198
40199 2001-10-26  Vincent Celier  <celier@gnat.com>
40200
40201         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
40202         ("//") that precede the drive letter on Interix.
40203
40204 2001-10-26  Geert Bosch  <bosch@gnat.com>
40205
40206         * gnat_rm.texi: Add GNAT Reference Manual.
40207
40208 2001-10-25  Robert Dewar  <dewar@gnat.com>
40209
40210         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
40211         is Error. Similar change for other renaming cases.
40212
40213 2001-10-25  Robert Dewar  <dewar@gnat.com>
40214
40215         * s-atacco.ads: Add pragma Inline_Always for functions.
40216         Fix header format. Add copyright 2001
40217
40218 2001-10-25  Ed Schonberg  <schonber@gnat.com>
40219
40220         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
40221         return Error rather than Empty so that analysis can proceed.
40222
40223 2001-10-25  Ed Schonberg  <schonber@gnat.com>
40224
40225         * sem_util.adb (Enter_Name): better handling of cascaded error
40226         messages when a unit appears in its own context.
40227
40228 2001-10-25  Ed Schonberg  <schonber@gnat.com>
40229
40230         * sem_util.adb (Defining_Entity): in case of error, attach created
40231         entity to specification, so that semantic analysis can proceed.
40232
40233 2001-10-25  Robert Dewar  <dewar@gnat.com>
40234
40235         * sem_util.adb
40236         (Defining_Entity): Deal with Error.
40237         (Process_End_Label): Deal with bad end label for.
40238
40239 2001-10-25  Ed Schonberg  <schonber@gnat.com>
40240
40241         * sem_elab.adb (Check_A_Call): refine message when call is in an
40242         instance but callee is not declared in the generic unit.
40243
40244 2001-10-25  Ed Schonberg  <schonber@gnat.com>
40245
40246         * sem_elab.adb (Check_A_Call): check for renaming before finding the
40247         enclosing unit, which may already be different from the calling unit.
40248
40249 2001-10-25  Geert Bosch  <bosch@gnat.com>
40250
40251         * 4gintnam.ads: fix header format.
40252
40253 2001-10-25  Ed Schonberg  <schonber@gnat.com>
40254
40255         * sem_res.adb (Resolve_Call): if the call is actually an indexing
40256         operation on the result of a parameterless call, perform elaboration
40257         check after the node has been properly rewritten.
40258
40259         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
40260         inlined within the generic tree, the defining identifier is not a
40261         compilation_unit.
40262
40263 2001-10-25  Ed Schonberg  <schonber@gnat.com>
40264
40265         * sem_res.adb (Resolve): special-case resolution of Null in an
40266          instance or an inlined body to avoid view conflicts.
40267
40268         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
40269          compatibility by retrieving the access type of the generic copy.
40270
40271 2001-10-25  Robert Dewar  <dewar@gnat.com>
40272
40273         * sem_ch3.adb:
40274         (Analyze_Number_Declaration): Handle error expression.
40275         (Signed_Integer_Type_Declaration): Handle error bound.
40276         (Analyze_Subtype_Indication): Handle error range.
40277
40278         * sem_util.adb (Get_Index_Bounds): Check for Error.
40279
40280 2001-10-25  Robert Dewar  <dewar@gnat.com>
40281
40282         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
40283         in no run time mode.
40284
40285 2001-10-25  Pascal Obry  <obry@gnat.com>
40286
40287         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
40288         mode case for ALLOC case.
40289
40290         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
40291         all platforms. Improvement of last change.
40292
40293 2001-10-25  Robert Dewar  <dewar@gnat.com>
40294
40295         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
40296
40297 2001-10-25  Geert Bosch  <bosch@gnat.com>
40298
40299         * osint.adb (Is_Relative): Remove duplicate.
40300
40301 2001-10-25  Pascal Obry  <obry@gnat.com>
40302
40303         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
40304         pathnames in UNIX and DOS style with drive letter.
40305         (Is_Relative): new routine.
40306
40307         * osint.adb: Minor reformatting
40308
40309         * osint.adb (Is_Relative): implementation using
40310         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
40311
40312 2001-10-25  Pascal Obry  <obry@gnat.com>
40313
40314         * g-dirope.adb (Basename): correctly compute offset between the
40315         original Path and the translated one.
40316
40317         * g-dirope.adb: (Base_Name): add some comments.
40318
40319 2001-10-25  Robert Dewar  <dewar@gnat.com>
40320
40321         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
40322         in HIE mode, avoids compilation abandoned message
40323
40324         * exp_imgv.adb: Correct typo in previous change
40325
40326         * exp_imgv.adb: Correct typo in previous change (not my day!)
40327
40328 2001-10-25  Robert Dewar  <dewar@gnat.com>
40329
40330         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
40331
40332 2001-10-25  Pascal Obry  <obry@gnat.com>
40333
40334         * g-awk.ads: Move all pragma inlines next to the routine
40335          declarations. This is more uniform with other GNAT spec.
40336
40337 2001-10-22  Geert Bosch  <bosch@gnat.com>
40338
40339         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
40340
40341 2001-10-19  Geert Bosch  <bosch@gnat.com>
40342
40343         * Makefile.in (tools, gnattools): Remove gnatmem.
40344
40345 2001-10-17  Richard Henderson  <rth@redhat.com>
40346
40347         * Makefile.in (misc.o): Depend on langhooks.h.
40348         * misc.c: Include it.
40349         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
40350         (LANG_HOOKS_DECODE_OPTION): New.
40351         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
40352
40353 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
40354
40355         * trans.c (tree_transform): Adjust to recent change in
40356         expand_asm_operands to implement named asm operands.
40357
40358 2001-10-11  Ed Schonberg  <schonber@gnat.com>
40359
40360         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
40361         renaming of discriminant for mutable record type.
40362
40363 2001-10-11  Robert Dewar  <dewar@gnat.com>
40364
40365         * validsw.adb: Properly save -gnatVn status.
40366
40367 2001-10-11  Robert Dewar  <dewar@gnat.com>
40368
40369         * usage.adb: Add lines for V switch.
40370
40371         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
40372         (/VALIDITY_CHECKING).
40373
40374 2001-10-11  Ed Schonberg  <schonber@gnat.com>
40375
40376         * sem_type.adb (Add_One_Interp): an operator for a type declared in
40377         an extension of System is known to be visible.
40378
40379 2001-10-11  Ed Schonberg  <schonber@gnat.com>
40380
40381         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
40382         properly. Fixes regression on ACATS C34005G.
40383
40384 2001-10-11  Robert Dewar  <dewar@gnat.com>
40385
40386         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
40387         loop in generic instance, since this is likely not very useful.
40388
40389 2001-10-11  Robert Dewar  <dewar@gnat.com>
40390
40391         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
40392         the error message for high integrity mode.
40393
40394         * rtsfind.adb (RTE): Give message if we try to find an entity that
40395         is not available in high integrity mode.
40396
40397         * rtsfind.ads:
40398         (OK_To_Use_In_HIE_Mode): New array.
40399         (RTE): May return Empty in high integrity mode.
40400
40401         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
40402         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
40403
40404         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
40405         unit if not inlined always and in no runtime mode. Fixes problem
40406         caused by new Rtsfind changes.
40407
40408         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
40409         body is deleted.
40410
40411         * rtsfind.adb (RTE): Make sure we do not try to load unit after
40412         giving message for entity not available in high integrity mode.
40413
40414 2001-10-11  Pascal Obry  <obry@gnat.com>
40415
40416         * impunit.adb: Add GNAT.CRC32.
40417
40418 2001-10-11  Ed Schonberg  <schonber@gnat.com>
40419
40420         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
40421         properly the case where one universal operand in a non-static
40422         exponentiation of a real literal.
40423
40424 2001-10-11  Ed Schonberg  <schonber@gnat.com>
40425
40426         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
40427         clause, return the gobal finalization list, for lack of anthing else.
40428
40429 2001-10-11  Ed Schonberg  <schonber@gnat.com>
40430
40431         * exp_ch7.adb (Make_Transient_Block): if statement is within
40432         exception handler, always use new transient scope to place Clean
40433         procedure.
40434
40435 2001-10-11  Pascal Obry  <obry@gnat.com>
40436
40437         * Makefile.in:
40438         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
40439         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
40440         (GNATLS_RTL_OBJS): add g-crc32.o
40441         (GNATMAKE_RTL_OBJS): add g-crc32.o
40442
40443         * ali-util.adb:
40444         (CRC_Match): new function.
40445         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
40446         instead of the previous simple checksum algorithm.
40447         (Time_Stamp_Mismatch): use CRC_Match for comparison.
40448         (Set_Source_Table): idem.
40449
40450         * ali-util.ads:
40451         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
40452         instead of simple checksum.
40453         (CRC_Match): new function.
40454         (CRC_Error): new constant.
40455
40456         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
40457         a CRC now and not a simple checksum. A CRC uses lower-case hex
40458         letters, fixes ambiguity in parsing.
40459
40460         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
40461         is what this variable will store.
40462
40463         * bcheck.adb: Change reference to chechsum in comments by CRC.
40464         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
40465         rename All_Checksum_Match to All_CRC_Match. Change due to API
40466         renaming since now GNAT does not use a simple checksum but a
40467         CRC using GNAT.CRC32.
40468
40469         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
40470         now and not anymore a simple checksum.
40471
40472         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
40473         places.
40474
40475         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
40476
40477         * scans.adb:
40478         (Restore_Scan_State): rename Checksum to CRC.
40479         (Save_Scan_State): idem.
40480
40481         * scans.ads:
40482         With GNAT.CRC32.
40483         (Checksum): rename to CRC.
40484         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
40485
40486         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
40487         GNAT.CRC32).  Update copyright notice.
40488
40489         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
40490         GNAT.CRC32).  Update copyright notice.
40491
40492         * scn.adb:
40493         (Accumulate_Checksum): removed.
40494         (Update): new procedure. Add a wide-character into the CRC.
40495
40496         * sinput-l.adb:
40497         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
40498         (Load_File): fix initialization of S (change Source_Checksum to
40499         Source_CRC)
40500
40501         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
40502         Source_CRC in S initialization.
40503
40504         * sinput.adb (Source_Checksum): renamed to Source_CRC.
40505
40506         * sinput.ads (Source_Checksum): renamed to Source_CRC.
40507         Update comments for the CRC.
40508
40509         * types.adb (Hex): Use lowercase for the letter part.
40510
40511         * types.ads (Get_Hex_String): Returns the hexadecimal representation
40512         for a word. This is currently used only for CRC. In previous version,
40513         the checksum was using a representation with all letter being
40514         upper-case. With the new implementation (using CRC) we do not remove
40515         the 32th bit of the CRC, so we can have an upper-case starting letter
40516         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
40517         It is ambigous since the CRC was optional and could be followed by
40518         options like EB, EE. So now this routines uses lower-case letter for
40519         the hexadecimal representation. Strange enough only lower case letters
40520         where checked in Scan_ALI (even if this was not a possible case).
40521
40522         * gnatvsn.ads (Library_Version): changed to 3.15a.
40523
40524         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
40525         for the compiler.
40526
40527         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
40528         for the compiler.
40529
40530         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
40531         Add 2001 to copyright notice
40532         (Accumulate_Checksum): Modify to use System.CRC32.
40533
40534         * ali-util.ads: Redo changes of previous revision to continue to use
40535         the word Checksum. Add 2001 to copyright notice.
40536
40537         * ali.adb: Undo some of previous changes, not needed.
40538         Keep the change for lower case letters in the checksum.
40539
40540         * ali.ads: Undo previous change not needed.
40541
40542         * bcheck.adb: Undo most of previous change, not needed.
40543         But do use Checksums_Match for checksum comparison.
40544
40545         * gnatls.adb: Undo most of previous change, not needed.
40546         But do use Checksums_Match for comparing checksums.
40547
40548         * lib-load.adb: Undo previous change, not needed.
40549
40550         * lib-writ.adb: Undo previous change, not needed.
40551
40552         * lib-writ.ads: Document that checksums use lower case,
40553         not upper case letters.
40554
40555         * scans.adb: Undo previous change, not needed
40556
40557         * scans.ads: Undo previous change, not needed.
40558
40559         * scn-nlit.adb: Undo previous changes, not needed.
40560
40561         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
40562
40563         * scn.adb:
40564         (Accumulate_Checksum): Use System.CRC32.
40565         (Initialize_Checksum): New procedure.
40566         Remove other changes of previous revision.
40567
40568         * sinput-p.adb: Undo previous change, not needed.
40569
40570         * sinput.adb: Undo previous change, not needed.
40571
40572         * sinput-l.adb: Undo previous change, not needed.
40573
40574         * sinput.ads: Undo previous change, not needed.  Keep only comment
40575         on new checksum algorithm
40576
40577         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
40578         Also remove a-tags and a-stream from GNAT sources.
40579
40580         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
40581
40582         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
40583
40584 2001-10-11  Geert Bosch  <bosch@gnat.com>
40585
40586         * einfo.h: Regenerate.
40587
40588         * nmake.ads: Regenerate.
40589
40590         * nmake.adb: Regenerate.
40591
40592         * sinfo.h: Regenerate.
40593
40594         * treeprs.adb: Regenerate.
40595
40596 2001-10-10  Geert Bosch  <bosch@gnat.com>
40597
40598         * gnat-style.texi: New file describing coding guidelines for Ada.
40599
40600 2001-10-10  Ed Schonberg  <schonber@gnat.com>
40601
40602         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
40603         is Flag174.
40604
40605 2001-10-10  Geert Bosch  <bosch@gnat.com>
40606
40607         * snames.ads: Add new names for project facility.
40608
40609         * snames.adb: Update to reflect snames.ads changes.
40610
40611         * snames.h: Update to reflect snames.ads changes.
40612
40613 2001-10-10  Vincent Celier  <celier@gnat.com>
40614
40615         * make.adb:
40616         (Add_Switches): reflect the changes for the switches attributes
40617         Default_Switches indexed by the programming language,
40618         Switches indexed by the file name.
40619         (Collect_Arguments_And_Compile): Idem.
40620         Reflect the attribute name changes.
40621
40622         * prj-attr.adb:
40623         (Initialisation_Data): Change the names of some packages and
40624         attributes.
40625         (Initialize): process case insensitive associative arrays.
40626
40627         * prj-attr.ads:
40628         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
40629
40630         * prj-dect.adb:
40631         (Parse_Attribute_Declaration): For case insensitive associative
40632          arrays, set the index string to lower case.
40633
40634         * prj-env.adb:
40635         Reflect the changes of the project attributes.
40636
40637         * prj-nmsc.adb:
40638         Replace Check_Naming_Scheme by Ada_Check and
40639         Language_Independent_Check.
40640
40641         * prj-nmsc.ads:
40642         Replaced Check_Naming_Scheme by 2 procedures:
40643         Ada_Check and Language_Independent_Check.
40644
40645         * prj-proc.adb:
40646         (Process_Declarative_Items): For case-insensitive associative
40647         arrays, set the index string to lower case.
40648         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
40649         Prj.Nmsc.Check_Naming_Scheme.
40650
40651         * prj-tree.adb:
40652         (Case_Insensitive): New function
40653         (Set_Case_Insensitive): New procedure
40654
40655         * prj-tree.ads:
40656         (Case_Insensitive): New function
40657         (Set_Case_Insensitive): New procedure
40658         (Project_Node_Record): New flag Case_Insensitive.
40659
40660         * prj-util.adb:
40661         (Value_Of): new function to get the string value of a single
40662         string variable or attribute.
40663
40664         * prj-util.ads:
40665         (Value_Of): new function to get the string value of a single
40666         string variable or attribute.
40667
40668         * prj.adb:
40669         (Ada_Default_Spec_Suffix): New function
40670         (Ada_Default_Impl_Suffix): New function
40671         Change definitions of several constants to reflect
40672         new components of record types.
40673
40674         * prj.ads:
40675         (Naming_Data): Change several components to reflect new
40676         elements of naming schemes.
40677         (Project_Data): New flags Sources_Present and
40678         Language_Independent_Checked.
40679         (Ada_Default_Spec_Suffix): New function.
40680         (Ada_Default_Impl_Suffix): New function.
40681
40682         * snames.ads:
40683         Modification of predefined names for project manager: added
40684         Implementation, Specification_Exceptions, Implementation_Exceptions,
40685         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
40686         Default_Switches, _Languages, Builder, Cross_Reference,
40687         Finder. Removed Body_Part, Specification_Append, Body_Append,
40688         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
40689         Gnatlink.
40690
40691         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
40692         Add comments.
40693
40694         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
40695         not that it is Nil_Variable_Value.
40696
40697         * prj.ads: Add ??? for uncommented declarations
40698
40699 2001-10-10  Ed Schonberg  <schonber@gnat.com>
40700
40701         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
40702         constant, do not indicate possible modification, so that gigi can
40703         treat it as a bona fide constant.
40704
40705 2001-10-10  Robert Dewar  <dewar@gnat.com>
40706
40707         * sem_prag.adb: Add processing for pragma External.
40708
40709         * snames.ads: Add entry for pragma External.
40710
40711         * par-prag.adb: Add pragma External.
40712
40713         * snames.adb: Updated to match snames.ads.
40714
40715 2001-10-10  Ed Schonberg  <schonber@gnat.com>
40716
40717         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
40718         a dynamic task if the allocator appears in an indexed assignment
40719         or selected component assignment.
40720
40721         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
40722         For a dynamic task in an assignment statement, use target of
40723         assignment to generate meaningful name.
40724
40725 2001-10-10  Ed Schonberg  <schonber@gnat.com>
40726
40727         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
40728         a generic package.
40729
40730         * einfo.ads: Body_Entity is also defined for generic package.
40731         Documentation change only
40732
40733         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
40734         others_choice for a discriminated component initialization,
40735         convert discriminant references into the corresponding discriminals.
40736
40737         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
40738         only if original type is private and expression has to be wrapped
40739         in a conversion.
40740
40741         * checks.adb:
40742         (Apply_Constraint_Check): Do not perform length check
40743         if expression is an aggregate with only an others_choice.
40744         (Length_N_Cond): two references to the same in_parameter
40745         (typically the discriminal in an init_proc) denote the same value.
40746         Two useful optimization uncovered by bugfixes above.
40747
40748 2001-10-10  Robert Dewar  <dewar@gnat.com>
40749
40750         * xeinfo.adb: Change int to char in translation of enumeration types.
40751         This fixes a problem in the C representation of component alignment.
40752         Add 2001 to copyright notice
40753
40754 2001-10-10  Richard Kenner  <kenner@gnat.com>
40755
40756         * decl.c: (validate_size): Do check size of object of integral type
40757         if it is a packed array type.
40758
40759 2001-10-10  Richard Kenner  <kenner@gnat.com>
40760
40761         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
40762         VAR_DECL for constant if not Is_Public but -O0.
40763
40764 2001-10-10  Richard Kenner  <kenner@gnat.com>
40765
40766         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
40767
40768 2001-10-10  Geert Bosch  <bosch@gnat.com>
40769
40770         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
40771         use '/' as switch character, allowing for absolute file names.
40772
40773 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
40774
40775         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
40776         FSF address.
40777
40778 2001-10-08  Geert Bosch  <bosch@gnat.com>
40779
40780         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
40781         Automatically build utilities when files need to be regenerated.
40782
40783 2001-10-08  Geert Bosch  <bosch@gnat.com>
40784
40785         * xsnames.adb: New utility for updating snames.ads and snames.adb
40786
40787 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
40788
40789         * Make-lang.in (ADAFLAGS): Add -W -Wall.
40790         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
40791         (gnat1): Also depend on attribs.o.
40792         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
40793         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
40794         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
40795         (ADAFLAGS): Add -W -Wall.
40796         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
40797         take out CFLAGS.
40798
40799         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
40800         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
40801         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
40802         Use $(ADAC), not $(CC), as compilation command.
40803
40804         (gnattools): Depend directly on tools to build, don't use
40805         recursive make.
40806         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
40807
40808         * einfo.h, sinfo.h: New files (autogenerated).
40809
40810 2001-10-08  Richard Henderson  <rth@redhat.com>
40811
40812         * comperr.adb (Abort_In_Progress): New.
40813         (Compiler_Abort): Use it to prevent recursion.
40814
40815 2001-10-08  Robert Dewar  <dewar@gnat.com>
40816
40817         * atree.adb: Set Error_Posted in Error node, helps error recovery.
40818
40819         * par-endh.adb (Output_End_Expected): We should also not test
40820         Error_Posted on the Error node, since now it is always set.
40821
40822         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
40823         to help error recovery. Part of general work on 9407-004.
40824
40825         * par.adb: Add ??? for misuse of error
40826
40827         * sem_res.adb:
40828         (Resolve): Defend against Error, fixes 9407-003.
40829         (Resolve_Discrete_Subtype_Indication): Defend against Error.
40830
40831         * sinfo.ads (N_Error): Now has Etype field (which will be set
40832         to Any_Type to help error recovery).
40833
40834 2001-10-08  Richard Kenner  <kenner@gnat.com>
40835
40836         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
40837         Consistently set MEM attributes from expression; fixes
40838         bootstrap failure on x86.
40839
40840 2001-10-08  Geert Bosch  <bosch@gnat.com>
40841
40842         * 5oosinte.adb: Add 2001 to copyright notice.
40843
40844 2001-10-08  Geert Bosch  <bosch@gnat.com>
40845
40846         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
40847
40848         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
40849
40850 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
40851
40852         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
40853
40854 2001-10-05  Geert Bosch  <bosch@gnat.com>
40855
40856         * adaint.h: Small formatting fix.
40857
40858 2001-10-04  Geert Bosch  <bosch@gnat.com>
40859
40860         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
40861         Arg is int, not FILE *, in dummy version of functions.
40862
40863         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
40864         Arg is int, not FILE *.
40865
40866 2001-10-04  Geert Bosch  <bosch@gnat.com>
40867
40868         * 3lsoccon.ads: Added file, missed with initial check ins.
40869
40870         * 4lintnam.ads: Fix header format.
40871         Change Linux to GNU/Linux.
40872
40873         * 5iosinte.adb: Change Linux to GNU/Linux.
40874
40875         * 5iosinte.ads: Change Linux to GNU/Linux.
40876
40877         * 5itaprop.adb: Change Linux to GNU/Linux.
40878
40879         * 5itaspri.ads: Change Linux to GNU/Linux.
40880         Update copyright notice.
40881
40882         * 5lintman.adb: Change Linux to GNU/Linux.
40883
40884         * 5lml-tgt.adb: Change Linux to GNU/Linux.
40885
40886         * 5losinte.ads: Change Linux to GNU/Linux.
40887
40888         * 5lsystem.ads: Change Linux to GNU/Linux.
40889
40890         * 5qosinte.adb: Change Linux to GNU/Linux.
40891
40892         * 5qosinte.ads: Change Linux to GNU/Linux.
40893
40894         * 5qparame.ads: Change Linux to GNU/Linux.
40895
40896         * 5qtaprop.adb: Change Linux to GNU/Linux.
40897
40898         * 5qtaspri.ads: Change Linux to GNU/Linux.
40899         Add 2001 to copyright notice.
40900
40901         * 5vintman.ads: Change Linux to GNU/Linux.
40902         Fix header format.  Add 2001 to copyright notice.
40903
40904         * g-soccon.ads: Change Linux to GNU/Linux.
40905
40906         * g-trasym.ads: Change Linux to GNU/Linux.
40907         Add 2001 to copyright notice.
40908
40909         * memtrack.adb: Change Linux to GNU/Linux.
40910
40911         * s-intman.ads: Change Linux to GNU/Linux.
40912         Add 2001 to copyright notice.  Fix header format.
40913
40914         * s-stache.adb: Change Linux to GNU/Linux.
40915
40916         * adaint.c: Change Linux to GNU/Linux.
40917
40918         * cio.c: Change Linux to GNU/Linux.
40919
40920         * cstreams.c: Change Linux to GNU/Linux.
40921
40922         * init.c: Change Linux to GNU/Linux.
40923
40924         * gmem.c: Change Linux to GNU/Linux.
40925
40926         * tracebak.c: Change Linux to GNU/Linux.
40927
40928
40929 2001-10-02  Geert Bosch  <bosch@gnat.com>
40930
40931         * misc.c (insert_default_attributes): Add dummy version.