OSDN Git Service

Resync.
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2008-08-01  Robert Dewar  <dewar@adacore.com>
2
3         * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer
4
5 2008-08-01  Doug Rupp  <rupp@adacore.com>
6
7         * gnat_rm.texi: Document new mechanism Short_Descriptor.
8         
9         * types.ads (Mechanism_Type): Modify range for new Short_Descriptor
10         mechanism values.
11
12         * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
13         mechanism and Short_Descriptor mechanism values.
14
15         * snames.adb (preset_names): Add short_descriptor entry.
16
17         * snames.ads: Add Name_Short_Descriptor.
18
19         * types.h: Add new By_Short_Descriptor mechanism values.
20
21         * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
22         mechanism and Short_Descriptor mechanism values.
23
24         * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism
25         values.
26         (Descriptor_Codes): Modify range for new mechanism values.
27
28         * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
29         mechanism values.
30
31         * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
32         (gnat_to_gnu_param): Handle By_Short_Descriptor.
33
34         * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
35         (build_vms_descriptor32): New prototype.
36         (fill_vms_descriptor): Remove unneeded gnat_actual parameter.
37
38         * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
39         argument in call fill_vms_descriptor.
40
41         * gcc-interface/utils.c (build_vms_descriptor32): Renamed from
42         build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
43         (build_vms_descriptor): Renamed from build_vms_descriptor64. 
44         (convert_vms_descriptor32): New function.
45         (convert_vms_descriptor64): New function.
46         (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
47         descriptors.
48
49         * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
50         no longer needed.
51
52 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
53
54         * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam
55         nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary
56         name.
57
58 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
59
60         * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the
61         current directory so only fully qualified names are allowed.
62
63 2008-08-01  Robert Dewar  <dewar@adacore.com>
64
65         * gnat_ugn.texi:
66         Minor editing, remove uncomfortable use of semicolon
67
68         * s-ststop.adb: Add some ??? comments
69
70         * sem_ch10.adb: Minor reformatting
71
72         * snames.ads:
73         Minor comment fixes, some pragmas were not properly
74         categorized in the comments, documentation change only
75
76         * xref_lib.adb: Minor reformatting
77
78         * sinput.adb: Minor reformatting
79
80         * gnatchop.adb: Minor reformatting
81
82         * sem_util.ads: Minor reformatting.
83
84         * opt.ads: Minor documentation fix
85
86         * scng.adb: Minor reformatting
87
88         * prj-part.adb: Update comments
89
90 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
91
92         * exp_disp.adb (Expand_Interface_Conversion): If the target type is a
93         tagged synchronized type, use corresponding record type.
94
95 2008-08-01  Doug Rupp  <rupp@adacore.com>
96
97         * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a
98         dummy transfer address for debugging.
99         
100         * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise.
101
102         * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING
103
104 2008-07-31  Eric Botcazou  <ebotcazou@adacore.com>
105
106         * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting.
107         * gcc-interface/utils.c (create_field_decl): Avoid superfluous work.
108
109 2008-07-31  Pascal Obry  <obry@adacore.com>
110
111         * prj-nmsc.adb: Keep Object and Exec directory casing.
112
113 2008-07-31  Jose Ruiz  <ruiz@adacore.com>
114
115         * system-rtx-rtss.ads
116         Change the default stack size. It is important to set the commit part.
117         
118         * s-taprop-rtx.adb
119         (Initialize): Get the clock resolution.
120         (RT_Resolution): Return the clock resolution that is indicated by the
121         system.
122
123         * s-parame-vxworks.adb
124         Document that this body is used for RTX in RTSS (kernel) mode.
125
126         * gcc-interface/Makefile.in
127         (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the
128         s-parame-vxworks.adb body in order to have reasonable stack sizes in
129         RTX RTSS kernel mode. Virtual memory is not used in that case, so we
130         cannot ask for too big values.
131
132 2008-07-31  Robert Dewar  <dewar@adacore.com>
133
134         * exp_aggr.adb: Minor reformatting
135
136         * makeutl.adb: Minor reformatting
137
138         * prj-env.adb: Minor reformatting
139
140 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
141
142         * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private
143         tagged type is completed by a concurrent type.
144
145 2008-07-31  Gary Dismukes  <dismukes@adacore.com>
146
147         * sem_aggr.adb:
148         (Resolve_Record_Aggregate): Bypass error that a type without
149         components must have a "null record" aggregate when compiling for Ada
150         2005, since it's legal to give an aggregate of form (others => <>)
151         for such a type.
152
153 2008-07-31  Javier Miranda  <miranda@adacore.com>
154
155         * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to
156         handle synchronized types. Required to handle well the object.operation
157         notation applied to synchronized types.
158
159 2008-07-31  Quentin Ochem  <ochem@adacore.com>
160
161         * s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored
162         anymore - just used internally.
163         Added handling of very small tasks - when the theoretical size is
164         already full at the point of the call.
165         (Report_Result): Fixed result computation, Stack_Used_When_Filling does
166         not need to be added to the result.
167
168 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
169
170         * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the
171         corresponding spec is a primitive wrapper. Update comment.
172
173 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
174
175         * bindgen.adb Comment reformatting. Update the list of run-time globals.
176         (Gen_Adainit_Ada): Add the declaration, import and value set for
177         configuration flag Canonical_Streams.
178         (Gen_Adainit_C): Add the declaration and initial value of external
179         symbol __gl_canonical_streams.
180         
181         * init.c: Update the list of global values computed by the binder.
182         
183         * opt.ads: Add flag Canonical_Streams.
184         
185         * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of
186         semantically handled pragmas.
187         
188         * sem_prag.adb: Add an entry into enumeration type Sig_Flags.
189         (Analyze_Pragma): Add case for pragma Canonical_Streams.
190         
191         * snames.adb: Add character value for name Canonical_Streams.
192         
193         * snames.ads:
194         Add Name_Canonical_Streams to the list of configuration pragmas.
195         Add Pragma_Canonical_Streams to enumeration type Pragma_Id.
196         
197         * snames.h: Add a definition for Pragma_Canonical_Streams.
198         
199         * s-ststop.adb:
200         Add a flag and import to seize the value of external symbol
201         __gl_canonical_streams. Update comment and initial value of constant
202         Use_Block_IO.
203         
204         * gnat_rm.texi: Add section of pragma Canonical_Streams.
205         
206         * gnat_ugn.texi:
207         Add pragma Canonical_Streams to the list of configuration pragmas.
208
209 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
210
211         * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause
212         has the form A.B.C and B is a unit renaming, analyze its compilation
213         unit and add a with_clause on A.b to the context.
214
215 2008-07-31  Vincent Celier  <celier@adacore.com>
216
217         * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails,
218         return the empty string, instead of raising Constraint_Error.
219
220 2008-07-31  Gary Dismukes  <dismukes@adacore.com>
221
222         * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node.
223         
224         * checks.adb (Apply_Accessibility_Check): Insert the check on
225         Insert_Node.
226         
227         * exp_attr.adb:
228         (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node
229         to new parameter Insert_Node on call to Apply_Accessibility_Check.
230         Necessary to distinguish the insertion node because the dereferenced
231         formal may come from a rename, but the check must be inserted in
232         front of the attribute.
233         
234         * exp_ch4.adb:
235         (Expand_N_Allocator): Pass actual for new Insert_Node parameter on
236         call to Apply_Accessibility_Check.
237         (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter
238         on call to Apply_Accessibility_Check.
239         Minor reformatting
240
241 2008-07-31  Javier Miranda  <miranda@adacore.com>
242
243         * sem_type.adb (Has_Compatible_Type): Complete support for synchronized
244         types when the candidate type is a synchronized type.
245         
246         * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized
247         types, and complete management of synchronized types adding missing
248         code to handle formal that is a synchronized type.
249         
250         * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that
251         are not available and cause the compiler to blowup. Found compiling
252         test with switch -gnatc
253         
254         * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram
255         Has_Correct_Formal_Mode plus code cleanup.
256
257 2008-07-31  Bob Duff  <duff@adacore.com>
258
259         * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was
260         recognized as two end-of-lines, but it should be just one.
261
262 2008-07-31  Thomas Quinot  <quinot@adacore.com>
263
264         * exp_ch9.adb: Minor reformatting
265
266         * tbuild.ads: Fix several occurrences of incorrectly referring to
267         Name_Find as Find_Name.
268
269 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
270
271         * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component
272         and the context is an object declaration with non-static bounds, treat
273         the aggregate as non-static.
274
275 2008-07-31  Vincent Celier  <celier@adacore.com>
276
277         * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb:
278         Move back spec of Parse_Single_Project to body, as it is not called
279         outside of package Prj.Part.
280         (Project_Data): Remove components Linker_Name, Linker_Path and
281         Minimum_Linker_Options as they are no longer set.
282         Remove function There_Are_Ada_Sources from package Prj and move code
283         in the only place it was used, in Prj.Env.Set_Ada_Paths.
284
285 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
286
287         * mlib-utl.ads: Fix typo.
288
289 2008-07-31  Robert Dewar  <dewar@adacore.com>
290
291         * sem_ch12.adb: Minor reformatting
292
293 2008-07-31  Sergey Rybin  <rybin@adacore.com>
294
295         * gnat_ugn.texi: Change the description of the
296         Overly_Nested_Control_Structures: now the rule always requires a
297         positive parameter for '+R' option
298
299 2008-07-31  Thomas Quinot  <quinot@adacore.com>
300
301         * g-pehage.adb: Minor reformatting
302
303 2008-07-31  Pascal Obry  <obry@adacore.com>
304
305         * s-finimp.ads: Minor reformatting.
306
307 2008-07-31  Vincent Celier  <celier@adacore.com>
308
309         * s-regexp.ads: Minor comment fix
310
311 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
312
313         * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off),
314         so that we can compile this file successfully with -gnatc.
315
316 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
317
318         * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead
319         of the type when looking for stream subprograms for type String,
320         Wide_String and Wide_Wide_String.
321         
322         * s-ststop.adb: Change the initialization expression of constant
323         Use_Block_IO.
324
325 2008-07-31  Geert Bosch  <bosch@adacore.com>
326
327         * arit64.c:
328         New file implementing __gnat_mulv64 signed integer multiplication with
329         overflow checking
330
331         * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi
332
333         * gcc-interface/gigi.h:
334         (standard_types): Add ADT_mulv64_decl
335         (mulv64_decl): Define subprogram declaration for __gnat_mulv64
336
337         * gcc-interface/utils.c:
338         (init_gigi_decls): Add initialization of mulv64_decl
339
340         * gcc-interface/trans.c:
341         (build_unary_op_trapv): New function
342         (build_binary_op_trapv): New function
343         (gnat_to_gnu): Use the above functions instead of
344         build_{unary,binary}_op
345
346         * gcc-interface/Makefile.in
347         (LIBGNAT_SRCS): Add arit64.c
348         (LIBGNAT_OBJS): Add arit64.o
349
350 2008-07-31  Vincent Celier  <celier@adacore.com>
351
352         * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or
353         Linker'Default_Switches are declared. Warn if they are declared.
354
355 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
356
357         * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
358         Insert_Actions to place the pointer declaration in the code, rather
359         than Insert_Before_And_Analyze, so that insertions of temporaries are
360         kept in the proper order when transient scopes are present.
361
362
363 2008-07-31  Robert Dewar  <dewar@adacore.com>
364
365         * einfo.adb (Spec_PPC): Now defined for generic subprograms
366         
367         * einfo.ads (Spec_PPC): Now defined for generic subprograms
368         
369         * sem_prag.adb (Check_Precondition_Postcondition): Handle generic
370         subprogram case
371
372 2008-07-31  Vincent Celier  <celier@adacore.com>
373
374         * s-os_lib.adb: Minor comment fix
375
376 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
377
378         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis,
379         transfer pre/postconditions from generic copy to original tree, so that
380         they will appear in each instance.
381         (Process_PPCs): Do not transform postconditions into a procedure in a
382         generic context, to prevent double expansion of check pragmas.
383         
384         * sem_attr.adb: In an instance, the prefix of the 'result attribute
385         can be the renaming of the
386         current instance, so check validity of the name accordingly.
387
388 2008-07-31  Robert Dewar  <dewar@adacore.com>
389
390         * mlib-utl.ads: Minor reformatting
391
392 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
393
394         sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved
395         from context. This attribute must be usable in Ada95 mode.
396         The attribute can appear in the body of a function marked
397         Inline_Always, but in this case the postocondition is not enforced.
398         
399         sem_prag.adb (Check_Precondition_Postcondition): within the expansion
400         of an inlined call pre- and postconditions are legal
401
402 2008-07-31  Vincent Celier  <celier@adacore.com>
403
404         * prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that
405         were for gprmake only
406
407 2008-07-31  Robert Dewar  <dewar@adacore.com>
408
409         * gnat_ugn.texi: Update -gnatN documentation.
410
411         * gnat_rm.texi: Add note about pre/postcondition
412         pragmas not checked in conjunction with front-end inlining.
413
414 2008-07-31  Robert Dewar  <dewar@adacore.com>
415
416         * g-pehage.adb, g-pehage.ads: Minor reformatting
417
418 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
419
420         * mlib-utl.ads, prj-makr.ads: Add comments.
421
422 2008-07-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
423
424         * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) 
425         [WINDOWS]: Add s-winext.o.
426
427 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
428
429         PR ada/36554
430         * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
431         * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
432         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
433         Set precision to 1 for subtype of BOOLEAN_TYPE.
434         (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
435         (make_type_from_size): Deal with BOOLEAN_TYPE.
436         * gcc-interface/misc.c (gnat_print_type): Likewise.
437         * gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
438         Set boolean_type_node as its translation in the table, as well
439         as boolean_false_node for False and boolean_true_node for True.
440         * gcc-interface/utils.c (gnat_init_decl_processing): Create custom
441         8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
442         (create_param_decl): Deal with BOOLEAN_TYPE.
443         (build_vms_descriptor): Likewise.
444         (build_vms_descriptor64): Likewise.
445         (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.
446
447 2008-07-30  Robert Dewar  <dewar@adacore.com>
448
449         * exp_ch9.adb: Minor reformatting
450
451         * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised
452         if no primitive operation is found.
453
454         * exp_util.adb: (Find_Prim_Op): Add comments for previous change
455
456         * sem_ch8.adb: Minor reformatting
457
458 2008-07-30  Laurent Pautet  <pautet@adacore.com>
459
460         * g-pehage.adb:
461         Remove a limitation on the length of the words handled by the minimal
462         perfect hash function generator.
463
464         * g-pehage.ads:
465         Detail the use of subprograms Insert, Initialize, Compute and Finalize.
466         Fix some typos.
467
468 2008-07-30  Robert Dewar  <dewar@adacore.com>
469
470         * gnatlink.adb: Minor reformatting
471
472 2008-07-30  Thomas Quinot  <quinot@adacore.com>
473
474         * rtsfind.adb (Check_RPC): Check version consistency even when not
475         generating RCI stubs. Provide more detailed error message in case of
476         mismatch.
477
478 2008-07-30  Ed Schonberg  <schonberg@adacore.com>
479
480         * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute
481         as a actual in an instance, check for a missing attribute to prevent
482         program_error on an illegal program.
483         
484         * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program
485         error if primitive is not found, so that exception can be handled
486         elsewhere on illegal programs.
487
488 2008-07-30  Robert Dewar  <dewar@adacore.com>
489
490         * uintp.adb (UI_GCD): Fix potential overflow
491
492 2008-07-30  Hristian Kirtchev  <kirtchev@adacore.com>
493
494         * einfo.adb: Flag245 is now used.
495         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion
496         check to include functions.
497         (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
498         (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to
499         include functions.
500         (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive
501         to the list of displayed flags.
502
503         * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and
504         Wrapped_Entity. These two flags are now present in functions.
505         New flag Is_Private_Primitive.
506         (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
507
508         * exp_ch9.adb:
509         (Build_Wrapper_Bodies): New subprogram.
510         (Build_Wrapper_Body): The spec and body have been moved to in
511         Build_Wrapper_ Bodies. Code cleanup.
512         (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup.
513         Wrappers are now generated for primitives declared between the private
514         and full view of a concurrent type that implements an interface.
515         (Build_Wrapper_Specs): New subprogram.
516         (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body
517         creation mechanism with a call to Build_Wrapper_Bodies.
518         (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the
519         wrapper spec creation mechanism with a call to Build_Wrapper_Specs.
520         (Expand_N_Task_Body): Replace the wrapper body creation
521         mechanism with a call to Build_Wrapper_Bodies.
522         (Expand_N_Task_Type_Declaration): Replace the wrapper spec
523         creation mechanism with a call to Build_Wrapper_Specs.
524         (Is_Private_Primitive_Subprogram): New subprogram.
525         (Overriding_Possible): Code cleanup.
526         (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup.
527
528         * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9.
529
530         * sem_ch3.adb: Add with and use clause for Exp_Ch9.
531         (Process_Full_View): Build wrapper specs for all primitives
532         that belong to a private view completed by a concurrent type
533         implementing an interface.
534         
535         * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram
536         is a primitive of a
537         concurrent type with a private view that implements an interface, try to
538         find the proper spec.
539         (Analyze_Subprogram_Declaration): Mark a subprogram as a private
540         primitive if the type of its first parameter is a non-generic tagged
541         private type.
542         (Analyze_Subprogram_Specification): Code reformatting.
543         (Disambiguate_Spec): New routine.
544         (Find_Corresponding_Spec): Add a flag to controll the output of errors.
545         (Is_Private_Concurrent_Primitive): New routine.
546
547         * sem_ch6.ads:
548         (Find_Corresponding_Spec): Add a formal to control the output of errors.
549
550 2008-07-30  Doug Rupp  <rupp@adacore.com>
551
552         * gigi.h (build_vms_descriptor64): New function prototype.
553         (fill_vms_descriptor): Modified function prototype.
554
555         * utils.c (build_vms_descriptor64): New function.
556
557         * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.
558
559         * trans.c (call_to_gnu): Call fill_vms_descriptor with new third
560         argument.
561
562         * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
563         64bit and 32bit descriptor and save the 64bit version as an alternate
564         TREE_TYPE in the parameter.
565         (make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
566         thin pointer.
567
568         * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.
569
570 2008-07-30  Robert Dewar  <dewar@adacore.com>
571
572         * make.adb: Minor reformatting
573
574         * mlib-utl.adb: Minor reformatting
575
576         * osint.ads: Minor reformatting
577
578 2008-07-30  Jose Ruiz  <ruiz@adacore.com>
579
580         * adaint.c
581         (__gnat_file_exists): Do not use __gnat_stat for RTX.
582         (__main for RTX in RTSS mode): Create this dummy procedure symbol to
583         avoid the use of this symbol from libgcc.a in RTX kernel mode.
584
585         * cio.c
586         (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call
587         the function RtPrintf for console output.
588         
589         * argv.c Do not use the environ variable for RTX.
590         
591         * gnatlink.adb (gnatlink): The part that handles the --RTS option has
592         been moved before the call to Osint.Add_Default_Search_Dirs in order
593         to take into account the flags in system.ads (RTX_RTSS_Kernel_Module)
594         from the appropriate run time.
595         
596         * targparm.ads
597         (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if
598         target is a RTSS module for RTX.
599         
600         * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for
601         RTX_RTSS_Kernel_Module
602         (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag.
603
604         * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc
605         exception handling mechanism for Windows and RTX in Win32 mode, but
606         not for RTX in kernel mode (RTSS).
607         (LIBGNAT_SRCS): Remove ada.h
608
609 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
610
611         * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and
612         T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS.
613         (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS.
614         * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS,
615         X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS,
616         ALL_ADA_CFLAGS): Remove.
617         (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS,
618         replace ALL_ADA_CFLAGS with ADA_CFLAGS.
619         (GCC_CFLAGS): Remove X_CFLAGS.
620         (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS.
621         (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS.
622         (ADA_CFLAGS): Substitute.
623
624 2008-07-30  Laurent Guerby  <laurent@guerby.net>
625
626         PR ada/5911
627         * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables.
628         Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts.
629         Replace stamp-gnatlib* by stamp-gnatlib*-rts.
630         * gcc-interface/Make-lang.in: Replace stamp-gnatlib2
631         by stamp-gnatlib2-rts.
632         
633 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
634
635         PR documentation/15479
636         * gnat-style.texi: Remove AdaCore copyright statement and GPL
637         statement for GNAT.  Add @copying stanza, use it.  Update to
638         GFDL 1.2.  Do not list GFDL as Invariant Section, do not list
639         title as Front-Cover Text.
640         * gnat_rm.texi: Likewise.
641         * gnat_ugn.texi: Likewise.
642
643 2008-07-29  Jan Hubicka  <jh@suse.cz>
644
645         * trans.c (process_inlined_subprograms): Remove tree_really_inline
646         check.
647
648 2008-07-29  Arnaud Charlet  <charlet@adacore.com>
649
650         * gcc-interface: New directory.
651
652         * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h,
653         utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c,
654         config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
655         to gcc-interface subdirectory.
656
657 2008-07-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
658
659         * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o.
660
661 2008-07-28  Jan Hubicka  <jh@suse.cz>
662
663         * misc.c (gnat_post_options): Do not set flag_no_inline.
664
665 2008-07-28  Richard Guenther  <rguenther@suse.de>
666
667         Merge from gimple-tuples-branch.
668
669         2008-07-22  Olivier Hainque  <hainque@adacore.com>
670
671         * gigi.h (end_subprog_body): New ELAB_P argument, saying if
672         this is called for an elab proc to be discarded if empty.
673         * utils.c (end_subprog_body): Honor ELAB_P.
674         (build_function_stub): Adjust call to end_subprog_body.
675         * trans.c (Subprogram_Body_to_gnu): Likewise.
676         (gigi): Reorganize processing of elab procs to prevent
677         gimplifying twice, using the new end_subprog_body argument.
678
679         2008-07-19  Richard Guenther  <rguenther@suse.de>
680
681         * Make-lang.in (trans.o): Add tree-iterator.h dependency.
682         (utils.o): Likewise.
683         * trans.c: Include tree-iterator.h.
684         (gnat_gimplify_expr): Adjust prototype.  Fix typo.
685         (gnat_gimplify_stmt): Use SET_EXPR_LOCATION.
686         (set_expr_location_from_node): Likewise.
687         (gigi): Tuplify.
688         * ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead
689         of GENERIC_NEXT.
690         * utils.c: Include tree-iterator.h.
691         * gigi.h (gnat_gimplify_expr): Adjust prototype.
692
693         2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
694
695         * trans.c: Include gimple.h instead of tree-gimple.h.
696         * utils.c: Same.
697
698         2008-07-14  Aldy Hernandez  <aldyh@redhat.com>
699
700         * trans.c (gnat_gimplify_expr): Use gimplify_assign.
701
702 2008-07-25  Jan Hubicka  <jh@suse.cz>
703
704         * utils.c (end_subprog_body): Remove inline trees check.
705         * misc.c (gnat_post_options): Do not set flag_inline_trees.
706
707 2008-07-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
708
709         * raise-gcc.c: Move tsystem.h before tm.h.
710
711 2008-07-20  Arnaud Charlet  <charlet@adacore.com>
712
713         * gnathtml.pl: New file.
714
715 2008-07-19  Olivier Hainque  <hainque@adacore.com>
716
717         * targtyps.c (get_target_default_allocator_alignment): Use
718         MALLOC_ABI_ALIGNMENT.
719
720 2008-07-17  Olivier Hainque  <hainque@adacore.com>
721
722         * adaint.c (__MINGW32__ section): Include ctype.h and define
723         a fallback ISALPHA if IN_RTS.
724         (__gnat_is_absolute_path): Use ISALPHA instead of isalpha. 
725
726 2008-07-17  Olivier Hainque  <hainque@adacore.com>
727
728         * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG
729         argument, to apply to references in addition to definitions.  Prevent
730         setting TREE_STATIC on externals.
731         (gnat_pushdecl): Always clear DECL_CONTEXT on public externals.
732
733 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
734
735         PR documentation/15479
736         * gnat_ugn.texi (@ovar): New macro, from autoconf.texi.
737         Replace backets around optional parameters with @ovar
738         where possible, use @r{[}, @r{]} otherwise.
739         Replace some @r, @i, and @emph with @var where appropriate.
740
741 2008-07-02  Eric Botcazou  <ebotcazou@adacore.com>
742
743         * decl.c (make_type_from_size) <INTEGER_TYPE>: Fix typo and tidy up.
744
745 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
746
747         * ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix
748         -Wc++-compat warnings.
749         * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec,
750         __gnat_locate_exec_on_path): Likewise.
751         * decl.c (annotate_value): Likewise.
752         * misc.c (gnat_handle_option): Likewise.
753         * trans.c (gnat_to_gnu, extract_encoding, decode_name,
754         post_error_ne_tree): Likewise.
755
756 2008-06-27  Eric Botcazou  <ebotcazou@adacore.com>
757
758         * utils.c (convert) <CONSTRUCTOR>: When converting it to a packable
759         version of its type, attempt to first convert its elements.
760
761 2008-06-26  Chris Proctor  <chrisp_42@bigpond.com>
762
763         * Makefile.in: Fix *86 kfreebsd target specific pairs.
764
765 2008-06-25  Samuel Tardieu  <sam@rfc1149.net>
766
767         * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well.
768
769 2008-06-24  Eric Botcazou  <ebotcazou@adacore.com>
770
771         * utils2.c (known_alignment): Derive the alignment from pointed-to
772         types only if it is otherwise unknown.
773         <INTEGER_CST>: Tidy.
774         <MULT_EXPR>: Likewise.
775         <POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use
776         that of the base.
777
778 2008-06-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
779
780         PR ada/36573
781         * s-osinte-hpux-dce.ads (SA_ONSTACK): Define.
782
783 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
784
785         * gnat_rm.texi (Implementation Defined Characteristics)
786         (Standard Library Routines): Use @smallexample for indented
787         text.  Drop Indentation outside examples.
788         * gnat_ugn.texi: Likewise.
789
790 2008-06-13  Olivier Hainque  <hainque@adacore.com>
791
792         * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
793         if undefined.
794         (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
795         realignment with force_align_arg_pointer attribute on foreign
796         convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
797         
798 2008-06-13  Olivier Hainque  <hainque@adacore.com>
799
800         * utils.c (rest_of_record_type_compilation): When computing
801         encodings for the components of a variable size type, early
802         strip conversions on the current position expression to make
803         sure it's shape is visible.  Use remove_conversions for this
804         purpose.
805
806 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
807
808         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
809         constrained subtype of a discriminated type, discard the fields that
810         are beyond its limits according to its size.
811
812 2008-06-10  Olivier Hainque  <hainque@adacore.com>
813
814         * utils.c (create_subprog_decl): If this is for the 'main' entry
815         point according to the asm name, redirect main_identifier_node.
816
817 2008-06-09  Eric Botcazou  <ebotcazou@adacore.com>
818
819         * decl.c (components_to_record): Adjust the packedness for the
820         qualified union as well.
821
822 2008-06-09  Arnaud Charlet  <charlet@adacore.com>
823
824         * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
825         checks non fatal.
826
827 2008-06-07  Samuel Tardieu  <sam@rfc1149.net>
828
829         * sem_res.adb (Large_Storage_Type): A type is large if it
830         requires as many bits as Positive to store its values and its
831         bounds are known at compile time.
832         * sem_ch13.adb (Minimum_Size): Note that this function returns
833         0 if the size is not known at compile time.
834
835 2008-06-06  Nicolas Setton  <setton@adacore.com>
836             Olivier Hainque  <hainque@adacore.com>
837
838         * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
839         attribute, parallel descriptive type attached to another
840         type for debug info generation purposes.
841         * utils.c (add_parallel_type): New function, register
842         parallel type to be attached to a type.
843         (get_parallel_type): New function, fetch a registered
844         parallel type, if any.
845         (rest_of_record_type_compilation): Register the parallel
846         type we make for variable size records.
847         * gigi.h (add_parallel_type, get_parallel_type): Declare.
848         * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
849         parallel debug types we make.
850         * trans.c (extract_encoding, decode_name): New functions.
851         (gigi): If the DWARF attribute extensions are available, setup
852         to use them.
853         * lang.opt: Register language specific processing request
854         for -gdwarf+.
855         * misc.c (gnat_dwarf_extensions): New global variable. How much
856         do we want of our DWARF extensions. 0 by default.
857         (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
858         (gnat_post_options): Map gnat_dwarf_extensions to the
859         commonuse_gnu_debug_info_extensions for later processing.
860         
861 2008-06-04  Samuel Tardieu  <sam@rfc1149.net>
862
863         * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
864
865 2008-06-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
866
867         * Makefile.in (common_tools): Fix typos in $(exeext) extension.
868         * gnat_ugn.texi (Style Checking)
869         (Adding the Results of Compiler Checks to gnatcheck Output)
870         (Example of Binder Output File): Fix typos.
871         * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
872         exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
873         s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
874         s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
875         sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
876         sinfo.ads, utils.c: Fix typos in comments.
877         * sem_ch6.adb, vms_data.ads: Fix typos in strings.
878
879 2008-05-29  Thomas Quinot  <quinot@adacore.com>
880
881         * sem_eval.adb: Minor reformatting
882
883 2008-05-29  Ed Schonberg  <schonberg@adacore.com>
884
885         * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
886         is abstract, do not apply abstractness check on subprogram if this is
887         a renaming declaration.
888
889 2008-05-29  Arnaud Charlet  <charlet@adacore.com>
890
891         PR ada/864
892         * osint.ads, osint.adb (Program_Name): New parameter "Prog" to
893         allow recognition of program suffix in addition to prefix.
894         
895         * gnatchop.adb (Locate_Executable): Add support for prefix.
896         
897         * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
898         mlib-utl.adb: Adjust calls to Program_Name.
899
900 2008-05-29  Robert Dewar  <dewar@adacore.com>
901
902         * sem_ch3.adb: Minor reformatting
903         * sem_prag.adb: Minor reformatting
904         * sem_res.adb: Minor reformatting
905         * sinput-p.ads: Minor reformatting
906
907 2008-05-29  Javier Miranda  <miranda@adacore.com>
908
909         * sem_util.adb:
910         (Abstract_Interface_List): Add missing support for full type-declaration
911         associated with synchronized types.
912
913 2008-05-29  Robert Dewar  <dewar@adacore.com>
914
915         * sem_eval.adb (Is_Same_Value): Take care of several more cases
916
917 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
918
919         * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
920         access type, wrap the expression in a conversion to force an
921         accessibility check.
922
923         * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
924         accessibility checks even when expansion is disabled in order to
925         generate messages in the presence of previous errors or in
926         semantics-only mode.
927
928 2008-05-28  Eric Botcazou  <ebotcazou@adacore.com>
929
930         * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
931         * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.
932
933 2008-05-28  Vincent Celier  <celier@adacore.com>
934
935         PR ada/34446
936         * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
937         preprocessing expressions
938
939 2008-05-28  Vincent Celier  <celier@adacore.com>
940
941         * sinput-p.adb (Source_File_Is_Subunit): Allow special character used
942         for preprocessing
943         
944         * sinput-p.ads: Minor comment update and reformatting
945
946 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
947
948         * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
949         type has a deeper level than any master only when it is the type of an
950         access parameter.
951
952 2008-05-28  Javier Miranda  <miranda@adacore.com>
953
954         * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
955
956 2008-05-28  Javier Miranda  <miranda@adacore.com>
957
958         * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
959         * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
960         * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
961         Add code that was previously located in
962         Find_Overridden_Synchronized_Primitive because it is only used here.
963
964 2008-05-28  Sergey Rybin  <rybin@adacore.com>
965
966         * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
967         Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
968
969 2008-05-28  Robert Dewar  <dewar@adacore.com>
970
971         * restrict.ads:
972         Add missing restrictions, and properly label all GNAT defined ones
973         
974         * rtsfind.ads:
975         Add entry for Ada_Real_Time.Timing_Events.Timing_Event
976         Add entry for Ada.Task_Termination.Set_Specific_Handler
977         Add entry for Ada.Task_Termination.Specific_Handler
978         
979         * s-rident.ads:
980         Add missing restrictions and properly mark all gnat defined ones
981         
982         * sem_ch3.adb:
983         (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
984         
985         * sem_res.adb:
986         (Resolve_Call): Check violation of No_Specific_Termination_Handlers
987
988         * gnat_rm.texi: Add missing restrictions, and properly label all
989         GNAT defined ones
990
991 2008-05-28  Robert Dewar  <dewar@adacore.com>
992
993         * restrict.adb:
994         (Check_Restriction): violation of restriction No_Finalization is
995         treated as a serious error to stop expansion
996
997 2008-05-28  Robert Dewar  <dewar@adacore.com>
998
999         * exp_util.adb: Minor reformatting
1000         * exp_util.ads: Minor reformatting.
1001
1002 2008-05-28  Arnaud Charlet  <charlet@adacore.com>
1003
1004         * Make-lang.in: Remove gprmake.
1005
1006         * gprmake.adb, makegpr.ads, makegpr.adb: Removed.
1007
1008 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
1009
1010         * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
1011         improper progenitor names, and avoid cascaded errors.
1012
1013 2008-05-28  Robert Dewar  <dewar@adacore.com>
1014
1015         * gnat_rm.texi: Add note on Old giving warning when applied to constant
1016
1017         * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
1018         a constant
1019
1020 2008-05-28  Robert Dewar  <dewar@adacore.com>
1021
1022         * exp_fixd.adb (Build_Multiply): Correct one-off error in computing
1023         size
1024
1025 2008-05-28  Robert Dewar  <dewar@adacore.com>
1026
1027         * exp_ch5.adb:
1028         (Expand_Simple_Function_Return): Copy unaligned result into temporary
1029
1030 2008-05-28  Javier Miranda  <miranda@adacore.com>
1031
1032         * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
1033         for user-defined predefined primitives.
1034         
1035         * sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
1036         (Find_Overridden_Synchronized_Primitive): Ditto.
1037
1038         * sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
1039
1040 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
1041
1042         * a-ststio.adb, s-direio.adb:
1043         Further code clean up of previous change.
1044         Update comments.
1045
1046 2008-05-27  Vincent Celier  <celier@adacore.com>
1047
1048         * prj-nmsc.adb: Minor reformatting
1049
1050 2008-05-27  Bob Duff  <duff@adacore.com>
1051
1052         * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
1053         untagged private type with a tagged full type, where the full type has
1054         a self reference, create the corresponding class-wide type early, in
1055         case the self reference is "access T'Class".
1056
1057 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
1058
1059         * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
1060         tasks and context is an object declaration. create master entity before
1061         expansion.
1062
1063 2008-05-27  Robert Dewar  <dewar@adacore.com>
1064
1065         * mlib-prj.adb: Minor reformatting
1066
1067         * prj-part.adb: Minor reformatting
1068
1069         * prj.ads: Minor reformatting
1070
1071         * exp_ch3.adb: Minor reformatting.
1072
1073         * sem_ch3.ads: Minor reformatting
1074
1075         * sem_eval.adb: Minor reformatting
1076
1077 2008-05-27  Vincent Celier  <celier@adacore.com>
1078
1079         * gnatcmd.adb:
1080         <prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack
1081
1082 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
1083
1084         * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
1085         tasks, create an activation chain now, before the expansion into
1086         assignments and build-in-place calls that require the presence of an
1087         activation chain.
1088         (Backend_Processing_Possible): If the component type is inherently
1089         limited, the aggregate must be expanded into individual built-in-place
1090         assignments.
1091
1092         * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
1093         determine whether an allocation extra parameter must be built, to
1094         handle case of a private type whose full type is a discriminated type
1095         with defaults.
1096
1097 2008-05-27  Bob Duff  <duff@adacore.com>
1098
1099         * gnat_rm.texi:
1100         Document the new behavior regarding trampolines.
1101
1102 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
1103
1104         * a-direio.adb, a-sequio.adb: Replace address clause by
1105         unrestricted_access, simpler and compatible with .NET.
1106
1107 2008-05-27  Vincent Celier  <celier@adacore.com>
1108
1109         * prj-part.adb:
1110         (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
1111         a project file, so that symbolic links are not resolved.
1112
1113 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
1114
1115         * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
1116         Replace heavy address clause by 'Unrestricted_Access, cleaner and more
1117         portable across GNAT targets, since this kind of address clause is not
1118         supported by VM back-ends (.NET/JGNAT).
1119
1120 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
1121
1122         * bindgen.adb: Update comments.
1123         
1124         * s-tasinf-mingw.adb: Add "with" of System.OS_Interface
1125
1126 2008-05-27  Vincent Celier  <celier@adacore.com>
1127
1128         * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
1129         prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
1130         mlib-tgt.adb, prj-env.adb, prj-env.ads:
1131         (Path_Information): New record type
1132         Use component of type Path_Information when there are two paths, one in
1133         canonical format and one in display format.
1134         Update the project manager to these new components.
1135
1136 2008-05-27  Robert Dewar  <dewar@adacore.com>
1137
1138         * makeutl.adb: Minor reformatting
1139         * prj-nmsc.adb: Minor reformatting
1140         * s-stausa.adb: Minor reformatting
1141         * s-stausa.ads: Minor reformatting
1142         * sem_ch6.adb: Minor reformatting
1143
1144 2008-05-27  Thomas Quinot  <quinot@adacore.com>
1145
1146         * sem_res.adb: Minor comment fixes
1147
1148 2008-05-27  Thomas Quinot  <quinot@adacore.com>
1149
1150         * makeutl.adb: Minor code reorganization
1151
1152         * exp_aggr.adb: Add ??? comment
1153         Fix typo
1154
1155         * exp_ch6.adb: Minor reformatting
1156
1157 2008-05-27  Quentin Ochem  <ochem@adacore.com>
1158
1159         * s-stausa.adb (Initialize): Updated result initialization, and
1160         initialization of environment stack.
1161         (Fill_Stack): Improved computation of the pattern zone, taking into
1162         account already filled at the calling point.
1163         (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
1164         Measure and Overflow_Guard.
1165         (Report_Result): Fixed computation of the result using new fields of
1166         Stack_Analyzer.
1167         
1168         * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
1169         params by more explicit Stack_Size / Max_Pattern_Size params.
1170         (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
1171         Added Stack_Used_When_Filling field.
1172         (Task_Result): Replaced Measure / Overflow_Guard by more explicit
1173         Min_Measure and Max_Measure fields.
1174         
1175         * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
1176
1177 2008-05-27  Vincent Celier  <celier@adacore.com>
1178
1179         * prj-nmsc.adb:
1180         (Check_File): Make sure that a unit that replaces the same unit in a
1181          project being extended is properly processed.
1182
1183 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
1184
1185         * sem_ch3.adb:
1186         (Get_Discr_Value): Remove obsolete code that failed to find the value
1187         of a discriminant for an inherited task component appearing in a type
1188         extension.
1189
1190 2008-05-27  Thomas Quinot  <quinot@adacore.com>
1191
1192         (System.File_IO.{Close, Delete, Reset}):
1193         Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
1194         
1195         (Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
1196         Pass File parameter by reference.
1197
1198 2008-05-27  Vincent Celier  <celier@adacore.com>
1199
1200         * prj-nmsc.adb:
1201         (Process_Sources_In_Multi_Language_Mode): Check that there are not two
1202         sources of the same project that have the same object file name.
1203         (Find_Explicit_Sources): Always remove a source exception that was not
1204         found.
1205
1206 2008-05-27  Thomas Quinot  <quinot@adacore.com>
1207
1208         * sem_ch3.adb: Minor reformatting
1209
1210 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
1211
1212         * sem_ch6.adb:
1213         (Is_Interface_Conformant): Handle properly a primitive operation that
1214         overrides an interface function with a controlling access result.
1215         (Type_Conformance): If Skip_Controlling_Formals is true, when matching
1216         inherited and overriding operations, omit as well the conformance check
1217         on result types, to prevent spurious errors.
1218
1219 2008-05-27  Vincent Celier  <celier@adacore.com>
1220
1221         * makeutl.ads, makeutl.adb:
1222         (Set_Location): New procedure
1223         (Get_Location): New function
1224         (Update_Main): New procedure
1225
1226 2008-05-27  Vincent Celier  <celier@adacore.com>
1227
1228         * prj-nmsc.adb:
1229         (Check_Library): Allow standard project to be extended as a static
1230         library project.
1231         (Get_Mains): Do not inherit attribute Main in an extending library
1232         project.
1233
1234 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
1235
1236         * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
1237         * system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
1238         * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
1239         * system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
1240         * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
1241         * system-linux-x86.ads (Always_Compatible_Rep): Likewise.
1242         * system-mingw.ads (Always_Compatible_Rep): Likewise.
1243         * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
1244         * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
1245         * system-solaris-x86.ads (Always_Compatible_Rep): Likewise.
1246         
1247 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
1248
1249         * sem_attr.adb: add guard to previous patch.
1250
1251 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
1252
1253         * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
1254         a synchronized tagged type, do not attempt to build dispatch table for
1255         full view. The table is built for the corresponding record type, which
1256         has its own declaration.
1257
1258 2008-05-27  Gary Dismukes  <dismukes@adacore.com>
1259
1260         * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
1261         to the known type entity E, rather than setting it to Any_Type. Fixes
1262         possible blowup in function Base_Init_Proc, as called from Freeze_Entity
1263         for objects whose type had an illegal constraint.
1264
1265 2008-05-27  Vincent Celier  <celier@adacore.com>
1266
1267         * gnat_ugn.texi:
1268         Add succinct documentation for attribute Excluded_Source_List_File
1269
1270 2008-05-27  Vincent Celier  <celier@adacore.com>
1271
1272         * prj-attr.adb: Add new project level attribute Map_File_Option
1273         
1274         * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
1275         
1276         * prj.ads: Minor reformatting and comment update
1277         (Project_Configuration): New component Map_File_Option
1278         
1279         * snames.adb: New standard name Map_File_Option
1280         
1281         * snames.ads: New standard name Map_File_Option
1282
1283 2008-05-27  Vincent Celier  <celier@adacore.com>
1284
1285         * xsnames.adb: Remove unused variable Oname
1286
1287 2008-05-27  Doug Rupp  <rupp@adacore.com>
1288
1289         * exp_ch6.adb:
1290         (Expand_N_Function_Call): Fix comments. Minor reformatting.
1291
1292         * exp_vfpt.ads:
1293         (Expand_Vax_Foreign_Return): Fix comments.
1294
1295 2008-05-27  Thomas Quinot  <quinot@adacore.com>
1296
1297         * exp_dist.adb: Minor reformating
1298
1299 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
1300
1301         * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
1302         No_Default_Initialization, which is now delayed until the freeze point
1303         of the object. Add a comment about deferral of the check.
1304         
1305         * freeze.adb (Freeze_Entity): The check for No_Default_Initialization
1306         on objects is moved here.
1307
1308 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
1309
1310         * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
1311         (Compare_Array_S16): Adjust for above change.
1312         * s-casi32.adb (Uword): Likewise.
1313         (Compare_Array_S32): Likewise.
1314         * s-casi64.adb (Uword): Likewise.
1315         (Compare_Array_S64): Likewise.
1316         * s-caun16.adb (Uhalf): Likewise.
1317         (Compare_Array_U16): Likewise.
1318         * s-caun32.adb (Uword): Likewise.
1319         (Compare_Array_U32): Likewise.
1320         * s-caun64.adb (Uword): Likewise.
1321         (Compare_Array_U64): Likewise.
1322         
1323 2008-05-26  Robert Dewar  <dewar@adacore.com>
1324
1325         * exp_ch6.adb: Add ??? comment for previous change
1326
1327         * exp_vfpt.adb: Minor reformatting
1328
1329         * exp_vfpt.ads: Add ??? comment for last change
1330
1331         * sem_attr.adb: Add some ??? comments for previous change
1332
1333         * s-vaflop.ads: Add comments for previous change
1334
1335 2008-05-26  Doug Rupp  <rupp@adacore.com>
1336
1337         * s-vaflop-vms-alpha.adb:
1338         Remove System.IO use clause, to prevent spurious ambiguities when
1339         package is access through rtsfind.
1340
1341 2008-05-26  Sergey Rybin  <rybin@adacore.com>
1342
1343         * tree_io.ads (ASIS_Version_Number): Update because of the changes
1344         made in front-end
1345
1346 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
1347
1348         * sem_attr.adb:
1349         (Resolve_Attribute, case 'address):  S (A .. B)' address can be safely
1350         converted to S (A)'address only if A .. B is known to be a non-null
1351         range.
1352
1353 2008-05-26  Doug Rupp  <rupp@adacore.com>
1354
1355         * s-vaflop.adb:
1356         (Return_D, Return_F, Return_G): New functions.
1357
1358         * s-vaflop.ads:
1359         (Return_D, Return_F, Return_G): New functions.
1360
1361         * exp_vfpt.adb:
1362         (Expand_Vax_Foreign_Return): New procedure
1363
1364         * exp_vfpt.ads:
1365         (Expand_Vax_Foreign_Return): New procedure
1366
1367         * rtsfind.ads:
1368         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
1369         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
1370
1371         * exp_ch6.adb:
1372         Import Exp_Vfpt
1373         (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
1374
1375         * s-vaflop-vms-alpha.adb:
1376         (Return_D, Return_F, Return_G): New functions.
1377
1378 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
1379
1380         * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
1381         init proc entity when there is actual default initialization associated
1382         with the component type, to avoid spurious errors on objects of scalar
1383         array types that are marked Is_Public when No_Default_Initialization
1384         applies.
1385
1386 2008-05-26  Thomas Quinot  <quinot@adacore.com>
1387
1388         * rtsfind.ads, rtsfind.adb:
1389         (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
1390         (Check_RPC): Support per-PCS-kind API versioning.
1391         
1392         exp_dist.ads, exp_dist.adb:
1393         (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
1394         (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
1395          library function Get_RACW.
1396         (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
1397         library function Get_Reference.
1398         (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
1399         through an intermediate Any.
1400         (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
1401         going through an intermediate Any.
1402         
1403         * sem_dist.adb: Minor reformatting.
1404
1405 2008-05-26  Javier Miranda  <miranda@adacore.com>
1406
1407         * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
1408         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
1409         (Is_Internal): Adding documentation on internal entities that have
1410         attribute Interface_Alias (old attribute Abstract_Interface_Alias)
1411
1412         * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
1413         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
1414         Added assertion to force entities with this attribute to have
1415         attribute Is_Internal set to True.
1416         (Next_Tag_Component): Simplify assertion using attribute Is_Tag.
1417
1418         * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
1419         renamed as Derive_Progenitor_Subprograms. In addition, its code is
1420         a new implementation.
1421         (Add_Interface_Tag_Components): Remove special management of
1422         synchronized interfaces.
1423         (Analyze_Interface_Declaration): Minor reformating
1424         (Build_Derived_Record_Type): Minor reformating
1425         (Check_Abstract_Overriding): Avoid reporting error in case of abstract
1426         predefined primitive inherited from interface type because the body of
1427         internally generated predefined primitives of tagged types are generated
1428         later by Freeze_Type
1429         (Derive_Subprogram): Avoid generating an internal name if the parent
1430         subprogram overrides an interface primitive.
1431         (Derive_Subprograms): New implementation that keeps separate the
1432         management of tagged types not implementing interfaces, from tagged
1433         types that implement interfaces.
1434         (Is_Progenitor): New implementation.
1435         (Process_Full_View): Add documentation
1436         (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
1437         by call to Derive_Progenitor_Subprograms.
1438
1439         * sem_ch6.ads (Is_Interface_Conformant): New subprogram.
1440         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
1441         Skip_Controlling_Formals.
1442
1443         * sem_ch6.adb (Is_Interface_Conformant): New subprogram.
1444         (Check_Conventions): New implementation. Remove local subprogram
1445         Skip_Check. Remove formal Search_From of routine Check_Convention.
1446         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
1447         Skip_Controlling_Formals.
1448         (New_Overloaded_Entity): Enable addition of predefined dispatching
1449         operations.
1450
1451         * sem_disp.ads
1452         (Find_Primitive_Covering_Interface): New subprogram.
1453
1454         * sem_disp.adb (Check_Dispatching_Operation): Disable registering
1455         the task body procedure as a primitive of the corresponding tagged
1456         type.
1457         (Check_Operation_From_Private_Type): Avoid adding twice an entity
1458         to the list of primitives.
1459         (Find_Primitive_Covering_Interface): New subprogram.
1460         (Override_Dispatching_Operation): Add documentation.
1461
1462         * sem_type.adb (Covers): Minor reformatings
1463
1464         * sem_util.ads (Collect_Abstract_Interfaces): Renamed as
1465         Collect_Interfaces.
1466         Rename formal.
1467         (Has_Abstract_Interfaces): Renamed as Has_Interfaces.
1468         (Implements_Interface): New subprogram.
1469         (Is_Parent): Removed.
1470         (Primitive_Names_Match): New subprogram.
1471         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
1472         (Ultimate_Alias): New subprogram.
1473
1474         * sem_util.adb (Collect_Abstract_Interfaces): Renamed as
1475         Collect_Interfaces.
1476         Remove special management for synchronized types. Rename formal. Remove
1477         internal subprograms Interface_Present_In_Parent and Add_Interface.
1478         (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
1479         on non-record types by code to return false in such case.
1480         (Implements_Interface): New subprogram.
1481         (Is_Parent): Removed. No special management is now required for
1482         synchronized types covering interfaces.
1483         (Primitive_Names_Match): New subprogram.
1484         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
1485         (Ultimate_Alias): New subprogram.
1486
1487         * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
1488         Add internal entities associated with secondary dispatch tables to
1489         the list of tagged type primitives that are not interfaces.
1490         (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
1491         (Make_Predefined_Primitive_Specs): Code reorganization to improve
1492         the management of predefined equality operator. In addition, if
1493         the type has an equality function corresponding with a primitive
1494         defined in an interface type, the inherited equality is abstract
1495         as well, and no body can be created for it.
1496
1497         * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
1498         exp_util to exp_disp.
1499         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if
1500         an entity corresponds with one of the predefined primitives required
1501         to implement interfaces.
1502         Update copyright notice.
1503
1504         * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
1505         final check on abstract subprograms all the primitives associated with
1506         interface primitives because they must be visible in the public and
1507         private part.
1508         (Write_DT): Use Find_Dispatching_Type to locate the name of the
1509         interface type. This allows the use of this routine, for debugging
1510         purposes, when the tagged type is not fully decorated.
1511         (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
1512         Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
1513         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
1514         entity corresponds with one of the predefined primitives required to
1515         implement interfaces.
1516
1517         * exp_util.adb (Find_Interface_ADT): New implementation
1518         (Find_Interface): Removed.
1519
1520         * sprint.adb (Sprint_Node_Actual): Generate missing output for the
1521         list of interfaces associated with nodes
1522         N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
1523
1524 2008-05-26  Thomas Quinot  <quinot@adacore.com>
1525
1526         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
1527         condition for assignment to temporary.
1528
1529 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
1530
1531         * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
1532         checks on the upper bound if the index type is a modular type, to
1533         prevent wrap-around computations when size is close to upper bound of
1534         type.
1535
1536 2008-05-26  Robert Dewar  <dewar@adacore.com>
1537
1538         * sem_ch3.adb: Minor reformatting
1539
1540 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
1541
1542         * sem_ch12.adb (Remove_Parent): Use specification of instance
1543         to retrieve generic parent,
1544         to handle properly the case where the instance is a child unit.
1545         Add guard to handle properly wrapper packages.
1546         Minor reformatting
1547
1548 2008-05-26  Thomas Quinot  <quinot@adacore.com>
1549
1550         * sinfo.ads: Minor reformatting
1551
1552 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
1553
1554         * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
1555         Generate a tag check when the result subtype of a function, defined by
1556         an access definition, designates a specific tagged type.
1557         (Make_Tag_Check): New routine.
1558
1559 2008-05-26  Arnaud Charlet  <charlet@adacore.com>
1560
1561         * ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
1562
1563 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
1564
1565         * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
1566         (builtin_decl_for): Likewise.
1567         * trans.c (gigi): Likewise.
1568         * utils.c (def_builtin_1): Fix formatting.
1569
1570 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
1571
1572         * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
1573         Create the statements which map a string name to protected or task
1574         entry indix.
1575
1576         * exp_ch9.adb: Add with and use clause for Stringt.
1577         Minor code reformatting.
1578         (Build_Entry_Names): New routine.
1579         (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
1580         for flag Build_Entry_Names which controls the allocation of the data
1581         structure for the string names of entries.
1582
1583         * exp_ch9.ads (Build_Entry_Names): New subprogram.
1584
1585         * exp_util.adb (Entry_Names_OK): New function.
1586
1587         * exp_util.ads (Entry_Names_OK): New function.
1588
1589         * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
1590         enumerations RE_Id and RE_Unit_Table.
1591
1592         * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
1593         (Free_Entry_Names_Array): New routine.
1594
1595         * s-taskin.ads: Comment reformatting.
1596         Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
1597         Add component Entry_Names to record Ada_Task_Control_Block.
1598         (Free_Entry_Names_Array): New routine.
1599
1600         * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
1601         dynamically allocate an array
1602         of string pointers. This structure holds string entry names.
1603         (Free_Entry_Names): New routine.
1604         (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
1605         (Set_Entry_Names): New routine.
1606
1607         * s-tassta.ads:
1608         (Create_Task): Add formal Build_Entry_Names. The flag is used to
1609         control the allocation of the data structure which stores entry names.
1610         (Set_Entry_Name): New routine.
1611
1612         * s-tpoben.adb:
1613         Add with and use clause for Ada.Unchecked_Conversion.
1614         (Finalize): Deallocate the entry names array.
1615         (Free_Entry_Names): New routine.
1616         (Initialize_Protection_Entries): When flag Build_Entry_Names is set,
1617         create an array of string pointers to hold the entry names.
1618         (Set_Entry_Name): New routine.
1619
1620         * s-tpoben.ads:
1621         Add field Entry_Names to record Protection_Entries.
1622         (Initialize_Protection_Entries): Add formal Build_Entry_Names.
1623         (Set_Entry_Name): New routine.
1624
1625 2008-05-26  Vincent Celier  <celier@adacore.com>
1626
1627         * prj-nmsc.adb:
1628         (Process_Project_Level_Simple_Attributes): process attribute Library_GCC
1629
1630         * prj.ads:
1631         (Project_Configuration): New component Shared_Lib_Driver
1632
1633 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
1634
1635         * inline.adb:
1636         (Cleanup_Scopes): For a protected operation, transfer finalization list
1637         to protected body subprogram, to force cleanup actions when needed.
1638
1639 2008-05-26  Robert Dewar  <dewar@adacore.com>
1640
1641         * sem_cat.adb: Minor reformatting
1642
1643         * gnatname.adb: Minor reformatting
1644
1645         * osint.ads: Minor reformatting
1646
1647         * s-carun8.ads: Minor reformatting
1648
1649         * g-heasor.ads: Minor comment fix (unit is now pure)
1650
1651 2008-05-26  Robert Dewar  <dewar@adacore.com>
1652
1653         * exp_ch2.adb:
1654         (Expand_Current_Value): Properly type generated integer literal
1655
1656 2008-05-26  Sergey Rybin  <rybin@adacore.com>
1657
1658         * gnat_ugn.texi: Add description for the new gnatcheck rule -
1659         Separate_Numeric_Error_Handlers.
1660
1661 2008-05-26  Pascal Obry  <obry@adacore.com>
1662
1663         * sem_aggr.adb: Minor reformatting.
1664
1665 2008-05-26  Jose Ruiz  <ruiz@adacore.com>
1666
1667         * s-osinte-aix.adb:
1668         (To_Target_Priority): Setting the time slice value to 0 or greater sets
1669         the scheduling policy to FIFO within priorities or round-robin
1670         respectively.
1671         Hence, the priority must be set in this case to the one selected by the
1672         user.
1673         
1674 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
1675
1676         * sem_ch12.adb:
1677         (Remove_Parent): If the enclosing scope is an instance whose generic
1678         parent is declared within some parent scope of the just completed
1679         instance, make full views of the entities in that parent visible, when
1680         applicable.
1681         
1682 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
1683
1684         * mingw32.h (STD_MINGW): Set to true for target w64.
1685
1686 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1687
1688         * trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
1689         instead of TREE_STATIC on the ADDR_EXPR.
1690
1691 2008-05-24  Eric Botcazou  <ebotcazou@adacore.com>
1692
1693         * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
1694         (Sloc_to_locus): Do not overwrite known GCC locations when translating
1695         GNAT standard locations.
1696
1697 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
1698
1699         * gigi.h (mark_visited): Declare.
1700         * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
1701         only the topmost node of expressions.
1702         (elaborate_expression_1): Look deeper for read-only variables.
1703         * trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
1704         (mark_visited): Move logic to mark_visited_r.  Invoke walk_tree.
1705         (mark_visited_r): New function.
1706
1707 2008-05-23  Vincent Celier  <celier@adacore.com>
1708
1709         * snames.adb: New standard name Excluded_Source_List_File.
1710
1711         * snames.ads: New standard name Excluded_Source_List_File.
1712
1713         * prj-attr.adb: New project level attribute Excluded_Source_List_File.
1714
1715         * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
1716         Get excluded sources from
1717         file indicated by attribute Excluded_Source_List_File, when present and
1718         neither Excluded_Source_Files nor Locally_Removed_Files are declared.
1719
1720 2008-05-23  Robert Dewar  <dewar@adacore.com>
1721
1722         * exp_dist.adb: Minor reformatting
1723
1724 2008-05-23  Ed Schonberg  <schonberg@adacore.com>
1725
1726         * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
1727         slice, convert it to an indexed component, which is equivalent, more
1728         efficient, and usable even if the slice itself is not addressable.
1729
1730 2008-05-23  Olivier Hainque  <hainque@adacore.com>
1731
1732         * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
1733         convention also allows access to named compiler built-in subprograms
1734         such as the GCC __builtin family.
1735
1736 2008-05-23  Vincent Celier  <celier@adacore.com>
1737
1738         * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
1739         sep. If there are several possibilities, choose the one with the
1740         longer prefix.
1741
1742 2008-05-23  Vincent Celier  <celier@adacore.com>
1743
1744         * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
1745         back end switches when executable specified with --GCC= is same as
1746         default, even if there are additional options.
1747
1748         * gnat_ugn.texi:
1749         Document when the back end switches from the ALI file are taken into
1750         account when gnatlink is invoked with --GCC=
1751
1752 2008-05-23  Thomas Quinot  <quinot@adacore.com>
1753
1754         * s-os_lib.adb:
1755         (copy_File): Do not open destination file if source file is unreadable.
1756
1757 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
1758
1759         * utils.c (handle_type_generic_attribute): Adjust to accept
1760         fixed arguments before an elipsis.
1761
1762 2008-05-21  Thomas Quinot  <quinot@adacore.com>
1763
1764         * g-sothco.ads, g-sothco.adb: New files.
1765
1766 2008-05-20  Thomas Quinot  <quinot@adacore.com>
1767
1768         * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
1769
1770         * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
1771         Add missing "with" of Ada.Unchecked_Conversion
1772
1773         * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads, 
1774         g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads, 
1775         g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads, 
1776         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads, 
1777         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads, 
1778         g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads: 
1779         Move common code out of GNAT.Sockets.Thin implementations and into
1780         Thin_Common.
1781         New constant SIZEOF_fd_set
1782         New flag Has_Sockaddr_Len
1783         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
1784
1785         * g-stsifd-sockets.adb
1786         (Create): Remove call to Set_Length; use Set_Family to set the family
1787         and (on appropriate platforms) length fields in struct sockaddr.
1788
1789         * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb, 
1790         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb, 
1791         g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
1792         Move common code out of GNAT.Sockets.Thin implementations and into
1793         Thin_Common.
1794
1795         * g-socket.ads, g-socket.adb: 
1796         Move common code out of GNAT.Sockets.Thin implementations and into
1797         Thin_Common.
1798         (Connect_Socket, Accept_Socket): Provide new versions of these two
1799         routines that operate with a user specified timeout.
1800         (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
1801         this is now handled automatically by Set_Family on platforms that
1802         require it.
1803
1804         * gen-soccon.c: 
1805         Move common code out of GNAT.Sockets.Thin implementations and into
1806         Thin_Common.
1807         (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
1808         this constant to 0 (not -1) because we use it to initialize an
1809         unsigned_char value.
1810         Align values for numeric constants only.
1811         Handle the case of systems that do not support AF_INET6.
1812         New constant SIZEOF_fd_set
1813         New flag Has_Sockaddr_Len
1814         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
1815
1816         * gsocket.h: New flag Has_Sockaddr_Len
1817         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
1818
1819 2008-05-20  Santiago Uruena  <uruena@adacore.com>
1820
1821         * i-cobol.ads: Interfaces.COBOL should be preelaborate.
1822
1823 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
1824
1825         * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
1826         the underlying issue with malloc/free has been fixed. Remove associated
1827         comments.
1828         Minor reformatting.
1829         Related to PR ada/24533
1830
1831 2008-05-20  Robert Dewar  <dewar@adacore.com>
1832
1833         * ali.adb: Correct casing of ASCII.NUL
1834
1835         * styleg-c.adb (Check_Identifier): Handle case of names in ASCII
1836         properly.
1837
1838 2008-05-20  Robert Dewar  <dewar@adacore.com>
1839             Gary Dismukes  <dismukes@adacore.com>
1840
1841         * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
1842         overflow if result converted to wider integer type.
1843         (Apply_Type_Conversion_Checks): Don't emit checks on conversions to
1844         discriminated types when discriminant checks are suppressed.
1845
1846 2008-05-20  Vincent Celier  <celier@adacore.com>
1847
1848         * cstand.adb (Print_Standard): Issue the correct Size clause for type
1849         Wide_Wide_Character.
1850
1851 2008-05-20  Tristan Gingold  <gingold@adacore.com>
1852
1853         * decl.c: Do not emit a variable for a object that has an address
1854         representation clause whose value is known at compile time.
1855         When a variable has an address clause whose value is known at compile
1856         time, refer to this variable by using directly the address instead of
1857         dereferencing a pointer.
1858
1859 2008-05-20  Robert Dewar  <dewar@adacore.com>
1860
1861         PR ada/30740
1862         * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
1863         subtypes, always False for non-modular types.
1864         Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
1865         entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
1866         for Shared_Storage package.
1867         (Is_RACW_Stub_Type): New entity flag.
1868
1869         * exp_ch4.adb
1870         (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
1871         case where we have a modular type with a non-binary modules.
1872         Comments reformattings.
1873
1874         * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
1875         all types.
1876
1877 2008-05-20  Javier Miranda  <miranda@adacore.com>
1878
1879         * exp_aggr.adb
1880         (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
1881         tests did not covered the case in which the type of the aggregate has
1882         no progenitors but some its parents has progenitors.
1883
1884 2008-05-20  Gary Dismukes  <dismukes@adacore.com>
1885             Hristian Kirtchev  <kirtchev@adacore.com>
1886
1887         * exp_ch3.adb
1888         (Expand_N_Object_Declaration): Correct the condition which triggers the
1889         generation of a call to Displace when initializing a class-wide object.
1890         (Build_Dcheck_Functions): Build discriminant-checking for null variants
1891         when Frontend_Layout_On_Target is true to ensure that they're available
1892         for calling when a record variant size function is built in Layout.
1893
1894 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
1895
1896         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
1897         procedure for a derived type retrieve the discriminant values from the
1898         parent using the corresponding discriminant.
1899         (Expand_N_Assignment_Statement): Skip generation of implicit
1900         if-statement associated with controlled types if we are
1901         compiling with restriction No_Finalization.
1902
1903 2008-05-20  Vincent Celier  <celier@adacore.com>
1904
1905         * prj.adb (Hash (Project_Id)): New function
1906         (Project_Empty): Add new component Interfaces_Defined
1907
1908         * prj.ads (Source_Data): New component Object_Linked
1909         (Language_Config): New components Object_Generated and Objects_Linked
1910         (Hash (Project_Id)): New function
1911         (Source_Data): New Boolean components In_Interfaces and
1912         Declared_In_Interfaces.
1913         (Project_Data): New Boolean component Interfaces_Defined
1914
1915         * prj-attr.adb: 
1916         New project level attribute Object_Generated and Objects_Linked
1917         Add new project level attribute Interfaces
1918
1919         * prj-dect.adb: Use functions Present and No throughout
1920         (Parse_Variable_Declaration): If a string type is specified as a simple
1921         name and is not found in the current project, look for it also in the
1922         ancestors of the project.
1923
1924         * prj-makr.adb: 
1925         Replace procedure Make with procedures Initialize, Process and Finalize
1926         to implement H414-023: process different directories with different
1927         patterns.
1928         Use functions Present and No throughout
1929
1930         * prj-makr.ads: 
1931         Replace procedure Make with procedures Initialize, Process and Finalize
1932
1933         * prj-nmsc.adb
1934         (Add_Source): Set component Object_Exists and Object_Linked accordnig to
1935         the language configuration.
1936         (Process_Project_Level_Array_Attributes): Process new attributes
1937         Object_Generated and Object_Linked.
1938         (Report_No_Sources): New Boolean parameter Continuation, defaulted to
1939         False, to indicate that the erreor/warning is a continuation.
1940         (Check): Call Report_No_Sources with Contnuation = True after the first
1941         call.
1942         (Error_Msg): Process successively contnuation character and warning
1943         character.
1944         (Find_Explicit_Sources): Check that all declared sources have been found
1945         (Check_File): Indicate in hash table Source_Names when a declared source
1946         is found.
1947         (Check_File): Set Other_Part when found
1948         (Find_Explicit_Sources): In multi language mode, check if all exceptions
1949         to the naming scheme have been found. For Ada, report an error if an
1950         exception has not been found. Otherwise, disregard the exception.
1951         (Check_Interfaces): New procedure
1952         (Add_Source): When Other_Part is defined, set mutual pointers in spec
1953         and body.
1954         (Check): In multi-language mode, call Check_Interfaces
1955         (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
1956         for an excluded source.
1957         (Remove_Source): A source replacing a source in the interfaces is also
1958         in the interfaces.
1959
1960         * prj-pars.adb: Use function Present
1961
1962         * prj-part.adb: Use functions Present and No throughout
1963         (Parse_Single_Project): Set the parent project for child projects
1964         (Create_Virtual_Extending_Project): Register project with no qualifier
1965         (Parse_Single_Project): Allow an abstract project to be extend several
1966         times. Do not allow an abstract project to extend a non abstract
1967         project.
1968
1969         * prj-pp.adb: Use functions Present and No throughout
1970         (Print): Take into account the full associative array attribute
1971         declarations.
1972
1973         * prj-proc.adb: Use functions Present and No throughout
1974         (Expression): Call itself with the same From_Project_Node for the
1975         default value of an external reference.
1976
1977         * prj-strt.adb: Use functions Present and No throughout
1978         (Parse_Variable_Reference): If a variable is specified as a simple name
1979         and is not found in the current project, look for it also in the
1980         ancestors of the project.
1981
1982         * prj-tree.ads, prj-tree.adb (Present): New function
1983         (No): New function
1984         Use functions Present and No throughout
1985         (Parent_Project_Of): New function
1986         (Set_Parent_Project_Of): New procedure
1987
1988         * snames.ads, snames.adb: 
1989         Add new standard names Object_Generated and Objects_Linked
1990
1991 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
1992
1993         * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
1994         and the derived type are of the same kind.
1995         (Expand_Call): Generate type conversions for actuals of
1996         record or array types when the parent and the derived types differ in
1997         size and/or packed status.
1998
1999 2008-05-20  Javier Miranda  <miranda@adacore.com>
2000             Ed Schonberg  <schonberg@adacore.com>
2001
2002         * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
2003         generating dispatch tables of locally defined tagged types statically.
2004         Remove implicit if-statement that is no longer required.
2005         (Expand_Dispatching_Call): If this is a call to an instance of the
2006         generic dispatching constructor, the type of the first argument may be
2007         a subtype of Tag, so always use the base type to recognize this case.
2008
2009 2008-05-20  Thomas Quinot  <quinot@adacore.com>
2010
2011         * exp_dist.adb
2012         (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
2013         and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
2014         assigning NULL into the result, to avoid a spurious warning.
2015         (Add_RACW_Features, case Same_Scope): Add assertion that designated type
2016         is not frozen.
2017         (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
2018         type.
2019         (Build_From_Any_Function, Build_To_Any_Function,
2020         Build_TypeCode_Function): For a type that has user-specified stream
2021         attributes, use an opaque sequence of octets as the representation.
2022
2023 2008-05-20  Kevin Pouget  <pouget@adacore.com>
2024
2025         * exp_smem.ads, exp_smem.adb: Construction of access and assign
2026         routines has been replaced by an instantiation of
2027         System.Shared_Storage.Shared_Var_Procs generic package, while expanding
2028         shared variable declaration.
2029         Calls to access and assign routines have been replaced by calls to
2030         Read/Write routines of System.Shared_Storage.Shared_Var_Procs
2031         instantiated package.
2032         
2033         * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
2034         It identifies the new generic package added in s-shasto.
2035
2036         * s-shasto.adb, s-shasto.ads: A new generic package has been added, it
2037         is instantiated for each shared passive variable. It provides
2038         supporting procedures called upon each read or write access by the
2039         expanded code.
2040
2041         * sem_attr.adb:
2042         For this runtime unit (always compiled in GNAT mode), we allow
2043         stream attributes references for limited types for the case where
2044         shared passive objects are implemented using stream attributes,
2045         which is the default in GNAT's persistent storage implementation.
2046
2047 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
2048
2049         * freeze.adb
2050         (Freeze_Enumeration_Type): For a subtype that inherits a foreign
2051         convention from its base type, do not set the type to that of integer,
2052         because it may inherit a size clause.
2053         Warn on a size clause with a size different
2054         from that of Integer, if the type has convention C.
2055
2056 2008-05-20  Vincent Celier  <celier@adacore.com>
2057
2058         * gnatname.adb
2059         (Scan_Args): Rewrite to take into account new switch --and to separate
2060         arguments into sections.
2061         (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
2062         section, then Finalize.
2063
2064 2008-05-20  Tristan Gingold  <gingold@adacore.com>
2065
2066         * init.c: Enable stack probing on ppc-linux.
2067
2068         * tracebak.c: Add symbolic traceback for ppc-linux.
2069
2070         * system-linux-ppc.ads: Enable stack probing on ppc-linux.
2071
2072 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
2073
2074         * Makefile.in
2075         (common-tools): New rule, to avoid parallel build failure on gnat tools.
2076         Reenable parallel builds on this Makefile.
2077
2078         * Make-lang.in: Update dependencies.
2079
2080 2008-05-20  Robert Dewar  <dewar@adacore.com>
2081
2082         * opt.ads (Treat_Restrictions_As_Warnings): New switch
2083
2084         * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
2085         Treat_Restrictions_As_Warnings.
2086
2087         * switch-c.adb: Recognize new switch -gnatr
2088
2089         * usage.adb: Add line for -gnatr
2090
2091 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
2092
2093         * par-ch3.adb
2094         (P_Access_Definition): Change the error message when parsing "access
2095         all" in Ada 95 mode. The message no longer forces the user to recompile
2096         in 05 mode only to discover that anonymous access types are not allowed
2097         to have "all".
2098
2099 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
2100
2101         * par-ch9.adb
2102         (P_Protected): Update the error message on missing "-gnat05" switch when
2103         using interfaces in conjunction with protected types. Remove the
2104         incorrect error message associated with the presence of "private" after
2105         a "with".
2106
2107 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
2108
2109         * sem_aggr.adb: Update comments.
2110         Improve previous change for PR ada/17985
2111
2112 2008-05-20  Thomas Quinot  <quinot@adacore.com>
2113
2114         * sem_cat.adb
2115         (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
2116         the visible part of the spec of a remote types unit.
2117         (Validate_Remote_Access_Object_Type_Declaration):
2118         New local subprogram Is_Valid_Remote_Object_Type, replaces
2119         Is_Recursively_Limited_Private.
2120         (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
2121         non-controlling formals (and the return type, even though this is not
2122         explicit in the standard) must support external streaming.
2123         (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
2124         as above for of RAS types and RCI subprograms. (The return type is not
2125         checked yet).
2126         Update comments related to RACWs designating limited interfaces per
2127         ARG ruling on AI05-060.
2128
2129         * sem_util.ads, sem_util.adb
2130         (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
2131         Is_Remote_Call_Interface to identify RACW types in a stable and
2132         consistent way. We used to rely in this predicate on the privateness of
2133         the designated type and its ancestors, but depending on the currently
2134         visible private parts, this caused false negatives. We now uniformly
2135         rely on checks made at the point where the RACW type is declared.
2136         (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
2137
2138 2008-05-20  Javier Miranda  <miranda@adacore.com>
2139             Ed Schonberg  <schonberg@adacore.com>
2140             Hristian Kirtchev  <kirtchev@adacore.com>
2141
2142         * sem_ch3.adb
2143         (Analyze_Object_Declaration): Fix over-conservative condition
2144         restricting use of predefined assignment with tagged types that have
2145         convention CPP.
2146         (Analyze_Object_Declaration): Relax the check regarding deferred
2147         constants declared in scopes other than packages since they can be
2148         completed with pragma Import.
2149         Add missing escaping of all-caps word 'CPP' in error messages.
2150         (Build_Discriminated_Subtype): Do not inherit representation clauses
2151         from parent type if subtype already carries them, because they are
2152         inherited earlier during derivation and already include those that may
2153         come from a partial view.
2154
2155         * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
2156         Check the declarations of a subprogram body for proper deferred
2157         constant completion.
2158
2159         * sem_ch7.ads, sem_ch7.adb
2160         (Inspect_Deferred_Constant_Completion): Moved to sem_util.
2161
2162 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
2163             Thomas Quinot  <quinot@adacore.com>
2164
2165         * sem_ch4.adb
2166         (Try_Indexed_Call): Handle properly a construct of the form F(S) where
2167         F is a parameterless function that returns an array, and S is a subtype
2168         mark.
2169         (Analyze_Call): Insert dereference when the prefix is a parameterless
2170         function that returns an access to subprogram and the call has
2171         parameters.
2172         Reject a non-overloaded call whose name resolves to denote
2173         a primitive operation of the stub type generated to support a remote
2174         access-to-class-wide type.
2175
2176 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
2177
2178         * sem_ch8.adb
2179         (Note_Redundant_Use): Diagnose a redundant use within a subprogram body
2180         when there is a use clause for the same entity in the context.
2181         (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
2182         created for a stream attribute of an abstract type or interface type.
2183
2184 2008-05-20  Thomas Quinot  <quinot@adacore.com>
2185
2186         * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
2187         subprogram.
2188
2189         * sem_type.adb
2190         (Add_One_Interp): Ignore any interpretation that is a primitive
2191         operation of an RACW stub type (these primitives are only executed
2192         through dispatching, never through static calls).
2193         (Collect_Interps): When only one interpretation has been found, set N's
2194         Entity and Etype to that interpretation, otherwise Entity and Etype may
2195         still refer to an interpretation that was ignored by Add_One_Interp,
2196         in which case would end up with being marked as not overloaded but with
2197         an Entity attribute not pointing to its (unique) correct interpretation.
2198
2199 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
2200
2201         * sem_eval.adb
2202         (Eval_Slice): Warn when a slice whose discrete range is a subtype name
2203         denotes the whole array of its prefix.
2204
2205 2008-05-20  Robert Dewar  <dewar@adacore.com>
2206
2207         * sem_res.adb (Resolve_Op_Not): Warn on double negation
2208
2209 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
2210
2211         * sprint.adb
2212         (Print_Itype): Do not modify the sloc of the component type of a
2213         (packed) array itype, because it is an unrelated type whose source
2214         location is independent of the point of creation of the itype itself.
2215
2216 2008-05-20  Thomas Quinot  <quinot@adacore.com>
2217
2218         * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with
2219         Append.
2220
2221 2008-05-20  Robert Dewar  <dewar@adacore.com>
2222             Vincent Celier  <celier@adacore.com>
2223
2224         * vms_data.ads: Add entry for -gnatr
2225         Put GNAT SYNC section in proper alpha order
2226         Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d
2227
2228         * gnat_ugn.texi: Add documentation for new gnatname switch --and
2229         Update the style checks section
2230         Add documentation of -gnatr
2231         Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
2232         subsection the explanation how compiler checks should be disabled for
2233         gnatcheck.
2234         Update the list of Ada 95 reserved words used by in the project language
2235         Add documentation for project qualifiers.
2236         Document that abstract projects may be extended by different projects in
2237         the same project tree.
2238         Add documentation for gnatmake switch -d
2239
2240         * ug_words: Add -gnatyy VMS equivalence string.
2241         Add entry for -gnatr
2242
2243 2008-05-20  Bob Duff  <duff@adacore.com>
2244
2245         * a-rttiev.adb
2246         (Set_Handler): Remove code from both of these that implements
2247         RM-D.15(15/2), because it causes a race condition and potential
2248         deadlock.
2249         (Process_Queued_Events): Add comment explaining "exception when others
2250         => null". Add clarifying ".all", even though implicit .all is legal
2251         here.
2252
2253 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
2254
2255         * s-winext.ads: Replace representation clause by pragma Pack. Gives
2256         equivalent representation, but has the advantage of allowing
2257         compilation of this file under 64 bits platforms.
2258
2259         * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.
2260
2261         * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration.
2262
2263         * adaint.c: 
2264         Don't define dummy implementation of convert_addresses on ppc-linux.
2265
2266 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
2267
2268         * exp_ch7.adb
2269         (Expand_Ctrl_Function_Call): Do not attach result to finalization list
2270         if expression is aggregate component.
2271
2272 2008-05-20  Robert Dewar  <dewar@adacore.com>
2273
2274         * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads,
2275         sem_ch12.adb: Update comments. Minor reformatting.
2276
2277         * exp_ch2.adb: Typo
2278
2279         * s-unstyp.ads: Fixed some typos in comments.
2280
2281 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
2282
2283         * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New
2284         type/constant.
2285
2286         * g-socthi-vxworks.ads: Update to latest socket changes.
2287
2288         * a-caldel-vms.adb: Resync with a-caldel spec.
2289
2290         * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting.
2291         Update comments.
2292
2293 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2294
2295         * trans.c (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Account
2296         for dummy types pointed to by the converted pointer types.
2297
2298 2008-05-15  Eric Botcazou  <ebotcazou@adacore.com>
2299
2300         * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field
2301         of records and unions.
2302         (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Fix formatting.
2303
2304 2008-05-14  Samuel Tardieu  <sam@rfc1149.net>
2305             Robert Dewar <dewar@adacore.com>
2306
2307         * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add
2308         restrictions to the prefix of 'Old.
2309         * sem_util.ads, sem_util.adb (In_Parameter_Specification): New.
2310         * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local
2311         variables.
2312
2313 2008-05-13  Eric Botcazou  <ebotcazou@adacore.com>
2314
2315         PR ada/24880
2316         PR ada/26635
2317         * utils.c (convert) <INTEGER_TYPE>: When converting an additive
2318         expression to an integral type with lower precision, use NOP_EXPR
2319         directly in a couple of special cases.
2320
2321 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
2322             Ed Schonberg <schonberg@adacore.com>
2323
2324         * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching
2325         constraint expressions.
2326
2327 2008-05-12  Tomas Bily  <tbily@suse.cz>
2328
2329         * utils2.c (known_alignment, contains_save_expr_p)
2330         (gnat_mark_addressable): Use CASE_CONVERT.
2331         * decl.c (annotate_value): Likewise.
2332         * trans.c (maybe_stabilize_reference): Likewise.
2333         * utils2.c (build_binary_op): Use CONVERT_EXPR_P.
2334         * utils.c (rest_of_record_type_compilation): Likewise.
2335         * trans.c (protect_multiple_eval, Attribute_to_gnu)
2336         (protect_multiple_eval): Likewise.
2337
2338 2008-05-08  Andreas Schwab  <schwab@suse.de>
2339
2340         * utils.c (handle_pure_attribute, init_gigi_decls): Rename
2341         DECL_IS_PURE to DECL_PURE_P.
2342
2343 2008-05-05  Eric Botcazou  <ebotcazou@adacore.com>
2344
2345         * decl.c (maybe_pad_type): Add ??? comment.
2346
2347 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
2348
2349         * decl.c (components_to_record): Zero the alignment of the qualified
2350         union built for the variant part upon creating it.
2351
2352 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
2353
2354         * decl.c (maybe_pad_type): Try to get a form of the type with integral
2355         mode even if the alignment is not a factor of the original size.  But
2356         make sure to create the inner field with the original size.  Reorder.
2357         * trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding
2358         record as always addressable.
2359         * utils.c (convert): Deal specially with conversions between original
2360         and packable versions of a record type.
2361         * utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when
2362         recognizing an assignment between padded objects.
2363
2364 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
2365
2366         * decl.c (make_packable_type): Resize the last component to its RM size
2367         only if it is of an aggregate type.
2368         * trans.c (call_to_gnu): Fix nit in comment.
2369         (gnat_to_gnu): Likewise.
2370
2371 2008-04-30  Samuel Tardieu  <sam@rfc1149.net>
2372
2373         * Makefile.in: Adapt sh4-linux target.
2374
2375 2008-04-29  Ed Schonberg  <schonberg@adacore.com>
2376
2377         PR ada/35792
2378         * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete
2379         tagged type by an untagged protected or task type.
2380
2381 2008-04-28  Eric Botcazou  <ebotcazou@adacore.com>
2382             Tristan Gingold  <gingold@adacore.com>
2383
2384         PR ada/36007
2385         * decl.c (gnat_to_gnu_entity) <object>: Do not promote alignment
2386         of aliased objects with an unconstrained nominal subtype.
2387         Cap the promotion to the effective alignment of the word mode.
2388
2389 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2390
2391         * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads)
2392         (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads):
2393         Use '&&' instead of ';'.
2394
2395 2008-04-24  Olivier Hainque  <hainque@adacore.com>
2396
2397         * trans.c (Attribute_to_gnu) <case Attr_Length>: Length computation
2398         doesn't require signed arithmetic anymore.
2399
2400 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
2401
2402         * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT.
2403         (call_to_gnu): Don't set TREE_INVARIANT.
2404         * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT.
2405
2406 2008-04-22  Joel Sherrill <joel.sherrill@oarcorp.com>
2407
2408         * s-osinte-rtems.adb: Add sigalstack function.
2409         * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack
2410         function. Add Alternate_Stack and Alternate_Stack_Size.
2411         Add missing process_shared field to pthread_condattr_t
2412         and change ss_low_priority to int from timespec.
2413
2414 2008-04-22  Samuel Tardieu  <sam@rfc1149.net>
2415
2416         * i-forbla.adb: Link against -llapack and -lblas by default
2417         instead of the private -lgnalasup.
2418
2419 2008-04-21  Olivier Hainque  <hainque@adacore.com>
2420
2421         Access to most C builtins from Ada
2422         * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE.
2423         (handle_pure_attribute, handle_novops_attribute,
2424         handle_nonnull_attribute, handle_sentinel_attribute,
2425         handle_noreturn_attribute, handle_malloc_attribute,
2426         handle_type_generic_attribute): New attribute handlers, from C fe.
2427         (gnat_internal_attribute_table): Map the new handlers.
2428         (gnat_init_decl_processing): Move call to gnat_install_builtins to ...
2429         (init_gigi_decls): ... here.
2430         (handle_const_attribute, handle_nothrow_attribute, builtin_decl_for):
2431         Move to a section dedicated to builtins processing.
2432         (build_void_list_node, builtin_type_for_size): New functions.
2433         (def_fn_type, get_nonnull_operand): Likewise.
2434         (install_builtin_elementary_type, install_builtin_function_types,
2435         install_builtin_attributes): Likewise.
2436         (fake_attribute_handler): Fake handler for attributes we don't
2437         support in Ada.
2438         (def_builtin_1): New function, worker for DEF_BUILTIN.
2439         (install_builtin_functions): New function.
2440         (gnat_install_builtins): Move to the builtins processing section.
2441         Now calling the newly introduced installers.
2442
2443 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
2444
2445         * decl.c (gnat_to_gnu_entity) <object>: Also promote the alignment of
2446         constant objects, but not exceptions.
2447         * trans.c (add_decl_expr): Use gnat_types_compatible_p for type
2448         compatibility test.
2449         * utils.c (create_var_decl_1): Likewise.
2450         * utils2.c (build_binary_op) <MODIFY_EXPR>: Also use the padded view of
2451         the type when copying to padded object and the source is a constructor.
2452
2453 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2454
2455         * decl.c (gnat_to_gnu_entity) <object>: When trying to promote the
2456         alignment, reset it to zero if it would end up not being greater
2457         than that of the type.
2458
2459 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2460
2461         * decl.c (maybe_pad_type): Only generate the XVS parallel type if
2462         the padded type has a variable size.
2463
2464 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2465
2466         * decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Use the return by
2467         target pointer mechanism as soon as the size is not constant.
2468
2469 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2470
2471         * gigi.h (create_var_decl_1): Declare.
2472         (create_var_decl): Turn into a macro invoking create_var_decl_1.
2473         (create_true_var_decl): Likewise.
2474         * utils.c (create_var_decl_1): Make global and reorder parameters.
2475         (create_var_decl): Delete.
2476         (create_true_var_decl): Likewise.
2477
2478 2008-04-17  Eric Botcazou  <ebotcazou@adacore.com>
2479
2480         * decl.c (gnat_to_gnu_entity) <object>: Promote the alignment of
2481         objects by default.
2482         * fe.h (Debug_Flag_Dot_A): Delete.
2483         * debug.adb (-gnatd.a): Update documentation.
2484
2485 2008-04-17  Samuel Tardieu  <sam@rfc1149.net>
2486
2487         * g-socket.ads, g-socket.adb (Get_Address): Make Stream a
2488         "not null" parameter.
2489
2490 2008-04-17  Samuel Tardieu  <sam@rfc1149.net>
2491
2492         * g-socket.adb: Add a message "IPv6 not supported" to the
2493         Socket_Error exception.
2494
2495 2008-04-16  Samuel Tardieu  <sam@rfc1149.net>
2496
2497         PR ada/29015
2498         * sem_ch12.adb (Instantiate_Type): Check whether the full view of
2499         the type is known instead of the underlying type.
2500
2501 2008-04-15  Ed Schonberg  <schonberg@adacore.com>
2502
2503         PR ada/22387
2504         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
2505         procedure for a derived type retrieve the discriminant values from
2506         the parent using the corresponding discriminant.
2507
2508 2008-04-15  Samuel Tardieu  <sam@rfc1149.net>
2509             Gary Dismukes  <dismukes@adacore.com>
2510
2511         PR ada/28733
2512         * sem_ch8.adb (Analyze_Use_Package): Do not allow "use" of something
2513         which is not an entity (and hence not a package).
2514         (End_Use_Package): Ditto.
2515
2516 2008-04-15  Ed Schonberg  <schonberg@adacore.com>
2517
2518         PR ada/16086
2519         * sem_ch12.adb (Analyze_Formal_Subprogram): The default can be any
2520         protected operation that matches the signature, not only an entry, a
2521         regular subprogram or a literal.
2522
2523 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
2524
2525         * ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3.
2526         * decl.c (gnat_to_gnu_entity) <object>: Call maybe_pad_type only
2527         if a size or alignment is specified.  Do not take into account
2528         alignment promotions for the computation of the object's size.
2529         <type>: Call maybe_pad_type only if a size or alignment is specified.
2530         (maybe_pad_type): Really reuse the RM_Size of the original type if
2531         requested.
2532         * trans.c (Attribute_to_gnu): Fix a couple of nits.
2533         * utils2.c (build_binary_op) <MODIFY_EXPR>: Merge related conditional
2534         statements.  Use the padded view of the type when copying between
2535         padded objects of the same underlying type.
2536
2537 2008-04-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2538
2539         * vms_data.ads: Fix typo in constant.
2540         * gen-soccon.c: Fix typo in error string.
2541         * gnat_rm.texi (Pragma Optimize_Alignment, Pragma Postcondition):
2542         Fix typos.
2543         * a-calcon.ads, a-calend-vms.adb, a-calend.adb, a-crdlli.ads,
2544         bcheck.adb, checks.adb, einfo.ads, errout.adb, erroutc.adb,
2545         erroutc.ads, exp_attr.adb, exp_ch11.adb, exp_ch2.adb,
2546         exp_ch5.adb, exp_ch9.adb, exp_ch9.ads, exp_pakd.adb,
2547         exp_util.adb, fmap.adb, g-soccon-linux-mips.ads,
2548         g-soccon-rtems.ads, g-timsta.adb, g-timsta.ads, lib-writ.ads,
2549         mlib-tgt-specific-linux.adb, mlib-tgt-specific-tru64.adb,
2550         s-interr-vxworks.adb, s-interr.adb, s-osinte-lynxos.ads,
2551         s-rident.ads, s-taprop-solaris.adb, s-tassta.adb, s-win32.ads,
2552         sem_aggr.adb, sem_attr.ads, sem_ch10.adb, sem_ch13.ads,
2553         sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
2554         sem_prag.ads, sem_res.adb, sem_util.adb, sem_util.ads,
2555         sinfo.ads: Fix typos in comments.
2556
2557 2008-04-14  Robert Dewar  <dewar@adacore.com>
2558
2559         * sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error
2560         to every non-object and change error message.
2561
2562 2008-04-14  Robert Dewar  <dewar@adacore.com>
2563
2564         * sem_util.ads, sem_util.adb (In_Subprogram): Remove.
2565         * sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram
2566         directly.
2567
2568 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
2569
2570         PR ada/18680
2571         * sem_prag.adb (Analyze_Pragma, Linker_Section case): Refuse to
2572         apply pragma Linker_Section on type.
2573
2574 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
2575
2576         PR ada/16098
2577         * sem_prag.adb (Error_Pragma_Ref): New.
2578         (Process_Convention): Specialized message for non-local
2579         subprogram renaming. Detect the problem in homonyms as well.
2580
2581 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
2582
2583         PR ada/15915
2584         * sem_util.ads, sem_util.adb (Denotes_Variable): New function.
2585         * sem_ch12.adb (Instantiate_Object): Use it.
2586         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that
2587         storage pool denotes a variable as per RM 13.11(15).
2588
2589 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
2590
2591         * sem_util.ads, sem_util.adb (In_Subprogram): New function.
2592         * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it.
2593
2594 2008-04-14  Rolf Ebert  <rolf.ebert.gcc@gmx.de>
2595
2596         PR ada/20822
2597         * xgnatugn.adb (Put_Line): New procedure, ensuring Unix
2598         line endings even on non-Unix platforms.
2599
2600 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
2601
2602         PR ada/35050
2603         * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the
2604         renaming information.
2605
2606 2008-04-13  Samuel Tardieu  <sam@rfc1149.net> 
2607
2608         PR ada/17985
2609         * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of
2610         itself.
2611
2612 2008-04-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2613
2614         * sfn_scan.adb, sfn_scan.ads, sinfo.ads,
2615         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads,
2616         snames.ads, sprint.adb, stand.ads, stringt.ads,
2617         styleg.adb, styleg.ads, stylesw.adb, stylesw.ads,
2618         switch.ads, sysdep.c, table.adb, table.ads,
2619         targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c,
2620         trans.c, tree_io.adb, treepr.adb, types.adb, types.ads,
2621         uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads,
2622         vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb,
2623         widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb,
2624         xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb:
2625         Fix comment typos.
2626
2627         * sem_ch10.adb, sem_ch10.ads,
2628         sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads,
2629         sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
2630         sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
2631         sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb,
2632         sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads,
2633         sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads,
2634         sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
2635         sem_warn.ads: Fix comment typos.
2636
2637         * s-secsta.adb, s-sequio.ads, s-shasto.ads,
2638         s-soflin.ads, s-stalib.ads, s-stausa.adb,
2639         s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads,
2640         s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
2641         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb,
2642         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
2643         s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb,
2644         s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads,
2645         s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads,
2646         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
2647         s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb,
2648         s-tposen.ads, s-traceb-hpux.adb, s-traces.ads,
2649         s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads,
2650         s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb,
2651         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads,
2652         scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb,
2653         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
2654         sem_cat.adb, sem_cat.ads: Fix comment typos.
2655
2656 2008-04-12  Joel Sherrill  <joel@oarcorp.com>
2657
2658         PR ada/35825
2659         * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported.
2660
2661 2008-04-12  Arnaud Charlet  <charlet@adacore.com>
2662
2663         * s-linux-hppa.ads: Fix syntax errors.
2664
2665 2008-04-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2666
2667         * gnat_ugn.texi: Fix typos.
2668         * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb,
2669         restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads,
2670         s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads,
2671         s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads,
2672         s-fatllf.ads, s-fatsfl.ads, s-filofl.ads,
2673         s-finimp.adb, s-finroo.ads, s-fishfl.ads,
2674         s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads,
2675         s-hibaen.ads, s-htable.ads, s-imgcha.adb,
2676         s-imgenu.ads, s-imgint.adb, s-imgrea.adb,
2677         s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb,
2678         s-interr-vxworks.adb, s-interr.adb, s-interr.ads,
2679         s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb,
2680         s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads,
2681         s-osinte-darwin.ads, s-osinte-freebsd.ads,
2682         s-osinte-hpux.ads, s-osinte-lynxos-3.adb,
2683         s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
2684         s-osinte-rtems.ads, s-osinte-solaris-posix.ads,
2685         s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads,
2686         s-parame-hpux.ads, s-parame-vms-alpha.ads,
2687         s-parame-vms-ia64.ads, s-parame-vms-restrict.ads,
2688         s-parame-vxworks.ads, s-parame.ads, s-parint.adb,
2689         s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads,
2690         s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads,
2691         s-rident.ads: Fix comment typos.
2692
2693 2008-04-09  Samuel Tardieu  <sam@rfc1149.net>
2694
2695         PR ada/28305
2696         * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore
2697         environment if generic instance is a top-level one.
2698
2699 2008-04-09  Doug Rupp  <rupp@adacore.com>
2700
2701         * decl.c (validate_size): Set minimum size for fat pointers same as
2702         access types. Code clean ups.
2703
2704         * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise
2705         (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS
2706
2707         * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant
2708
2709         * s-crtl.ads (malloc32) New function, alias for malloc
2710         (realloc32) New function, alias for realloc
2711
2712         * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS
2713
2714         * utils2.c (build_call_alloc_dealloc): Return call to short malloc if
2715         allocator size is 32 and default pointer size is 64.
2716         (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of
2717         lhs type if smaller, whatever the modes.
2718
2719         * gigi.h (malloc32_decl): New macro definition
2720
2721         * utils.c (init_gigi_decls): New malloc32_decl
2722         Various code clean ups.
2723
2724         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
2725         Task_Address vice System.Address.
2726
2727         * s-taspri-vms.ads: Import System.Aux_DEC
2728         (Task_Address): New subtype of System.Aux_DEC.Short_Address
2729         (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address
2730
2731         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
2732         Task_Address vice System.Address.
2733
2734         * s-inmaop-vms.adb: Import System.Task_Primitives
2735         (To_Address): Unchecked convert to Task_Address vice System.Address
2736
2737         * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay
2738         expires now.
2739         (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address
2740         (To_Address) Unchecked convert to Task_Address vice System.Address
2741
2742         * s-tpopde-vms.adb: Remove unnecessary warning pragmas
2743
2744         * g-socthi-vms.ads: Add 32bit size clauses on socket access types.
2745
2746 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2747
2748         * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
2749         (fdesc_type_node): Define.
2750         (null_fdesc_node): Likewise.
2751         * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
2752         uses descriptors for vtables and the type comes from a dispatch table,
2753         return the descriptor type.
2754         * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
2755         uses descriptors for vtables and the type comes from a dispatch table,
2756         build a descriptor in the static case and copy the existing one in the
2757         non-static case.
2758         (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
2759         the type is a pointer-to-subprogram coming from a dispatch table,
2760         return the null descriptor.
2761         <N_Unchecked_Type_Conversion>: If the target uses descriptors for
2762         vtables, the source type is the descriptor type and the target type
2763         is a pointer type, first build the pointer.
2764         * utils.c (init_gigi_decls): If the target uses descriptors for vtables
2765         build the descriptor type and the null descriptor.
2766
2767 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2768
2769         * decl.c (prepend_attributes): Fix typo.
2770         * trans.c (Pragma_to_gnu): Likewise.
2771         * utils.c (gnat_genericize): Likewise.
2772
2773 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2774             Richard Kenner  <kenner@adacore.com>
2775
2776         * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
2777         * decl.c (gnat_to_gnu_entity): Adjust for above change.
2778         <E_Record_Type>: Try to get a better form of the component for
2779         packing, even if it has an integral mode.
2780         <E_Record_Subtype>: Likewise.
2781         * trans.c (gnat_to_gnu): Do not require BLKmode for the special
2782         exception suppressing the final conversion between record types.
2783
2784 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2785
2786         * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing
2787         alignment for space, promote the alignment of non-scalar variables with
2788         no size and alignment.
2789         * gigi.h (gnat_types_compatible_p): Declare.
2790         * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
2791         * trans.c (gnat_to_gnu): Revert revision 129339 change.  Minor cleanup.
2792         * utils.c (gnat_types_compatible_p) : New predicate.
2793         (convert): Use it throughout to test for cases where a mere view
2794         conversion is sufficient.
2795         * utils2.c (build_binary_op): Minor tweaks.
2796         (build_unary_op): Likewise.
2797
2798 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2799
2800         * decl.c (adjust_packed): Expand comment.
2801
2802 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
2803
2804         * s-tasuti.ads: Use Task_Address instead of System.Address.
2805
2806         * makeutl.adb (Path_Or_File_Name): New function
2807
2808         * nlists.ads, itypes.ads: Update comments.
2809
2810         * s-crtl.ads (malloc32, realloc32): New functions.
2811
2812         * s-auxdec.ads (Short_Address_Size): New constant.
2813
2814         * a-taside.adb, s-tasdeb.adb: Use Task_Address.
2815
2816         * s-ststop.ads, s-ststop.adb: New file.
2817
2818         * exp_tss.ads, s-taprop-lynxos.adb: Update comments.
2819         Minor reformatting.
2820
2821 2008-04-08  Pascal Obry  <obry@adacore.com>
2822
2823         * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
2824         (Stop_Bits_Number): New type.
2825         (Parity_Check): Likewise.
2826         (Set): Add parameter to set the number of stop bits and
2827         the parity. Parameter timeout is now a duration instead
2828         of a plain integer.
2829
2830         * g-sercom-linux.adb:
2831         Implement the stop bits and parity support for GNU/Linux.
2832         Fix handling of timeout, it must be given in tenth of seconds.
2833         
2834         * g-sercom-mingw.adb:
2835         Implement the stop bits and parity support for Windows.
2836         Use new s-win32.ads unit instead of declaring Win32 services
2837         directly into this body.
2838         Update handling of timeout as now a duration.
2839
2840         * s-win32.ads, s-winext.ads: New files.
2841
2842 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2843             Arnaud Charlet  <charlet@adacore.com>
2844
2845         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.
2846
2847         s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
2848         s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.
2849
2850         * s-osinte-lynxos-3.ads,
2851         (Alternate_Stack): Remove when not needed. Simplify declaration
2852         otherwise.
2853         (Alternate_Stack_Size): New constant.
2854
2855         s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
2856         'Unrestricted_Access.
2857
2858         * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
2859         s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
2860         s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
2861         s-osinte-solaris.ads, s-osinte-vms.ads
2862         (SA_ONSTACK): New constant.
2863         (stack_t): New record type.
2864         (sigaltstack): New imported function.
2865         (Alternate_Stack): New imported variable.
2866         (Alternate_Stack_Size): New constant.
2867
2868         * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.
2869
2870         * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
2871         s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
2872         s-taspri-vms.ads (Task_Address): New subtype of System.Address
2873         (Task_Address_Size): New constant size of System.Address
2874         (Alternate_Stack_Size): New constant.
2875
2876         * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
2877         (Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
2878         Establish the alternate stack if the platform makes use of n alternate
2879         signal stack for stack overflows.
2880         (Create_Task): Take into account the alternate stack in the stack size.
2881         (Initialize): Save the address of the alternate stack into the ATCB for
2882         the environment task.
2883         (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).
2884
2885         * s-parame.adb (Minimum_Stack_Size): Increase value to 16K
2886
2887         * system-linux-x86.ads: (Stack_Check_Probes): Set to True.
2888
2889         * s-intman-posix.adb: 
2890         (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
2891         alternate signal stack for stack overflows.
2892
2893         * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
2894         x86-64, adjust the saved value of the stack pointer if the signal was
2895         raised by a stack checking probe.
2896         (HP-UX section): Use global __gnat_alternate_stack as signal handler
2897         stack and only for SIGSEGV.
2898         (Linux section): Likewise on x86 and x86-64.
2899         [VxWorks section]
2900         (__gnat_map_signal): Now static.
2901         (__gnat_error_handler): Not static any more.
2902         (__gnat_adjust_context_for_raise): New function. Signal context
2903         adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
2904         propagation circuitry.
2905         (__gnat_error_handler): Second argument of a sigaction handler is a
2906         pointer, not an int, and is unused.
2907         Adjust signal context before mapping to exception.
2908         Install signal handlers for LynxOS case.
2909
2910         * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
2911         (Task_Id): Set size to Task_Address_Size
2912         (To_Task_id): Unchecked convert from Task_Address vice System.Address
2913         (To_Address): Unchecked convert to Task_Address vice System.Address
2914
2915         * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
2916         address into the ATCB if the platform makes use of an alternate signal
2917         stack for stack overflows.
2918         (Free_Task): Add call to Finalize_Attributes_Link.
2919         Add argument Relative_Deadline to pass the value specified for
2920         the task. This is not yet used for any target.
2921
2922         * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
2923         the value specified for the task.
2924
2925 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
2926
2927         (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
2928         (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
2929         s-vxwext-rtp.adb): New files.
2930
2931         * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
2932         Minor updates to accomodate changes above.
2933
2934 2008-04-08  Pascal Obry  <obry@adacore.com>
2935
2936         * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
2937         s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
2938         Use new s-win32.ads unit instead of declaration
2939         from s-osinte-mingw.ads.
2940         
2941         * s-osinte-mingw.ads:
2942         Move all non tasking based interface to s-win32.ads.
2943         
2944         * s-osprim-mingw.adb:
2945         Remove duplicated declarations and use s-win32.ads
2946         unit instead.
2947
2948 2008-04-08  Vincent Celier  <celier@adacore.com>
2949             Arnaud Charlet  <charlet@adacore.com>
2950
2951         * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
2952         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
2953         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
2954         mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
2955         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...
2956
2957         * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
2958         mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
2959         mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
2960         mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
2961         mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
2962         mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
2963         mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
2964         mlib-tgt-specific-mingw.adb: New names.
2965
2966         * Makefile.in: 
2967         On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
2968         Get rid of gnatbl.
2969         (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
2970         Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
2971         Minor updates for VMS
2972
2973         * gnatbl.c: Removed.
2974
2975 2008-04-08  Thomas Quinot  <quinot@adacore.com>
2976
2977         * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
2978         g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
2979         gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
2980         a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
2981         s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
2982         ASCII.NUL throughout.
2983
2984 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
2985             Matthew Heaney  <heaney@adacore.com>
2986
2987         * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
2988         renaming.
2989
2990         * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,  
2991         a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
2992         to convention for non-RM specs.
2993         Add descriptive header, and documented each operation
2994         document each operation
2995
2996 2008-04-08  Robert Dewar  <dewar@adacore.com>
2997             Bob Duff  <duff@adacore.com>
2998             Gary Dismukes  <dismukes@adacore.com>
2999             Ed Schonberg  <schonberg@adacore.com>
3000
3001         * alloc.ads: Add entries for Obsolescent_Warnings table
3002
3003         * einfo.ads, einfo.adb: Minor reformatting.
3004         (Is_Discriminal): New subprogram.
3005         (Is_Prival): New subprogram.
3006         (Is_Protected_Component): New subprogram.
3007         (Is_Protected_Private): Removed.
3008         (Object_Ref, Set_Object_Ref): Removed.
3009         (Prival, Set_Prival): Change assertion.
3010         (Privals_Chain, Set_Privals_Chain): Removed.
3011         (Prival_Link, Set_Prival_Link): New subprogram.
3012         (Protected_Operation, Set_Protected_Operation): Removed.
3013         (Protection_Object, Set_Protection_Object): New subprogram.
3014         (Write_Field17_Name): Remove case for Object_Ref.
3015         (Write_Field20_Name): Add case for Prival_Link.
3016         (Write_Field22_Name): Remove case for Protected_Operation,
3017         Privals_Chain.
3018         Add case for Protection_Object.
3019         (Can_Use_Internal_Rep): Make this into a [base type only] attribute,
3020         so clients
3021         (Overlays_Constant): New flag
3022         (Is_Constant_Object): New predicate
3023         (Is_Standard_Character_Type): New predicate
3024         (Optimize_Alignment_Space): New flag
3025         (Optimize_Alignment_Time): New flag
3026         (Has_Postconditions): New flag
3027         (Obsolescent_Warrning): Field removed
3028         (Spec_PPC_List): New field
3029         (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
3030         subprograms to get and set the relative deadline associated to a task.
3031
3032         * exp_attr.adb (May_Be_External_Call): Account for the case where the
3033         Access attribute is part of a named parameter association.
3034         (Expand_Access_To_Protected_Op): Test for the attribute occurring
3035         within an init proc and use that directly as the scope rather than
3036         traversing up to the protected operation's enclosing scope. Only apply
3037         assertion on Is_Open_Scopes in the case the scope traversal is done.
3038         For the init proc case use the address of the first formal (_init) as
3039         the protected object reference.
3040         Implement Invalid_Value attribute
3041         (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
3042         contents of the dispatch table there is no need to duplicate the
3043         itypes associated with record types (i.e. the implicit full view
3044         of private types).
3045         Implement Enum_Val attribute
3046         (Expand_N_Attribute_Reference, case Old): Properly handle appearence
3047         within _Postconditions procedure
3048         (Expand_N_Attribute_Reference, case Result): Implement new attribute
3049
3050         * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
3051         a return statement calls a function that is not available in
3052         configurable runtime.
3053         (Analyze_If_Statement): don't optimize simple True/False cases in -O0
3054         (Expand_Non_Function_Return): Generate call to _Postconditions proc
3055         (Expand_Simple_Function_Return): Ditto
3056
3057         * frontend.adb: Add call to Sem_Aux.Initialize
3058
3059         * sem_aux.ads, sem_aux.adb: New file.
3060
3061         * par-prag.adb: Add entries for pragmas Precondition/Postcondition
3062         Add new Pragma_Relative_Deadline.
3063         Add support for pragmas Check and Check_Policy
3064
3065         * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
3066         (Check_Stream_Attribute): Add missing check (not allowed in CPP types)
3067         (Analyze_Attribute): In case of attributes 'Alignment and 'size add
3068         missing check because they are not allowed in CPP tagged types.
3069         Add Sure parameter to Note_Possible_Modification calls
3070         Add implementation of Invalid_Value attribute
3071         Implement new attribute Has_Tagged_Values
3072         Implement Enum_Val attribute
3073         (Analyze_Attribute, case Range): Set Name_Req True for prefix of
3074         generated attributes.
3075         (Analyze_Attribute, case Result): If prefix of the attribute is
3076         overloaded, it always resolves to the enclosing function.
3077         (Analyze_Attribute, case Result): Properly deal with analysis when
3078         Postconditions are not active.
3079         (Resolve_Attribute, case Result): Properly deal with appearence during
3080         preanalysis in spec.
3081         Add processing for attribute Result
3082
3083         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
3084         for operators.
3085         (Analyze_Subprogram_Body): Install private_with_clauses when the body
3086         acts as a spec.
3087         (Check_Inline_Pragma): recognize an inline pragma that appears within
3088         the subprogram body to which it applies.
3089         (Analyze_Function_Return): Check that type of the expression of a return
3090         statement in a function with a class-wide result is not declared at a
3091         deeper level than the function.
3092         (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
3093         (Verify_Overriding_Indicator): Handle properly subprogram bodies for
3094         user- defined operators.
3095         (Install_Formals): Moved to spec to allow use from Sem_Prag for
3096         analysis of precondition/postcondition pragmas.
3097         (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
3098         Last_Formal, along with lots of comments on what this is about
3099         (Analyze_Subprogram_Body): Fix case where we move entities from the
3100         spec to the body when there are no body entities (now possible with
3101         precondition and postcondition pragmas).
3102         (Process_PPCs): New procedure
3103         (Analyze_Subprogram_Body): Add call to Process_PPCs
3104
3105         * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
3106         clause.
3107         (Pop_Scope): Restore Check_Policy_List on scope exit
3108         (Push_Scope): Save Check_Policy_List on scope entry
3109         Change name In_Default_Expression      => In_Spec_Expression
3110         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
3111         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
3112         (Analyze_Object_Renaming): Allow 'Reference as object
3113         (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
3114         (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
3115         of restriction identifier.
3116         Add Sure parameter to Note_Possible_Modication calls
3117
3118         * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
3119         Don't check for primitive operations when calling Rep_Item_Too_Late.
3120         (Process_Import_Or_Interface): Do not place flag on formal
3121         subprograms.
3122         (Analyze_Pragma, case Export): If the entity is a deferred constant,
3123         propagate information to full view, which is the one elaborated by the
3124         back-end.
3125         (Make_Inline): the pragma is effective if it applies to an internally
3126         generated subprogram declaration for a body that carries the pragma.
3127         (Analyze_Pragma, case Optimize_Alignment): Set new flag
3128         Optimize_Alignment_Local.
3129         (Analyze_PPC_In_Decl_Part): New procedure
3130         (Get_Pragma_Arg): Moved to outer level
3131         (Check_Precondition_Postcondition): Change to allow new visibility
3132         rules for package spec
3133         (Analyze_Pragma, case Check_Policy): Change placement rules to be
3134         same as pragma Suppress/Unsuppress.
3135         Change name In_Default_Expression      => In_Spec_Expression
3136         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
3137         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
3138         (Check_Precondition_Postcondition): Do proper visibility preanalysis
3139         for the case of these pragmas appearing in the spec.
3140         (Check_Enabled): New function
3141         (Initialize): New procedure
3142         (Tree_Read): New procedure
3143         (Tree_Write): New procedure
3144         (Check_Precondition_Postcondition): New procedure
3145         Implement pragmas Check and Check_Policy
3146         Merge Assert processing with Check
3147
3148         * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
3149         New warning flag -gnatw.e
3150
3151         * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
3152         returning whether a task (or main procedure) has a pragma
3153         Relative_Deadline.
3154         (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
3155         (or main procedure) has a pragma Relative_Deadline.
3156         Add Next_Pragma field to N_Pragma node
3157         (PPC_Enabled): New flag
3158         (Next_Pragma): Now used for Pre/Postcondition processing
3159
3160         * snames.h, snames.ads, snames.adb: New standard name
3161         Inherit_Source_Path
3162         Add entry for 'Invalid_Value attribute
3163         Add entry for new attribute Has_Tagged_Values
3164         Add entry for Enum_Val attribute
3165         Add new standard names Aggregate, Configuration and Library.
3166         Add _Postconditions
3167         Add _Result
3168         Add Pragma_Precondition
3169         Add Pragma_Postcondition
3170         Add Attribute_Result
3171         New standard name Archive_Builder_Append_Option
3172         (Preset_Names): Add _relative_deadline and relative_deadline definitions
3173         There was also a missing non_preemptive_within_priorities.
3174         (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
3175         Relative_Deadline.
3176         Add support for pragmas Check and Check_Policy
3177
3178         * tree_gen.adb: Call Sem_Aux.Tree_Write
3179
3180         * tree_in.adb: Call Sem_Aux.Tree_Read
3181
3182         * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
3183         sequence
3184
3185         * exp_intr.adb (Expand_Source_Info): New Build_Location calling
3186         sequence
3187
3188         * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
3189         (Expand_N_Pragma): Call the appropriate procedure for expanding pragma
3190         Relative_Deadline.
3191         (Expand_Pragma_Check): New procedure
3192
3193         * sinput.ads, sinput.adb (Build_Location_String): Now appends to name
3194         buffer.
3195
3196         * sinfo.adb (PPC_Enabled): New flag
3197
3198 2008-04-08  Robert Dewar  <dewar@adacore.com>
3199             Gary Dismukes  <dismukes@adacore.com>
3200             Javier Miranda  <miranda@adacore.com>
3201             Ed Schonberg  <schonberg@adacore.com>
3202
3203         * fe.h: Remove global Optimize_Alignment flag, no longer used
3204
3205         * layout.adb: Test Optimize_Alignment flags rather than global switch
3206
3207         * lib.ads, lib.adb: New OA_Setting field in library record
3208
3209         * lib-load.adb: New OA_Setting field in library record
3210
3211         * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
3212         units mentioned in limited_with_ clauses in the ali file, with an
3213         'Y' marker.
3214         New Ox fields in U line
3215
3216         * opt.adb: New flag Optimize_Alignment_Local
3217         (Check_Policy_List[_Config]): New flags
3218
3219         * opt.ads (Invalid_Value_Used): New flag
3220         New switch Optimize_Alignment_Local
3221         (Warn_On_Parameter_Order): New flag
3222         (Check_Policy_List[_Config]): New flags
3223
3224         * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
3225         limited_with clauses.
3226         New data structures for Optimize_Alignment
3227
3228         * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
3229         New procedure
3230         (Check_Consistent_Optimize_Alignment): Rework for new structure
3231         (Check_Consistent_Restrictions): Fix incorrect error message
3232
3233         sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
3234         created class-wide type (to the Parent field of the specific type).
3235         (Install_Siblings): Handle properly private_with_clauses on subprogram
3236         bodies and on generic units.
3237         (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
3238         illegal limited_with_clause that names a non-existent package.
3239         (Check_Body_Required): Determine whether a unit named a limited_with
3240         clause needs a body.
3241         (Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
3242         Capture Optimize_Alignment settings to set new OA_Setting field in
3243         library record.
3244         (Build_Limited_Views): Include task and protected type declarations.
3245
3246         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
3247         case of a possible constant redeclaration where the current object is
3248         an entry index constant.
3249         (Analyze_Object_Declaration): Generate an error in case of CPP
3250         class-wide object initialization.
3251         (Analyze_Object_Declaration): Add extra information on warnings for
3252         declaration of unconstrained objects.
3253         (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
3254         conflicts with the setting of Stored_Constraint in the case where the
3255         access type entity has already been created as an E_Incomplete_Type due
3256         to a limited with clause.
3257         Use new Is_Standard_Character_Type predicate
3258         (Analyze_Object_Declaration): Apply access_constant check only after
3259         expression has been resolved, given that it may be overloaded with
3260         several access types.
3261         (Constant_Redeclaration): Additional legality checks for deferred
3262         constant declarations tha involve anonymous access types and/or null
3263         exclusion indicators.
3264         (Analyze_Type_Declaration): Set Optimize_Alignment flags
3265         (Analyze_Subtype_Declaration): Ditto
3266         (Analyze_Object_Declaration): Ditto
3267         (Analyze_Object_Declaration): Don't count tasks in generics
3268         Change name In_Default_Expression      => In_Spec_Expression
3269         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
3270         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
3271         (Process_Discriminants): Additional check for illegal use of default
3272         expressions in access discriminant specifications in a type that is not
3273         explicitly limited.
3274         (Check_Abstract_Overriding): If an inherited function dispaches on an
3275         access result, it must be overridden, even if the type is a null
3276         extension.
3277         (Derive_Subprogram): The formals of the derived subprogram have the
3278         names and defaults of the parent subprogram, even if the type is
3279         obtained from the actual subprogram.
3280         (Derive_Subprogram): In the presence of interfaces, a formal of an
3281         inherited operation has the derived type not only if it descends from
3282         the type of the formal of the parent operation, but also if it
3283         implements it. This is relevant for the renamings created for the
3284         primitive operations of the actual for a formal derived type.
3285         (Is_Progenitor): New predicate, to determine whether the type of a
3286         formal in the parent operation must be replaced by the derived type.
3287
3288         * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
3289         predicate recursive to handle components that have a user-defined
3290         Initialize procedure. Handle controlled derived types whose ancestor
3291         has a user-defined Initialize procedured.
3292         (Note_Possible_Modification): Add Sure parameter, generate warning if
3293         sure modification of constant
3294         Use new Is_Standard_Character_Type predicate
3295         (Find_Parameter_Type): when determining whether a protected operation
3296         implements an interface operation, retrieve the type of the formal from
3297         the entity when the formal is an access parameter or an
3298         anonymous-access-to-subprogram.
3299         Move Copy_Parameter_List to sem_util, for use when building stubbed
3300         subprogram bodies.
3301         (Has_Access_Values): Tagged types now return False
3302         (Within_HSS_Or_If): New procedure
3303         (Set_Optimize_Alignment_Flags): New procedure
3304         Change name In_Default_Expression      => In_Spec_Expression
3305         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
3306         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
3307
3308 2008-04-08  Tristan Gingold  <gingold@adacore.com>
3309
3310         * s-fileio.adb: Name_Error shouldn't be raised for a tempory file.
3311
3312 2008-04-08  Tristan Gingold  <gingold@adacore.com>
3313
3314 PR ada/10768
3315
3316         * cuintp.c: Fix 16 bits issue for AVR.
3317         On AVR, integer is 16 bits, so it can't be used to do math with
3318         Base (=32768).
3319         So use long_integer instead.
3320
3321 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
3322
3323         * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
3324         System.OS_Primitives.
3325         Change type of various constants, parameters and local variables from
3326         Time to representation type OS_Time.
3327         (To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
3328         Remove the declaration of constant Mili_F from several routines. New
3329         body for internal package Conversions_Operations.
3330         (Time_Of): Add default parameters for several formals.
3331
3332         * a-caldel.adb: Minor reformatting
3333
3334         * a-calend.ads, a-calend.adb: New body for internal package
3335         Conversions_Operations.
3336         (Time_Of): Add default parameters for several formals.
3337
3338         * Makefile.rtl: Add a-ststop
3339         Add Ada.Calendar.Conversions to the list of runtime files.
3340         Add g-timsta
3341
3342         * a-calcon.adb, a-calcon.ads: New files.
3343
3344 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
3345             Tristan Gingold  <gingold@adacore.com>
3346
3347         * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
3348         (Install_Restricted_Handlers): New procedure
3349         which is a simplified version of Install_Handlers that does not store
3350         previously installed.
3351
3352         * s-interr-vxworks.adb: Fix ACATS cxc3001
3353         On VxWorks interrupts can't be detached.
3354         (Install_Restricted_Handlers): New procedure.
3355
3356         * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
3357         procedure.
3358
3359 2008-04-08  Olivier Hainque  <hainque@adacore.com>
3360
3361         * s-intman-vxworks.ads, s-intman-vxworks.adb
3362         (Map_And_Raise_Exception): Remove. Was an import of only part of the
3363         required services already implemented elsewhere.
3364         (Notify_Exception): Delete body, import __gnat_error_handler instead.
3365         (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
3366         argument passed to the handler, which we need for ZCX propagation
3367         purposes.
3368
3369 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
3370
3371         * adaint.h, adaint.c (__gnat_current_time_string): New routine.
3372
3373         * g-timsta.adb, g-timsta.ads: New files.
3374
3375 2008-04-08  Robert Dewar  <dewar@adacore.com>
3376
3377         * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
3378         (Raise_Exception): In accordance with AI-446, raise CE for Null_Id
3379         (Raise_Exception_Always): Fix documentation accordingly
3380
3381 2008-04-08  Robert Dewar  <dewar@adacore.com>
3382
3383         * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
3384         Stream_Convert)
3385
3386         * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
3387         FOnly
3388
3389 2008-04-08  Javier Miranda  <miranda@adacore.com>
3390             Robert Dewar  <dewar@adacore.com>
3391             Ed Schonberg  <schonberg@adacore.com>
3392
3393         * a-tags.adb (Register_Interface_Offset): New subprogram.
3394         (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
3395         (To_Predef_Prims_Table_Ptr): Removed.
3396         (Acc_Size): Removed.
3397         (To_Acc_Size): Removed.
3398         (Parent_Size): Modified to the call the subprogram returning the size of
3399         the parent by means of the new TSD component Size_Func.
3400
3401         * a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
3402         (DT_Offset_To_Top_Offset): New constant value that is used to generate
3403         code referencing the Offset_To_Top component of the dispatch table's
3404         prologue.
3405         (Prim_Ptr): New declaration of access to procedure. Used to avoid the
3406         use of 'address to initialize dispatch table slots.
3407         (Size_Func): New component of the TSD. Used by the run-time to call the
3408         size primitive of the tagged type.
3409
3410         * checks.adb (Apply_Access_Check): Avoid check when accessing the
3411         Offset_To_Top component of a dispatch table.
3412         (Null_Exclusion_Static_Checks): If the non-null access type appears in a
3413         deferred constant declaration. do not add a null expression, to prevent
3414         spurious errors when full declaration is analyzed.
3415         (Apply_Discriminant_Check): If both discriminant constraints share a
3416         node which is not static but has no side effects, do not generate a
3417         check for that discriminant.
3418         (Generate_Index_Checks): Set Name_Req to true in call to duplicate
3419         subexpr, since the prefix of an attribute is a name.
3420
3421         * checks.ads: Fix nit in comment.
3422
3423         * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
3424         and body of predefined primitives in case of CPP tagged type
3425         derivations.
3426         (Freeze_Type): Deal properly with no storage pool case
3427         (Make_Predefined_Primitive_Specs): Generate specification of abstract
3428         primitive Deep_Adjust if a nonlimited interface is derived from a
3429         limited interface.
3430         (Build_Dcheck_Functions): Create discriminant-checking functions only
3431         for variants that have some component(s).
3432         (Build_Slice_Assignment): In expanded code for slice assignment, handle
3433         properly the case where the slice bounds extend to the last value of the
3434         underlying representation.
3435         (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
3436         (Is_Variable_Size_Record): An array component has a static size if
3437         index bounds are enumeration literals.
3438
3439         * exp_disp.adb (Make_DT): Use the first subtype to determine whether
3440         an external tag has been specified for the type.
3441         (Building_Static_DT): Add missing support for private types.
3442         (Make_DT): Add declaration of Parent_Typ to ensure consistent access
3443         to the entity associated with the parent of Typ. This is done to
3444         avoid wrong access when the parent is a private type.
3445         (Expand_Interface_Conversion): Improve error message when the
3446         configurable runtime has no support for dynamic interface conversion.
3447         (Expand_Interface_Thunk): Add missing support to interface types in
3448         configurable runtime.
3449         (Expand_Dispatching_Call): remove obsolete code.
3450         (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
3451         ensure that all subtypes and aggregates associated with dispatch
3452         tables have the attribute Is_Dispatch_Table_Entity set to true.
3453         (Register_Primitive): Rename one variable to improve code reading.
3454         Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
3455         of the pointer to the 'size primitive in the TSD.
3456
3457         * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
3458         (RE_Offset_To_Top_Ptr): New entity.
3459         (RE_Register_Interface_Offset): New entity.
3460         (RE_Set_Dynamic_Offset_To_Top): New entity.
3461         (RE_Set_Offset_To_Top): Removed entity.
3462         (RE_Prim_Ptr): New entity
3463         (RE_Size_Func): New entity
3464         (RE_Size_Ptr): New entity
3465         (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
3466         (Ada_Dispatching_Child): Define this new subrange.
3467         (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
3468          RE_Time_Span, and RE_Time_Span_Zero).
3469         (RE_Unit_Table): Add new required run-time calls
3470
3471         * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
3472         children.
3473
3474         * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
3475         (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
3476          initializes the Offset_To_Top component of a dispatch table.
3477         (Build_Predef_Prims): Removed.
3478         (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
3479          its actual code.
3480         (Build_Set_Size_Function): New subprogram.
3481
3482         * exp_ch13.adb: Do not generate storage variable for storage_size zero
3483         (Expand): Handle setting/restoring flag Inside_Freezing_Actions
3484
3485 2008-04-08  Robert Dewar  <dewar@adacore.com>
3486
3487         * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
3488         computing Fore when Exp > 0
3489
3490 2008-04-08  Robert Dewar  <dewar@adacore.com>
3491
3492         * back_end.adb: Remove Big_String_Ptr declarations (now in Types)
3493
3494         * errout.adb: Remove Big_String_Ptr declarations (now in Types)
3495         Change name Is_Style_Msg to Is_Style_Or_Info_Msg
3496
3497         * fmap.adb: Remove Big_String declarations (now in Types)
3498         (No_Mapping_File): New Boolean global variable
3499         (Initialize): When mapping file cannot be read, set No_Mapping_File to
3500         False.
3501         (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
3502         tables were empty before adding entries, open the mapping file
3503         with Truncate = True, instead of delete/re-create.
3504
3505         * fname-sf.adb: Remove Big_String declarations (now in Types)
3506
3507         * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
3508         s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
3509         big pointer types
3510
3511         * table.ads: Add for Table_Ptr'Storage_Size use 0
3512
3513         * types.ads: Add Big_String declarations
3514         Add Size_Clause of zero for big pointer types
3515
3516 2008-04-08  Vincent Celier  <celier@adacore.com>
3517
3518         * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
3519         (Usage): Add line for switch --subdirs=
3520         Add new switch -eL, to follow symbolic links when processing project
3521         files.
3522
3523         * gnatcmd.adb: Process switches -eL and --subdirs=
3524         (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
3525         Program_Name to get proper tool names when AAMP_On_Target is set.
3526         (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
3527         AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
3528         Osint.Program_Name).
3529
3530         * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
3531         (Usage): Add lines for switches -eL and --subdirs=
3532
3533         * makeusg.adb: Add line for switch --subdirs=
3534
3535         * prj.ads: 
3536         (Source_Data): New Boolean component Compiled, defaulted to True
3537         (Empty_File_Name: New global variable in private part, initialized in
3538         procedure Initialize.
3539         (Subdirs_Option): New constant string
3540         (Subdirs): New String_Ptr global variable
3541         (Language_Config): New component Include_Compatible_Languages
3542         (Project_Qualifier): New type for project qualifiers
3543         (Project_Data): New component Qualifier
3544         (Project_Configuration): New component Archive_Builder_Append_Option
3545
3546         * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
3547         another imported project indicate the name of this imported project.
3548         (Check_File): When a unit is in two project files, indicate the project
3549         names and the paths of the source files for each project.
3550         (Add_Source): Set Compiled to False if compiler driver is empty. Only
3551         set object, dependency and switches file names if Compiled is True.
3552         (Process_Compiler): Allow the empty string for value of attribute Driver
3553         (Get_Directories): When Subdirs is not null and Object_Dir is not
3554          specified, locate and create if necessary the actual object dir.
3555         (Locate_Directory): When Subdirs is not empty and Create is not the
3556         empty string, locate and create if necessary the actual directory
3557         as a subdirectory of directory Name.
3558         (Check_Library_Attributes.Check_Library): Allow a project where the only
3559         "sources" are header files of file based languages to be imported by
3560         library projects, in multi-language mode (gprbuild).
3561         (Check_Library_Attributes.Check_Library): In multi-language mode
3562         (gprbuild), allow a library project to import a project with no
3563         sources, even when this is not declared explicitly.
3564         (Check_If_Externally_Built): A virtual project extending an externally
3565         built project is also externally built.
3566         (Check_Library_Attributes): For a virtual project extending a library
3567         project, inherit the library directory.
3568         (Process_Project_Level_Array_Attributes): Process new attribute
3569         Inherit_Source_Path.
3570         For projects with specified qualifiers "standard", "library" or
3571         "abstract", check that the project conforms to the qualifier.
3572         (Process_Project_Level_Simple_Attributes): Process new attribute
3573          Archive_Builder_Append_Option.
3574
3575         * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
3576         (Normalize_Compiler_Switches): Only keep compiler switches that are
3577         passed to gnat1 by the gcc driver and that are stored in the ALI file
3578         by gnat1.
3579         Do not take into account switc -save-temps
3580
3581         * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
3582         gprmake is called with -eL.
3583         (Scan_Arg): Recognize switch -eL
3584         (Usage): Add line for switch -eL
3585
3586         * prj.adb (Initialize): Initialize Empty_File_Name
3587         (Project_Empty): New component Qualifier
3588
3589         * prj-attr.ads, prj-attr.adb: New project level attribute
3590         Inherit_Source_Path.
3591         New project level attribute Archive_Builder_Append_Option
3592
3593         * prj-dect.adb: Replace System.Strings by GNAT.Strings.
3594
3595         * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
3596         <prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for
3597         upward compatibility.
3598
3599         * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
3600         each Trying ..." on different lines.
3601         (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
3602         is "configuration" when not in configuration. Fail when in configuration
3603         when a specified qualifier is other than "configuration".
3604
3605         * prj-proc.adb (Process_Declarative_Items): Link new elements of copied
3606         full associative array together.
3607         (Recursive_Process): Put the project qualifier in the project data
3608         
3609         * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
3610         (Set_Project_Qualifier_Of): New procedure
3611
3612 2008-04-08  Robert Dewar  <dewar@adacore.com>
3613
3614         * errout.ads: Update comments for new handling of info: messages
3615
3616         * erroutc.adb (Matches): New procedure
3617         (Warning_Specifically_Suppressed): Modified to handle multiple * chars
3618         (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
3619          info messages as well as style messages.
3620
3621         * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry
3622
3623         * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
3624         subprograms.
3625         (Check_A_Call): Special "info: " warnings now have ? in the text
3626         (Elab_Warning): Use info message in static case
3627
3628 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
3629
3630         * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
3631         whether an array aggregate with static bounds and scalar components
3632         should be expanded into a static constant.
3633
3634 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
3635             Ed Schonberg  <schonberg@adacore.com>
3636             Robert Dewar  <dewar@adacore.com>
3637
3638         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
3639         Has_Stream_Attribute_ Definition when checking for available stream
3640         attributes on parameters of a limited type in Ada 2005. Necessary for
3641         proper recognition of visible stream attribute clauses.
3642         (Has_Stream_Attribute_Definition): If the type is derived from a
3643         private type, then use the derived type's underlying type for checking
3644         whether it has stream attributes.
3645         (Validate_Object_Declaration): The check for a user-defined Initialize
3646         procedure applies also to types with controlled components or a
3647         controlled ancestor.
3648         Reject an object declaration in a preelaborated unit if the type is a
3649         controlled type with an overriding Initialize procedure.
3650         (Validate_Remote_Access_To_Class_Wide_Type): Return without further
3651         checking when the parent of a dereference is a selected component and
3652         the name has not been analyzed.
3653
3654         * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
3655         prefixes that are invalid explicit dereferences of remote
3656         access-to-class-wide values, first checking whether the selected
3657         component is a prefixed form of call to a tagged operation.
3658         (Analyze_Call): Remove code that issues an error for limited function
3659         calls in illegal contexts, as we now support all of the contexts that
3660         were forbidden here.
3661         Allow a function call that returns a task.and appears as the
3662         prefix of a selected component.
3663         (Analyze_Reference): Give error message if we try to make a 'Reference
3664         for an object that is atomic/aliased without its type having the
3665         corresponding attribute.
3666         (Analyze_Call): Remove condition checking for attributes to allow
3667         calls to functions with inherently limited results as prefixes of
3668         attributes. Remove related comment about Class attributes.
3669         (Analyze_Selected_Component): If the prefix is a remote type, check
3670         whether this is a prefixed call before reporting an error.
3671         (Complete_Object_Operation): If the controlling formal is an access to
3672         variable reject an actual that is a constant or an access to one.
3673         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
3674         primitive operations from base type.
3675
3676         * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
3677         build-in-place
3678         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
3679         (Expand_N_Selected_Component): Test for prefix that is a build-in-place
3680         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
3681         (Expand_N_Slice): Test for prefix that is a build-in-place function call
3682         and call Make_Build_In_Place_Call_In_Anonymous_Context.
3683         (Analyze_Call): Remove code that issues an error for limited function
3684         calls in illegal contexts, as we now support all of the contexts that
3685         were forbidden here.
3686         New calling sequence for Get_Simple_Init_Val
3687         (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
3688         (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test
3689
3690 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
3691             Ed Schonberg  <schonberg@adacore.com>
3692             Robert Dewar  <dewar@adacore.com>
3693
3694         * exp_ch2.adb: Minor reformatting.
3695         (Expand_Entry_Index_Parameter): Set the type of the identifier.
3696         (Expand_Entry_Reference): Add call to Expand_Protected_Component.
3697         (Expand_Protected_Component): New routine.
3698         (Expand_Protected_Private): Removed.
3699         Add Sure parameter to Note_Possible_Modification calls
3700
3701         * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
3702         generated subprogram declaration must inherit the overriding indicator
3703         from the instantiation node.
3704         (Validate_Access_Type_Instance): If the designated type of the actual is
3705         a limited view, use the available view in all cases, not only if the
3706         type is an incomplete type.
3707         (Instantiate_Object):  Actual is illegal if the formal is null-excluding
3708         and the actual subtype does not exclude null.
3709         (Process_Default): Handle properly abstract formal subprograms.
3710         (Check_Formal_Package_Instance): Handle properly defaulted formal
3711         subprograms in a partially parameterized formal package.
3712         Add Sure parameter to Note_Possible_Modification calls
3713         (Validate_Derived_Type_Instance): if the formal is non-limited, the
3714         actual cannot be limited.
3715         (Collect_Previous_Instances): Generate instance bodies for subprograms
3716         as well.
3717
3718         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
3719         try to set RM_Size.
3720         Add Sure parameter to Note_Possible_Modification calls
3721         (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
3722         (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
3723         constant overlaid by variable and issue warning.
3724         Use new Is_Standard_Character_Type predicate
3725         (Analyze_Record_Representation_Clause): Check that the specified
3726         Last_Bit is not less than First_Bit - 1.
3727         (Analyze_Attribute_Definition_Clause, case Address): Check for
3728         self-referential address clause
3729
3730         * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
3731         detection mechanism when the lhs is a prival.
3732         (Analyze_Assignment): Call Check_Unprotected_Access to detect
3733         assignment of a pointer to protected data, to an object declared
3734         outside of the protected object.
3735         (Analyze_Loop_Statement): Check for unreachable code after loop
3736         Add Sure parameter to Note_Possible_Modication calls
3737         Protect analysis from previous syntax error such as a scope mismatch
3738         or a missing begin.
3739         (Analyze_Assignment_Statement): The assignment is illegal if the
3740         left-hand is an interface.
3741
3742         * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
3743         violation of restriction No_Implicit_Conditionals
3744         Add Sure parameter to Note_Possible_Modication calls
3745         Use new Is_Standard_Character_Type predicate
3746         (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
3747         call as operator. Fixes problems (e.g. validity checking) which
3748         come from the result looking as though it does not come from source).
3749         (Resolve_Call): Check case of name in named parameter if style checks
3750         are enabled.
3751         (Resolve_Call): Exclude calls to Current_Task as entry formal defaults
3752         from the checking that such calls should not occur from an entry body.
3753         (Resolve_Call): If the return type of an Inline_Always function
3754         requires the secondary stack, create a transient scope for the call
3755         if the body of the function is not available for inlining.
3756         (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
3757         that are actuals for in-out formals.
3758         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
3759         primitive operations from base type.
3760         (Analyze_Selected_Component): If the context is a call to a protected
3761         operation the parent may be an indexed component prior to expansion.
3762         (Resolve_Actuals): If an actual is of a protected subtype, use its
3763         base type to determine whether a conversion to the corresponding record
3764         is needed.
3765         (Resolve_Short_Circuit): Handle pragma Check
3766
3767         * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
3768         Use new Is_Standard_Character_Type predicate
3769         (Eval_Relational_Op): Catch more cases of string comparison
3770
3771 2008-04-08  Robert Dewar  <dewar@adacore.com>
3772             Gary Dismukes  <dismukes@adacore.com>
3773
3774         * s-rident.ads: Add No_Default_Initialization restriction
3775
3776         * exp_tss.adb: 
3777         (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
3778         (Set_TSS): Handle No_Default_Initialization case
3779
3780         * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
3781         No_Default_Initialization
3782         (Expand_N_Subprogram_Body): Remove redundant initialization of out
3783         parameters when Normalize_Scalars is active.
3784         (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
3785         Fix casing error in formal parameter name in call
3786         (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
3787         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
3788         dispatching call on VM targets.
3789
3790 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
3791             Thomas Quinot  <quinot@adacore.com>
3792
3793         * exp_ch7.adb (Find_Final_List): Change the test for generating a
3794         selected component from an access type's Associated_Final_Chain to
3795         check for the presence of that field, rather than assuming it exists
3796         for all named access types.
3797         (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
3798         procedure to call at the end of the generated cleanup procedure.
3799         (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
3800         and an At_End_Proc already exists in the handled sequence of statements
3801         for which cleanup actions are being expanded, the original cleanup
3802         action must be preserved.
3803
3804 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
3805             Ed Schonberg  <schonberg@adacore.com>
3806             Robert Dewar  <dewar@adacore.com>
3807             Gary Dismukes  <dismukes@adacore.com>
3808
3809         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
3810         Build_Unprotected_Subprogram_Body): Generate debug info for
3811         declarations related to the handling of private data in task and
3812         protected types.
3813         (Debug_Private_Data_Declarations): New subprogram.
3814         (Install_Private_Data_Declarations): Remove all debug info flagging.
3815         This is now done by Debug_Private_Data_Declarations at the correct
3816         stage of expansion.
3817         (Build_Simple_Entry_Call): If the task name is a function call, expand
3818         the prefix into an object declaration, and make the surrounding block a
3819         task master.
3820         (Build_Master_Entity): An internal block is a master if it wraps a call.
3821         Code reformatting, update comments. Code clean up.
3822         (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
3823         (Replicate_Entry_Formals): If the formal is an access parameter or
3824         anonymous access to subprogram, copy the original tree to create new
3825         entities for the formals of the subprogram.
3826         (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
3827         for tasks to store the value passed using pragma Relative_Deadline.
3828         (Make_Task_Create_Call): Add the Relative_Deadline argument to the
3829         run-time call to create a task.
3830         (Build_Wrapper_Spec): If the controlling argument of the interface
3831         operation is an access parameter with a non-null indicator, use the
3832         non-null indicator on the wrapper.
3833
3834         * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
3835         present, which it may not be in the case where the type entity is an
3836         incomplete view brought in by a limited with.
3837         (Analyze_Task_Type): Only retrieve the full view when present, which it
3838         may not be in the case where the type entity is an incomplete view brought
3839         in by a limited with.
3840         (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
3841         private components of a protected type, to prevent the generation of freeze
3842         nodes for which there is no proper scope of elaboration.
3843
3844         * exp_util.ads, exp_util.adb
3845         (Remove_Side_Effects): If the expression is a function call that returns a
3846         task, expand into a declaration to invoke the build_in_place machinery.
3847         (Find_Protection_Object): New routine.
3848         (Remove_Side_Effects): Also make a copy of the value
3849         for attributes whose result is of an elementary type.
3850         (Silly_Boolean_Array_Not_Test): New procedure
3851         (Silly_Boolean_Array_Xor_Test): New procedure
3852         (Is_Volatile_Reference): New function
3853         (Remove_Side_Effects): Use Is_Volatile_Reference
3854         (Possible_Bit_Aligned_Component): Handle slice case properly
3855
3856         * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
3857         case test to Exp_Util
3858         (Expand_Packed_Xor): Move silly true/true case test to Exp_Util
3859
3860 2008-04-08  Thomas Quinot  <quinot@adacore.com>
3861
3862         * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
3863         in call
3864         (Add_RACW_Features): When processing an RACW in another unit than the
3865         main unit, set Body_Decls to No_List to indicate that the bodies of
3866         the type's TSS must not be generated.
3867         (GARLIC_Support.Add_RACW_Read_Attribute,
3868         GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
3869         Body_Decls is No_List.
3870         (PolyORB_Support.Add_RACW_Read_Attribute,
3871         PolyORB_Support.Add_RACW_Write_Attribute,
3872         PolyORB_Support.Add_RACW_From_Any,
3873         PolyORB_Support.Add_RACW_To_Any,
3874         PolyORB_Support.Add_RACW_TypeCode): Same.
3875         (Transmit_As_Unconstrained): New function.
3876         (Build_Ordered_Parameters_List): Use the above to order parameters.
3877         (GARLIC_Support.Build_General_Calling_Stubs):
3878         Use the above to determine which parameters to unmarshall using 'Input
3879         at the point where their temporary is declared (as opposed to later on
3880         with a 'Read call).
3881         (PolyORB_Support.Build_General_Calling_Stubs):
3882         Use the above to determine which parameters to unmarshall using From_Any
3883         at the point where their temporary is declared (as opposed to later on
3884         with an assignment).
3885
3886 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
3887
3888         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
3889         an Input function for an access type, do not perform default
3890         initialization on the local variable that receives the value, to
3891         prevent spurious warnings when the type is null-excluding.
3892
3893 2008-04-08  Robert Dewar  <dewar@adacore.com>
3894             Ed Schonberg  <schonberg@adacore.com>
3895
3896         * freeze.adb (Freeze_Entity): Improve warnings on access types in pure
3897         units.
3898         (Size_Known): Generic formal scalar types have known at compile
3899         time size, so remove check.
3900         Fix casing error in formal parameter name in call
3901         (Freeze_Subprogram): If the subprogram is a user-defined operator,
3902         recheck its overriding indication.
3903
3904 2008-04-08  Vincent Celier  <celier@adacore.com>
3905
3906         * gnat1drv.adb: Send all messages indicating an error to standard error
3907
3908 2008-04-08  Robert Dewar  <dewar@adacore.com>
3909
3910         * gnatbind.adb (Restriction_Could_Be_Set): New procedure
3911         (List_Applicable_Restrictions): Do not list existing restrictions
3912
3913 2008-04-08  Thomas Quinot  <quinot@adacore.com>
3914
3915         * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
3916         add a pointer to generic sockets literature
3917         do not mention that the given example is "typical" usage.
3918         Remove obsolete comment about multicast not being supported on Windows.
3919         (Connect_Socket): Make Server mode IN rather than IN OUT
3920         since this formal is never modified.
3921
3922 2008-04-08  Robert Dewar  <dewar@adacore.com>
3923
3924         * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
3925         the declaration for some different entity.
3926         (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
3927         list is precent (following the parent subtype indication), display
3928         appropriate "and" keyword.
3929
3930         * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
3931         Remove unnecessary calls to Init_Size_Align and Init_Esize.
3932         Add notes on use of Parent field of an Itype
3933
3934 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
3935             Robert Dewar  <dewar@adacore.com>
3936             Gary Dismukes  <dismukes@adacore.com>
3937
3938         * lib-xref.adb (Is_On_LHS): Remove dead code
3939         (Output_Overriden_Op): If the overridden operation is itself inherited,
3940         list the ancestor operation, which is the one whose body or absstract
3941         specification is actually being overridden. For source navigation
3942         purposes.
3943
3944         * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
3945         operation is primitive for the type.
3946         (Declare_Inherited_Private_Subprograms): If the new operation overrides
3947         an inherited private subprogram, set properly the Overridden_Operation
3948         attribute, for better cross-reference information.
3949         (Analyze_Package_Specification): Do late analysis of spec PPCs
3950         (Install_Private_Declaration, Uninstall_Declarations): Save/restore
3951         properly the full view and underlying full views of a private type in a
3952         child unit, whose full view is derived from a private type in a parent
3953         unit, and whose own full view becomes visible in the child body.
3954
3955         * sem_disp.adb (Check_Dispatching_Operation): When a body declares a
3956         primitive operation after the type has been frozen, add an explicit
3957         reference to the type and the operation, because other primitive
3958         references have been emitted already.
3959         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
3960         dispatching call on VM targets.
3961
3962 2008-04-08  Vincent Celier  <celier@adacore.com>
3963             Thomas Quinot  <quinot@adacore.com>
3964
3965         * make.adb: (Gnatmake_Called): Remove, no longer necessary
3966         (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
3967         is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
3968         (Insert_Project_Sources): Take into account index in multi-unit source
3969         files.
3970         After building a library project, delete all temporary files.
3971         (Initialize): Reset current output after parsing project file.
3972         (Collect_Arguments_And_Compile): Never insert in the queue the sources
3973         of library projects that are externally built.
3974         Put file name in error and inform messages if -df is used
3975         (Display): If invoked with -d7, do not display path names, but only
3976         file names.
3977
3978         * makeutl.ads (Path_Or_File_Name): New function
3979         (Path_Or_File_Name): New function
3980
3981 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
3982
3983         * Make-lang.in: Disable warnings during first stage of bootstrap
3984         Get rid of gnatbl.
3985         Update dependencies.
3986
3987 2008-04-08  Vincent Celier  <celier@adacore.com>
3988
3989         * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
3990         case to decide if ALI object file is included in library.
3991         (Build_Library): Never attempt to build a library if the project is
3992         externally built.
3993
3994 2008-04-08  Thomas Quinot  <quinot@adacore.com>
3995
3996         * nlists.adb (Is_Non_Empty_List): Remove redundant test. First
3997         (No_List) is defined to return Empty.
3998
3999 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
4000
4001         * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
4002         documentation.
4003         Update comments.
4004         (Read_Default_Search_Dirs): Do not consider spaces as path separators
4005         because spaces may be part of legal paths.
4006
4007 2008-04-08  Robert Dewar  <dewar@adacore.com>
4008
4009         * par-ch11.adb (P_Exception_Handler): Check indentation level for
4010         handler
4011
4012 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
4013
4014         * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
4015         in a type declaration, if this is not an interface declaration or
4016         private type extension.
4017
4018 2008-04-08  Vincent Celier  <celier@adacore.com>
4019
4020         * prj-util.adb (Executable_Of): New String parameter Language. When
4021         Ada_Main is False and Language is not empty, attempt to remove the body
4022         suffix or the spec suffix of the language to get the base of the
4023         executable file name.
4024         (Put): New Boolean parameter Lower_Case, defauilted to False. When
4025         Lower_Case is True, put the value in lower case in the name list.
4026         (Executable_Of): If there is no executable suffix in the configuration,
4027         then do not modify Executable_Extension_On_Target.
4028
4029         * prj-util.ads (Executable_Of): New String parameter Language,
4030         defaulted to the empty string.
4031         (Put): New Boolean parameter Lower_Case, defauilted to False
4032
4033 2008-04-08  Robert Dewar  <dewar@adacore.com>
4034
4035         * scng.adb (Scan_Identifier): Handle case of identifier starting with
4036         wide character using UTF-8 encoding.
4037
4038 2008-04-08  Javier Miranda  <miranda@adacore.com>
4039
4040         * sem.adb (Analyze): Consider case in which we analyze an empty node
4041         that was generated by a call to a runtime function that is not
4042         available under the configurable runtime.
4043
4044         * sem.ads (Inside_Freezing_Actions): New flag.
4045         (Save_Check_Policy_List): New field in scope stack entry
4046
4047 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
4048             Robert Dewar  <dewar@adacore.com>
4049
4050         * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
4051         the ancestor part of an extension aggregate for a limited type.
4052         (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
4053         enumeration index bounds.
4054         (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
4055         when array is too short.
4056         (Check_Expr_OK_In_Limited_Aggregate): Move function
4057         Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
4058         change name).
4059         (Resolve_Array_Aggregate.Resolve_Aggr_Expr):
4060         Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
4061         component associations.
4062         (Check_Non_Limited_Type): Moved to outer level and renamed.
4063         (Resolve_Record_Aggregate): In an extension aggregate, an association
4064         with a box initialization can only designate a component of the
4065         extension, not a component inherited from the given ancestor
4066
4067         * sem_case.adb: Use new Is_Standard_Character_Type predicate
4068
4069 2008-04-08  Robert Dewar  <dewar@adacore.com>
4070
4071         * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
4072         negative scale
4073         (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
4074         Properly handle case where Aft > Scale and input number is less than
4075         one.
4076
4077 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
4078
4079         * s-stoele.ads, s-soflin.ads: Move the location of
4080         Dummy_Communication_Block from System.Storage_Elements to
4081         System.Soft_Links.
4082
4083         * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
4084         emulate Communication_Block in certain scenarios.
4085
4086 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
4087
4088         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
4089         subprogram.
4090         Add new subtype S_WWC, unchecked conversion routines From_WWC and
4091         To_WWC.
4092         (I_WWC, O_WWC): New routines for input and output of
4093         Wide_Wide_Character.
4094
4095 2008-04-08  Robert Dewar  <dewar@adacore.com>
4096
4097         * stringt.adb (Write_String_Table_Entry): Handle wide characters
4098         properly
4099
4100 2008-04-08  Robert Dewar  <dewar@adacore.com>
4101
4102         * styleg.adb (Check_Comment): Allow special char after -- in
4103         non-end-of-line case
4104
4105 2008-04-08  Robert Dewar  <dewar@adacore.com>
4106
4107         * stylesw.adb: Implement -gnaty + - y options
4108         (Set_GNAT_Style_Check_Options): Includ I in style check string
4109
4110         * stylesw.ads: Add comments for new style switch options
4111
4112 2008-04-08  Sergey Rybin  <rybin@adacore.com>
4113
4114         * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
4115         to the set of the GNAT components needed by ASIS.
4116
4117 2008-04-08  Bob Duff  <duff@adacore.com>
4118
4119         * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
4120
4121 2008-04-08  Tristan Gingold  <gingold@adacore.com>
4122
4123         * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
4124         Improve error message generation.
4125
4126 2008-04-08  Vincent Celier  <celier@adacore.com>
4127
4128         * a-direct.adb (Start_Search): Check for Name_Error before checking for
4129         Use_Error, as specified in the RM. Check if directory is open and raise
4130         Use_Error if it is not.
4131
4132 2008-04-08  Vincent Celier  <celier@adacore.com>
4133             Robert Dewar  <dewar@adacore.com>
4134
4135         * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
4136         AAMP_On_Target is set.
4137
4138         * vms_data.ads: Add NOxxx to style check switch list
4139         Add entry COMPONENTS for -gnatVe
4140         Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
4141         (/SUBDIRS=).
4142         (GCC_Switches): Add /ALL_BACK_END_WARNINGS.
4143         Add qualifiers for gnatmetric coupling options
4144         Add note that -gnata enables all checks
4145         Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
4146         Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
4147         New warning flag -gnatw.e
4148
4149         * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
4150         Add entry for -gnatyN (forgotten before)
4151         Line for new warning switch -gnatw.p
4152         New warning flag -gnatw.e
4153
4154         * gnat_ugn.texi: Add documentation fpr project file switch -aP
4155         Document -gnaty - + y
4156         Replace occurences of "package specification" with "package spec"
4157         Define preprocessing symbols in documentation of gnatprep
4158         Clarify reason for distinguishing overflow checking
4159         Add documentation for project-aware tool switches -eL and --subdirs=
4160         Complete list of configuration pragmas
4161         Specify that, even when gnatmake switch -x is used, mains on the command
4162         line need to be sources of project files.
4163         Editing of gnatcheck/gnatmetric doc.
4164         Add documentation for -gnatw.p/-gnatw.P
4165         Add missing documentation for -fno-inline-functions.
4166         Add documentation for -gnatw.e
4167
4168         * gnat_rm.texi: Add documentation for No_Default_Initialization
4169         Replace occurences of "package specification" with "package spec"
4170         Document use of * in Warnings Off string
4171         Update documentation of alignment/component clauses.
4172         Add documentation for Invalid_Value
4173         Document new consistency rule for Optimize_Alignment
4174         Add documentation for Precondition and Postcondition pragmas
4175         Add documentation for Check and Check_Policy pragmas
4176         Document new Enum_Val attribute
4177         Remove requirement for static string in pragma Assert
4178         Add documentation on GNAT.Time_Stamp
4179
4180         * ug_words: add entry for -gnatVe
4181         Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
4182         Add entry for -gnatw.e
4183
4184         * debug.adb: Add missing documentation for d.a flag
4185         Document new -gnatd.a switch.
4186         Add documentation for new gnatmake debug switch -df
4187
4188 2008-04-08  Thomas Quinot  <quinot@adacore.com>
4189
4190         * gen-soccon.c: Bump year in copyright notices.
4191
4192         * g-soccon-vxworks.ads: Add new constant IP_PKTINFO
4193
4194 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
4195
4196         * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
4197         Minor reformatting.
4198
4199 2008-04-08  Robert Dewar  <dewar@adacore.com>
4200             Bob Duff  <duff@adacore.com>
4201
4202         * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
4203         Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
4204
4205         * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
4206
4207         * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
4208
4209         * g-trasym.ads: Minor comment improvements
4210
4211         * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
4212
4213         * a-sequio.ads, a-direio.ads: improve message for tagged type
4214
4215         * a-strunb.ads: Minor reformatting
4216
4217         * a-tifiio.adb: Minor reformatting
4218
4219         * atree.adb (Fix_Parents): Use clearer names for formals
4220         Cleanup and simplify code
4221         Use named notation in calls
4222
4223         * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
4224         confusing calls
4225
4226         * uintp.adb: Used named notation for some confusing calls
4227
4228         * bindusg.adb: Minor change in one line of output
4229
4230         * cstand.adb: Minor reformatting of src representation of Standard
4231
4232         * a-assert.ads: Add comment.
4233
4234         * g-decstr.adb: Fix bad indentation
4235
4236         * expander.ads, expander.adb: Code clean up.
4237
4238         * sem_dist.ads: Minor comment improvement
4239
4240         * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
4241         s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
4242
4243         * i-cstrin.adb: Fix casing error in formal parameter name in call
4244
4245 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
4246
4247         * binde.adb (Gather_All_Links, Gather_Dependencies): units that are
4248         mentioned in limited_with_clauses to do create semantic dependencies
4249         even though they appear in the ali file.
4250
4251 2008-04-08  Emmanuel Briot  <briot@adacore.com>
4252
4253         * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
4254         statement.
4255         (Get_Configuration): New subprogram.
4256
4257         * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
4258         These optional parameters help preserve the casing of the project's name
4259         when pretty-printing.
4260
4261 2008-04-08  Jerome Lambourg  <lambourg@adacore.com>
4262             Arnaud Charlet  <charlet@adacore.com>
4263
4264         * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
4265         then use __gnat_set_exit_status to report the returned status code.
4266
4267         * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
4268         messages on .NET, since some constructs of the language are not
4269         properly supported.
4270
4271         * gnatlink.adb (Gnatlink): In case the command line is too long for the
4272         .NET linker, gnatlink now concatenate all .il files and pass this to
4273         ilasm.
4274
4275 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
4276             Xavier Grave  <grave@ipno.in2p3.fr>
4277
4278         * Makefile.in: Add make ifeq define for mips/mipsel support.
4279         * g-soccon-linux-mips.ads, system-linux-mipsel.ads, 
4280         system-linux-mips.ads: New files.
4281
4282 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
4283
4284         * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
4285         detect systems using GNU libc.
4286         * gsocket.h: ditto.
4287         * socket.c: ditto.
4288         * adaint.c: ditto.
4289         * link.c: ditto.
4290
4291 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
4292
4293         * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New 
4294         constant constant for sysconf call.
4295         (bit_field): New packed boolean type used by cpu_set_t.
4296         (cpu_set_t): New type corresponding to the C type with
4297         the same name. Note that on the Ada side we use a bit
4298         field array for the affinity mask. There is not need
4299         for the C macro for setting individual bit.
4300         (pthread_setaffinity_np): New imported routine.
4301         * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
4302         on GNU/kFreeBSD.
4303
4304 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4305
4306         * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
4307
4308 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4309
4310         * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
4311         * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
4312         * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
4313         * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
4314         Return by Depressed Stack Pointer.
4315
4316 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
4317
4318         * decl.c (is_variable_size): Do not unconditionally return false
4319         on non-strict alignment platforms.
4320
4321 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
4322
4323         * decl.c (rest_of_type_decl_compilation_no_defer): New local function
4324         used to process all the variants of the specified type.
4325         (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
4326         types too.  Call rest_of_type_decl_compilation_no_defer if undeferring.
4327         (rest_of_type_decl_compilation): Likewise.
4328         * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
4329
4330 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
4331
4332         * gigi.h (insert_block): Kill.
4333         * utils.c (insert_block): Kill.
4334
4335 2008-04-02  Eric Botcazou  <ebotcazou@adacore.com>
4336
4337         * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
4338         type has self-referential size, get the size from the initializing
4339         expression directly if it is also a constant whose nominal type
4340         has self-referential size.
4341
4342 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4343
4344         PR ada/33688
4345         * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
4346
4347         PR ada/33857
4348         * env.c: Always include crt_externs.h if __APPLE__ is defined.
4349         (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
4350
4351 2008-04-01  Andreas Jaeger  <aj@suse.de>
4352
4353         * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
4354         IP_PKTINFO.
4355
4356 2008-03-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4357
4358         * g-table.adb, g-tasloc.adb, g-traceb.ads,
4359         g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
4360         gnatbind.adb, gnatchop.adb, gnatcmd.adb,
4361         gnatcmd.ads, gnatdll.adb, gnatfind.adb,
4362         gnatlink.adb, gnatmem.adb, gprep.adb,
4363         i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
4364         i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
4365         layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
4366         lib-xref.ads, lib.adb, link.c, live.ads,
4367         make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
4368         mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
4369         misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
4370         mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
4371         namet.adb, namet.h, nlists.adb, nlists.ads,
4372         nlists.h, opt.ads, osint-b.ads, osint-c.adb,
4373         osint-c.ads, osint.adb, osint.ads, output.ads,
4374         par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
4375         par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
4376         par-endh.adb, par-labl.adb, par-prag.adb,
4377         par-sync.adb, par-tchk.adb, par-util.adb,
4378         par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
4379         prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
4380         prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
4381         prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
4382
4383 2008-03-31  Eric Botcazou  <ebotcazou@adacore.com>
4384
4385         * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
4386         size if it has overflowed.
4387
4388 2008-03-31  Olivier Hainque  <hainque@adacore.com>
4389             Eric Botcazou  <ebotcazou@adacore.com>
4390
4391         * utils2.c (find_common_type): Document assumption on t1/t2 vs
4392         lhs/rhs. Force use of lhs type if smaller, whatever the modes.
4393
4394 2008-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4395
4396         * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
4397         einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
4398         exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
4399         exp_pakd.ads, exp_prag.adb, exp_smem.adb,
4400         exp_tss.ads, exp_util.adb, exp_util.ads,
4401         exp_vfpt.adb, freeze.adb, freeze.ads,
4402         frontend.adb, g-alleve.adb, g-altcon.adb,
4403         g-altive.ads, g-alveop.ads, g-alvevi.ads,
4404         g-arrspl.adb, g-busorg.ads, g-calend.adb,
4405         g-calend.ads, g-casuti.ads, g-cgideb.adb,
4406         g-comlin.adb, g-comlin.ads, g-curexc.ads,
4407         g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
4408         g-dirope.adb, g-dirope.ads, g-dynhta.ads,
4409         g-dyntab.adb, g-encstr.ads, g-excact.ads,
4410         g-except.ads, g-expect.ads, g-heasor.adb,
4411         g-hesora.adb, g-hesorg.adb, g-htable.ads,
4412         g-locfil.ads, g-md5.adb, g-md5.ads,
4413         g-memdum.ads, g-moreex.ads, g-os_lib.adb,
4414         g-pehage.adb, g-pehage.ads, g-regexp.adb,
4415         g-regexp.ads, g-regpat.adb, g-regpat.ads,
4416         g-soccon-aix.ads, g-soccon-darwin.ads,
4417         g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
4418         g-soccon-hpux.ads, g-soccon-irix.ads,
4419         g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
4420         g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
4421         g-soccon-mingw.ads, g-soccon-solaris-64.ads,
4422         g-soccon-solaris.ads, g-soccon-tru64.ads,
4423         g-soccon-vms.ads, g-soccon-vxworks.ads,
4424         g-soccon.ads, g-socket.adb, g-socket.ads,
4425         g-socthi-mingw.adb, g-socthi-vms.adb,
4426         g-socthi-vxworks.adb, g-soliop-mingw.ads,
4427         g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
4428         g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
4429         typos.
4430
4431 2008-03-27  Eric Botcazou  <ebotcazou@adacore.com>
4432
4433         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
4434         if the procedure is imported.
4435
4436 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
4437
4438         * adaint.c: Fix warnings.
4439
4440 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
4441
4442         * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
4443
4444 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
4445
4446         * a-witeio.adb: Fix problem with Current_Output (introduce Self).
4447         Fix problem of status check for null file
4448
4449 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
4450
4451         * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
4452         s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
4453         s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
4454         i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
4455         s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
4456         comments.
4457
4458 2008-03-26  Thomas Quinot  <quinot@adacore.com>
4459
4460         PR ada/33688
4461         * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
4462         Get_Socket_Option): Add support for Receive_Packet_Info.
4463
4464         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
4465         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
4466         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
4467         g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
4468         g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
4469         new constants SO_REUSEPORT and IP_PKTINFO
4470
4471 2008-03-26  Robert Dewar  <dewar@adacore.com>
4472
4473         * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
4474         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
4475         a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
4476         a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
4477         a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
4478         a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
4479         s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
4480         s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
4481         a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
4482         s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
4483         s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
4484         s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
4485         s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
4486         s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
4487         s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
4488         s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
4489         s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
4490         s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
4491         s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
4492         s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
4493         a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
4494         a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
4495         s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
4496         s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
4497         s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
4498         s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
4499         s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
4500         a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
4501         a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
4502         s-tasloc.adb: Minor reformatting.
4503         Update comments.
4504         Remove "used for" sections from comments.
4505
4506 2008-03-26  Robert Dewar  <dewar@adacore.com>
4507
4508         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
4509         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
4510         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
4511         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
4512         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
4513         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
4514         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
4515         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
4516         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
4517         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
4518         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
4519         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
4520         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
4521         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
4522         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
4523         double spaced if it fits on one line and otherwise single spaced.
4524
4525 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
4526
4527         * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb, 
4528         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb, 
4529         s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
4530         or task info if the thread could not be created.
4531
4532 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
4533
4534         * gnatvsn.ads (Library_Version): Bump to 4.4.
4535         (Current_Year): Bump to 2008.
4536
4537 2008-03-26  Robert Dewar  <dewar@adacore.com>
4538
4539         * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
4540
4541         * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
4542
4543         * debug.adb: Add debug flags d.r and d.v
4544         Add debug flag .T (Optimize_Alignment (Time))
4545         Add debug flag .S (Optimize_Alignment (Space))
4546
4547         * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
4548         depending on setting of relevant debug flags.
4549         Replace use of Warnings_Off by Has_Warnings_Off
4550         (Freeze_Entity): In circuit for warning on suspicious convention
4551         actuals, do not give warning if subprogram has same entity as formal
4552         type, or if subprogram does not come from source.
4553         (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
4554         if Optimize_Alignment set to Space.
4555
4556         * frontend.adb: Add call to Sem_Warn.Initialize
4557         Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
4558         Reset Optimize_Alignment mode from debug switches .S and .T
4559
4560         * layout.adb (Layout_Composite_Object): Rewritten for
4561         Optimize_Aligment pragma.
4562
4563         * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
4564         mode.
4565
4566         * opt.ads, opt.adb: (Optimize_Alignment): New global switch
4567
4568         * par-prag.adb (N_Pragma): Chars field removed, use Chars
4569         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
4570         this change. Add entry for pragma Optimize_Alignment
4571
4572         * sem_prag.adb (N_Pragma): Chars field removed, use Chars
4573         (Pragma_Identifier (..
4574         instead, adjustments throughout to accomodate this change.
4575         (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
4576         (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
4577         Add implementation of pragma Optimize_Alignment
4578
4579 2008-03-26  Vincent Celier  <celier@adacore.com>
4580
4581         * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
4582         Improve memory usage to avoid use of stack.
4583
4584 2008-03-26  Robert Dewar  <dewar@adacore.com>
4585
4586         * a-teioed.ads: Correct value of Default_Fill
4587
4588         * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
4589
4590 2008-03-26  Robert Dewar  <dewar@adacore.com>
4591
4592         * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
4593         with Current_Output (introduce Self).
4594
4595 2008-03-26  Robert Dewar  <dewar@adacore.com>
4596
4597         * checks.adb (Ensure_Valid): Capture valid status if possible
4598         (eliminate checks)
4599
4600 2008-03-26  Robert Dewar  <dewar@adacore.com>
4601
4602         * stand.ads: Deal with reordering of package standard declarations
4603
4604         * cstand.adb: Put package Standard declarations in proper order
4605
4606 2008-03-26  Robert Dewar  <dewar@adacore.com>
4607
4608         * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
4609         (Pragma_Identifier (.. instead.
4610         (OK_To_Reorder_Components): New flag
4611         (Has_Entries): Code cleanup.
4612         (Warnings_Off_Used): New flag
4613         (Warnings_Off_Used_Unmodified): New flag
4614         (Warnings_Off_Used_Unreferenced): New flag
4615         (Has_Warnings_Off): New function
4616         (Has_Unmodified): New function
4617         (Has_Unreferenced): New function
4618         (Is_Trivial_Subprogram): New flag
4619         (Is_Static_Dispatch_Table_Entity): New attribute.
4620         Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
4621         (more consistent with other similar names)
4622         (Access_Subprogram_Type): New classification function
4623
4624 2008-03-26  Robert Dewar  <dewar@adacore.com>
4625
4626         * errout.ads: Document new !! insertion sequence
4627
4628         * errout.adb (N_Pragma): Chars field removed, use Chars
4629         (Pragma_Identifier (..  instead.
4630         Replace use of Warnings_Off by Has_Warnings_Off
4631         (Error_Msg_Internal): Don't delete warning ending in !!
4632
4633 2008-03-26  Robert Dewar  <dewar@adacore.com>
4634
4635         * par.adb (Check_No_Right_Paren): Removed no longer used
4636
4637         * par-ch10.adb (N_Pragma): Chars field removed, use Chars
4638         (Pragma_Identifier (..  instead.
4639
4640         * par-ch10.adb (P_Subunit): Improvement in error recovery and message
4641
4642         * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
4643         par-ch4.adb: Minor improvements in error recovery and messages.
4644
4645         * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
4646         non-serious
4647
4648         * par-ch9.adb: Minor improvements in error recovery and messages
4649         (P_Protected): Better error recovery for "protected type x;"
4650
4651         * par-util.adb: Minor improvements in error recovery and messages
4652         (Check_No_Right_Paren): Removed no longer used
4653
4654 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
4655
4656         * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
4657         that the prefix of an attribute is the type of the aggregate being
4658         expanded.
4659
4660 2008-03-26  Javier Miranda  <miranda@adacore.com>
4661             Robert Dewar  <dewar@adacore.com>
4662
4663         * exp_attr.adb (N_Pragma): Chars field removed.
4664         (Expand_N_Attribute_Reference): If the designated type associated with
4665         attribute 'Unrestricted_Access is a subprogram entity then replace it
4666         by an E_Subprogram_Type itype.
4667         Implement attribute Old
4668
4669         * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
4670
4671         * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
4672         Replace call to
4673         New_Internal_Entity by call to Create_Itype to centralize calls
4674         building itypes, ad propagate the convention of the designated
4675         subprogram. In addition, disable the machinery cleaning constant
4676         indications from all entities in current scope when 'Unrestricted_Access
4677         corresponds with a node initializing a dispatch table slot.
4678         (Analyze_Attribute): Parameterless attributes returning a string or a
4679         type will not be called with improper arguments, so we can remove junk
4680         code that was dealing with this case.
4681         Implement attribute Old
4682
4683         * snames.ads, snames.h, snames.adb: Add entries for attribute Old
4684         Add entry for pragma Optimize_Alignment
4685         New standard names Sync and Synchronize
4686
4687 2008-03-26  Robert Dewar  <dewar@adacore.com>
4688             Arnaud Charlet  <charlet@adacore.com>
4689
4690         * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
4691         stmt.
4692         (No_Exception_Propagation_Active): New function.
4693         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
4694         Update comments, and review all uses of No_Exception_Propagation, which
4695         are now correct and in sync with what gigi expects.
4696
4697         * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
4698         function.
4699         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
4700         Update comments, and review all uses of No_Exception_Propagation, which
4701         are now correct and in sync with what gigi expects.
4702
4703 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
4704
4705         * sem_ch3.adb (Access_Definition): If the access type is the return
4706         result of a protected function, create an itype reference for it
4707         because usage will be in an inner scope from the point of declaration.
4708         (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
4709         OK_To_Reorder_Components.
4710         (Make_Index): If an overloaded range includes a universal integer
4711         interpretation, resolve to Standard.Integer.
4712         (Analyze_Subtype_Indication): Copy Convention to subtype
4713         (Check_Abstract_Interfaces): Complete semantic checks on the legality of
4714         limited an synchronized progenitors in type declaration and private
4715         extension declarations.
4716
4717         * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
4718         protected subprogram body, determine proper scope from subprogram
4719         declaration.
4720
4721 2008-03-26  Robert Dewar  <dewar@adacore.com>
4722
4723         * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
4724         No_Run_Time_Mode
4725
4726 2008-03-26  Gary Dismukes  <dismukes@adacore.com>
4727
4728         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
4729         of a heap allocator for a limited unconstrained function return when
4730         resstriction No_Allocators is active.
4731         (Analyze_Allocator): The restriction No_Allocators is now only checked
4732         on allocators that have Comes_From_Source set, as per RM-H.4(7).
4733
4734         * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
4735         of a heap allocator for a limited unconstrained function return when
4736         resstriction No_Allocators is active.
4737         (Analyze_Allocator): The restriction No_Allocators is now only checked
4738         on allocators that have Comes_From_Source set, as per RM-H.4(7).
4739         (Has_Fixed_Op):  If the name in a function call is Standard."*" and the
4740         operands are fixed-point types, the universal_fixed predefined operation
4741         is used, regardless of whether the operand type (s) have a primitive
4742         operation of the same name.
4743
4744 2008-03-26  Javier Miranda  <miranda@adacore.com>
4745
4746         * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
4747         Is_Static_Dispatch_Table
4748         (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
4749         to Exchange_Declarations to exchange the private and full-view. Bug
4750         found working in this issue.
4751         (Expand_Dispatching_Call): Propagate the convention of the subprogram
4752         to the subprogram pointer type.
4753         (Make_Secondary_DT): Replace generation of Prim'Address by
4754         Address (Prim'Unrestricted_Access)
4755         (Make_DT): Replace generation of Prim'Address by
4756         Address (Prim'Unrestricted_Access)
4757         (Make_Disp_*_Bodies): When compiling for a restricted profile, use
4758         simple call form for single entry.
4759         (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
4760         tables of predefined primitives).
4761         (Make_Secondary_DT): Add support to handle access to dispatch tables of
4762         predefined primitives.
4763         (Make_Tags): Add entities to Access_Dispatch_Table associated with
4764         access to dispatch tables containing predefined primitives.
4765
4766         * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
4767         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
4768         this change.
4769         (Register_Predefined_DT_Entry): Updated to handle the new contents
4770         of attribute Access_Disp_Table (pointers to dispatch tables containing
4771         predefined primitives).
4772
4773         * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
4774         subprogram.
4775         (Find_Interface_ADT): Updated to skip the new contents of attribute
4776         Access_Dispatch_Table (pointers to dispatch tables containing predefined
4777         primitives).
4778
4779         * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
4780         concurrent types.
4781         (Set_Convention): Use new function Is_Access_Subprogram_Type
4782         (Collect_Interfaces_Info): Updated to skip the new contents of attribute
4783         Access_Dispatch_Table (pointers to dispatch tables containing predefined
4784         primitives).
4785
4786         * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
4787         expanded code avoiding calls to Build_Predef_Prims.
4788         (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
4789         call to Build_Get_Predefined_Prim_Op_Address.
4790
4791 2008-03-26  Javier Miranda  <miranda@adacore.com>
4792
4793         * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
4794         subprogram Corresponding_Runtime_Package to know the runtime package
4795         that will provide support to a given protected type.
4796
4797         * exp_ch9.adb (Add_Private_Declarations,
4798         Build_Protected_Subprogram_Call,
4799         Build_Protected_Entry, Build_Simple_Entry_Call,
4800         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
4801         Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
4802         cleanup using the new centralized subprogram Corresponding_Runtime
4803         Package to know the runtime package that provides support to
4804         a given protected type.
4805
4806 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
4807
4808         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
4809         assignment is within the initialization procedure for a packed array,
4810         and Initialize_Scalars is enabled, compile right-hand side with checks
4811         off, because the value is purposely out of range.
4812
4813 2008-03-26  Vincent Celier  <celier@adacore.com>
4814
4815         * gnatcmd.adb: Add processing for GNAT SYNC
4816
4817         * vms_conv.ads: (Command_Type): Add command Sync
4818
4819         * vms_conv.adb (Initialize): Add Command_List data for new command Sync
4820
4821         * vms_data.ads: Add entries for -gnatw.w
4822         Add qualifier for gnatstub --header-file option
4823         Add switches for GNAT SYNC
4824
4825         * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
4826         (Add_Package_Name): New procedure
4827         (Package_Name_List): New function
4828         (Initialize): Add known package names to the list
4829         (Register_New_Package): Add the new package name to the list
4830
4831 2008-03-26  Robert Dewar  <dewar@adacore.com>
4832
4833         * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
4834         s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
4835         Raise_Exception by "raise with" construct.
4836
4837 2008-03-26  Pascal Obry  <obry@adacore.com>
4838
4839         * Makefile.in: Add proper GNAT.Serial_Communications implementation on
4840         supported platforms.
4841         
4842         * Makefile.rtl: Add g-sercom.o.
4843         
4844         * impunit.adb: Add g-sercom.adb.
4845         
4846         * s-crtl.ads (open): New routine.
4847         (close): Likewise.
4848         (write): Likewise.
4849         
4850         * s-osinte-mingw.ads (BYTE): New type.
4851         (CHAR): Likewise.
4852         (OVERLAPPED): Likewise.
4853         (GENERIC_READ): New constant.
4854         (GENERIC_WRITE): Likewise.
4855         (OPEN_EXISTING): Likewise.
4856         (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
4857         type instead.
4858         (CreateFile): New routine.
4859         (WriteFile): Likewise.
4860         (ReadFile): Likewise.
4861         (CloseHandle): Move next to the other file oriented routines.
4862
4863         * g-sercom.ads: New unit.
4864
4865         * g-sercom.adb: Default implementation, calls to this unit will raise
4866         a program error exception.
4867         
4868         * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
4869         GNU/Linux implementations.
4870
4871 2008-03-26  Robert Dewar  <dewar@adacore.com>
4872
4873         * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
4874
4875         * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
4876         unchecked conversion for different conventions only for subprogram
4877         pointers or on VMS.
4878
4879 2008-03-26  Vincent Celier  <celier@adacore.com>
4880
4881         * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
4882         to check if the specified object file is correct.
4883
4884 2008-03-26  Thomas Quinot  <quinot@adacore.com>
4885
4886         * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
4887         Comes_From_Source to exclude primitives from being checked. We want to
4888         exclude predefined primitives only, so use the appropriate specific
4889         predicate. Also, flag a formal parameter of an anonymous
4890         access-to-subprogram type as illegal for a primitive operation of a
4891         remote access to class-wide type.
4892
4893 2008-03-26  Vincent Celier  <celier@adacore.com>
4894
4895         * prj-dect.adb (Parse_Package_Declaration): When a package name is not
4896         known, check if it may be a missspelling of a known package name. In
4897         not verbose, not mode, issue warnings only if the package name is a
4898         possible misspelling.
4899         In verbose mode, always issue a warning for a not known package name,
4900         plus a warning if the name is a misspelling of a known package name.
4901
4902         * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
4903         limited withs or limited withs are parse during one call.
4904         (Parse_Single_Project): Post parse context clause in two passes: non
4905         limited withs before current project and limited withs after current
4906         project.
4907
4908         * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
4909         project with the name With_Name, even if it is only extended indirectly.
4910         (Recursive_Process): Process projects in order: first single withs, then
4911         current project, then limited withs.
4912
4913         * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
4914         project with the name With_Name, even if it is only extended indirectly.
4915
4916 2008-03-26  Robert Dewar  <dewar@adacore.com>
4917
4918         * scn.adb (Initialize_Scanner): Format messages belong on standard error
4919
4920 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
4921
4922         * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
4923         a generic subprogram that is imported, do not attempt to compile
4924         non-existent body.
4925
4926         * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
4927         imported, do not generate a raise_program_error for the non-existent
4928         body.
4929         (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
4930         perform minimal name resolution on the generic to avoid spurious
4931         warnings.
4932         (Find_Actual_Type): the designated type of the actual in a child unit
4933         may be declared in a parent unit without being an actual.
4934
4935 2008-03-26  Robert Dewar  <dewar@adacore.com>
4936
4937         * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
4938         * sinfo.ads, sinfo.adb (From_At_End): New flag
4939
4940 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
4941
4942         * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
4943         operations that have an interface parameter.
4944         (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
4945         Don't treat No_Return call as raise.
4946
4947         * sem_disp.adb (Check_Dispatching_Operations): apply check for
4948         non-primitive interface primitives to access parameters, not to all
4949         parameters of an access type.
4950
4951 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
4952
4953         * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
4954         declarations of a parent unit are made visible when compiling a child
4955         instance, the parent is not a hidden open scope, even though it may
4956         contain other pending instance.
4957         
4958         * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
4959         hidden open scope for some child instance, it does affect the
4960         visibility status of other stach entries.
4961         (Analyze_Object_Renaming): Check that a class-wide object cannot be
4962         renamed as an object of a specific type.
4963
4964 2008-03-26  Robert Dewar  <dewar@adacore.com>
4965
4966         * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
4967         recursion and raise SE directly.
4968         (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
4969         set for formal type for IN mode parameter.
4970
4971 2008-03-26  Robert Dewar  <dewar@adacore.com>
4972
4973         * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
4974         (Initialize): New procedure
4975         (Output_Warnings_Off_Warnings): New procedure
4976         (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
4977         (Output_Non_Modifed_In_Out_Warnings): Ditto
4978         (Warn_On_Unreferenced_Entity): Ditto
4979
4980 2008-03-26  Vincent Celier  <celier@adacore.com>
4981
4982         * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
4983         readable.
4984
4985 2008-03-26  Matthew Heaney  <heaney@adacore.com>
4986
4987         * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads, 
4988         a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
4989         Marked with clauses as private, and controlled operations as overriding
4990
4991 2008-03-26  Robert Dewar  <dewar@adacore.com>
4992
4993         * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
4994
4995 2008-03-26  Robert Dewar  <dewar@adacore.com>
4996
4997         * back_end.adb, back_end.ads: Minor reformatting
4998
4999         * bindgen.adb: Minor clarification of comments
5000
5001         * fname.ads: Minor comment fixes
5002
5003         * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
5004         prj-nmsc.adb, sem_aggr.adb: Minor reformatting
5005
5006         * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
5007         xsnames.adb: Remove warnings off pragma no longer needed
5008
5009         * a-catizo.ads, a-calari.ads, a-calfor.adb,
5010         a-calfor.ads: Fix header.
5011
5012 2008-03-26  Tristan Gingold  <gingold@adacore.com>
5013
5014         * init.c: Do not adjust pc for HPARITH on alpha/vms.
5015
5016 2008-03-26  Robert Dewar  <dewar@adacore.com>
5017
5018         * lib-xref.adb: (OK_To_Set_Reference): New function
5019         (Generate_Reference): Don't set referenced from occurrence in Warnings,
5020         Unmodified, or Unreferenced pragma
5021
5022 2008-03-26  Robert Dewar  <dewar@adacore.com>
5023
5024         * alloc.ads: Add entries for Warnings_Off_Pragmas table
5025
5026 2008-03-26  GNAT Script  <nobody@adacore.com>
5027
5028         * Make-lang.in: Makefile automatically updated
5029
5030 2008-03-26  Robert Dewar  <dewar@adacore.com>
5031
5032         * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
5033         par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
5034         removed, use Chars (Pragma_Identifier (..  instead, adjustments
5035         throughout to accomodate this change.
5036
5037         * s-pooglo.ads, s-pooloc.ads: Minor comment updates
5038
5039         * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
5040         Einfo.Set_Needs_Debug_Info)
5041
5042 2008-03-26  Robert Dewar  <dewar@adacore.com>
5043
5044         * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
5045         Add description for the new gnatstub option '--header-file'
5046         clarification of -gnatwz/-gnatwZ
5047         Add a "Irix-Specific Considerations" section to document the need to
5048         set LD_LIBRARY_PATH when using the default shared runtime library.
5049         Added documentation for both gcov and gprof.
5050
5051         * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
5052         messages that are not suppressed when clients are compiled.
5053         Add documentation of s-pooglo s-pooloc
5054         Document the new GNAT.Serial_Communications API.
5055         Add documentation for 'Old attribute
5056         Add description of pragma Optimize_Alignment
5057
5058         * ug_words: Add entries for -gnatw.w -gnatw.W
5059
5060         * usage.adb: Add line for -gnatw.w (warn on warnings off)
5061
5062 2008-03-25  Eric Botcazou  <ebotcazou@adacore.com>
5063
5064         Revert
5065         2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
5066         PR ada/35186
5067         * decl.c (maybe_pad_type): Avoid padding an integral type when
5068         bumping its alignment is sufficient.
5069
5070 2008-03-25  Arnaud Charlet  <charlet@adacore.com>
5071
5072         * exp_ch6.adb, exp_disp.adb: Update copyright notice.
5073         Fix wrong formatting (lines too long)
5074
5075 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5076
5077         * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
5078         a-calend-vms.adb, a-calend.adb, a-calend.ads,
5079         a-calfor.adb, a-chahan.ads, a-chtgke.adb,
5080         a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
5081         a-cohama.ads, a-comlin.ads, a-coorse.adb,
5082         a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
5083         a-except-2005.ads, a-except.adb, a-except.ads,
5084         a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
5085         a-exextr.adb, a-filico.ads, a-finali.ads,
5086         a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
5087         a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
5088         a-sequio.ads, a-strbou.ads, a-strfix.adb,
5089         checks.adb, exp_ch3.adb, exp_ch4.adb,
5090         exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
5091         exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
5092         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
5093         exp_dbug.ads, exp_disp.adb, exp_dist.adb,
5094         exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
5095
5096 2008-03-24  Robert Dewar  <dewar@adacore.com>
5097
5098         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
5099         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
5100         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
5101         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
5102         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
5103         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
5104         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
5105         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
5106         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
5107         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
5108         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
5109         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
5110         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
5111         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
5112         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
5113         double spaced if it fits on one line and otherwise single spaced.
5114
5115 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5116
5117         PR documentation/15479
5118         * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
5119         (doc/gnat_ugn_unw.texi): ... this, and adjusted.
5120         (doc/gnat_ugn.info): Renamed from ...
5121         (doc/gnat_ugn_unw.info): ... this.
5122         (doc/gnat_ugn.dvi): Renamed from ...
5123         (doc/gnat_ugn_unw.dvi): ... this.
5124         (doc/gnat_ugn.pdf): Renamed from ...
5125         (doc/gnat_ugn_unw.pdf): ... this.
5126         (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
5127         Adjusted.
5128         * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
5129         unconditionally to gnat_ugn.info.  Fix cross references to the
5130         GNAT Reference Manual.  Convert links to the GCC, GDB, Emacs,
5131         and GNU make manuals to be proper texinfo links.
5132         * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
5133
5134 2008-03-21  Olivier Hainque  <hainque@adacore.com>
5135
5136         * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
5137         ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
5138
5139 2008-03-21  Eric Botcazou  <ebotcazou@adacore.com>
5140
5141         * trans.c (addressable_p): Add notes on addressability issues.
5142
5143 2008-03-21  Olivier Hainque  <hainque@adacore.com>
5144             Ed Schonberg  <schonberg@adacore.com>
5145
5146         * trans.c (addressable_p): Accept COND_EXPR when both arms
5147         are addressable.
5148         (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
5149         (call_to_gnu): Do not use name reference in the error message
5150         for a misaligned by_reference_parameter. The actual may be a
5151         general expression.
5152
5153 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
5154
5155         * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
5156
5157 2008-03-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5158
5159         * gnat_rm.texi (Implementation Defined Characteristics)
5160         (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
5161         appropriate.
5162         * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
5163         (Switches for gnatchop, Installing a library): Likewise.
5164
5165 2008-03-10  Eric Botcazou  <ebotcazou@adacore.com>
5166
5167         * trans.c (emit_range_check): Do not emit the check if the base type
5168         of the expression is the type against which its range must be checked.
5169
5170 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
5171
5172         * decl.c (maybe_pad_type): Use value_factor_p.
5173
5174 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
5175
5176         * lang.opt (nostdlib): Move around.
5177         * misc.c (gnat_handle_option): Fix formatting.
5178         (gnat_dwarf_name): Move around.
5179         * trans.c (Case_Statement_to_gnu): Fix formatting.
5180         (gnat_to_gnu): Likewise.
5181         * utils.c (aggregate_type_contains_array_p): Likewise.
5182         (create_subprog_decl): Likewise.
5183
5184 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
5185
5186         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
5187         bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
5188
5189 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
5190
5191         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
5192         BIGGEST_ALIGNMENT when capping the alignment of records with
5193         strict alignment and size clause.
5194
5195 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
5196
5197         * lang-specs.h: Pass -gnatwa if -Wall is passed.
5198         * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
5199         and -Wuninitialized.
5200         (gnat_post_options): Clear warn_unused_parameter.
5201
5202 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
5203
5204         * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
5205         aligned bit-fields, bumping the alignment of the record type if deemed
5206         profitable.
5207         (value_factor_p): Return false instead of 0.
5208
5209 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
5210
5211         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
5212         for scalar types with small alignment.
5213
5214 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
5215
5216         * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
5217         from that of the front-end's end label.
5218         (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
5219         from that of the loop label.
5220
5221 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
5222
5223         * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
5224         comment for the packed array type case.
5225         * utils.c (build_template): Use a loop to strip padding or
5226         containing records for justified modular types.
5227
5228 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
5229
5230         * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
5231         large alignments specified for types.
5232         (validate_alignment): Minor cleanup.
5233
5234 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
5235
5236         * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
5237         (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
5238         the component for packing, if possible, as well as if a component
5239         size clause is specified.
5240         <E_Record_Subtype>: For an array type used to implement a packed
5241         array, get the component type from the original array type.
5242         Try to get a smaller form of the component for packing, if possible,
5243         as well as if a component size clause is specified.
5244         (round_up_to_align): New function.
5245         (make_packable_type): Add in_record parameter.
5246         For a padding record, preserve the size.  If not in_record and the
5247         size is too large for an integral mode, attempt to shrink the size
5248         by lowering the alignment.
5249         Ditch the padding bits of the last component.
5250         Compute sizes and mode manually, and propagate the RM size.
5251         Return a BLKmode record type if its size has shrunk.
5252         (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
5253         Use Original_Array_Type to retrieve the type in case of an error.
5254         Adjust call to make_packable_type.
5255         (gnat_to_gnu_field): Likewise.
5256         (concat_id_with_name): Minor tweak.
5257         * trans.c (larger_record_type_p): New predicate.
5258         (call_to_gnu): Compute the nominal type of the object only if the
5259         parameter is by-reference.  Do the conversion actual type -> nominal
5260         type if the nominal type is a larger record.
5261         (gnat_to_gnu): Do not require integral modes on the source type to
5262         avoid the conversion for types with identical names.
5263         (addressable_p): Add gnu_type parameter.  If it is specified, do not
5264         return true if the expression is not addressable in gnu_type.
5265         Adjust recursive calls.
5266         * utils.c (finish_record_type): Remove dead code.
5267
5268 2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
5269
5270         PR ada/35186
5271         * decl.c (maybe_pad_type): Avoid padding an integral type when
5272         bumping its alignment is sufficient.
5273
5274 2008-03-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5275
5276         * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
5277         * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
5278         statement.
5279         * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
5280         gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
5281         sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
5282         code output strings.
5283         * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
5284         system-vms_64.ads: Fix typos in ada source code comments.
5285         * sinfo-cn.adb: Remove incomplete sentence.
5286
5287         PR documentation/15479
5288         * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
5289
5290 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
5291
5292         PR ada/22255
5293         * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
5294
5295 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
5296
5297         PR ada/34799
5298         * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
5299         that underlying type is present.
5300
5301 2008-02-26  Tom Tromey  <tromey@redhat.com>
5302
5303         * misc.c (internal_error_function): Remove test of
5304         USE_MAPPED_LOCATION.
5305         * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
5306         (Sloc_to_locus): Remove old location code.
5307
5308 2008-02-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5309
5310         * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
5311         `i.e.' by adding comma or `@:' as appropriate.
5312         * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
5313         plain characters `C', use `@samp{C}'.
5314         * gnat_ugn.texi (File Naming Rules, About gnatkr)
5315         (Krunching Method): Likewise.
5316
5317         * gnat_ugn.texi (Conventions): List environment variables and
5318         metasyntactic variables.
5319         (Compiling Programs): Fix notation of metasyntactic variables.
5320         Add @file where appropriate.  Use @file for file extensions,
5321         @samp for strings.
5322         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
5323         instead of @file, @env instead of @code.
5324
5325 2008-02-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5326
5327         PR documentation/15479
5328         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
5329         and `...' with `@dots{}' or `@enddots{}'.
5330
5331         PR documentation/15479
5332         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
5333         use @command instead of @code, @option instead of @samp or @code,
5334         @code instead of @var, @samp instead of @file.
5335
5336         PR documentation/15479
5337         * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
5338         in Makefile rules, by using `&&' rather than `;'.
5339
5340 2008-02-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5341
5342         PR documentation/15479
5343         * gnat_ugn.texi: In non-code, avoid space before colon.
5344         (Regular Expressions in gnatfind and gnatxref): Fix indentation.
5345         (Examples of gnatxref Usage): Use @command{vi} instead of
5346         @file{vi}.
5347         (Character Set Control): Do not use @code for UTF-8.
5348         (Validity Checking): Fix typo "NaNs" instead of "NaN's".  Do not
5349         use @code for IEEE.
5350         * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
5351         sample.
5352         * gnat_rm.texi, gnat_ugn.texi: Fix typos.  Bump copyright years.
5353
5354 2008-02-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
5355
5356         PR ada/35143
5357         * env.c: Add __rtems__ to if defined.
5358         * s-osinte-rtems.adb: Add To_Target_Priority.  Fix formatting.
5359         * s-osinte-rtems.ads: Add To_Target_Priority prototype and
5360         PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants.  Add
5361         pragma Convention as required.
5362         * gsocket.h: Make compile in and out of RTS.
5363         * Makefile.in: Add system-rtems.ads.  Build DEC extensions.
5364         Use g-soccon-rtems.ads.
5365         * g-soccon-rtems.ads, system-rtems.ads: New files.
5366
5367 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5368
5369         PR other/35107
5370         * Make-lang.in (gnat1): Add $(GMPLIBS).
5371
5372 2008-01-26  Eric Botcazou  <ebotcazou@adacore.com>
5373
5374         * decl.c (components_to_record): Improve comment.
5375
5376 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
5377
5378         * decl.c (components_to_record): Do not reuse the empty union type
5379         if there is a representation clause on the record.
5380         * trans.c (addressable_p): Return true for INTEGER_CST.
5381
5382 2008-01-21  Eric Botcazou  <ebotcazou@adacore.com>
5383
5384         * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
5385         in pointer arithmetics.
5386         * utils2.c (build_allocator): Likewise.
5387
5388 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
5389
5390         * utils.c (build_function_stub): Properly build the call expression.
5391
5392 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
5393
5394         * decl.c (gnat_to_gnu_entity) <object>: Process renamings
5395         before converting the expression to the type of the object.
5396         * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
5397         Stabilize constructors for special wrapping types.
5398
5399 2008-01-13  Eric Botcazou  <ebotcazou@adacore.com>
5400
5401         * trans.c (call_to_gnu): Invoke the addressable_p predicate only
5402         when necessary.  Merge some conditional statements.  Update comments.
5403         Rename unchecked_convert_p local variable to suppress_type_conversion.
5404         Do not suppress conversions in the In case.
5405         (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
5406         into account on non strict-alignment platforms.
5407
5408 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
5409
5410         * utils.c (aggregate_type_contains_array_p): New predicate.
5411         (create_field_decl): In a packed record, force byte alignment
5412         for fields without specified position that contain an array.
5413
5414 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
5415
5416         * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
5417
5418 2008-01-10  John David Anglin  <dave.anglin.@nrc-cnrc.gc.ca>
5419
5420         PR ada/34466
5421         * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
5422         sysconf call.
5423         (bit_field): New packed boolean type used by cpu_set_t.
5424         (cpu_set_t): New type corresponding to the C type with
5425         the same name. Note that on the Ada side we use a bit
5426         field array for the affinity mask. There is not need
5427         for the C macro for setting individual bit.
5428         (pthread_setaffinity_np): New imported routine.
5429
5430 2008-01-03  Tero Koskinen  <tero.koskinen@iki.fi>
5431
5432         PR ada/34647
5433         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
5434         on OpenBSD as is done on other BSD systems.
5435
5436         PR ada/34645
5437         * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
5438         getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
5439         I/O.
5440
5441         PR ada/34644
5442         * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
5443         clearenv().
5444
5445         PR ada/34646
5446         * init.c (__gnat_error_handler, __gnat_install_handler,
5447         __gnat_init_float): Define for OpenBSD.
5448
5449         * initialize.c (__gnat_initialize): Define for OpenBSD.
5450
5451 2007-12-27  Samuel Tardieu  <sam@rfc1149.net>
5452
5453         PR ada/34553
5454         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
5455         instead of mktemp() or tmpnam() on NetBSD.
5456
5457 2007-12-23  Eric Botcazou  <ebotcazou@adacore.com>
5458
5459         * trans.c (call_to_gnu): Make the temporary for non-addressable
5460         In parameters passed by reference.
5461         (addressable_p): Return true for STRING_CST and CALL_EXPR.
5462
5463 2007-12-19  Robert Dewar  <dewar@adacore.com>
5464
5465         * g-expect-vms.adb, g-expect.adb, s-poosiz.adb: 
5466         Add pragma Warnings (Off) for unassigned IN OUT arguments
5467
5468         * sem_warn.adb (Output_Reference): Suppress messages for internal names
5469         (Check_References): Extensive changes to tune up warnings
5470         (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
5471         (Has_Pragma_Unmodifed_Check_Spec): New function
5472         (Check_References): Implement pragma Unmodified
5473         (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
5474
5475         * par-prag.adb: Dummy entry for pragma Unmodified
5476
5477         * sem_prag.adb: Implement pragma Unmodified
5478
5479         * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
5480         (Proc_Next_Component_Or_Discriminant): Fix typo.
5481         Update comments.
5482
5483         * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
5484         Unmodified.
5485         (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
5486         because the former already takes care of discarding the result.
5487         (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
5488         Add comment.
5489
5490         * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
5491
5492 2007-12-19  Eric Botcazou  <ebotcazou@adacore.com>
5493
5494         * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
5495         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
5496         system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
5497         system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
5498         system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
5499         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
5500         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
5501         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
5502         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
5503         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
5504         (Dynamic_Trampolines_Used): Delete.
5505
5506         * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
5507         Turn on stack probing mechanism on LynxOS.
5508
5509 2007-12-19  Bob Duff  <duff@adacore.com>
5510
5511         * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
5512         the resulting tail recursion by hand. This prevents running out of
5513         memory on deeply nested concatenations, since Field2 is where the left
5514         operand of concatenations is stored.
5515         Fix bug (was returning OK_Orig in some cases). Fix return subtype to
5516         clarify that it can only return OK or Abandon.
5517
5518         * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
5519         operand by iteration, in order to avoid running out of memory on
5520         deeply-nested concatenations. Use the Parent pointer to get back up the
5521         tree.
5522         (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
5523          Resolve_Op_Concat_Rest): New procedures split out of
5524         Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
5525         clearer.
5526
5527         * checks.adb (Remove_Checks): Use Traverse_Proc instead of
5528         Traverse_Func, because the former already takes care of discarding the
5529         result.
5530
5531         * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
5532         because the former already takes care of discarding the result.
5533         (Remove_Warning_Messages): Use appropriate subtype for Status and
5534         Discard 
5535
5536 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
5537
5538         * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
5539         discriminants forces expansion of the aggregate into assignments.
5540         (Init_Record_Controller):  If the type of the aggregate is untagged and
5541         is not inherently limited, the record controller is not limited either.
5542
5543 2007-12-19  Robert Dewar  <dewar@adacore.com>
5544
5545         * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
5546         handling compile time known size of record or array (case of front end
5547         layout active, e.g. in GNAAMP).
5548
5549 2007-12-19  Javier Miranda  <miranda@adacore.com>
5550
5551         * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
5552         that forces the construction of static dispatch tables in case of
5553         record subtypes.
5554
5555 2007-12-19  Robert Dewar  <dewar@adacore.com>
5556
5557         * exp_ch9.adb (Null_Statements): Moved to library level
5558         (Trivial_Accept_OK): New function
5559         (Expand_Accept_Declaration): Use Trivial_Accept_OK
5560         (Expand_N_Accept_Statement): Use Trivial_Accept_OK
5561
5562 2007-12-19  Robert Dewar  <dewar@adacore.com>
5563
5564         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
5565         in complex case where array is Volatile.
5566
5567 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
5568
5569         * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
5570         properly the Ada2005 rules concerning when the current instance of a
5571         record type is aliased.
5572
5573 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
5574
5575         * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
5576         mangled declaration
5577         (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
5578         declarations.
5579         (P_Variant_Part): Cleaner patch for parenthesized discriminant
5580
5581 2007-12-19  Vincent Celier  <celier@adacore.com>
5582
5583         * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
5584         package is not known
5585
5586         * prj-attr.ads (Unknown_Package): New constant
5587         Do not crash when an unknown package is in several projects
5588
5589         * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
5590         ignored
5591
5592         * prj-nmsc.adb (Check): Remove obsolete code related to no longer
5593         existing package Language_Processing.
5594
5595 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
5596             Gary Dismukes  <dismukes@adacore.com>
5597             Samuel Tardieu  <sam@rfc1149.net>
5598
5599         PR ada/15803, ada/15805
5600         * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
5601         illegal access subtypes when there is a constrained partial view.
5602         (Check_For_Premature_Usage): New procedure inside
5603         Access_Subprogram_Declaration for checking that an access-to-subprogram
5604         type doesn't reference its own name within any formal parameters or
5605         result type (including within nested anonymous access types).
5606         (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
5607         (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
5608         context is an access_to_variable, the expression cannot be an
5609         access_to_constant.
5610
5611 2007-12-19  Bob Duff  <duff@adacore.com>
5612
5613         * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
5614         (Analyze_Concatenation): Use iteration instead of recursion in order
5615         to avoid running out of stack space for deeply nested concatenations.
5616
5617 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
5618             Gary Dismukes  <dismukes@adacore.com>
5619
5620         * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
5621         whose renamed entity is a subprogram that requires overriding.
5622         (Premature_Usage): Test for the case of N_Full_Type_Declaration when
5623         issuing an error for premature usage and issue a message that says
5624         'type' rather than 'object'.
5625
5626 2007-12-19  Gary Dismukes  <dismukes@adacore.com>
5627
5628         PR ada/34149
5629         * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
5630         presence of a statically tagged operand (Present (Static_Tag)) with
5631         test for Indeterm_Ancestor_Call when determining whether to propagate
5632         the static tag to tag-indeterminate operands (which forces dispatching
5633         on such calls).
5634         (Check_Controlling_Formals): Ada2005, access parameters can have
5635         defaults.
5636         (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
5637         not insert subprogram in list of primitive operations if already there.
5638
5639 2007-12-19  Tristan Gingold  <gingold@adacore.com>
5640
5641         * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
5642         global variable.
5643
5644 2007-12-19  Thomas Quinot  <quinot@adacore.com>
5645
5646         Part of PR ada/33688
5647         * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
5648         datagram info on Linux.
5649
5650 2007-12-19  Vincent Celier  <celier@adacore.com>
5651
5652         * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
5653         that the source path name is always found in the dependencies.
5654
5655 2007-12-19  Robert Dewar  <dewar@adacore.com>
5656
5657         * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
5658         Fix name of Wide_Wide_Latin_1/9 file names
5659         Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
5660         Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
5661         Add missing documentation for Ada.Command_Line.Response_File
5662         Update list of warning letters for Warnings pragma
5663         Add documentation for pragma Unmodified
5664
5665 2007-12-19  Samuel Tardieu  <sam@rfc1149.net>
5666
5667         * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
5668
5669 2007-12-17  Arnaud Charlet  <charlet@adacore.com>
5670
5671         * s-vxwork-alpha.ads: Removed, no longer used.
5672
5673 2007-12-15  Jakub Jelinek  <jakub@redhat.com>
5674
5675         * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
5676
5677 2007-12-13  Samuel Tardieu  <sam@rfc1149.net>
5678
5679         PR ada/34360
5680         * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
5681         mlib-tgt-specific.adb.
5682
5683 2007-12-13  Bob Duff  <duff@adacore.com>
5684
5685         * trans.c (Attribute_to_gnu): Check for violations of the
5686         No_Implicit_Dynamic_Code restriction. This checking used to be done in
5687         the front end, but is moved here so we can make it more accurate.
5688
5689 2007-12-13  Pascal Obry  <obry@adacore.com>
5690
5691         * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
5692          version is provided for older GNU/Linux distribution not
5693          supporting thread affinity sets.
5694         
5695         * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
5696         call.
5697         (bit_field): New packed boolean type used by cpu_set_t.
5698         (cpu_set_t): New type corresponding to the C type with
5699         the same name. Note that on the Ada side we use a bit
5700         field array for the affinity mask. There is not need
5701         for the C macro for setting individual bit.
5702         (pthread_setaffinity_np): New imported routine.
5703         
5704         * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
5705         no null.
5706         (Create_Task): Set the processor affinity mask if information
5707         is present.
5708         
5709         * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
5710         
5711 2007-12-13  Robert Dewar  <dewar@adacore.com>
5712
5713         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, 
5714         s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads, 
5715         s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads, 
5716         s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
5717         s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
5718         s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads, 
5719         s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads, 
5720         i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
5721         for subprogram pointers.
5722
5723         * g-ctrl_c.adb: New file.
5724
5725         * g-ctrl_c.ads (Install_Handler): New body.
5726
5727         * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
5728         instead of obsolete function Is_Always_Inlined.
5729         (Freeze_Entity): check for tagged type in imported C subprogram
5730         (Freeze_Entity): check for 8-bit boolean in imported C subprogram
5731         (Freeze_Entity): check for convention Ada subprogram pointer in
5732         imported C subprogram.
5733         (Freeze_Fixed_Point_Type): In the case of a base type where the low
5734         bound would be chopped off and go from negative to zero, force
5735         Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
5736         bound) so that the size computation for the base type will take
5737         negative values into account.
5738
5739 2007-12-13  Eric Botcazou  <ebotcazou@adacore.com>
5740             Bob Duff  <duff@adacore.com>
5741             Tristan Gingold  <gingold@adacore.com>
5742
5743         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
5744         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads, 
5745         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
5746         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
5747         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads, 
5748         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
5749         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
5750         system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
5751         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
5752         system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
5753         system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
5754         (Always_Compatible_Rep): New flag to control trampolines globally.
5755         (Dynamic_Trampolines_Used): New flag for implementing the
5756         No_Implicit_Dynamic_Code restriction more correctly (not yet used,
5757         and not yet set correctly for some targets).
5758
5759         * s-taprop-vxworks.adb: Use stack limit method of stack checking.
5760         Simply indirectly call s-stchop when a task is created.
5761
5762         * ali.ads: 
5763         New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
5764         appears as an argument (entries A) in an ALI file.
5765
5766         * fe.h (Stack_Check_Limits): Declare new target parameter.
5767         (Check_Implicit_Dynamic_Code_Allowed): New procedure.
5768
5769         * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
5770         This variable is declared in C to be sure not subject to elaboration
5771         code.
5772         (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
5773         Storage_Error.
5774
5775         * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
5776         (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
5777
5778         * s-stchop.ads: Add comments.
5779
5780         * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
5781         limit method of stack checking.
5782
5783         * s-stchop-limit.ads: New file.
5784
5785 2007-12-13  Robert Dewar  <dewar@adacore.com>
5786
5787         * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb, 
5788         a-cihama.adb, g-awk.adb, 
5789         s-inmaop-posix.adb: Update handling of assigned value/unreferenced
5790         warnings
5791
5792         * exp_smem.adb: Update handling of assigned value/unreferenced warnings
5793
5794         * sem.adb: Update handling of assigned value/unreferenced warnings
5795
5796         * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
5797
5798         * lib-xref.ads: Improve documentation for k xref type
5799
5800         * lib-xref.adb: 
5801         Update handling of assigned value/unreferenced warnings
5802         (Generate_Reference): Warning for reference to entity for which a
5803         pragma Unreferenced has been given should be unconditional.
5804         If the entity is a discriminal, mark the original
5805         discriminant as referenced.
5806
5807         * sem_warn.ads, sem_warn.adb
5808         (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
5809         no entities referenced in package
5810         (Check_One_Unit): Don't give message about no entities referenced in
5811         a package if a pragma Unreferenced has appeared.
5812         Handle new warning flag -gnatw.a/-gnatw.A
5813         Update handling of assigned value/unreferenced warnings
5814
5815         * atree.h: Add flags up to Flag247
5816         (Flag231): New macro.
5817
5818 2007-12-13  Jose Ruiz  <ruiz@adacore.com>
5819
5820         * adaint.h: (__gnat_plist_init): Not defined for RTX.
5821
5822         * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
5823         RTX systems.
5824
5825         * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
5826         (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
5827         EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
5828         GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
5829
5830         * mingw32.h: 
5831         Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
5832
5833         * sysdep.c (winflush_function for RTX): Procedure that does nothing
5834         since we only have problems with Windows 95/98, which are not
5835         supported by RTX.
5836         (__gnat_ttyname): Return the empty string on Nucleus, just as
5837         done on vxworks.
5838
5839 2007-12-13  Robert Dewar  <dewar@adacore.com>
5840
5841         * a-textio.adb, a-textio.ads: 
5842         Extensive changes to private part for wide character encoding
5843
5844         * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
5845         (Look_Ahead): Fix mishandling of encoded sequences
5846         Move declaration of Wch_Con to private part (should not be visible)
5847
5848         * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
5849         UTF-8. Probably this is never used, but if it is, brackets is
5850         clearly correct.
5851
5852         * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
5853         setting wide character encoding for no main program case and when
5854         encoding is specified using -W?
5855         Initialize stack limit of environment task if stack limit method of
5856         stack checking is enabled.
5857         (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
5858         (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
5859         (Get_Main_Unit_Name): New function.
5860         (Gen_Adainit_Ada): Add call to main program for .NET when needed.
5861         (Gen_Output_File): Set Bind_Main_Program to True for .NET
5862
5863         * bindusg.adb: Add line for -Wx switch
5864
5865         * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
5866         Add comments
5867         Add new useful constant WC_Longest_Sequences
5868
5869         * switch-b.adb: Clean up handling of -Wx switch
5870         For -gnatWx, set Wide_Character_Encoding_Method_Specified
5871
5872         * switch-c.adb: -gnatg activates warning on assertion errors
5873         For -gnatWx, set Wide_Character_Encoding_Method_Specified
5874
5875         * s-wchcon.adb: (Is_Start_Of_Encoding): New function
5876
5877 2007-12-13  Robert Dewar  <dewar@adacore.com>
5878             Ed Schonberg  <schonberg@adacore.com>
5879
5880         * a-ngcoty.adb: New pragma Fast_Math
5881
5882         * opt.adb: New pragma Fast_Math
5883
5884         * par-prag.adb: 
5885         Add Implemented_By_Entry to the list of pragmas which do not require any
5886         special processing.
5887         (Favor_Top_Level): New pragma.
5888         New pragma Fast_Math
5889
5890         * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
5891         (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
5892         Expand_Allocator_Expression): Take into account VM_Target
5893         (Expand_Attribute, case 'Identity):  Handle properly the case where
5894         the prefix is a task interface.
5895         New pragma Fast_Math
5896
5897         * par.adb (Next_Token_Is): New function
5898         (P_Pragma): Add Skipping parameter
5899         (U_Left_Paren): New procedure
5900         (U_Right_Paren): New procedure
5901         New pragma Fast_Math
5902
5903         * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
5904         subunit
5905         New pragma Fast_Math
5906
5907         * sem_prag.adb: Add significance value to table Sig_Flag for pragma
5908         Implemented_By_Entry.
5909         (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
5910         (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
5911         items, since it can apply to more than one overloadable entity. Set
5912         new flag Has_Pragma_Inline_Always for Inline_Always case.
5913         (Analyze_Pragma, case Complex_Representation): Improve error message.
5914         (Analyze_Pragma, case Assert): When assertions are disabled build the
5915         rewritten code with Sloc of expression rather than pragma, so new
5916         warning about failing is not deleted.
5917         (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
5918         protected types and update error message to reflect that. Test whether
5919         the protected type is allowed for the pragma (an error is issued if the
5920         type has any entries, or components that do not have preelaborable
5921         initialization).
5922         New pragma Fast_Math
5923         (Analyze_Pragma, case No_Return): Handle generic instance
5924
5925         * snames.h, snames.ads, snames.adb: 
5926         Add new predefined name for interface primitive _Disp_Requeue.
5927         New pragma Fast_Math
5928
5929         * a-tags.ads, a-tags.adb: New calling sequence for
5930         String_To_Wide_[Wide_]String
5931         (Secondary_Tag): New subprogram.
5932
5933         * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
5934         from Exp_Attr
5935         New calling sequence for String_To_Wide_[Wide_]String
5936         (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
5937         the use of the secondary stack for image routines.
5938
5939         * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
5940         calling sequence for String_To_Wide_[Wide_]String
5941
5942         * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
5943         Ada 95 mode
5944         (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
5945         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
5946
5947         * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
5948         (P_Formal_Part): Use Skipping parameter in P_Pragma call
5949         to improve error recovery
5950
5951         * par-util.adb (Next_Token_Is): New function
5952         (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
5953
5954         * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
5955         semicolon if missing
5956         (P_Pragma): Implement new Skipping parameter
5957         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
5958         Fix location of flag for unrecognized pragma message
5959
5960         * par-tchk.adb (U_Left_Paren): New procedure
5961         (U_Right_Paren): New procedure
5962
5963 2007-12-13  Geert Bosch  <bosch@adacore.com>
5964
5965         * a-tifiio.adb: 
5966         (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
5967         the second or later Scaled_Divide would omit leading zeroes,
5968         resulting in too few digits produced and a Layout_Error as result.
5969         (Put): Initialize Pos.
5970
5971 2007-12-13  Robert Dewar  <dewar@adacore.com>
5972
5973         atree.ads, atree.adb (Flag231..Flag247): New functions
5974         (Set_Flag231..Set_Flag247): New procedures
5975         (Basic_Set_Convention): Rename Set_Convention to be
5976         Basic_Set_Convention
5977         (Nkind_In): New functions
5978         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
5979
5980         * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
5981         instead
5982          of obsolete function Is_Always_Inlined
5983         (Register_Predefined_DT_Entry): Initialize slots of the second
5984         secondary dispatch table.
5985         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
5986         (Expand_N_Function_Call): Remove special provision for stack checking.
5987
5988         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
5989         Include _Disp_Requeue in the list of predefined operations.
5990         (Find_Interface_ADT): Modified to fulfill the new specification.
5991         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
5992
5993         * par-ch4.adb, nlists.ads, nlists.adb: 
5994         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
5995
5996         * sinfo.ads, sinfo.adb: (Nkind_In): New functions
5997         Fix location of flag for unrecognized pragma message
5998
5999         * sem_ch7.adb: Use Nkind_In
6000
6001 2007-12-13  Vincent Celier  <celier@adacore.com>
6002
6003         * opt.ads: 
6004         Indicate what flags are used by the Project Manager, gprbuild and
6005         gprclean.
6006         (Opt.Follow_Links_For_Dirs): New flag
6007         (Warn_On_Assertion_Failure): New flag
6008         (Wide_Character_Encoding_Method_Specified): New flag
6009         (Suppress_All_Inlining): New switch set by -fno-inline
6010         (Real_VMS_Target): New flag
6011         New pragma Fast_Math
6012
6013 2007-12-13  Robert Dewar  <dewar@adacore.com>
6014
6015         * back_end.adb: Recognize -fno-inline
6016
6017 2007-12-13  Robert Dewar  <dewar@adacore.com>
6018
6019         * checks.adb: Fix optimization problem with short-circuited form
6020
6021 2007-12-13  Bob Duff  <duff@adacore.com>
6022
6023         * clean.adb (Usage): Add line for -aP
6024         (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
6025         with a parameter "procedure Usage", instead of passing a pointer to a
6026         procedure. This is to eliminate trampolines (since the Usage procedure
6027         is often nested in a main procedure, and it would be inconvenient to
6028         unnest it).
6029
6030         * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
6031         to be generic, with a parameter "procedure Callback (...)", instead of
6032         passing a pointer to a procedure. This is to eliminate trampolines
6033         (since the Callback procedure is usually nested).
6034
6035         * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb, 
6036         gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
6037         (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
6038
6039         * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
6040         Use the generic Heap_Sort_G instead of Heap_Sort_A.
6041
6042 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
6043
6044         * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
6045         (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
6046         (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
6047         (Renamed_In_Spec): New flag
6048         (Has_Pragma_Inline_Always): New flag
6049         Add missing doc for pragma Obsolescent_Warning
6050         Add missing doc for 17 additional unused flags (230-247)
6051         (Is_Derived_Type): Remove condition "not Is_Generic_Type".
6052         Alphabetize with clauses.
6053         Separate Is_Thunk and Has_Thunks flags
6054         (Write_Entity_Flags): Add forgotten entry for Has_Thunks
6055         (Related_Interface): Renamed to Related_Type.
6056         (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
6057         (Set_Is_Flag): Restrict the assertion.
6058
6059 2007-12-13  Vincent Celier  <celier@adacore.com>
6060
6061         * errout.adb (Output_Source_Line): Do not keep a trailing space after
6062         the source line number if the source line is empty.
6063
6064 2007-12-13  Geert Bosch  <bosch@adacore.com>
6065
6066         * eval_fat.adb (Decompose_Int): Handle argument of zero.
6067         (Compose): Remove special casing of zero.
6068         (Exponent): Likewise.
6069         (Fraction): Likewise.
6070         (Machine): Likewise.
6071         (Decompose): Update comment.
6072
6073 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
6074
6075         * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
6076         limited ancestor part, initialize controllers of enclosing record
6077         before expanding ancestor aggregate.
6078         (Gen_Assign): If a component of the aggregate is box-initialized, add
6079         code to call Initialize if the component is controlled, and explicit
6080         assignment of null if the component is an access type.
6081
6082         Handle properly aggregates for limited types that appear in object
6083         declarations when the aggregate contains controlled values such as
6084         protected types.
6085         When expanding limited aggregates into individual components, do not
6086         call Adjust on controlled components that are limited.
6087
6088 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
6089
6090         * expander.adb: Take into account N_Subprogram_Renaming_Declaration
6091
6092 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
6093
6094         * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
6095         predefined primitive _Disp_Requeue.
6096         (Make_Predefined_Primitive_Specs): Create the spec for predefined
6097         primitive _Disp_Requeue.
6098         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
6099         type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
6100         (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
6101         an interface type. In case of limited interfaces we now declare all the
6102         predefined primitives associated with synchronized interfaces as
6103         abstract.
6104         (Predef_Spec_Or_Body): For interface types generate abstract subprogram
6105         declarations.
6106         (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
6107         tagged type is an interface type and there is no user-defined equality
6108         function.
6109         Add also bodies of predefined primitives associated with synchronized
6110         interfaces.
6111         (Freeze_Record_Type): Do not build bodies of predefined primitives of
6112         interface types because they are now defined abstract.
6113         Add missing documentation.
6114         (Expand_Record_Controller): Update occurrence of Related_Interface
6115         to Related_Type.
6116         (Build_Offset_To_Top_Functions): Do nothing in case of VM.
6117         (Expand_N_Object_Declaration): Take into account VM_Target when handling
6118         class wide interface object declaration.
6119         (Expand_Previous_Access_Type): Do not create a duplicate master entity
6120         if the access type already has one.
6121         (Expand_N_Object_Declaration): Defend against attempt to validity check
6122         generic types. Noticed for -gnatVcf specified with previous errors.
6123
6124 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
6125
6126         * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
6127         Expand_Allocator_Expression): Take into account VM_Target
6128
6129         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
6130         secondary stack when VM_Target /= No_VM
6131
6132 2007-12-13  Javier Miranda  <miranda@adacore.com>
6133             Ed Schonberg  <schonberg@adacore.com>
6134
6135         * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
6136         Is_Complation_Unit by Is_Library_Level_Entity in the code
6137         that decides if the static dispatch tables need to be built.
6138         (Wrap_Transient_Declaration): Do not generate a finalization call if
6139         this is a renaming declaration and the renamed object is a component
6140         of a controlled type.
6141
6142 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
6143
6144         * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
6145         In the case where the renamed subprogram is a dereference, call
6146         Force_Evaluation on the prefix.
6147
6148 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
6149             Ed Schonberg  <schonberg@adacore.com>
6150
6151         * exp_ch9.adb (Expand_N_Asynchronous_Select,
6152         Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
6153         comment reformatting.
6154         (Set_Privals): Inherit aliased flag from formal. From code reading.
6155         (Build_Simple_Entry_Call): Out parameters of an access type are passed
6156         by copy and initialized from the actual. This includes entry parameters.
6157         (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
6158         and Ada 2005 models of requeue.
6159         (Null_Statements): Still connsider do-end block null if it contains
6160         Unreferenced and Warnings pragmas.
6161         (Expand_N_Accept_Statement): Do not optimize away null do end if
6162         dispatching policy is other than defaulted.
6163         (Expand_N_Timed_Entry_Call): When the triggering statement is a
6164         dispatching call, manually analyze the delay statement.
6165         (Find_Parameter_Type): Move subprogram to Sem_Util.
6166
6167 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
6168             Javier Miranda  <miranda@adacore.com>
6169
6170         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
6171         _Disp_Requeue occupies dispatch table slot number 15. Move
6172         _Disp_Timed_Select to slot 16.
6173         (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
6174         generate the spec and body of _Disp_Reqeueue.
6175         (Make_DT): Build and initialize the second dispatch table.
6176         Handle initialization of RC_Offset when the parent
6177         is a private type with variable size components.
6178         (Make_Secondary_DT): Complete documentation. Add support to
6179         initialize the second dispatch table.
6180         (Make_Tags): Generate the tag of the second dispatch table.
6181         (Register_Primitive): Add support to register primitives in the
6182         second dispatch table.
6183
6184 2007-12-13  Pascal Obry  <obry@adacore.com>
6185
6186         * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
6187         Windows. This signal is used by gnatmake to kill child processes for
6188         example.
6189
6190 2007-12-13  Javier Miranda  <miranda@adacore.com>
6191
6192         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
6193         support for generic dispatching constructor calls in which we need to
6194         locate the tag of a secondary dispatch table associated with an
6195         interface type to properly dispatch the call.
6196         (Expand_N_Attribute_Reference [case Address],
6197         Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
6198         handling of VM targets.
6199
6200 2007-12-13  Robert Dewar  <dewar@adacore.com>
6201             Ed Schonberg  <schonberg@adacore.com>
6202
6203         * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
6204         assert fail
6205
6206         * ug_words: Add entries for -gnatw.a -gnatw.A
6207
6208         * sem_res.adb (Set_String_Literal_Subtype): If the context of the
6209         literal is a subtype with non-static constraints, use the base type of
6210         the context as the base of the string subtype, to prevent type
6211         mismatches in gigi.
6212         (Resolve_Actuals): If the actual is an entity name, generate a
6213         reference before the actual is resolved and expanded, to prevent
6214         spurious warnings on formals of enclosing protected operations.
6215         (Analyze_Overloaded_Selected_Component): If type of prefix if
6216         class-wide, use visible components of base type.
6217         (Resolve_Selected_Component): Ditto.
6218         (Resolve_Short_Circuit): Detect case of pragma Assert argument
6219         evaluating to False, and issue warning message.
6220
6221         * usage.adb: Add lines for -gnatw.a and -gnatw.A
6222
6223 2007-12-13  Emmanuel Briot  <briot@adacore.com>
6224
6225         * g-calend.ads (No_Time): New constant, to represent an uninitialized
6226         time value
6227
6228         * g-catiio.ads, g-catiio.adb (Value): Added support for more date
6229         formats.
6230         (Month_Name_To_Number): New subprogram
6231
6232         * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
6233         letter to upper-case.
6234
6235 2007-12-13  Robert Dewar  <dewar@adacore.com>
6236             Ed Schonberg  <schonberg@adacore.com>
6237
6238         * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
6239
6240         * layout.adb (Resolve_Attribute, case 'Access): If designated type of
6241         context is a limited view, use non-limited view when available. If the
6242         non-limited view is an unconstrained array, this enforces consistency
6243         requirements in 3.10.2 (27).
6244         (Layout_Type): For an access type whose designated type is a limited
6245         view, examine its declaration to determine if it is an unconstrained
6246         array, and size the access type accordingly.
6247         (Layout_Type): Do not force 32-bits for convention c subprogram
6248         pointers in -gnatdm mode, only if real vms target.
6249
6250         * sem_attr.adb (Analyze_Access_Attribute): Use new flag
6251         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
6252         (Analyze_Access_Attribute,Attribute_Address): Remove checks for
6253         violations of the No_Implicit_Dynamic_Code restriction.
6254         (Resolve_Attribute, case 'Access): If designated type of context is a
6255         limited view, use non-limited view when available. If the non-limited
6256         view is an unconstrained array, this enforces consistency requirements
6257         in 3.10.2 (27).
6258         (Layout_Type): For an access type whose designated type is a limited
6259         view, examine its declaration to determine if it is an unconstrained
6260         array, and size the access type accordingly.
6261
6262 2007-12-13  Vincent Celier  <celier@adacore.com>
6263
6264         * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
6265         object directory of main project does not exist.
6266         On VMS, correctly set then environment variable for the source
6267         directories.
6268
6269 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
6270
6271         * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
6272         set to True this procedure will create the value of type REG_EXPAND_SZ.
6273         It was only possible to create REG_SZ values before.
6274
6275 2007-12-13  Robert Dewar  <dewar@adacore.com>
6276
6277         * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
6278         g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
6279         namet-sp.adb, namet-sp.ads: New files.
6280
6281         * g-speche.adb: Use generic routine in g-spchge
6282
6283         * s-wchcnv.ads, s-wchcnv.adb: 
6284         Minor code cleanup (make formal type consistent with spec)
6285
6286         * namet.adb: Update comments.
6287
6288         * par-endh.adb (Evaluate_End_Entry): Use new
6289         Namet.Sp.Is_Bad_Spelling_Of function
6290
6291         * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
6292
6293         * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
6294         ancestor is an access type initialized with a box, set its type
6295         explicitly, for use in subsequent expansion.
6296         (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
6297         function
6298
6299 2007-12-13  Robert Dewar  <dewar@adacore.com>
6300
6301         * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
6302         access Vstring)
6303
6304 2007-12-13  Robert Dewar  <dewar@adacore.com>
6305
6306         * inline.adb (Back_End_Cannot_Inline): Use new flag
6307         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
6308
6309         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
6310         Has_Pragma_Inline_Always instead.
6311         of obsolete function Is_Always_Inlined
6312         (Build_Body_To_Inline): Same change
6313         (Cannot_Inline): Same change
6314         Do not give warning on exception raise in No_Return function
6315
6316         * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
6317         component has two inconsistent component clauses in the same record
6318         representation clause, favor the message that complains about
6319         duplication rather than inconsistency.
6320         Update comments.
6321         (Record_Representation_Clause): Do not warn on missing component
6322         clauses for inherited components of a type extension.
6323         (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
6324         an overloadable item if it is a pragma that can apply to multiple
6325         overloadable entities (e.g. Inline) because a pragma cannot be on
6326         more than one chain at a time.
6327         (Validate_Unchecked_Conversion): Add code to warn on unchecked
6328         conversion where one of the operands is Ada.Calendar.Time.
6329         (Analyze_Attribute_Definition_Clause): Fix typo in error message.
6330         For now, ignore Component_Size clause on VM targets, as done for
6331         pragma Pack.
6332
6333 2007-12-13  Emmanuel Briot  <briot@adacore.com>
6334             Vincent Celier  <celier@adacore.com>
6335
6336         * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
6337         string
6338         (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
6339         prj.ads
6340         (Hash): Move instantiation of System.HTable.Hash from spec to body
6341         (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
6342         systems, since we do not need to recompute the Name_Id for the canonical
6343         file name.
6344         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
6345         as a parameter. This parameter is in fact always "ada" in all calls, and
6346         we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
6347         while loading a project with 40000 files
6348
6349         * prj-attr.adb: Fix name of attribute Dependency_Driver
6350         Change the kind of indexing for attribute Root
6351
6352         * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
6353         variables already declared, in case constructions.
6354
6355         * prj-env.adb (Initialize): Reset Current_Source_Path_File and
6356         Current_Object_Path_File to No_Path.
6357
6358         * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
6359         ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
6360
6361         * prj-makr.adb: new parameter Current_Dir
6362
6363         * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
6364         Ada sources when language is not Ada.
6365         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
6366         (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
6367         (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
6368         (Locate_Directory): Always resolve links when computing Canonical_Path
6369         (Look_For_Sources): Make sure that Name_Buffer contains the file name
6370         in Source_Files before checking for the presence of a directory
6371         separator.
6372         Optimize calls to Name_Find when on case sensitive systems.
6373         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
6374         as a parameter.
6375         (Prj.Nmsc.Check): new parameter Current_Dir
6376         (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
6377         cannot be empty and the spec suffix cannot be the same as the body or
6378         separate suffix.
6379         (Get_Unit): When a file name can be of several unit kinds (spec, body or
6380         subunit), always consider the longest suffix.
6381         (Check_Configuration): Do not issue an error if there is no compiler
6382         for a language. Just issue a warning and ignore the sources for the
6383         language.
6384         (Check_Library_Attributes): Only check Library_Dir if Library_Name is
6385         not empty.
6386         (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
6387         (Unit_Exceptions): New hash table
6388         (Check_Naming_Schemes): Check if a file that could be a unit because of
6389         the naming scheme is not in fact a source because there is an exception
6390         for the unit.
6391         (Look_For_Sources): Put the unit exceptions in hash table
6392         Unit_Exceptions
6393         (Get_Unit_Exceptions): Give initial value No_Source to local variable
6394         Other_Part to avoid exception when code is compiled with validity
6395         checking.
6396         (Get_Sources_From_File): Check that there is no directory information
6397         in the file names.
6398         (Look_For_Sources): Check that there is no directory information in the
6399         list of file names in Source_Files.
6400         (Look_For_Sources): In multi-language mode, do not allow exception file
6401         names that are excluded.
6402         (Excluded_Sources_Htable): New hash table
6403         (Search_Directories.Check_File): New procedure to simplify
6404         Search_Directories.
6405         (Search_Directories): Do not consider excluded sources
6406         (Look_For_Sources): Populate Excluded_Sources_Htable before calling
6407         Search_Directories.
6408         (Get_Exceptions): Set component Lang_Kind of Source_Data
6409         (Get_Unit_Exceptions): Ditto
6410         (Search_Directories): Ditto
6411
6412         * prj-pars.adb: new parameter Current_Dir
6413
6414         * prj-part.ads, prj-part.adb: 
6415         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
6416         (Opt.Follow_Links_For_Dirs): New flag
6417         (Project_Path_Name_Of): Cache information returned by this routine as
6418         Locate_Regular_File is a costly routine. The code to output a log
6419         information and the effective call to Locate_Regular_File is now
6420         factorized into a routine (code clean-up).
6421         (Parse, Parse_Single_Project): new parameter Current_Dir
6422         When main project file cannot be found, indicate in the error
6423         message the project path that was used to do the search.
6424
6425         * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
6426         (Prj.Proc.Process*): new parameter Current_Dir
6427
6428         * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
6429
6430 2007-12-13  Bob Duff  <duff@adacore.com>
6431
6432         * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
6433         procedure to be called from the back end to check the
6434         No_Implicit_Dynamic_Code restriction.
6435
6436 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
6437
6438         * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
6439         Fixes another case where RTE_Available_Call was ignored instead of being
6440         taken into account.
6441         (Load_Fail): Ditto.
6442
6443         * rtsfind.ads: Add new entries.
6444
6445 2007-12-13  Robert Dewar  <dewar@adacore.com>
6446
6447         * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
6448         g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
6449
6450         * scn.adb: Implement BOM recognition
6451
6452 2007-12-13  Thomas Quinot  <quinot@adacore.com>
6453             Ed Schonberg  <schonberg@adacore.com>
6454
6455         * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
6456         subprogram body that acts as its own spec may not have a non-private
6457         WITH clause on a private sibling.
6458         (Build_Unit_Name): If the parent unit in the name in a with_clause on a
6459         child unit is a renaming, create an implicit with_clause on that
6460         parent, and not on the unit it renames, to prevent visibility errors
6461         in the current unit.
6462
6463 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
6464
6465         * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
6466         renaming declaration, use the Slocs of the formal parameters from the
6467         declaration of the formal subprogram when creating the formal parameter
6468         entities in the renaming declaration.
6469         (Analyze_Formal_Type_Declaration): Change the placement of the error
6470         message concerning illegal known discriminants. It is now posted on the
6471         type rather than on the first discriminant. This change ensures early
6472         error report.
6473         (Freeze_Subprogram_Body): If the generic subprogram is nested within
6474         the package body that contains the instance, do not generate an
6475         out-of-place freeze node for the enclosing package.
6476         (Collect_Previous_Instantiations): Ignore internal instantiations
6477         generated for formal packages.
6478         (Validate_Derived_Type_Instance): Add a check that when a formal
6479         derived type is Known_To_Have_Preelab_Init then the actual type must
6480         have preelaborable initialization, and issue an error when this
6481         condition is violated.
6482
6483 2007-12-13  Robert Dewar  <dewar@adacore.com>
6484
6485         * s-imenne.adb, s-imenne.ads: New files.
6486
6487         * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb, 
6488         s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb, 
6489         s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads, 
6490         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb, 
6491         s-imgwch.ads: New calling sequence for Image routines to avoid sec
6492         stack usage.
6493
6494 2007-12-13  Javier Miranda  <miranda@adacore.com>
6495             Ed Schonberg  <schonberg@adacore.com>
6496
6497         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
6498         generation of spurious error if parent is an interface type; caused
6499         because predefined primitive bodies will be generated later by
6500         Freeze_Record_Type.
6501         (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
6502         flag.
6503         (Derive_Subprograms): Handle derivations of predefined primitives
6504         after all the user-defined primitives to ensure that they are
6505         found in proper order in instantiations.
6506         (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
6507         of Related_Interface to Related_Type.
6508         (Record_Type_Declaration): Minor reordering of calls to decorate the
6509         Tag component because the entity must have set its Ekind attribute
6510         before setting its Is_Tag attribute.
6511         (Analyze_Subtype_Declaration): In the case of subtypes with
6512         Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
6513
6514 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
6515             Ed Schonberg  <schonberg@adacore.com>
6516
6517         * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
6518         statement to the list of contexts where a selected component with a
6519         concurrent tagged type prefix should yield a primitive operation.
6520         (Find_Primitive_Operation): Handle case of class-wide types.
6521         (Analyze_Overloaded_Selected_Component): If type of prefix is
6522         class-wide, use visible components of base type.
6523         (Resolve_Selected_Component): Ditto.
6524         (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
6525         formal of a generic subprogram. find candidate interpretations by
6526         scanning the list of generic formal declarations.:
6527         (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
6528         type from a limited_with_clause, and the full view is available, use it
6529         for subsequent semantic checks.
6530         (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
6531         (Find_Primitive_Operation): New function.
6532         (Analyze_Overloaded_Selected_Component): insert explicit dereference
6533         only once if several interpretations of the prefix yield an access type.
6534         (Try_Object_Operation): Code and comment cleanup.
6535         (Analyze_Selected_Component): Reorder local variables. Minot comment and
6536         code reformatting. When the type of the prefix is tagged concurrent, a
6537         correct interpretation might be available in the primitive and
6538         class-wide operations of the type.
6539
6540 2007-12-13  Robert Dewar  <dewar@adacore.com>
6541             Ed Schonberg  <schonberg@adacore.com>
6542
6543         * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
6544         renaming entry as subprogram using rename-as-body if subprogram spec
6545         frozen.
6546         (Use_One_Type): The clause is legal on an access type whose designated
6547         type has a limited view.
6548         (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
6549         (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
6550         (Analyze_Renamed_Primitive_Operation): new procedure to determine the
6551         operation denoted by a selected component.
6552         (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
6553         it can be an expression, possibly overloaded, that returns a task or
6554         an access to one.
6555
6556 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
6557             Gary Dismukes  <dismukes@adacore.com>
6558
6559         * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
6560         requeue statement is dispatching. Do not emit an error when the name is
6561         not an entry and the context is a dispatching select. Add code to
6562         perform subtype conformance between the formals of the current entry
6563         and those of the target interface primitive.
6564         (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
6565         Timed_Entry_Call): Analyze the triggering statement as the first step of
6566         the processing. If this is a dispatching select, postpone the analysis
6567         of all select statements until the Expander transforms the select. This
6568         approach avoids generating duplicate identifiers after the Expander has
6569         replicated some of the select statements. In case the Expander is
6570         disabled, perform regular analysis.
6571         (Check_Triggering_Statement): New routine.
6572         (Analyze_Requeue): Exclude any interpretations that are not entries when
6573         checking overloaded names in a requeue. Also test type conformance for
6574         matching interpretations rather than requiring subtype conformance at
6575         that point to conform with the RM's resolution rule for requeues.
6576
6577 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
6578
6579         * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
6580         inherited operation is a defaulted tag-indeterminate call, and there is
6581         a statically tagged actual, use the static tag as a controlling actual
6582         for the defaulted actual.
6583
6584 2007-12-13  Geert Bosch  <bosch@adacore.com>
6585
6586         * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
6587         context, so do not call Check_Non_Static_Context.
6588
6589 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
6590
6591         * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
6592         whether formal E is an entity which may have parameters.
6593
6594 2007-12-13  Bob Duff  <duff@adacore.com>
6595             Javier Miranda  <miranda@adacore.com>
6596             Robert Dewar  <dewar@adacore.com>
6597
6598         * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
6599         (Set_Convention): New procedure to set the Convention flag, and in
6600         addition make sure the Favor_Top_Level flag is kept in sync (all
6601         foreign-language conventions require Favor_Top_Level = True).
6602         (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
6603         to Related_Type.
6604         (Collect_Interfaces_Info): Minor update to handle the two secondary
6605         dispatch tables. Update occurrence of Related_Interface to Related_Type.
6606         (Generate_Parent_Ref): Add parameter to specify entity to check
6607         (Is_Preelaborable_Expression): Allow the name of a discriminant to
6608         initialize a component of a type with preelaborable initialization.
6609         This includes the case of a discriminal used in such a context.
6610         (Is_Dependent_Component_Of_Mutable_Object): Take into account the
6611         latest Ada 2005 rules about renaming and 'Access of
6612         discriminant-dependent components.
6613         (Check_Nested_Access): Add handling when there are no enclosing
6614         subprograms (e.g. case of a package body).
6615         (Find_Parameter_Type): Factor routine from several other compiler files.
6616         Remove routine from Find_Overridden_Synchronized_Primitive.
6617
6618 2007-12-13  Thomas Quinot  <quinot@adacore.com>
6619
6620         * sinput.adb (Get_Source_File_Index): Add assertion to guard against
6621         an invalid access to an uninitialized slot in the
6622         Source_File_Index_Table.
6623
6624 2007-12-13  Thomas Quinot  <quinot@adacore.com>
6625
6626         * sinput-l.adb (Load_File): Disable style checks when preprocessing.
6627
6628 2007-12-13  Bob Duff  <duff@adacore.com>
6629
6630         * s-soflin.ads: Apply new pragma Favor_Top_Level to all
6631         access-to-subprogram types in this package.
6632
6633 2007-12-13  Olivier Hainque  <hainque@adacore.com>
6634
6635         * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
6636         with Stack_Grows_Down in System.Parameters. Rename Array_Address into
6637         Stack_Overlay_Address and document that we are using an internal
6638         abstraction.
6639         (Byte_Size, Unsigned_32_Size): Remove, now useless.
6640         (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
6641         consistently throughout the various implementation pieces.
6642
6643         * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
6644         overlay we are using to fill the stack area with patterns.
6645         (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
6646         (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
6647         (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
6648
6649 2007-12-13  Robert Dewar  <dewar@adacore.com>
6650
6651         * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
6652
6653 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
6654
6655         * s-tassta.adb: 
6656         (Create_Task): Take into account tasks created by foreign threads.
6657         Code clean up: use constants instead of hard coded values.
6658
6659 2007-12-13  Robert Dewar  <dewar@adacore.com>
6660
6661         * styleg.adb (Check_Comment): More liberal rules for comment placement
6662
6663 2007-12-13  Olivier Hainque  <hainque@adacore.com>
6664
6665         * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
6666         of Procedure Value instead of Frame Pointer as the invocation
6667         identifier associated with the instruction pointer in each traceback
6668         entry.
6669
6670         * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
6671         TB_Entry_For): Revert back to use of Procedure Value instead of Frame
6672         Pointer as the invocation identifier passed to tbk$symbolize.
6673
6674         * s-traent-vms.ads, s-traent-vms.adb
6675         (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
6676         Procedure Value instead of Frame Pointer as the invocation identifier
6677         passed to tbk$symbolize.
6678
6679 2007-12-13  Robert Dewar  <dewar@adacore.com>
6680
6681         * tbuild.ads, tbuild.adb: 
6682         Fix location of flag for unrecognized pragma message
6683
6684 2007-12-13  Robert Dewar  <dewar@adacore.com>
6685
6686         * treepr.ads, treepr.adb: (pl): implement use of positive value
6687         shorthands
6688
6689 2007-12-13  Robert Dewar  <dewar@adacore.com>
6690
6691         * xeinfo.adb: Remove warnings
6692         * xnmake.adb: Remove warnings
6693         * xsinfo.adb: Remove warnings
6694         * xtreeprs.adb: Remove warnings
6695         * xsnames.adb: Remove warnings
6696
6697         * a-ngcoar.adb: Fix typo.
6698         * s-interr.adb: Minor reformatting
6699         * env.c: Minor reformatting.
6700         * g-bytswa.adb: Minor reformatting.
6701         * g-rannum.ads: Minor documentation improvements
6702         * s-tasinf-mingw.adb: Minor header fix
6703         * a-clrefi.adb: Minor reformatting
6704         * g-sttsne.ads: Minor documentation improvement
6705         * g-sttsne-locking.ads: Minor documentation improvement
6706         * g-soliop-solaris.ads: Minor documentation improvement
6707         * g-soliop-mingw.ads: Minor documentation improvement
6708         * g-soliop.ads: Minor documentation improvement
6709         * exp_aggr.ads: Minor reformatting
6710         * debug.adb: Add documentation for the gprbuild debug flags
6711         * exp_ch2.adb: Use Nkind_In to simplify code throughout
6712         * exp_pakd.adb: Minor reformatting
6713
6714         * g-altive.ads, g-alleve.adb: Remove assertions.
6715         Add comment about minor differences between targets regarding
6716         floating-point operations.
6717
6718         * g-thread.adb: Remove pragma unreferenced.
6719         * lib.ads: Minor reformatting
6720         * par-ch9.adb: Minor reformatting of error messages
6721         * sem_case.adb: Minor reformatting
6722         * s-fileio.adb: Minor reformattinng
6723         * s-vmexta.ads: Minor typo
6724         * vxaddr2line.adb: 
6725         Take into account 'Success' value as per new GNAT warning.
6726
6727 2007-12-13  Vincent Celier  <celier@adacore.com>
6728
6729         * a-direct.adb (Create_Path): Always take '/' as a directory separator,
6730         even on Windows
6731
6732 2007-12-13  Robert Dewar  <dewar@adacore.com>
6733             Bob Duff  <duff@adacore.com>
6734
6735         * gnat_ugn.texi: Dcoument new rules for style check comment alignment
6736         Document that suffixes may be terminations of each others
6737         Add doc for -gnatw.a and -gnatw.A
6738         Document gnatbind -Wx switch
6739         Document BOM recognition
6740         Document pragma Implemented_By_Entry.
6741         Document new units.
6742
6743         * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
6744         Add doc for pragma Unreferenced suppressing no entities referenced msg
6745         Add documentation of GNAT.Directory_Operations.Iteration
6746         Add documentation of GNAT.Random_Numbers
6747         Add documentation for pragma Shared.
6748         Correct documentation for Bit_Order
6749         Add documentation for the Pool_Address attribute.
6750         Fix and improve documentation of pragma machine_attribute.
6751         New pragma Fast_Math
6752         Document BOM recognition
6753
6754         * vms_data.ads: Add entries for -gnatw.a -gnatw.A
6755         Add /Wide_Character_Encoding for binder
6756         Add qualifier for the new gnatpp option --no-separate-loop-then
6757
6758 2007-12-13  Matthew Heaney  <heaney@adacore.com>
6759
6760         * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
6761         which generic formal operations are called for each operation.
6762
6763 2007-12-13  Olivier Hainque  <hainque@adacore.com>
6764
6765         * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
6766         (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
6767
6768 2007-12-13  Emmanuel Briot  <briot@adacore.com>
6769
6770         * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
6771         Reference_Dir unless we actually need it.
6772
6773 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
6774             Tristan Gingold  <gingold@adacore.com>
6775
6776         * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
6777
6778         * s-osprim-vms.adb,
6779         a-calend-vms.adb: Remove pragma warning off and add pragma
6780         unreferenced.
6781
6782 2007-12-13  Robert Dewar  <dewar@adacore.com>
6783
6784         * impunit.adb: Add entries for missing units
6785
6786         * Makefile.rtl: Add new run-time units.
6787
6788         * Make-lang.in:  Update dependencies.
6789
6790 2007-12-13  Bob Duff  <duff@adacore.com>
6791
6792         * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
6793         types, set Can_Use_Internal_Rep appropriately, based on
6794         Always_Compatible_Rep_On_Target.
6795
6796 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
6797             Arnaud Charlet  <charlet@adacore.com>
6798
6799         * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
6800         it to the front end and setting the aamp_target environment variable
6801         to the switch's argument to ensure that gnaampbind and gnaamplink will
6802         take the specified library into account.
6803         (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
6804         target, since the CIL compiler supports an "object" file (.il files).
6805
6806 2007-12-13  Vincent Celier  <celier@adacore.com>
6807
6808         * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
6809         (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
6810
6811 2007-12-13  Geert Bosch  <bosch@adacore.com>
6812
6813         * s-parame-vxworks.adb: 
6814         Update comments to reflect usage of this package by Nucleus.
6815
6816 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
6817
6818         * i-vxwork.ads: Kill new warning on Convention C, since changing the
6819         spec would break code.
6820
6821         * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
6822
6823         * system-vxworks-alpha.ads: Removed.
6824
6825 2007-12-10  Eric Botcazou  <ebotcazou@adacore.com>
6826
6827         * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
6828
6829 2007-12-09  Samuel Tardieu  <sam@rfc1149.net>
6830
6831         PR ada/34366
6832         * sem_ch3.adb (Designates_T): New function.
6833         (Mentions_T): Factor reusable part of the logic into Designates_T.
6834         Consider non-access parameters and access and non-access result.
6835         (Check_Anonymous_Access_Components): Set ekind of anonymous access to
6836         E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
6837
6838         * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
6839
6840 2007-12-07  Ludovic Brenta  <ludovic@ludovic-brenta.org>
6841
6842         PR ada/34361
6843         * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
6844         the new implementation of target-specific calls.
6845
6846 2007-12-07  Olivier Hainque  <hainque@adacore.com>
6847
6848         * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
6849         the designated full view, only follow a second level Full_View link
6850         for Non_Limited_Views of from_limited_with references.
6851         
6852 2007-12-07  Samuel Tardieu  <sam@rfc1149.net>
6853
6854         PR ada/15805
6855         * sem_ch6.adb (Process_Formals): Prevent an access type formal
6856         to be initialized with an access to constant object.
6857
6858         * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
6859         when an access to constant is used to initialize an access
6860         value.
6861
6862         PR ada/21346
6863         * a-direct.adb (Compose): Containing_Directory can be an empty string.
6864
6865 2007-12-07  Olivier Hainque  <hainque@adacore.com>
6866
6867         PR ada/34173
6868         * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
6869         the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
6870         this is from an alignment clause on the GNAT entity.
6871         * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
6872         to distinguish the case where we set it from the type's alignment.
6873         When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
6874         whether this alignment was set from an explicit alignment clause.
6875
6876 2007-12-06  Eric Botcazou  <ebotcazou@adacore.com>
6877
6878         * decl.c (make_packable_type): Revert last change.
6879         (gnat_to_gnu_field): Avoid setting size and position multiple times.
6880         * utils.c (finish_record_type): Retrieve the real name of the type.
6881
6882 2007-12-05  Eric Botcazou  <ebotcazou@adacore.com>
6883
6884         * trans.c (lvalue_required_p): Take base node directly instead
6885         of its parent.  Rename second parameter to 'gnu_type'.
6886         <N_Indexed_Component>: Return 0 if the node isn't the prefix.
6887         <N_Slice>: Likewise.
6888         (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
6889         Adjust calls to lvalue_required_p.
6890
6891 2007-12-05  Samuel Tardieu  <sam@rfc1149.net>
6892
6893         PR ada/21489
6894         * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
6895         parameters of an entry call.
6896
6897 2007-12-03  Robert Dewar  <dewar@adacore.com>
6898             Samuel Tardieu  <sam@rfc1149.net>
6899
6900         PR ada/34287
6901         * sem_util.adb (Safe_To_Capture_Value): Do not capture values
6902         of variables declared in a library-level package.
6903     
6904 2007-12-02  Samuel Tardieu  <sam@rfc1149.net>
6905
6906         * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
6907         of Empty_String'Unchecked_Access.
6908
6909         * Makefile.in: Add support for sh4-linux.
6910
6911         * system-linux-sh4.ads: New file.
6912
6913 2007-12-01  Kostik Belousov  <kostikbel@ukr.net>
6914
6915         PR ada/33722
6916         * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
6917         and its argument must not be free()ed.
6918
6919 2007-11-29  Eric Botcazou  <ebotcazou@adacore.com>
6920
6921         * decl.c (make_packable_type): Retrieve the real name of the type.
6922         (maybe_pad_type): Simplify similar code.
6923
6924 2007-11-28  Samuel Tardieu  <sam@rfc1149.net>
6925
6926         PR ada/15804
6927         * par-ch3.adb (P_Variant_Part): Signal an error when anything other
6928         than an identifier is used after "case" in a variant_part.
6929
6930         PR ada/17318
6931         * par-ch4.adb (Is_Parameterless_Attribute): New map.
6932         (P_Name, Scan_Apostrophe block): Parse left parenthesis following
6933         attribute name or not depending on the new map.
6934
6935         * sem-attr.adb (Analyze_Attribute): Parameterless attributes
6936         returning a string or a type will not be called with improper
6937         arguments.
6938
6939         * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
6940
6941         * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
6942
6943         PR ada/32792
6944         * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
6945         Signal an error when attribute argument is a fixed-point value of
6946         an unknown type.
6947
6948         PR ada/22559
6949         * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
6950         a derived ordinary fixed point type.
6951
6952         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
6953         RM_Size when a Small clause is found.
6954
6955 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
6956
6957         PR 34081/C++
6958         * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
6959         Pass 'false' for the new allocate_struct_function parameter.
6960         * utils.c (build_function_stub): Likewise.
6961
6962 2007-11-25  Richard Guenther  <rguenther@suse.de>
6963
6964         * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
6965         (gnat_poplevel): Likewise.
6966
6967 2007-11-25  Eric Botcazou  <ebotcazou@adacore.com>
6968
6969         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
6970         strict alignment, no alignment clause and a known static size, cap
6971         the type alignment to the greatest power of 2 factor of the size.
6972         (gnat_to_gnu_field): If the field has a component clause, is aliased
6973         or of a type with strict alignment, require that its size be equal to
6974         that of the type.
6975         (validate_size): Use the type size as the minimum size for a type with
6976         strict alignment.
6977
6978 2007-11-23  Samuel Tardieu  <sam@rfc1149.net>
6979
6980         * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
6981         s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
6982         s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
6983         Use 'Access instead of 'Unchecked_Access in second and third
6984         arguments of pthread_sigmask.
6985
6986 2007-11-23  Eric Botcazou  <ebotcazou@adacore.com>
6987
6988         * decl.c (ceil_alignment): New function.
6989         (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
6990         (make_packable_type): Likewise.
6991
6992 2007-11-22  Olivier Hainque  <hainque@adacore.com>
6993
6994         * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
6995         to fit in 80 columns.
6996
6997 2007-11-21  Aurelien Jarno  <aurelien@aurel32.net>
6998
6999         * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
7000         * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
7001
7002 2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
7003
7004         PR ada/34098
7005         * misc.c (gnat_adjust_rli): Delete.
7006         (gnat_init): Do not initialize the translation code here.
7007         Do not call set_lang_adjust_rli.
7008         * trans.c (init_code_table): Make static.
7009         (gnat_init_stmt_group): Delete.
7010         (gigi): Initialize the translation code entirely here.
7011         Emit debug info for the common types here instead of...
7012         * utils.c (gnat_init_decl_processing): ...here.
7013         * gigi.h (init_code_table): Delete.
7014         (gnat_init_stmt_group): Likewise.
7015
7016 2007-11-16  Olivier Hainque  <hainque@adacore.com>
7017
7018         * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
7019         retrieving an allocator return value from a super-aligned address from
7020         here to ...
7021         * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
7022         expect a super-aligned address for a fat or thin pointer.
7023         
7024 2007-11-14  Eric Botcazou  <ebotcazou@adacore.com>
7025
7026         * trans.c (call_to_gnu): Always set the source location on the call
7027         expression.  If the function returns-by-target, also set it on the
7028         address expression.
7029
7030 2007-11-14  Samuel Tardieu  <sam@rfc1149.net>
7031
7032         * adaint.c, init.c, initialize.c, link.c: Remove system-specific
7033         sections of non-supported Interix target.
7034
7035         * s-osinte-interix.ads: Removed.
7036
7037         * i-cstrin.ads (chars_ptr): Make it a C convention type.
7038
7039 2007-11-13  Samuel Tardieu  <sam@rfc1149.net>
7040
7041         * a-tasatt.adb: Add a comment at the beginning of the package
7042         explaining why in general 'Unchecked_Access must be used instead
7043         of 'Access.
7044
7045         * sem_prag.adb (Process_Convention): Move the test for the
7046         entity on which the Convention pragma applies down to also
7047         forbid pragma Convention on enumeration literals reached
7048         through renamings.
7049
7050 2007-11-10  Samuel Tardieu  <sam@rfc1149.net>
7051
7052         * a-tasatt.adb: Revert previous change for this file as it will
7053         generate an error when this package is instantiated from a
7054         local context.
7055
7056 2007-11-07  Samuel Tardieu  <sam@rfc1149.net>
7057
7058         * a-tasatt.adb: Type Wrapper should be declared in comment instead
7059         of already declared type Node_Access.
7060         Use 'Access instead of 'Unchecked_Access when applicable. Local
7061         lifetime is the one of the package.
7062         (Set_Value): W is allocated on the heap.
7063
7064         * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
7065         applicable.
7066         (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
7067         access type.
7068         (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
7069         access type.
7070
7071         * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
7072         applicable.
7073         (elaboration code): Timer_Queue lifetime is the one of the
7074         package.
7075
7076         * tracebak.c (i386 alternative): Remove useless comparaison
7077         which is always false; LOWEST_ADDRESS is 0 and is never greater
7078         than an unsigned integer.
7079
7080         * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
7081         embedded check for "Ada_Version >= Ada_05".
7082
7083 2007-11-07  Olivier Hainque  <hainque@adacore.com>
7084
7085         * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
7086         craft and expand comment.
7087
7088 2007-11-01  Eric Botcazou  <ebotcazou@adacore.com>
7089
7090         * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
7091
7092 2007-10-23  Eric Botcazou  <ebotcazou@adacore.com>
7093
7094         * misc.c (gnat_handle_option): Replace call to abort with
7095         call to gcc_unreachable.
7096         (gnat_init): Likewise.
7097         (gnat_expand_expr): Likewise.
7098         (fp_prec_to_size): Likewise.
7099         (fp_size_to_prec): Likewise.
7100
7101 2007-10-23  Richard Guenther  <rguenther@suse.de>
7102
7103         PR bootstrap/33608
7104         * tracebak.c: #undef abort after including system.h.
7105
7106 2007-10-20  Danny Smith  <dannysmith@users.sourceforge.net>
7107
7108         * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
7109         s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
7110         for win32 targets.
7111         (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
7112
7113 2007-10-15  Eric Botcazou  <ebotcazou@adacore.com>
7114
7115         * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
7116         Set the protection status of the guard page based on the value of On.
7117
7118         * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
7119
7120         * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
7121         (Exit_Task): Pass False to Hide_Yellow_Zone.
7122
7123 2007-10-15  Robert Dewar  <dewar@adacore.com>
7124
7125         * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
7126         s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
7127         a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb, 
7128         checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb, 
7129         freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb, 
7130         gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb, 
7131         mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb, 
7132         prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb, 
7133         sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb, 
7134         s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
7135         uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb, 
7136         a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb, 
7137         a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb, 
7138         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb, 
7139         a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb, 
7140         a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
7141         Minor reformatting.
7142         Add Unreferenced and Warnings (Off) pragmas for cases of
7143         variables modified calls where they are IN OUT or OUT parameters and
7144         the resulting values are not subsequently referenced. In a few cases,
7145         we also remove redundant code found by the new warnings.
7146
7147         * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads, 
7148         sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
7149         sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
7150         sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
7151         warning controlled by -gnatw.o that warns on cases of out parameter
7152         values being ignored.
7153
7154 2007-10-15  Geert Bosch  <bosch@adacore.com>
7155
7156         * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
7157
7158         * expect.c: Initial port to arm-mentor-nucleus.
7159         Use kill for __gnat_kill() on VMS.
7160
7161 2007-10-15  Emmanuel Briot  <briot@adacore.com>
7162
7163         * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
7164         value.
7165         (Xref_Record): Change type for Line, since in the case of a reference to
7166         a predefined entity (as happens for array index types), the line is set
7167         to 0.
7168         Add support for parsing multiple array index types info, or
7169         multiple inherited interfaces info. This information cannot be stored
7170         in Xref_Entity_Record, which only supports a single instance of Tref_*,
7171         and is therefore stored in the list of references instead. It has a
7172         special treatement later on in tools that use this information.
7173
7174 2007-10-15  Tristan Gingold  <gingold@adacore.com>
7175
7176         * debug.adb: Document use of -gnatd.a and -gnatd.I
7177
7178         * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
7179
7180 2007-10-15  Javier Miranda  <miranda@adacore.com>
7181
7182         * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
7183         Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
7184         care of access to class-wide interface types plus removal of bizarre
7185         conversion of tagged object to access type (reported by Gary
7186         Dismukes). After this patch there is no need to perform any
7187         additional management on these nodes in Expand_Interface_Actuals.
7188
7189         * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
7190         that handles use of 'Access and 'Unchecked_Access applied to
7191         actuals covering interface types. Such code is now
7192         centralized in Expand_N_Attribute_Reference.
7193
7194 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
7195
7196         * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
7197         of tagged types whose ultimate ancestor is a CPP type.
7198         (Freeze_Array_Type): For a packed array type, generate an initialization
7199         procedure if the type is public, to handle properly a client that
7200         specifies Normalize_Scalars.
7201
7202 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
7203
7204         * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
7205         inside a generic body, retrieve the full view of the entry family
7206         discrete subtype if available.
7207
7208 2007-10-15  Thomas Quinot  <quinot@adacore.com>
7209
7210         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
7211         attempt to generate stubs for hidden primitive operations.
7212
7213 2007-10-15  Vincent Celier  <celier@adacore.com>
7214
7215         * mlib-tgt-specific.adb (Support_For_Libraries): New function,
7216         returning None, used when there is no platform specific body for
7217         MLib.Tgt.Specific.
7218
7219 2007-10-15  Bob Duff  <duff@adacore.com>
7220
7221         * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
7222         (passing'Unrestricted_Access of nested subprograms to Sort) with use of
7223         the generic Heap_Sort_G, in order to avoid trampolines.
7224
7225 2007-10-15  Vasiliy Fofanov  <fofanov@adacore.com>
7226             Jose Ruiz  <ruiz@adacore.com>
7227
7228         * vx_stack_info.c: New file.
7229
7230         * i-forbla-unimplemented.ads: New file.
7231
7232         * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
7233         for unsupported configurations; use it on VMS targets instead of the
7234         real one.
7235         (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
7236         vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
7237         used by VxWorks targets to have access to task-specific data and be
7238         able to extract the stack boundaries for stack checking.
7239         Use system-vms-ia64.ads on ivms.
7240
7241         * Make-lang.in: Update dependencies.
7242
7243         * sysdep.c (__gnat_get_stack_info): Move to a standalone file
7244         (vx_stack_info.c).
7245
7246 2007-10-15  Vincent Celier  <celier@adacore.com>
7247
7248         * snames.adb, snames.ads: Add new standard name runtime_library_dir
7249
7250         * prj.ads (Language_Config): Add new component Runtime_Library_Dir
7251
7252         * prj-attr.adb: Add project level attribute Runtime_Library_Dir
7253
7254         * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
7255         the source is unknown.
7256
7257         * prj-ext.adb: Spelling error fix
7258
7259         * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
7260         95 reserved word in its name.
7261         (Process_Project_Level_Array_Attributes): Process new attribute
7262         Runtime_Library_Dir.
7263
7264         * prj-part.adb (Parse_Single_Project): Do not check the name of the
7265         config project against the user project names.
7266
7267         * prj-proc.adb (Expression): In multi-language mode, indexes that do
7268         not include a dot are always case insensitive.
7269         (Process_Declarative_Items): Ditto
7270         (Process_Project_Tree_Phase_1): Set Success to False in case an error is
7271         detected.
7272
7273         * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
7274         True, compare both indexes in lower case.
7275
7276 2007-10-15  Robert Dewar  <dewar@adacore.com>
7277
7278         * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
7279
7280 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
7281
7282         * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
7283         association for an access component, add an association with null as
7284         the expression. Remove testing for array subtypes and the setting in
7285         that case of Ctyp to the array component type, which prevented proper
7286         inclusion of an association for null-initialized arrays. Collapse
7287         condition that tests for array subtypes into just a test of
7288         Is_Partially_Initialized_Type (which already covers arrays anyway).
7289
7290 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
7291
7292         * sem_ch12.adb: Minor code reformatting.
7293         (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
7294         find the parent package which may have been hidden by local
7295         declarations.
7296
7297 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
7298
7299         * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
7300         flag of derived concurrent types, taking into account the flag setting
7301         on the parent subtype and any new set of discriminants.
7302
7303 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
7304
7305         * sem_ch4.adb: Minor code and comment reformatting.
7306         (Analyze_Allocator): When the designated type of an unconstrained
7307         allocator is a record with unknown discriminants or an array with
7308         unknown range bounds, emit a detailed error message depending on the
7309         compilation mode and whether the designated type is limited.
7310
7311 2007-10-15  Tristan Gingold  <gingold@adacore.com>
7312
7313         * system-vms-ia64.ads: New file.
7314
7315         * system-vms_64.ads: Minor comment fix.
7316
7317 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
7318
7319         * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
7320         body generated for a function with a controlling result that is a null
7321         extension, discard the generated body in favor of the current explicit
7322         one.
7323
7324 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
7325
7326         * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
7327         examining its original form, to handle properly operator calls that
7328         have been rewritten.
7329
7330 2007-10-15  Olivier Hainque  <hainque@adacore.com>
7331
7332         * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
7333         instead of a procedure value in each traceback entry.
7334
7335         * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
7336         instead of procedure value to TBK$SYMBOLIZE.
7337
7338         * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
7339         field.
7340         (TB_Entry_For): Account for the PV/FP renaming.
7341
7342         * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
7343         add comment.
7344         (Null_TB_Entry): Account for change of component name.
7345         (PV_For): Rename as FP_For.
7346
7347 2007-10-15  Tristan Gingold  <gingold@adacore.com>
7348
7349         * trans.c (gnat_to_gnu): Remove the padding structure more often.
7350         This optimize assignment to over-aligned record.
7351
7352 2007-10-15  Emmanuel Briot  <briot@adacore.com>
7353
7354         * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
7355         interfaces.
7356
7357         * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
7358         type, for dispatching calls.
7359
7360 2007-10-15  Vincent Celier  <celier@adacore.com>
7361             Robert Dewar  <dewar@adacore.com>
7362
7363         * gnat_ugn.texi: Add documentation for switches --version and --help
7364         for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
7365         gnatxref, gnatfind, gnatls, and gnatclean.
7366         Document -gnatw.o.
7367         Mention attribute Excluded_Source_Dirs
7368         Replace obsolescent attribute Locally_Removed_Files with attribute
7369         Excluded_Source_Files.
7370         Improve documentation of -u (gnatbind)
7371         Document how to do reliable stack checking for the environmental task
7372         on iVMS.
7373
7374         * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
7375         Document attribute Excluded_Source_Files and indicate that attribute
7376         Locally_Removed_Files is obsolescent.
7377
7378 2007-10-15  Thomas Quinot  <quinot@adacore.com>
7379
7380         * g-soccon-vms.ads: Fix value of MSG_WAITALL.
7381
7382         * gen-soccon.c: 
7383         Update documentation to note that OpenVMS 8.3 or later must be used
7384         to generate g-soccon-vms.ads.
7385
7386         * atree.adb: Add ??? comment
7387
7388         * exp_util.adb: Minor reformatting.
7389         Add ??? comment in Kill_Dead_Code.
7390
7391 2007-10-15  Robert Dewar  <dewar@adacore.com>
7392
7393         * errout.ads: Comment clarification
7394
7395         * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
7396         (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
7397
7398         * lib.ads: Comment update
7399
7400         * init.c: Minor reformatting.
7401
7402         * sem_attr.adb: Minor formatting
7403
7404         * osint-b.ads: Minor reformatting
7405
7406         * sem_ch9.adb: Implement -gnatd.I switch
7407
7408         * g-comlin.adb: (Start): Fix handling of empty command line.
7409
7410         * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
7411         even when -rules follows the -cargs section.
7412
7413 2007-10-08  Ollie Wild  <aaw@google.com>
7414
7415         * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
7416         gnat_return_tree.
7417         (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
7418         gnat_return_tree.
7419         (gnat_eh_runtime_type): Removed.
7420         (gnat_return_tree): New function.
7421
7422 2007-10-08  Ben Elliston  <bje@au.ibm.com>
7423
7424         PR ada/33454
7425         Revert:
7426         2007-08-31  Ben Elliston  <bje@au.ibm.com>
7427
7428         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
7429         when compiling for powerpc64-*-linux.
7430         * system-linux-ppc64.ads: New file.
7431
7432 2007-09-27  Eric Botcazou  <ebotcazou@adacore.com>
7433
7434         Mapped location support
7435         * back_end.adb (Call_Back_End): Pass information about source
7436         files instead of units to gigi.
7437         * gigi.h (struct File_Info_Type): New.
7438         (gigi): Rename and change type of number_units parameter, change
7439         type of file_info_ptr parameter.
7440         * trans.c (number_files): New global variable.
7441         (gigi): Rename and change type of number_units parameter, change
7442         type of file_info_ptr parameter.
7443         If mapped location support is enabled, create the isomorphic mapping
7444         between source files and line maps.
7445         (Sloc_to_locus): If mapped location support is enabled, translate
7446         source location into mapped location.
7447         (annotate_with_node): Rename into set_expr_location_from_node.
7448         Call set_expr_location instead of annotate_with_locus.
7449         (Pragma_to_gnu): Adjust for above change.
7450         (Loop_Statement_to_gnu): Likewise.
7451         (call_to_gnu): Likewise.
7452         (Handled_Sequence_Of_Statements_to_gnu): Likewise.
7453         (gnat_to_gnu): Likewise.
7454         (add_stmt_with_node): Likewise.
7455         (add_cleanup): Likewise.
7456         * utils.c (gnat_init_decl_processing): Do not set input_line.
7457
7458 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
7459
7460         * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
7461         (Applicable_Use): Emit a warning when a package tries to use itself.
7462         (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
7463         is already in use or the package where it is declared is in use or is
7464         declared in the current package.
7465         (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
7466
7467         * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
7468         s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
7469         s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
7470
7471 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
7472
7473         * a-calend-vms.adb, a-calend.adb: 
7474         Add a section on leap seconds control along with two entities used to
7475         enable and disable leap seconds support. The array Leap_Second_Times is
7476         now constant and contains hard time values pre-generated. Remove
7477         all elaboration code used to populate the table of leap seconds.
7478
7479         * bindgen.adb: 
7480         Add entity Leap_Seconds_Support to the list of global run-time variables
7481         along with a comment on its usage and values.
7482         (Gen_Adainit_Ada): Add code to generate the declaration and import of
7483         Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
7484         or one (enabled) depending on the presence of binder switch "-y".
7485         (Gen_Adainit_C): Add code to generate the declaration of external int
7486         __gl_leap_seconds_support. Set is value to zero (disabled) or one
7487         (enabled) depending on the presence of binder switch "-y".
7488
7489         * init.c: Add __gl_leap_seconds_support to the list of global values
7490         computed by the binder.
7491
7492 2007-09-26  Jerome Guitton  <guitton@adacore.com>
7493
7494         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
7495         s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
7496          s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
7497         s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
7498
7499         * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
7500
7501         * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
7502         function which can be called by the debugger to interrupt the tasks of
7503         an Ada application asynchronously, as needed on VxWorks.
7504         (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
7505
7506         * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
7507         renamed from Stop_All_Tasks. Update comments.
7508         (Stop_All_tasks): New function declaration.
7509
7510 2007-09-26  Olivier Hainque  <hainque@adacore.com>
7511
7512         * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
7513         #include <utime.h> and #define GCC_RESOURCE_H before
7514         #include <sys/wait.h>.
7515         Add more protections in __gnat_translate_vms.
7516
7517         * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
7518         #include <sys/wait.h>.
7519
7520 2007-09-26  Thomas Quinot  <quinot@adacore.com>
7521             Sergey Rybin  <rybin@adacore.com>
7522
7523         * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
7524
7525         * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
7526         where it belongs.
7527
7528         * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
7529
7530         * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
7531         where it belongs.
7532
7533         * sem_dist.ads: Minor comment fix
7534
7535         * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
7536
7537 2007-09-26  Javier Miranda  <miranda@adacore.com>
7538             Eric Botcazou  <ebotcazou@adacore.com>
7539
7540         * a-tags.adb: 
7541         (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
7542          indirection added to the HT_Link component of the TSD. This is required
7543          to statically allocate the TSD.
7544
7545         * a-tags.ads: 
7546         Minor reordering of the declarations in the private part. Required to
7547         add a level of indirection to the contents of the TSD component HT_Link.
7548         This is required to statically allocate the TSD.
7549
7550         * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
7551         Is_Statically_Allocated set from constant objects.
7552         Do not make exported constants created by the compiler volatile.
7553         (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
7554         as read-only.
7555
7556         * trans.c (Identifier_to_gnu): For constants, unshare initializers
7557         before returning them.
7558
7559         * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
7560         public part of the package.
7561         (Make_DT): Move HT_Link component out of the TSD record. For this
7562         purpose Make_DT now declares a separate object that stores the
7563         HT_Link value, and initializes the TSD component with the address
7564         of this new object. The addition of this level of indirection is
7565         required to statically allocate the TSD because the TSD cannot
7566         have variable components.
7567         (Expand_Interface_Conversion): Improve the expanded code.
7568         (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
7569
7570         * sem_disp.adb (Check_Dispatching_Operation): In case of a body
7571         declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
7572         if we are building static dispatch tables then we must not generate
7573         extra code to register the primitive because the dispatch table will
7574         be built at the end of the library package; otherwise we notify that
7575         we cannot build the static dispatch table.
7576
7577 2007-09-26  Robert Dewar  <dewar@adacore.com>
7578
7579         * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
7580         overlays.
7581
7582         * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
7583         (Analyze_Record_Representation_Clause): Suppress junk warning for
7584         missing component clause.
7585         (Analyze_Attribute_Definition_Clause, case Address): Apply the special
7586         tests for controlled type overlay to composites with controlled
7587         components.
7588         (Analyze_Record_Representation_Clause): Add reference for component name
7589
7590 2007-09-26  Javier Miranda  <miranda@adacore.com>
7591             Gary Dismukes  <dismukes@adacore.com>
7592
7593         * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
7594         for thunks associated with interface types.
7595
7596         * einfo.ads: Improve documentatation of Is_Internal
7597         (Is_Thunk): New attribute applicable to subprograms. True for thunks
7598         associated with interface types.
7599         Extensive comment fixes regarding flags that appear in all entities. The
7600         documentation is now consistent for all such flags (there were a number
7601         of errors in the documentation in this regard).
7602
7603         * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
7604
7605         * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
7606         of these procedures are passed a function call that already has
7607         build-in-place actuals (testing new flag
7608         Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
7609         the case where processing continues.
7610         (Expand_Call): If the call is generated from a thunk body then we
7611         propagate the extra actuals associated with the accessibility
7612         level of the access type actuals.
7613
7614         * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
7615         of each extra formal of a protected operation to reference the
7616         corresponding extra formal of the subprogram denoted by the
7617         operation's Protected_Body_Subprogram.
7618         
7619         * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
7620         N_Function_Call nodes.
7621
7622 2007-09-26  Robert Dewar  <dewar@adacore.com>
7623
7624         * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
7625
7626         * debug.adb: Add d.s flag.
7627
7628 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
7629
7630         * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
7631         debug variable so that it won't be initialized when pragma
7632         Initialize_Scalars is in effect.
7633
7634 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
7635
7636         * freeze.adb (Freeze_Entity): Remove check for preelaborable
7637         initialization of a full view. This is moved to
7638         Analyze_Package_Specification.
7639
7640         * sem_ch7.adb (Analyze_Package_Specification): Add check for
7641         preelaborable initialization of a full view in entity loop.
7642         (Uninstall_Declarations): If entity is a use-visible compilation unit,
7643         its child units are use-visible only if they are visible child units.
7644
7645         * sem_util.adb (Is_Preelaborable_Expression): New function to determine
7646         whether an expression can be used within a type declaration that
7647         requires preelaborable init.
7648         (Check_Components): Replace inline code that does partial checking for
7649         preelaborable default expressions with call to
7650         Is_Preelaborable_Expression.
7651         (Has_Preelaborable_Initialization): In the case of a generic actual
7652         subtype, (that is, Is_Generic_Actual is True), return the result of
7653         applying Has_Preelaborable_Initialization to the generic actual's base
7654         type.
7655
7656 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
7657
7658         * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
7659         call to Jan_1_Day _Of_Week to optimize its performance.
7660         (Is_Leap): Move the routine to the scope of Week_In_Year.
7661         (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
7662         weekday on which January 1 falls of Year - 1 and Year + 1. This function
7663         avoids calling Time_Of and Split, thus making it more efficent.
7664         (Week_In_Year): Reimplemented in oder to follow ISO 8601.
7665
7666         * g-calend.ads (Week_In_Year): Change comment to reflect new
7667         implementation.
7668
7669 2007-09-26  Emmanuel Briot  <briot@adacore.com>
7670
7671         * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
7672         Command_Line): New types
7673         (Define_Alias, Define_Prefix, Free): New subprograms. These provide
7674         support for defining how switches can be grouped on a command line (as
7675         is the case for -gnatw... for GNAT), and how simple switches can be
7676         used as aliases for more complex switches (-gnatwa is same as
7677         -gnatwbcef...)
7678         (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
7679         (Start, Current_*): New subprograms
7680         Added support for parsing an array of strings in addition to the real
7681         command line.
7682         (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
7683          be moved from the body to the private part of the spec.
7684         (*): All subprograms now have an extra parameter with default value to
7685         specify which parser should be used. For backward compatibility, it
7686         defaults to parsing the command line of the application. They were also
7687         modified to properly handle cases where each of the argument does not
7688         start at index 1 (which is always true for Ada.Command_Line, but not
7689         when processing any Argument_List).
7690         (Free): New subprogram
7691         (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
7692         Argument): New subprograms
7693         (Switch_Parameter_Type): New enum, which clarifies the code. The extra
7694         special characters like ':', '=',... are now handled in a single place,
7695         which makes the code more extensible eventually.
7696         (Getopt, Full_Switch): When the switch was returned as part of the
7697         special character '*', make sure it is prepended by the switch character
7698         ('-' in general), so that the application knows whether "foo" or "-foo"
7699         was specified on the command line.
7700
7701 2007-09-26  Florian Villoing  <villoing@adacore.com>
7702
7703         * g-dirope.adb (Remove_Dir): In case we are removing directories
7704         recursively, make sure that if an exception is raised during the
7705         processing, the current working directory is reset to its initial
7706         value before propagating the exception.
7707
7708 2007-09-26  Vincent Celier  <celier@adacore.com>
7709
7710         * gnatbind.adb: If there are several ALI files specified and there is
7711         a main program to bind, the first ALI is expected to contain the main
7712         subprogram and the names of the binder generated files will be derived
7713         from the first ALI file name.
7714         (Gnatbind): Fix insertion character in invocation of Error_Msg
7715
7716 2007-09-26  Vincent Celier  <celier@adacore.com>
7717
7718         * gnatcmd.adb (Check_Files): Do not include sources that have been
7719         removed by attributes Exclude_Source_Files or Locally_Removed_Files.
7720
7721 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
7722
7723         * lib-xref.ads, lib-xref.adb: The entry for array types now carries
7724         information about each of its index types, following the type
7725         reference for its component type.
7726
7727 2007-09-26  Vincent Celier  <celier@adacore.com>
7728
7729         * make.adb: (Kill): New procedure (__gnat_kill imported)
7730         (Running_Compile, Outstanding_Compiles): Global variables that
7731         were previously local to procedure Compile_Sources.
7732         (Sigint_Intercepted): Send signal SIGINT to all outstanding
7733         compilation processes.
7734
7735         (Gnatmake): If project files are used, create the mapping of all the
7736         sources, so that the correct paths will be found.
7737
7738         * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
7739
7740 2007-09-26  Vincent Celier  <celier@adacore.com>
7741
7742         * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
7743
7744         * prj.ads, prj.adb (Default_Language): Remove function, no longer used
7745         Replace components Compiler_Min_Options and Binder_Min_Options with
7746         Compiler_Required_Switches and Binder_Required_Switches in record
7747         Language_Config.
7748         Remove components Default_Language and Config in Project_Tree_Data,
7749         no longer used.
7750
7751         * prj-attr.adb: New attributes Required_Switches (<language>) in
7752         packages Compiler and Binder.
7753
7754         * prj-nmsc.adb: Major rewrite of the processing of configuration
7755         attributes for gprbuild. No impact on GNAT tools.
7756
7757         * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
7758         process configuration attributes: this is done in Prj.Nmsc.Check.
7759         (Recursive_Process): Make a full copy of packages inherited from project
7760         being extended, instead of a shallow copy.
7761         (Process_Project_Tree_Phase_1): New procedure
7762         (Process_Project_Tree_Phase_1): New procedure
7763         (Process): Implementation now uses the two new procedures
7764
7765         * prj-util.adb (Executable_Of): Get the suffix and the default suffix
7766         from the project config, not the tree config that no longer exists.
7767
7768 2007-09-26  Vincent Celier  <celier@adacore.com>
7769
7770         * Make-lang.in: Update dependencies..
7771
7772 2007-09-26  Vincent Celier  <celier@adacore.com>
7773
7774         * osint.adb, osint.ads: Minor reformatting
7775
7776         * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
7777
7778 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
7779
7780         * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
7781         message to cite use of <> in aggregate component associations rather
7782         than wrongly indicating use of limited aggregates.
7783
7784 2007-09-26  Robert Dewar  <dewar@adacore.com>
7785
7786         * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
7787         Address_Taken.
7788
7789 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
7790
7791         * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
7792         ancestor of the derived type, the operations are inherited from the
7793         primary dispatch table of the parent.
7794         (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
7795         when the context is an explicit type conversion.
7796
7797 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
7798
7799         * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
7800         rule for qualified expressions properly, to detect improper conversions
7801         and resolve some cases of overloading.
7802
7803 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
7804
7805         * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
7806         proper kind of reference to the primitive operation, for better source
7807         navigation.
7808         (Valid_Conversion): A tagged conversion is legal if both operands are
7809         tagged.
7810
7811 2007-09-26  Robert Dewar  <dewar@adacore.com>
7812
7813         * sem_warn.adb (Check_References): Catch more cases of unreferenced
7814         packages.
7815
7816 2007-09-26  Vincent Celier  <celier@adacore.com>
7817
7818         * snames.adb, snames.ads: Change Include_Option to Include_Switches
7819
7820 2007-09-26  Robert Dewar  <dewar@adacore.com>
7821
7822         * s-wchstw.adb: provide messages for run time unit exceptions
7823
7824         * a-witeio.adb: Minor reformatting
7825
7826         * exp_ch13.adb: Minor reformatting
7827
7828 2007-09-26  Sergey Rybin  <rybin@adacore.com>
7829
7830         * vms_data.ads: Revise gnatmetric qualifiers.
7831         Add qualified for the new gnatbind option '-y'
7832
7833         * gnat_ugn.texi: Revise the gnatmetric section.
7834         Add entry for new gnatbind option '-y'.
7835
7836         * gnat_rm.texi: Minor spelling correction.
7837         Document restriction on overlaying controlled types
7838
7839 2007-09-26  Vincent Celier  <celier@adacore.com>
7840
7841         * makegpr.adb (Link_Executables): Do not fail when the root project has
7842         no sources, but is an extending project.
7843
7844 2007-09-25  Eric Botcazou  <ebotcazou@adacore.com>
7845
7846         * trans.c: Fix misplaced #define.
7847
7848 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
7849
7850         * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
7851         the TYPE_REF_CAN_ALIAS_ALL flag to the result.
7852
7853 2007-09-21  Olivier Hainque  <hainque@adacore.com>
7854
7855         * utils.c (type_for_nonaliased_component_p): Return false for
7856         all AGGREGATE_TYPEs.
7857
7858 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
7859
7860         * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
7861         object covered by 13.3(19) volatile.
7862
7863 2007-09-12  Eric Botcazou  <ebotcazou@adacore.com>
7864
7865         PR ada/26797
7866         PR ada/32407
7867         * utils.c (unchecked_convert): Use a subtype as the intermediate type
7868         in the special VIEW_CONVERT_EXPR case.
7869
7870 2007-09-12  Robert Dewar  <dewar@adacore.com>
7871
7872         * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
7873
7874         * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
7875         lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
7876         s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
7877         s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
7878         s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
7879         s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
7880         s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
7881         s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
7882         a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads, 
7883         g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads, 
7884         s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb, 
7885         s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb, 
7886         snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads, 
7887         s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads, 
7888         s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads, 
7889         s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads, 
7890         s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
7891         pragma Compiler_Unit and adds it to relevant library units.
7892
7893 2007-09-12  Ed Schonberg  <schonberg@adacore.com>
7894
7895         * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
7896         a box need not correspond to any component.
7897
7898 2007-09-12  Robert Dewar  <dewar@adacore.com>
7899
7900         * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
7901         the tasking version of the Ada run time when foreign threads are
7902         present and there are no explicit Ada tasks or tasking constructs.
7903
7904         * gnat_rm.texi: Clarify documentation of GNAT.Threads.
7905
7906 2007-09-12  Hristian Kirtchev  <kirtchev@adacore.com>
7907
7908         * bindusg.adb (Display): Correct comment for switch -X. Add a line for
7909         the usage of switch -y.
7910
7911         * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
7912         when switch -y is present.
7913
7914         * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
7915         leap seconds in Ada.Calendar and its children.
7916
7917 2007-09-12  Jose Ruiz  <ruiz@adacore.com>
7918
7919         * a-extiti.ads (Timer): The discriminant is a "not null access
7920         constant" in the Reference Manual.
7921         (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
7922
7923 2007-09-12  Robert Dewar  <dewar@adacore.com>
7924
7925         * a-swuwha.adb: Remove junk RM header
7926
7927 2007-09-12  Vincent Celier  <celier@adacore.com>
7928
7929         * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
7930         indicator
7931
7932         * g-bytswa.ads: Minor reformatting
7933
7934 2007-09-12  Thomas Quinot  <quinot@adacore.com>
7935
7936         * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads: 
7937         Add new constant Thread_Blocking_IO, always True by default, set False
7938         on a per-runtime basis.
7939         (Need_Netdb_Buffer): New constant.
7940
7941 2007-09-12  Arnaud Charlet  <charlet@adacore.com>
7942
7943         * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
7944         Added renames for corresponding functions in System.Partition_Interface.
7945
7946 2007-09-12  Doug Rupp  <rupp@adacore.com>
7947
7948         * Makefile.in: Remove VMS specific System.CRTL packages which are no
7949         longer needed.
7950
7951         * s-crtl-vms64.ads: Removed.
7952
7953 2007-09-12  Olivier Hainque  <hainque@adacore.com>
7954
7955         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
7956         with discriminant constraints, generalize the code for BIT_FIELDs
7957         to PACKED fields of constant size and propagate DECL_PACKED.
7958
7959 2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
7960
7961         * decl.c (array_type_has_nonaliased_component): New predicate.
7962         (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
7963         set the TYPE_NONALIASED_COMPONENT flag on the type.
7964         <E_Array_Subtype>: Likewise.
7965         * gigi.h (type_for_nonaliased_component_p): Declare.
7966         * utils.c (type_for_nonaliased_component_p): New predicate.
7967         (create_field_decl): Invoke the above predicate to set the
7968         DECL_NONADDRESSABLE_P flag on the field.
7969
7970 2007-09-11  Javier Miranda  <miranda@adacore.com>
7971
7972         * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
7973         in library level record type entities if we are generating statically
7974         allocated dispatch tables.
7975
7976         * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
7977         importing/exporting the _tag declaration by new code
7978         importing/exporting the dispatch table wrapper. This change allows us
7979         to statically allocate of the TSD.
7980         (Make_DT.Export_DT): New procedure.
7981         (Build_Static_DT): New function.
7982         (Has_DT): New function.
7983
7984         * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
7985         True_Constant and Current_Value. Required to statically
7986         allocate the dispatch tables.
7987         (Check_Allocator): Make function iterative instead of recursive.
7988         Also return inner allocator node, when present, so that we do not have
7989         to look for that node again in the caller.
7990
7991 2007-09-11  Jan Hubicka  <jh@suse.cz>
7992
7993         * misc.c (gnat_expand_body): Kill.
7994         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
7995
7996 2007-09-10  Robert Dewar  <dewar@adacore.com>
7997
7998         * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
7999         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
8000         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
8001         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
8002         ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
8003         bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
8004         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
8005         butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
8006         comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
8007         elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
8008         err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
8009         exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
8010         exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
8011         exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
8012         exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
8013         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
8014         exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
8015         exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
8016         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
8017         exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
8018         exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
8019         exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
8020         fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
8021         get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
8022         gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
8023         gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
8024         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
8025         gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
8026         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
8027         gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
8028         inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
8029         lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
8030         lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
8031         make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
8032         mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
8033         mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
8034         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
8035         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
8036         osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
8037         osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
8038         par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
8039         par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
8040         par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
8041         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
8042         par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
8043         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
8044         prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
8045         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
8046         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
8047         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
8048         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
8049         prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
8050         rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
8051         scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
8052         sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
8053         sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
8054         sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
8055         sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
8056         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
8057         sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
8058         sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
8059         sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
8060         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
8061         sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
8062         sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
8063         sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
8064         sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
8065         sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
8066         stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
8067         styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
8068         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
8069         switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
8070         tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
8071         treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
8072         types.h, uintp.h, urealp.h, usage.adb, usage.ads,
8073         validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
8074         xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
8075         xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
8076         gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
8077         mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
8078         symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
8079         mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
8080         mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
8081
8082 2007-09-10  Emmanuel Briot  <briot@adacore.com>
8083
8084         * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
8085         classes ("[]").
8086
8087 2007-09-10  Vasiliy Fofanov  <fofanov@adacore.com>
8088
8089         * adaint.c (__gnat_translate_vms): new function.
8090
8091 2007-09-10  Gary Dismukes  <dismukes@adacore.com>
8092             Thomas Quinot  <quinot@adacore.com>
8093
8094         * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
8095         create an abstract subprogram in the case of 'Input. For 'Output we now
8096         create a real spec/body when the type is abstract, since it can
8097         potentially be called.
8098         (Predefined_Primitive_Bodies): Now allow the creation of a predefined
8099         body for 'Output when the type is abstract (only the creation of the
8100         body for 'Input is excluded when the type is abstract).
8101         (Stream_Operation_OK): Add an additional condition in the return
8102         statement, so that False will be returned for TTS_Stream_Input if the
8103         associated tagged type is an abstract extension. Add comments for
8104         return statement.
8105         (Expand_N_Object_Declaration): For the case of a shared passive
8106         variable, insert init proc call only after the shared variable
8107         procedures have been processed, because the IP call needs to undergo
8108         shared passive variable reference expansion, which requires these
8109         procedures to be available (and elaborated).
8110
8111 2007-09-10  Vincent Celier  <celier@adacore.com>
8112
8113         * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
8114         parameter Runtime_Project.
8115
8116 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
8117
8118         * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
8119         given a box association, the type of the component is discriminated,
8120         and the value of the discriminant is the discriminant of the enclosing
8121         type, retrieve its value from the aggregate itself, where it must have
8122         been supplied.
8123
8124         * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
8125         to remove other spurious ambiguities on arithmetic operations involving
8126         literals and addresses, on systems where Address is a visible integer
8127         type, when the operator is called in functional notation.
8128         (Try_Primitive_Operation): Within an instance, a call in prefixed form
8129         is legal when the types match, even if the operation is currently
8130         hidden.
8131
8132 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
8133
8134         * sem_ch12.adb (Build_Local_Package): A formal package with no
8135         associations is legal if all formals have defaults. It is not
8136         equivalent to a formal declared with a box.
8137
8138 2007-09-10  Sergey Rybin  <rybin@adacore.com>
8139
8140         * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
8141
8142 2007-09-10  Sergey Rybin  <rybin@adacore.com>
8143
8144         * gnat_ugn.texi: Add description of the new '-lratio' option
8145         Update 7.3.1 section about availability of the feature.
8146
8147 2007-09-10  Thomas Quinot  <quinot@adacore.com>
8148
8149         * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
8150         inserted node.
8151
8152 2007-09-10  Olivier Hainque  <hainque@adacore.com>
8153
8154         * Makefile.in: (mips-irix section): Activate build of libgmem.
8155
8156 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
8157
8158         * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
8159         x87 registers.
8160
8161 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
8162
8163         * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
8164         a debug renaming declaration specially.
8165
8166 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
8167
8168         * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
8169         which a constant renaming is treated as a normal object declaration.
8170         * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
8171         the N_Indexed_Component case.
8172         <N_Indexed_Component>: Fall through to above case.
8173         <N_Object_Renaming_Declaration>: Return true for all composite types.
8174
8175 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
8176
8177         * decl.c (make_packable_type): If the new type has been given BLKmode,
8178         try again to get an integral mode for it.
8179
8180 2007-09-07  Eric Botcazou  <ebotcazou@adacore.com>
8181
8182         Re-apply accidentally reverted change:
8183
8184         2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
8185
8186         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
8187         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
8188         and _Unwind_SWord with _sleb128_t.
8189
8190 2007-09-06  Eric Botcazou  <ebotcazou@adacore.com>
8191
8192         * trans.c (convert_with_check): Update call to real_2expN.
8193
8194 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
8195
8196         * trans.c (Compilation_unit_to_gnu): Use set_cfun.
8197         * utils.c (end_subprog_body): Likewise.
8198
8199 2007-09-03  Nick Clifton  <nickc@redhat.com>
8200
8201         * Make-lang.in: Change copyright header to refer to version 3 of
8202         the GNU General Public License and to point readers at the
8203         COPYING3 file and the FSF's license web page.
8204         * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
8205         Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
8206         namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
8207         treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
8208         Likewise.
8209
8210 2007-08-31  Vincent Celier  <celier@adacore.com>
8211
8212         PR ada/4720
8213
8214         * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb, 
8215         gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
8216         (Check_Version_And_Help): New procedure in package Switch to process
8217         switches --version and --help.
8218         Use Check_Version_And_Help in GNAT tools
8219
8220         * make.adb:  Ditto.
8221         (Compile_Sources): Make sure that sources that are "excluded" are not
8222         compiled.
8223         (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
8224         project file is used.
8225         (Version_Switch): Remove, moved to Switch
8226         (Help_Switch): Remove, moved to Switch
8227         (Display_Version): Remove, moved to Switch
8228
8229         * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
8230         package Switch to process switches --version and --help.
8231         (Display_Version): New procedure
8232
8233         * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
8234
8235 2007-08-31  Javier Miranda  <miranda@adacore.com>
8236
8237         * a-tags.adb (Internal_Tag): Protect the run-time against wrong
8238         internal tags.
8239
8240 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
8241
8242         * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
8243         (Mark_Non_Null): If the node for which we just generated an access check
8244         is a reference to an *in* parameter and the reference appears in the
8245         declarative part of a subprogram body, mark the node as known non null.
8246
8247 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
8248
8249         * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
8250         structure of E_Exception to reflect the new flag.
8251         (Is_Raised, Set_Is_Raised): New inlined routines.
8252         Update the usage of available flag to reflect the addition of Is_Raised.
8253         (Is_Raised, Set_Is_Raised): Bodies of new routines.
8254         (Write_Entity_Flags): Write the status of flag Is_Raised.
8255         (Is_Descendent_Of_Address): New entity flag, to simplify handling of
8256         spurious ambiguities when integer literals appear in the context of an
8257         address type that is a visible integer type.
8258
8259         * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
8260         exceptions never being raised.
8261         (Analyze_Raise_Statement): When analyzing an exception, mark it as being
8262         explicitly raised.
8263
8264 2007-08-31  Javier Miranda  <miranda@adacore.com>
8265
8266         * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
8267         statement when compiling under restriction No_Exceptions_Proparation.
8268
8269 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
8270
8271         * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
8272         initialization aggregate for the type, generate itype references for
8273         thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
8274
8275 2007-08-31  Gary Dismukes  <dismukes@adacore.com>
8276
8277         * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
8278         library-level package renaming, pass the declaration associated with
8279         the renaming's special debug variable to Qualify_Entity_Names to ensure
8280         that its encoded name is properly qualified.
8281
8282         * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
8283         occurring in the list of entities to qualify, and do not attempt to
8284         traverse an entity list in that case. Variables associated with
8285 `       library-level package renamings can now occur in the table.
8286
8287         * exp_dbug.ads: Revise documentation of the encoding for renaming
8288         declarations.
8289
8290 2007-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8291
8292         * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
8293         access type points to an unconstrained array.
8294
8295 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
8296
8297         * restrict.adb, namet.adb, par-util.adb: Remove redundant type
8298         conversion.
8299
8300         * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
8301         simple redundant qualifications. The check is performed whenever the
8302         expression is a non-overloaded identifier.
8303         (Resolve_Type_Conversion): Enchance the redundant type conversion check
8304         to include loop parameters.
8305         (Valid_Conversion): Avoid generation of spurious error message.
8306
8307 2007-08-31  Bob Duff  <duff@adacore.com>
8308
8309         * par-ch4.adb (P_Simple_Expression): Fold long sequences of
8310         concatenations of string literals into a single literal, in order to
8311         avoid very deep recursion in the front end, which was causing stack
8312         overflow.
8313
8314         * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
8315         string, and the right operand is a string literal (the case of "" &
8316         "..."), optimize by avoiding copying the right operand -- just use the
8317         value of the right operand directly.
8318
8319         * stringt.adb (Store_String_Chars): Optimize by growing the
8320         String_Chars table all at once, rather than appending characters one by
8321         one.
8322         (Write_String_Table_Entry): If the string to be printed is very long,
8323         just print the first few characters, followed by the length. Otherwise,
8324         doing "pn(n)" in the debugger can take an extremely long time.
8325
8326         * sem_prag.adb (Process_Interface_Name): Replace loop doing
8327         Store_String_Char with Store_String_Chars.
8328
8329 2007-08-31  Vincent Celier  <celier@adacore.com>
8330
8331         * prj-attr.adb: Add new attribute Excluded_Source_Files
8332
8333         * prj-nmsc.adb: Use attribute Excluded_Source_Files before
8334         Locally_Removed_Files.
8335
8336         * snames.ads, snames.adb: New standard name Excluded_Source_Files
8337
8338 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
8339
8340         * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
8341         clauses of subunits, ignore limited_with_clauses that are illegal and
8342         have not been fully analyzed.
8343
8344 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
8345
8346         * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
8347         flag, for effiency. It is called when analyzing arithmetic operators
8348         and also for actuals in calls that are universal_integers. The flag is
8349         set for the predefined type address, and for any type or subtype
8350         derived from it.
8351
8352         * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
8353         Universal_Integer, when the formal is a descendent of address and the
8354         call appears in user code.
8355         (Analyze_Selected_Component): if the prefix is a private extension, the
8356         tag component is visible.
8357
8358         * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
8359         entity flag.
8360
8361 2007-08-31  Robert Dewar  <dewar@adacore.com>
8362
8363         * s-fileio.adb (Open): Normalize file name to lower case in non-case
8364         sensitive file name systems to avoid unexpected mismatch in Vista.
8365
8366 2007-08-31  Vincent Celier  <celier@adacore.com>
8367
8368         * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
8369
8370 2007-08-31  Vincent Celier  <celier@adacore.com>
8371
8372         * symbols-vms.adb (Initialize): Read symbol files with continuation
8373         lines
8374         (Finalize): If symbol is long, split the line
8375
8376 2007-08-31  Vincent Celier  <celier@adacore.com>
8377
8378         * fmap.ads: Minor comment updates
8379
8380 2007-08-31  GNAT Script  <nobody@adacore.com>
8381
8382         * Make-lang.in: Makefile automatically updated
8383
8384 2007-08-31  Bob Duff  <duff@adacore.com>
8385
8386         * sinfo.ads: Minor comment fix.
8387
8388 2007-08-31  Thomas Quinot  <quinot@adacore.com>
8389
8390         * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
8391         with implementation.
8392         Documentation cleanup only.
8393
8394 2007-08-31  Sergey Rybin  <rybin@adacore.com>
8395
8396         * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
8397         gnatpp '--separate-stmt-name' option.
8398         Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
8399         option.
8400
8401         * gnat_ugn.texi: Add description for the new gnatpp
8402         '--separate-stmt-name' and '--use-on-new-line' options.
8403
8404 2007-08-31  Ben Elliston  <bje@au.ibm.com>
8405
8406         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
8407         when compiling for powerpc64-*-linux.
8408         * system-linux-ppc64.ads: New file.
8409
8410 2007-08-22  Krister Walfridsson  <cato@df.lth.se>
8411
8412         * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
8413         NetBSD.
8414
8415 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8416
8417         * misc.c (gnat_type_max_size): Constify.
8418
8419 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
8420
8421         * cstand.adb (Create_Standard): Create an entity for a zero-sized type
8422         associated with Standard_Debug_Renaming_Type, to be used as the type of
8423         the special variables whose names provide debugger encodings for
8424         renaming declarations.
8425
8426         * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
8427         (Set_Debug_Renaming_Link): Change to set Node25.
8428         (Write_Field13_Name): Remove case for E_Enumeration_Literal.
8429         (Write_Field25_Name): Add case for E_Variable to output
8430         "Debug_Renaming_Link".
8431         (Write_Field23_Name): Correct the output string for "Limited_View".
8432
8433         * exp_dbug.adb: Add with and use of Tbuild.
8434         (Debug_Renaming_Declaration): Replace creation of an enumeration type
8435         and literal with creation of a variable of type
8436         Standard_Debug_Renaming_Type whose name encodes both the renamed object
8437         and the entity of the renaming declaration.
8438         (Qualify_Entity_Name): Add the delayed qualification of the entity name
8439         part of the name of a variable that has a Debug_Renaming_Link.
8440
8441         * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
8442         special type to be associated with variables that provide debugger
8443         encodings for renaming declarations.
8444
8445 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
8446             Ed Schonberg  <schonberg@adacore.com>
8447             Javier Miranda  <miranda@adacore.com>
8448
8449         * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
8450         ancestor part given by an aggregate to test for an unchecked conversion,
8451         since this can occur in some cases when the ancestor part is a function
8452         call, and we don't want to fall into the recursive call to this
8453         procedure in that case.
8454
8455         * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
8456         stream attributes on limited types to account for user-specified
8457         attributes as well as whether Input (resp. Output) becomes available
8458         due to Read (resp. Write) being available for the type. Change Boolean
8459         variable to the more accurate name
8460         Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
8461         double-"not" predicate at beginning of return statement to more
8462         understandable form.
8463
8464         * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
8465         return has an associated N_Handled_Sequence_Of_Statements, then wrap it
8466         in a block statement and use that as the first statement of the
8467         expanded return rather than incorrectly using the handled sequence as
8468         the first statement.
8469
8470         * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
8471         operation, generate an explicit freeze node for it rather than
8472         generating extra formals, to ensure that gigi has the proper order of
8473         elaboration for anonymous subtypes in the signature of the subprograms.
8474         (Build_In_Place_Formal): Move assertion to beginning of loop.
8475         (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
8476         applied to a function call (occurs for some cases of 'Input).
8477         (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
8478         applied to a function call (occurs for some cases of 'Input).
8479
8480         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
8481         2005, generate an extended return statement enclosing the result object
8482         and 'Read call.
8483
8484         * freeze.adb (Freeze_Record_Type): Extend the current management of
8485         components that are access type with an allocator as default value: add
8486         missing support to the use of qualified expressions of the
8487         allocator (which also cause freezing of the designated type!)
8488         (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
8489         dispatching operation, since extra formals may be needed by calls to
8490         build-in-place functions (such as stream 'Input).
8491
8492         * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
8493         formals for 'Constrained and accessibility level in the case of a
8494         predefined dispatching operation.
8495
8496         * exp_util.adb (Insert_Actions): A protected body is a valid insertion
8497         point, no need to find the parent node.
8498
8499 2007-08-16  Javier Miranda  <miranda@adacore.com>
8500
8501         * exp_attr.adb (Attribute_Priority): Add missing support for entries
8502         and entry barriers.
8503
8504 2007-08-16  Javier Miranda  <miranda@adacore.com>
8505
8506         * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
8507         is not really required and can introduce regression with the debugger.
8508         The original problem is fixed with the patch written for checks.adb.
8509
8510 2007-08-16  Thomas Quinot  <quinot@adacore.com>
8511
8512         * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
8513         Range_Check on Allocated_Table.
8514
8515 2007-08-16  Vincent Celier  <celier@adacore.com>
8516
8517         * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
8518         Including_Non_Switch set to False.
8519         (Gnatmake): For the compiler, call Test_If_Relative_Path with
8520         Including_Non_Switch set to False.
8521
8522         * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
8523         parameter Including_Non_Switch, defaulted to True. When
8524         Including_Non_Switch is False, options that are not switches and
8525         appear as relative path are not converted to absolute paths.
8526
8527 2007-08-16  Nicolas Roche  <roche@adacore.com>
8528
8529         * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
8530         makefiles
8531
8532         * Make-lang.in: Update dependencies
8533
8534 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
8535
8536         * sem_ch10.adb (Has_With_Clause): If the name of the with clause
8537         currently inspected is a selected component, retrieve the entity of
8538         its selector.
8539         (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
8540         from the immediate ancestor of Main_Unit_Entity.
8541         (Install_Limited_Withed_Unit): Do not install the limited view of
8542         package P if P is reachable through an ancestor chain from package C
8543         and C also has a with clause for P in its body.
8544         (Has_Limited_With_Clause): New routine.
8545         (Has_With_Clause): New routine.
8546
8547 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
8548
8549         * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
8550         generic for an enclosing instance is a global reference, even though
8551         its scope is the enclosing instance.
8552
8553 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
8554             Javier Miranda  <miranda@adacore.com>
8555
8556         * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
8557         initialize a limited object.
8558         (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
8559         13/2 and 14/2.
8560         Make sure Has_Complex_Representation is inherited by derived type.
8561
8562 2007-08-16  Robert Dewar  <dewar@adacore.com>
8563
8564         * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
8565         exception case
8566
8567 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
8568
8569         * sem_disp.adb (Check_Dispatching_Operation): If the operation
8570         implements an operation inherited from a progenitor interface, verify
8571         that they are subtype-conformant.
8572
8573 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
8574             Bob Duff  <duff@adacore.com>
8575             Nicolas Setton  <setton@adacore.com>
8576
8577         * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
8578         (Resolve): Alphabetize local variables. Add new variable From_Lib. When
8579         the statement which is being resolved comes from a predefined library
8580         unit, all non-predefined library interpretations are skipped.
8581         (Resolve_Op_Concat): If string concatenation was folded in the parser,
8582         but the "&" is user defined, give an error, because the folding would
8583         be wrong.
8584
8585         * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
8586         the parser has folded a long sequence of concatenations of string
8587         literals.
8588
8589         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
8590         and "JMP_BUF" variables as artificial.
8591         (N_String_Literal): Do not use alloca for very long string literals. Use
8592         xmalloc/free instead. Otherwise the stack might overflow.
8593
8594         * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
8595         compiler.
8596
8597 2007-08-16  Vincent Celier  <celier@adacore.com>
8598
8599         * vms_conv.adb (Process_Argument): Ensure that project related options
8600         are not put in the -cargs section when using GNAT COMPILE.
8601
8602 2007-08-16  Robert Dewar  <dewar@adacore.com>
8603
8604         * gnat_ugn.texi: Add note on preprocessing (output file not written)
8605
8606 2007-08-16  Thomas Quinot  <quinot@adacore.com>
8607
8608         * a-tags.adb: Minor reformatting.
8609
8610 2007-08-16  Bob Duff  <duff@adacore.com>
8611
8612         * sem_type.ads, sem_ch4.adb: Minor reformatting.
8613
8614 2007-08-14  Thomas Quinot  <quinot@adacore.com>
8615
8616         * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads, 
8617         s-osinte-interix.ads, system-interix.ads: Removed.
8618
8619 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
8620
8621         * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
8622         calls to Check_Within_Time_Bounds.
8623         ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
8624         (Difference): Account for possible rounding of the resulting difference
8625
8626 2007-08-14  Robert Dewar  <dewar@adacore.com>
8627
8628         * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
8629         par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
8630         s-osinte-solaris.adb, s-osinte-solaris.ads,
8631         s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
8632
8633         * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
8634         switch -gnatyS. Enable -gnatyS in GNAT style check mode
8635
8636 2007-08-14  Robert Dewar  <dewar@adacore.com>
8637             Ed Schonberg  <schonberg@adacore.com>
8638
8639         * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads: 
8640         Suppress unmodified in-out parameter warning in some cases
8641         This patch is a also fairly significant change to the way suppressible
8642         checks are handled.
8643
8644         * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
8645         needed for access to concurrent record types generated by the expander.
8646         (Generate_Range_Check): When generating a temporary to capture the
8647         value of a conversion that requires a range check, set the type of the
8648         temporary before rewriting the node, so that the type is always
8649         properly placed for back-end use.
8650         (Apply_Float_Conversion_Check): Handle case where the conversion is
8651         truncating.
8652         (Get_Discriminal): Code reformatting. Climb the scope stack looking
8653         for a protected type in order to examine its discriminants.
8654
8655 2007-08-14  Robert Dewar  <dewar@adacore.com>
8656             Gary Dismukes  <dismukes@adacore.com>
8657             Ed Schonberg  <schonberg@adacore.com>
8658             Thomas Quinot  <quinot@adacore.com>
8659
8660         * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb, 
8661         a-stwisu.adb, a-strsup.adb: Fix warnings for range
8662         tests optimized out.
8663
8664         * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
8665         (Get_Allocator_Final_List): For the case of an anonymous access type
8666         that has a specified Associated_Final_Chain, do not go up to the
8667         enclosing scope.
8668         (Expand_N_Type_Conversion): Test for the case of renamings of access
8669         parameters when deciding whether to apply a run-time accessibility
8670         check.
8671         (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
8672         aggregate code before allocator, and ahead of declaration for
8673         temporary, to prevent access before elaboration when the allocator is
8674         an actual for an access parameter.
8675         (Expand_N_Type_Conversion): On an access type conversion involving an
8676         access parameter, do not apply an accessibility check when the
8677         operand's original node was an attribute other than 'Access. We now
8678         create access conversions for the expansion of 'Unchecked_Access and
8679         'Unrestricted_Access in certain cases and clearly accessibility should
8680         not be checked for those.
8681
8682         * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
8683         includes a type conversion of a packed component that has been expanded,
8684         recover the original expression for the object, and use this expression
8685         in the post-call assignment statement, so that the assignment is made
8686         to the object and not to a back-end temporary.
8687         (Freeze_Subprogram): In case of primitives of tagged types not defined
8688         at the library level force generation of code to register the primitive
8689         in the dispatch table. In addition some code reorganization has been
8690         done to leave the implementation clear.
8691         (Expand_Call): When expanding an inherited implicit conversion,
8692         preserve the type of the inherited function after the intrinsic
8693         operation has been expanded.
8694
8695         * exp_ch2.ads, exp_ch2.adb
8696         (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
8697         of an entry formal appearing in an assignment statement does not assign
8698         to the formal.
8699         (Expand_Current_Value): Instead of calling a routine to determine
8700         whether the prefix of an attribute reference should be optimized or
8701         not, prevent the optimization of such prefixes all together.
8702
8703         * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
8704         component whose prefix is known to be of an access type is an implicit
8705         dereference and does not assign to the prefix.
8706
8707 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
8708             Robert Dewar  <dewar@adacore.com>
8709
8710         * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
8711         itype is visited, make an entry into table to link associated node and
8712         new itype.
8713         Add comments and correct harmless error in Build_NCT_Hash_Tables
8714         (Array_Aggr_Subtype): Associate each itype created for an index type to
8715         the corresponding range construct, and not to the aggregate itself. to
8716         maintain a one-to-one correspondence between itype and its associated
8717         node, to prevent errors when complex expression is copied.
8718         Fix mishandling of multiple levels of parens
8719
8720         * sem_aggr.adb: Create a limited view of an incomplete type, to make
8721         treatment of limited views uniform for all visible declarations in a
8722         limited_withed package.
8723         (New_Copy_Tree): If hash table is being used and itype is visited,
8724         make an entry into table to link associated node and new itype.
8725         (Resolve_Record_Aggregate): Do not add an others box association for a
8726         discriminated record component that has only discriminants, when there
8727         is a box association for the component itself.
8728
8729         * par-ch4.adb: Fix mishandling of multiple levels of parens
8730
8731 2007-08-14  Robert Dewar  <dewar@adacore.com>
8732
8733         * comperr.adb: Fix problem with suppressing warning messages from gigi
8734
8735         * erroutc.ads, erroutc.adb, errout.ads, 
8736         errout.adb (Write_Eol): Remove trailing spaces before writing the line
8737         (Write_Eol_Keep_Blanks): New procedure to write a line, including
8738         possible trailing spaces.
8739         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
8740         Fix problem with suppressing warning messages from back end
8741         Improve handling of deleted warnings
8742
8743         * gnat1drv.adb: 
8744         Fix problem with suppressing warning messages from back end
8745         Handle setting of Static_Dispatch_Tables flag.
8746
8747         * prepcomp.adb: 
8748         Fix problem with suppressing warning messages from back end
8749
8750         * exp_intr.adb: Improve handling of deleted warnings
8751
8752 2007-08-14  Robert Dewar  <dewar@adacore.com>
8753
8754         * debug.adb: Improve -gnatdI to cover all cases of serialization
8755         Add documentation of dZ, d.t
8756
8757         * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
8758         serialization.
8759         (Sprint_Node_Actual): Generate new output associated with implicit
8760         importation and implicit exportation of object declarations.
8761
8762 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
8763             Robert Dewar  <dewar@adacore.com>
8764             Javier Miranda  <miranda@adacore.com>
8765             Gary Dismukes  <dismukes@adacore.com>
8766
8767         * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
8768         to make treatment of limited views uniform for all visible declarations
8769         in a limited_withed package.
8770         Improve warnings for in out parameters
8771         (Set_Related_Interaface/Related_Interface): Allow the use of this
8772         attribute with constants.
8773         (Write_Field26_Name): Handle attribute Related_Interface in constants.
8774         Warn on duplicate pragma Preelaborable_Initialialization
8775
8776         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
8777         generation of a freezing node to ensure proper management of null
8778         excluding access types in the backend.
8779         (Create_Extra_Formals): Test base type of the formal when checking for
8780         the need to add an extra accessibility-level formal. Pass the entity E
8781         on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
8782         originally being done in a couple of cases), to ensure that the
8783         Extra_Formals list gets set on the entity E when the first entity is
8784         added.
8785         (Conforming_Types): Add missing calls to Base_Type to the code that
8786         handles anonymous access types. This is required to handle the
8787         general case because Process_Formals builds internal subtype entities
8788         to handle null-excluding access types.
8789         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
8790         functions that need it, even when not marked Requires_Overriding.
8791         Improve warnings for in out parameters
8792         (Analyze_Function_Return): Warn for disallowed null return
8793         Warn on return from procedure with unset out parameter
8794         Ensure consistent use of # in error messages
8795         (Check_Overriding_Indicator): Add in parameter Is_Primitive.
8796         (Analyze_Function_Return): Move call to Apply_Constraint_Check before
8797         the implicit conversion of the expression done for anonymous access
8798         types. This is required to generate the code of the null excluding
8799         check (if required).
8800
8801         * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
8802         A formal parameter is never publicly referenceable outside of its body.
8803         (Check_References): For an unreferenced formal parameter in an accept
8804         statement, use the same warning circuitry as for subprogram formal
8805         parameters.
8806         (Warn_On_Unreferenced_Entity): New subprogram, taken from
8807         Output_Unreferenced_Messages, containing the part of that routine that
8808         is now reused for entry formals as described above.
8809         (Goto_Spec_Entity): New function
8810         (Check_References): Do not give IN OUT warning for dispatching operation
8811         Improve warnings for in out parameters
8812         (Test_Ref): Check that the entity is not undefinite before calling
8813         Scope_Within, in order to avoid infinite loops.
8814         Warn on return from procedure with unset out parameter
8815         Improved warnings for unused variables
8816
8817 2007-08-14  Robert Dewar  <dewar@adacore.com>
8818             Javier Miranda  <miranda@adacore.com>
8819             Gary Dismukes  <dismukes@adacore.com>
8820
8821         * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
8822         (Expand_N_Attribute_Reference): Further unify the handling of the
8823         three forms of access attributes, using common code now for all three
8824         cases. Add a test for the case of applying an access attribute to
8825         an explicit dereference when the context is an access-to-interface
8826         type. In that case we need to apply the conversion to the prefix
8827         of the explicit dereference rather than the prefix of the attribute.
8828         (Attribute_Version, UET_Address): Set entity as internal to ensure
8829         proper dg output of implicit importation.
8830         (Expand_Access_To_Type): Removed.
8831         (Expand_N_Attribute_Reference): Merge the code from the three cases
8832         of access attributes, since the processing is largely identical for
8833         these cases. The substantive fix here is to process the case of a
8834         type name prefix (current instance case) before handling the case
8835         of interface prefixes.
8836
8837 2007-08-14  Thomas Quinot  <quinot@adacore.com>
8838             Ed Schonberg  <schonberg@adacore.com>
8839             Javier Miranda  <miranda@adacore.com>
8840             Robert Dewar  <dewar@adacore.com>
8841
8842         * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
8843         (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
8844         type that is an anonymous access to controlled object, establish
8845         an associated finalization chain to avoid corrupting the global
8846         finalization list when a dynamically allocated object designated
8847         by such a component is deallocated.
8848         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
8849         functions that need it, even when not marked Requires_Overriding.
8850         (Initialize_Tag): Replace call to has_discriminants by call to
8851         Is_Variable_Size_Record in the circuitry that handles the
8852         initialization of secondary tags.
8853         (Is_Variable_Size_Record): New implementation.
8854         (Expand_N_Object_Declaration): Suppress call to init proc if there is a
8855         Suppress_Initialization pragma for a derived type.
8856         (Is_Variable_Size_Record): New subprogram.
8857         (Build_Offset_To_Top_Functions): New implementation that simplifies the
8858         initial version of this routine and also fixes problems causing
8859         incomplete initialization of the table of interfaces.
8860         (Build_Init_Procedure): Improve the generation of code to initialize the
8861         the tag components of secondary dispatch tables.
8862         (Init_Secondary_Tags): New implementation that simplifies the previous
8863         version of this routine.
8864         (Make_DT): Add parameter to indicate when type has been frozen by an
8865         object declaration, for diagnostic purposes.
8866         (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
8867         diagnose attemps to freeze a subprogram when some untagged type of its
8868         profile is a private type whose full view has not been analyzed yet.
8869         (Freeze_Array_Type): Generate init proc for packed array if either
8870         Initialize or Normalize_Scalars is set.
8871         (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
8872         constructing the new profile, copy the null_exclusion indicator for each
8873         parameter, to ensure full conformance of the new body with the spec.
8874
8875         * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
8876         Create wrappers for constructor functions that need it, even when not
8877         marked Requires_Overriding.
8878         (Covers): Handle properly designated types of anonymous access types,
8879         whose non-limited views are themselves incomplete types.
8880         (Add_Entry): Use an entity to store the abstract operation which hides
8881         an interpretation.
8882         (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
8883         (Collect_Interps): Use Empty as an actual for Abstract_Op in the
8884         initialization aggregate.
8885         (Function_Interp_May_Be_Hidden): Rename to
8886         Function_Interp_Has_Abstract_Op.
8887         (Has_Compatible_Type): Remove machinery that skips interpretations if
8888         they are labeled as potentially hidden by an abstract operator.
8889         (Has_Hidden_Interp): Rename to Has_Abstract_Op.
8890         (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
8891         (Write_Overloads): Output the abstract operator if present.
8892         (Add_Entry): Before inserting a new entry into the interpretation table
8893         for a node, determine whether the entry will be disabled by an abstract
8894         operator.
8895         (Binary_Op_Interp_May_Be_Hidden): New routine.
8896         (Collect_Interps): Add value for flag May_Be_Hidden in initialization
8897         aggregate.
8898         (Function_Interp_May_Be_Hidden): New routine.
8899         (Has_Compatible_Type): Do not consider interpretations hidden by
8900         abstract operators when trying to determine whether two types are
8901         compatible.
8902         (Has_Hidden_Interp): New routine.
8903         (Set_May_Be_Hidden_Interp): New routine.
8904         (Write_Overloads): Write the status of flag May_Be_Hidden.
8905
8906 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
8907             Javier Miranda  <miranda@adacore.com>
8908
8909         * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
8910         types declared in the declarative part of a nested package body or in
8911         the proper body of a stub.
8912         (Set_All_DT_Position): Add missing check to avoid wrong assignation
8913         of the same dispatch table slot to renamed primitives.
8914         (Make_Select_Specific_Data_Table): Handle private types.
8915         (Tagged_Kind): Handle private types.
8916         (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
8917         output of implicit importation and exportation.
8918         (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
8919         first formal of the thunk is always associated with the controlling
8920         type. In addition perform the following code cleanup: remove formal
8921         Thunk_Alias which is no longer required, cleanup evaluation of the
8922         the controlling type, and update the documentation.
8923         Replace occurrence of Default_Prim_Op_Count by
8924         Max_Predef_Prims. Addition of compile-time check to verify
8925         that the value of Max_Predef_Prims is correct.
8926         (Check_Premature_Freezing): Apply check in Ada95 mode as well.
8927         (Make_DT): Add parameter to indicate when type has been frozen by an
8928         object declaration, for diagnostic purposes.
8929         (Build_Static_Dispatch_Tables): New subprogram that takes care of the
8930         construction of statically allocated dispatch tables.
8931         (Make_DT): In case of library-level tagged types export the declaration
8932         of the primary tag. Remove generation of tags (now done by Make_Tags).
8933         Additional modifications to handle non-static generation of dispatch
8934         tables. Take care of building tables for asynchronous interface types
8935         (Make_Tags): New subprogram that generates the entities associated with
8936         the primary and secondary tags of Typ and fills the contents of Access_
8937         Disp_Table. In case of library-level tagged types imports the forward
8938         declaration of the primary tag that will be declared later by Make_DT.
8939         (Expand_Interface_Conversion): In case of access types to interfaces
8940         replace an itype declaration by an explicit type declaration to avoid
8941         problems associated with the scope of such itype in transient blocks.
8942
8943 2007-08-14  Robert Dewar  <dewar@adacore.com>
8944             Ed Schonberg  <schonberg@adacore.com>
8945             Javier Miranda  <miranda@adacore.com>
8946
8947         * exp_util.ads, exp_util.adb: 
8948         This patch replaces a number of occurrences of explicit tests for N_Null
8949         with calls to Known_Null. This improves tracking of null values, since
8950         Known_Null also catches null constants, and variables currently known to
8951         be null, so we get better tracking.
8952         (Ensure_Defined): create an itype reference only in the scope of the
8953         itype.
8954         (Side_Effect_Free): A selected component of an access type that
8955         denotes a component with a rep clause must be treated as not
8956         side-effect free, because if it is part of a linked structure its
8957         value may be affected by a renaming.
8958         (Expand_Subtype_From_Expr): For limited objects initialized with build
8959         in place function calls, do nothing; otherwise we prematurely introduce
8960         an N_Reference node in the expression initializing the object, which
8961         breaks the circuitry that detects and adds the additional arguments to
8962         the called function. Bug found working in the new patch for statically
8963         allocated dispatch tables.
8964         (Is_Library_Level_Tagged_Type): New subprogram.
8965         (Remove_Side_Effects): If the expression of an elementary type is an
8966         operator treat as a function call.
8967         (Make_Literal_Range): If the index type of the array is not integer, use
8968         attributes properly to compute the constraint on the resulting aggregate
8969         which is a string.
8970
8971         * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
8972         class-wide type whose base type is an incomplete private type, leave
8973         class-wide type unfrozen so that freeze nodes can be generated
8974         properly at a later point.
8975         (Freeze_Entity, array case): Handle case of pragma Pack and component
8976         size attributre clause for same array.
8977
8978 2007-08-14  Vincent Celier  <celier@adacore.com>
8979
8980         * prj.ads, prj.adb: Update Project Manager to new attribute names for
8981         gprbuild.
8982         Allow all valid declarations in configuration project files
8983         (Reset): Initialize all tables and hash tables in the project tree data
8984         Major update of the Project Manager and of the project aware tools,
8985         including gprmake, so that the same sources in the GNAT repository
8986         can be used by gprbuild.
8987         (Slash_Id): Change type to be Path_Name_Type
8988         (Slash): Return a Path_Name_Type instead of a File_Name_Type
8989
8990         * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
8991         gprbuild.
8992         Update Project Manager to new attribute names for ghprbuild
8993         Allow all valid declarations in configuration project files
8994         Major update of the Project Manager and of the project aware tools,
8995         including gprmake, so that the same sources in the GNAT repository
8996         can be used by gprbuild.
8997
8998         * prj-com.ads: 
8999         Major update of the Project Manager and of the project aware tools,
9000         including gprmake, so that the same sources in the GNAT repository
9001         can be used by gprbuild.
9002
9003         * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
9004         insensitive flag for attributes with optional index.
9005         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
9006         array attribute, put the index in lower case.
9007         Update Project Manager to new attribute names for ghprbuild
9008         Allow all valid declarations in configuration project files
9009         Major update of the Project Manager and of the project aware tools,
9010         including gprmake, so that the same sources in the GNAT repository
9011         can be used by gprbuild.
9012
9013         * prj-env.ads, prj-env.adb: 
9014         Major update of the Project Manager and of the project aware tools,
9015         including gprmake, so that the same sources in the GNAT repository
9016         can be used by gprbuild.
9017         (Get_Reference): Change type of parameter Path to Path_Name_Type
9018
9019         * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
9020         removing '-' from the path to start with the first character of the
9021         next directory.
9022         Major update of the Project Manager and of the project aware tools,
9023         including gprmake, so that the same sources in the GNAT repository
9024         can be used by gprbuild.
9025         Major update of the Project Manager and of the project aware tools,
9026         including gprmake, so that the same sources in the GNAT repository
9027         can be used by gprbuild.
9028
9029         * prj-nmsc.ads, prj-nmsc.adb: 
9030         Update Project Manager to new attribute names for ghprbuild
9031         Allow all valid declarations in configuration project files
9032         (Search_Directories): Detect subunits that are specified with an
9033         attribute Body in package Naming. Do not replace a source/unit in the
9034         same project when the order of the source dirs are known. Detect
9035         duplicate sources/units in the same project when the order of the
9036         source dirs are not known.
9037         (Check_Ada_Name): Allow all identifiers that are not reserved words
9038         in Ada 95.
9039         Major update of the Project Manager and of the project aware tools,
9040         including gprmake, so that the same sources in the GNAT repository
9041         can be used by gprbuild.
9042         (Look_For_Sources): If the list of sources is empty, set the object
9043         directory of non extending project to nil.
9044         Change type of path name variables to be Path_Name_Type
9045         (Locate_Directory): Make sure that on Windows '/' is converted to '\',
9046         otherwise creating missing directories will fail.
9047
9048         * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb, 
9049         prj-part.ads, prj-part.adb:
9050         Major update of the Project Manager and of the project aware tools,
9051         including gprmake, so that the same sources in the GNAT repository
9052         can be used by gprbuild.
9053
9054         * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
9055         insensitive flag for attributes with optional index.
9056         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
9057         array attribute, put the index in lower case.
9058         (Parse_Variable_Reference): Allow the current project name to be used in
9059         the prefix of an attribute reference.
9060
9061         * prj-util.ads, prj-util.adb
9062         (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
9063         defaulted to False. When True, always check against indexes in lower
9064         case.
9065
9066         * snames.ads, snames.h, snames.adb: 
9067         Update Project Manager to new attribute names for gprbuild
9068         Allow all valid declarations in configuration project files
9069
9070 2007-08-14  Robert Dewar  <dewar@adacore.com>
9071             Ed Schonberg  <schonberg@adacore.com>
9072
9073         * opt.ads: Warning for non-local exception propagation now off by
9074         default
9075         New switch -gnatI to disable representation clauses
9076         Implement new pragma Implicit_Packing
9077
9078         * usage.adb: 
9079         Warning for non-local exception propagation now off by default
9080         Add warning for unchecked conversion of pointers wi different
9081         conventions.
9082         New switch -gnatI to disable representation clauses
9083
9084         * usage.adb: new switch -gnatyS
9085
9086         * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
9087         note that aggregates of anonymous array types are not flagged.
9088         -gnatwc now includes membership tests optimized away
9089         -gnatw.x warnings are now off by default
9090         Added conditional compilation Appendix
9091         Add documentation of -gnatI
9092         Add documentation for new -gnatyS style check
9093         Update documentation about SAL and auto-init on Windows.
9094
9095         * gnat_rm.texi: 
9096         Add documentation for pragma Check_Name and 'Enabled attribute
9097         Document that Eliminate on dispatching operation is ignored
9098         Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
9099         Document pragma Main
9100         Document pragma Implicit_Packing
9101
9102         * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
9103         different conventions
9104         New switch -gnatI to disable representation clauses
9105
9106         * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
9107         recognized, report the invalid characters including "-gnat" instead of
9108         just the first character in the switch.
9109         New switch -gnatI to disable representation clauses
9110         Set Warn_On_Object_Renames_Function true for -gnatg
9111
9112         * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
9113         Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
9114         Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
9115         to switch -aP (add directory to project search dir).
9116
9117         * par-prag.adb: Implement new pragma Implicit_Packing
9118
9119         * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
9120         type as having a non-standard representation, to force expansion on
9121         conversion to related types.
9122         (Analyze_Pragma): Warn on misspelled pragma
9123         (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
9124         Ensure consistent use of # in error messages
9125         Implement pragma Implicit_Packing
9126
9127 2007-08-14  Olivier Hainque  <hainque@adacore.com>
9128             Eric Botcazou  <ebotcazou@adacore.com>
9129
9130         * targtyps.c (get_target_maximum_default_alignment): New function.
9131         Maximum alignment
9132         that the compiler might choose by default for a type or object.
9133         (get_target_default_allocator_alignment): New function. Alignment known
9134         to be honored by the target default allocator.
9135         (get_target_maximum_allowed_alignment): New function. Maximum alignment
9136         we might accept for any type or object on the target.
9137         (get_target_maximum_alignment): Now synonym of maximum_default_alignment
9138
9139         * gigi.h (get_target_maximum_default_alignment): Declare new function.
9140         (get_target_default_allocator_alignment): Likewise.
9141         (get_target_maximum_allowed_alignment): Likewise.
9142
9143         PR ada/19037
9144         * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
9145         result of a function call, first try to use a stabilized reference for
9146         a constant renaming too.
9147         (validate_alignment): Use target_maximum_allowed_alignment instead of
9148         MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
9149         (gnat_to_gnu_entity): Use common nodes directly.
9150         (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
9151         alignment and size for the object.
9152         (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
9153         and N_Procedure_Call_Statement.
9154         (takes_address): Rename to lvalue_required_p, add third parameter
9155         'aliased' and adjust recursive calls.
9156         <N_Indexed_Component>: Update 'aliased' from the array type.
9157         <N_Selected_Component>: New case.
9158         <N_Object_Renaming_Declaration>: New Likewise.
9159         (Identifier_to_gnu): Adjust for above changes.
9160         (maybe_stabilize_reference) <CONST_DECL>: New case.
9161
9162         * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
9163         between type variants.
9164         (build_simple_component_ref): Likewise.
9165         (build_call_alloc_dealloc): Use target_default_allocator_alignment
9166         instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
9167         aligning type circuitry for allocations from the default storage pool.
9168         (build_allocator): Likewise.
9169         (build_simple_component_ref): Manually fold the reference for a
9170         constructor if the record type contains a template.
9171
9172         * utils.c (value_zerop): Delete.
9173         (gnat_init_decl_processing): Emit debug info for common types.
9174         (rest_of_record_type_compilation): If a union contains a field
9175         with a non-constant qualifier, treat it as variable-sized.
9176         (finish_record_type): Give the stub TYPE_DECL a name.
9177         (rest_of_record_type_compilation): Likewise.
9178         (convert) <CONSTRUCTOR>: New case.  Build a new constructor if
9179         types are equivalent array types.
9180         (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
9181         even if the type is not passed by reference.
9182         (static_ctors, static_dtors): Delete.
9183         (end_subprog_body): Do not record constructors and destructors.
9184         (build_global_cdtor): Delete.
9185         (gnat_write_global_declarations): Do not call build_global_cdtor.
9186
9187         * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
9188         -fRTS=rtp is specified.
9189         If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
9190         specified.
9191
9192         * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
9193         of the personality function with SJLJ exceptions.
9194
9195         * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
9196         the name of the personality function with SJLJ exceptions.
9197
9198 2007-08-14  Robert Dewar  <dewar@adacore.com>
9199             Ed Schonberg  <schonberg@adacore.com>
9200
9201         * par.ads, par.adb: Improve handling of extra right parens.
9202         (Par): Remove flag From_Limited_With_Clause.
9203
9204         * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
9205         Improve handling of extra right parens.
9206
9207 2007-08-14  Robert Dewar  <dewar@adacore.com>
9208
9209         * par-tchk.adb (TF_Semicolon): Improve error recovery
9210
9211 2007-08-14  Robert Dewar  <dewar@adacore.com>
9212             Ed Schonberg  <schonberg@adacore.com>
9213
9214         * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
9215         enumeration type, mark all literals as referenced.
9216         (Eval_Attribute, case 'Image): If the argument is an enumeration
9217         literal and names are available, constant-fold but mark nevertheless as
9218         non-static.
9219         Clean up function names.
9220         (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
9221         comment.
9222         (Requires_Simple_Name_Prefix): Removed.
9223
9224 2007-08-14  Robert Dewar  <dewar@adacore.com>
9225             Ed Schonberg  <schonberg@adacore.com>
9226
9227         * sem_ch11.adb: Improved warnings for unused variables
9228
9229         * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
9230         is a synchronized interface, the derived type is limited.
9231         (Analyze_Object_Declaration): Mark the potential coextensions in the
9232         definition and expression of an object declaration node.
9233         (Build_Derived_Type): For the completion of a private type declaration
9234         with a derived type declaration, chain the parent type's representation
9235         items to the last representation item of the derived type (not the
9236         first one) if they are not present already.
9237         (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
9238         object declaration of forward references to tags.
9239         (Access_Subprogram_Declaration): In Ada2005, anonymous access to
9240         subprogram types can appear as access discriminants of synchronized
9241         types.
9242         (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
9243         given in prefixed form as a selected component.
9244         (Process_Discriminants): If not all discriminants have defaults, place
9245         error message on a default that is present.
9246         (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
9247         extend a synchronized tagged type.
9248         Improved warnings for unused variables
9249         (Is_Visible_Component): Fix a visibility hole on a component inherited
9250         by a private extension when parent is itself declared as a private
9251         extension, and the derivation is in a child unit.
9252         (Find_Hidden_Interface): Move spec from the package body.
9253
9254 2007-08-14  Robert Dewar  <dewar@adacore.com>
9255             Ed Schonberg  <schonberg@adacore.com>
9256
9257         * sem_ch5.adb: Improve warnings on redundant assignments
9258
9259         * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
9260         parameter
9261         (Is_Synchronized_Tagged_Type): New subprogram that returns true
9262         in case of synchronized tagged types (AARM 3.9.4 (6/2)).
9263         (Safe_To_Capture_Value): Can now return True for constants, even if Cond
9264         is set to False. Improves handling of Known_[Not_]Null.
9265         (Wrong_Type): Special case address arithmetic attempt
9266         (Collect_Abstract_Interfaces): Add new formal to allow collecting
9267         abstract interfaces just using the partial view of private types.
9268         (Has_Abstract_Interfaces): Add new formal to allow checking types
9269         covering interfaces using the partial view of private types.
9270         (Is_Fully_Initialized_Type): Special VM case for uTag component. This
9271         component still needs to be defined in this case, but is never
9272         initialized as VMs are using other dispatching mechanisms.
9273         (Abstract_Interface_List): For a protected type, use base type to get
9274         proper declaration.
9275         Improve warnings on redundant assignments
9276         (Is_Variable): Handle properly an implicit dereference of a prefixed
9277         function call.
9278         (Build_Actual_Subtype): If this is an actual subtype for an
9279         unconstrained formal parameter, use the sloc of the body for the new
9280         declaration, to prevent anomalises in the debugger.
9281
9282 2007-08-14  Robert Dewar  <dewar@adacore.com>
9283
9284         * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
9285         dispatching operation
9286
9287 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
9288             Gary Dismukes  <dismukes@adacore.com>
9289
9290         * exp_aggr.ads, 
9291         exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
9292         expanded aggregate code before allocator, and ahead of declaration for
9293         temporary, to prevent access before elaboration when the allocator is
9294         an actual for an access parameter.
9295         (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
9296         the TSD and the table of interfaces.
9297         (Convert_To_Assignments): Augment the test for delaying aggregate
9298         expansion for limited return statements to include the case of extended
9299         returns, to prevent creation of an unwanted transient scope.
9300         (Is_Static_Dispatch_Table_Aggregate): New subprogram.
9301         (Expand_Array_Aggregate): Handle aggregates associated with
9302         statically allocated dispatch tables.
9303         (Expand_Record_Aggregate): Handle aggregates associated with
9304         statically allocated dispatch tables.
9305         (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
9306         of anonymous access type.
9307
9308 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
9309
9310         * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
9311         is a variable that renames a slice, use the variable itself in the
9312         expannsion when the renamed expression itself may be modified between
9313         the declaration of the renaming and the array assignment.
9314
9315 2007-08-14  Jerome Guitton  <guitton@adacore.com>
9316
9317         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, 
9318         s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, 
9319         s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
9320         New functions; dummy implementations.
9321
9322         * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
9323         functions, used to implement the multi-tasks mode routines on VxWorks.
9324
9325         * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
9326         New functions, thin
9327         binding to the VxWorks routines which have changed between VxWorks 5
9328         and 6.
9329         (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
9330         which are not callable from a RTP.
9331
9332         * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
9333         implemented for the multi-tasks mode on VxWorks 5 and 6.
9334
9335         * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
9336
9337         * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
9338         functions.
9339
9340 2007-08-14  Vincent Celier  <celier@adacore.com>
9341
9342         * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb, 
9343         gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
9344         mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb, 
9345         mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb, 
9346         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, 
9347         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
9348         mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
9349         procedure.
9350         (Major_Id_Name): New function.
9351         mlib-tgt.ads/mlib.tgt.adb:
9352         (Library_Major_Minor_Id_Supported): New function, default returns True
9353         Most mlib-tgt-*.adb that support shared libraries and symbolic links:
9354         (Build_Dynamic_Library): Add support for major/minor ids for shared libs
9355         Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
9356         Implementation of Library_Major_Minor_Id_Supported returns False
9357         clean.adb:
9358         (Clean_Library_Directory): If major/minor ids are supported, clean all
9359         library files.
9360         Major update of the Project Manager and of the project aware tools,
9361         including gprmake, so that the same sources in the GNAT repository
9362         can be used by gprbuild.
9363
9364 2007-08-14  Olivier Hainque  <hainque@adacore.com>
9365
9366         * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
9367         (GCC_ZCX_Support): Switch to True.
9368         
9369         * s-intman-solaris.adb (Notify_Exception): Call
9370         Adjust_Context_For_Raise before raising, as expected for signal
9371         handlers in general.
9372         
9373         * s-intman-posix.adb (Notify_Exception): Remove declaration of
9374         Adjust_Context_For_Raise, moved to the spec of this unit to be visible
9375         to other implementation bodies.
9376         
9377         * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
9378         be visible by multiple implementation bodies.
9379         
9380         * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
9381         only for conditions coming from hardware.
9382         [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
9383         adjustments to signal context prior to exception raise from signal
9384         handler.
9385         (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
9386         mode.
9387         Solaris section: (__gnat_adjust_context_for_raise): New function.
9388         Implementation of the machine context adjustments to perform prior to
9389         raise from a signal handler. Version for both sparc and x86.
9390         (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
9391         (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
9392         prior to raising as expected for any handler, before possible nested
9393         faults to make sure all the contexts in a chain have been adjusted by
9394         the time we propagate.
9395
9396 2007-08-14  Pascal Obry  <obry@adacore.com>
9397
9398         * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
9399         (SYSTEM_INFO): New record.
9400         (SetThreadIdealProcessor): New imported routine needed for supporting
9401         task_info pragma on Windows.
9402
9403         * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
9404         info can be applied to the current host.
9405         (Create_Task): Set the ideal processor if information is present.
9406
9407         * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
9408         a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
9409
9410 2007-08-14  Olivier Hainque  <hainque@adacore.com>
9411
9412         * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
9413         stack size and initial stack pointer value for a given task.
9414         (Enter_Task): Get the stack attributes of the task we are entering and
9415         let the stack checking engine know about them.
9416
9417         * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
9418         Let the stack-checking engine know about the initial sp value and stack
9419         size associated with the current task.
9420         (Set_Stack_Info): If a stack base has been notified for the current
9421         task, honor it. Fallback to the previous less accurate method otherwise.
9422
9423         * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
9424
9425 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
9426
9427         * sem_ch10.adb: Create a limited view of an incomplete type, to make
9428         treatment of limited views uniform for all visible declarations in a
9429         limited_withed package.
9430         Set flag indicating that a subprogram body for a child unit has a
9431         generated spec.
9432         (Analyze_Compilation_Unit): If unit is a subprogram body that has no
9433         separate declaration, remove the unit name from visibility after
9434         compilation, so that environment is clean for subsequent compilations.
9435         (Install_Limited_Context_Clauses): Do not install a
9436         limited_private_with_clause unless the current unit is a body or a
9437         private child unit.
9438         (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
9439         in the same fashion.
9440         (Install_Limited_Withed_Unit): Do not install a limited with clause if
9441         it applies to the declaration of the current package body.
9442         (Remove_Private_With_Clauses): If there is a regular with_clause for
9443         the unit, delete Private_With_Clause from context, to prevent improper
9444         hiding when processing subsequent nested packages and instantiations.
9445
9446 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
9447
9448         * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
9449         dir/file, device:/dir/file, and device:drive_letter:/dir/file as
9450         representing absolute path names.
9451         __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
9452
9453         * cstreams.c (__gnat_full_name for VxWorks): Use
9454         __gnat_is_absolute_path to detect whether we need to add the current
9455         directory to normalize the path.
9456
9457 2007-08-14  Javier Miranda  <miranda@adacore.com>
9458
9459         * a-tags.ads, 
9460         a-tags.adb (Displace): Associate a message with the raised CE
9461         exception.
9462         (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
9463         To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
9464         To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
9465         spec.
9466         (Default_Prim_Op_Count): Removed.
9467         (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
9468         Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
9469         Remove pragma Inline_Always.
9470
9471         * rtsfind.ads (Default_Prim_Op_Count): Removed
9472         (Max_Predef_Prims): New entity
9473         (RE_Expanded_Name): Removed
9474         (RE_HT_Link): Removed
9475         (RE_Iface_Tag): Remmoved
9476         (RE_Ifaces_Table): Removed
9477         (RE_Interfaces_Array): Removed
9478         (RE_Interface_Data_Element): Removed
9479         (RE_Nb_Ifaces): Removed
9480         (RE_RC_Offset): Removed
9481         (RE_Static_Offset_To_Top): Removed
9482
9483         * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
9484         formal.
9485         (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
9486         Prim_Op_Count by Max_Predef_Prims.
9487
9488 2007-08-14  Thomas Quinot  <quinot@adacore.com>
9489             Vincent Celier  <celier@adacore.com>
9490
9491         * binde.adb (Elab_All_Links): Remove unnecessary call to
9492         Generic_Separately_Compiled (if a unit satisfies this predicate, there
9493         won't be an associated Afile).
9494         (Elab_All_Links): Fail if a referenced unit cannot be found
9495
9496         * bindgen.adb: 
9497         Fix comments in bindgen regarding consistency checks done in Bcheck:
9498         the checks are made across units within a partition, not across several
9499         partitions.
9500         Fix generation of C binder file for VxWorks.
9501
9502         * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
9503         Generic_May_Lack_ALI, more descriptive of the current use of the
9504         predicate, and update documentation.
9505
9506         * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
9507         reorganization and documentation update for the case of predefined
9508         library generics (for which we do not reference an Afile).
9509
9510 2007-08-14  Robert Dewar  <dewar@adacore.com>
9511
9512         * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
9513         s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
9514         s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
9515         s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
9516         s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
9517         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
9518         s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
9519         s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
9520         exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
9521         s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
9522         s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
9523         a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
9524         s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
9525         g-altcon.adb: Minor reformatting
9526
9527         ada-tree.h: Delete empty line.
9528
9529         ali.ads: Minor reformatting
9530         Clarification of comments.
9531         Minor spelling correction
9532
9533         * exp_dbug.adb: Add Warnings Off to suppress new warning
9534
9535         * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
9536         formal
9537
9538         * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
9539         value
9540
9541         * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
9542
9543         * a-textio.ads: Reorder the standard input/output/error declarations
9544         for consistency.
9545
9546         * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
9547
9548         * par-ch2.adb: Recognize RM specially in errout
9549         Change 'R'M to RM in all error messages
9550
9551         * scng.adb: Recognize RM specially in errout
9552
9553         * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
9554         N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
9555
9556         * s-direio.adb: Add missing routine header box.
9557
9558         * sem_attr.ads: Add ??? comments
9559
9560         * sem_eval.adb: Recognize RM specially in errout
9561         Change 'R'M to RM in all error messages
9562
9563         * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
9564
9565         * s-tasinf.ads: Fix minor comment typo.
9566
9567         * a-cihama.adb: Minor comment addition
9568
9569         * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
9570         formal
9571
9572         * s-tasinf-tru64.ads: Fix minor comment typo.
9573
9574         * itypes.ads: Comment update.
9575
9576         * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
9577         anymore.
9578
9579         * argv.c: Added protection against null gnat_argv and gnat_envp.
9580
9581         * bcheck.adb (Check_Consistency): Use correct markup character ({) in
9582         warning message when Tolerate_Consistency_Errors is True.
9583
9584         * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
9585         Any_Id, as this subprogram is only applicable to *type* entities (it
9586         sets RM_Size). Instead initialize just Esize and Alignment.
9587
9588 2007-08-14  Bob Duff  <duff@adacore.com>
9589
9590         * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, 
9591         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
9592         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads, 
9593         a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
9594         a-coorse.ads (Next): Applied pragma Inline.
9595         Make all Containers packages Remote_Types (unless they are already
9596         Pure).
9597         (Previous): applied pragma Inline
9598         (Elements_Type): is now a record instead of an array
9599
9600 2007-08-14  Thomas Quinot  <quinot@adacore.com>
9601
9602         * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
9603         of Set_Item.
9604         (Set_Item): When the new item is an element of the currently allocated
9605         table passed by reference, save a copy on the stack if we're going
9606         to reallocate. Also, in Table.Set_Item, make sure we test the proper
9607         variable to determine whether to call Set_Last.
9608
9609         * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
9610         symbols-vms.adb, symbols-processing-vms-alpha.adb,
9611         symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
9612         some occurrences of the pattern
9613            T.Increment_Last;
9614            T.Table (T.Last) := Value;
9615         with a cleaner call to
9616            T.Append (Value);
9617
9618 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
9619             Gary Dismukes  <dismukes@adacore.com>
9620             Thomas Quinot  <quinot@adacore.com>
9621
9622         * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
9623         derived type with interface progenitors use the analyzed formal as the
9624         parent of the actual, to create renamings for all the inherited
9625         operations in Derive_Subprograms.
9626         (Collect_Previous_Instances): new procedure within of
9627         Load_Parent_Of_Generic, to instantiate all bodies in the compilation
9628         unit being loaded, to ensure that the generation of global symbols is
9629         consistent in different compilation modes.
9630         (Is_Tagged_Ancestor): New function testing the ancestor relation that
9631         takes progenitor types into account.
9632         (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
9633         traversing over the primitives of the formal and actual types to locate
9634         any abstract subprograms of the actual type that correspond to a
9635         nonabstract subprogram of the formal type's ancestor type(s), and issue
9636         an error if such is found.
9637         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
9638         Instantiate_Package_Body, Instantiate_Subprogram_Body):
9639         Remove bogus guard around calls to Inherit_Context.
9640         (Reset_Entity): If the entity is the selector of a selected component
9641         that denotes a named number, propagate constant-folding to the generic
9642         template only if the named number is global to the generic unit.
9643         (Set_Instance_Env): Only reset the compilation switches when compiling
9644         a predefined or internal unit.
9645
9646 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
9647
9648         * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
9649         parameter to determine whether operation applies to the prefix.
9650         (Complete_Object_Operation): If actual has an access type and
9651         controlling formal is not an in_parameter, reject the actual if it is
9652         an access_to_constant type.
9653         (Try_Primitive_Operation): If the type of the prefix is a formal tagged
9654         type, the candidate operations are found in the scope of declaration of
9655         the type, because the type has no primitive subprograms.
9656         (Analyze_Selected_Component): If prefix is class-wide, and root type is
9657         a private extension, only examine visible components before trying to
9658         analyze as a prefixed call.
9659         Change Entity_List to Type_To_Use, for better readability.
9660         (Has_Fixed_Op): Use base type when checking whether the type of an
9661         operator has a user-defined multiplication/division
9662         (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
9663         user-defined operators are available for fixed-point types.
9664
9665 2007-08-14  Thomas Quinot  <quinot@adacore.com>
9666             Ed Schonberg  <schonberg@adacore.com>
9667
9668         * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
9669         formal At_Any_Place indicating, when True, that we want to test for
9670         availability of the stream attribute at any place (as opposed to the
9671         current visibility context only).
9672         (Missing_Read_Write_Attributes): A stream attribute is missing for the
9673         purpose of enforcing E.2.2(8) only if it is not available at any place.
9674         Take into account the Ada2005 pragma Has_Preelaborable_Initialization
9675         when checking the legality of an extension aggregate in a preelaborable
9676         package. Treat the literal null as a valid default expression in a
9677         component declaration for a type with preelaborable initialization.
9678         A limited interface is a legal progenitor for the designated type of a
9679         remote access to class-wide type.
9680
9681 2007-08-14  Thomas Quinot  <quinot@adacore.com>
9682             Ed Schonberg  <schonberg@adacore.com>
9683
9684         * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
9685         reference): Use correct entity as denoted entity for the selector of
9686         the rewritten node.
9687         (Find_Direct_Name): Add comment about Generate_Reference incorrectly
9688         setting the Referenced_As_LHS flag for entities that are implicitly
9689         dereferenced.
9690         (Find_Type): If the type is an internally generated incomplete type,
9691         mark the full view as referenced, to prevent spurious warnings.
9692         (Find_Selected_Component, Has_Components): Handle properly non-limited
9693         views that are themselves incomplete types.
9694         Handle interfaces visible through limited-with clauses.
9695         (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
9696         subprogram generic actual for which we have generated a renaming.
9697         Warn when the renaming introduces a homonym of
9698         the renamed entity, and the renamed entity is directly visible.
9699
9700 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
9701             Hristian Kirtchev  <kirtchev@adacore.com>
9702
9703         * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
9704         appear in the subtree to the current allocator if it is not a static
9705         coextension.
9706         (Resolve_Allocator): Perform cleanup if resolution has determined that
9707         the allocator is not a coextension.
9708         (Resolve): Skip an interpretation hidden by an abstract operator only
9709         when the type of the interpretation matches that of the context.
9710         (Resolve): When looping through all possible interpretations of a node,
9711         do not consider those that are hidden by abstract operators.
9712         (Resolve_Actuals): When verifying that an access to class-wide object
9713         is an actual  for a controlling formal, ignore anonymous access to
9714         subprograms whose return type is an access to class_wide type.
9715         (Resolve_Slice): If the prefix of the slice is a selected component
9716         whose type depends on discriminants, build its actual subtype before
9717         applying range checks on the bounds of the slice.
9718         (Valid_Conversion): In an instance or inlined body, compare root types,
9719         to prevent anomalies between private and public views.
9720         (Resolve): Improve error message for ambiguous fixed multiplication
9721         expressions that involve universal_fixed multiplying operations.
9722
9723 2007-08-14  Javier Miranda  <miranda@adacore.com>
9724             Hristian Kirtchev  <kirtchev@adacore.com>
9725
9726         * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
9727         location to allow the correct generation of errors in case of
9728         restrictions applied to the expanded code.
9729         (Expand_Entry_Barrier): Remove all generated renamings for a barrier
9730         function if the condition does not reference them.
9731         (Expand_Entry_Body_Declarations): Mark the index constant as having a
9732         valid value.
9733
9734 2007-08-14  Thomas Quinot  <quinot@adacore.com>
9735             Pablo Oliveira  <oliveira@adacore.com>
9736
9737         * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
9738         typecode parameters for a union (in a variant record), remove
9739         extraneous layer of Any wrapping for member label.
9740         (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
9741         elabration statements, register the package with the name server
9742         at the beginning, not at the end, of the elaboration statements so
9743         that they can create remote access to subprogram values that designate
9744         remote subprograms from the package.
9745
9746 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
9747
9748         * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
9749         values to compute the number of seconds since the Unix Epoc in order to
9750         account for Daylight Savings Time. Perform special processing for dates
9751         that are earlier than the Unix Epoc to obtain a negative number.
9752
9753 2007-08-14  Emmanuel Briot  <briot@adacore.com>
9754
9755         * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
9756         switches.
9757
9758 2007-08-14  Eric Botcazou  <ebotcazou@adacore.com>
9759
9760         * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
9761         binder-generated file is not in Ada.
9762         Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
9763         recorded in the ALI file.
9764         Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
9765
9766 2007-08-14  Vincent Celier  <celier@adacore.com>
9767
9768         * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
9769         (Output_Source): Do nothing if parameter is No_Sdep_Id
9770
9771         * make.adb (Gnatmake): Do not rebuild an archive simply because a
9772         shared library it imports has a later time stamp.
9773         (Check): Resolve the symbolic links in the path name of the object
9774         directory.
9775         Check that the ALI file is in the correct object directory
9776         Check if a file name does not correspond to the mapping of units
9777         to file names.
9778         (Display_Version): New procedure
9779         (Initialize): Process switches --version and --help
9780         Use type Path_Name_Type for path name
9781
9782 2007-08-14  Paul Hilfinger  <hilfinger@adacore.com>
9783
9784         * impunit.adb: Re-organize System.Random_Numbers and
9785         GNAT.Random_Numbers and add to builds.
9786
9787         * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
9788
9789         * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
9790
9791         * a-assert.ads, a-assert.adb: New files.
9792
9793 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
9794
9795         * layout.adb (Layout_Type): In the case of access-to-subprogram types,
9796         if AAMP_On_Target is True, then the size of the type encompasses two
9797         addresses (a static link and a subprogram address), except in the case
9798         of library-level access types.
9799
9800 2007-08-14  Vincent Celier  <celier@adacore.com>
9801
9802         * output.ads, output.adb (Write_Eol): Remove trailing spaces before
9803         writing the line.
9804         (Write_Eol_Keep_Blanks): New procedure to write a line, including
9805         possible trailing spaces.
9806         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
9807
9808 2007-08-14  Javier Miranda  <miranda@adacore.com>
9809
9810         * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
9811         null-excluding access types.
9812
9813 2007-08-14  Javier Miranda  <miranda@adacore.com>
9814
9815         * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
9816         that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
9817         of private types add missing check on matching interfaces in the
9818         partial and full declarations.
9819         (Analyze_Protected_Type): Code cleanup.
9820         (Analyze_Task_Type): Code cleanup.
9821
9822 2007-08-14  Javier Miranda  <miranda@adacore.com>
9823
9824         * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
9825         generated interface thunk.
9826
9827 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
9828
9829         * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
9830         obsolescent warning on application of 'Class to an incomplete type.
9831
9832         * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
9833         prevent obsolescent warning on application of 'Class to an incomplete
9834         type.
9835
9836 2007-08-14  Pascal Obry  <obry@adacore.com>
9837
9838         * s-fileio.adb (Is_Open): Add check for usability of the underlying
9839         file stream.
9840
9841 2007-08-14  Cyrille Comar  <comar@adacore.com>
9842
9843         * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
9844         since it is potentially used in cases implying double finalization of
9845         the same object.
9846
9847 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
9848
9849         * s-tasini.adb (Get_Stack_Info): Move this function to
9850         System.Soft_Links.Tasking because it is common to the full and the
9851         restricted run times.
9852         (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
9853         in SSL.Tasking.Init_Tasking_Soft_Links.
9854
9855         * s-solita.adb (Get_Stack_Info): Function moved from
9856         System.Tasking.Initialization because it is common to the full and the
9857         restricted run times.
9858         (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
9859
9860 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
9861
9862         * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
9863         s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
9864         (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
9865         parameter.
9866
9867         * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
9868         guard to 12K.
9869
9870 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
9871
9872         * s-veboop.adb (SU): New named number initialized to
9873         System.Storage_Unit.
9874         (True_Val): The initialization expression is revised to use SU (=
9875         Storage_Unit) rather than assuming 8 for the component size of an
9876         unpacked Boolean array.
9877
9878 2007-08-14  Tristan Gingold  <gingold@adacore.com>
9879
9880         * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
9881
9882         * tb-ivms.c: New file.
9883
9884         * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
9885
9886 2007-08-14  Geert Bosch  <bosch@adacore.com>
9887
9888         * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
9889         s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
9890         Add required linker pragmas for automatically linking with the gnalasup
9891         linear algebra support library, and the systems math library.
9892         Rename cdot to cdotu and zdot to zdotu.
9893         Update header comment to describe purpose of package.
9894
9895 2007-08-14  Thomas Quinot  <quinot@adacore.com>
9896
9897         * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
9898         an explicitly specified Associated_Final_Chain, use that list.
9899         (Expand_N_Package_Body): Build dispatch tables of library level tagged
9900         types.
9901         (Expand_N_Package_Declaration): Build dispatch tables of library level
9902         tagged types. Minor code cleanup.
9903
9904 2007-08-14  Vincent Celier  <celier@adacore.com>
9905
9906         * gnatchop.adb (Terminate_Program): Remove exception and use
9907         Types.Terminate_Program instead.
9908
9909         * osint.ads, osint.adb (Current_Exit_Status): New global variable
9910         (Find_Program_Name): Added protection against empty name.
9911         (OS_Exit_Through_Exception): New procedure
9912
9913         * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
9914         (OS_Exit_Default): New procedure that contains the previous
9915         implementation of procedure OS_Exit.
9916         (Final_Value): Remove obsolete Interix stuff.
9917
9918 2007-08-14  Thomas Quinot  <quinot@adacore.com>
9919
9920         * g-socket.ads: Reorganize example code so that it also works on
9921         Windows XP.
9922
9923 2007-08-14  Tristan Gingold  <gingold@adacore.com>
9924
9925         * g-trasym.ads: AIX now supports symbolic backtraces.
9926
9927 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
9928
9929         * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
9930         units being loaded to detect circularities. A circularity may be
9931         present even if the current chain of pending units to load starts from
9932         a limited_with_clause.
9933
9934         * lib-load.ads: Change profile of Load_Unit to use a with_clause
9935         rather than a boolean flag, in order to detect circularities in
9936         with_clauses.
9937
9938         * par-load.adb: Use current with_clause in calls to Load_Unit, rather
9939         than propagating the From_Limited_With flag, in order to handle
9940         properly circularities involving with_clauses.
9941
9942 2007-08-14  Nicolas Setton  <setton@adacore.com>
9943
9944         * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
9945         warnings.
9946
9947 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
9948
9949         * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
9950         to build for libgnala.
9951         libgnat: Add rules to build libgnala.a
9952         (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
9953         target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
9954         Add s-osinte-vxworks-kernel.adb to the target pairs of the
9955         kernel run-time lib for VxWorks 6, which would provide a different
9956         implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
9957         x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
9958         running ZCX by default.
9959         Add g-sttsne-locking to LynxOS version.
9960         Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
9961         On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
9962
9963         * system-darwin-x86.ads: New file.
9964
9965         * Make-lang.in: Delete files before copying onto them, so if they are
9966         read-only, the copy won't fail.
9967         Update dependencies
9968
9969 2007-08-14  Pascal Obry  <obry@adacore.com>
9970
9971         * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
9972         naming scheme.
9973
9974 2007-08-14  Vincent Celier  <celier@adacore.com>
9975
9976         * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
9977         (Gcc): Initialize Gcc_Name at the first call
9978
9979 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
9980
9981         * sem_ch7.adb (Analyze_Package_Specification): Do not install private
9982         with_clauses of the enclosing unit when analyzing the package
9983         specification of a nested instance.
9984
9985 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
9986
9987         * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
9988         (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
9989         Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
9990         layout of N_Allocator.
9991
9992 2007-08-14  Thomas Quinot  <quinot@adacore.com>
9993
9994         * rtsfind.adb (Check_RPC): Add PCS version check.
9995
9996         * gnatvsn.ads, gnatvsn.adb: Add PCS version.
9997         (Gnat_Free_Software): New function.
9998
9999         * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
10000         the PCS_Version value from s-parint, used to check that it is consistent
10001         with what exp_dist expects.
10002
10003         * s-parint.ads (PCS_Version): New entity for checking consistency
10004         between exp_dist and PCS.
10005
10006         * gen-soccon.c: (SO_REUSEPORT): New constant.
10007
10008 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
10009
10010         * a-calfor.adb (Image (Duration; Boolean)): Change type of local
10011         variable Sub_Second to Duration in order to accomodate a larger range
10012         of arithmetic operations.
10013
10014 2007-08-14  Bob Duff  <duff@adacore.com>
10015
10016         * g-sttsne-locking.ads: Move comments from spec to body.
10017         * g-sttsne-locking.adb: Move comments from spec to body.
10018         * g-sttsne-vxworks.ads: Removed.
10019         * g-sttsne-vxworks.adb: Removed.
10020
10021 2007-08-11  Ian Lance Taylor  <iant@google.com>
10022
10023         * misc.c (gnat_get_alias_set): Change return type to
10024         alias_set_type.
10025
10026 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10027
10028         * decl.c, utils2.c: Fix whitespace in last change.
10029
10030 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10031
10032         * decl.c (compare_field_bitpos): Constify.
10033         * utils2.c (compare_elmt_bitpos): Likewise.
10034
10035 2007-07-27  Aurelien Jarno  <aurelien@aurel32.net>
10036
10037         * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by 
10038         anonymous access type.
10039         (pthread_sigmask): Now take an access sigset_t.
10040
10041 2007-07-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
10042
10043         * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
10044         
10045 2007-06-21  Eric Botcazou  <ebotcazou@adacore.com>
10046
10047         PR tree-optimization/25737
10048         * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
10049
10050 2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10051
10052         * trans.c (Attribute_to_gnu): When subtracting an
10053         offset from a pointer, use POINTER_PLUS_EXPR with
10054         NEGATE_EXPR instead of MINUS_EXPR.
10055         (gnat_to_gnu): Likewise.
10056         * utils.c (convert): When converting between
10057         thin pointers, use POINTER_PLUS_EXPR and sizetype
10058         for the offset.
10059         * utils2.c (known_alignment): POINTER_PLUS_EXPR
10060         have the same semantics as PLUS_EXPR for alignment.
10061         (build_binary_op): Add support for the semantics of
10062         POINTER_PLUS_EXPR's operands.
10063         When adding an offset to a pointer, use POINTER_PLUS_EXPR.
10064
10065 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
10066
10067         * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
10068         of get_signed_or_unsigned_type.
10069         * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
10070
10071 2007-06-11  Bob Duff  <duff@adacore.com>
10072             Thomas Quinot  <quinot@adacore.com>
10073
10074         * g-stsifd-sockets.adb (Create): Work around strange behavior of
10075         'bind' on windows that causes 'connect' to fail intermittently, by
10076         retrying the 'bind'.
10077         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
10078
10079 2007-06-10  Duncan Sands  <baldrick@free.fr>
10080
10081         * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
10082         than to void, for the fields when making a new fat pointer type.
10083         (gnat_substitute_in_type): Now substitute_in_type.
10084         * gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
10085         * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
10086         * utils.c (update_pointer_to): Update fat pointers by updating the
10087         dummy node pointers used for the fields.
10088
10089 2007-06-06  Thomas Quinot  <quinot@adacore.com>
10090             Bob Duff  <duff@adacore.com>
10091
10092         * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
10093         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads, 
10094         g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
10095         constant Thread_Blocking_IO, always True by default, set False
10096         on a per-runtime basis.
10097         (Need_Netdb_Buffer): New constant.
10098
10099         * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
10100         g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
10101         files.
10102
10103         * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
10104         g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
10105         Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
10106         child package Task_Safe_NetDB
10107         (Host_Error_Messages): Add stub body.
10108         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
10109
10110         * g-soccon-mingw.ads: Add Windows-specific constants.
10111         (Need_Netdb_Buffer): New constant.
10112         (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
10113         wrapper and import inet_addr(3) from the standard sockets library
10114         directly instead.
10115         (In_Addr): Add alignment clause.
10116         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
10117
10118 2007-06-06  Robert Dewar  <dewar@adacore.com>
10119
10120         * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
10121         s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
10122         s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
10123         s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
10124         s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
10125         s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
10126         a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
10127         a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
10128         a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
10129         g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
10130         g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
10131         i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
10132         s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
10133         s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
10134         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
10135         s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
10136         s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
10137         s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
10138         s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
10139         s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
10140         s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
10141         s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
10142         s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
10143         s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
10144         s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
10145         s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
10146         s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
10147         s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
10148         s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
10149         s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
10150         s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
10151         a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
10152         Unchecked_* by Ada.Unchecked_*
10153
10154 2007-06-06  Robert Dewar  <dewar@adacore.com>
10155
10156         * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
10157         s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
10158         g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
10159         output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
10160         g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
10161         a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
10162
10163         * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
10164         s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
10165         s-tasloc.adb, s-tasloc.ads: New files.
10166
10167 2007-06-06  Bob Duff  <duff@adacore.com>
10168
10169         * g-expect-vms.adb: 
10170         (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
10171         * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
10172         (Send_Signal, Close): Raise Invalid_Process if the process id is
10173         invalid.
10174         (Pattern_Matcher_Access): Is now a general access type to be able to
10175         use aliased string.
10176
10177 2007-06-06  Thomas Quinot  <quinot@adacore.com>
10178             Arnaud Charlet  <charlet@adacore.com>
10179
10180         * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
10181         (SIGEMT is now used instead of SIGTERM on AIX).
10182
10183         * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
10184         (Time_Slice_Supported): Set to True.
10185         Use SIGEMT instead of SIGTERM as SIGADAABORT.
10186
10187 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
10188
10189         * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
10190         (Time, Time)): Use To_Relative_Time rather than manual calculation to
10191         express the bounds of Duration as Time. Raise Time_Error when the
10192         result is greater or equal to the higher bound of Duration (on the
10193         margin case).
10194         ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
10195         Ada_High_And_Leaps.
10196         ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
10197         Ada_High_And_Leaps.
10198         ("-" (Time, Time)): Reorder code.
10199         (All_Leap_Seconds): Removed.
10200         (Arithmetic_Operations.Add): Remove sign related kludge.
10201         (Arithmetic_Operations.Difference): Control the leaps seconds processing
10202         with flag Leap_Support.
10203         (Arithmetic_Operations.Subtract): Remove sign related kludge.
10204         (Check_Within_Time_Bounds): New procedure.
10205         (Clock): Control the leap seconds processing with flag Leap_Support.
10206         (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
10207         (Formatting_Operations.Split): Control the leap seconds processing with
10208         flag Leap_Support.
10209         (Formatting_Operations.Time_Of): Control the leaps seconds processing
10210         with flag Leap_Support. Adjust the year, month and day (if applicable)
10211         when the value of day seconds designates a new day.
10212         (Split): Use parameter associations for better readability. Integrate
10213         flag Is_Ada_05.
10214         (Time_Of): Use parameter associations for better readability. Integrate
10215         flag Is_Ada_05.
10216
10217         * a-calfor.adb (Split): Use parameter associations for better
10218         readability. Integrate flag Is_Ada_05.
10219         (Time_Of): Remove flag Leap_Checks. Use parameter associations for
10220         better readability. Integrate flag Is_Ada_05.
10221
10222 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
10223
10224         * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb, 
10225         s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb, 
10226         s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb, 
10227         s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads, 
10228         s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb, 
10229         s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb, 
10230         s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads, 
10231         s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads, 
10232         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads, 
10233         s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
10234         s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
10235         time when entering this routine to detect a backward clock setting
10236         (manual setting or DST adjustment), to avoid waiting for a longer delay
10237         than needed.
10238         (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
10239         Remove handling of deferred priority change, and replace by setting the
10240         task priority directly, as required by AI-188.
10241         Update comments.
10242         (Max_Task_Image_Length): New constant.
10243         Replace Warnings (Off) by Unreferenced pragma, cleaner.
10244         (Dynamic_Priority_Support): Removed, no longer needed.
10245         (Poll_Base_Priority_Change): Ditto.
10246         (Set_Ceiling): Add this procedure to change the ceiling priority
10247         associated to a lock. This is a dummy implementation because dynamic
10248         priority ceilings are not supported by the underlying system.
10249
10250         * a-dynpri.adb (Set_Priority): Take into account case where Target is
10251         accepting a RV with its priority boosted.
10252         Remove handling of deferred priority change, and replace by setting the
10253         task priority directly, as required by AI-188.
10254
10255         * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
10256         Succeeded = True.
10257         Remove handling of deferred priority change, and replace by setting the
10258         task priority directly, as required by AI-188.
10259         (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
10260         of Self_Id earlier.
10261
10262         * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
10263         (Poll_Base_Priority_Change): Removed.
10264         Code clean up: use SSL.Current_Target_Exception.
10265
10266         * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
10267         to run as this is a potentially dispatching point.
10268         (Call_Synchronous): Use Local_Defer_Abort.
10269         (Callable): Relax assertion.
10270         (Selective_Wait): Relax assertion in case abort is not allowed.
10271         Remove handling of deferred priority change, and replace by setting the
10272         task priority directly, as required by AI-188.
10273
10274         * s-tasuti.adb (Make_Passive): Adjust assertions.
10275         Remove handling of deferred priority change, and replace by setting the
10276         task priority directly, as required by AI-188.
10277
10278 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
10279
10280         * system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
10281         system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
10282         system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads, 
10283         system-vxworks-mips.ads, system-vxworks-alpha.ads, 
10284         system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads, 
10285         system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads, 
10286         system-interix.ads, system-linux-hppa.ads, system-tru64.ads, 
10287         system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads, 
10288         system-solaris-sparcv9.ads, system-vms.ads, system.ads,
10289         system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
10290         system-linux-ia64.ads: Document mapping between Ada and OS priorities.
10291         This patch changes the largest non-binary modulus from 2**31-1 to
10292         2**32-1.
10293         (Compiler_System_Version): Removed, no longer used.
10294         Clean up system files by removing flags only used on a single target.
10295         Also remove obsolete flags, only used during bootstrap from system.ads
10296         (Address): Add a pragma Preelaborable_Initialization.
10297
10298         * system-aix.ads:  Ditto.
10299         (GCC_ZCX_Support): Set to true.
10300         Update priority range on AIX and map Ada priorities to target
10301         priorities appropriately for different scheduling policies.
10302
10303         * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
10304
10305 2007-06-06  Vincent Celier  <celier@adacore.com>
10306
10307         * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
10308         mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
10309
10310         * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb, 
10311         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb, 
10312         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, 
10313         mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, 
10314         mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
10315         MLib.Tgt, containing the default versions of the exported subprograms.
10316         For each platform, create a specific version of the body of new child
10317         package MLib.Tgt.Specific that contains only the body of subprograms
10318         that are different from the default.
10319         (Archive_Builder_Append_Options): New function.
10320
10321 2007-06-06  Matthew Gingell  <gingell@adacore.com>
10322
10323         * s-osinte-aix.adb: Map Ada priorities to target priorities
10324         appropriately for different scheduling policies.
10325
10326 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
10327
10328         * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
10329         its C counterpart.
10330         Remove references to Unchecked_Conversion, and use Ada.xxx instead.
10331         Replace Unchecked_Conversion by Ada.Unchecked_Conversion. 
10332
10333 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
10334
10335         * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
10336         Noop on VMS, added for interface commonality.
10337
10338 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
10339             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10340             Olivier Hainque  <hainque@adacore.com>
10341
10342         * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
10343         renamed expression of a full renaming at toplevel.
10344         (gnat_to_gnu_entity, case object): If not defining, do not look inside
10345         the values the constant is initialized to if it is an N_Allocator.
10346         (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
10347         TYPE_SIZE_UNIT of inner types after the stride is elaborated.
10348         (make_aligning_type): Accept an extra ROOM argument for storage to be
10349         made available before the aligned field, and an extra BASE_ALIGN
10350         argument for callers to pass the alignment guaranteed to be honored for
10351         the whole aligning object. Avoid call to finish_record_type, which only
10352         interferes with the sizes we want to set.
10353         (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
10354         make_aligning_type for super-aligned objects on stack.
10355         (components_to_record): Pass the adjusted size of the type when creating
10356         fields in the qualified union for the variant part.
10357         (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
10358         (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
10359         packed array type.
10360         (maybe_pad_type): Set TYPE_USER_ALIGN.
10361         (make_aligning_type): Likewise.
10362         ALIGN argument is unsigned int.
10363         (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
10364         (gnat_to_gnu_param): Likewise, for parameters.
10365         (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
10366         if it is constant and stems from a function call.
10367         (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
10368         of the record is specified.  Adjust accordingly.
10369         (adjust_packed): New static function.
10370         (gnat_to_gnu_field): Use it to adjust the packedness setting.
10371         (components_to_record): Likewise.
10372         (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
10373         side-effects if the object is deemed constant.
10374         (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
10375         type instead of merely finalizing it.  Tidy.
10376         <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
10377         <E_Access_Type>: Likewise.
10378         (defer_debug_incomplete_list): Rename to defer_finalize_list.
10379         (defer_debug_level): Delete.
10380         (gnat_to_gnu_entity) <debug_deferred>: Likewise
10381         <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
10382         type.
10383         <E_Record_Type>: Do not explicitly defer finalizing the type.
10384         Adjust for write_record_type_debug_info renaming.
10385         <E_Subprogram_Type>: Likewise.
10386         Finalize deferred types right after deferred incomplete types are
10387         expanded.
10388         (rest_of_type_decl_compilation): New global function.
10389         (components_to_record): Rename defer_debug parameter to do_not_finalize.
10390         (components_to_record): Propagate the packedness to the fields of the
10391         qualified union type if there is a variant part.
10392         (gnat_to_gnu_entity) <E_Array_Type>: Use new function
10393         instead of inline code to adjust the XUT field offsets.
10394         (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
10395         <E_Record_Subtype>: Do not let finish_record_type compute the sizes
10396         and write the debug info if the type derives from a discriminated one.
10397         (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
10398         <E_Array_Subtype>: Likewise.
10399         <E_String_Literal_Subtype>: Likewise.
10400         (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
10401         an alignment clause.
10402         (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
10403         before giving warning.
10404         (prepend_one_attribute_to): New function, helper to prepend an attribute
10405         to an attribute list.
10406         (gnat_to_gnu_entity) <E_Procedure>: Use it.
10407         (prepend_attributes): Likewise.
10408         (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
10409         <E_Array_Type>: Declare the padding type for the element type, if any.
10410         <E_Array_Subtype>: Likewise.
10411         (defer_limited_with): New variable.
10412         (Gigi_Equivalent_Type): New function.
10413         (gnat_to_gnu_entity): Use it at start and use result throughout.
10414         (gnat_to_gnu_entity, case E_Access_Type): Rework to use
10415         Gigi_Equivalent_Type, support Limited_With, allow two levels of
10416         indirection, precompute if unconstrained array to simplify logic, and
10417         use defer_limited_with to defer elaboration of some types from limited
10418         with.
10419         (finalize_from_with_types): New function.
10420
10421 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
10422             Eric Botcazou  <ebotcazou@adacore.com>
10423             Tristan Gingold  <gingold@adacore.com>
10424             Olivier Hainque  <hainque@adacore.com>
10425
10426         * trans.c (Identifier_to_gnu): Change test for deferred constant by
10427         adding guard that the entity is an E_Constant before testing presence
10428         of Full_view (and remove unnecessary test that entity is not a type).
10429         For a CONST_DECL used by reference, manually retrieve
10430         the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
10431         (struct language_function): Move from utils.c to here.
10432         (struct parm_attr): New structure.
10433         (parm_attr, parm_attr vector, parm_attr GC vector): New types.
10434         (f_parm_attr_cache): New macro.
10435         (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
10436         expressions for the 'First, 'Last and 'Length attributes of the
10437         unconstrained array IN parameters.
10438         (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
10439         Allocate the information structure for the function earlier, as well
10440         as the language-specific part.
10441         If the parameter attributes cache has been populated, evaluate the
10442         cached expressions on entry.
10443         (takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
10444         N_Procedure_Call_Statement and N_Indexed_Component.
10445         (Pragma_to_gnu): Translate inspection_point to an asm statement
10446         containaing a comment and a reference to the object (either its address
10447         for BLKmode or its value).
10448         (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
10449         to go to DECL_INITIAL. Together with the size constraint relaxation
10450         in create_var_decl, enlarges the set of situations in which an
10451         identifier may be used as an initializer without implying elaboration
10452         code.
10453         (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
10454         DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
10455         node.
10456         (maybe_stabilize_reference): Remove lvalues_only parameter.
10457         (gnat_stabilize_reference): Adjust for above change.
10458         (gnat_to_gnu): Do not set location information on the result
10459         if it is a reference.
10460         (add_cleanup): Add gnat_node parameter and set the location of the
10461         cleanup to it.
10462         (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
10463         (Exception_Handler_to_gnu_zcx): Likewise.
10464         (gigi): Remove the cgraph node if the elaboration procedure is empty.
10465         (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
10466         the former right after the latter.
10467         (start_stmt_group): Make global.
10468         (end_stmt_group): Likewise.
10469         (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
10470         vars.
10471         (gnu_program_error_label_stack): Likewise.
10472         (gigi): Initialize them.
10473         (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
10474         (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
10475         New cases.
10476         (push_exception_label_stack): New function.
10477         (takes_address): New function.
10478
10479         * utils.c (struct language_function): Move to trans.c from here.
10480         (unchecked_convert): Do not wrap up integer constants in
10481         VIEW_CONVERT_EXPRs.
10482         (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
10483         the latter for aggregate types, unexpected by later passes, and relax an
10484         arbitrary size constraint on the former.
10485         (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
10486         to compare the sizes.
10487         (convert_vms_descriptor): When converting to a fat pointer type, be
10488         prepared for a S descriptor at runtime in spite of a SB specification.
10489         (shift_unc_components_for_thin_pointers): New function.
10490         (write_record_type_debug_info): For variable-sized fields, cap the
10491         alignment of the pointer to the computed alignment.
10492         (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
10493         If REP_LEVEL is 2, do not compute the sizes.
10494         (build_vms_descriptor): Adjust for new prototype of finish_record_type.
10495         (build_unc_object_type): Likewise.
10496         (declare_debug_type): New function.
10497
10498         * ada-tree.def: USE_STMT: removed (not emitted anymore).
10499
10500         * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
10501         no statement is expandable anymore.
10502         (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
10503         (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
10504         when the user requested it explicitely.
10505         (gnat_post_options): By default, set flag_eliminate_unused_debug_types
10506         to 0 for Ada.
10507         (get_alias_set): Return alias set 0 for a type if
10508         TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
10509
10510         * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
10511         (DECL_FUNCTION_STUB): New accessor macro.
10512         (SET_DECL_FUNCTION_STUB): New setter macro.
10513
10514         * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
10515
10516         * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
10517         declarations.
10518
10519 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
10520
10521         * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
10522         Rename to Abort_Task_Interrupt to be able to keep the same interface
10523         as the rest of the targets.
10524
10525         * s-osinte-vxworks.ads s-osinte-vxworks.adb
10526         (To_VxWorks_Priority): Remove explicit "in" mode indicator
10527
10528         * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
10529         New files.
10530
10531 2007-06-06  Robert Dewar  <dewar@adacore.com>
10532
10533         * a-chahan.ads: Remove obsolescent pragmas
10534
10535         * a-chlat1.ads: Minor reformatting
10536
10537 2007-06-06  Robert Dewar  <dewar@adacore.com>
10538
10539         * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
10540         for Errout
10541
10542         * errout.adb: New Finalize/Compilation_Errors/Output_Messages
10543         implementation
10544
10545         * errout.ads (Finalize): Changed interface
10546         (Output_Messages): New procedure
10547         (Compilation_Errors): New Interface
10548
10549         * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
10550         Finalize/Output_Messages interface for Errout
10551         (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
10552         Errout.
10553
10554 2007-06-06  Thomas Quinot  <quinot@adacore.com>
10555             Olivier Hainque  <hainque@adacore.com>
10556             Robert Dewar  <dewar@adacore.com>
10557
10558         * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
10559         check.
10560         (Raise_Current_Excep): Call Debug_Raise_Exception just before
10561         propagation starts, to let debuggers know about the event in a reliable
10562         fashion.
10563         (Local_Raise): Moved to System.Exceptions
10564         More convenient to have this as a separate unit
10565
10566         * s-except.adb, s-except.ads: New files.
10567
10568         * a-exextr.adb (Unhandled_Exception): Delete - replaced by
10569         Debug_Unhandled_Exception in System.Exceptions where it belongs
10570         together with a couple of other debug helpers.
10571         (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
10572         the former Unhandled_Exception.
10573
10574         * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
10575         (Warn_No_Exception_Propagation): New procedure
10576         (Warn_If_No_Propagation): Rewritten for new warning generation
10577         (Expand_Exception_Handlers): New warning generation
10578         (Expand_N_Raise_xxx_Error): Rewritten for new warnings
10579         (Add_Exception_Label): Use Special_Exception_Package_Used for test
10580         instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
10581         (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
10582         even if restriction is set (makes life easier in Check_Returns)
10583         (Expand_Local_Exception_Handlers): Follow renamed entity chain when
10584         checking exception identities.
10585         (Expand_Local_Exception_Handlers): Do not optimize when all others case
10586         (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
10587         block for handler (used by Check_Returns)
10588         (Expand_Local_Exception_Handlers): Local_Raise now takes an address
10589         (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
10590         remove all exception handlers when optimizing local raise statements.
10591         (Find_Local_Handler): Use Get_Renamed_Entity
10592         (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
10593         marked analyzed after expanding exception handlers, do not generate
10594         redundant cleanup actions, because they have been constructed already.
10595
10596 2007-06-06  Thomas Quinot  <quinot@adacore.com>
10597
10598         * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
10599         presence of this categorization pragma is mandated by the language.
10600         (Limited_Controlled): Add missing pragma Preelaborable_Initialization
10601         for this type.
10602
10603 2007-06-06  Vincent Celier  <celier@adacore.com>
10604             Robert Dewar  <dewar@adacore.com>
10605
10606         * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb, 
10607         butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, 
10608         err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads, 
10609         fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads, 
10610         lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads, 
10611         makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb, 
10612         par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb, 
10613         prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads, 
10614         prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb, 
10615         sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb, 
10616         uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
10617         ali.ads, ali.adb: 
10618         Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
10619         package Namet. Make File_Name_Type and Unit_Name_Type types derived from
10620         Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
10621         Use variables of types File_Name_Type and Unit_Name_Type in error
10622         messages.
10623         (Get_Name): Add parameter Ignore_Special, and set it reading file name
10624         (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
10625         here.
10626         Define flags Flag217-Flag230 with associated subprograms
10627         (Flag_Word5): New record type.
10628         (Flag_Word5_Ptr): New access type.
10629         (To_Flag_Word5): New unchecked conversion.
10630         (To_Flag_Word5_Ptr): Likewise.
10631         (Flag216): New function.
10632         (Set_Flag216): New procedure.
10633
10634 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
10635
10636         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
10637         instead of 'Size.
10638
10639         * a-stwifi.ads, a-stzfix.ads: Minor reformatting
10640
10641 2007-06-06  Javier Miranda  <miranda@adacore.com>
10642
10643         * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
10644         the package.
10645         (Object_Specific_Data_Array): This is now internal to the package.
10646         (Object_Specific_Data): This is now internal to the package.
10647         (Select_Specific_Data_Element): This is now internal to the package.
10648         (Select_Specific_Data_Array): This is now internal to the package.
10649         (Select_Specific_Data): This is now internal to the package.
10650         (Offset_To_Top_Function_Ptr): This is now public.
10651         (To_Offset_To_Top_Function_Ptr): Removed.
10652         (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
10653          local to subprogram Offset_To_Top.
10654         (Predefined_DT): Removed.
10655         (Typeinfo_Ptr): Removed.
10656         (OSD): This function is now internal to this package.
10657         (SSD): This function is now internal to this package.
10658         (DT): New function that displaces the pointer to the table of primitives
10659          to get access to the enclosing wrapper record.
10660         (IW_Membership): Code cleanup.
10661         (Offset_To_Top): Code cleanup.
10662         (Predefined_DT): Removed.
10663         (Register_Interface_Tag): Removed.
10664         (Set_Interface_Table): Removed.
10665         (Set_Offset_Index): Removed.
10666         (Set_Offset_To_Top): Code cleanup.
10667         (Set_OSD): Removed.
10668         (Set_Signature): Removed.
10669         (Set_SSD): Removed.
10670         (Set_Tagged_Kind): Removed.
10671         (Typeinfo_Ptr): Removed.
10672         (TSD): Removed.
10673         (Displace): Add missing check on null actual.
10674
10675         * exp_disp.ads, exp_disp.adb
10676         (Select_Expansion_Utilities): Removed.
10677         (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
10678         (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
10679         the interface requires a new parameter.
10680         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
10681         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
10682         calls to subprograms Build_T, Build_S, etc. by the corresponding code.
10683         Done to remove package Select_Expansion_Utilities.
10684         (Make_DT): New implementation for statically allocated dispatch tables.
10685         (Make_Secondary_DT): Moved to the scope of Make_DT.
10686         (Register_Primitive): Code cleanup plus incoporate the use of the new
10687         function DT_Address_Attribute.
10688         (Expand_Interface_Thunk): The profile of this subprogram has been
10689         changed to return the Thunk_Id and the corresponding code.
10690         (Fill_DT_Entry): Removed. Its functionality is now provided by
10691         subprogram Register_Primitive.
10692         (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
10693         subprogram Register_Primitive.
10694         (Register_Primitive): New subprogram that incorporates the previous
10695         functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
10696         (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
10697         was only required to call Make_DT_Access_Action, which is now removed.
10698         (Ada_Actions): Removed
10699         (Action_Is_Proc): Removed
10700         (Action_Nb_Arg): Removed
10701         Replace all the calls to Make_DT_Access_Action by direct calls to
10702         Make_Procedure_Call_Statement or Make_Function_Call.
10703         (Set_DTC_Entity_Value): New subprogram.
10704         (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
10705         (Expand_Interface_Thunk): Add missing support for primitives that are
10706         functions with a controlling result (case in which there is no need
10707         to generate the thunk).
10708
10709         * exp_atag.ads, exp_atag.adb
10710         (Build_DT): New subprogram that displaces the pointer to reference the
10711         base of the wrapper record.
10712         (Build_Typeinfo_Offset): Removed.
10713         (RTE_Tag_Node): Removed.
10714         (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
10715         (Build_Get_RC_Offset): Removed.
10716         (Build_Inherit_Predefined_Prims): Removed.
10717         (Build_Inherit_TSD: Removed.
10718         (Build_New_TSD): Removed.
10719         (Build_Set_External_Tag): Removed.
10720         (Build_Set_Predefined_Prim_Op_Address): Add documentation.
10721         (Build_Set_Prim_Op_Address): Add documentation.
10722         (Build_Set_TSD): Removed.
10723
10724         * rtsfind.ads, rtsfind.adb
10725         (Load_Fail): If load fails and we are not in configurable run-time
10726         mode, then raise Unrecoverable_Error.
10727         (Text_IO_Kludge): Generate an error message if a run-time library is
10728         not available in a given run-time (ie. zfp run-time).
10729         (RTE_Record_Component): Add code to check that the component we search
10730         for is not found in two records in the given run-time package.
10731         (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
10732         (RE_DT_Predef_Prims_Offset): New entity
10733         (RE_Static_Offset_To_Top): New entity
10734         (RE_HT_Link): New entity.
10735         (System_Address_Image): Addition of this run-time package.
10736         (RE_Address_Image): New entity.
10737         (RE_Abstract_Interface): Removed.
10738         (RE_Default_Prim_Op_Count): Removed.
10739         (RE_DT_Entry_Size): Removed.
10740         (RE_DT_Min_Prologue_Size): Removed.
10741         (RE_DT_Prologue_Size): Removed.
10742         (RE_Ifaces_Table_Ptr): Removed.
10743         (RE_Interface_Data_Ptr): Removed.
10744         (RE_Type_Specific_Data): Removed.
10745         (RE_Primary_DT): Removed.
10746         (RE_Register_Interface_Tag): Removed.
10747         (RE_Set_Offset_Index): Removed.
10748         (RE_Set_OSD): Removed.
10749         (RE_Set_SSD): Removed.
10750         (RE_Set_Signature): Removed.
10751         (RE_Set_Tagged_Kind): Removed.
10752         (RE_Address_Array): New entity.
10753         (RE_DT): New entity.
10754         (RE_Iface_Tag): New entity.
10755         (RE_Interfaces_Table): New entity.
10756         (RE_No_Dispatch_Table): New entity.
10757         (RE_NDT_Prims_Ptr): New entity.
10758         (RE_NDT_TSD): New entity.
10759         (RE_Num_Prims): New entity.
10760         (RE_Offset_To_Top_Function_Ptr): New entity.
10761         (RE_OSD_Table): New entity.
10762         (RE_OSD_Num_Prims): New entity.
10763         (RE_Predef_Prims): New entity
10764         (RE_Predef_Prims_Table_Ptr): New entity.
10765         (RE_Primary_DT): New entity.
10766         (RE_Signature): New entity.
10767         (RE_SSD): New entity.
10768         (RE_TSD): New entity.
10769         (RE_Type_Specific_Data): New entity.
10770         (RE_Tag_Kind): New entity.
10771
10772 2007-06-06  Thomas Quinot  <quinot@adacore.com>
10773
10774         * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
10775         C imported variable.
10776         (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
10777         on entry.
10778
10779 2007-06-06  Robert Dewar  <dewar@adacore.com>
10780
10781         * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
10782         character
10783
10784 2007-06-06  Vincent Celier  <celier@adacore.com>
10785
10786         * a-tifiio.adb (Put, internal): For negative numbers, check that there
10787         is room for at least one digit and the minus sign.
10788         (Put.Put_Character): Never put a character outside of the range of
10789         string To.
10790
10791 2007-06-06  Olivier Hainque  <hainque@adacore.com>
10792             Eric Botcazou  <ebotcazou@adacore.com>
10793
10794         * utils2.c (build_allocator): Provide the extra arguments to
10795         make_aligning_type for super-aligned objects allocated from the default
10796         pool. Leave enough room for a pointer before the aligning field, and
10797         store the system's allocator return value there.
10798         (build_call_alloc_dealloc): When releasing a super-aligned object,
10799         retrieve the system's allocator return value from where build_allocator
10800         has stored it, just ahead of the adjusted address we are passed.
10801         (build_call_raise): Handle properly the generation of line numbers when
10802         the node is marked No_Location.
10803         (compare_elmt_bitpos): Use tree_int_cst_compare.  Stabilize the sort
10804         by using DECL_UID on ties.
10805         (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
10806         main variant.
10807         (build_call_raise): Handle converting exception into goto; support new
10808         argument KIND.
10809         (build_component_ref): Add new arg to build_call_raise.
10810
10811 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
10812
10813         * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
10814         "." in the case of nnn.xxx when nnn terminates with an underscore.
10815         Parse the remaining "#" or ":" in the case of nnn#.xxx#
10816
10817 2007-06-06  Robert Dewar  <dewar@adacore.com>
10818
10819         * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
10820
10821 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
10822             Vincent Celier  <celier@adacore.com>
10823             Robert Dewar  <dewar@adacore.com>
10824
10825         * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
10826         needed.
10827         (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
10828         ((destructor)) for adafinal, even when switch -a is used.
10829         Do not issue pragma Linker_Destructor for adafinal when switch -a is
10830         used.
10831         (Gen_Object_Files_Options): Add formatting of Linker Options, when
10832         Output_Linker_Option_List is set. Suppress this formatting when
10833         Zero_Formatting is set.
10834         Add case for CLI_Target.
10835         (System_Restrictions_Used): New flag, used to avoid generating with of
10836         System_Restrictions and initialization of the data unless there is
10837         some use of System.Restrictions in the partition.
10838         (Check_System_Restrictions_Used): New procedure
10839
10840         * s-stalib.adb: Remove with of System.Restrictions. No longer needed
10841         since we only with this unit in the binder file if it is used elsewhere
10842         in the partition.
10843
10844 2007-06-06  Vincent Celier  <celier@adacore.com>
10845
10846         * bindusg.adb: Add line for @<response file>
10847         Add lines for new switches -R and -Z
10848
10849         * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
10850         hierarchy in the list of files of the closure when -R is used
10851         (Gnatbind): Accept arguments starting with '@' to indicate response
10852         files and take the arguments from the response files.
10853         If List_Closure is set, display the referenced files
10854
10855 2007-06-06  Javier Miranda  <miranda@adacore.com>
10856             Robert Dewar  <dewar@adacore.com>
10857             Ed Schonberg  <schonberg@adacore.com>
10858
10859         * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
10860         which the address-clause is applied to in-mode actuals (allowed by
10861         13.1(22)).
10862         (Apply_Discriminant_Check): Do not generate a check if the type is
10863         constrained by a current instance.
10864         (Activate_Division_Check): New procedure
10865         (Activate_Overflow_Check): New procedure
10866         (Activate_Range_Check): New procedure
10867         Call these new Activate procedures instead of setting flags directly
10868         (Apply_Array_Size_Check): Removed, no longer needed.
10869         Code clean up: remove obsolete code related to GCC 2.
10870         (Get_E_Length): Protect against bomb in case scope is standard
10871         (Selected_Range_Checks): If the node to be checked is a conversion to
10872         an unconstrained array type, and the expression is a slice, use the
10873         bounds of the slice to construct the required constraint checks.
10874         Improve NOT NULL error messages
10875         (Apply_Constraint_Check): If the context is a null-excluding access
10876         type, diagnose properly the literal null.
10877
10878 2007-06-06  Pascal Obry  <obry@adacore.com>
10879
10880         * clean.adb (Clean_Archive): Use untouched casing for the archive name
10881         and the corresponding .deps file.
10882         (Clean_Interface_Copy_Directory): Use untouched casing for the library
10883         src directory. Minor code-clean-up. Use untouched casing for files
10884         read into the library src dir.
10885         (Clean_Library_Directory): Idem.
10886         (Parse_Cmd_Line): Accept new switch -aP
10887
10888 2007-06-06  Javier Miranda  <miranda@adacore.com>
10889             Ed Schonberg  <schonberg@adacore.com>
10890             Robert Dewar  <dewar@adacore.com>
10891             Eric Botcazou  <ebotcazou@adacore.com>
10892             Arnaud Charlet  <charlet@adacore.com>
10893
10894         * einfo.ads, einfo.adb (Available_View): New synthesized attribute
10895         applicable to types that have the With_Type flag set. Returns the
10896         non-limited view of the type, if available, otherwise the type itself.
10897         For class-wide types, there is no direct link in the tree, so we have
10898         to retrieve the class-wide type of the non-limited view of the Etype.
10899         New attributes Static_Initialization and Static_Elaboration_Desired.
10900         Remove the pragma Thread_Body, and the associated flag
10901         Is_Thread_Body in entities, and all related code.
10902         (Suppress_Value_Tracking_On_Call): New flag
10903         E_Exception has Esize and Alignment fields
10904         (Universal_Aliasing): New function.
10905         (Set_Universal_Aliasing): New procedure.
10906         (Write_Entity_Flags): Deal with Universal_Aliasing flag.
10907         (Check_Nested_Access): New procedure.
10908         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
10909         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
10910         (Related_Interface): New attribute. Present in dispatch table pointer
10911         components of records. Set to point to the entity of the corresponding
10912         interface type.
10913         (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
10914         (Original_Access_Type): Remove, not needed.
10915         (Root_Type): Handle properly subtypes of class-wide-types.
10916         Update comments.
10917
10918         * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
10919         class-wide types visible through limited-with clauses.
10920         (Try_Primitive_Operation): When examining all primitive operations of a
10921         tagged type, do not consider subprograms labeled as hidden unless they
10922         belong to a private generic type with a tagged parent.
10923         (Try_Object_Operation): Extensive rewriting, to handle properly various
10924         overloading cases, when several ancestors may have class-wide operations
10925         that are possible candidates, and when the overloaded functions return
10926         array types and have defaulted parameters so that the call may be
10927         interpreted as an indexing.
10928         (Analyze_Allocator): Remove Mark_Allocator and its invocation.
10929         (Process_Function_Call): use Next, rather than Next_Actual, to analyze
10930         successive actuals before analyzing the call itself.
10931         (Try_Primitive_Operation): A primitive operation is compatible with the
10932         prefix if the prefix has a synchronized type and the type of the formal
10933         is its corresponding record, as can be the case when the primitive
10934         operation is declared outside of the body of the type.
10935         (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
10936         perform homonym traversal, looking for class-wide operation matches
10937         (formerly done in statements of Try_Class_Wide_Operation). Matches on
10938         access parameters are now restricted to anonymous access types.
10939         (Mark_Allocator): An allocator with a discriminant association parent is
10940         a coextension.
10941         (Try_One_Prefix_Interpretation): If the type of the object is
10942         incomplete, as can be happen when it is a limited view obtained through
10943         a limited_with_clause, the selected component is not part of a prefixed
10944         call.
10945         (Complete_Object_Operation): Diagnose properly an object that is not
10946         aliased when the corresponding controlling formal is an access
10947         parameter.
10948         (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
10949         ambiguous calls in prefixed notation, where two primitives differ only
10950         in that the controlling argument of one is an access parameter.
10951
10952         * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
10953         whether a function that returns an unconstrained type can be inlined.
10954         (Process_Formals): Diagnose properly the illegal use of an incomplete
10955         type in the profile of an access_to_subprogram declaration.
10956         (Check_Synchronized_Overriding): Nothing check for concurrent types, the
10957         operations are attached to the corresponding record.
10958         (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
10959         When processing a primitive of a concurrent type which implements an
10960         interface change the type of all controlling formals to that of the
10961         corresponding record type.
10962         (Check_Synchronized_Overriding): Relax the conditional logic when trying
10963         to determine the tagged type to which a primitive belongs.
10964         (Check_Conventions): Capture condition to ignore a primitive operation
10965         (which is shared between the loop in Check_Conventions and the one in
10966         Check_Convention) in a new local function Skip_Check.
10967         (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
10968         confusion with Check_Conventions' own Prim_Op local variable.
10969         (Create_Extra_Formals): Test for a tagged result type rather than a
10970         controlling result when determining whether to add a BIP_Alloc_Form
10971         formal and a BIP_Final_List formal to the function.
10972         (Check_Conformance); For parameters that are anonymous access types,
10973         subtype conformance requires that the not null and the constant
10974         indicators must match
10975         (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
10976         to retrieve the appropriate type when processing a concurrent type
10977         declared within a generic. Minor comment reformatting. Change invocation
10978         of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
10979         mitive.
10980         (Analyze_Subprogram_Body): If the return type of a function is an
10981         anonymous access to the limited view of a class-wide type, and the
10982         non-limited view of the type is available, update the type of the
10983         function so that code can be generated.
10984         (Process_Formals): In case of access-subtype itype whose designated
10985         type is also an itype (situation that happens now with access to
10986         subprograms) we mark the access-type itype with the Has_Delayed_Freeze
10987         attribute to avoid backend problems.
10988         (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
10989         init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
10990         anonymous types' designated types are same before testing
10991         Subtypes_Statically_Match.
10992         (Create_Extra_Formals): Test for a named access parameter that is a
10993         controlling formal as an additional condition for adding an
10994         accessibility level formal. This can occur in the subp type created for
10995         dispatching calls in Expand_Dispatching_Call, and allows calling
10996         Create_Extra_Formals from that procedure rather than special-casing the
10997         extra formals there.
10998         (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
10999         when the function has a controlling result.
11000         (Check_Returns): Add much more knowledge of the optimization of local
11001         raise statements to gotos, to retain proper warnings in this case.
11002         (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
11003         nodes when looking for last statement.
11004
11005         * sem_type.ads, sem_type.adb (Specific_Type): Add support for
11006         class-wide types visible through limited with clauses.
11007         (Add_One_Interp): If the operands are anonymous access types, the
11008         predefined operator on universal_access is immediately visibles
11009         (Find_Unique_Type): Handle anonymous access to subprogram types just as
11010         other anonymous access types.
11011         (Disambiguate): Take into account CIL convention.
11012         (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
11013
11014 2007-06-06  Robert Dewar  <dewar@adacore.com>
11015
11016         * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
11017         sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
11018         elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
11019         Fix lower bound of tables.
11020         Add rep clauses.
11021
11022         * nlists.adb: Ditto.
11023         (Prev_Node, Next_Node): Change index type to Int so that it properly
11024         covers the range First_Node_Id - 1 up.
11025
11026 2007-06-06  Javier Miranda  <miranda@adacore.com>
11027             Ed Schonberg  <schonberg@adacore.com>
11028             Bob Duff  <duff@adacore.com>
11029             Hristian Kirtchev  <kirtchev@adacore.com>
11030
11031         * exp_aggr.ads, exp_aggr.adb: 
11032         (Build_Record_Aggr_Code): Add missing initialization of secondary tags
11033         in extension aggregates.
11034         (Flatten): Other conditions being met, an aggregate is static if the
11035         low bound given by component associations is different from the low
11036         bound of the base index type.
11037         (Packed_Array_Aggregate_Handled): If the component type is itself a
11038         packed array or record, the front-end must expand into assignments.
11039         (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
11040         Init_Pr, instead of Ancestor_Is_Expression.
11041         (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
11042         coextension chain root, either generate a list controller or use the
11043         already existing one.
11044         (Static_Array_Aggregate): New procedure to construct a positional
11045         aggregate that can be handled by the backend, when all bounds and
11046         components are compile-time known constants.
11047         (Expand_Record_Aggregate): Force conversion of aggregates of tagged
11048         types covering interface types into assignments.
11049         (Replace_Type): move to Build_Record_Aggr_Code.
11050         (Expand_Record_Aggr_Code): if the target of the aggregate is an
11051         interface type, convert to the definite type of the aggregate itself,
11052         so that needed components are visible.
11053         (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
11054         components and the context is an extended return statement do not
11055         create a transient block for it, to prevent premature finalization
11056         before the return is executed.
11057         (Gen_Assign): Do not generate a call to deep adjust routine if the
11058         component type is itself an array of controlled (sub)-components
11059         initialized with an inner aggregate.
11060         (Component_Check): New name for Static_Check. This name is now more
11061         appropriate, and documentation is added which was missing.
11062         (Component_Check): Add test for bit aligned component value
11063         (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
11064         Tagged_Comps, name is more appropriate given added function below.
11065         (Component_Not_OK_For_Backend): Check for bit aligned component ref.
11066
11067 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
11068             Javier Miranda  <miranda@adacore.com>
11069             Robert Dewar  <dewar@adacore.com>
11070
11071         * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
11072         Terminated: Add unchecked type conversion from System.Address to
11073         System.Tasking.Task_Id when calling the predefined primitive
11074         _disp_get_task_id.
11075         Disable new Ada 05 accessibility check for JVM.NET targets, which
11076         cannot be implemented in a practical way.
11077         (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
11078         the sources always references the tag of the actual object. Therefore,
11079         if 'Tag is applied in the sources to class-wide interface objects we
11080         generate code that displaces "this" to reference the base of the object.
11081         (Expand_N_Attribute_Reference, case Size): Return specified size if
11082         known to front end.
11083         (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
11084         has code that displaces the pointer of the object to manage interface
11085         types. However this code must not be executed when the prefix is a
11086         subprogram. This bug caused the wrong expansion of the internally
11087         generated assignment that fills the dispatch table when the primitive
11088         is a function returning a class-wide interface type.
11089         (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
11090         Set_Attribute_Name for Name_Unaligned_Valid.
11091
11092 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
11093             Gary Dismukes  <dismukes@adacore.com>
11094
11095         * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
11096         If the initialization is the equivalent aggregate of the initialization
11097         procedure of the type, do not remove it.
11098         (Expand_N_Attribute_Definition_Clause): Exclude access variables
11099         initialized to null from having their expression reset to empty and
11100         note this exception in the comment.
11101
11102 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
11103             Robert Dewar  <dewar@adacore.com>
11104             Ed Schonberg  <schonberg@adacore.com>
11105             Gary Dismukes  <dismukes@adacore.com>
11106
11107         * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
11108         Add "with" and "use" clauses for Sem_Attr.
11109         (Expand_Current_Value): Do not replace occurences of attribute
11110         references where the prefix must be a simple name.
11111
11112         * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
11113         Namet. Add new arrays Attribute_Name_Modifies_Prefix and
11114         Attribute_Requires_Simple_Name_Prefix.
11115         (Name_Modifies_Prefix): Body of new function.
11116         (Requires_Simple_Name_Prefix): Body of new function.
11117         (Resolve_Attribute, case Access): Improve error message for case of
11118         mismatched conventions.
11119         (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
11120         incomplete type.
11121         (Analyze_Attribute, case 'Access): If the type of the prefix is a
11122         constrained subtype for a nominal unconstrained type, use its base type
11123         to check for conformance with the context.
11124         (Resolve_Attribute): Remove test of the access type being associated
11125         with a return statement from condition for performing accessibility
11126         checks on access attributes, since this case is now captured by
11127         Is_Local_Anonymous_Access.
11128         (Analyze_Access_Attribute): Set Address_Taken on entity
11129         (Analyze_Attribute, case Address): Set Address_Taken on entity
11130         (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
11131         validating an access attribute whose prefix is a current instance.
11132         (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
11133         applied to dispatching operations, if freezing is required then we set
11134         the attribute Has_Delayed_Freeze in the prefix's entity.
11135         (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
11136         current scope if access of local subprogram taken
11137         (Analyze_Access_Attribute): Check legality of self-reference even if the
11138         expression comes from source, as when a single component association in
11139         an aggregate has a box association.
11140         (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
11141         the prefix if it is a protected operation and the attribute is
11142         Unrestricted_Access.
11143         (Resolve_Attribute, case 'Access): Set the Etype of the attribute
11144         reference to the base type of the context, to force a constraint check
11145         when the context is an access subtype with an explicit constraint.
11146         (Analyze_Attribute, case 'Class): If the prefix is an interface and the
11147         node is rewritten as an interface conversion. leave unanalyzed after
11148         resolution, to ensure that type checking against the context will take
11149         place.
11150
11151 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
11152             Javier Miranda  <miranda@adacore.com>
11153             Robert Dewar  <dewar@adacore.com>
11154
11155         * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
11156         wrapper when the full view of the controlling type of an inherited
11157         function that dispatches on result implements interfaces.
11158         (Expand_N_Object_Declaration): In cases where the type of the
11159         declaration is anonymous access, create finalization list for it.
11160         (Expand_N_Object_Declaration): Generate a persistent_bss directive only
11161         if the object has no explicit initialization, to match description of
11162         functionality of pragam Persistent_BSS.
11163         (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
11164         new function to build static aggregates, to replace initialization call
11165         when static initialization is desired.
11166         (Freeze_Type): Generate a list controller for an access type whenever
11167         its designated type has controlled anonymous access discriminants.
11168         (Build_Equivalent_Aggregate): New procedure to compute a static
11169         aggregate to be used as default initialization for composite types,
11170         instead of a generating a call to the initialization procedure for the
11171         type.
11172         (Build_Initialization_Call): When available, replace a call to the
11173         initialization procedure with a copy of the equivalent static aggregate
11174         for the type.
11175         (Expand_N_Object_Declaration):  Use New_Occurrence_Of in generated
11176         declarations for objects of a class-wide interface type, rather than
11177         just identifiers, to prevent visibility problems.
11178         (Expand_N_Object_Declaration): When expanding the declaration for an
11179         object of a class-wide interface type, preserve the homonym chain of
11180         the original entity before exchanging it with that of the generated
11181         renaming declaration.
11182         (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
11183         active, because there is no way to handle the exception.
11184         (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
11185         to do a minimum decoration of the Access_Disp_Table list.
11186         (Expand_Record_Controller): Avoid the addition of the controller between
11187         the component containing the tag of a secondary dispatch table and its
11188         adjacent component that stores the offset to the base of the object.
11189         This latter component is only generated when the parent type has
11190         discriminants ---documented in Add_Interface_Tag_Components).
11191         (Apply_Array_Size_Check): Removed, no longer needed.
11192         (Expand_N_Full_Type_Declaration): If the type has anonymous access
11193         components, create a Master_Entity for it only if it contains tasks.
11194         (Build_Init_Procedure): Suppress the tag assignment compiling under
11195         no run-time mode.
11196         (Freeze_Record_Type): Remove code associated with creation of dispatch
11197         table.
11198         (Init_Secondary_Tags): Update type of actuals when generating calls to
11199         Ada.Tags.Set_Offset_To_Top
11200         (Stream_Operation_OK): Disable use of streams compiling under no
11201         run-time mode
11202         (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
11203         if Has_Init_Expression set.
11204         (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
11205         Register_Primitive, which provides the same functionality.
11206         (Requires_Init_Proc): Return false in case of interface types.
11207         (Add_Secondary_Tables): Use the new attribute Related_Interface to
11208         cleanup the code.
11209         (Predefined_Primitive_Freeze): Do not assume that an internal entity
11210         is always associated with a predefined primitive because the internal
11211         entities associated with interface types are not predefined primitives.
11212         Therefore, the call to Is_Internal is replaced by a call to the
11213         function Is_Predefined_Dispatching_Operation.
11214         (Make_Eq_If): When generating the list of comparisons for the
11215         components of a given variant, omit the controller component that is
11216         present if the variant has controlled components.
11217
11218 2007-06-06  Javier Miranda  <miranda@adacore.com>
11219             Hristian Kirtchev  <kirtchev@adacore.com>
11220             Bob Duff  <duff@adacore.com>
11221
11222         * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
11223         handle the creation of finalization lists and calls for nested
11224         coextensions when the root of the chains is part of a return statement.
11225         (Inside_A_Return_Statement): New function inside Complete_Coextension_
11226         Finalization.
11227         (Expand_Record_Equality): Skip components that are interface types.
11228         (Displace_Allocator_Pointer): Add missing support for interface subtypes
11229         (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
11230         with Rewrite_Coextension. Change the condition for detecting coextension
11231         root nodes.
11232         (Is_Local_Access_Discriminant): Removed.
11233         (Rewrite_Coextension): New routine which rewrites a static coextension
11234         as a temporary and uses its unrestricted access in the construction of
11235         the outer object.
11236         (Complete_Coextension_Finalization): New routine. Generate finalization
11237         attachment calls to all delayed coextensions.
11238         (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
11239         the allocator is not a coextension itself and has delayed coextensions.
11240         If the current allocator is controlled, but also a coextension, delay
11241         the generation of the finalization attachment call.
11242         Rename local variable "Node" to "Nod" in order to avoid confusion with
11243         "Elists.Node".
11244         (Expand_Allocator_Expression): Call Adjust for initialized allocators of
11245         limited types that are not inherently limited. Such an allocator is
11246         illegal, but is generated by the expander for a return statement, to
11247         copy the result onto the secondary stack. This is the only case where a
11248         limited object can be copied. Generate code to displace the pointer
11249         to the object if the qualified expression is a class-wide interface
11250         object. Such displacement was missing and hence the copy of the object
11251         was wrong.
11252         (Apply_Accessibility_Check): Handle allocated objects initialized in
11253         place.
11254         (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
11255         and Expand_Allocator_Expression. Allocating class-wide interface objects
11256         this routine displaces the pointer to the allocated object to reference
11257         the component referencing the corresponding secondary dispatch table.
11258         Expand_Allocator_Expression): Add missing support to allocate class-wide
11259         interface objects initialized with a qualified expression.
11260         (Get_Allocator_Final_List): Test for an anonymous access type that is a
11261         function result type, and use the finalization list associated with the
11262         function scope in that case (such an anonymous type should not be
11263         treated like an access parameter's type).
11264
11265 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
11266             Gary Dismukes  <dismukes@adacore.com>
11267             Javier Miranda  <miranda@adacore.com>
11268
11269         * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
11270         controlled type, use Make_Handler_For_Ctrl_Operation to construct the
11271         required exception handler.
11272         (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
11273         properly the case of a function whose return type is a limited
11274         class-wide interface type. Modify the code of the accessibility
11275         check to handle class-wide interface objects. In this case we need to
11276         displace "this" to reference the primary dispatch table to get access
11277         to the TSD of the object (to evaluate its accessibility level).
11278         (Expand_N_Extended_Return_Statement): Test for a tagged result type
11279         rather than a controlling result as one of the conditions for
11280         generating tests of the implicit BIP_Alloc_Form formal. The
11281         initialization assignment is also handled according to whether the
11282         result is tagged instead of controlling.
11283         In the case where the init assignment is inserted in the "then" part of
11284         the allocation conditional, rewrite the target to be a dereference of
11285         the implicit BIP_Object_Access formal.
11286         If the returned value is unconstrained and created on the secondary
11287         stack, mark the enclosing block and function so that the secondary
11288         stack is not reclaimed on return.
11289         Treat returns from functions with controlling results similarly to
11290         returns from functions with unconstrained result subtypes.
11291         If the object returned is unconstrained, and an allocator must be
11292         created for it, analyze the allocator once the block for the extended
11293         return is installed, to ensure that finalizable components
11294         of the expression use the proper finalization list. Guard the call to
11295         Move_Final_List with a check that there is something to finalize.
11296         (Make_Tag_Ctrl_Assignment): Use "old" handling
11297         of controlled type assignment for virtual machines, since new code uses
11298         unsupported features (such as direct access to bytes in memory).
11299
11300 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
11301             Ed Schonberg  <schonberg@adacore.com>
11302
11303         * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
11304         accessibility actual, check for the case of an aliased object that has
11305         been rewritten as an Access attribute, and assign Prev to Prev_Orig so
11306         we fall into processing for the attribute rather than the name of the
11307         object.
11308         (Expand_Inline_Call): If an actual is a literal, and the corresponding
11309         formal has its address taken in the body, create a temporary to capture
11310         value.  If the return type is a limited interface, do not treat the
11311         return value as Controlled.
11312         (Is_In_Place_Function):  If the return type is a limited interface,
11313         treat as returning in place. The actual returned object may not always
11314         be limited, but the caller has to assume that it is returned in place.
11315         (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
11316         context of an allocator, use the correct finalization chain (that is,
11317         the chain belonging to the access type, rather than the chain belonging
11318         to the current scope).
11319         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
11320         result type rather than a controlling result as a precondition for
11321         adding an allocation form actual to a build-in-place call.
11322         (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
11323         (Freeze_Subprogram): Code cleanup. Remove all the code that register the
11324         primitive in the dispatch tables. This work is now done by Make_DT when
11325         the type is frozen.
11326         (Register_Predefined_DT_Entry): Removed.
11327         (Add_Return): If end label is not present, use sloc of last statement
11328         for generated return statement in procedure, for better gdb behavior
11329         on expanded code.
11330         (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
11331         object address nodes to ensure proper processing by routines like
11332         Insert_After*.
11333         (Expand_Call): Fix generation of validity check for parameter
11334         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
11335         the allocation form parameter if the result subtype is constrained,
11336         except when the function has a controlling result.
11337         (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
11338         rather than Is_Controlled and Has_Controlled_Component, since we want to
11339         include class-wide result types in this treatment. Also test for a
11340         controlling result, since that also requires passing a finalization
11341         list.
11342         (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
11343         even when the result subtype is constrained, to handle calls involving
11344         controlling results.
11345         (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
11346         is now called even when the result subtype is constrained, to handle
11347         calls involving controlling results.
11348         (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
11349         on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
11350         now performs the test).
11351         (Make_Build_In_Place_Call_In_Object_Declaration):
11352         Add_Alloc_Form_Actual_* is now called even when the result subtype is
11353         constrained, to handle calls involving controlling results.
11354         (Add_Return): Accomodate rewritten pattern from local raise to goto
11355         transformation, so that we still recognize an transfer statement
11356         and do the right thing here in that case.
11357         (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
11358         and end of subprogram code.
11359         (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
11360         support for primitives that are functions (without formals) with a
11361         controlling result.
11362         (Inherited_From_Formal): If the actual subtype has not generic parent
11363         type, it is not an actual for a formal derived type, and there is no
11364         operation to inherit from the formal.
11365
11366 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
11367             Thomas Quinot  <quinot@adacore.com>
11368
11369         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
11370         inserted cleanup code appropriately for GDB use.
11371         (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
11372         exception handler for Deep_Adjust or Deep_Finalize.
11373         (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
11374         Raise_From_Controlled_Operation is available, use a call to that
11375         subprogram instead of a plain "raise Program_Error" node to raise
11376         Program_Error if an exception is propagated from an Adjust or Finalize
11377         operation.
11378         (Insert_Actions_In_Scope_Around): If the statement to be wrapped
11379         appears in the optional statement list of a triggering alternative, the
11380         scope actions can be inserted directly there, and not in the list that
11381         includes the asynchronous select itself.
11382
11383 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
11384             Robert Dewar  <dewar@adacore.com>
11385             Hristian Kirtchev  <kirtchev@adacore.com>
11386
11387         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
11388         generated exception handler appropriately when debugging generated code.
11389         Deal properly with No_Exception_Propagation restriction mode.
11390         (Expand_N_Abort_Statement): Add an unchecked type conversion from
11391         System.Address to System.Tasking.Task_Id when processing the result of
11392         the predefined primitive _disp_get_task_id.
11393         (Expand_N_Asynchronous_Select): Clarify comment.
11394         (Expand_N_Protected_Type_Declaration): Minor code cleanup.
11395         (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
11396         (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
11397         (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
11398         privals and for generated call to Complete_Entry_Body, for better gdb
11399         behavior.
11400         (Copy_Result_Type): Utility to construct a parameter and result profile
11401         for protected functions whose return type is an anonymous access to
11402         subprogram.
11403         (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
11404         call the above.
11405         (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
11406         point when the local-raise-to-goto transformation has taken place.
11407
11408 2007-06-06  Javier Miranda  <miranda@adacore.com>
11409             Nicolas Setton  <setton@adacore.com>
11410
11411         * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
11412         functionality when the backend is generating code.
11413         Otherwise any serious error
11414         reported by the backend calling the frontend routine Error_Msg
11415         changes the Compilation_Mode to Check_Semantics, disables the
11416         functionality of this routine and causes the generation of
11417         spureous additional errors.
11418
11419         * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
11420         debugging information now generated by the compiler for fat-pointer
11421         types.
11422         Document the contents of DW_AT_producer in the GNAT Vendor extensions to
11423         DWARF2/3.
11424         Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
11425
11426 2007-06-06  Thomas Quinot  <quinot@adacore.com>
11427
11428         * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
11429         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
11430         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
11431         For a remote call to a function with a classwide return type, apply an
11432         E.4(18) check to the returned value.
11433         (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
11434         stream attributes of the designated type of an RACW, as they are not
11435         dispatching primitive operations.
11436
11437 2007-06-06  Geert Bosch  <bosch@adacore.com>
11438
11439         * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
11440         negative literal
11441         (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
11442         positive
11443         (Do_Divide_Fixed_Universal): Handle case of negative Frac.
11444         (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
11445         positive
11446         (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
11447
11448 2007-06-06  Javier Miranda  <miranda@adacore.com>
11449
11450         * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
11451         attribute compiling package Ada.Tags under No_Run_Time_Mode.
11452
11453 2007-06-06  Javier Miranda  <miranda@adacore.com>
11454
11455         * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
11456         deallocation of class-wide interface objects.
11457         (Expand_Dispatching_Constructor_Call): Take into account that if the
11458         result of the dispatching constructor is an interface type, the
11459         function returns a class-wide interface type; otherwise the returned
11460         object would be actual. The frontend previously accepted returning
11461         interface types because Expand_Interface_Actuals silently performed
11462         the management of the returned type "as if" it were a class-wide
11463         interface type.
11464         (Expand_Dispatching_Constructor_Call): Replace call to
11465         Make_DT_Access_Action by direct call to Make_Function_Call.
11466
11467 2007-06-06  Robert Dewar  <dewar@adacore.com>
11468             Ed Schonberg  <schonberg@adacore.com>
11469
11470         * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
11471         compute masking constant, since we now set Esize properly to the
11472         underlying size.
11473         (Create_Packed_Array_Type): Set proper Esize value adjusted as required
11474         to match the alignment.
11475         (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
11476         packed arrays of 8 bits or less.
11477
11478         * freeze.adb (Freeze_Entity): When freezing the formals of a
11479         subprogram, freeze the designated type of a parameter of an access type
11480         only if it is an access parameter.
11481         Increase size of C convention enumeration object
11482         (Freeze_Entity, array type case): Make sure Esize value is properly
11483         adjusted for the alignment if it is known.
11484         (Freeze_Entity, array type case): When checking bit packed arrays for
11485         the size being incorrect, check RM_Size, not Esize.
11486         (Freeze_Record_Type): Check for bad discriminated record convention
11487         (In_Exp_Body): Return true if the body is generated for a subprogram
11488         renaming, either an attribute renaming or a renaming as body.
11489         (Check_Itype): If the designated type of an anonymous access component
11490         is a non-protected subprogram type, indicate that it is frozen, to
11491         prevent out-of-scope freeze node at some subsequent call.
11492         (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
11493         only if the subprogram is neither imported nor exported, as well as the
11494         NCA descriptor class if the subprogram is exported.
11495
11496 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
11497             Arnaud Charlet  <charlet@adacore.com>
11498             Robert Dewar  <dewar@adacore.com>
11499             Gary Dismukes  <dismukes@adacore.com>
11500
11501         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
11502         default initialization on an imported object, when there is no
11503         initialization call generated for it.
11504         (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
11505         restriction
11506
11507         * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
11508         Static_Elaboration_Desired.
11509         Remove pragma Thread_Body.
11510         Implement a new pragma No_Body
11511         Removes the Explicit_Overriding pragma
11512         Remove Optional_Overriding pragma
11513         (Prag): Deal with Universal_Aliasing.
11514         (Name_CIL, Name_CIL_Constructor, Convention_CIL,
11515         Pragma_CIL_Constructor): New names.
11516
11517         * sem_cat.adb (Validate_Object_Declaration): An initialization that
11518         uses the equivalent aggregate of a type must be treated as an implicit
11519         initialization.
11520         (Get_Categorization): Check a unit for pragma Preelaborate only if it
11521         has none of the other categories.
11522         (Process_Import_Or_Interface_Pragma): Report an error for an attempt
11523         to apply Import to an object renaming declaration.
11524
11525         * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
11526         from a C++ class should be declared as limited and that it will be
11527         considererd limited.
11528         (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
11529         should be declared as limited and that it will be considererd limited.
11530         (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
11531         (Analyze_Pragma, case Export): Diagnose export of enumeration literal
11532         (Analyze_Pragma): Deal with Universal_Aliasing.
11533         (Sig_Flags): Likewise.
11534         (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
11535         (Overflow_Checks_Unsuppressed): New flag.
11536         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
11537         (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
11538         case of JVM or .NET targets, and compiling user code.
11539         Add debugging convenience routine rv
11540
11541 2007-06-06  Robert Dewar  <dewar@adacore.com>
11542
11543         * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
11544         are interface type.
11545         (Build_Elementary_Input_Call): For floating-point use right type in the
11546         absence of strange size or stream size clauses.
11547         (Build_Elementary_Write_Call): Same fix
11548         (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
11549         set to value that does not match base type size.
11550
11551 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
11552
11553         * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
11554         object of a limited type can be initialized with a call to a function
11555         that returns in place. If the limited type has unknown discriminants,
11556         and the underlying type is a constrained composite type, build an actual
11557         subtype from the function call, as is done for private types.
11558         (Side_Effect_Free): An expression that is the renaming of an object or
11559         whose prefix is the renaming of a object, is not side-effect free
11560         because it may be assigned through the renaming and its value must be
11561         captured in a temporary.
11562         (Has_Controlled_Coextensions): New routine.
11563         (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
11564         as is done for other limited types.
11565         (Non_Limited_Designated_Type): new predicate.
11566         (Make_CW_Equivalent_Type): Modified to handle class-wide interface
11567         objects.
11568         Remove all handling of with_type clauses.
11569
11570         * par-ch10.adb: Remove all handling of with_type clauses.
11571
11572         * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
11573         checksum if the main source could not be parsed.
11574         (Loat_Unit): When processing a child unit, determine properly whether
11575         the parent unit is a renaming when the parent is itself a child unit.
11576         Remove handling of with_type clauses.
11577
11578         * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
11579         (Set_Is_Static_Coextension): New procedure.
11580         (Has_Local_Raise): New function
11581         (Set_Has_Local_Raise): New procedure
11582         (Renaming_Exception): New field
11583         (Has_Init_Expression): New flag
11584         (Delay_Finalize_Attach): Remove because flag is obsolete.
11585         (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
11586         Remove all handling of with_type clauses.
11587         (Exception_Junk): Can now be set in N_Block_Statement
11588
11589 2007-06-06  Vincent Celier  <celier@adacore.com>
11590             Robert Dewar  <dewar@adacore.com>
11591
11592         * frontend.adb (Frontend): Return immediately if the main source could
11593         not be parsed, because of preprocessing errors.
11594
11595         * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
11596         (Gnat1drv): Exit with errors if the main source could not be parsed,
11597         because of preprocessing errors.
11598         (Check_Rep_Info): New procedure
11599
11600 2007-06-06  Robert Dewar  <dewar@adacore.com>
11601
11602         * g-hesorg.ads, g-heasor.ads,
11603         g-busorg.ads, g-bubsor.ads: Update documentation
11604         GNAT.Heap/Bubble_Sort_G is now pure
11605
11606 2007-06-06  Robert Dewar  <dewar@adacore.com>
11607
11608         * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
11609
11610 2007-06-06  Robert Dewar  <dewar@adacore.com>
11611             Ed Schonberg  <schonberg@adacore.com>
11612
11613         * g-comlin.ads, g-comlin.adb: 
11614         Add new warning for renaming of function return objects
11615
11616         * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
11617         (Tree_Read): Use size of object instead of type'object_size, since the
11618         latter is incorrect for packed array types.
11619         (Tree_Write): Same fix
11620
11621         * opt.ads: Add new warning for renaming of function return objects
11622         (Generating_Code): New boolean variable used to indicate that the
11623         frontend as finished its work and has called the backend to process
11624         the tree and generate the object file.
11625         (GCC_Version): Is now private
11626         (Static_Dispatch_Tables): New constant declaration.
11627         (Overflow_Checks_Unsuppressed): New flag.
11628         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
11629         (List_Closure): New flag for gnatbind (-R)
11630         Zero_Formatting: New flag for gnatbind (-Z)
11631         (Special_Exception_Package_Used): New flag.
11632         (Warn_On_Unrepped_Components): New flag.
11633
11634         * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
11635         unit is a compilation unit, rather than relying on its scope, so that
11636         Standard can be renamed.
11637         (Analyze_Object_Renaming): Add new warning for renaming of function
11638         return objects.
11639         Also reject attempt to rename function return object in Ada 83 mode.
11640         (Attribute_Renaming): In case of tagged types, add the body of the
11641         generated function to the freezing actions of the type.
11642         (Find_Type): A protected type is visible right after the reserved word
11643         "is" is encountered in its type declaration. Set the entity and type
11644         rather than emitting an error message.
11645         (New_Scope): Properly propagate Discard_Names to inner scopes
11646         (Check_Nested_Access): New procedure.
11647         (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
11648         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
11649
11650         * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
11651         Add new warning for renaming of function return objects
11652         (Check_References): Suppress warnings for objects whose type or
11653         base type has Warnings suppressed.
11654         (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
11655         (Set_Warning_Switch): Include new -gnatwc in -gnatwa
11656
11657 2007-06-06  Vincent Celier  <celier@adacore.com>
11658             Emmanuel Briot  <briot@adacore.com>
11659             Olivier Hainque  <hainque@adacore.com>
11660
11661         * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
11662         absolute value of Header.Block_Size when displaying the freed physical
11663         memory in traces.
11664         (Allocate): Compute Storage_Address using Integer_Address, not
11665         Storage_Offset, because the range of Storage_Offset may not be large
11666         enough.
11667         (Configure): New parameter Low_Level_Traces
11668         (Allocate, Deallocation, Free_Physically): Added low-level traces
11669         (Configure): new parameter Errors_To_Stdout.
11670         (Output_File): new subprogram
11671         (Deallocate, Dereference): Send error messages to the proper stream
11672         (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
11673         documented. Previous code would send it to the current output file
11674         defined in GNAT.IO, which might not be stdout
11675         (Is_Valid): Adjust comment to mention that a positive reply means that
11676         Header_Of may be used to retrieve the allocation header associated with
11677         the subprogram Storage address argument. Return False early if this
11678         address argument is misaligned.
11679
11680 2007-06-06  Vincent Celier  <celier@adacore.com>
11681
11682         * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
11683         switch -P
11684         (ASIS_Main): New global variable
11685         (Get_Closure): New procedure
11686         (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
11687         check, metric or pretty. Call Get_Closure in this case.
11688         (Check_Files): For GNAT LIST, check all sources of all projects when
11689         All_Projects is True.
11690         (GNATCmd): Accept -U for GNAT LIST
11691
11692 2007-06-06  Vincent Celier  <celier@adacore.com>
11693
11694         * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
11695         has been specified
11696         Correct error message when invocation of the linker fails
11697         Add explicit size clause for the C imported variables
11698         Object_List_File_Supported and Using_GNU_Linker to emphasize that
11699         we expect char size.
11700         Read target parameters earlier, since this is needed to set
11701         Target_VM properly. Also do not use -static/shared-libgcc for non GCC
11702         targets.
11703
11704 2007-06-06  Vincent Celier  <celier@adacore.com>
11705
11706         * gnatls.adb: 
11707         Add 3 spaces before the default project directory when displaying
11708         the project search path.
11709         Add new command line switch '-l' to display license information.
11710
11711 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
11712
11713         * gmem.c: Add support for timestamps on memory operations.
11714
11715         * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
11716         operations (not used currently, just foundation for future
11717         enhancements). Add possibility to perform full dump of gmem.out file.
11718         (Print_Back_Traces): Declare accesses to root arrays constants since
11719         they aren't modified.
11720         (Print_Back_Traces): allocate root arrays on the heap rather than stack.
11721
11722 2007-06-06  Vincent Celier  <celier@adacore.com>
11723
11724         * gnatsym.adb: Update Copyright notice
11725         (Parse_Cmd_Line): Accept new switch -D
11726         (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
11727          file.
11728
11729         * prj.ads (Policy): New policy Direct
11730         (Yes_No_Unknown): New enumeration type
11731         (Project_Data): New component Libgnarl_Needed
11732
11733         * prj-nmsc.adb (Check_For_Source): When recording a source file make
11734         use the untouched pathname casing.
11735         (Get_Directories): Ensure that the Display_Exec_Directory is using the
11736         proper casing on non case-sensitive platforms like Windows.
11737         (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
11738         on all platforms, as it is not possible to know which one is allowed
11739         before processing the project files.
11740         (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
11741         specified when symbol policy is Direct. Check that when there is a
11742         symbol file defined (either by default or with attribute
11743         Library_Symbol_File) it is not the same as the reference symbol file.
11744         (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
11745         (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
11746         extending projects.
11747         (Record_Ada_Source): Record a source that has been locally removed in an
11748         imported project.
11749
11750         * symbols.ads (Policy): New policy Direct
11751
11752         * symbols-vms.adb (Initialize): Take new policy Direct in case
11753         statement
11754
11755 2007-06-06  Vincent Celier  <celier@adacore.com>
11756
11757         * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
11758         Correct obvious bug (return Dir; instead of return Directory;).
11759         (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
11760
11761 2007-06-06  Thomas Quinot  <quinot@adacore.com>
11762
11763         * g-pehage.adb (Produce): Open output files in Binary mode, so that
11764         they have UNIX line endings (LF only) even on Windows, and thus pass
11765         all GNAT style checks.
11766
11767 2007-06-06  Emmanuel Briot  <briot@adacore.com>
11768
11769         * g-regpat.adb (Quote): Fix improper quoting of '.'
11770
11771 2007-06-06  Thomas Quinot  <quinot@adacore.com>
11772
11773         * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
11774         default, set False on a per-runtime basis.
11775         (Need_Netdb_Buffer): New constant.
11776
11777         * g-socket.ads, g-socket.adb: Import new package
11778         GNAT.Sockets.Thin.Task_Safe_NetDB.
11779         (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
11780         binding to obtain proper message.
11781         (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
11782         Replace various occurrences of Arry (Arry'First)'Address with the
11783         equivalent Arry'Address (GNAT always follows implementation advice from
11784         13.3(14)).
11785         (Get_Host_By_Address, Get_Host_By_Name,
11786         Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
11787         instead, rely on platform-specific task safe netdb operations provided
11788         by g-socthi.
11789
11790         * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
11791         parameter Process_Blocking_IO.
11792         (Host_Error_Messages): Add stub body.
11793         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
11794         (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
11795         Safe_Getservbyport): Move functions into new child package
11796         Task_Safe_NetDB.
11797         (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
11798         Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
11799         (In_Addr): Add alignment clause.
11800
11801 2007-06-06  Robert Dewar  <dewar@adacore.com>
11802
11803         * g-trasym.ads, g-traceb.ads: Update list of supported targets
11804         Add note about symbolic traceback
11805
11806 2007-06-06  Pascal Obry  <obry@adacore.com>
11807
11808         * hostparm.ads (Normalized_CWD): Use the host directory separator
11809         instead of the hardcoded forward slash which is not the proper
11810         character on Windows for example.
11811         (Java_VM): Removed.
11812
11813 2007-06-06  Vincent Celier  <celier@adacore.com>
11814             Arnaud Charlet  <charlet@adacore.com>
11815
11816         * a-clrefi.adb, a-clrefi.ads: New files
11817
11818         * impunit.adb: Add s-os_lib in the list of user visible units.
11819         (Non_Imp_File_Names_95): Add a-clrefi to this list
11820         Remove obsolete run-time entries.
11821         (Non_Imp_File_Names_05): Add Ada 2005 entries for:
11822          "a-exetim" -- Ada.Execution_Time
11823          "a-extiti" -- Ada.Execution_Time.Timers
11824
11825         * mlib-prj.ads, mlib-prj.adb
11826         (Build_Library): Use untouched object dir and library dir. At the
11827         same time makes sure that the checks are done using the canonical
11828         form. Removes hard-coded directory separator and use the proper host
11829         one instead.
11830         (Process_Project): Do not look in object directory to check if libgnarl
11831         is needed for a library, if there is no object directory.
11832         (Build_Library): Scan the ALI files to decide if libgnarl is needed for
11833         linking.
11834         (Build_Library): When invoking gnatbind, use a response file if the
11835         total size of the arguments is too large.
11836
11837         * Makefile.rtl: (g-sttsne): New object file.
11838         Add entry for a-clrefi, s-utf_32, System.Exceptions
11839
11840         * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
11841         (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
11842         (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
11843         Change g-string to s-string, g-os_lib to s-os_lib
11844         Change all g-utf_32 references to s-utf_32
11845
11846 2007-06-06  Tristan Gingold  <gingold@adacore.com>
11847             Olivier Hainque  <hainque@adacore.com>
11848
11849         * init.c: Do not adjust IP of an imported VMS exception of ia64.
11850         LIB$STOP is called to raise an exception and the IP of the exception
11851         is the instruction right after the call.
11852         (__gnat_adjust_context_for_raise, AIX): Implement.
11853         (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
11854          adjust_context_for_raise before Raise_From_Signal_Hanler.
11855         (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
11856         siginfo is passed to the handler, necessary to let the zcx propagation
11857         engine unwind past it.
11858
11859 2007-06-06  Olivier Hainque  <hainque@adacore.com>
11860
11861         * initialize.c (__gnat_initialize for vxworks):  Update documentation
11862         on the ZCX support, using different sets of crtstuff objects than with
11863         GCC 3.4.
11864
11865 2007-06-06  Robert Dewar  <dewar@adacore.com>
11866
11867         * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
11868         spec from body
11869         (Layout_Type): Fix recomputation of size from alignment.
11870
11871 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
11872             Javier Miranda  <miranda@adacore.com>
11873
11874         * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
11875         association in an instance.
11876         (Copy_Generic_Node): If the node is a string literal, no need to copy
11877         its descendants.
11878         (Is_Generic_Formal): For a formal subprogram, the declaration is the
11879         grandparent of the entity.
11880         (Analyze_Formal_Interface_Type): Transform into a full type declaration,
11881         to simplify handling of formal interfaces that derive from other formal
11882         interfaces.
11883         (Instantiate_Subprogram_Body): The defining unit name of the body of
11884         the instance should be a defining identifier.
11885         (Install_Formal_Packages): make global to the package, for use in
11886         instantiations of child units.
11887         (Analyze_Package_Instantiation): Do not attempt to set information on an
11888         enclosing master of an entry when expansion is disabled.
11889         (Instantiate_Type): If the actual is a tagged synchronized type and the
11890         generic ancestor is an interface, create a generic actual for the
11891         corresponding record.
11892         (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
11893         declaration, to ensure that the interface list is processed correctly.
11894         (Inline_Instance_Body): If enclosing scope is an instance body, remove
11895         its entities from visibiility as well.
11896         (Pre_Analyze_Actuals): if the actual is an allocator with  constraints
11897         given with a named association, analyze the expression only, not the
11898         discriminant association itself.
11899         (Reset_Entity): If the analysis of a selected component is transformed
11900         into an expanded name in the prefix of a call with parameters, do not
11901         transform the original node into an expanded name, to prevent visibility
11902         errors in the case of nested generics.
11903         (Check_Private_View): For an array type, check whether the index types
11904         may need exchanging.
11905
11906 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
11907             Vincent Celier  <celier@adacore.com>
11908
11909         * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
11910         since both are separated.
11911         Add support for imported CIL packages.
11912         Add further special handling of "value_type" for CIL.
11913         Add special handling of pragma Import for CIL.
11914
11915         * make.ads, make.adb: When switch -eS is used, direct all outputs to
11916         standard output instead of standard error, except errors.
11917         (Absolute_Path): Use untouched casing for the parent directory.
11918         (Add_Library_Search_Dir): Use the untouched directory name.
11919         (Add_Source_Search_Dir): Idem.
11920         (Change_To_Object_Directory): Update output to use proper casing.
11921         (Create_Binder_Mapping_File): Use the untouched filename to set
11922         ALI_Name.
11923         (Gnatmake): Use untouched library and executable directory names.
11924         (Insert_Project_Sources): Use untouched filename for spec and body.
11925         (Is_In_Object_Directory): Use untouched object directory.
11926         (Mark_Directory): Idem.
11927         (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
11928         contains the non-canonical filename in all cases.
11929         (Change_To_Object_Directory): In verbose mode, display the name of the
11930         object directory we're changing to.
11931         (Compile_Sources): Make sure, when a project file is used, to compile
11932         the body of the unit, when there is one, even when only the spec is
11933         recorded in an ALI file.
11934         (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
11935         spec to the body.
11936         (Report_Compilation_Failed): New procedure
11937         (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
11938         procedures moved from the spec to the body.
11939         (Extract_Failure): Removed, not used
11940         Replace explicit raises of exception Bind_Failed and Link_Failed with
11941         calls to Make_Failed with the proper message.
11942         Replace explicit raises of exception Compilation_Failed with calls to
11943         procedure Report_Compilation_Failed.
11944         (Initialize): Create mapping files unconditionally when using project
11945         files.
11946
11947         * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
11948         Pragma_CIL_Constructor): New names.
11949
11950         * targparm.ads, targparm.adb
11951         (Compiler_System_Version): Removed, no longer used.
11952         (Get_Target_Parameters): Relax checks on system.ads validity. Add
11953         handling of two new system flags: JVM and CLI.
11954
11955 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
11956             Arnaud Charlet  <charlet@adacore.com>
11957
11958         * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
11959         time, use the default s-interr body that provides interrupt support
11960         based on signals.
11961         (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
11962         a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
11963         g-soccon.ads, and s-taprop.adb for the marte run time.
11964         (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
11965         timers are supported on marte.
11966         (EH_MECHANISM for marte): Do not use ZCX.
11967         (THREADSLIB for marte): Use -lmarte.
11968         Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
11969         Add mlib-tgt-specific.o to gnatmake objects
11970         mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
11971         longer of MLib.Tgt.
11972         (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
11973         6, either kernel or rtp, use a specialized version of s-osinte.ads.
11974
11975 2007-06-06  Pascal Obry  <obry@adacore.com>
11976
11977         * mkdir.c (__gnat_mkdir): Add support for UTF-8.
11978
11979 2007-06-06  Vincent Celier  <celier@adacore.com>
11980
11981         * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
11982         separator, use instead the proper host directory separator.
11983         (Copy_ALI_Files): Make sure that an already existing ALI file in the
11984         ALI copy dir is writable, before doing the copy.
11985
11986         * mlib-utl.ads, mlib-utl.adb: 
11987         (Gcc): If length of command line is too long, put the list of object
11988         files in a response file, if this is supported by the platform.
11989         (Ar): If invocation of the archive builder is allowed to be done in
11990         chunks and building it in one shot would go above an OS dependent
11991         limit on the number of characters on the command line, build the archive
11992         in chunks.
11993
11994 2007-06-06  Vincent Celier  <celier@adacore.com>
11995
11996         * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
11997         of specified object file is not equal to base name of source.
11998
11999 2007-06-06  Javier Miranda  <miranda@adacore.com>
12000             Hristian Kirtchev  <kirtchev@adacore.com>
12001             Ed Schonberg  <schonberg@adacore.com>
12002
12003         * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
12004         the full type declaration.
12005         (Analyze_Component_Declaration): Add local variable E to capture the
12006         initialization expression of the declaration. Replace the occurences of
12007         Expression (N) with E.
12008         (OK_For_Limited_Init_In_05): Allow initialization of class-wide
12009         limited interface object with a function call.
12010         (Array_Type_Declaration): If the declaration lacks subtype marks for
12011         indices, create a simple index list to prevent cascaded errors.
12012         (Is_Null_Extension): Ignore internal components created for secondary
12013         tags when checking whether a record extension is a null extension.
12014         (Check_Abstract_Interfaces): Add missing support for interface subtypes
12015         and generic formals.
12016         (Derived_Type_Declaration): Add missing support for interface subtypes
12017         and generic formals.
12018         (Analyze_Object_Declaration): If an initialization expression is
12019         present, traverse its subtree and mark all allocators as static
12020         coextensions.
12021         (Add_Interface_Tag_Component): When looking for components that may be
12022         secondary tags, ignore pragmas that can appear within a record
12023         declaration.
12024         (Check_Abstract_Overriding): an inherited function that dispatches on
12025         result does not need to be overriden if the controlling type is a null
12026         extension.
12027         (Mentions_T): Handle properly a 'class attribute in an anonymous access
12028         component declaration, when the prefix is an expanded name.
12029         (Inherit_Component): If the derivation is for a private extension,
12030         inherited components remain visible and their ekind should not be set
12031         to Void.
12032         (Find_Type_Of_Object): In the case of an access definition, always set
12033         Is_Local_Anonymous_Access. We were previously not marking the anonymous
12034         access type of a return object as a local anonymous type.
12035         (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
12036         range with character literal bounds.
12037         (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
12038         (Access_Subprogram_Declaration): Indicate that the type declaration
12039         depends on an incomplete type only if the incomplete type is declared
12040         in an open scope.
12041         (Analyze_Subtype_Declaration): Handle properly subtypes of
12042         synchronized types that are tagged, and that may appear as generic
12043         actuals.
12044         (Access_Subprogram_Declaration): An anonymous access to subprogram can
12045         appear as an access discriminant in a private type declaration.
12046         (Add_Interface_Tag_Components): Complete decoration of the component
12047         containing the tag of a secondary dispatch table and the component
12048         containing the offset to the base of the object (this latter component
12049         is only generated when the parent type has discriminants --as documented
12050         in this routine).
12051         (Inherit_Components): Use the new decoration of the tag components to
12052         improve the condition that avoids inheriting the components associated
12053         with secondary tags of the parent.
12054         (Build_Discriminanted_Subtype): Indicate to the backend that the
12055         size of record types associated with dispatch tables is known at
12056         compile time.
12057         (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
12058         (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
12059         to include task, protected, and synchronized interfaces as limited
12060         interfaces.
12061         (Process_Discriminants): Remove the setting of
12062         Is_Local_Anonymous_Access on the type of (anonymous) access
12063         discriminants of nonlimited types.
12064         (Analyze_Interface_Type_Declaration): Complete the decoration of the
12065         class-wide entity it is is already present. This situation occurs if
12066         the limited-view has been previously built.
12067         (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
12068         field.
12069         (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
12070         Related_Interface.
12071
12072 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
12073
12074         * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
12075         of the type that specify the position of interface tags when the type
12076         inherits discriminated array components from the parent type.
12077         If a component is initialized with a box, check for the presence of a
12078         default expression in its declaration before using its default
12079         initialization procedure.
12080         (Resolve_Record_Aggregate): If a component is box-initialized, and the
12081         component type has a discriminants, create a partial aggregate for it
12082         by copying the discriminants of the component subtype.
12083         Reject attempt to initialize a discriminant with a box.
12084         (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
12085         associated with dispatch tables is known at compile time.
12086         (Get_Value): If an association in a record aggregate has a box
12087         association, and the corresponding record component has a default
12088         expression, always copy the default expression, even when the
12089         association has a single choice, in order to create a proper
12090         association for the expanded aggregate.
12091
12092 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
12093             Robert Dewar  <dewar@adacore.com>
12094
12095         * par-ch12.adb (P_Generic_Associations): The source position of an
12096         Others association is that of the others keyword, not that of the token
12097         that follows the box.
12098         (P_Formal_Type_Definition): Handle formal access types that carry a
12099         not null indicator.
12100
12101         * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
12102         multiple identifier are present, save Scan_State before scanning the
12103         colon, to ensure that separate trees are constructed for each
12104         declaration.
12105         (P_Identifier_Declarations): For object declaration, set new flag
12106         Has_Init_Expression if initialization expression present.
12107         (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
12108         Improve NOT NULL error messages
12109
12110 2007-06-06  Robert Dewar  <dewar@adacore.com>
12111
12112         * par-ch4.adb: (P_Name): Recover from literal used as name
12113
12114 2007-06-06  Vincent Celier  <celier@adacore.com>
12115
12116         * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
12117         defaulted to False.
12118         In the "not" case, recursive call with Complemented set to True.
12119         Do not allow "or" or "and" operators when Complemented is True.
12120
12121 2007-06-06  Vincent Celier  <celier@adacore.com>
12122
12123         * prj.adb (Project_Empty): Gives default value for new component
12124         Libgnarl_Needed
12125
12126         * prj-attr.ads: Minor reformatting
12127
12128         * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
12129         directory using the untouched casing.
12130         (For_All_Source_Dirs): Idem.
12131
12132         * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
12133         directories specified with switches -aP.
12134         (Add_Search_Project_Directory): New procedure
12135         (Initialize_Project_Path): Put the directories in table
12136         Search_Directories in the project search path.
12137         (Initialize_Project_Path): For VMS, transform into canonical form the
12138         project path.
12139
12140 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
12141
12142         * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
12143         true if configurable run-time or No_Run_Time is set.
12144         (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
12145         processing an unit which is not the one being compiled.
12146
12147 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
12148
12149         * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
12150         Replace UC by Ada.UC
12151
12152         * s-bitops.adb: Get rid of System.Pure_Exceptions.
12153         Replace UC by Ada.UC
12154
12155 2007-06-06  Robert Dewar  <dewar@adacore.com>
12156
12157         * scng.adb: (Check_End_Of_Line): Deal with very long lines
12158
12159 2007-06-06  Robert Dewar  <dewar@adacore.com>
12160
12161         * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
12162         Remove no longer used nodes.
12163
12164 2007-06-06  Javier Miranda  <miranda@adacore.com>
12165             Ed Schonberg  <schonberg@adacore.com>
12166             Robert Dewar  <dewar@adacore.com>
12167
12168         * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
12169         on obsolescent withed unit in case of limited-withed units.
12170         (Analyze_Compilation_Unit): Add guard to code that removed an
12171         instantiation from visibility, to prevent compiler aborts when
12172         instantiation is abandoned early on.
12173         (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
12174         current unit being analyzed, and Distinguish local incomplete types
12175         from limited views of types declared elsewhere.
12176         (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
12177         to state that the class-wide entity is shared by the limited-view
12178         and the full-view.
12179         (Analyze_With_Clause): Improve placement of flag for case of
12180         unimplemented unit.
12181         (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
12182         manner similar to GNAT.Current_Exception. This is a violation of
12183         restriction (No_Exception_Propagation), and also inhibits the
12184         optimization of local raise to goto.
12185         (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
12186         and if so set Most_Recent_Exception_Used flag in Opt, and also check
12187         for violation of restriction No_Exception_Propagation.
12188
12189 2007-06-06  Javier Miranda  <miranda@adacore.com>
12190             Hristian Kirtchev  <kirtchev@adacore.com>
12191             Gary Dismukes  <dismukes@adacore.com>
12192
12193         * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
12194         use of entity Exception_Occurrence if it is not available in the
12195         target run-time.
12196
12197         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
12198         concurrent types are declared within an Ada 2005 generic, build their
12199         corresponding record types since they are needed for overriding-related
12200         semantic checks.
12201         (Analyze_Protected_Type): Rearrange and simplify code for testing that a
12202         protected type does not implement a task interface or a nonlimited
12203         interface.
12204         (Analyze_Task_Type): Rearrange and simplify code for testing that a task
12205         type does not implement a protected interface or a nonlimited interface.
12206         (Single_Task_Declaration, Single_Protected_Declaration): use original
12207         entity for variable declaration, to ensure that debugging information
12208         is correcty generated.
12209         (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
12210         routines if the expander is not active.
12211         (Analyze_Task_Body): Mark all handlers to stop optimization of local
12212         raise, since special things happen for task exception handlers.
12213
12214         * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
12215         concurrent types declared within a generic.
12216         (Check_Dispatching_Operation): Do not emit warning about late interface
12217         operations in the context of an instance.
12218         (Check_Dispatching_Call): Remove restriction against calling a
12219         dispatching operation with a limited controlling result.
12220         (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
12221         Register_Interface_DT_Entry by calls to Register_Primitive.
12222         (Check_Dispatching_Formals): Handle properly a function with a
12223         controlling access result.
12224
12225 2007-06-06  Robert Dewar  <dewar@adacore.com>
12226             Arnaud Charlet  <charlet@adacore.com>
12227
12228         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
12229         Check for restriction No_Implementation_Attributes if in Ada 95 mode.
12230         (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
12231         (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
12232         message when using a VM, since this attribute is not supported.
12233         (Analyze_Record_Representation_Clause): Give unrepped component warnings
12234
12235         * usage.adb: Add new warning for renaming of function return objects
12236         Indicate that -gnatwp and -gnatwP concern front-end inlining
12237         Add line for -gnatyg
12238         Add usage information for -gnatw.c/C
12239
12240 2007-06-06  Robert Dewar  <dewar@adacore.com>
12241             Ed Schonberg  <schonberg@adacore.com>
12242
12243         * sem_ch5.adb
12244         (Find_Var): Do not consider function call in test for infinite loop
12245         warning if warnings set off for function entity.
12246         (One_Bound): Do not create a temporary for a loop bound if it is a
12247         character literal.
12248         (Analyze_Assignment): Traverse the right hand side of an assignment and
12249         mark all allocators as static coextensions.
12250         (Analyze_Assignment): Exempt assignments involving a dispatching call
12251         to a function with a controlling access result from the check requiring
12252         the target to be class-wide.
12253
12254 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
12255             Ed Schonberg  <schonberg@adacore.com>
12256             Robert Dewar  <dewar@adacore.com>
12257             Javier Miranda  <miranda@adacore.com>
12258
12259         * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
12260         chain of coextensions when an allocator serves as the root of such a
12261         chain.
12262         (Propagate_Coextensions): Remove the test for the root being an
12263         allocator.
12264         (Resolve_Allocator): Add condition to ensure that all future decoration
12265         occurs on an allocator node. Add processing and cleanup for static
12266         coextensions.
12267         (Valid_Conversion): If the operand type is the limited view of a
12268         class-wide type, use the non-limited view is available to determine
12269         legality of operation.
12270         (Ambiguous_Character): move to spec, for use elsewhere.
12271         (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
12272         (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
12273         character literals.
12274         (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
12275         Do_Division_Check flag explicitly.
12276         (Resolve_Actuals): If the actual is of a synchronized type, and the
12277         formal is of the corresponding record type, this is a call to a
12278         primitive operation of the type, that is declared outside of the type;
12279         the actual must be unchecked-converted to the type of the actual
12280         (Resolve_Call): Kill all current values for any subprogram call if
12281         flag Suppress_Value_Tracking_On_Call is set.
12282         (Resolve_Type_Conversion): Generate error message the the operand
12283         or target of interface conversions come from a limited view.
12284         (Check_Infinite_Recursion): Ignore generated calls
12285         (Check_Allocator_Discrim_Accessibility): New procedure for checking
12286         that an expression that constrains an access discriminant in an
12287         allocator does not denote an object with a deeper level than the
12288         allocator's access type.
12289         (Resolve_Allocator): In the case of an allocator initialized by an
12290         aggregate of a discriminated type, check that associations for any
12291         access discriminants satisfy accessibility requirements by calling
12292         Check_Allocator_Discrim_Accessibility.
12293         (Resolve_Equality_Op): Handle comparisons of anonymous access to
12294         subprogram types in the same fashion as other anonymous access types.
12295         (Resolve_Concatenation_Arg): Remove initial character '\' in an error
12296         message that is not a continuation message.
12297         (Resolve_Type_Conversion): Add missing support for conversion to
12298         interface type.
12299         (Resolve_Actuals): Introduce a transient scope around the call if an
12300         actual is a call to a function returning a limited type, because the
12301         resulting value must be finalized after the call.
12302         (Resolve_Actuals): If the call was given in prefix notations, check
12303         whether an implicit 'Access reference or implicit dereference must be
12304         added to make the actual conform to the controlling formal.
12305
12306 2007-06-06  Robert Dewar  <dewar@adacore.com>
12307             Javier Miranda  <miranda@adacore.com>
12308
12309         * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
12310         (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
12311         overriding of an inherited private subprogram now there is no need to
12312         inherit its dispatching slot and reduce the size of the dispatch table.
12313         Set_All_DT_Position now ensures that the same slot is now assigned to
12314         both entities. This is required to statically build the dispatch table.
12315         (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
12316         of calling Set_All_DT_Position to re-evaluate the position of the
12317         entries in the dispatch table. Such reevaluation is not desired if
12318         the tagged type is already frozen.
12319
12320 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
12321             Gary Dismukes  <dismukes@adacore.com>
12322             Robert Dewar  <dewar@adacore.com>
12323             Javier Miranda  <miranda@adacore.com>
12324
12325         * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
12326         reference acts as an lvalue when the attribute name modifies the prefix
12327         (Is_Coextension_Root): New routine.
12328         (Mark_Static_Coextensions): New routine.
12329         (Type_Access_Level): Revise code for checking the level of the
12330         anonymous access type of a return object.
12331         (Safe_To_Capture_Value): Not safe to capture if Address_Taken
12332         (Matches_Prefixed_View_Profile): Remove the no longer necessary
12333         retrieval of the corresponding controlling record type.
12334         (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
12335         concurrent types declared within a generic as well as class wide types.
12336         Emit a mode incompatibility error whenever a protected entry or routine
12337         override an interface routine whose first parameter is not of mode
12338         "out", "in out" or access to variable.
12339         (Overrides_Synchronized_Primitive): Rename to
12340         Find_Overridden_Synchronized_Primitive.
12341         (Collect_Interface_Components): New subprogram that collects all the
12342         components of a tagged record containing tags of secondary dispatch
12343         tables.
12344         (Add_Global_Declaration): New procedure
12345         (Abstract_Interface_List): Handle properly the case of a subtype of a
12346         private extension.
12347         (Type_Access_Level): In the case of a type whose parent scope is a
12348         return statement, call Type_Access_Level recursively on the enclosing
12349         function's result type to determine the level of the return object's
12350         type.
12351         (Build_Elaboration_Entity): Build name of elaboration entity from the
12352         scope chain of the entity, rather than the unit name of the file name.
12353         (Check_Nested_Access): New procedure.
12354         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
12355         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
12356         (Get_Renamed_Entity): Utility routine for performing common operation
12357         of chasing the Renamed_Entity field of an entity.
12358
12359 2007-06-06  Robert Dewar  <dewar@adacore.com>
12360
12361         * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
12362         elaboration model
12363         (Check_A_Call): Add check for entry call which was causing blowup
12364
12365 2007-06-06  Olivier Hainque  <hainque@adacore.com>
12366
12367         * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
12368         special code on ia64-vms to handle major incompatibilities between the
12369         GCC unwinding ABI and the VMS Condition Handling Facility, both calling
12370         this routine with a very different set of arguments and expectations on
12371         the return value.
12372
12373 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12374
12375         * socket.c (__gnat_close_signalling_fd): New function.
12376         (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
12377         __gnat_safe_getservbyname, __gnat_safe_getservbyport):
12378         New supporting functions for task safe Netdb operations.
12379
12380 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12381             Olivier Hainque  <hainque@adacore.com>
12382
12383         * a-except-2005.ads, a-except-2005.adb
12384         (Raise_From_Controlled_Operation): New procedure in
12385         (private part of) Ada.Exceptions (standard runtime version). Used to
12386         provide informational exception message when Program_Error is raised as
12387         a result of an Adjust or Finalize operation propagating an exception.
12388         (Rmsg_28): Fix description for E.4(18) check.
12389         (Raise_Current_Excep): Call Debug_Raise_Exception just before
12390         propagation starts, to let debuggers know about the event in a reliable
12391         fashion.
12392         Take the address of E and dereference to make sure it is homed on stack
12393         and prevent the stores from being deleted, necessary for proper
12394         debugger behavior on "break exception" hits.
12395         (Local_Raise): Moved to System.Exceptions
12396
12397         * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
12398         exception message from the current occurrence and raise Program_Error
12399         has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
12400
12401 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
12402             Arnaud Charlet  <charlet@adacore.com>
12403
12404         * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
12405         lock, if needed.
12406
12407         * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
12408         priority associated to a lock.
12409
12410         * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
12411         assertion to take into account case of no abort restriction.
12412         (Initialize_Protection_Entries): Add initialization for the field
12413         New_Ceiling associated to the protected object.
12414         (Unlock_Entries): Change the ceiling priority of the underlying lock, if
12415         needed.
12416
12417         * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
12418         since this function needs to be set consistently with Update_Exception.
12419
12420         * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
12421         since this function needs to be set consistently with Update_Exception.
12422
12423         * s-taskin.ads: Update comments on
12424         Interrupt_Server_Blocked_On_Event_Flag.
12425         (Unbind_Handler): Fix handling of server_task wakeup
12426         (Server_Task): Set self's state so that Unbind_Handler can take
12427         appropriate actions.
12428         (Common_ATCB): Now use a constant from System.Parameters to determine
12429         the max size of the Task_Image field.
12430
12431         * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
12432         Initialize_Analyzer function.
12433         ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
12434         take into account case of no abort restriction.
12435         ([Vulnerable_]Complete_Master): Modify assertion.
12436
12437         * s-tataat.adb (Finalize): Use the nestable versions of
12438         Defer/Undefer_Abort.
12439
12440         * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
12441
12442         * s-tpobop.ads: Update comments.
12443
12444         * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
12445         of locking the object manually, to avoid inconsistencies between
12446         Lock/Unlock_Entry assertions.
12447
12448         * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
12449         terminating
12450         application and System.Parameters.No_Abort is True.
12451         Update comments on Interrupt_Server_Blocked_On_Event_Flag.
12452         (Unbind_Handler): Fix handling of server_task wakeup
12453         (Server_Task): Set self's state so that Unbind_Handler can take
12454         appropriate actions.
12455
12456 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12457
12458         * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
12459         declarations instead of an explicit null body, for conciseness.
12460
12461 2007-06-06  Robert Dewar  <dewar@adacore.com>
12462
12463         * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
12464         illegal aggregate and the type is still Any_Composite.
12465         (Subtypes_Statically_Match): Fix problem of empty discriminant list
12466
12467 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
12468
12469         * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
12470         to prevent subsequent expansion.
12471
12472 2007-06-06  Robert Dewar  <dewar@adacore.com>
12473
12474         * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
12475
12476 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
12477             Robert Dewar  <dewar@adacore.com>
12478
12479         * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
12480         exceptions.
12481         (Write_Itype): Handle case of string literal subtype, which
12482         comes up in this context.
12483         (Update_Itype): when debugging expanded code, update sloc of itypes
12484         associated with defining_identifiers and ranges, for gdb use.
12485         (Sprint_Node_Actual): Add static keyword to object or exception
12486         declaration output if Is_Statically_Allocated is True.
12487         (Sprint_End_Label): Set entity of end marker for a subprogram, package,
12488         or task body, so that the tree carries the proper Sloc information for
12489         debugging use.
12490         (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
12491
12492 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
12493
12494         * s-secsta.adb (Chunk): Ensure this object has a static size known at
12495         compile time, to avoid dynamic memory allocation
12496         (Elaboration code): Only use dynamic memory allocation when needed.
12497
12498 2007-06-06  Quentin Ochem  <ochem@adacore.com>
12499
12500         * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
12501         "Overflow_Guard".
12502         (Stack_Analyzer): Added field "Overflow_Guard"
12503         (Task_Result): Added field "Overflow_Guard".
12504         (Index_Str): New constant.
12505         (Task_Name_Str): New constant.
12506         (Actual_Size_Str): New constant.
12507         (Pattern_Array_Element_Size): New constant.
12508         (Get_Usage_Range): New subprogram.
12509         (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
12510         Now align the output.
12511         Added comments.
12512         (Initialize): Added value for Overflow_Guard.
12513         (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
12514         Update the value of the overflow guard according to the actual
12515         beginning of the pattern array.
12516         (Initialize_Analyzer): Added parameter Overflow_Guard.
12517         Take this parameter into accound when computing the max size.
12518         (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
12519         (Report_Result): Removed extra useless procedure.
12520         Updated call to Output_Result.
12521         Moved full computation of the Task_Result here.
12522
12523 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12524
12525         * g-soccon-darwin.ads, gen-soccon.c: Add new constant
12526         Thread_Blocking_IO, always True by default, set False on a per-runtime
12527         basis.
12528         Add Windows-specific constants
12529         Add new constant Need_Netdb_Buffer.
12530         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
12531         not, whether to use getXXXbyYYY_r.
12532
12533         * gsocket.h: Add new constant Need_Netdb_Buffer.
12534         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
12535         not, whether to use getXXXbyYYY_r.
12536
12537 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
12538
12539         * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
12540         than their first call.
12541         Add type Dummy_Communication_Block used in the generation of the pre-
12542         defined dispatching primitive _disp_asynchronous_select.
12543         (Storage_Element): Put Pragma Universal_Aliasing on it.
12544
12545 2007-06-06  Vincent Celier  <celier@adacore.com>
12546
12547         * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
12548         function.
12549
12550         * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
12551         letter if it is not followed by a '/' or a '\'.
12552         (Windows): New Boolean function
12553
12554         * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
12555         Ada 2005.
12556         (Containing_Directory): On Windows, keep at least one '/' or '\' after a
12557         drive letter.
12558         (Containing_Directory): Raise Use_Error when the directory is a root
12559         directory.
12560         (Extension): When returning the result, use a conversion to Result_Type,
12561         not a qualification.
12562
12563 2007-06-06  Robert Dewar  <dewar@adacore.com>
12564
12565         * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
12566         (Set_Style_Check_Options): Recognize new -gnatyg style switch
12567
12568         * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
12569         Warn_On_Non_Local_Exception to False, to turn off warnings for
12570         No_Exception_Propagation in ZFP runtime.
12571         (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
12572         back-ends.
12573         (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
12574
12575 2007-06-06  Vincent Celier  <celier@adacore.com>
12576
12577         * switch-b.adb (Scan_Binder_Switches): Add processing for new
12578         switches -R and -Z
12579
12580         * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
12581         (Scan_Make_Switches): Recognize new switch -aP
12582
12583 2007-06-06  Matthew Gingell  <gingell@adacore.com>
12584             Jose Ruiz  <ruiz@adacore.com>
12585
12586         * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
12587         VxWorks task descriptor in the Ada run time, call a C subprogram
12588         (__gnat_get_stack_info) that extracts the required information.
12589
12590         * sysdep.c: Back out temporary lynxos workaround.
12591         (__gnat_get_stack_info): Add this procedure that passes to the Ada run
12592         time the stack information associated to the currently executing task.
12593         Only VxWorks systems require this function.
12594
12595 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
12596
12597         * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
12598         add the stack bias if the offset is computed from a frame address.
12599         (__gnat_backtrace): Adjust for above change.
12600
12601 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12602
12603         * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
12604         PE_Non_Transportable_Actual.
12605         (By_Descriptor_Last): New constant.
12606         (By_Copy_Return): Likewise.
12607
12608 2007-06-06  Vincent Celier  <celier@adacore.com>
12609
12610         * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
12611         is.
12612
12613         * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
12614         /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
12615         /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
12616         Add missing comment for /OPTIMIZE=SPACE
12617         Add entry for OPTIMIZE=SPACE
12618         Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
12619         Add documentation for new qualifiers corresponding to -gnatw.c/.C
12620
12621 2007-06-06  Vincent Celier  <celier@adacore.com>
12622             Robert Dewar  <dewar@adacore.com>
12623
12624         * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
12625         -gnatw.C)
12626
12627         * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
12628         Document gnatbind switch -a
12629         (case Constructions): Document that variables declarations are allowed
12630         for previously declared variables.
12631         Fix external lib project example
12632         -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
12633         Indicate that "#if not X or Y then" is not allowed in input files to
12634         gnatprep.
12635         Document gnatw.x and gnatw.X warning flags
12636         Mention -Winline switch to activate warnings when back-end inlining is
12637         ineffective.
12638         Add gnatcheck rule descriptions
12639         Describe how to use the GNAT driver to call a tool on a closure.
12640         Describe how to run project-wide checks or metrics.
12641         Document gnatbind's -R option
12642         Updated to account for Ada 2005 support
12643
12644         * gnat_rm.texi (Case Construction): Allow variable declarations for
12645         previously declared variables.
12646         (Representation Clauses and Pragmas): Lift restriction on alignment
12647         clauses for record types.
12648         (Ada.Characters.*): Fix typo in reference to A.3.3(27).
12649         Document No_Exception_Propagation restriction
12650         Document No_Body pragma
12651         Updated to account for Ada 2005 support; corrected some typos
12652         (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
12653
12654         * gnat-style.texi: Make it clear that we never use mode IN for
12655         procedures or functions
12656
12657         * ug_words: Add entries for -gnatw.x and -gnatw.X
12658         Add entries for -gnatw.c/.C
12659
12660 2007-06-06  Pascal Obry  <obry@adacore.com>
12661             Vincent Celier  <celier@adacore.com>
12662
12663         * makegpr.adb (Add_Archive_Path): Use untouched object and library
12664         dirs and library name.
12665         (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
12666         comments.
12667         (Build_Library): Idem.
12668         (Compile_Individual_Sources): Idem.
12669         (Compile_Link_With_Gnatmake): Idem.
12670         (Compile_Sources): Idem.
12671         (Get_Imported_Directories): Idem.
12672         (Link_Executables): Idem. Same change for the executable dir.
12673         (Check_Compilation_Needed): C_Source_Path new variable containing
12674         the canonical form of Source_Path to check against the source names
12675         in the dependency file.
12676         (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
12677         verbose mode, display the name of the object directory we're changing
12678         to.
12679         (Saved_Switches): New name of table X_Switches
12680         (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
12681         (Usage): New line for switch -aP
12682         (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
12683         testing if a directory should be added to the search path.
12684
12685 2007-06-06  Javier Miranda  <miranda@adacore.com>
12686
12687         * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads, 
12688         a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
12689         declaration after freezing point of all its associated tagged types;
12690         otherwise such types are frozen too early.
12691
12692 2007-06-06  Robert Dewar  <dewar@adacore.com>
12693
12694         * a-reatim.adb: Documentation addition
12695
12696         * g-cgideb.adb: Minor code reorganization
12697
12698         * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
12699         mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
12700         s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
12701
12702         * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
12703         function.  Change name New_Scope to Push_Scope
12704         (Get_Debug_Flag_K): Remove unused obsolete function.
12705
12706         * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
12707         Push_Scope.
12708
12709         * makeusg.adb: Update Copyright notice
12710         Add line for switch -aP
12711
12712         * makeusg.adb: Fix wording of some usage messages
12713
12714         * s-assert.adb (Raise_Assert_Failure): Add call to
12715         Debug_Raise_Assert_Failure.
12716
12717         * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
12718         (2, Standard'Alignment) for compatibility with AAMP (where alignment
12719         is restricted to 1).
12720
12721         * s-wchjis.adb: Remove use of System.Pure_Exceptions
12722
12723         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
12724         node location to No_Location when we're not debugging the expanded
12725         code.
12726
12727 2007-05-22  Alexandre Oliva  <aoliva@redhat.com>
12728
12729         * misc.c (enumerate_modes): Consider log2_b to always be one.
12730
12731 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
12732
12733         * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
12734
12735 2007-05-02  Pascal Obry  <obry@adacore.com>
12736
12737         * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
12738         to use Stream_IO.File_Type. This is needed to make use of the UTF-8
12739         encoding support of Stream_IO.
12740         (Write_Unit): Idem.
12741
12742         * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
12743         filename and corresponding encoding to match the OS requirement.
12744         (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
12745         routine will fail on specific devices like CON: AUX: ...
12746
12747         PR ada/29856: Add missing braces
12748
12749 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12750
12751         PR ada/31660
12752         * ada-tree.h (lang_tree_node): Fix typo in chain_next.
12753
12754 2007-04-21  Jan Hubicka  <jh@suse.cz>
12755
12756         * misc.c (gnat_expand_body): Don't call target for destructors,
12757         avoid redundant check on syntax errors.
12758
12759 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12760
12761         * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
12762         instead of checking GIMPLE_STMT_P in chain_next.
12763
12764 2007-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
12765
12766         PR ada/31576
12767         * system-linux-alpha.ads: Disable constant condition warning for the
12768         Default_Bit_Order variable.
12769         * system-linux-s390.ads: Likewise.
12770         * system-linux-s390x.ads: Likewise.
12771         * system-linux-sparc.ads: Likewise.
12772
12773 2007-04-06  Javier Miranda  <miranda@adacore.com>
12774             Matt Heaney  <heaney@adacore.com>
12775             Robert Dewar  <dewar@adacore.com>
12776
12777         a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
12778         a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
12779         a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
12780         a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
12781         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
12782         a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
12783         a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
12784         a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
12785         a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
12786         a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
12787         a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
12788         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
12789         a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
12790         a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
12791         a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
12792         a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
12793         a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
12794         i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
12795         unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
12796         a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
12797         a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
12798         a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
12799         expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
12800         s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
12801         s-taprop-tru64.adb, s-taprop-irix.adb,
12802         s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
12803         s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
12804         s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
12805         s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb, 
12806         s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads, 
12807         a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb, 
12808         a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads, 
12809         g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads, 
12810         s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb, 
12811         s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads, 
12812         s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb, 
12813         s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, 
12814         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb, 
12815         s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb, 
12816         a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads, 
12817         a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads, 
12818         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb, 
12819         a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
12820         a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads, 
12821         a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
12822         access types.
12823         Update documentation.
12824         Minor rewording.
12825
12826 2007-04-06  Robert Dewar  <dewar@adacore.com>
12827
12828         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
12829         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
12830         system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
12831         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
12832         system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
12833         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
12834         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
12835         system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
12836         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
12837         system-hpux-ia64.ads, targparm.adb,
12838         targparm.ads (Functions_Return_By_DSP_On_Target): Removed
12839
12840         * system.ads: Move Functions_Return_By_DSP to obsolete section,
12841         kept for bootstrap purposes only.
12842
12843 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
12844
12845         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
12846         s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
12847         s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
12848         (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
12849
12850 2007-04-06  Robert Dewar  <dewar@adacore.com>
12851
12852         * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
12853         (Local_Raise): New dummy procedure called when a raise is converted
12854         to a local goto. Used for debugger to detect that the exception
12855         is raised.
12856
12857         * debug.adb: Document new d.g flag (expand local raise statements to
12858         gotos even if pragma Restriction (No_Exception_Propagation) is not set)
12859
12860         * exp_sel.adb: Use Make_Implicit_Exception_Handler
12861
12862         * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
12863         suppress warnings for unused handlers.
12864         (Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
12865         warnings for raise statements not handled locally.
12866         (Get_RT_Exception_Entity): New function
12867         (Get_Local_Call_Entity): New function
12868         (Find_Local_Handler): New function
12869         (Warn_If_No_Propagation): New procedure
12870         (Expand_At_End_Handler): Call Make_Implicit_Handler
12871         (Expand_Exception_Handlers): Major additions to deal with local handlers
12872         (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
12873         Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
12874         for local raise
12875
12876         * exp_ch11.ads (Get_RT_Exception_Entity): New function
12877         (Get_Local_Call_Entity): New function
12878
12879         * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
12880         of restrictions that the binder will never suggest adding.
12881
12882         * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
12883         to No_Elist.
12884
12885         * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
12886         be with'ed in the presence of pragma Restriction
12887         (No_Exception_Propagation).
12888
12889         * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
12890
12891         * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
12892         parameter, then the handler is not a suitable target for a local raise,
12893         and this is a violation of restriction No_Exception_Propagation.
12894         (Analyze_Handled_Statements): Analyze choice parameters in exception
12895         handlers before analyzing statement sequence (needed for proper
12896         detection of local raise statements).
12897         (Analyze_Raise_Statement): Reraise statement is a violation of the
12898         No_Exception_Propagation restriction.
12899
12900         * s-rident.ads: Add new restriction No_Exception_Propagation
12901
12902         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
12903         function, like Make_Exception_Handler but sets Local_Raise_Statements
12904         to No_List.
12905         (Add_Unique_Serial_Number): Deal with case where this is called during
12906         processing of configuration pragmas.
12907
12908 2007-04-06  Thomas Quinot  <quinot@adacore.com>
12909             Pat Rogers  <rogers@adacore.com>
12910             Pascal Obry  <obry@adacore.com>
12911
12912         * g-stsifd-sockets.adb: New file.
12913
12914         * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
12915         g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
12916         g-socthi-vms.adb: Move signalling
12917         fd management to a nested package, so that they can conveniently be
12918         moved to a subunit that is shared across Windows, VMS, and VxWorks
12919         (Ada implementation) or completed with imported bodies from socket.c
12920         (UNIX case).
12921         (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
12922         subprograms.
12923         (Check_Selector): Use Read_Signalling_Fd to read and discard data from
12924         the signalling file descriptor.
12925         (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
12926         signalling file descriptor.
12927         (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
12928         instead of creating a pair of sockets for signalling here.
12929
12930         * g-socthi.adb: Ditto.
12931         Set the runtime process to ignore SIGPIPEs on platforms that support
12932         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
12933
12934         * g-socthi-mingw.adb: Ditto.
12935         (WS_Version): Use Windows 2.2.
12936         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
12937
12938         * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
12939         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
12940
12941         * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
12942         added GNAT byte swapping facility
12943         Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
12944
12945         * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
12946
12947         * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
12948         New subprograms.
12949         (__gnat_create_signalling_fds): New subprogram.
12950         Set the runtime process to ignore SIGPIPEs on platforms that support
12951         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
12952
12953 2007-04-06  Hristian Kirtchev  <kirtchev@adacore.com>
12954             Vincent Celier  <celier@adacore.com>
12955
12956         * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
12957         New version of Ada.Calendar which supports the new upper bound of Ada
12958         time (2399-12-31 86_399.999999999).
12959         The following modifications have been made to the package:
12960          - New representation of time as count of nanoseconds since the start of
12961            Ada time (1901-1-1 0.0).
12962          - Target independent Split and Time_Of routines which service both
12963            Ada 95 and Ada 2005 code.
12964          - Target independent interface to the Ada 2005 children of Calendar.
12965          - Integrated leap seconds into Ada 95 and Ada 2005 mode.
12966          - Handling of non-leap centenial years.
12967          - Updated clock function.
12968          - Updated arithmetic and comparison operators.
12969
12970         * a-caldel.adb (To_Duration): Add call to target independent routine in
12971         Ada.Calendar to handle the conversion of time to duration.
12972
12973         * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
12974         (UTC Offset).
12975         If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
12976         set off to 0.
12977         (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
12978         targets do not have a natural time zone, GMT is used as a default.
12979         (__gnat_get_task_options): New.
12980
12981         * a-direct.adb (Modification_Time): Add with and use clauses for
12982         Ada.Calendar and Ada.
12983         Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
12984         since it is no longer needed.
12985         (Duration_To_Time): Removed.
12986         (OS_Time_To_Long_Integer): Removed.
12987         (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
12988         Formatting Time_Of routines which automatically handle time zones,
12989         buffer periods and leap seconds.
12990
12991         * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
12992         target independent routines in Ada.Calendar.
12993
12994         * a-calfor.ads, a-calfor.adb: 
12995         Code cleanup and addition of validity checks in various routines.
12996         (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
12997         Ada.Calendar.
12998
12999         * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
13000         independent routine in Ada.Calendar.
13001
13002 2007-04-06  Olivier Hainque  <hainque@adacore.com>
13003
13004         * adaint.c: 
13005         (convert_addresses): Adjust prototype and dummy definition to expect an
13006          extra file_name argument.
13007
13008         * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
13009         filling the now expected file_name argument with the appropriate
13010         argv[0] expansion.
13011         (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
13012         (tracebk): Array of void * instead of char *, corresponding to what
13013          convert_addresses expects.
13014         (exename): New static global, to hold the executable file name to be
13015         used in all convert_addresses invocations.
13016         (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
13017         change.
13018         (__gnat_gmem_a2l_initialize): Resolve exename.
13019         (__gnat_convert_addresses): Use exename as the convert_addresses
13020         file_name argument.
13021
13022         * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
13023         "convert_addresses", now expecting a filename argument. Import the
13024         necessary entities to compute the filename to use and pass it to
13025         convert_addresses.
13026
13027 2007-04-06  Matt Gingell  <gingell@adacore.com>
13028
13029         * system-aix.ads: Back out previous change.
13030         (Functions_Return_By_DSP): Removed
13031
13032 2007-04-06  Pascal Obry  <obry@adacore.com>
13033
13034         * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
13035         or the monotonic used by Ada.Real_Time) to compute the sleep duration
13036         on Windows.
13037
13038 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
13039
13040         * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
13041         function. Its value changes in different VxWorks versions, and it is
13042         now handled by the function __gnat_get_task_options.
13043
13044         * s-taprop-vxworks.adb (Create_Task): Call the function
13045         __gnat_get_task_options to get the required options for creating a task.
13046
13047 2007-04-06  Pascal Obry  <obry@adacore.com>
13048             Thomas Quinot  <quinot@adacore.com>
13049
13050         * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
13051         dealing with filename.
13052         (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
13053         filename from a standard string to a wide-string depending on the
13054         encoding value.
13055         (__gnat_freopen): Idem.
13056         (__gnat_current_time): New function (wrapper for time(3) standard C
13057         function).
13058
13059         * g-os_lib.ads (Current_Time): New function. Returns the current
13060         system time as an OS_Time value.
13061
13062         * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
13063         (Monotonic_Clock): Same.
13064
13065 2007-04-06  Quentin Ochem  <ochem@adacore.com>
13066
13067         * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
13068         not on a natural.
13069         (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
13070
13071 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
13072
13073         * a-retide.adb: Add elaboration code to ensure that the tasking run
13074         time is initialized when using delay operations even when no task is
13075         created.
13076
13077 2007-04-06  Javier Miranda  <miranda@adacore.com>
13078
13079         * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
13080         component Num_Prim_Ops.
13081         (Set_Num_Prim_Ops): Removed.
13082         Remove all the assertions because all the routines of this
13083         package are inline always.
13084         (Get_Offset_Index): Add support to primary dispatch tables.
13085         Move the documentation about the dispatch table to a-tags.ads
13086         (Set_External_Tag): Removed
13087         (Inherit_TSD): Removed.
13088         (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
13089         moved to a-tags.ads
13090         (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
13091         Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
13092         of the TSD field "Table" because this field has been renamed to
13093         "Ifaces_Table".
13094         (Inherit_CPP_DT): Removed.
13095         (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
13096         Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
13097         declarations have been moved to a-tags.ads
13098         (Check_Size): Removed.
13099         (Expanded_Name): Updated to get access to the new field of TSD
13100         containing the address of the expanded name.
13101         (Get_Access_Level/Set_Access_Level): Removed.
13102         (Get_Predefined_Prim_Op_Address): Removed.
13103         (Set_Predefined_Prim_Op_Address): Removed.
13104         (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
13105         (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
13106         (Set_Expanded_Name): Removed.
13107         (Inherit_DT): Removed.
13108         (Inherit_CPP_DT): Removed.
13109         (Set_RC_Offset): Removed.
13110         (Set_TSD): Removed.
13111         (Base_Address): New function that displaces "this" to point to the base
13112         of the object (that is, to point to the primary tag of the object).
13113
13114 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13115             Javier Miranda  <miranda@adacore.com>
13116
13117         * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
13118         anonymous access component, do not create a master_id if type already
13119         has one, as may happen if the type is a subcomponent of a packed array
13120         type.
13121         (Build_Init_Procedure, Component_Needs_Simple_Initialization,
13122         Initialize_Tag): Remove code associated with the old CPP pragmas.
13123         CPP_Virtual and CPP_Vtable are no longer supported.
13124         (Build_Offset_To_Top_Internal): Add support for concurrent record types
13125         (Build_Offset_To_Top_Functions): Add support for concurrent record types
13126         (Freeze_Record_Type): Remove call to
13127         Init_Predefined_Interface_Primitives.
13128         (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
13129         code required to initialize the tags of the secondary dispatch tables.
13130         This leaves the algoritm more clear.
13131         (Init_Secondary_Tags): Add support for concurrent record types
13132         (Make_Predefined_Primitive_Specs): Code cleanup.
13133         (Predefined_Primitive_Bodies): Code cleanup.
13134         (Build_Master_Renaming): New local subprogram.
13135         (Expand_N_Full_Type_Declaration): Build the master_id associated with
13136         anonymous access to task type components.
13137         (Expand_N_Subtype_Indication): The bounds of a range constraint in a
13138         subtype indication are resolved during analysis, and must not be done
13139         here.
13140         (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
13141
13142 2007-04-06  Geert Bosch  <bosch@adacore.com>
13143             Ed Schonberg  <schonberg@adacore.com>
13144             Javier Miranda  <miranda@adacore.com>
13145             Bob Duff  <duff@adacore.com>
13146
13147         * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
13148         for conversion of a Float_Type'Truncation to integer.
13149
13150         * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
13151         check if a node is an attribute that can be handled directly by the
13152         back end.
13153         (Expand_N_Attribute_Reference): Suppress expansion of floating-point
13154         attributes that can be handled directly by the back end.
13155         (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
13156         use new predicate Is_Access_Protected_Subprogram_Type.
13157         (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
13158         and Unchecked_Union if it is generated as part of the default  Output
13159         procedure for a type with default discriminants.
13160         (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
13161         if we are compiling under restriction No_Dispatching_Calls.
13162         (Constrained): Use Underlying_Type, in case the type is private without
13163         discriminants, but the full type has discriminants.
13164         (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
13165         call to Build_Get_Access_Level.
13166         (Expand_N_Attribute_Reference): The use of 'Address with class-wide
13167         interface objects requires a call to the run-time subprogram that
13168         returns the base address of the object.
13169         (Valid_Conversion): Improve error message on illegal attempt to store
13170         an anonymous access to subprogram value into a record component.
13171
13172         * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
13173         null".
13174         (Simplify_Type_Conversion): New procedure that performs simplification
13175         of Int_Type (Float_Type'Truncation (X)).
13176         (Resolve_Type_Conversion): Call above procedure after resolving operand
13177         and before performing checks. This replaces the existing ineffective
13178         code in Exp_Ch4.
13179         (Set_String_Literal_Subtype): When creating the internal static lower
13180         bound subtype for a string literal, use a newly created copy of the
13181         subtree representing the lower bound.
13182         (Resolve_Call): Exclude build-in-place function calls from transient
13183         scope treatment. Update comments to describe this exception.
13184         (Resolve_Equality_Op): In case of dispatching call check violation of
13185         restriction No_Dispatching_Calls.
13186         (Resolve_Call): If the call returns an array, the context imposes the
13187         component type of the array, and the function has one non-defaulted
13188         parameter, rewrite the call as the indexing of a call with a single
13189         parameter, to handle an Ada 2005 syntactic ambiguity for calls written
13190         in prefix form.
13191         (Resolve_Actuals): If an actual is an allocator for an access parameter,
13192         the master of the created object is the innermost enclosing statement.
13193         (Remove_Conversions): For a binary operator, check if type of second
13194         formal is numeric, to check if an abstract interpretation is present
13195         in the case of exponentiation as well.
13196
13197 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13198             Bob Duff  <duff@adacore.com>
13199
13200         * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
13201         copying a parameter list in a call, set properly the First_Named_Formal
13202         and Next_Named_Formal fields in the new list and in the enclosing call.
13203         (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
13204         names, to ease typing in the debugger. Improve comments.
13205         (Watch_Node): New variable, intended to be set in the debugger.
13206         (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
13207         called when the watched node is created.
13208         (New_Node_Debugging_Output): Combined version of local procedures
13209         New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
13210         with a parameter so that conditional breakpoints like "if Node = 12345"
13211         work.
13212         (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
13213         Add Elist1 function
13214
13215 2007-04-06  Thomas Quinot  <quinot@adacore.com>
13216             Ed Schonberg  <schonberg@adacore.com>
13217             Gary Dismukes  <dismukes@adacore.com>
13218
13219         * checks.ads, checks.adb (Selected_Range_Checks): No range check is
13220         required for a conversion between two access-to-unconstrained-array
13221         types.
13222         (Expr_Known_Valid): Validity checks do not apply to discriminants, but
13223         to discriminant constraints on discriminant objects. This rule must
13224         apply as well to discriminants of protected types in private components.
13225         (Null_Exclusion_Static_Checks): If No_Initialization is set on an
13226         object of a null-excluding access type then don't require the
13227         the object declaration to have an expression and don't emit a
13228         run-time check.
13229
13230 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
13231             Eric Botcazou  <botcazou@adacore.com>
13232
13233         * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
13234         and made constant.
13235
13236         * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
13237         Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
13238         carry any.
13239
13240         * fe.h (Compiler_Abort): Add third parameter.
13241
13242         * misc.c (internal_error_function): Build third argument from current
13243         input location and pass it to Compiler_Abort.
13244
13245 2007-04-06  Gary Dismukes  <dismukes@adacore.com>
13246
13247         * cstand.adb (Create_Standard): When the target's storage unit size is
13248         greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
13249         Standard_String.
13250
13251 2007-04-06  Nicolas Roche  <roche@adacore.com>
13252
13253         * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
13254         absolute path can have the following form: device:/a/b. In this case
13255         '/' should be inserted between the path and the filename.
13256
13257 2007-04-06  Olivier Hainque  <hainque@adacore.com>
13258             Eric Botcazou  <botcazou@adacore.com>
13259
13260         * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
13261         VAR_DECL to a CONST_DECL we make for a public constant when we know the
13262         corresponding definition has created the so made visible variable.
13263         Handle anonymous access to protected subprogram.
13264         (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
13265         object with an address clause volatile.  Re-enable original fix.
13266         <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
13267         too.
13268         (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
13269         associated with either the Equivalent or Root type, instead of the
13270         naked type node.
13271         (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
13272         subtree for every field of a global record type.
13273         (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
13274         discriminants, invoke again variable_size on its newly computed sizes.
13275
13276 2007-04-06  Robert Dewar  <dewar@adacore.com>
13277             Thomas Quinot  <quinot@adacore.com>
13278             Ed Schonberg  <schonberg@adacore.com>
13279             Bob Duff  <duff@adacore.com>
13280
13281         * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
13282         (Next_Component_Or_Discriminant): New function and procedure
13283         (First_Index, First_Literal, Master_Id,
13284         Set_First_Index, Set_First_Literal, Set_Master_Id):
13285         Add missing Ekind assertions.
13286         (Is_Access_Protected_Subprogram_Type): New predicate.
13287         (Has_RACW): New entity flag, set on package entities to indicate that
13288         the package contains the declaration of a remote accecss-to-classwide
13289         type.
13290         (E_Return_Statement): This node type has the Finalization_Chain_Entity
13291         attribute, in case the result type has controlled parts.
13292         (Requires_Overriding): Add this new flag, because "requires
13293         overriding" is subtly different from "is abstract" (see AI-228).
13294         (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
13295         Is_Abstract_Type. Make sure these are called only when appropriate.
13296         (Has_Pragma_Unreferenced_Objects): New flag
13297
13298         * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
13299         class-wide, the tag of the right-hand side must be an exact match, not
13300         an ancestor of that of the object on left-hand side.
13301         (Move_Activation_Chain): New procedure to create the call to
13302         System.Tasking.Stages.Move_Activation_Chain.
13303         (Expand_N_Extended_Return_Statement): Generate code to call
13304         System.Finalization_Implementation.Move_Final_List at the end of a
13305         return statement if the function's result type has controlled parts.
13306         Move asserts to Build_In_Place_Formal.
13307         (Move_Final_List): New function to create the call statement.
13308         (Expand_N_Assignment_Statement): In case of assignment to a class-wide
13309         tagged type, replace generation of call to the run-time subprogram
13310         CW_Membership by call to Build_CW_Membership.
13311         (Expand_N_Return_Statement): Replace generation of call to the run-time
13312         subprogram Get_Access_Level by call to Build_Get_Access_Level.
13313         (Expand_N_Simple_Function_Return): Replace generation of call to the
13314         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
13315
13316         * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
13317         Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
13318         access to protected operations.
13319         (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
13320         master and chain actual parameters to a build-in-place function call
13321         involving tasks.
13322         (BIP_Formal_Suffix): Add new enumeration literals to complete the case
13323         statement.
13324         (Make_Build_In_Place_Call_In_Allocator,
13325         Make_Build_In_Place_Call_In_Anonymous_Context,
13326         Make_Build_In_Place_Call_In_Assignment,
13327         Make_Build_In_Place_Call_In_Object_Declaration): Call
13328         Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
13329         (Expand_Inlined_Call): If the subprogram is a null procedure, or a
13330         stubbed procedure with a null body, replace the call with a null
13331         statement without using the full inlining machinery, for efficiency
13332         and to avoid invalid values in source file table entries.
13333
13334         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
13335         renamings of calls to build-in-place functions.
13336
13337         * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
13338         provides the functionality of RTE_Available to record components.
13339         (RTU_Entity): The function Entity has been renamed to RTU_Entity
13340         to avoid undesired overloading.
13341         (Entity): New subprogram that returns the entity for the referened
13342         unit. If this unit has not been loaded, it returns Empty.
13343         (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
13344         Remove no longer used entities.
13345         (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
13346         (RE_Type_Specific_Data): New entity.
13347         (RE_Move_Any_Value): New entity.
13348         (RE_TA_A, RE_Get_Any_Type): New entities.
13349         (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
13350          RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
13351          RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
13352         (Entity): New subprogram that returns the entity for the referened
13353         unit. If this unit has not been loaded, it returns Empty.
13354         (RTE): Addition of a new formal that extends the search to the scopes
13355         of the record types found in the chain of the package.
13356
13357         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
13358         "abstract subprograms must be visible" message, whether or not the type
13359         is an interface; that is, remove the special case for interface types.
13360         (Analyze_Function_Return): Remove error message "return of task objects
13361         is not yet implemented" because this is now implemented.
13362         (Create_Extra_Formals): Add the extra master and activation chain
13363         formals in case the result type has tasks.
13364         Remove error message "return of limited controlled objects is not yet
13365         implemented".
13366         (Create_Extra_Formals): Add the extra caller's finalization list formal
13367         in case the result type has controlled parts.
13368         (Process_Formals): In case of access formal types there is no need
13369         to continue with the analysis of the formals if we already notified
13370         errors.
13371         (Check_Overriding_Indicator): Add code to check overriding of predefined
13372         operators.
13373         (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
13374         flags for formals that do not require them,.
13375         (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
13376         hidden entity is use visible or directly visible.
13377         (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
13378         Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
13379         Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
13380         New_Overloaded_Entity): Split Is_Abstract flag into
13381         Is_Abstract_Subprogram and Is_Abstract_Type.
13382
13383         * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
13384         a return statement's finalization list to the caller's list, used for
13385         build-in-place functions with result type with controlled parts.
13386         Remove no longer used entities.
13387
13388         * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
13389         longer needed, because the full type is now limited, and therefore a
13390         pass-by-reference type.
13391         (Foreign_Task_Level): New constant.
13392
13393         * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
13394         move tasks from the activation chain belonging to a return statement to
13395         the one passed in by the caller, and update the master to the one
13396         passed in by the caller.
13397         (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
13398         of unactivated tasks, so we don't kill the ones that are being returned
13399         by a build-in-place function.
13400         (Create_Task): Ignore AI-280 for foreign threads.
13401
13402 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13403             Robert Dewar  <dewar@adacore.com>
13404             Bob Duff  <duff@adacore.com>
13405             Gary Dismukes  <dismukes@adacore.com>
13406
13407         * errout.adb (Unwind_Internal_Type): Use predicate
13408         Is_Access__Protected_Subprogram_Type.
13409
13410         * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
13411         (Freeze_Entity, packed array case): Do not override explicitly set
13412         alignment and size clauses.
13413         (Freeze_Entity):  An entity declared in an outer scope can be frozen if
13414         the enclosing subprogram is a child unit body that acts as a spec.
13415         (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
13416         (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
13417         Remove all code for DSP option
13418
13419         * layout.adb (Layout_Record_Type): Use First/
13420         Next_Component_Or_Discriminant
13421         (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
13422         to handle properly the anonymous access case.
13423
13424         * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
13425         for all access attributes, because overload resolution should work the
13426         same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
13427         causes the error message for the ambiguous "X'Access = Y'Access" and
13428         "X'Unrestricted_Access = Y'Access" and so forth to match.
13429         (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
13430         now that anonymous access to protected operations have their own kind.
13431         (Resolve_Attribute): In case of dispatching call check the violation of
13432         restriction No_Dispatching_Calls.
13433         (Check_Array_Type): Check new -gnatyA array index style option
13434
13435         * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
13436         attempt to derive from a synchronized tagged type.
13437         (Analyze_Type_Declaration): If there is a incomplete tagged view of the
13438         type, inherit the class-wide type already created, because it may
13439         already have been used in a self-referential anonymous access component.
13440         (Mentions_T): Recognize self-referential anonymous access components
13441         that use (a subtype of) the class-wide type of the enclosing type.
13442         (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
13443         Derived_Type for Prev formal on call to
13444         Check_Anonymous_Access_Components rather than Empty.
13445         (Make_Incomplete_Type_Declaration): Add test for case where the type has
13446         a record extension in deciding whether to create a class-wide type,
13447         rather than just checking Tagged_Present.
13448         (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
13449         to stand-alone object declarations as well as component declarations.
13450         (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
13451         prevent accidental overwriting when enclosing package appears in
13452         a limited_with_clause.
13453         (Array_Type_Declaration): If the component type is an anonymous access,
13454         the associated_node for the itype is the type declaration itself.
13455         (Add_Interface_Tag_Components): Modified to support concurrent
13456         types with abstract interfaces.
13457         (Check_Abstract_Interfaces): New subprogram that verifies the ARM
13458         rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
13459         (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
13460         to complete the decoration of synchronized interface types. Add also
13461         a call to Check_Abstract_Interfaces to verify the ARM rules.
13462         (Derive_Interface_Subprograms): Modified to support concurrent types
13463         with abstract interfaces.
13464         (Analyze_Subtype_Indication): Resolve the range with the given subtype
13465         mark, rather than delaying the full resolution depending on context.
13466         (Analyze_Component_Declaration,Analyze_Interface_Declaration,
13467         Analyze_Object_Declaration,Analyze_Subtype_Declaration,
13468         Array_Type_Declaration,Build_Derived_Record_Type,
13469         Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
13470         Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
13471         Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
13472         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
13473         called only when appropriate.
13474         (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
13475         to private type.
13476         (Analyze_Subtype_Declaration): For an access subtype declaration, create
13477         an itype reference for the anonymous designated subtype, to prevent
13478         scope anonmalies in gigi.
13479         (Build_Itype_Reference): New utility, to simplify construction of such
13480         references.
13481
13482 2007-04-06  Vincent Celier  <celier@adacore.com>
13483
13484         * errutil.adb (Initialize): Initialize warnings table, if all warnings
13485         are suppressed, supply an initial dummy entry covering all possible
13486         source locations.
13487
13488         * make.adb (Scan_Make_Arg): Reject options that should start with "--"
13489         and start with only one, such as "-RTS=none".
13490         (Collect_Arguments): Do not check for sources outside of projects.
13491         Do not collect arguments if project is externally built.
13492         (Compile_Sources): Do nothing, not even check if the source is up to
13493         date, if its project is externally built.
13494         (Compile): When compiling a predefined source, add -gnatpg
13495         as the second switch, after -c.
13496         (Compile_Sources): Allow compilation of Annex J renames without -a
13497         (Is_In_Object_Directory): Check if the ALI file is in the object
13498         even if there is no project extension.
13499         (Create_Binder_Mapping_File): Only put a unit in the mapping file for
13500         gnatbind if the ALI file effectively exists.
13501         (Initialize): Add the directory where gnatmake is invoked in front of
13502         the path if it is invoked from a bin directory, even without directory
13503         information, so that the correct GNAT tools will be used when spawned
13504         without directory information.
13505
13506         * makeusg.adb: Change switch -S to -eS
13507         Add lines for new switches -we, -wn and -ws
13508         Add line for new switch -p
13509
13510         * prj-proc.adb (Process): Set Success to False when Warning_Mode is
13511         Treat_As_Error and there are warnings.
13512
13513         * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
13514         -gnatww Change gnatmake switch -S to -eS
13515         (Scan_Make_Switches): Code reorganisation. Process separately multi
13516         character switches and single character switches.
13517         (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
13518         False when switch is not recognized by gnatmake.
13519         (Scan_Make_Switches): Set Setup_Projects True when -p or
13520         --create-missing-dirs is specified.
13521
13522         * fname.adb (Is_Predefined_File_Name): Return True for annex J
13523         renamings Calendar, Machine_Code, Unchecked_Conversion and
13524         Unchecked_Deallocation only when Renamings_Included is True.
13525
13526         * par.adb: Allow library units Calendar, Machine_Code,
13527         Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
13528         when -gnatg is not specified.
13529         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
13530         there is no need to generate always a record_definition_node in case
13531         of synchronized interface types.
13532         (SIS_Entry_Active): Initialize global variable to False
13533         (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
13534         indicate cases where AI-447 says "not null" is legal.
13535
13536         * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
13537
13538         * makegpr.adb (Check_Compilation_Needed): Take into account dependency
13539         files with with several lines starting with the object fileb name.
13540         (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
13541         is specified.
13542         (Initialize): Add the directory where gprmake is invoked in front of the
13543         path, if it is invoked from a bin directory or with directory
13544         information, so that the correct GNAT tools will be used when invoked
13545         directly.
13546         (Check_Compilation_Needed): Process correctly backslashes on Windows.
13547
13548         * vms_data.ads: Update switches/qualifiers
13549
13550 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13551             Thomas Quinot  <quinot@adacore.com>
13552
13553         * exp_aggr.adb:
13554         If the array component is a discriminated record, the array aggregate
13555         is non-static even if the component is given by an aggregate with
13556         static components.
13557         (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
13558         (Convert_Aggr_In_Allocator): If the allocator is for an access
13559         discriminant and the type is controlled. do not place on a finalization
13560         list at this point. The proper list will be determined from the
13561         enclosing object.
13562         (Build_Record_Aggr_Code): If aggregate has box-initialized components,
13563         initialize record controller if needed, before the components, to ensure
13564         that they are properly finalized.
13565         (Build_Record_Aggr_Code): For the case of an array component that has a
13566         corresponding array aggregate in the record aggregate, perform sliding
13567         if required.
13568
13569 2007-04-06  Javier Miranda  <miranda@adacore.com>
13570             Gary Dismukes  <dismukes@adacore.com>
13571             Ed Schonberg  <schonberg@adacore.com>
13572
13573         * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
13574         run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
13575
13576         * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
13577         accessibility on class-wide allocators if the allocator occurs at the
13578         same scope level as the allocator's type. The check is guaranteed to
13579         succeed in that case, even when the expression originates from a
13580         parameter of the containing subprogram.
13581         (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
13582         under No_Dispatching_Calls restriction. During the semantic analysis
13583         we already notified such violation.
13584         (Tagged_Membership): Constant folding. There is no need to check
13585         the tag at run-time if the type of the right operand is non
13586         class-wide abstract.
13587         Replace call to Is_Ancestor by call to Is_Parent
13588         to support concurrent types with interface types.
13589         (Expand_N_Allocator): Add an assertion associated with the generation
13590         of the master_id.
13591         (Expand_N_Slice): Do not enable range check to nodes associated
13592         with the frontend expansion of the dispatch table.
13593         (Is_Local_Access_Discriminant): Subsidiary function to
13594         Expand_N_Allocator.
13595         (Tagged_Membership): Replace generation of call to the run-time
13596         subprogram CW_Membership by call to Build_CW_Membership.
13597         (Expand_Allocator_Expression): Replace generation of call to the
13598         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
13599
13600         * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
13601         initialize most the TSD components by means of an aggregate.
13602         Modify the declaration of the object containing the TSD
13603         because we now expand code that has a higher level of abstraction.
13604         The TSD has a discriminant containing the Inheritance Depth Level,
13605         value that is used in the membership test but also to fix the size
13606         of the table of ancestors.
13607         (Expand_Interface_Conversion): Insert function body at the closest place
13608         to the conversion expression, to prevent access-before-elaboration
13609         errors in the backend.
13610         Code improved to reduce the size of the dispatch table if
13611         compiling under restriction No_Dispatching_Calls plus code cleanup.
13612         Code reorganization plus removal of calls to Set_Num_Prim_Ops
13613         (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
13614         (Expand_Dispatching_Call): Minor code reorganization plus addition of
13615         code to return immediately if compiling under No_Dispatching_Calls
13616         restriction.
13617         (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
13618         CPP_Virtual and CPP_Vtable are no longer supported.
13619         (Expand_Interface_Conversion): Add missing support for interface type
13620         derivations.
13621         (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
13622         Is_Parent to support concurrent types with interfaces.
13623         (Init_Predefined_Interface_Primitives): Removed.
13624         (Make_Secondary_DT): Modified to support concurrent record types.
13625         (Set_All_DT_Position): Modified to support concurrent record types.
13626         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
13627         with Get_External_Tag, Inherit_TSD, Set_External_Tag.
13628         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
13629         with CW_Membership.
13630         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
13631         with Get_Access_Level, Get_Predefined_Prim_Op_Address,
13632         Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
13633         Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
13634         Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
13635         (Expand_Dispatching_Call): Replace generation of call to the run-time
13636         subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
13637         calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
13638         Address.
13639         (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
13640         the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
13641         Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
13642         Build_Set_Prim_Op_Address.
13643         (Get_Remotely_Callable): Subprogram removed.
13644         (Init_Predefined_Interface_Primitives): Replace generation of call to
13645         the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
13646         Prims.
13647
13648         * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
13649         First (Parameter_Associations ()) with the call to First_Actual that
13650         returns an actual parameter expression for both named and positional
13651         associations.
13652
13653         * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
13654         check violation of restriction No_Dispatching_Calls.
13655         (Check_Controlling_Type): A formal of a tagged incomplete type is a
13656         controlling argument.
13657
13658         * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
13659         First/Next_Component_Or_Discriminant
13660         (Insert_Actions): Add entries for new N_Push and N_Pop nodes
13661         (Find_Implemented_Interface): Removed. All the calls to this subprogram
13662         specify Any_Limited_Interface, and this functionality is already
13663         provided by the function Has_Abstract_Interfaces.
13664         (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
13665         support concurrent types implementing interfaces.
13666         (Find_Implemented_Interface): Removed. All the calls to this subprogram
13667         specify kind Any_Limited_Interface, and this functionality is already
13668         provided by the function Has_Abstract_Interfaces.
13669         (Remove_Side_Effects): replace Controlled_Type by
13670         CW_Or_Controlled_Type whenever the issue is related to
13671         using or not the secondary stack.
13672
13673         * par-ch12.adb (P_Formal_Type_Definition): Update calls to
13674         P_Interface_Type_Definition to fulfill the new interface (the formal
13675         Is_Synchronized is no longer required).
13676
13677         * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
13678         Update dependencies.
13679
13680         * exp_atag.ads, exp_atag.adb: New file
13681
13682 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13683             Bob Duff  <duff@adacore.com>
13684             Cyrille Comar  <comar@adacore.com>
13685
13686         * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
13687         anonymous, use finalization list of enclosing dynamic scope.
13688         (Expand_N_Package_Declaration): For a library package declaration
13689         without a corresponding body, generate RACW subprogram bodies in the
13690         spec (just as we do for the task activation call).
13691         (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
13692         Is_Abstract_Type. Make sure these are called only when appropriate.
13693         Remove all code for DSP option
13694         (CW_Or_Controlled_Type): new subprogram.
13695
13696 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
13697             Ed Schonberg  <schonberg@adacore.com>
13698             Gary Dismukes  <dismukes@adacore.com>
13699
13700         * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
13701         parameter. If it is set to true, return a result capped according to
13702         the global upper bound for the index of an entry family.
13703         (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
13704         (Build_Find_Body_Index): Adjust for above change.
13705         (Entry_Index_Expression): Likewise.
13706         (Is_Potentially_Large_Family): New function extracted from...
13707         (Collect_Entry_Families): ...here. Call it to detect whether the family
13708         is potentially large.
13709         (Build_Entry_Count_Expression): If the family is potentially large, call
13710         Family_Size with 'Cap' set to true.
13711         (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
13712         a protected version of an operation declared in the private part of
13713         a protected object, because they may be invoked through a callback.
13714         (Set_Privals): If the type of a private component is an anonymous access
13715         type, do not create a new itype for each protected body.
13716         If the body of a protected operation creates
13717         controlled types (including allocators for class-widetypes), the
13718         body of the corresponding protected subprogram must include a
13719         finalization list.
13720         (Build_Activation_Chain_Entity): Build the chain entity for extended
13721         return statements.
13722         (Type_Conformant_Parameters): Use common predicate Conforming_Types
13723         to determine whether operation overrides an inherited primitive.
13724         (Build_Wrapper_Spec): Add code to examine the parents while looking
13725         for a possible overriding candidate.
13726         (Build_Simple_Entry_Call): Set No_Initialization on the object used to
13727         hold an actual parameter value since its initialization is separated
13728         from the the declaration. Prevents errors on null-excluding access
13729         formals.
13730
13731 2007-04-06  Thomas Quinot  <quinot@adacore.com>
13732             Pablo Oliveira  <oliveira@adacore.com>
13733
13734         * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
13735         Do an Unchecked_Conversion to handle the passage from the Underlying
13736         Type to the Base Type when calling Build_To_Any_Call and
13737         Build_From_Any_Call.
13738         (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
13739         E_Constant, depending upon Variable formal.
13740         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
13741         PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
13742         parameter that requires an extra constrained parameter, declare
13743         temporary for actual as a variable, not a constant.
13744         (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
13745         the unit being compiled is the one that contains the stub type.
13746         Change primitive operation name for the RACW associated with a RAS
13747         from Call to _Call so it cannot clash with any legal identifier.
13748         (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
13749         Is_RAS.
13750         (Append_RACW_Bodies): New subprogram.
13751         (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
13752         Add_Receiving_Stubs_To_Declarations functions.
13753         When expanding a package body, this list correspond to the
13754         statements in the HSS at the end of the pacakge.
13755         When expanding a package spec, this list correspond to the
13756         spec declarations.
13757         (Add_Receiving_Stubs_To_Declarations): Append the function
13758         registering the receiving stubs at the end of the 'Stmts' list.
13759         (RCI_Package_Locator): Pass the new Version generic formal when
13760         instantiating a RCI_Locator package.
13761         (Build_From_Any_Function): To compute the High bound for an
13762         unconstrained array actual, we add the Low bound with the length.
13763         Thus we must convert the low bound and the length to an appropriate
13764         type before doing the sum.
13765         (Build_Subprogram_Receiving_Stubs, PolyORB):
13766          * Retrieve the extra formals parameters at the
13767            end of the parameter stream.
13768          * Use Move_Any_Value to write back out parameters
13769            after executing the request as it is more efficient
13770            than Copy_Any_Value.
13771          * Build the any containing Extra Formals with the
13772            appropriate typecode.
13773         (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
13774         empty Component_List.
13775         (Build_Actual_Object_Declaration): New subprogram. Build and insert into
13776         the tree the declaration for an object that serves as actual parameter
13777         in server-side stubs.
13778         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
13779         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
13780         Use Build_Actual_Object_Declaration to prepare the actuals.
13781         (Add_Parameter_To_NVList): Set the parameter mode to In for
13782         Extra Constrained Parameters.
13783         (Build_General_Calling_Stubs): Set the parameter type to boolean for
13784         Extra Constrained parameters.
13785         (Build_To_Any_Function, Build_From_Any_Function,
13786         Built_TypeCode_Function): When Typ is implicit, call the correct
13787         function with the first not implicit parent type.
13788         (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
13789         (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
13790         typecode from the Etype. Therefore we retrieve the correct typecode
13791         with a call to Get_Any_Type.
13792         (Copy_Specification): Do controlling formal type substitution based on
13793         Is_Controlling_Formal flag, instead of caller-provided object type.
13794         (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
13795         a RACW primitive operation, we might get a subprogram declaration for an
13796         ancestor of the RACW designated type (not for the designated type
13797         itself), in the case where this operation is inherited. In this case we
13798         have no easy means of determining the original tagged type for which
13799         the primitive was declared, so instead we now rely on
13800         Copy_Specification to use the Is_Controlling_Formal flag to determine
13801         which formals require type substitution.
13802
13803 2007-04-06  Robert Dewar  <dewar@adacore.com>
13804             Ed Schonberg  <schonberg@adacore.com>
13805
13806         * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
13807         GNAT.Current_Exception are not allowed if pragma Restrictions
13808         (No_Exception_Propagation) is set and in any case make the associated
13809         handler unsuitable as a target for a local raise statement.
13810         (Expand_Dispatching_Constructor_Call): Replace generation of call to the
13811         run-time subprogram CW_Membership by call to Build_CW_Membership.
13812         (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
13813         by a function call, a temporary must be created before expanding the
13814         Constructor_Call itself, to prevent out-of-order elaboration in the
13815         back-end when stack checking is enabled..
13816
13817 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13818
13819         * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
13820         result are the bounds of the left operand, not the right.
13821
13822 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13823
13824         * exp_strm.adb
13825         (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
13826          discriminant defaults.
13827         (Build_Record_Or_Elementary_Output_Procedure): Ditto.
13828         (Make_Component_List_Attributes): Ditto.
13829
13830 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13831             Bob Duff  <duff@adacore.com>
13832
13833         * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
13834         an association with a box as providing a value even though the
13835         initialization procedure for the type is not available.
13836         (Resolve_Record_Aggregate): Check that a choice of an association with a
13837         box corresponds to a component of the type.
13838         (Resolve_Record_Aggregate): Split Is_Abstract flag into
13839         Is_Abstract_Subprogram and Is_Abstract_Type.
13840
13841         * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
13842         assert.
13843
13844         * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
13845         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
13846         called only when appropriate.
13847
13848 2007-04-06  Olivier Hainque  <hainque@adacore.com>
13849
13850         * g-alleve.ads (Low Level Vector type definitions): Map each to the
13851         associated vector view instead of all to the unsigned char view.
13852
13853         * g-altcon.adb (Generic_Conversions): New internal generic package,
13854         offering facilities for all the Vector/View conversion routines
13855         implemented by this unit.
13856         (To_View/To_Vector - all versions): Reimplemented in a systematic
13857         manner, using the internal Generic_Conversions facilities.
13858
13859 2007-04-06  Pascal Obry  <obry@adacore.com>
13860
13861         * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
13862         string.
13863         (Create): Free the source string before storing the new one.
13864
13865 2007-04-06  Vincent Celier  <celier@adacore.com>
13866
13867         * g-debpoo.adb (Validity): New package with a complete new
13868         implementation of subprograms Is_Valid and Set_Valid.
13869         (Is_Valid): Move to local package Validity
13870         (Set_Valid): Move to local package Validity
13871
13872 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
13873             Pablo Oliveira  <oliveira@adacore.com>
13874
13875         * g-expect.adb (Get_Command_Output): When expanding the output buffer
13876         we must ensure that there is enough place for the new data we are going
13877         to copy in.
13878
13879 2007-04-06  Thomas Quinot  <quinot@adacore.com>
13880
13881         * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
13882         computation.
13883
13884 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
13885             Vincent Celier  <celier@adacore.com>
13886
13887         * gnatcmd.adb (B_Start): Add prefix of binder generated file.
13888         (Stack_String): Add this String that contains the name of the Stack
13889         package in the project file.
13890         (Packages_To_Check_By_Stack): Add this list that contains the packages
13891         to be checked by gnatstack, which are the naming and the stack packages.
13892         (Check_Files): If no .ci files were specified for gnatstack we add all
13893         the .ci files belonging to the projects, including binder generated
13894         files.
13895         (Non_VMS_Usage): Document that gnatstack accept project file switches.
13896         (GNATCmd): Update the B_Start variable if we are in a VMS environment.
13897         Add gnatstack to the list of commands that use project file related
13898         switches, and get the single attribute Switches from the stack package
13899         in a project file when calling gnatstack. Parse the -U flag for
13900         processing files belonging to all projects in the project tree.
13901         Remove all processing for command Setup
13902
13903         * prj-attr.adb: Add new package Stack with single attribute Switches
13904
13905         * vms_conv.ads (Command_Type): Add command Stack.
13906         Move to body declarations that are only used in the body: types Item_Id,
13907         Translation_Type, Item_Ptr, Item and its subtypes.
13908
13909         * vms_conv.adb: (Initialize): Add data for new command Stack.
13910         Add declarations moved from the spec: types Item_Id, Translation_Type,
13911         Item_Ptr, Item and its subtypes.
13912         (Cargs_Buffer): New table
13913         (Cargs): New Boolean global variable
13914         (Process_Buffer): New procedure to create arguments
13915         (Place): Put character in table Buffer or Cargs_Buffer depending on the
13916          value of Cargs.
13917         (Process_Argument): Set Cargs when processing qualifiers for GNAT
13918         COMPILE
13919         (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
13920         empty, for table Cargs_Buffer.
13921         (Initialize): Remove component Setup in Command_List
13922
13923 2007-04-06  Vincent Celier  <celier@adacore.com>
13924
13925         * gprep.adb (Process_Files.Process_One_File): Use full file name when
13926         issuing pragma Source_Reference.
13927
13928 2007-04-06  Emmanuel Briot  <briot@adacore.com>
13929
13930         * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
13931         [[:xdigit:]] character class.
13932         Also raise an exception when an invalid character class is used.
13933
13934 2007-04-06  Pascal Obry  <obry@adacore.com>
13935
13936         * i-cstrea.ads: (fopen): Add encoding parameter.
13937         (freopen): Idem.
13938         Change reference from a-sysdep.c to sysdep.c in comment.
13939         Update copyright notice.
13940         This set of patch add support for the encoding form parameter.
13941
13942         * mingw32.h (S2WSU): New macro to convert from a string to a
13943         wide-string using the UTF-8 encoding. The S2WS macro supports now only
13944         standard 8bits encoding.
13945         (WS2SU): As above but converting from wide-sring to string.
13946         This is needed as it is necessary to have access to both versions in the
13947         runtime for the form parameter encoding support.
13948         This set of patch add support for the encoding form parameter.
13949         (S2WS): Improve implementation to handle cases where the filename is not
13950         UTF-8 encoded. In this case we default to using the current code page
13951         for the conversion.
13952
13953         * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
13954         type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
13955         the constants defined in adaint.h.
13956         (fopen): Add encoding parameter.
13957         (freopen): Idem.
13958
13959         * s-ficobl.ads (AFCB): Add Encoding field to record the filename
13960         encoding. This is needed for the Reset routine (freopen low level-call).
13961
13962         * s-fileio.adb (Open): Decode encoding form parameter and set the
13963         corresponding encoding value into AFCB structure.
13964         (Reset): Pass the encoding value to freopen.
13965         (Close): Move the call to Lock_Task to the beginning of the procedure.
13966
13967 2007-04-06  Geert Bosch  <bosch@adacore.com>
13968             Robert Dewar  <dewar@adacore.com>
13969
13970         * i-fortra.ads: Add Double_Complex type.
13971
13972         * impunit.adb: (Is_Known_Unit): New function
13973         Add Gnat.Byte_Swapping
13974         Add GNAT.SHA1
13975         Add new Ada 2005 units
13976         Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
13977         Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
13978         Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
13979         Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
13980
13981         * impunit.ads (Is_Known_Unit): New function
13982
13983         * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
13984         a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
13985         a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
13986         g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
13987         s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
13988         s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
13989         New files.
13990
13991         * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
13992
13993         * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
13994
13995 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
13996             Arnaud Charlet  <charlet@adacore.com>
13997
13998         * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
13999         __gnat_adjust_context_for_raise.
14000         (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
14001         implementation of floating point operations as native x86 targets.
14002         So the FPU should be initialized in the same way using finit. Fix
14003         floating point operations accuracy issues.
14004         (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
14005         member in struct sigaction, so as to avoid warning for incompatible
14006         pointer types.
14007
14008 2007-04-06 Serguei Rybin  <rybin@adacore.com>
14009
14010         * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
14011         switches from previously loaded tree
14012
14013 2007-04-06  Thomas Quinot  <quinot@adacore.com>
14014
14015         * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
14016         cases where a given dependency has a body or not.
14017         (Write_With_File_Names): New subprogram, common code for the two cases
14018         above.
14019
14020 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14021             Javier Miranda  <miranda@adacore.com>
14022
14023         * lib-xref.ads, lib-xref.adb: 
14024         Modify the loop that collects type references, to include interface
14025         types that the type implements. List each of these interfaces when
14026         building the entry for the type.
14027         (Generate_Definition): Initialize component Def and Typ of new entry
14028         in table Xrefs, to avoid to have these components unitialized.
14029         (Output_References): Split Is_Abstract flag into
14030         Is_Abstract_Subprogram and Is_Abstract_Type.
14031         (Generate_Reference): Add barrier to do not generate the warning
14032         associated with Ada 2005 entities with entities generated by the
14033         expander.
14034
14035 2007-04-06  Robert Dewar  <dewar@adacore.com>
14036             Arnaud Charlet  <charlet@adacore.com>
14037             Vincent Celier  <celier@adacore.com>
14038
14039         * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
14040         Update 'Exception Handling Control' chapter which was outdated.
14041         Minor fix to documentation of -gnatwq
14042         Remove section "Adapting the Run Time to a New C++ Compiler" because
14043         it is now obsolete.
14044         Add passage on need of -nostart-files in some non-ada-main cases.
14045         Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
14046         Update documentation about Interfacing with C++
14047         Add documentation for new gnatmake switch -p
14048         Add missing protocol part in URLs.
14049         Document -gnatyA
14050         Document pragma Compile_Time_Error
14051         Add documentation for Object_Size indicating that stand alone
14052         objects can have a larger size in some cases.
14053         Add node for GNAT.Byte_Swapping, GNAT.SHA1
14054         Update reference to the Ravenscar profile.
14055         Document pragma Unreferenced_Objects
14056
14057         * gnat-style.texi: Fix typo
14058
14059 2007-04-06  Vincent Celier  <celier@adacore.com>
14060
14061         * mlib.adb (Building_Library): Only output "building a library..." in
14062         verbose mode
14063
14064         * mlib-prj.adb (Build_Library): Only output lists of object and ALI
14065         files in verbose mode.
14066
14067         * mlib-utl.adb (Ar): Only output the first object files when not in
14068         verbose mode.
14069         (Gcc): Do not display all the object files if not in verbose mode, only
14070         the first one.
14071
14072 2007-04-06  Robert Dewar  <dewar@adacore.com>
14073
14074         * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
14075         it no longer destroys the contents of Name_Buffer or Name_Len and
14076         non-standard and invalid names are handled better.
14077         (Get_Decoded_Name_String): Improve performance by using
14078         Name_Has_No_Encodings flag in the name table.
14079         (Is_Valid_Name): New function to determine whether a Name_Id is valid.
14080         Used for debugging printouts.
14081
14082 2007-04-06  Robert Dewar  <dewar@adacore.com>
14083             Javier Miranda  <miranda@adacore.com>
14084             Bob Duff  <duff@adacore.com>
14085
14086         * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
14087         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
14088         there is no need to generate always a record_definition_node in case
14089         of synchronized interface types.
14090         (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
14091         (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
14092         illegal in Ada 95, in cases where it is legal. Change the warnings to
14093         errors in other cases. Don't give the error unless the "not null"
14094         parses properly. Correct the source position at which the error occurs.
14095         (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
14096         P_Null_Exclusion, to suppress "not null" warnings.
14097         (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
14098         associated goto statements.
14099
14100         * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
14101         of END RECORD
14102
14103         * scans.ads (Type_Token_Location): New flag
14104
14105         * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
14106         (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
14107         P_Null_Exclusion, to suppress "not null" warnings.
14108
14109 2007-04-06  Robert Dewar  <dewar@adacore.com>
14110             Javier Miranda  <miranda@adacore.com>
14111             Bob Duff  <duff@adacore.com>
14112             Vincent Celier  <celier@adacore.com>
14113
14114         * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
14115         (Extensions_Allowed): No longer sets Ada_Version
14116         Entry for pragma Unreferenced_Objects
14117
14118         * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
14119         system.tasking if pragma priority used in a procedure
14120         (Analyze_Pragma, case Warning): Handle dot warning switches
14121         (Process_Compile_Time_Warning_Or_Error): New procedure
14122         (Analyze_Pragma): Add processing for Compile_Time_Error
14123         Add support for extra arguments External_Name and Link_Name.
14124         Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
14125         (Process_Import_Or_Interface): Add support for the use of pragma Import
14126         with tagged types.
14127         (Extensions_Allowed): No longer affects Ada_Version
14128         (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
14129         Is_Abstract_Type. Make sure these are called only when appropriate.
14130         Add processing for pragma Unreferenced_Objects
14131
14132         * snames.h, snames.ads, snames.adb: Add entry for pragma
14133         Compile_Time_Error
14134         Add new standard name Minimum_Binder_Options for new gprmake
14135         Add new standard names for gprmake: Archive_Suffix,
14136         Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
14137         Library_Support, Library_Version_Options,
14138         Shared_Library_Minimum_Options,
14139         Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
14140         Change Name_Call to Name_uCall so that it cannot clash with a legal
14141         subprogram name.
14142         Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
14143         Append C_Plus_Plus to convention identifiers as synonym for CPP
14144         Add new standard names Stack and Builder_Switches
14145         Add new standard names: Compiler_Minimum_Options, Global_Config_File,
14146         Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
14147         Run_Path_Option, Toolchain_Version.
14148         Entry for pragma Unreferenced_Objects
14149
14150         * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
14151         switches, without repetition of "eD". Make sure that last character of
14152         -gnatep= switch is not taken as -gnat switch character.
14153         Complete rewrite of circuit for handling saving compilation options
14154         Occasioned by need to support dot switchs for -gnatw, but cleans up
14155         things in general.
14156         -gnatX does not affect Ada_Version
14157         Include -gnatyA in -gnatg style switches
14158
14159         * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
14160         warnings on return objects.
14161         (Warn_On_Useless_Assignment): Exclude warnings on return objects
14162         (Set_Dot_Warning_Switch): New procedure
14163         (Check_References): Add missing case of test for
14164         Has_Pragma_Unreferenced_Objects
14165         (Output_Unreferenced_Messages): Implement effect of new pragma
14166         Unreferenced_Objects, remove special casing of limited controlled
14167         variables.
14168
14169 2007-04-06  Vincent Celier  <celier@adacore.com>
14170
14171         * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
14172         the default project path, initially done during elaboration of the
14173         package.
14174         If the prefix returned by Sdefault is null, get the prefix from a call
14175         to Executable_Prefix_Path.
14176         (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
14177         null.
14178
14179         * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
14180         canonical directory name to open the directory from which files are
14181         retrieved.
14182         (Record_Other_Sources): Idem.
14183         (Locate_Directory): Add the possibility to create automatically missing
14184         directories when Setup_Projects is True.
14185         Call Locate_Directory so that the directory will be created when
14186         Setup_Projects is True, for object dir, library dir, library ALI dir,
14187         library source copy dir and exec dir.
14188
14189         * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
14190         versions of GNAT.
14191
14192 2007-04-06  Robert Dewar  <dewar@adacore.com>
14193
14194         * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
14195         Use First/Next_Component_Or_Discriminant
14196         (Analyze_Record_Representation_Clause):
14197         Use First/Next_Component_Or_Discriminant
14198         (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
14199         (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
14200         definition if type is unconstrained.
14201         (Adjust_Record_For_Reverse_Bit_Order): New procedure
14202         (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
14203         Is_Abstract_Subprogram and Is_Abstract_Type.
14204         (Adjust_Record_For_Reverse_Bit_Order): New procedure
14205
14206         * repinfo.adb (List_Record_Info): Use First/
14207         Next_Component_Or_Discriminant.
14208
14209         * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
14210         New procedure.
14211
14212         * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
14213         Include -gnatyA in default switches
14214
14215         * opt.ads: (Warn_On_Non_Local_Exception): New flag
14216         (Warn_On_Reverse_Bit_Order): New flag
14217         (Extensions_Allowed): Update the documentation.
14218         (Warn_On_Questionable_Missing_Parens): Now on by default
14219
14220         * usage.adb: Add documentation of -gnatw.x/X switches
14221         Document new -gnatyA style switch
14222         -gnatq warnings are on by default
14223
14224 2007-04-06  Ed Falis  <falis@adacore.com>
14225
14226         * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
14227         full word is no longer compared twice.
14228
14229 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14230
14231         * sem_ch10.adb (Install_Limited_Context_Clauses.
14232         Expand_Limited_With_Clause): Use a new copy of selector name in the
14233         call to Make_With_Clause. This fixes the tree structure for ASIS
14234         purposes. Nothing is changed in the compiler behaviour.
14235         (Process_Body_Clauses): Handle properly use clauses whose prefix is
14236         a package renaming.
14237         (Install_Limited_With_Clauses): Do not install non-limited view when it
14238         is still incomplete.
14239
14240 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14241             Gary Dismukes  <dismukes@adacore.com>
14242
14243         * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
14244         when capturing size information, instead of base type, which for a
14245         formal array type will be the unconstrained type.
14246         (Analyze_Formal_Object_Declaration): Add check for illegal default
14247         expressions for a formal in object of a limited type.
14248         (Instantiate_Object): Ditto.
14249         (Check_Formal_Package_Instance): Skip entities that are formal objects,
14250         because they were defaulted in the formal package and no check applies
14251         to them.
14252         (Check_Formal_Package_Instance): Extend conformance check to other
14253         discrete types beyond Integer.
14254         (Process_Default): Copy directly the unmatched formal. A generic copy
14255         has already been performed in Analyze_Formal_Package.
14256         (Analyze_Associations): If a formal subprogram has no match, check for
14257         partial parametrization before looking for a default, to prevent
14258         spurious errors.
14259         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
14260         not set the instantiation environment before analyzing the actuals.
14261         Fixes regression on 8515-003 with implementation of AI-133.
14262         Set_Instance_Env checks whether the generic unit is a predefined
14263         unit, in which case the instance must be analyzed with the latest Ada
14264         mode. This setting must take place after analysis of the actuals,
14265         because the actuals must be analyzed and frozen in the Ada mode extant
14266         outside of the current instantiation.
14267         (Save_Env, Restore_Env): Preserve and restore the configuration
14268         parameters so that predefined units can be compiled in the proper Ada
14269         mode.
14270         (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
14271         Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
14272         and Is_Abstract_Type.
14273         (Analyze_Formal_Package): For better error recovery, Add exception
14274         handler to catch Instantion_Error, which can be raised in
14275         Analyze_Associations
14276
14277 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14278             Bob Duff  <duff@adacore.com>
14279             Gary Dismukes  <dismukes@adacore.com>
14280
14281         * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
14282         prefix type is a discriminated subtype of the type of the formal.
14283         (Analyze_Allocator): Collect all coextensions regardless of the context.
14284         Whether they can be allocated statically is determined in exp_ch4.
14285         (Analyze_Selected_Component): If the prefix is a limited view and the
14286         non-limited view is available, use the non-limited one.
14287         (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
14288         therefore illegal), suggest a qualified expression rather than a type
14289         conversion, because a type conversion would be illegal in this context.
14290         (Anayze_Allocator): Trace recursively all nested allocators so that all
14291         coextensions are on the corresponding list for the root. Do no mark
14292         coextensions if the root allocator is within a declaration for a stack-
14293         allocated object, because the access discriminants will be allocated on
14294         the stack as well.
14295         (Analyze_Call): Remove restriction on calls to limited functions for the
14296         cases of generic actuals for formal objects, defaults for formal objects
14297         and defaults for record components.
14298         (Analyze_Allocator): Before analysis, chain coextensions on the proper
14299         element list. Their expansion is delayed until the enclosing allocator
14300         is processed and its finalization list constructed.
14301         (Try_Primitive_Operation): If the prefix is a concurrent type, looks
14302         for an operation with the given name among the primitive operations of
14303         the corresponding record type.
14304         (Analyze_Selected_Component): If the prefix is a task type that
14305         implements an interface, and there is no entry with the given name,
14306         check whether there is another primitive operation (e.g. a function)
14307         with that name.
14308         (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
14309         properly the indexing of a function call written in prefix form, where
14310         the function returns an array type, and all parameters of the function
14311         except the first have defaults.
14312         (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
14313         the original operands, rather than relocating them, for efficiency and
14314         to work properly when an operand is overloaded.
14315         (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
14316         Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
14317         (Analyze_Selected_Component): If the prefix is a private extension, only
14318         scan the visible components, not those of the full view.
14319         (Try_Primitive_Operation): If the operation is a procedure, collect all
14320         possible interpretations, as for a function, because in the presence of
14321         classwide parameters several primitive operations of the type can match
14322         the given arguments.
14323
14324 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14325             Robert Dewar  <dewar@adacore.com>
14326
14327         * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
14328         tag-indeterminate call to an abstract function, when the left-hand side
14329         is not classwide.
14330         (Analyze_Loop_Statement): Improve detection of infinite loops
14331
14332 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14333             Thomas Quinot  <quinot@adacore.com>
14334
14335         * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
14336         out of Analyze_Package_Declaration, because processing must be applied
14337         to package bodies as well, for deferred constants completed by pragmas.
14338         (Analyze_Package_Declaration): When the package declaration being
14339         analyzed does not require an explicit body, call Check_Completion.
14340         (May_Need_Implicit_Body): An implicit body is required when a package
14341         spec contains the declaration of a remote access-to-classwide type.
14342         (Analyze_Package_Body): If the package contains RACWs, append the
14343         pending subprogram bodies generated by exp_dist at the end of the body.
14344         (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
14345         Is_Abstract_Subprogram and Is_Abstract_Type.
14346         (Preserve_Full_Attributes): The full entity list is not an attribute
14347         that must be preserved from full to partial view.
14348
14349         * sem_dist.adb (Add_RAS_Dereference_TSS):
14350         Change primitive name to _Call so it cannot clash with any legal
14351         identifier, and be special-cased in Check_Completion.
14352         Mark the full view of the designated type for the RACW associated with
14353         a RAS as Comes_From_Source to get proper view switching when installing
14354         private declarations.
14355         Provite a placeholder nested package body along with the nested spec
14356         to have a place for Append_RACW_Bodies to generate the calling stubs
14357         and stream attributes.
14358
14359 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14360             Robert Dewar  <dewar@adacore.com>
14361
14362         * sem_ch8.adb (Has_Components): If the argument is an incomplete type
14363         that is a limited view, check the non-limited view if available.
14364         (Undefined): Refine error message for missing with of Text_IO
14365         (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
14366         to distinguish real missing with cases.
14367         Fix format of all missing with messages
14368         (Analyze_Subprogram_Renaming): Emit proper error message on illegal
14369         renaming as body when renamed entity is abstract.
14370
14371 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14372             Javier Miranda  <miranda@adacore.com>
14373
14374         * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
14375         predicate recursive, to handle complex expressions on literals whose
14376         spurious ambiguity comes from the abstract interpretation of some
14377         subexpression.
14378         (Interface_Present_In_Ancestor): Add support to concurrent record
14379         types.
14380         (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
14381         Is_Abstract_Subprogram and Is_Abstract_Type.
14382
14383 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14384             Javier Miranda  <miranda@adacore.com>
14385
14386         * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
14387         dereference of a local object R created as a reference to another
14388         object O, use the access level of O.
14389         (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
14390         rather than local Same_Formal_Type, to check whether protected operation
14391         overrides an inherited one.
14392         (Same_Formal_Type): New predicate, used when matching signatures of
14393         overriding synchronized operations, to handle the case when a formal
14394         has a type that is a generic actual.
14395         (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
14396         predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
14397         (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
14398         syntactic ambiguities involving indexing of function calls that return
14399         arrays.
14400         (Abstract_Interface_List): New subprogram that returns the list of
14401         abstract interfaces associated with a concurrent type or a
14402         concurrent record type.
14403         (Interface_Present_In_Parent): New subprogram used to check if a
14404         given type or some of its parents implement a given interface.
14405         (Collect_Abstract_Interfaces): Add support for concurrent types
14406         with interface types.
14407         (Has_Abstract_Interfaces): Add support for concurrent types with
14408         interface types.
14409         (Is_Parent): New subprogram that determines whether E1 is a parent
14410         of E2. For a concurrent type its parent is the first element of its
14411         list of interface types; for other types this function provides the
14412         same result than Is_Ancestor.
14413         (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
14414         (Collect_Synchronized_Interfaces): Removed because the subprogram
14415         Collect_Abstract_Interfaces provides this functionality.
14416         (Collect_Abstract_Interfaces): Minor update to give support to
14417         concurrent types and thus avoid undesired code duplication.
14418         (Get_Subprogram_Entity): Handle entry calls.
14419         (May_Be_Lvalue): Include actuals that appear as in-out parameters in
14420         entry calls.
14421         (Enter_Name): Do not give -gnatwh hiding warning for record component
14422         entities, they never result in hiding.
14423
14424 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14425             Robert Dewar  <dewar@adacore.com>
14426
14427         * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
14428         to chain nested components that are allocators for access discriminants
14429         of the enclosing object.
14430         Add N_Push and N_Pop nodes
14431         New field Exception_Label added
14432         (Local_Raise_Statements): New field in N_Exception_Handler_Node
14433         (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
14434         (Is_Coextension): New flag for allocators, to mark allocators that
14435         correspond to access discriminants of dynamically allocated objects.
14436         (N_Block_Statement): Document the fact that the corresponding entity
14437         can be an E_Return_Statement.
14438         (Is_Coextension): New flag for allocators.
14439         Remove all code for DSP option
14440
14441         * sprint.ads, sprint.adb: Display basic information for class_wide
14442         subtypes. Add handling of N_Push and N_Pop nodes
14443
14444 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
14445
14446         * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
14447         before propagating exception.
14448
14449 2007-04-06  Olivier Hainque  <hainque@adacore.com>
14450
14451         * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
14452         an address always within the call instruction from a return address.
14453
14454 2007-04-06  Olivier Hainque  <hainque@adacore.com>
14455             Eric Botcazou  <botcazou@adacore.com>
14456
14457         * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
14458         expression with a COMPOUND_EXPR including the call instead of emitting
14459         the call directly here.
14460         (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
14461         high bound is constant and the slice is empty.  Tidy.
14462         (tree_transform, case N_Op_Not): Handle properly the case where the
14463         operation applies to a private type whose full view is a modular type.
14464         (Case_Statement_To_gnu): If an alternative is an E_Constant with an
14465         Address_Clause, use the associated Expression as the GNAT tree
14466         representing the choice value to ensure the corresponding GCC tree is
14467         of the proper kind.
14468         (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
14469         instead of just the operands, as the base GCC stabilize_reference does.
14470         <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
14471         requested; otherwise fail.
14472         (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
14473
14474 2007-04-06  Thomas Quinot  <quinot@adacore.com>
14475
14476         * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
14477         implementation of UI_Div.
14478         (UI_Div): Reimplement as a call to UI_Div_Rem.
14479         (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
14480         remainder, avoiding the cost of a multiplication and a subtraction.
14481         (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
14482         provides both quotient and remainder in a single computation.
14483         (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
14484         functions for uint.
14485         (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
14486         is undefined if the given n is not inversible.
14487
14488 2007-04-06  Olivier Hainque  <hainque@adacore.com>
14489
14490         * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
14491         BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
14492         opcodes.
14493
14494 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
14495             Olivier Hainque  <hainque@adacore.com>
14496
14497         * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
14498         when updating the contents of the old pointer to an unconstrained array.
14499         (end_subprog_body): Set error_gnat_node to Empty.
14500         (write_record_type_debug_info): Do not be unduly sparing with our bytes.
14501         (unchecked_convert): For subtype to base type conversions, require that
14502         the source be a subtype if it is an integer type.
14503         (builtin_decls): New global, vector of available builtin functions.
14504         (gnat_pushdecl): Add global builtin function declaration nodes to the
14505         builtin_decls list.
14506         (gnat_install_builtins): Adjust comments.
14507         (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
14508         calling gnat_pushdecl, so that it knows when it handed a builtin
14509         function declaration node.
14510         (builtin_decl_for): Search the builtin_decls list.
14511
14512 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
14513
14514         * s-stchop-vxworks.adb: 
14515         (Stack_Check): Raise Storage_Error if the argument has wrapped around.
14516
14517 2007-04-06  Robert Dewar  <dewar@adacore.com>
14518             Arnaud Charlet  <charlet@adacore.com>
14519
14520         * a-diroro.ads: Inserted the pragma Unimplemented_Unit
14521
14522         * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
14523         of files
14524         Add mention of -Sev (set initialize_scalars option from environment
14525         variable at run time) in gnatbind usage message.
14526
14527         * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
14528
14529         * fname-uf.ads: Minor comment fix
14530
14531         * osint.ads: Change pragma Elaborate to Elaborate_All
14532
14533         * par-load.adb: Add documentation.
14534
14535         * sem_cat.ads, sem_cat.adb: Minor code reorganization
14536
14537         * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
14538
14539         * s-secsta.ads: Extra comments
14540
14541         * s-soflin.ads: Minor comment fixes
14542
14543         * s-stratt.ads (Block_Stream_Ops_OK): Removed.
14544
14545         * s-wchcon.ads: Minor comment addition
14546
14547         * treepr.adb: Minor change in message
14548         (Print_Name,Print_Node): Make these debug printouts more robust: print
14549         "no such..." instead of crashing on bad input.
14550
14551 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
14552
14553         * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
14554         instead of gnat_signed_or_unsigned_type.
14555         * utils.c (gnat_signed_or_unsigned_type): Remove.
14556         * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
14557         * gigi.h (gnat_signed_or_unsigned_type): Remove
14558
14559 2007-03-09  Roger Sayle  <roger@eyesopen.com>
14560
14561         * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
14562         fold with the result of buildN.
14563         * decl.c (gnat_to_gnu_entity): Likewise.
14564         * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
14565         * utils.c (finish_record_type, merge_sizes, max_size, convert):
14566         Likewise.
14567         * utils2.c (gnat_truthvalue_conversion, compare_arrays,
14568         nonbinary_modular_operation, build_binary_op, build_unary_op,
14569         build_cond_expr): Likewise.
14570
14571         * utils.c (convert): Use fold_build1 when casting values to void.
14572         * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
14573         fold_convert instead of convert when appropriate.
14574
14575 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
14576
14577         * Make-lang.in: Add install-pdf target as copied from
14578         automake v1.10 rules.
14579
14580 2007-02-28  Andreas Schwab  <schwab@suse.de>
14581
14582         * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
14583         $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
14584         (doc/gnat-style.info): Likewise.
14585
14586 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
14587
14588         * gnat-style.texi: Standardize title page.
14589         * gnat_rm.texi: Likewise.
14590         * gnat_ugn.texi: Likewise.
14591
14592 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
14593
14594         * decl.c (annotate_value): Adjust for refactoring of tree_map
14595         hierarchy.
14596
14597 2007-02-24  Mark Mitchell  <mark@codesourcery.com>
14598
14599         * decl.c (annotate_value): Adjust for refactoring of tree_map
14600         hierarchy.
14601
14602 2007-02-21  Ed Schonberg  <schonberg@adacore.com>
14603
14604         PR ada/18819
14605         * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
14606         untagged derived type, add hidden components to keep discriminant
14607         layout consistent, when a given discriminant of the derived type
14608         constraints several discriminants of the parent type.
14609
14610 2007-02-16  Eric Botcazou  <ebotcazou@adacore.com>
14611             Sandra Loosemore  <sandra@codesourcery.com>
14612
14613         * trans.c (call_to_gnu):  Use build_call_list instead of build3 to
14614         build the call expression.
14615         (gnat_stabilize_reference_1): Handle tcc_vl_exp.
14616         * utils.c (max_size) <tcc_exceptional>: Delete.
14617         <tcc_vl_exp>: New case.
14618         <tcc_expression>: Delete CALL_EXPR subcase.
14619         (build_global_cdtor): Use build_call_nary instead of build3.
14620         * utils2.c (build_call_1_expr): Likewise.
14621         (build_call_2_expr): Likewise.
14622         (build_call_0_expr): Likewise.
14623         (build_call_alloc_dealloc): Likewise.
14624
14625 2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
14626
14627         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
14628         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
14629         and _Unwind_SWord with _sleb128_t.
14630
14631 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
14632
14633         * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
14634         * decl.c: Include gt-ada-decl.h.
14635         (annotate_value_cache): New.
14636         (annotate_value): Use it instead of TREE_COMPLEXITY.
14637
14638 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
14639
14640         * misc.c, utils2.c: Fix comment typos.
14641
14642 2007-01-24  Roger Sayle  <roger@eyesopen.com>
14643
14644         * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
14645         TREE_CONSTANT_OVERFLOW.
14646         (allocatable_size_p, annotate_value): Likewise.
14647         * trans.c (gnat_to_gnu): Likewise.
14648         * utils.c (unchecked_convert): Likewise.
14649         * utils2.c (build_simple_component_ref): Likewise.
14650
14651 2007-01-23  Richard Guenther  <rguenther@suse.de>
14652
14653         PR bootstrap/30541
14654         * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
14655         (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
14656         (gnatboot3): Likewise.
14657         (GNATBIND): Do not define.
14658         * Makefile.in (GNATBIND): Do not define.
14659
14660 2007-01-08  Richard Guenther  <rguenther@suse.de>
14661
14662         * cuintp.c (build_cst_from_int): Use built_int_cst_type.
14663         * trans.c (gnat_to_gnu): Likewise.
14664
14665 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
14666
14667         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
14668         * adaint.c: Likewise.
14669
14670 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
14671
14672         Merge from gimple-tuples-branch:
14673         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
14674
14675         * ada-tree.h (lang_tree_node): Handle gimple tuples.
14676         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
14677         GIMPLE_MODIFY_STMT.
14678
14679 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
14680
14681         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
14682         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
14683         Fix typos.
14684
14685 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
14686
14687         PR ada/27936
14688         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
14689         if the initializer takes into account the padding.
14690
14691 2006-11-11  Richard Guenther  <rguenther@suse.de>
14692
14693         * trans.c (maybe_stabilize_reference): Remove handling of
14694         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
14695
14696 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
14697
14698         PR ada/29707
14699         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
14700         (To_Target_Priority): New function.
14701
14702 2006-10-31  Robert Dewar  <dewar@adacore.com>
14703
14704         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
14705         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
14706         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
14707         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
14708         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
14709         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
14710         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
14711         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
14712         a-szbzha.adb: Minor reformatting. Fix header.
14713
14714         * a-numaux-x86.adb: Add parentheses for use of unary minus
14715         * a-ngcefu.adb: Supply missing parentheses for unary minus
14716         * a-ngcoty.adb: Add parens for use of unary minus
14717         * a-ngelfu.adb: Add missing parens for unary minus
14718         * a-tifiio.adb: Add parentheses for uses of unary minus
14719
14720 2006-10-31  Robert Dewar  <dewar@adacore.com>
14721             Bob Duff  <duff@adacore.com>
14722             Ed Schonberg  <schonberg@adacore.com>
14723
14724         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
14725         with multiplying operator.
14726         (Expected_Type_Is_Any_Real): New function to determine from the Parent
14727         pointer whether the context expects "any real type".
14728         (Resolve_Arithmetic_Op): Do not give an error on calls to the
14729         universal_fixed "*" and "/" operators when they are used in a context
14730         that expects any real type. Also set the type of the node to
14731         Universal_Real in this case, because downstream processing requires it
14732         (mainly static expression evaluation).
14733         Reword some continuation messages
14734         Add some \\ sequences to continuation messages
14735         (Resolve_Call): Refine infinite recursion case. The test has been
14736         sharpened to eliminate some false positives.
14737         Check for Current_Task usage now includes entry barrier, and is now a
14738         warning, not an error.
14739         (Resolve): If the call is ambiguous, indicate whether an interpretation
14740         is an inherited operation.
14741         (Check_Aggr): When resolving aggregates, skip associations with a box,
14742         which are priori correct, and will be replaced by an actual default
14743         expression in the course of expansion.
14744         (Resolve_Type_Conversion): Add missing support for conversion from
14745         a class-wide interface to a tagged type. Minor code cleanup.
14746         (Valid_Tagged_Converion): Add support for abstact interface type
14747         conversions.
14748         (Resolve_Selected_Component): Call Generate_Reference here rather than
14749         during analysis, and use May_Be_Lvalue to distinguish read/write.
14750         (Valid_Array_Conversion): New procedure, abstracted from
14751         Valid_Conversion, to incorporate accessibility checks for arrays of
14752         anonymous access types.
14753         (Valid_Conversion): For a conversion to a numeric type occurring in an
14754         instance or inlined body, no need to check that the operand type is
14755         numeric, since this has been checked during analysis of the template.
14756         Remove legacy test for scope name Unchecked_Conversion.
14757
14758         * sem_res.ads: Minor reformatting
14759
14760         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
14761         (PE_Current_Task_In_Entry_Body): New exception code
14762         (SE_Restriction_Violation): Removed, not used
14763
14764         * a-except.ads:  Update comments.
14765
14766         * types.h, types.ads: Add definition for Validity_Check
14767         (PE_Current_Task_In_Entry_Body): New exception code
14768         (SE_Restriction_Violation): Removed, not used
14769
14770 2006-10-31  Thomas Quinot  <quinot@adacore.com>
14771
14772         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
14773         error status.
14774
14775 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
14776             Jose Ruiz  <ruiz@adacore.com>
14777
14778         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
14779         part of Ada.Calendar: all subprogram raise Unimplemented.
14780         (Split_W_Offset): Temp function body, raising Unimplemented
14781
14782         * a-calend.ads, a-calend-vms.ads: 
14783         Add imported variable Invalid_TZ_Offset used to designate targets unable
14784         to support time zones.
14785         (Unimplemented): Temporary function raised by the body of new
14786         subprograms below.
14787         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
14788         unit provides handling of leap seconds and is used by the new Ada 2005
14789         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
14790         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
14791         version returns an extra value which is the offset to UTC.
14792
14793         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
14794         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
14795         (Split_W_Offset): New function body.
14796         (Time_Of): When a date is close to UNIX epoch, compute the time for
14797         that date plus one day (that amount is later substracted after
14798         executing mktime) so there are no problems with time zone adjustments.
14799
14800         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
14801
14802         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
14803         a-catizo.ads, a-catizo.adb: New files.
14804
14805         * impunit.adb: Add new Ada 2005 entries
14806
14807         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
14808         Rename all occurences of "__gnat_localtime_r" to
14809         "__gnat_localtime_tzoff".
14810         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
14811         zone data and calculate the GMT offset.
14812         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
14813         Use the field "tm_gmtoff" to extract the GMT offset.
14814         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
14815         the external variable "timezone" to calculate the GMT offset.
14816
14817 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
14818             Jose Ruiz  <ruiz@adacore.com>
14819
14820         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb, 
14821         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads, 
14822         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
14823         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
14824         System.Any_Priority to a POSIX priority on the target.
14825
14826         * system-linux-ia64.ads: 
14827         Extend range of Priority types on Linux to use the whole range made
14828         available by the system.
14829
14830         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
14831         function maps from System.Any_Priority to a POSIX priority on the
14832         target.
14833         (PTHREAD_PRIO_PROTECT): Set real value.
14834         (PTHREAD_PRIO_INHERIT): Now a function.
14835         (SIGCPUFAIL): New signal.
14836         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
14837         are documented as reserved by the OS.
14838
14839         * system-aix.ads: Use the full range of priorities provided by the
14840         system on AIX.
14841
14842         * s-taprop-posix.adb: Call new function To_Target_Priority.
14843         (Set_Priority): Take into account Task_Dispatching_Policy and
14844         Priority_Specific_Dispatching pragmas when determining if Round Robin
14845         must be used for scheduling the task.
14846
14847         * system-linux-x86_64.ads, system-linux-x86.ads, 
14848         system-linux-ppc.ads: Extend range of Priority types on Linux to use
14849         the whole range made available by the system.
14850
14851         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb, 
14852         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb, 
14853         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
14854         when deallocating the TCB in order to avoid potential references to
14855         deallocated data.
14856         (Set_Priority): Take into account Task_Dispatching_Policy and
14857         Priority_Specific_Dispatching pragmas when determining if Round Robin
14858         or FIFO within priorities must be used for scheduling the task.
14859
14860         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
14861         the Thread field (to be used internally by the run-time system) and the
14862         kernel-level task id in the LWP field (to be used by the debugger).
14863         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
14864         instance, and propagate the current task options to the spawned task.
14865         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
14866         (Initialize): Set Round Robin dispatching when the corresponding pragma
14867         is in effect.
14868
14869 2006-10-31  Robert Dewar  <dewar@adacore.com>
14870
14871         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
14872         system-linux-hppa.ads, system-hpux-ia64.ads, 
14873         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads, 
14874         system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
14875         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
14876         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads, 
14877         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
14878         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
14879         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
14880         Default_Bit_Order) to kill constant condition warnings for references
14881         to this switch.
14882
14883 2006-10-31  Vincent Celier  <celier@adacore.com>
14884             Eric Botcazou  <ebotcazou@adacore.com>
14885
14886         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
14887         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
14888         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
14889         Ext_To, when building the library file name
14890
14891         * mlib-tgt-vxworks.adb: ditto.
14892         (Get_Target_Suffix): Add support for x86 targets.
14893
14894         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
14895
14896         * mlib-tgt-darwin.adb: 
14897         Use Append_To, instead of Ext_To, when building the library file name
14898         (Flat_Namespace): New global variable.
14899         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
14900         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
14901         (Link_Shared_Libgcc): Delete.
14902         (Build_Dynamic_Library): Adjust for above changes.
14903         Use Opt package.
14904         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
14905
14906 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
14907
14908         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
14909         (Initialize): Add type conversions required by above change.
14910
14911 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
14912
14913         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
14914         (getpid): New body for this function that uses the underlying taskIdSelf
14915         function for VxWorks 5 and VxWorks 6 in kernel mode.
14916         (unsigned_int): New type, modular to allow logical bit operations.
14917         (taskOptionsGet): New imported function.
14918
14919         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
14920         field to be compliant with the type used by the corresponding operating
14921         system primitive.
14922
14923 2006-10-31  Pascal Obry  <obry@adacore.com>
14924             Eric Botcazou  <ebotcazou@adacore.com>
14925             Vincent Celier  <celier@adacore.com>
14926
14927         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
14928         ASCII version of the registry API. This is needed as the GNAT runtime
14929         is now UNICODE by default.
14930         Include version.h.
14931         (get_gcc_version): Do not hardcode the return value.
14932         (__gnat_file_time_name): On Windows properly set the default returned
14933         value to -1 which corresponds to Invalid_Time.
14934         (__gnat_fopen): New routine. A simple wrapper on all plateforms
14935          except on Windows where it does conversion for unicode support.
14936         (__gnat_freopen): Idem.
14937         (__gnat_locate_exec_on_path): If environment variable PATH does not
14938         exist, return a NULL pointer
14939
14940         * adaint.h: (__gnat_fopen): Declare.
14941         (__gnat_freopen): Likewise.
14942
14943         * mingw32.h (_tfreopen): Define this macro here for older MingW
14944         version.
14945         Activate the unicode support on platforms using a MingW runtime
14946         version 3.9 or newer.
14947
14948         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
14949         This is needed for proper unicode support on Windows.
14950         (freopen): Idem.
14951
14952 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
14953             Nicolas Setton  <setton@adacore.com>
14954             Olivier Hainque  <hainque@adacore.com>
14955             Gary Dismukes  <dismukes@adacore.com>
14956
14957         * gigi.h: (tree_code_for_record_type): Declare.
14958         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
14959         (get_global_renaming_pointers): Rename to
14960         invalidate_global_renaming_pointers.
14961         (static_ctors): Delete.
14962         (static_dtors): Likewise.
14963         (gnat_write_global_declarations): Declare.
14964         (create_var_decl): Adjust descriptive comment to indicate that the
14965         subprogram may return a CONST_DECL node.
14966         (create_true_var_decl): Declare new function, similar to
14967         create_var_decl but forcing the creation of a VAR_DECL node.
14968         (get_global_renaming_pointers): Declare.
14969         (add_global_renaming_pointer): Likewise.
14970
14971         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
14972
14973         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
14974         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
14975         processing.
14976         (gnat_to_gnu_entity): Remove From_With_Type from computation for
14977         imported_p.
14978         <E_Access_Type>: Use the Non_Limited_View as the full view of the
14979         designated type if the pointer comes from a limited_with clause.  Make
14980         incomplete designated type if it is in the main unit and has a freeze
14981         node.
14982         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
14983         Underlying_Full_View similarly.  Return earlier if the full view already
14984         has an associated tree.
14985         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
14986         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
14987         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
14988         reference type built for objects with an address clause.
14989         Use create_true_var_decl with const_flag set for
14990         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
14991         TREE_READONLY set.
14992         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
14993         for Character and Wide_Character types. This info is read by the
14994         dwarf-2 writer, and is needed to be able to use the command "ptype
14995         character" in the debugger.
14996         (gnat_to_gnu_entity): When generating a type representing
14997         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
14998         so that debug writers can distinguish it from ordinary integers.
14999         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
15000         addition to TREE_READONLY to assert the constantness of variables for
15001         elaboration purposes.
15002         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
15003         parameters to call new Einfo function First_Formal_With_Extras.
15004         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
15005         protected type with its corresponding discriminant, to obtain a usable
15006         declaration
15007         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
15008         for a multiple elaboration of the "equivalent" type.
15009         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
15010         into record_global_renaming_pointer.
15011         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
15012         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
15013         <E_Array_Subtype>: Likewise.
15014         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
15015         incomplete subtypes and incomplete subtypes of incomplete types visible
15016         through a limited with clause.
15017         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
15018         the base index type for the maximum size of the array only if they are
15019         constant.
15020         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
15021         expression into a SAVE_EXPR if stabilization failed.
15022
15023         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
15024         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
15025         by lower level compilation passes.
15026         (gnat_genericize): New function, lowering a function body to GENERIC.
15027         Turn the type of RESULT_DECL into a real reference type if the decl
15028         has been marked DECL_BY_REFERENCE, and adjust references to the latter
15029         accordingly.
15030         (gnat_genericize_r): New function. Tree walking callback for
15031         gnat_genericize.
15032         (convert_from_reference, is_byref_result): New functions. Helpers for
15033         gnat_genericize_r.
15034         (create_type_decl): Call gnat_pushdecl before calling
15035         rest_of_decl_compilation, to make sure that field TYPE_NAME of
15036         type_decl is properly set before calling the debug information writers.
15037         (write_record_type_debug_info): The heuristics which compute the
15038         alignment of a field in a variant record might not be accurate. Add a
15039         safety test to make sure no alignment is set to a smaller value than
15040         the alignment of the field type.
15041         (make_dummy_type): Use the Non_Limited_View as the underlying type if
15042         the type comes from a limited_with clause. Do not loop on the full view.
15043         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
15044         (dummy_node_table): New global variable, moved from decl.c.
15045         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
15046         (save_gnu_tree): Use above macros.
15047         (get_gnu_tree): Likewise.
15048         (present_gnu_tree): Likewise.
15049         (init_dummy_type): New function, moved from decl.c. Use above macros.
15050         (make_dummy_type): Likewise.
15051         (tree_code_for_record_type): New function extracted from make_dummy_type
15052         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
15053         (static_ctors): Change it to a vector, make static.
15054         (static_dtors): Likewise.
15055         (end_subprog_body): Adjust for above change.
15056         (build_global_cdtor): Moved from trans.c.
15057         (gnat_write_global_declarations): Emit global constructor and
15058         destructor, and call cgraph_optimize before emitting debug info for
15059         global declarations.
15060         (global_decls): New global variable.
15061         (gnat_pushdecl): Store the global declarations in global_decls, for
15062         later use.
15063         (gnat_write_global_declarations): Emit debug information for global
15064          declarations.
15065         (create_var_decl_1): Former create_var_decl, with an extra argument to
15066          state whether the creation of a CONST_DECL is allowed.
15067         (create_var_decl): Behavior unchanged. Now a wrapper around
15068         create_var_decl_1 allowing CONST_DECL creation.
15069         (create_true_var_decl): New function, similar to create_var_decl but
15070         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
15071         (create_field_decl): Do not always mark the field as addressable
15072         if its type is an aggregate.
15073         (global_renaming_pointers): New static variable.
15074         (add_global_renaming_pointer): New function.
15075         (get_global_renaming_pointers): Likewise.
15076
15077         * misc.c (gnat_dwarf_name): New function.
15078         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
15079         (gnat_post_options): Add comment about structural alias analysis.
15080         (gnat_parse_file): Do not call cgraph_optimize here.
15081         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
15082
15083         * trans.c (process_freeze_entity): Don't abort if we already have a
15084         non dummy GCC tree for a Concurrent_Record_Type, as it might
15085         legitimately have been elaborated while processing the associated
15086         Concurrent_Type prior to this explicit freeze node.
15087         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
15088         exception handler volatile if it is of variable size.
15089         (process_type): Remove bypass for types coming from a limited_with
15090         clause.
15091         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
15092         actual, convert the corresponding gnu_actual to the real destination
15093         type when necessary.
15094         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
15095         originally TREE_READONLY but whose elaboration cannot be performed
15096         statically.
15097         Part of fix for F504-021.
15098         (tree_transform, subprogram cases): Change loops on formal parameters to
15099         call new Einfo function First_Formal_With_Extras.
15100         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
15101         stemming from type conversion for the lhs.
15102         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
15103         number of bits per unit for components of records.
15104         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
15105         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
15106         with At_End_Proc after the SJLJ EH cleanup.
15107         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
15108         compilation unit.
15109         (elaborate_all_entities): Do not retest type_annotate_only.
15110         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
15111         result type of an abstract subprogram, which may be an itype associated
15112         with an anonymous access result (related to AI-318-02).
15113         (build_global_cdtor): Move to utils.c.
15114         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
15115         this choice is not a null tree nor an integer constant.
15116         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
15117         on the body of elaboration routines instead of mark_unvisited.
15118         (add_stmt): Do not mark the tree.
15119         (add_decl_expr): Tweak comment.
15120         (mark_unvisited): Delete.
15121         (unshare_save_expr): New static function.
15122         (call_to_gnu): Issue an error when making a temporary around a
15123         procedure call because of non-addressable actual parameter if the
15124         type of the formal is by_reference.
15125         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
15126         after building the elaboration routine.
15127
15128 2006-10-31  Bob Duff  <duff@adacore.com>
15129
15130         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
15131         as finalization-started, so we can raise Program_Error on 'new'.
15132
15133         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
15134         collection has already started.
15135
15136         * s-finimp.ads (Collection_Finalization_Started): Added new special
15137         flag value for indicating that a collection's finalization has started.
15138
15139         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
15140         create a task whose master has already waited for dependent tasks.
15141
15142 2006-10-31  Robert Dewar  <dewar@adacore.com>
15143
15144         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
15145
15146         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads, 
15147         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads, 
15148         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads, 
15149         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads, 
15150         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads, 
15151         a-except-2005.ads: Add pragma Preelaborable_Warning
15152
15153 2006-10-31  Robert Dewar  <dewar@adacore.com>
15154             Jose Ruiz  <ruiz@adacore.com>
15155
15156         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
15157
15158         * ali.adb (Get_Name): Properly handle scanning of wide character names
15159         encoded with brackets notation.
15160         (Known_ALI_Lines): Add S lines to this list.
15161         (Scan_ALI): Acquire S (priority specific dispatching) lines.
15162         New flag Elaborate_All_Desirable in unit table
15163
15164         * ali.ads (Priority_Specific_Dispatching): Add this range of
15165         identifiers to be used for Priority_Specific_Dispatching table entries.
15166         (ALIs_Record): Add First_Specific_Dispatching and
15167         Last_Specific_Dispatching that point to the first and last entries
15168         respectively in the priority specific dispatching table for this unit.
15169         (Specific_Dispatching): Add this table for storing each S (priority
15170         specific dispatching) line encountered in the input ALI file.
15171         New flag Elaborate_All_Desirable in unit table
15172
15173         * bcheck.adb: (Check_Configuration_Consistency): Add call to
15174         Check_Consistent_Dispatching_Policy.
15175         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
15176         verifying that the use of Priority_Specific_Dispatching,
15177         Task_Dispatching_Policy, and Locking_Policy is consistent across the
15178         partition.
15179
15180         * bindgen.adb: (Public_Version_Warning): function removed.
15181         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
15182         required information from ALI files in order to initialize the table
15183         containing the specific dispatching policy.
15184         (Gen_Adainit_Ada): Generate the variables required for priority specific
15185         dispatching entries (__gl_priority_specific_dispatching and
15186         __gl_num_specific_dispatching).
15187         (Gen_Adainit_C): Generate the variables required for priority specific
15188         dispatching entries (__gl_priority_specific_dispatching and
15189         __gl_num_specific_dispatching).
15190         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
15191         pragma entries.
15192         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
15193         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
15194         (Tab_To): Removed.
15195         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
15196         a call to gnat_set_globals.
15197         Generate a string containing settings from
15198         Priority_Specific_Dispatching pragma entries.
15199         (Gen_Object_Files_Options): Do not include the runtime libraries when
15200         pragma No_Run_Time is specified.
15201
15202         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
15203         consistency with s-intman-posix.adb.
15204         (__gnat_error_handler, case FreeBSD): Account for the fact that the
15205         handler is installed with SA_SIGINFO.
15206         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
15207         FreeBSD ZCX support, copied from Linux version.
15208         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
15209         sigfillset, and sigemptyset so the routines defined by MaRTE.
15210         (__gl_priority_specific_dispatching): Add this variable that stores the
15211         string containing priority specific dispatching policies in the
15212         partition.
15213         (__gl_num_specific_dispatching): Add this variable that indicates the
15214         highest priority for which a priority specific dispatching pragma
15215         applies.
15216         (__gnat_get_specific_dispatching): Add this routine that returns the
15217         priority specific dispatching policy, as set by a
15218         Priority_Specific_Dispatching pragma appearing anywhere in the current
15219         partition. The input argument is the priority number, and the result
15220         is the upper case first character of the policy name.
15221         (__gnat_set_globals): Now a dummy function.
15222         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
15223         mechargs instead of sigargs, as the latter can be retrieved from the
15224         former and sigargs is not what we want on ia64.
15225         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
15226         mechargs argument.
15227         (__gnat_adjust_context_for_raise, ia64-vms): New function.
15228         (tasking_error): Remove unused symbol.
15229         (_abort_signal): Move this symbol to the IRIX specific part since this
15230         is the only target that uses this definition.
15231         (Check_Abort_Status): Move this symbol to the IRIX specific part since
15232         this is the only target that uses this definition.
15233         (Lock_Task): Remove unused symbol.
15234         (Unlock_Task): Remove unused symbol.
15235
15236         * lib-writ.adb (Write_ALI): Output new S lines for
15237         Priority_Specific_Dispatching pragmas.
15238         Implement new flag BD for elaborate body desirable
15239
15240         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
15241         (Specific_Dispatching): Add this table for storing the entries
15242         corresponding to Priority_Specific_Dispatching pragmas.
15243         Document new BD flag for elaborate body desirable
15244
15245         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
15246         of known pragmas.
15247
15248 2006-10-31  Javier Miranda  <miranda@adacore.com>
15249
15250         * a-tags.ads, a-tags.adb: 
15251         (Predefined_DT): New function that improves readability of the code.
15252         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
15253         Inherit_DT): Use the new function Predefined_DT to improve code
15254         readability.
15255         (Register_Interface_Tag): Update assertion.
15256         (Set_Interface_Table): Update assertion.
15257         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
15258         determining progenitor interfaces in Tags.
15259         (Inherit_CPP_DT): New subprogram.
15260
15261         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
15262         analysis of the thunk code.
15263         (Expand_Interface_Conversion): Handle run-time conversion of
15264         access to class wide types.
15265         (Expand_Dispatching_Call): When generating the profile for the
15266         subprogram itype for a dispatching operation, properly terminate the
15267         formal parameters chaind list (set the Next_Entity of the last formal
15268         to Empty).
15269         (Collect_All_Interfaces): Removed. This routine has been moved to
15270         sem_util and renamed as Collect_All_Abstract_Interfaces.
15271         (Set_All_DT_Position): Hidden entities associated with abstract
15272         interface primitives are not taken into account in the check for
15273         3.9.3(10); this check is done with the aliased entity.
15274         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
15275         interfacing with CPP by default.
15276         (Expand_Interface_Conversion): Add missing support for static conversion
15277         from an interface to a tagged type.
15278         (Collect_All_Interfaces): Add new out formal containing the list of
15279         abstract interface types to cleanup the subprogram Make_DT.
15280         (Make_DT): Update the code to generate the table of interfaces in case
15281         of abstract interface types.
15282         (Is_Predefined_Dispatching_Alias): New function that returns true if
15283         a primitive is not a predefined dispatching primitive but it is an
15284         alias of a predefined dispatching primitive.
15285         (Make_DT): If the ancestor of the type is a CPP_Class and we are
15286         compiling under full ABI compatibility mode we avoid the generation of
15287         calls to run-time services that fill the dispatch tables because under
15288         this mode we currently inherit the dispatch tables in the IP subprogram.
15289         (Write_DT): Emit an "is null" indication for a null procedure primitive.
15290         (Expand_Interface_Conversion): Use an address as the type of the formal
15291         of the internally built function that handles the case in which the
15292         target type is an access type.
15293
15294 2006-10-31  Robert Dewar  <dewar@adacore.com>
15295
15296         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
15297
15298 2006-10-31  Robert Dewar  <dewar@adacore.com>
15299
15300         * bindusg.ads, bindusg.adb:
15301         Change to package and rename procedure as Display, which
15302         now ensures that it only outputs usage information once.
15303
15304 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
15305
15306         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
15307         using RTPs.
15308
15309         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
15310         when using RTPs.
15311
15312 2006-10-31  Robert Dewar  <dewar@adacore.com>
15313             Ed Schonberg  <schonberg@adacore.com>
15314
15315         * treepr.adb: Use new subtype N_Membership_Test
15316
15317         * checks.ads, checks.adb: Add definition for Validity_Check
15318         (Range_Or_Validity_Checks_Suppressed): New function
15319         (Ensure_Valid): Test Validity_Check suppressed
15320         (Insert_Valid_Check): Test Validity_Check suppressed
15321         (Insert_Valid_Check): Preserve Do_Range_Check flag
15322         (Validity_Check_Range): New procedure
15323         (Expr_Known_Valid): Result of membership test is always valid
15324         (Selected_Range_Checks): Range checks cannot be applied to discriminants
15325         by themselves. Disabling those checks must also be done for task types,
15326         where discriminants may be used for the bounds of entry families.
15327         (Apply_Address_Clause_Check): Remove side-effects if address expression
15328         is non-static and is not the name of a declared constant.
15329         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
15330         Code cleanup and new error messages.
15331         (Enable_Range_Check): Test for some cases of suppressed checks
15332         (Generate_Index_Checks): Suppress index checks if index checks are
15333         suppressed for array object or array type.
15334         (Apply_Selected_Length_Checks): Give warning for compile-time detected
15335         length check failure, even if checks are off.
15336         (Ensure_Valid): Do not generate a check on an indexed component whose
15337         prefix is a packed boolean array.
15338         * checks.adb: (Alignment_Checks_Suppressed): New function
15339         (Apply_Address_Clause_Check): New procedure, this is a completely
15340         rewritten replacement for Apply_Alignment_Check
15341         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
15342         we request a discriminal value only in case of discriminants.
15343         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
15344         assignments where the target subtype is unconstrained and the target
15345         object is a parameter or dereference (other aliased cases are known
15346         to be unconstrained).
15347
15348 2006-10-31  Robert Dewar  <dewar@adacore.com>
15349
15350         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
15351         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
15352         vms_conv.adb: Fix bad table increment values (much too small)
15353
15354         * table.adb (Realloc): Make sure we get at least some new elements
15355         Defends against silly small values for table increment
15356
15357 2006-10-31  Robert Dewar  <dewar@adacore.com>
15358             Ed Schonberg  <schonberg@adacore.com>
15359             Bob Duff  <duff@adacore.com>
15360
15361         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
15362         entities. Move other fields around to make this possible
15363         (Is_Derived_Type): Add missing call to Is_Type.
15364         (Extra_Formals): New function for subprograms, entries, subprogram
15365         types.
15366         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
15367         (First_Formal_With_Extras): New function for subprogs, entries, subp
15368         types.
15369         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
15370         Add node information for E_Return_Statement.
15371         (Elaborate_Body_Desirable): New flag
15372         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
15373         to be Is_Inherently_Limited_Type, because return-by-reference has
15374         no meaning in Ada 2005.
15375         (E_Return_Statement): New entity kind.
15376         (Return_Applies_To): Field of E_Return_Statement.
15377         (Is_Return_Object): New flag in object entities.
15378         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
15379         (Must_Have_Preelab_Init): New flag
15380         (Known_To_Have_Preelab_Init): New flag
15381         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
15382         (Is_Visible_Formal): New flag on entities in formal packages.
15383         (Low_Bound_Known): New flag
15384         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
15385         Incomplete_Kind.
15386         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
15387         output when Id is an incomplete subtype.
15388
15389 2006-10-31  Robert Dewar  <dewar@adacore.com>
15390
15391         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
15392         Avoid abbreviation Creat
15393         (Finalize): List all sources in extended mail source if -gnatl
15394         switch is active.
15395         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
15396         (Finalize): Implement new -gnatl=xxx switch to output listing to file
15397         (Set_Specific_Warning_On): New procedure
15398         (Set_Specific_Warning_Off): New procedure
15399         Add implementation of new insertion \\
15400         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
15401         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
15402         types.
15403         (Error_Msg_Internal): Make sure that we set Last_Killed to
15404         True when a message from another package is suppressed.
15405         Implement insertion character ~ (insert string)
15406         (First_Node): Minor adjustments to get better placement.
15407
15408         * frontend.adb: 
15409         Implement new -gnatl=xxx switch to output listing to file
15410
15411         * gnat1drv.adb: 
15412         Implement new -gnatl=xxx switch to output listing to file
15413
15414         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
15415         (Commands_To_Stdout): New flag
15416         Implement new -gnatl=xxx switch to output listing to file
15417         New switch Dump_Source_Text
15418         (Warn_On_Deleted_Code): New warning flag for -gnatwt
15419         Define Error_Msg_Line_Length
15420         (Warn_On_Assumed_Low_Bound): New switch
15421
15422         * osint.ads, osint.adb
15423         (Normalize_Directory_Name): Fix bug.
15424         Implement new -gnatl=xxx switch to output listing to file
15425         (Concat): Removed, replaced by real concatenation
15426         Make use of concatenation now allowed in compiler
15427         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
15428         we find the 'lib' or 'bin' directory even when the tool has been
15429         invoked with a relative path.
15430         (Executable_Name): New function taking string parameters.
15431
15432         * osint-c.ads, osint-c.adb: 
15433         Implement new -gnatl=xxx switch to output listing to file
15434
15435         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
15436
15437         * switch-c.adb: 
15438         Implement new -gnatl=xxx switch to output listing to file
15439         Recognize new -gnatL switch
15440         (no longer keep in old warning about old style usage)
15441         Use concatenation to simplify code
15442         Recognize -gnatjnn switch
15443         (Scan_Front_End_Switches): Clean up handling of -gnatW
15444         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
15445
15446 2006-10-31  Robert Dewar  <dewar@adacore.com>
15447
15448         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
15449         (Set_Specific_Warning_Off): New procedure
15450         (Warning_Specifically_Suppressed): New function
15451         (Validate_Specific_Warnings): New procedure
15452         (Output_Msg_Text): Complete rewrite to support -gnatjnn
15453
15454         * err_vars.ads: Implement insertion character ~ (insert string)
15455
15456 2006-10-31  Bob Duff  <duff@adacore.com>
15457             Ed Schonberg  <schonberg@adacore.com>
15458
15459         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
15460         the parent part is a build-in-place function call, generate assignments.
15461         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
15462         are build-in-place function calls.
15463         (Replace_Self_Reference): New subsidiary of
15464         Make_OK_Assignment_Statement, to replace an access attribute that is a
15465         self-reference into an access to the appropriate component of the
15466         target object. Generalizes previous mechanism to handle self-references
15467         nested at any level.
15468         (Is_Self_Referential_Init): Remove, not needed.
15469         (Is_Self_Referential_Init): New predicate to simplify handling of self
15470         referential components in record aggregates.
15471         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
15472         check for presence of entity before checking for self-reference.
15473         (Has_Default_Init_Comps): Return True if a component association is a
15474         self-reference to the enclosing type, which can only come from a
15475         default initialization.
15476         (Make_OK_Assignment_Statement): If the expression is of the form
15477         Typ'Acc, where Acc is an access attribute, the expression comes from a
15478         default initialized self-referential component.
15479         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
15480         that has been derived from several abstract interfaces we must also
15481         initialize the tags of the secondary dispatch tables.
15482
15483 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
15484             Thomas Quinot  <quinot@adacore.com>
15485             Javier Miranda  <miranda@adacore.com>
15486             Robert Dewar  <dewar@adacore.com>
15487
15488         * exp_attr.adb: 
15489         (Expand_Access_To_Protected_Op): If the context indicates that an access
15490         to a local operation may be transfered outside of the object, create an
15491         access to the wrapper operation that must be used in an external call.
15492         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
15493         target, pass the Valid attribute applied to a floating-point prefix on
15494         to the back end without expansion.
15495         (Storage_Size): Use the new run-time function Storage_Size to retrieve
15496         the allocated storage when it is specified by a per-object expression.
15497         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
15498         Nothing to do here, the attribute has been rewritten during semantic
15499         analysis.
15500         (Expand_Attribute_Reference): Handle expansion of the new Priority
15501         attribute
15502         (Find_Fat_Info): Handle case of universal real
15503         (Expand_Access_To_Protected_Op): Fix use of access to protected
15504         subprogram from inside the body of a protected entry.
15505         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
15506         'Access and 'Unrestricted_Access, to transform the attribute reference
15507         into a fat pointer.
15508         (Is_Constrained_Aliased_View): New predicate to help determine whether a
15509         subcomponent's enclosing variable is aliased with a constrained subtype.
15510         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
15511         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
15512         an aliased prefix must be known to be constrained in order to use True
15513         for the attribute value, and now it's possible for some aliased views
15514         to be unconstrained.
15515
15516 2006-10-31  Robert Dewar  <dewar@adacore.com>
15517
15518         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
15519         (Expand_Entity_Reference): Correct error of not handling subprogram
15520         formals in current_value processing.
15521
15522 2006-10-31  Javier Miranda  <miranda@adacore.com>
15523             Robert Dewar  <dewar@adacore.com>
15524             Ed Schonberg  <schonberg@adacore.com>
15525             Gary Dismukes  <dismukes@adacore.com>
15526
15527         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
15528         register in the final list objects containing class-wide interfaces;
15529         otherwise we incorrectly register the tag of the interface in the final
15530         list.
15531         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
15532         generate the wrapper if the parent primitive is abstract. This is
15533         required to report the correct error message.
15534         (Expand_N_Subtype_Indication): Do validity checks on range
15535         (Clean_Task_Names): If an initialization procedure includes a call to
15536         initialize a task (sub)component, indicate that the procedure will use
15537         the secondary stack.
15538         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
15539         compatibility for interfacing with CPP by default.
15540         (Expand_N_Object_Declaration): Only build an Adjust call when the
15541         object's type is a nonlimited controlled type.
15542         * exp_ch3.adb: Add with and use of Exp_Ch6.
15543         (Expand_N_Object_Declaration): Check for object initialization that is a
15544         call to build-in-place function and apply Make_Build_In_Place_Call_In_
15545         Object_Declaration to the call.
15546         (Freeze_Type): When the designated type of an RACW was not frozen at the
15547         point where the RACW was declared, validate the primitive operations
15548         with respect to E.2.2(14) when it finally is frozen.
15549         (Build_Initialization_Call,Expand_Record_Controller): Rename
15550         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
15551         return-by-reference has no meaning in Ada 2005.
15552         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
15553         to register tag of the immediate ancestor interfaces in the
15554         run-time structure.
15555         (Init_Secondary_Tags): Moved to the specification to allow the
15556         initialization of extension aggregates with abstract interfaces.
15557         (Build_Master_Renaming): Make public, for use by function declarations
15558         whose return type is an anonymous access type.
15559         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
15560         Insert_List_Before_And_Analyze after the generation of the specs
15561         associated with null procedures.
15562         (Expand_Tagged_Root): Update documentation in its specification.
15563         (Init_Secondary_Tags): Update documentation.
15564         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
15565         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
15566         then generate code to inherit the contents of the dispatch table
15567         directly from the ancestor.
15568         (Expand_Record_Controller): Insert controller component after tags of
15569         implemented interfaces.
15570         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
15571         create null procedure overridings when null procedures are inherited
15572         from interfaces.
15573         (Make_Null_Procedure_Specs): New procedure to generate null procedure
15574         declarations for overriding null primitives inherited from interfaces.
15575         (Is_Null_Interface_Procedure): New function in
15576         Make_Null_Procedure_Specs.
15577         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
15578         immediate ancestor of a tagged type is an abstract interface type we
15579         must generate the specification of the predefined primitives associated
15580         with controlled types (because the dispatch table of the ancestor is
15581         null and hence these entries cannot be inherited). This is required to
15582         elaborate well the dispatch table.
15583
15584 2006-10-31  Javier Miranda  <miranda@adacore.com>
15585             Ed Schonberg  <schonberg@adacore.com>
15586             Bob Duff  <duff@adacore.com>
15587             Gary Dismukes  <dismukes@adacore.com>
15588             Robert Dewar  <dewar@adacore.com>
15589
15590         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
15591         conversion.
15592         (Expand_N_In): Do validity checks on range
15593         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
15594         (Expand_N_Allocator): For "new T", if the object is constrained by
15595         discriminant defaults, allocate the right amount of memory, rather than
15596         the maximum for type T.
15597         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
15598         when the allocator is initialized by a build-in-place call, since the
15599         allocator is already rewritten as a reference to the function result,
15600         and this prevents an unwanted duplication of the function call.
15601         Add with and use of Exp_Ch6.
15602         (Expand_Allocator_Expresssion): Check for an allocator whose expression
15603         is a call to build-in-place function and apply
15604         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
15605         untagged designated types).
15606         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
15607         optimization if source or target is biased.
15608         (Expand_N_Allocator): Add comments for case of an allocator within a
15609         function that returns an anonymous access type designating tasks.
15610         (Expand_N_Allocator): apply discriminant checks for access
15611         discriminants of anonymous access types (AI-402, AI-416)
15612
15613 2006-10-31  Bob Duff  <duff@adacore.com>
15614             Robert Dewar  <dewar@adacore.com>
15615             Gary Dismukes  <dismukes@adacore.com>
15616             Ed Schonberg  <schonberg@adacore.com>
15617
15618         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
15619
15620         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
15621         (Expand_N_Assignment_Statement): Call
15622         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
15623         build-in-place function call. Currently, this can happen only for
15624         assignments that come from aggregates.
15625         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
15626         in order to alleviate the upward compatibility introduced by AI-318.
15627         (Expand_N_Extended_Return_Statement): Add support for handling the
15628         return object as a build-in-place result.
15629         (Expand_Non_Function_Return): Implement simple return statements nested
15630         within an extended return.
15631         (Enable_New_Return_Processing): Turn on the new processing of return
15632         statements.
15633         (Expand_Non_Function_Return): For a return within an extended return,
15634         don't raise Program_Error, because Sem_Ch6 now gives a warning.
15635         (Expand_N_Extended_Return_Statement): Implement AI-318
15636         (Expand_Simple_Function_Return): Ditto.
15637         (Expand_N_If_Statement): Handle new -gnatwt warning
15638         (Expand_N_Case_Statement): Handle new -gnatwt warning
15639         (Expand_N_Assignment): Handle assignment to the Priority attribute of
15640         a protected object.
15641         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
15642         validity checking of assignments to elementary record components.
15643         (Expand_N_Return_Statement): return Class Wide types on the secondary
15644         stack independantly of their controlled status since with HIE runtimes,
15645         class wide types are not potentially controlled anymore.
15646
15647         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
15648         node kind.
15649
15650         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
15651         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
15652         it expects a block, procedure, or task. The return statement will get
15653         turned into a block, and Expand_Cleanup_Actions will happen then.
15654
15655 2006-10-31  Robert Dewar  <dewar@adacore.com>
15656             Ed Schonberg  <schonberg@adacore.com>
15657             Bob Duff  <duff@adacore.com>
15658             Gary Dismukes  <dismukes@adacore.com>
15659
15660         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
15661         capability.
15662         (Expand_Inlined_Call): Tagged types are by-reference types, and
15663         therefore should be replaced by a renaming declaration in the expanded
15664         body, as is done for limited types.
15665         (Expand_Call): If this is a call to a function with dispatching access
15666         result, propagate tag from context.
15667         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
15668         CPP by default.
15669         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
15670         build-in-place when the right-hand side of an assignment is a
15671         build-in-place function call.
15672         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
15673         of the explicit dereference of the allocator to the result subtype of
15674         the build-in-place function. This is needed to satisfy type checking
15675         in cases where the caller's return object is created by an allocator for
15676         a class-wide access type and the type named in the allocator is a
15677         specific type.
15678         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
15679         conversion of the reference to the declared object to the result subtype
15680         of the build-in-place function. This is needed to satisfy type checking
15681         in cases where the declared object has a class-wide type. Also, in the
15682         class-wide case, change the type of the object entity to the specific
15683         result subtype of the function, to avoid passing a class-wide object
15684         without explicit initialization to the back end.
15685         (Register_Interface_DT_Entry): Moved outside the body of
15686         Freeze_Subprogram because this routine is now public; it is called from
15687         Check_Dispatching_Overriding to handle late overriding of abstract
15688         interface primitives.
15689         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
15690         adding an implicit access actual on a call to a build-in-place function.
15691         (Expand_Actuals): Test for an actual parameter that is a call to a
15692         build-in-place function and apply
15693         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
15694         (Is_Build_In_Place_Function): New function to determine whether an
15695         entity is a function whose calls should be handled as build-in-place.
15696         (Is_Build_In_Place_Function_Call): New function to determine whether an
15697         expression is a function call that should handled as build-in-place.
15698         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
15699         calls to build-in-place functions as the initialization of an allocator.
15700         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
15701         handling calls to build-in-place functions in contexts that do not
15702         involve init of a separate object (for example, actuals of subprogram
15703         calls).
15704         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
15705         handling calls to build-in-place functions as the initialization of an
15706         object declaration.
15707         (Detect_Infinite_Recursion): Add explicit parameter Process to
15708         instantiation of Traverse_Body to avoid unreferenced warning.
15709         (Check_Overriding_Inherited_Interfaces): Removed.
15710         (Register_Interface_DT_Entry): Code cleanup.
15711         (Register_Predefined_DT_Entry): Code cleanup.
15712         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
15713         inlined statements if within a transient scope.
15714         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
15715         formal parameters with occurrences of actuals in inlined body, establish
15716         visibility on the proper view of the actual's subtype for the body's
15717         context.
15718         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
15719         compatibility mode and we have an imported CPP subprogram because
15720         for now we assume that imported CPP primitives correspond with
15721         objects whose constructor is in the CPP side (and therefore we
15722         don't need to generate code to register them in the dispatch table).
15723         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
15724         aligned selected component.
15725         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
15726         the actual of an in-mode parameter is a type conversion.
15727         (Expand_Actuals): If the call does not come from source and the actual
15728         is potentially misaligned, let gigi handle it rather than rejecting the
15729         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
15730         Class Wide types as returning by reference independantly of their
15731         controlled status since with HIE runtimes class wide types are not
15732         potentially controlled anymore.
15733
15734 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
15735
15736         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
15737         references that are private components of the protected object.
15738         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
15739         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
15740         instantiation to deal with warnings.
15741         (Initialize_Protection): If expression for priority is non-static, use
15742         System_Priority as its expected type, in case the expression has not
15743         been analyzed yet.
15744
15745 2006-10-31  Robert Dewar  <dewar@adacore.com>
15746
15747         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
15748         initialization of Homonym_Len.
15749         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
15750         names from fully qualified name. Fixes problem of duplicate
15751         external names differing only in the presence of such a block name.
15752
15753 2006-10-31  Thomas Quinot  <quinot@adacore.com>
15754             Pablo Oliveira  <oliveira@adacore.com>
15755
15756         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
15757         subprogram Ids, even if they are not yet assigned.
15758         (Build_Subprogram_Id): It is now this function that will take care of
15759         calling Assign_Subprogram_Ids if necessary.
15760         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
15761         should be done only once they are assigned.
15762         (Build_From_Any_Function, case of tagged types): Add missing call to
15763         Allocate_Buffer.
15764         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
15765         type for an RACW type.
15766         (Add_RACW_Features): When processing an RACW declaration for which the
15767         designated type is already frozen, enforce E.2.2(14) rules immediately.
15768         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
15769         special reordering of controlling formals.
15770
15771         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
15772         associated stub type for an RACW type.
15773
15774 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
15775
15776         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
15777         fixed-point operations in an integer context, i.e. as operands of a
15778         conversion to an integer type, indicate that result must be rounded.
15779
15780 2006-10-31  Robert Dewar  <dewar@adacore.com>
15781
15782         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
15783         cases, pass the encoding method, since it is now required by the run
15784         time.
15785
15786         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
15787         assumption that Str'First = 1.
15788         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
15789         it on to the Value_Wide_Wide_Character call.
15790         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
15791         properly handles a string of the form quote-encoded_wide_char-quote.
15792
15793         * s-wchcnv.adb: Minor reformatting
15794
15795 2006-10-31  Javier Miranda  <miranda@adacore.com>
15796
15797         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
15798         run-time membership test to ensure that the constructed object
15799         implements the target abstract interface.
15800
15801 2006-10-31  Robert Dewar  <dewar@adacore.com>
15802
15803         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
15804         Machine_Attribute pragma internally to implement the user pragma.
15805         Add processing for pragma Interface so that it is now completely
15806         equivalent to pragma Import.
15807
15808         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
15809         so that it can be applied to all entities, including record components
15810         and enumeration literals.
15811         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
15812         priority ranges are correct, verify compatibility against task
15813         dispatching and locking policies, and if everything is correct an entry
15814         is added to the table containing priority specific dispatching entries
15815         for this compilation unit.
15816         (Delay_Config_Pragma_Analyze): Delay processing
15817         Priority_Specific_Dispatching pragmas because when processing the
15818         pragma we need to access run-time data, such as the range of
15819         System.Any_Priority.
15820         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
15821         Allow pragma Unreferenced as a context item
15822         Add pragma Preelaborable_Initialization
15823         (Analyze_Pragma, case Interface): Interface is extended so that it is
15824         now syntactically and semantically equivalent to Import.
15825         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
15826         insertion characters.
15827         Add handling for Pragma_Wide_Character_Encoding
15828         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
15829         never supercedes a real restriction, and that a real restriction
15830         always supercedes a warning.
15831         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
15832         appropriate form.
15833
15834 2006-10-31  Bob Duff  <duff@adacore.com>
15835             Ed Schonberg  <schonberg@adacore.com>
15836             Robert Dewar  <dewar@adacore.com>
15837
15838         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
15839         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
15840         Is_Inherently_Limited_Type, because return-by-reference has no meaning
15841         in Ada 2005.
15842         (Find_Node_To_Be_Wrapped): Use new method of determining the result
15843         type of the function containing a return statement, because the
15844         Return_Type field was removed. We now use the Return_Applies_To field.
15845
15846         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
15847         (Build_Task_Image_Decl): If procedure is not called from an
15848         initialization procedure, indicate that function that builds task name
15849         uses the sec. stack. Otherwise the enclosing initialization procedure
15850         will carry the indication.
15851         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
15852         N_Object_Declaration instead.
15853         (Kill_Dead_Code): New interface to implement -gnatwt warning for
15854         conditional dead code killed, and change implementation accordingly.
15855         (Insert_Actions): Add N_Return_Object_Declaration case.
15856         Correct comment to mention N_Extension_Aggregate node.
15857         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
15858         attempts to save information for global variables which cannot be
15859         safely tracked.
15860         (Get_Current_Value_Condition): Handle conditions the other way round
15861         (constant on left). Also handle right operand of AND and AND THEN
15862         (Set_Current_Value_Condition): Corresponding changes
15863         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
15864         (Get_Current_Value_Condition): Handle simple boolean operands
15865         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
15866         (Get_Current_Value_Condition): If the variable reference is within an
15867         if-statement, does not appear in the list of then_statments, and does
15868         not come from source, treat it as being at unknown location.
15869         (Get_Current_Value_Condition): Enhance to allow while statements to be
15870         processed as well as if statements.
15871         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
15872         come from source.
15873         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
15874         of loop. This is safe now that we fixed Kill_Current_Values.
15875         (OK_To_Do_Constant_Replacement): Check whether current scope is
15876         Standard, before examining outer scopes.
15877
15878 2006-10-31  Vincent Celier  <celier@adacore.com>
15879
15880         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
15881         When True, apply VMS treatment to children of packages A, G, I and S.
15882         For F320-016
15883
15884         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
15885
15886 2006-10-31  Robert Dewar  <dewar@adacore.com>
15887             Ed Schonberg  <schonberg@adacore.com>
15888
15889         * freeze.adb: Add handling of Last_Assignment field
15890         (Warn_Overlay): Supply missing continuation marks in error msgs
15891         (Freeze_Entity): Add check for Preelaborable_Initialization
15892
15893         * g-comlin.adb: Add Warnings (Off) to prevent new warning
15894
15895         * g-expect.adb: Add Warnings (Off) to prevent new warning
15896
15897         * lib-xref.adb: Add handling of Last_Assignment field
15898         (Generate_Reference): Centralize handling of pragma Obsolescent here
15899         (Generate_Reference): Accept an implicit reference generated for a
15900         default in an instance.
15901         (Generate_Reference): Accept a reference for a node that is not in the
15902         main unit, if it is the generic body corresponding to an subprogram
15903         instantiation.
15904
15905         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
15906
15907         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
15908         -gnatwq/Q.
15909         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
15910         exception handler.
15911         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
15912         use clauses, to avoid messages on packages used to qualify, and also
15913         to avoid messages from obsolescent units.
15914         (Warn_On_Useless_Assignments): Don't generate messages for imported
15915         and exported variables.
15916         (Warn_On_Useless_Assignments): New procedure
15917         (Output_Obsolescent_Entity_Warnings): New procedure
15918         (Check_Code_Statement): New procedure
15919
15920         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
15921         Change name Is_Ada_2005 to Is_Ada_2005_Only
15922         (Last_Assignment): New field for useless assignment warning
15923
15924 2006-10-31  Olivier Hainque  <hainque@adacore.com>
15925
15926         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
15927         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
15928
15929 2006-10-31  Bob Duff  <duff@adacore.com>
15930             Robert Dewar  <dewar@adacore.com>
15931             Ed Schonberg  <schonberg@adacore.com>
15932
15933         * g-awk.adb (Default_Session, Current_Session): Compile this file in
15934         Ada 95 mode, because it violates the new rules for AI-318.
15935
15936         * g-awk.ads: Use overloaded subprograms in every case where we used to
15937         have a default of Current_Session. This makes the code closer to be
15938         correct for both Ada 95 and 2005.
15939
15940         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
15941         code, relying on the fact that the compiler generates a warning
15942         instead of an error in -gnatg mode.
15943
15944         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
15945         E_Return_Statement entity kind.
15946         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
15947
15948         * par.adb (P_Interface_Type_Definition): Addition of one formal to
15949         report an error if the reserved word abstract has been previously found.
15950         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
15951
15952         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
15953         parenthesized range attribute usage
15954         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
15955
15956         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
15957         in the syntax for extended_return_statement. This is not in the latest
15958         RM, but the ARG is expected to issue an AI allowing this.
15959         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
15960         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
15961         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
15962         P_Return_Statement): Parse the new syntax for extended_return_statement.
15963
15964         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
15965         Output_End_Missing): Add error-recovery code for the new
15966         extended_return_statement syntax; that is, the new E_Return entry on
15967         the scope stack.
15968
15969         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
15970         limited to nonlimited, because otherwise we violate the new Ada 2005
15971         rules about returning limited types in function Create_AST_Handler in
15972         s-asthan.adb.
15973
15974         * sem.adb (Analyze): Add cases for new node kinds
15975         N_Extended_Return_Statement and N_Return_Object_Declaration.
15976
15977         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
15978         type is in the same category as type of context before applying check,
15979         to prevent anomalies in instantiations.
15980         (Resolve_Aggregate): Remove test for limited components in aggregates.
15981         It's unnecessary in Ada 95, because if it has limited components, then
15982         it must be limited. It's wrong in Ada 2005, because limited aggregates
15983         are now allowed.
15984         (Resolve_Record_Aggregate): Move check for limited types later, because
15985         OK_For_Limited_Init requires its argument to have been resolved.
15986         (Get_Value): When copying the component default expression for a
15987         defaulted association in an aggregate, use the sloc of the aggregate
15988         and not that of the original expression, to prevent spurious
15989         elaboration errors, when the expression includes function calls.
15990         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
15991         were missing. We also didn't handle qualified expressions. Now also
15992         allow function calls. Use new common routine OK_For_Limited_Init.
15993         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
15994         with space can upper case letter).
15995
15996         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
15997         Has_Static_Discriminants flag
15998         (Record_Type_Declaration): Diagnose an attempt to declare an interface
15999         type with discriminants.
16000         (Process_Range_Expr_In_Decl): Do validity checks on range
16001         (Build_Discriminant_Constraints): Use updated form of
16002         Denotes_Discriminant.
16003         (Process_Subtype): If the subtype is a private subtype whose full view
16004         is a concurrent subtype, introduce an itype reference to prevent scope
16005         anomalies in gigi.
16006         (Build_Derived_Record_Type, Collect_Interface_Primitives,
16007         Record_Type_Declaration):  The functionality of the subprograms
16008         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
16009         is now performed by a single routine.
16010         (Build_Derived_Record_Type): If the type definition includes an explicit
16011         indication of limitedness, then the type must be marked as limited here
16012         to ensure that any access discriminants will not be treated as having
16013         a local anonymous access type.
16014         (Check_Abstract_Overriding): Issue a detailed error message when an
16015         abstract subprogram was not overridden due to incorrect mode of its
16016         first parameter.
16017         (Analyze_Private_Extension_Declaration): Add support for the analysis of
16018         synchronized private extension declarations. Verify that the ancestor is
16019         a limited or synchronized interface or in the generic case, the ancestor
16020         is a tagged limited type or synchronized interface and all progenitors
16021         are either limited or synchronized interfaces.
16022         Derived_Type_Declaration): Check for presence of private extension when
16023         dealing with synchronized formal derived types.
16024         Process_Full_View): Enchance the check done on the usage of "limited" by
16025         testing whether the private view is synchronized.
16026         Verify that a synchronized private view is completed by a protected or
16027         task type.
16028         (OK_For_Limited_Init_In_05): New function.
16029         (Analyze_Object_Declaration): Move check for limited types later,
16030         because OK_For_Limited_Init requires its argument to have been resolved.
16031         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
16032         in order to alleviate the upward compatibility introduced by AI-318.
16033         (Constrain_Corresponding_Record): If the constraint is for a component
16034         subtype, mark the itype as frozen, to avoid out-of-scope references to
16035         discriminants in the back-end.
16036         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
16037         this subprogram against wrong sources.
16038         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
16039         discriminant of limited type completed with a protected type, when the
16040         discriminant is used to constrain a private component of the type, and
16041         expansion is disabled.
16042         (Find_Type_Of_Object): Do not treat a return subtype that is an
16043         anonymous subtype as a local_anonymous_type, because its accessibility
16044         level is the return type of the enclosing function.
16045         (Check_Initialization): In -gnatg mode, turn the error "cannot
16046         initialize entities of limited type" into a warning.
16047         (OK_For_Limited_Init): Return true for generated nodes, since it
16048         sometimes violates the legality rules.
16049         (Make_Incomplete_Declaration): If the type for which an incomplete
16050         declaration is created happens to be the currently visible entity,
16051         preserve the homonym chain when removing it from visibility.
16052         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
16053         inherited subprograms.
16054         (Access_Definition): If this is an access to function that is the return
16055         type of an access_to_function definition, context is a type declaration
16056         and the scope of the anonymous type is the current one.
16057         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
16058         incomplete subtype to the set of private dependents of the original
16059         incomplete type.
16060         (Constrain_Discriminated_Type): Emit an error message whenever an
16061         incomplete subtype is being constrained.
16062         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
16063         corresponding subtype of the full view of the original incomplete type.
16064         (Check_Incomplete): Properly detect invalid usage of incomplete types
16065         and subtypes.
16066
16067 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
16068
16069         * g-catiio.ads, g-catiio.adb (Value): New function.
16070         Given an input String, try and parse a valid Time value.
16071
16072 2006-10-31  Vincent Celier  <celier@adacore.com>
16073
16074         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
16075         Integer_Address arithmetic, as in Set_Valid.
16076
16077 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
16078             Robert Dewar  <dewar@adacore.com>
16079
16080         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
16081         handling executable extension manually and duplicating code.
16082
16083         * make.adb: Implement new -S switch
16084         (Gnatmake): Use new function Osint.Executable_Name instead
16085         of handling executable extension manually.
16086
16087         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
16088         is specified, the executable name ends with this suffix.
16089         Take advantage of Osint.Executable_Name instead of duplicating code.
16090
16091         * switch-m.adb: Recognize new gnatmake -S switch
16092
16093         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
16094         variable.
16095         (Get_Target_Parameters): Set Executable_Extension_On_Target if
16096         available.
16097
16098         * makeusg.adb: Add line for gnatmake -S switch
16099
16100 2006-10-31  Vincent Celier  <celier@adacore.com>
16101
16102         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
16103         call it with -static-libgcc, as there are some platforms, such as
16104         Darwin, where one of these two switches is compulsory to link.
16105
16106 2006-10-31  Vincent Celier  <celier@adacore.com>
16107
16108         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
16109         instead of ADA_PROJECT_PATH, for the project path.
16110         (Gnatls): When displaying the project path directories, use host dir
16111         specs.
16112
16113         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
16114         names in the project path, as absolute paths may correspond to
16115         multi-valued VMS logical names.
16116
16117 2006-10-31  Vincent Celier  <celier@adacore.com>
16118
16119         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
16120         absolute path name.
16121         (Locate_Regular_File): Ditto
16122         (Change_Dir): Remove, no longer used
16123         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
16124         on Windows. Get it calling Get_Current_Dir.
16125         (OpenVMS): Remove imported boolean, no longer needed.
16126         (Normalize_Pathname)[VMS]: Do not resolve directory names.
16127         (Pid_To_Integer): New function to convert a Process_Id to  Integer
16128
16129 2006-10-31  Thomas Quinot  <quinot@adacore.com>
16130
16131         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
16132         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
16133         to No_Socket.
16134         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
16135         W_Sig_Socket.
16136
16137 2006-10-31  Robert Dewar  <dewar@adacore.com>
16138
16139         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
16140         initial letter o as a zero.
16141
16142 2006-10-31  Robert Dewar  <dewar@adacore.com>
16143
16144         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
16145
16146 2006-10-31  Robert Dewar  <dewar@adacore.com>
16147
16148         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
16149         variant records
16150         (Layout_Variant_Record): Retrieve the discriminants from the entity
16151         rather than from the type definition, because in the case of a full
16152         type for a private type we need to take the discriminants from the
16153         partial view.
16154         (Layout_Component_List): When applying the Max operator to variants with
16155         a nonstatic size, check whether either operand is static and scale that
16156         operand from bits to storage units before applying Max.
16157         (Layout_Type): In VMS, if a C-convention access type has no explicit
16158         size clause (and does not inherit one in the case of a derived type),
16159         then the size is reset to 32 from 64.
16160
16161 2006-10-31  Vincent Celier  <celier@adacore.com>
16162
16163         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
16164         its file has already been loaded, according to the unit being loaded,
16165         not to the current value of Multiple_Unit_Index.
16166
16167 2006-10-31  Thomas Quinot  <quinot@adacore.com>
16168             Eric Botcazou  <ebotcazou@adacore.com>
16169             Arnaud Charlet  <charlet@adacore.com>
16170
16171         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
16172         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
16173         possible.
16174         (a-except.o): Pass it to the compiler.
16175         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
16176         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
16177         a-calend-mingw.adb version.
16178
16179         * Makefile.rtl: Added s-dsaser.
16180         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
16181         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
16182         Ada.Dispatching.Round_Robin.
16183         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
16184
16185         * Make-lang.in: Remove all references to gt-ada-decl.h.
16186         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
16187         sources.
16188         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
16189         Update dependencies.
16190
16191         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
16192
16193 2006-10-31  Vincent Celier  <celier@adacore.com>
16194
16195         * mlib-utl.adb (Initialized): Remove, no longer used
16196         (Initialize): Remove, no longer used
16197         (Ar): If Ar_Exec is null, get the location of the archive builder and,
16198         if there is one, the archive indexer. Fail if the archive builder cannot
16199         be found.
16200         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
16201         be found.
16202
16203 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
16204
16205         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
16206         Process_Body_Clauses): If the context of a body includes a use clause
16207         for P.Q then a with_clause for P in the same body is not redundant,
16208         even if the spec also has a with_clause on P.
16209         Add missing continuation mark to error msg
16210         (Build_Limited_Views): A limited view of a type is tagged if its
16211         declaration includes a record extension.
16212         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
16213         node, even if the subunit has errors. This avoids malfunction by
16214         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
16215         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
16216         generation of obsolescent messages for with statements (cannot do
16217         this too early, or we cannot implement avoiding the messages in the
16218         case of obsolescent units withing obsolescent units).
16219         (Install_Siblings): If the with_clause is on a remote descendant of
16220         an ancestor of the current compilation unit, find whether there is
16221         a sibling child unit that is immediately visible.
16222         (Remove_Private_With_Clauses): New procedure, invoked after completing
16223         the analysis of the private part of a nested package, to remove from
16224         visibility the private with_clauses of the enclosing package
16225         declaration.
16226         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
16227         now centralized in Generate_Reference.
16228         (Install_Limited_Context_Clauses): Remove superfluous error
16229         message associated with unlimited view visible through use
16230         and renamings. In addition, at the point in which the error
16231         is reported, we add the backslash to the text of the error
16232         to ensure that it is reported as a single error message.
16233         Use new // insertion for some continuation messages
16234         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
16235         to create implicit with_clause for parent unit mentioned in original
16236         limited_with_clause.
16237         (Install_Limited_With_Unit): Set entity of parent identifiers if the
16238         unit is a child unit. For ASIS queries.
16239         (Analyze_Subunit): If the subunit appears within a child unit, make all
16240         ancestor child units directly visible again.
16241
16242 2006-10-31  Robert Dewar  <dewar@adacore.com>
16243
16244         * par-ch10.adb (P_Context_Clause): Minor error message fix
16245
16246 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
16247             Javier Miranda  <miranda@adacore.com>
16248
16249         * par-ch12.adb: Grammar update and cleanup.
16250         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
16251         support for synchronized derived type definitions.
16252         Add the new actual Abstract_Present to every call to
16253         P_Interface_Type_Definition.
16254         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
16255         a formal object declaration with an access definition or a subtype mark
16256         with a null exclusion.
16257         (P_Generic_Association): Handle association with box, and others_choice
16258         with box, to support Ada 2005 partially parametrized formal packages.
16259
16260 2006-10-31  Robert Dewar  <dewar@adacore.com>
16261             Javier Miranda  <miranda@adacore.com>
16262
16263         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
16264         (P_Type_Declaration): Remove barrier against the reserved word "limited"
16265         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
16266         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
16267         private extensions.
16268         (P_Type_Declaration): Add the new actual Abstract_Present to every call
16269         to P_Interface_Type_Definition.
16270         (P_Interface_Type_Definition): Addition of one formal to report an error
16271         if the reserved word abstract has been previously found.
16272         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
16273         object renaming declaration with an access definition or subtype mark
16274         with a possible null exclusion.
16275
16276         * par-ch9.adb: Minor error msg fix
16277
16278         * par-load.adb: Add missing continuation mark to error msg
16279
16280         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
16281
16282 2006-10-31  Vincent Celier  <celier@adacore.com>
16283
16284         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
16285         unknown attribute in unknown package or in package that does not need
16286         to be checked.
16287         (Parse_Package_Declaration): Do not issue warning for unknown package in
16288         quiet output.
16289
16290 2006-10-31  Vincent Celier  <celier@adacore.com>
16291
16292         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
16293         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
16294         Packages_To_Check.
16295
16296 2006-10-31  Vincent Celier  <celier@adacore.com>
16297
16298         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
16299         on VMS, change "__" to '.' before checking the name.
16300         (Record_Ada_Source): Always add the source file name in the list of
16301         of sources, even if it is not the first time, as it is for another
16302         source index.
16303         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
16304         dot, instead of replacing only the first '_'.
16305
16306         * prj-part.adb (Parse): Convert project file path to canonical form
16307
16308         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
16309         extended, the project id of the project extending it is recorded in its
16310         data, even when it has already been processed as an imported project.
16311
16312 2006-10-31  Robert Dewar  <dewar@adacore.com>
16313
16314         * repinfo.adb (List_Entities): Don't list entities from renaming
16315         declarations.
16316
16317 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
16318             Robert Dewar  <dewar@adacore.com>
16319
16320         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
16321         only a restriction warning is active for the given restriction. This is
16322         desirable because we do not want to modify code in the case where only
16323         a warning is set.
16324         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
16325         causes overriding of real restrictions.
16326         Take advantage of new No_Restrictions constant.
16327
16328         * raise.h: (__gnat_set_globals): Change profile.
16329
16330 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
16331
16332         * rtsfind.adb: Remove s-polint from comment as it exists no more.
16333
16334         * rtsfind.ads: 
16335         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
16336         Move all the entities in obsolete package System.PolyORB_Interface to
16337         System.Partition_Interface.
16338         (RE_Storage_Size): New function in System.Tasking.
16339         (RE_Get_Ceiling): New entity.
16340         (RE_Set_Ceiling): New entity.
16341         (RO_PE_Get_Ceiling): New entity.
16342         (RO_RE_Set_Ceiling): New entity.
16343         (Inherit_CPP_DT): New entity
16344
16345 2006-10-31  Robert Dewar  <dewar@adacore.com>
16346
16347         * scng.adb (Scan, case of numeric literal): Better msg for identifier
16348         starting with a digit.
16349
16350 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
16351             Thomas Quinot  <quinot@adacore.com>
16352             Javier Miranda  <miranda@adacore.com>
16353             Gary Dismukes  <dismukes@adacore.com>
16354
16355         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
16356         properly an attempt to apply Unchecked_Access to a protected operation.
16357         (OK_Self_Reference): New subprogram to check the legality of an access
16358         attribute whose prefix is the type of an enclosing aggregate.
16359         Generalizes previous mechanism to handle attribute references nested
16360         arbitrarily deep within the aggregate.
16361         (Analyze_Access_Attribute): An access attribute whose prefix is a type
16362         can appear in an aggregate if this is a default-initialized aggregate
16363         for a self-referential type.
16364         (Resolve_Attribute, case Access): Ditto.
16365         Add support for new implementation defined attribute Stub_Type.
16366         (Eval_Attribute, case Attribute_Stub_Type): New case.
16367         (Analyze_Attribute, case Attribute_Stub_Type): New case.
16368         (Stream_Attribute_Available): Implement using new subprogram from
16369         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
16370         Has_Specified_Stream_Attribute flag.
16371         Disallow Storage_Size and Storage_Pool for access to subprogram
16372         (Resolve_Attribute, case 'Access et al): Take into account anonymous
16373         access types of return subtypes in extended return statements. Remove
16374         accessibility checks on anonymous access types when Unchecked_Access is
16375         used.
16376         (Analyze_Attribute): Add support for the use of 'Class to convert
16377         a class-wide interface to a tagged type.
16378         Add support for the attribute Priority.
16379         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
16380         whether the designated type is discriminated with a constrained partial
16381         view and require static matching in that case.
16382         Add local variable Des_Btyp. The Designated_Type
16383         of an access to incomplete subtype is either its non-limited view if
16384         coming from a limited with or its etype if regular incomplete subtype.
16385
16386         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
16387         Fix predicate to identify and allow cases of (expander-generated)
16388         references to tag of designated object of a RACW.
16389         (Validate_Static_Object_Name): In Ada 2005, a formal object is
16390         non-static, and therefore cannot appear as a primary in a preelaborable
16391         package.
16392         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
16393         Has_Read_Write_Attributes.
16394         (Has_Read_Write_Attributes): Reimplement in termes of
16395         Has_Stream_Attribute_Definition.
16396         (Missing_Read_Write_Attributes): When checking component types in a
16397         record, unconditionally call Missing_Read_Write_Attributes recursively
16398         (remove guard checking for Is_Record_Type / Is_Access_Type).
16399
16400 2006-10-31  Robert Dewar  <dewar@adacore.com>
16401
16402         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
16403         useless assignments here and conditionalize it on absence of exception
16404         handlers.
16405         (Analyze_Exception_Handlers): Small code reorganization of error
16406         detection code, for new handling of formal packages.
16407
16408 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
16409             Hristian Kirtchev  <kirtchev@adacore.com>
16410
16411         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
16412         that has been constant-folded, preserve information of original tree,
16413         for ASIS uses.
16414         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
16415         generated private extension declaration if the formal derived type is
16416         synchronized. Carry synchronized present over to the generated private
16417         extension.
16418         (Validate_Derived_Type_Instance): Ensure that the actual of a
16419         synchronized formal derived type is a synchronized tagged type.
16420         (Instantiate_Formal_Package): When creating the instantiation used to
16421         validate the actual package of a formal declared without a box, check
16422         whether the formal itself depends on a prior actual.
16423         (Instantiate_Formal_Subprogram): Create new entities for the defining
16424         identifiers of the formals in the renaming declaration, for ASIS use.
16425         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
16426         a renaming declaration or a subtype declaration for an actual in an
16427         instance, capture location information of declaration in generic, for
16428         ASIS use.
16429         (Instantiate_Formal_Package): Add comments on needed additional tests.
16430         AI-317 (partial parametrization) is fully implemented.
16431         (Validate_Private_Type_Instance): Add check for actual which
16432         must have preelaborable initialization
16433         Use new // insertion for some continuation messages
16434         (Analyze_Formal_Object_Declaration): Change usage of Expression to
16435         Default_Expression. Add type retrieval when the declaration has an
16436         access definition. Update premature usage of incomplete type check.
16437         (Check_Access_Definition): New subsidiary routine. Check whether the
16438         current compilation version is Ada 05 and the supplied node has an
16439         access definition.
16440         (Instantiate object): Alphabetize local variables. Handle the creation
16441         of new renaming declarations with respect to the kind of definition
16442         used - either an access definition or a subtype mark. Guard against
16443         unnecessary error message in the context of anonymous access types after
16444         they have been resolved. Add check for required null exclusion in a
16445         formal object declaration.
16446         (Switch_View): A private subtype of a non-private type needs to be
16447         switched (the base type can have been switched without its private
16448         dependents because of the last branch of Check_Private_View.
16449         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
16450         value from BT.
16451         (Instantiate_Type): Emit an error message whenever a class-wide type of
16452         a tagged incomplete type is used as a generic actual.
16453         (Find_Actual_Type): Extend routine to handle a component type in a child
16454         unit that is imported from a formal package in a parent.
16455         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
16456         agree on constrainedness, rather than checking against ultimate ancestor
16457         (Instantiate_Subprogram_Body): Create a cross-reference link to the
16458         generic body, for navigation purposes.
16459
16460 2006-10-31  Robert Dewar  <dewar@adacore.com>
16461             Thomas Quinot  <quinot@adacore.com>
16462
16463         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
16464         type.
16465         (New_Stream_Subprogram): When processing an attribute definition clause
16466         for a stream-oriented subprogram, record an entity node occurring at
16467         the point of clause to use for checking the visibility of the clause,
16468         as defined by 8.3(23) as amended by AI-195.
16469         (New_Stream_Subprogram): New procedure, factoring behaviour from both
16470          New_Stream_Function and New_Stream_Procedure.
16471         (New_Stream_Function, New_Stream_Procedure): Removed.
16472         (Analyze_Attribute_Definition_Clause, case Address): Check new
16473         Alignment_Check check
16474
16475 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
16476             Javier Miranda  <miranda@adacore.com>
16477             Robert Dewar  <dewar@adacore.com>
16478
16479         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
16480         generate the same errors compiling under -gnatc.
16481         (Try_Object_Operation): If no candidate interpretation succeeds, but
16482         there is at least one primitive operation with the right name, report
16483         error in call rather than on a malformed selected component.
16484         (Analyze_Selected_Component): If the prefix is an incomplete type from
16485         a limited view, and the full view is available, use the full view to
16486         determine whether this is a prefixed call to a primitive operation.
16487         (Operator_Check): Verify that a candidate interpretation is a binary
16488         operation before checking the type of its second formal.
16489         (Analyze_Call): Add additional warnings for function call contexts not
16490         yet supported.
16491         (Analyze_Allocator): Move the check for "initialization not allowed for
16492         limited types" after analyzing the expression. This is necessary,
16493         because OK_For_Limited_Init looks at the structure of the expression.
16494         Before analysis, we don't necessarily know what sort of expression it
16495         is. For example, we don't know whether F(X) is a function call or an
16496         indexed component; the former is legal in Ada 2005; the latter is not.
16497         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
16498         were missing. We also didn't handle qualified expressions. Now also
16499         allow function calls. Use new common routine OK_For_Limited_Init.
16500         (Analyze_Type_Conversion): Do not perform some legality checks in an
16501         instance, because the error message will be redundant or spurious.
16502         (Analyze_Overloaded_Selected_Component): Do not do style check when
16503         setting an entity, since we do not know it is the right entity yet.
16504         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
16505         (Analyze_Overloaded_Selected_Component): Same change
16506         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
16507         since regular incomplete subtypes are transformed into corresponding
16508         subtypes of their full views.
16509         (Complete_Object_Operation): Treat name of transformed subprogram call
16510         as coming from source, for browsing purposes.
16511         (Try_Primitive_Operation): If formal is an access parameter, compare
16512         with base type of object to determine whether it is a primitive
16513         operation.
16514         (Operator_Check): If no interpretation of the operator matches, check
16515         whether a use clause on any candidate might make the operation legal.
16516         (Try_Class_Wide_Operation): Check whether the first parameter is an
16517         access type whose designated type is class-wide.
16518
16519 2006-10-31  Robert Dewar  <dewar@adacore.com>
16520             Ed Schonberg  <schonberg@adacore.com>
16521             Gary Dismukes  <dismukes@adacore.com>
16522
16523         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
16524         warn on infinite loops.
16525         Add \\ to some continuation messages
16526         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
16527         (Process_Bounds): If the bounds are integer literals that result from
16528         constant-folding, and they carry a user-defined type, preserve that type
16529         rather than treating this as an integer range.
16530         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
16531         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
16532         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
16533         left hand side of assignment.
16534         (Analyze_Assignment): Add suport to manage assigments to the attribute
16535         priority of a protected object.
16536         (Check_Possible_Current_Value_Condition): Allow fully qualified names
16537         not just identifiers.
16538         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
16539         or AND THEN for possible tracking.
16540         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
16541         case of while loops so we can track values in the loop body.
16542
16543 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
16544             Hristian Kirtchev  <kirtchev@adacore.com>
16545             Bob Duff  <duff@adacore.com>
16546
16547         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
16548         procedure cannot be a protected operation (it is a basic_declaration,
16549         not a subprogram_declaration).
16550         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
16551         Subp. Add logic for entry processing.
16552         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
16553         Determine whether an entry or subprogram of a protected or task type
16554         override an inherited primitive of an implemented interface.
16555         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
16556         Update the actual used in calls to Check_Overriding_Indicator.
16557         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
16558         generate the proper reference to the parent unit, for cross-reference.
16559         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
16560         Is_Formal.
16561         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
16562         (Add_Extra_Formal): Revise procedure to allow passing in associated
16563         entity, scope, and name suffix, and handle setting of the new
16564         Extra_Formals field.
16565         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
16566         pass new parameters. Add support for adding the new extra access formal
16567         for functions whose calls are treated as build-in-place.
16568         (Analyze_A_Return_Statement): Correct casing in error message.
16569         Move Pop_Scope to after Analyze_Function_Return, because an extended
16570         return statement really is a full-fledged scope. Otherwise, visibility
16571         doesn't work right. Correct use of "\" for continuation messages.
16572         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
16573         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
16574         the node doesn't get properly marked as analyzed.
16575         (Analyze_Subprogram_Body): If subprogram is a function that returns
16576         an anonymous access type that denotes a task, build a Master Entity
16577         for it.
16578         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
16579         proper usage of null exclusion in a result definition.
16580         (Process_Formals): Code cleanup and new error message.
16581         (Process_Formals): Detect incorrect application of null exclusion to
16582         non-access types.
16583         (Conforming_Types): Handle conformance between [sub]types and itypes
16584          generated for entities that have null exclusions applied to them.
16585         (Maybe_Primitive_Operation): Add an additional type retrieval when the
16586          base type is an access subtype. This case arrises with null exclusions.
16587         (New_Overloaded_Entity): Do not remove the overriden entity from the
16588         homonym chain if it corresponds with an abstract interface primitive.
16589         (Process_Formals): Replace membership test agains Incomplete_Kind with a
16590         call to the synthesized predicate Is_Incomplete_Type.
16591         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
16592         primitives.
16593         (Analyze_Subprogram_Declaration): Check that abstract interface
16594         primitives are abstract or null.
16595         (Analyze_Subprogram_Specification): Remove previous check for abstract
16596         interfaces because it was not complete.
16597         (Has_Interface_Formals): Removed.
16598
16599 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
16600             Javier Miranda  <miranda@adacore.com>
16601
16602         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
16603         of Analyze_Package_Body, to create Itype references for anonymous
16604         access types created in the package declaration, whose designated types
16605         may have only a limited view.
16606         (Analyze_Package_Specification): For the private part of a nested
16607         package, install private_with_clauses of enclosing compilation unit if
16608         we are in its visible part.
16609         (Declare_Inherited_Private_Subprograms): Complete barrier
16610         to ensure that the primitive operation has an alias to some parent
16611         primitive. This is now required because, after the changes done for the
16612         implementation of abstract interfaces, the contents of the list of
16613         primitives has entities whose alias attribute references entities of
16614         such list of primitives.
16615         (Analyze_Package_Specification): Simplify code that handles parent units
16616         of instances and formal packages.
16617         (Uninstall_Declarations): Check the convention consistency among
16618         primitive overriding operations of a tagged record type.
16619
16620 2006-10-31  Robert Dewar  <dewar@adacore.com>
16621             Hristian Kirtchev  <kirtchev@adacore.com>
16622             Javier Miranda  <miranda@adacore.com>
16623             Ed Schonberg  <schonberg@adacore.com>
16624
16625         * sem_ch8.adb: Minor error msg rewording
16626         (Undefined): When checking for misspellings, invert arguments (to get
16627         expected and found set right)
16628         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
16629         (Analyze_Generic_Renaming): Same fix
16630         (Use_One_Package): Do not take into account the internal entities of
16631         abstract interfaces during the analysis of entities that are marked
16632         as potentially use-visible.
16633         (Find_Type): Handle the case of an attribute reference for
16634         implementation defined attribute Stub_Type (simply let the analysis of
16635         the attribute reference rewrite it).
16636         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
16637         type that appears in a Use_Type clause.
16638         (Analyze_Object_Renaming): Add support for renaming of the Priority
16639         attribute.
16640         (Find_Type): In Ada 2005, a task type can be used within its own body,
16641         when it appears in an access definition.
16642         (Analyze_Object_Renaming): Remove warning on null_exclusion.
16643         (Analyze_Object_Renaming): Introduce checks for required null exclusion
16644          in a formal object declaration or in a subtype declaration.
16645         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
16646         (Check_Null_Exclusion): New local routine to
16647         Analyze_Subprogram_Renaming. Check whether the formals and return
16648         profile of a renamed subprogram have required null exclusions when
16649         their counterparts of the renaming already impose them.
16650         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
16651         Determine whether an entity is inside a generic scope.
16652         (In_Open_Scope): First pass of documentation update.
16653         (Find_Expanded_Name): Add support for shadow entities associated with
16654         limited withed packages. This is required to handle nested packages.
16655         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
16656         that makes a renaming of a limited withed package illegal.
16657
16658 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
16659             Ed Schonberg  <schonberg@adacore.com>
16660
16661         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
16662         Check_Overriding_Indicator.
16663         (Analyze_Task_Definition): Ditto.
16664         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
16665         (Check_Overriding_Indicator): To find overridden interface operation,
16666         examine only homonyms that have an explicit subprogram declaration, not
16667         inherited operations created by an unrelated type derivation.
16668         (Check_Overriding_Indicator): When checking for the presence of "null"
16669         in a procedure, ensure that the queried node is a procedure
16670         specification.
16671         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
16672         type when the formal is an access to variable.
16673         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
16674         (Analyze_Task_Type): Same addition
16675         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
16676         provide navigation capabilities for entries.
16677
16678 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
16679             Ed Schonberg  <schonberg@adacore.com>
16680             Javier Miranda  <miranda@adacore.com>
16681             Gary Dismukes  <dismukes@adacore.com>
16682
16683         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
16684         inherited from an interface ancestor by another interface in the
16685         context of an instance as 'late'.
16686         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
16687         of a call to a function that dispatches on access result.
16688         (Check_Dispatching_Operation): In case of late overriding of a primitive
16689         that covers abstract interface subprograms we register it in all the
16690         secondary dispatch tables associated with abstract interfaces.
16691         (Check_Dispatching_Call): Add check that a dispatching call is not made
16692         to a function with a controlling result of a limited type. This is a
16693         current implementation restriction.
16694         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
16695         (Check_Dispatching_Operation): Do no emit a warning if the controlling
16696         argument is an interface type that is a generic formal.
16697         (Is_Interface_Subprogram): Removed.
16698         (Check_Dispatching_Operation): If the subprogram is not a dispatching
16699         operation, check the formals to handle the case in which it is
16700         associated with an abstract interface type.
16701
16702 2006-10-31  Robert Dewar  <dewar@adacore.com>
16703             Ed Schonberg  <schonberg@adacore.com>
16704
16705         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
16706         Add new calls to this procedure during traversal
16707         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
16708         another unit if expansion is disabled.
16709
16710 2006-10-31  Robert Dewar  <dewar@adacore.com>
16711
16712         * sem_eval.adb (Compile_Time_Compare): Make use of information from
16713         Current_Value in the conditional case, to evaluate additional
16714         comparisons at compile time.
16715
16716 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
16717             Hristian Kirtchev  <kirtchev@adacore.com>
16718             Javier Miranda  <miranda@adacore.com>
16719
16720         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
16721         subprogram type to provide better diagnostics in case of ambiguity.
16722         (Covers): Handle coverage of formal and actual anonymous access types in
16723         the context of generic instantiation.
16724         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
16725         abstract interface types; this is required to handle concurrent types
16726         with discriminants and abstract interface types.
16727         (Covers): Include type coverage of both regular incomplete subtypes and
16728         incomplete subtypes of incomplete type visibles through a limited with
16729         clause.
16730
16731 2006-10-31  Robert Dewar  <dewar@adacore.com>
16732             Hristian Kirtchev  <kirtchev@adacore.com>
16733             Ed Schonberg  <schonberg@adacore.com>
16734
16735         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
16736         messages for entities in packages which are not used.
16737         (Collect_Synchronized_Interfaces): New procedure.
16738         (Overrides_Synchronized_Primitive): New function.
16739         (Denotes_Discriminant): Extend predicate to apply to task types.
16740         Add missing continuation marks in error msgs
16741         (Unqualify): New function for removing zero or more levels of
16742         qualification from an expression. There are numerous places where this
16743         ought to be used, but we currently only deal properly with zero or one
16744         level.
16745         (In_Instance); The analysis of the actuals in the instantiation of a
16746         child unit is not within an instantiation, even though the parent
16747         instance is on the scope stack.
16748         (Safe_To_Capture_Value): Exclude the case of variables that are
16749         renamings.
16750         (Check_Obsolescent): Removed
16751         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
16752         is an aliased view, even when rewritten as a reference to the target
16753         object in an assignment.
16754         (Get_Subprogram_Entity): New function
16755         (Known_To_Be_Assigned): New function
16756         (Type_Access_Level): Compute properly the access level of a return
16757         subtype that is an anonymous access type.
16758         (Explain_Limited_Type): Correct use of "\" for continuation messages.
16759         (Is_Transfer): The new extended_return_statement causes a transfer of
16760         control.
16761         (Has_Preelaborable_Initialization): New function
16762         (Has_Null_Exclusion): New function. Given a node N, determine whether it
16763         has a null exclusion depending on its Nkind.
16764         Change Is_Lvalue to May_Be_Lvalue
16765         (May_Be_Lvalue): Extensive additional code to deal with subprogram
16766         arguments (IN parameters are not Lvalues, IN OUT parameters are).
16767         (Safe_To_Capture_Value): Extend functionality so it can be used for
16768         the current value condition case.
16769         (Has_Compatible_Alignment): New function
16770         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
16771         objects to handle the Ada 2005 case, where aliasedness no longer implies
16772         that the object is constrained. In particular, for dereferenced names,
16773         the designated object must be assumed to be unconstrained.
16774         (Kill_Current_Values): Properly deal with the case where we encounter
16775         a loop in the scope chain.
16776         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
16777         a value.
16778         (Compile_Time_Constraint_Error): Improve error message in error case
16779
16780         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
16781         associated with entities of abstract interface primitives.
16782         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
16783
16784 2006-10-31  Robert Dewar  <dewar@adacore.com>
16785
16786         * s-osinte-tru64.adb: 
16787         Mark Asm statements Volatile to prevent warnings (seems a
16788         reasonable change anyway)
16789         Fixes new warnings
16790
16791         * s-mastop-irix.adb: Add Volatile to Asm statements
16792         Suppresses warning, and seems appropriate in any case
16793
16794         * s-osinte-vms.adb: Add Volatile to Asm statement
16795
16796         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
16797
16798         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
16799         returned.
16800         Add call to Check_Code_Statement
16801
16802 2006-10-31  Robert Dewar  <dewar@adacore.com>
16803             Ed Schonberg  <schonberg@adacore.com>
16804             Bob Duff  <duff@adacore.com>
16805
16806         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
16807         Synchronized_Present): Add Formal_Derived_Type_Definition and
16808         Private_Extension_Declaration to the list of assertions.
16809         (Is_Entry_Barrier_Function): New flag
16810         (Has_Self_Reference): New flag on aggregates, to indicate that they
16811         contain a reference to the enclosing type, inserted through a default
16812         initialization.
16813         (Next_Rep_Item): Move from Node4 to Node5.
16814         (Entity): Add this field for N_Attribute_Definition_Clause.
16815         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
16816         (N_Return_Object_Declaration): Remove this node kind. We now use
16817         N_Object_Declaration instead.
16818         (Actual_Designated_Subtype): Move to a different place to make room in
16819         N_Extended_Return_Statement.
16820         (Procedure_To_Call): Move to a different place to make room in
16821         N_Extended_Return_Statement.
16822         (Return_Type): Removed this field to make room in return statements
16823         (both kinds).
16824         (Return_Statement_Entity): New field in return statements, in part to
16825         replace Return_Type, and in part to support the fact that return
16826         statements are now pushed on the scope stack during semantic analysis.
16827         (Return_Object_Declarations): New field to support extended return
16828         statements.
16829         (N_Extended_Return_Statement): New node for extended_return_statement
16830         nonterminal.
16831         (N_Return_Object_Declaration): New node for part of
16832         extended_return_statement nonterminal. Needed because all the necessary
16833         fields won't fit in N_Extended_Return_Statement.
16834         Generic_associations now carry the Box_Present flag, to indicate a
16835         default for an actual in a partially parametrized formal package.
16836
16837         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
16838         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
16839         and for the new predefined dispatching policies: EDF_Across_Priorities,
16840         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
16841         Introduce new name Stub_Type for implementation defined attribute.
16842         Add pragma Preelaborable_Initialization
16843         Add entry for Priority attribute.
16844         Add Pragma_Wide_Character_Encoding
16845         (Get_Convention_Name): Given a convention id, this function returns the
16846         corresponding name id from the names table.
16847
16848 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
16849             Robert Dewar  <dewar@adacore.com>
16850             Bob Duff  <duff@adacore.com>
16851
16852         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
16853         print null exclusion twice in the case of an access definition,
16854         Implement new -gnatL switch
16855         Remove N_Return_Object_Declaration. We now use
16856         N_Object_Declaration instead. Implement the case for
16857         N_Extended_Return_Statement. Alphabetize the cases.
16858         Add cases for new nodes N_Extended_Return_Statement and
16859         N_Return_Object_Declaration. The code is not yet written.
16860         Update the output for N_Formal_Object_Declaration
16861         and N_Object_Renaming_Declaration.
16862         (Write_Itype): Account for the case of a modular integer subtype whose
16863         base type is private.
16864
16865 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
16866
16867         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
16868         Remove elaboration code, now done in the binder.
16869
16870         * s-rident.ads: Make this unit Preelaborate.
16871         (No_Restrictions): New constant used to clean up code and follow
16872         preelaborate constraints.
16873
16874         * s-stalib.adb: 
16875         Add System.Restrictions dependence, referenced directly from the
16876         binder generated file.
16877
16878 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
16879
16880         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
16881         True when AAMP extended floating-point is in use (48-bit). Change type
16882         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
16883         the two byte array types on AFloat. Change type of IV_Ilf overlay
16884         variable from Byte8 to ByteLF. Add appropriate initializations of
16885         floating-point overlays for AAMP cases.
16886
16887 2006-10-31  Javier Miranda  <miranda@adacore.com>
16888
16889         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
16890         (Get_Ceiling): New subprogram that returns
16891         the ceiling priority of the protected object.
16892         (Set_Ceiling): New subprogram that sets the new ceiling priority of
16893         the protected object.
16894
16895         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
16896
16897         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
16898
16899 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
16900
16901         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
16902         requeuing to the same protected object to give higher priority tasks
16903         the opportunity to execute.
16904
16905 2006-10-31  Robert Dewar  <dewar@adacore.com>
16906
16907         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
16908         add more precise check for the character sequence that follows '[' to
16909         avoid possible confusion in case if '[' is the last character of a
16910         string literals.
16911         (Scan_Wide): Always allow brackets encoding
16912
16913 2006-10-31  Olivier Hainque  <hainque@adacore.com>
16914
16915         * s-stchop.ads: make this unit preelaborate. This is desirable in
16916         general and made mandatory by the use of this unit by s-taprop which
16917         is itself preelaborate.
16918
16919         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
16920         Td_Events component.
16921
16922 2006-10-31  Vincent Celier  <celier@adacore.com>
16923
16924         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
16925         in file names.
16926
16927 2006-10-31  Vincent Celier  <celier@adacore.com>
16928
16929         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
16930
16931 2006-10-31  Vincent Celier  <celier@adacore.com>
16932
16933         * makegpr.adb (Check_Compilation_Needed): Take into account path names
16934         with spaces.
16935         (Check_Compilation_Needed): When checking a C or C++ source, do not
16936         resolve symbolic links.
16937         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
16938         When not in verbose mode and Ellipse is True, display "..." for the
16939         first argument with Display set to False.
16940         (Build_Global_Archive): Always set Display True for the first object
16941         file. Call Display_Command with Ellipse set to True.
16942
16943 2006-10-31  Matt Heaney  <heaney@adacore.com>
16944
16945         * a-crbtgo.ads: Commented each subprogram
16946
16947         * a-crbtgo.adb: Added reference to book from which algorithms were
16948         adapted.
16949
16950         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
16951         indicate which child.
16952         (Generic_Conditional_Insert): changed parameter name from "Success" to
16953         "Inserted".
16954         (Generic_Unconditional_Insert_With_Hint): improved algorithm
16955
16956         * a-coorse.adb (Replace_Element): changed parameter name in call to
16957         conditional insert operation.
16958
16959         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
16960
16961         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
16962         Generic_Iteration
16963
16964         * a-ciorse.adb (Replace_Element): changed parameter name in call to
16965         conditional insert operation.
16966
16967         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
16968         Generic_Iteration.
16969
16970         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
16971         instead of mode inout.
16972
16973         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
16974         draft
16975         (Generic_Read): preserve existing buckets array if possible
16976         (Generic_Write): don't send buckets array length anymore
16977
16978         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
16979         instead of mode inout.
16980
16981         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
16982         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
16983
16984         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
16985         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
16986         (Replace_Element): local operation is now an instantiation
16987
16988         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
16989         check current length.
16990         (Generic_Replace_Element): new operation
16991
16992 2006-10-31  Doug Rupp  <rupp@adacore.com>
16993
16994         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
16995         Call TBK$SYMBOLIZE without omitting parameters.
16996
16997 2006-10-31  Vincent Celier  <celier@adacore.com>
16998
16999         * symbols-processing-vms-ia64.adb,
17000         symbols-processing-vms-alpha.adb (Process): Do not include symbols
17001         that come from generic instantiations in bodies.
17002
17003 2006-10-31  Pat Rogers  <rogers@adacore.com>
17004
17005         * a-rttiev.ads, a-rttiev.adb: 
17006         This is a significant redesign primarily for the sake of automatic
17007         timer task termination but also to fix a design flaw.
17008         Therefore we are now using an RTS lock, instead of a protected
17009         object, to provide mutual exclusion to the queue of pending events
17010         and the type Timing_Event is no longer a protected type.
17011
17012 2006-10-31  Robert Dewar  <dewar@adacore.com>
17013             Cyrille Comar  <comar@adacore.com>
17014             Ben Brosgol  <brosgol@adacore.com>
17015
17016         * debug.adb:  Update flags documentation
17017
17018         * gnat_ugn.texi: Add documentation for new -gnatwq switch
17019         Clean up documentation for several other warning switches
17020         Clarify how task stack size can be specified with various
17021         versions of Windows.
17022         Add note that -gnatVo includes ranges including loops
17023         Add documentation for -gnatL switch
17024         Add note on elaboration warning for initializing variables
17025         Add documentation for new -gnatwt warning switch
17026         Document new form of pragma Warnings (On|Off, string)
17027         Add comment on use of pragma Warnings to control warnings
17028         Add documentation for -gnatjnn switch
17029         Modify section on interfacing with C for VMS 64-bit.
17030         Add doc for -gnatVe/E
17031         Add documentation of new warning flags -gnatww/-gnatwW
17032         Add warnings about address clause overlays to list of warnings
17033         (Exception Handling Control): Document that the option --RTS must be
17034         used consistently for gcc and gnatbind.
17035         Clarify that inlining is not always possible
17036         Update documentation on pragma Unchecked_Union.
17037
17038         * gnat_rm.texi: 
17039         Add documentation for new extended version of pragma Obsolescent
17040         Add documentation for implementation defined attribute 'Stub_Type.
17041         Add note on use of Volatile in asm statements
17042         Add documentation on use of pragma Unreferenced in context clause
17043         Document new form of pragma Warnings (On|Off, pattern)
17044         Document pragma Wide_Character_Encoding
17045         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
17046         enforced if code generation is active.
17047         Add section on pragma Suppress to document GNAT specific check
17048         Alignment_Check
17049         Clarify difference between No_Dispatching_Calls & No_Dispatch.
17050         Add documentation for pragma Restrictions (No_Elaboration_Code)
17051
17052         * gnat-style.texi: 
17053         Add comments on layout of subprogram local variables in the
17054         presence of nested subprograms.
17055
17056         * ug_words: Resync.
17057
17058         * elists.ads: Minor reformatting
17059         Node returns Node_Or_Entity_Id (doc change only)
17060
17061         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
17062
17063         * g-arrspl.ads (Create): Update comments.
17064
17065         * sem.ads: Add details on the handling of the scope stack.
17066
17067         * usage.adb: Update documentation.
17068
17069         * validsw.ads, validsw.adb: 
17070         Add definition of Validity_Check_Components and implement -gnatVe/E
17071
17072         * vms_data.ads: Add missing VMS qualifiers.
17073
17074         * s-addope.ads: Add documentation on overflow and divide by zero
17075
17076 2006-10-31  Robert Dewar  <dewar@adacore.com>
17077             Thomas Quinot  <quinot@adacore.com>
17078             Arnaud Charlet  <charlet@adacore.com>
17079
17080         * fmap.adb: Put routines in alpha order
17081
17082         * g-boumai.ads: Remove redundant 'in' keywords
17083
17084         * g-cgi.adb: Minor reformatting
17085
17086         * g-cgi.ads: Remove redundant 'in' keywords
17087
17088         * get_targ.adb: Put routines in alpha order
17089
17090         * prj-attr.ads: Minor reformatting
17091
17092         * s-atacco.ads: Minor reformatting
17093
17094         * scn.adb: Put routines in alpha order
17095
17096         * sinput-l.adb: Minor comment fix
17097
17098         * sinput-p.adb: Minor comment fix
17099
17100         * s-maccod.ads: Minor reformatting
17101
17102         * s-memory.adb: Minor reformatting
17103
17104         * s-htable.adb: Fix typo in comment.
17105
17106         * s-secsta.adb: Minor comment update.
17107
17108         * s-soflin.adb: Minor reformatting
17109
17110         * s-stoele.ads: 
17111         Add comment about odd qualification in Storage_Offset declaration
17112
17113         * s-strxdr.adb: 
17114         Remove unnecessary 'in' keywords for formal parameters.
17115
17116         * treeprs.adt: Minor reformatting
17117
17118         * urealp.adb: Put routines in alpha order
17119
17120         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
17121         taking string.
17122
17123         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
17124
17125         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
17126
17127         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
17128         workaround as on other platforms.
17129
17130         * g-eacodu-vms.adb: Remove redundant 'in' keywords
17131         * g-expect-vms.adb: Remove redundant 'in' keywords
17132
17133         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
17134         clear error message if the list-of-files file cannot be opened.
17135
17136         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
17137         equality operator is always visible.
17138
17139         * lang.opt: Woverlength-strings: New option.
17140
17141         * nmake.adt: 
17142         Update copyright, since nmake.ads and nmake.adb have changed.
17143
17144         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
17145         (Binder_Output_Time_Stamps_Set): removed.
17146         (Old_Binder_Output_Time_Stamp): idem.
17147         (New_Binder_Output_Time_Stamp): idem.
17148         (Recording_Time_From_Last_Bind): idem.
17149         (Recording_Time_From_Last_Bind): Make constant.
17150
17151         * output.ads, output.adb (Write_Str): Allow LF characters
17152         (Write_Spaces): New procedure
17153
17154         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
17155
17156         * inline.adb: Minor reformatting
17157
17158         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
17159
17160         * s-mastop-vms.adb: Remove redundant 'in' keywords
17161
17162         * s-osprim-vms.adb: Remove redundant 'in' keywords
17163
17164         * s-trafor-default.adb: Remove redundant 'in' keywords
17165
17166         * 9drpc.adb: Remove redundant 'in' keywords
17167
17168         * s-osinte-mingw.ads: Minor reformatting
17169
17170         * s-inmaop-posix.adb: Minor reformatting
17171
17172         * a-direio.ads: Remove quotes from Compile_Time_Warning message
17173
17174         * a-exexda.adb: Minor code reorganization
17175
17176         * a-filico.adb: Minor reformatting
17177
17178         * a-finali.adb: Minor reformatting
17179
17180         * a-nudira.ads: Remove quote from Compile_Time_Warning message
17181
17182         * a-numeri.ads: Minor reformatting
17183
17184         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
17185
17186         * exp_pakd.ads: Fix obsolete comment
17187
17188         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
17189         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
17190         Probably not a bug, but certainly neater and more efficient.
17191
17192         * a-tienio.adb: Minor reformatting
17193
17194         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
17195         Avoid assuming low bound of string is 1.
17196
17197         * gnatbind.adb: Change Bindusg to package and rename procedure as
17198         Display, which now ensures that it only outputs usage information once.
17199         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
17200
17201         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
17202         Table'First.
17203
17204         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
17205         warning.
17206         (Match): Add pragma Assert to ensure that Matches'First is zero
17207
17208         * g-regpat.ads (Match): Document that Matches lower bound must be zero
17209
17210         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
17211         documented preconditions (also kills warnings about bad indexes).
17212
17213         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
17214         is 1.
17215         (Build_Import_Library): Ditto;
17216
17217         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
17218
17219         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
17220
17221         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
17222         lower bound of choice table is 1.
17223
17224         * sem_case.ads (Analyze_Choices): Document that lower bound of
17225         Choice_Table is 1.
17226
17227         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
17228         string is 1.
17229
17230         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
17231         and add appropriate Assert pragma to suppress warnings.
17232
17233         * atree.h, atree.ads, atree.adb
17234         Change Elist24 to Elist25
17235         Add definitions of Field28 and Node28
17236         (Traverse_Field): Use new syntactic parent table in sinfo.
17237
17238         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
17239
17240         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
17241
17242         * exp_tss.adb: Put routines in alpha order
17243
17244         * fe.h: Remove redundant declarations.
17245
17246 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
17247
17248         * utils.c (builtin_function): Rename to gnat_builtin_function.
17249         Move common code to add_builtin_function.
17250         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
17251         gnat_builtin_function.
17252         * gigi.h (builtin_function): Rename to gnat_builtin_function.
17253         Change the signature.
17254
17255 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
17256
17257         * Makefile.in: Add TEXI2PDF definition.
17258         * Make-lang.in: Add "ada.pdf" target.
17259
17260 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
17261
17262         * decl.c, utils.c: Fix comment typos.
17263         * utils.c: Fix a typo.
17264
17265 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
17266
17267         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
17268         on "pure" Ada subprograms if SJLJ exceptions are used.
17269         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
17270         on the declaration node of JMPBUF_SAVE.
17271         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
17272         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
17273         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
17274
17275 2006-08-20  Laurent Guerby  <laurent@guerby.net>
17276
17277         PR ada/28716
17278         g-socket.adb (Bind_Socket): Call Set_Address.
17279
17280 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
17281
17282         PR ada/15802
17283         * decl.c (same_discriminant_p): New static function.
17284         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
17285         subtype and we have discriminants, fix up the COMPONENT_REFs
17286         for the discriminants to make them reference the corresponding
17287         fields of the parent subtype after it has been built.
17288
17289 2006-09-15  Roger Sayle  <roger@eyesopen.com>
17290
17291         PR ada/18817
17292         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
17293         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
17294
17295 2006-09-13  Olivier Hainque  <hainque@adacore.com>
17296
17297         PR ada/29025
17298         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
17299         of a SAVE_EXPR, just make the operand addressable/not-readonly and
17300         let the common gimplifier code make and propagate a temporary copy.
17301         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
17302         out/in-out actuals and defer setting the addressable/readonly bits
17303         to the gimplifier.
17304
17305 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
17306
17307         PR ada/28591
17308         * decl.c (components_to_record): Defer emitting debug info for the
17309         record type associated with the variant until after we are sure to
17310         actually use it.
17311
17312 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
17313
17314         PR ada/21952
17315         * gigi.h (gnat_internal_attribute_table): Declare.
17316         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
17317         * utils.c (gnat_internal_attribute_table): New global variable.
17318         (builtin_function): Always call decl_attributes on the builtin.
17319         (handle_const_attribute): New static function.
17320         (handle_nothrow_attribute): Likewise.
17321
17322 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
17323
17324         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
17325
17326 2006-06-23  Olivier Hainque  <hainque@adacore.com>
17327
17328         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
17329         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
17330
17331 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
17332             Eric Botcazou  <ebotcazou@adacore.com>
17333
17334         PR ada/18692
17335         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
17336         check-gnat into check-acats.
17337
17338 2006-06-17  Karl Berry  <karl@gnu.org>
17339
17340         * gnat-style.texi (@dircategory): Use "Software development"
17341         instead of "Programming", following the Free Software Directory.
17342
17343 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17344
17345         PR ada/27944
17346         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
17347
17348 2006-06-06  Laurent Guerby  <laurent@guerby.net>
17349
17350         PR ada/27769
17351         mlib-utl.adb: Use Program_Name.
17352
17353 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
17354
17355         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
17356         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
17357         trans.c, utils.c: Fix comment typos.  Follow spelling
17358         conventions.
17359         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
17360         conventions.
17361
17362 2006-05-19  Nicolas Setton  <setton@adacore.com>
17363
17364         * misc.c (gnat_dwarf_name): New function.
17365         (LANG_HOOKS_DWARF_NAME): Define to it.
17366
17367 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
17368
17369         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
17370         (ada/misc.o): Likewise.
17371         (ada/utils.o): Likewise.
17372
17373 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
17374
17375         * Makefile.in: Add Ada support for GNU/kFreeBSD.
17376         * s-osinte-kfreebsd-gnu.ads: New file.
17377
17378 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
17379
17380         * Make-lang.in: Rename docdir to gcc_docdir.
17381
17382 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
17383
17384         * gigi.h (get_ada_base_type): Delete.
17385         * utils2.c (get_ada_base_type): Likewise.
17386         * trans.c (convert_with_check): Operate in the real base type.
17387
17388 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17389
17390         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
17391
17392 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
17393
17394         * utils.c (create_var_decl): Use have_global_bss_p when deciding
17395         whether to make the decl common.
17396
17397 2006-02-20  Rafael ï¿½vila de Esp�ndola  <rafael.espindola@gmail.com>
17398
17399         * Make-lang.in (Ada): Remove.
17400         (.PHONY): Remove Ada
17401
17402 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
17403
17404         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
17405         aggregate, check the interpretations of the other operand to find one
17406         that may be a boolean array.
17407
17408         (Analyze_Selected_Component): Fix flow-of-control typo in case where
17409         the prefix is a private extension.
17410
17411 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
17412
17413         PR ada/26315
17414         * utils2.c (find_common_type): If both input types are BLKmode and
17415         have the same constant size, keep using the first one.
17416
17417         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
17418
17419         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
17420
17421         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
17422
17423 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
17424
17425         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, 
17426         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
17427         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb, 
17428         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
17429         Abort_Defer/Undefer pairs to avoid the possibility of a task being
17430         aborted while owning a lock.
17431
17432 2006-02-17  Javier Miranda  <miranda@adacore.com>
17433             Robert Dewar  <dewar@adacore.com>
17434
17435         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
17436         through an access to class-wide interface we force the displacement of
17437         the pointer to the allocated object to reference the corresponding
17438         secondary dispatch table.
17439         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
17440         if Long_Shifts are supported on the target, even if 64 bit divides
17441         are not supported (configurable run time mode).
17442         (Expand_N_Type_Conversion): Do validity check if validity checks on
17443         operands are enabled.
17444         (Expand_N_Qualified_Expression): Do validity check if validity checks
17445         on operands are enabled.
17446
17447 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
17448
17449         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
17450         must be materialized when the renamed expression is an explicit
17451         dereference.
17452
17453 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
17454
17455         * freeze.adb (Statically_Discriminated_Components): Return false if
17456         the bounds of the type of the discriminant are not static expressions.
17457
17458         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
17459         the bounds of the discriminant type are not static.
17460
17461 2006-02-17  Robert Dewar  <dewar@adacore.com>
17462
17463         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
17464         then we close To if it is valid.
17465
17466 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
17467
17468         * init.c (facility_resignal_table): new array
17469         (__gnat_default_resignal_p): enhance default predicate to resignal if
17470         VMS condition has one of the predefined facility codes.
17471
17472 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
17473
17474         * Makefile.in: Use VMS64 specialized versions of several units in
17475         Interfaces.C hierarchy to be compatible with HP C default size choices.
17476         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
17477
17478 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
17479
17480         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
17481         instantiation, the corresponding entity is the related_instance of the
17482         wrapper package created for the instance.
17483
17484 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
17485
17486         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
17487         the current instance is nested within another instance in a child unit.
17488
17489 2006-02-17  Javier Miranda  <miranda@adacore.com>
17490             Ed Schonberg  <schonberg@adacore.com>
17491
17492         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
17493         type we cannot inherit the primitive operations; we inherit the
17494         Corresponding_Record_Type (which has the list of primitive operations).
17495         (Check_Anonymous_Access_Types): When creating anonymous access types for
17496         access components, use Rewrite in order to preserve the tree structure,
17497         for ASIS use.
17498         (Analyze_Object_Declaration): For limited types with access
17499         discriminants with defaults initialized by an aggregate, obtain
17500         subtype from aggregate as for other mutable types.
17501         (Derived_Type_Declaration): If the derived type is a limited interface,
17502         set the corresponding flag (Is_Limited_Record is not sufficient).
17503
17504 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
17505
17506         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
17507         to inline a function that returns an unconstrained type, the return
17508         expression must be the first variable declared in the body of the
17509         function.
17510
17511 2006-02-17  Javier Miranda  <miranda@adacore.com>
17512
17513         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
17514         abstract interface type, the static analysis is not enough to know if
17515         the interface is implemented or not by the source tagged type. Hence
17516         we must pass the work to the expander to generate the required code to
17517         evaluate the conversion at run-time.
17518         (Resolve_Equality_Op): Do not apply previous
17519         transformation if expansion is disasbled, to prevent anomalies when
17520         locating global references in a generic unit.
17521
17522 2006-02-17  Vincent Celier  <celier@adacore.com>
17523
17524         * snames.ads, snames.adb: New standard names for new project attributes:
17525         archive_builder, archive_indexer, compiler_pic_option,
17526         config_body_file_name, config_body_file_name_pattern,
17527         config_file_switches, config_file_unique, config_spec_file_name,
17528         config_spec_file_name_pattern, default_builder_switches,
17529         default_global_compiler_switches, default_language,
17530         dependency_file_kind, global_compiler_switches, include_path,
17531         include_path_file, language_kind, linker_executable_option,
17532         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
17533         roots, runtime_project.
17534
17535 2006-02-17  Matthew Heaney  <heaney@adacore.com>
17536
17537         * a-convec.ads, a-convec.adb: 
17538         (operator "&"): handle potential overflow for large index types
17539         (Insert): removed Contraint_Error when using large index types
17540         (Insert_Space): removed Constraint_Error for large index types
17541         (Length): moved constraint check from Length to Insert
17542
17543         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
17544         as not null access.
17545         Explicit raise statements now include an exception message.
17546         (operator "&"): handle potential overflow for large index types
17547         (Insert): removed Contraint_Error when using large index types
17548         (Insert_Space): removed Constraint_Error for large index types
17549         (Length): moved constraint check from Length to Insert
17550
17551 2006-02-17  Robert Dewar  <dewar@adacore.com>
17552
17553         * s-wchcnv.adb: Document handling of [ on output (we do not change
17554         this to ["5B"] and the new comments say why not.
17555
17556         * gnat_ugn.texi: 
17557         Add note for -gnatVo that this now includes the cases of type
17558         conversions and qualified expressions.
17559         Add comments on handling of brackets encoding for Text_IO
17560
17561 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
17562             Thomas Quinot  <quinot@adacore.com>
17563             Robert Dewar  <dewar@adacore.com>
17564             Javier Miranda  <miranda@adacore.com>
17565
17566         * expander.adb: Fix typo in comment
17567
17568         * exp_pakd.adb: Fix typo
17569         Minor comment reformatting.
17570
17571         * g-dyntab.adb: Minor reformatting
17572
17573         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
17574         aliased subprograms to look for the abstract interface subprogram.
17575
17576 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
17577
17578         * env.c (__gnat_setenv): Use size_t.
17579         (__gnat_unsetenv): Likewise.
17580         (__gnat_clearenv): Likewise.
17581
17582 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
17583
17584         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
17585
17586 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
17587
17588         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
17589         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
17590         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
17591         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
17592         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
17593         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
17594         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
17595         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
17596         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
17597         no longer used.
17598
17599 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
17600
17601         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
17602         protection against race conditions is not needed.
17603         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
17604         fallback handler.
17605         (Set_Specific_Handler): Add mutual exclusive access to the specific
17606         handler.
17607         (Specific_Handler): Add mutual exclusive access for retrieving the
17608         specific handler.
17609
17610         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
17611         back handler.
17612
17613         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
17614         Fall_Back_Handler and Specific_Handler.
17615
17616         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
17617         termination handlers.
17618         Set two different owerflow depending on the maximal stack size.
17619
17620         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
17621         protection against race conditions is not needed when executing the
17622         task termination handler.
17623
17624 2006-02-13  Robert Dewar  <dewar@adacore.com>
17625
17626         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
17627         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
17628         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
17629         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
17630         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
17631         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
17632         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
17633         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
17634         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
17635         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
17636         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
17637         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
17638         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
17639         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
17640         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
17641         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
17642         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
17643         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
17644         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
17645         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
17646         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
17647         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
17648         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
17649         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
17650         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
17651         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
17652         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
17653         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
17654         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
17655         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
17656         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
17657         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
17658         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
17659         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
17660         reformatting.
17661
17662 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
17663
17664         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
17665         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
17666         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
17667         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
17668         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
17669         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
17670         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
17671         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
17672         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
17673
17674 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
17675
17676         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 
17677         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 
17678         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 
17679         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 
17680         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 
17681         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
17682         replaced by anonymous access type.
17683         (pthread_sigmask): Now take an access sigset_t
17684
17685         * s-osinte-hpux.ads:  Ditto.
17686         (pthread_mutex_t, pthread_cond_t): Update definitions to support
17687         properly 32 and 64 bit ABIs.
17688
17689 2006-02-13  Pascal Obry  <obry@adacore.com>
17690
17691         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 
17692         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 
17693         s-taprop-linux.adb, s-taprop-solaris.adb,
17694         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
17695         adjustement is already done when calling this routine.
17696
17697 2006-02-13  Pascal Obry  <obry@adacore.com>
17698
17699         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
17700         table to take advantage of the 16 priority levels available on Windows
17701         2000 and XP. On NT4 there are only 7 priority levels, this is properly
17702         supported by this new mapping.
17703
17704 2006-02-13  Nicolas Setton  <setton@adacore.com>
17705
17706         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
17707         (get_encoding): New subprogram. Extracts the encodings from an encoded
17708         Ada name.
17709
17710 2006-02-13  Pascal Obry  <obry@adacore.com>
17711             Nicolas Roche  <roche@adacore.com>
17712             Arnaud Charlet  <charlet@adacore.com>
17713
17714         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
17715         support.
17716         (__gnat_try_lock): Add unicode support by using a specific section on
17717         Windows.
17718         (__gnat_get_current_dir): Idem.
17719         (__gnat_open_read): Idem.
17720         (__gnat_open_rw): Idem.
17721         (__gnat_open_create): Idem.
17722         (__gnat_create_output_file): Idem.
17723         (__gnat_open_append): Idem.
17724         (__gnat_open_new): Idem.
17725         (__gnat_file_time_name): Idem.
17726         (__gnat_set_file_time_name): Idem.
17727         (__gnat_stat): Idem.
17728         (win32_no_block_spawn): Idem.
17729         (__gnat_locate_exec_on_path): Idem.
17730         (__gnat_opendir): New routine.
17731         (__gnat_closedir): Idem.
17732         (__gnat_readdir): Add new parameter length (pointer to int). Update
17733         implementation to use it and add specific Win32 code for Unicode
17734         support.
17735         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
17736         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
17737         (convert_addresses): Do not define this dummy routine on VMS.
17738
17739         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
17740         runtime Unicode support will be activated.
17741         (S2WS): String to Wide-String conversion. This version just copy a
17742         string in non Unicode version.
17743         (WS2S): Wide-String to String conversion. This version just copy a
17744         string in non Unicode version.
17745
17746         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
17747         (Open): Now import __gnat_opendir from adaint.c.
17748         (Read): Change the implementation to support unicode characters. It is
17749         not possible to use strlen() on Windows as this version supports only
17750         standard ASCII characters. So the length of the directory entry is now
17751         returned from the imported __gnat_readdir routine.
17752         Update copyright notice.
17753
17754         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
17755         (opendir): Moved to adaint.c.
17756
17757         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
17758         (Get_Directory): Fix wrong indexing.
17759         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
17760         __gnat_getenv from env.c
17761         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
17762         from env.c
17763
17764         * env.h, env.c: New file.
17765
17766         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
17767         adaint.c by __gnat_getenv from env.c
17768
17769         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
17770         adaint.c by __gnat_getenv from env.c
17771
17772         * Make-lang.in: Add env.o in the list of C object needed by gnat1
17773         and gnatbind.
17774         Update dependencies.
17775
17776 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17777             Olivier Hainque  <hainque@adacore.com>
17778             Eric Botcazou  <ebotcazou@adacore.com>
17779
17780         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
17781         
17782         * gigi.h (value_factor_p): Add prototype and description, now public.
17783
17784         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
17785         promotion for field with rep clause if the associated size was proven
17786         to be in error.
17787         Expand comments describing attempts to use a packable type.
17788         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
17789         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
17790         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
17791         necessary since these are not different types and pointers may
17792         actually designate any subtype in this hierarchy.
17793         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
17794         discriminants but put them into record only if not Unchecked_Union;
17795         pass flag to components_to_record showing Unchecked_Union.
17796         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
17797         components before variants; don't set TYPE_UNCHECKED_UNION_P.
17798         (components_to_record): New argument UNCHECKED_UNION.
17799         Remove special case code for Unchecked_Union and instead use main code
17800         with small changes.
17801
17802         PR ada/26096
17803         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
17804         variable with the expression being built, only its inner field.
17805
17806         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
17807         emit_sequence_entry_statements.
17808         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
17809         (establish_gnat_vms_condition_handler): Move before
17810         Subprogram_Body_to_gnu.
17811         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
17812         for a subprogram if it has a foreign convention or is exported.
17813         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
17814         substituted for a CONST_DECL.
17815         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
17816         Etype to assoc_to_constructor.
17817         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
17818         discriminants of Unchecked_Union.
17819         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
17820         don't need cluttering preprocessor directives.
17821         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
17822         condition handler as current in the compiled function.
17823         (body_with_handlers_p): New function. Tell whether a given sequence of
17824         statements node is attached to a package or subprogram body and involves
17825         exception handlers possibly nested within inner block statements.
17826         (emit_sequence_entry_statements): New function, to emit special
17827         statements on entry of sequences when necessary. Establish GNAT
17828         condition handler in the proper cases for VMS.
17829         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
17830         emit_sequence_entry_statements.
17831
17832         * utils2.c (find_common_type): If both input types are BLKmode and
17833         have a constant size, use the smaller one.
17834         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
17835         the same.
17836
17837         * utils.c (value_factor_p): Make public, to allow uses from other gigi
17838         units.
17839         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
17840         (convert, case UNION_TYPE): Remove special treatment for unchecked
17841         unions.
17842
17843         PR ada/18659
17844         (update_pointer_to): Update variants of pointer types to unconstrained
17845         arrays by attaching the list of fields of the main variant.
17846
17847 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
17848             Robert Dewar  <dewar@adacore.com>
17849
17850         * a-exexpr.adb, a-exexpr-gcc.adb
17851         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
17852         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
17853         Remove code unused for exception propagation for the compiler itself
17854         from a-except.adb and update to still share separate packages.
17855
17856         * a-except.ads, a-except.adb: Ditto.
17857         Add comments that this version is now used only by the compiler and
17858         other basic tools. The full version that includes the Ada 2005 stuff
17859         is in separate files a-except-2005.ads/adb. The reason is that we do
17860         not want to cause bootstrap problems with compilers not recognizing
17861         Wide_Wide_String.
17862         Add exception reason code PE_Implicit_Return
17863         Add new exception reason code (Null Exception_Id)
17864
17865         * a-except-2005.adb, a-except-2005.ads: New files.
17866
17867         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
17868
17869         * s-wchcon.adb: New file.
17870
17871         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
17872         (traceback.o deps): Likewise.
17873         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
17874         Activate build of GMEM instrumentation library on VMS targets.
17875         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
17876         Use a-except-2005.ads/adb for all run-time library builds unless
17877         specified otherwise.
17878         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
17879         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
17880         Use s-parame.adb on all native platforms.
17881         Use s-parame-vxworks.adb on all vxworks platforms.
17882         Add env.c env.h in LIBGNAT_SRCS
17883         Add env.o in LIBGNAT_OBJS
17884         (GNATMAKE_OBJS): Remove ctrl_c.o object.
17885         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
17886         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
17887         supports VxWorks 6 RTPs.
17888         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
17889         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
17890
17891         * types.h, types.ads (Terminate_Program): New exception
17892         Add comment on modifying multiple versions of a-except.adb when the
17893         table of exception reasons is modified.
17894         Add exception reason code PE_Implicit_Return
17895         Add new exception reason code (Null Exception_Id)
17896
17897         * clean.adb (Initialize): Get the target parameters before checking
17898         if target is OpenVMS. Move the OpenVMS specific code here from package
17899         body elaboration code.
17900
17901 2006-02-13  Thomas Quinot  <quinot@adacore.com>
17902             Vincent Celier  <celier@adacore.com>
17903             Robert Dewar  <dewar@adacore.com>
17904
17905         * ali-util.adb (Get_File_Checksum): Update to account for change in
17906         profile of Initialize_Scanner.
17907
17908         * gprep.adb (Gnatprep): Update to account for change in profile of
17909         Initialize_Scanner.
17910         (Process_One_File): Same.
17911
17912         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
17913         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
17914         that behaviour using the new Unit information recorded in the source
17915         files table, rather than going through all units every time.
17916         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
17917         (Get_Source_Unit): Same.
17918
17919         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
17920         change in profile of Initialize_Scanner.
17921         (Prepare_To_Preprocess): Same.
17922
17923         * lib.ads: Fix typo in comment (templace -> template).
17924
17925         * prj-part.adb (Parse_Single_Project): Update to account for change in
17926         profile of Initialize_Scanner.
17927
17928         * scn.adb (Initialize_Scanner): Account for change in profile of
17929         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
17930         Also record the association of the given Source_File_Index to the
17931         corresponding Unit_Number_Type.
17932
17933         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
17934         procedure.
17935         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
17936         Remove Unit formal for generic scanner: this formal
17937         is only relevant to Scn (the scanner instance used to parse Ada source
17938         files), not to other instances. Update comment accordingly.
17939         (Scan): Use new function Snames.Is_Keyword_Name.
17940
17941         * sinfo-cn.adb: Fix typo in comment.
17942
17943         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
17944         Unit.
17945
17946         * sinput.ads (Source_File_Record): New component Unit, used to capture
17947         the unit identifier (if any) associated to a source file.
17948
17949         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
17950         Unit in Source_File_Record.
17951
17952         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
17953         in profile of Initialize_Scanner.
17954
17955         * scans.adb (Initialize_Ada_Keywords): New procedure
17956
17957         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
17958         Ada keywords in the Namet table, without the need to call
17959         Initialize_Scanner.
17960
17961         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
17962         (Is_Keyword_Name): New function
17963
17964         * snames.ads: Add subtype Configuration_Pragma_Names
17965         Add pragma Ada_2005 (synonym for Ada_05)
17966         (Is_Keyword_Name): New function
17967
17968         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
17969
17970 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
17971
17972         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
17973         index.
17974
17975         * a-stwima.adb (To_Set): Add extra check when N = 0.
17976
17977         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
17978
17979 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
17980
17981         * s-parame-mingw.adb, s-parame-linux.adb,
17982         s-parame-solaris.adb: Removed, replaced by s-parame.adb
17983
17984         * s-parame-vxworks.ads: Fix typo.
17985
17986         * s-parame-vxworks.adb: New file.
17987
17988         * s-parame.adb: Version now used by all native platforms.
17989         (Default_Stack_Size): Use 2 megs for default stack size and use
17990         __gl_default_stack_size when available.
17991         (Minimum_Stack_Size): Use 12K.
17992
17993         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
17994         (Create_Task): Refine implementation taking advantage of the XP stack
17995         size support. On XP, we now create the thread using the flag
17996         STACK_SIZE_PARAM_IS_A_RESERVATION.
17997
17998         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
17999
18000         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
18001         XP and 0 on older Windows versions.
18002
18003         * interfac-vms.ads: Removed, no longer used.
18004
18005 2006-02-13  Matthew Heaney  <heaney@adacore.com>
18006
18007         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, 
18008         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, 
18009         a-cohase.adb: All explicit raise statements now include an exception
18010         message.
18011
18012         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
18013         (Update_Element_Preserving_Key): renamed op to just Update_Element.
18014         Explicit raise statements now include an exception message
18015
18016         * a-cihase.ads, a-cohase.ads: Removed comment.
18017
18018         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
18019         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
18020         a-szbzha.adb, a-szfzha.ads: New files.
18021
18022 2006-02-13  Matthew Heaney  <heaney@adacore.com>
18023
18024         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
18025         quicksort.
18026
18027 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
18028
18029         * lang.opt: Wvariadic-macros: New option.
18030         Wold-style-definition: Likewise.
18031         Wmissing-format-attribute: Likewise.
18032
18033         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
18034         -Wold-style-definition and -Wmissing-format-attribute.
18035
18036 2006-02-13  Robert Dewar  <dewar@adacore.com>
18037
18038         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
18039
18040         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
18041
18042 2006-02-13  Nicolas Roche  <roche@adacore.com>
18043
18044         * a-envvar.adb, a-envvar.ads: New files.
18045
18046 2006-02-13  Douglas Rupp  <rupp@adacore.com>
18047
18048         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
18049
18050         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
18051
18052 2006-02-13  Pat Rogers  <rogers@adacore.com>
18053
18054         * a-rttiev.adb, a-rttiev.ads: New files.
18055
18056 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
18057
18058         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
18059         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
18060
18061         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
18062
18063 2006-02-13  Robert Dewar  <dewar@adacore.com>
18064
18065         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, 
18066         sem_case.adb: Minor code reorganization (not Present should be No)
18067
18068 2006-02-13  Geert Bosch  <bosch@adacore.com>
18069             Gary Dismukes  <dismukes@adacore.com>
18070
18071         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
18072         0, since the lower bound of the actual string may be greater than one.
18073
18074         PR ada/20753
18075         * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
18076         layout is requested.
18077
18078 2006-02-13  Vincent Celier  <celier@adacore.com>
18079
18080         * back_end.adb (Scan_Compiler_Arguments): Check if
18081         Search_Directory_Present is True and, if it is, add the argument in
18082         the source search directory path.
18083
18084         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
18085         Search_Directory_Present to True.
18086
18087 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
18088
18089         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
18090         volatile, to tell the compiler to preserve this variable at any level
18091         of optimization.
18092         (Gen_Versions_Ada): Temporarily work around codegen bug.
18093
18094 2006-02-13  Vincent Celier  <celier@adacore.com>
18095
18096         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
18097         gcc to link with option -shared-libgcc.
18098         (Gnatlink): Remove duplicate switches -shared-libgcc
18099
18100 2006-02-13  Robert Dewar  <dewar@adacore.com>
18101
18102         * gnatvsn.ads (Current_Year): New constant, used to easily update
18103         copyright on all GNAT tools.
18104
18105         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
18106         copyright notice.
18107
18108 2006-02-13  Robert Dewar  <dewar@adacore.com>
18109
18110         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
18111         after hyphen (small aesthetic change useful for a range of numbers
18112         using ^-^.
18113         Suppress range checks for a couple of assignments which otherwise
18114         cause validity checks with validity checking turned on.
18115
18116         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
18117         Improvement in error message for object.
18118         (Rep_Item_Too_Late): Remove '!' in warning message.
18119
18120 2006-02-13  Robert Dewar  <dewar@adacore.com>
18121             Eric Botcazou  <ebotcazou@adacore.com>
18122
18123         * err_vars.ads: Suppress range checks for a couple of assignments
18124         which otherwise cause validity checks with validity checking turned on.
18125         Update comments.
18126
18127         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
18128         Make message unconditional if it is a warning.
18129         (Error_Msg_NEL): Always output warning messages.
18130         Suppress range checks for a couple of assignments which otherwise
18131         cause validity checks with validity checking turned on.
18132
18133         * errout.ads (Message Insertion Characters): Document that '!' is
18134         implied by '?' in error messages.
18135
18136         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
18137         (Gnat1drv): Use a goto to end of main subprogram instead of
18138         Exit_Program (E_Success) so that finalization can occur normally.
18139
18140 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
18141
18142         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
18143         wrapped around.
18144
18145 2006-02-13  Vincent Celier  <celier@adacore.com>
18146
18147         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
18148         Unchecked_Conversion functions.
18149         (Modification_Time): Use direct conversion of OS_Time to Calendar time
18150         when OpenVMS returns False.
18151
18152         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
18153         a-dirval.adb (OpenVMS): New Boolean function
18154
18155 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
18156             Thomas Quinot  <quinot@adacore.com>
18157
18158         * checks.adb (Build_Discriminant_Checks): If the expression being
18159         checks is an aggregate retrieve the values of its discriminants to
18160         generate the check, rather than creating a temporary and a reference
18161         to it.
18162         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
18163         (Install_Null_Excluding_Check): Ditto
18164         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
18165         not for the renamed object, so that the actual itype is attached in the
18166         proper context.
18167
18168 2006-02-13  Robert Dewar  <dewar@adacore.com>
18169             Vincent Celier  <celier@adacore.com>
18170
18171         * debug.adb: Eliminate numeric switches for binder/gnatmake
18172
18173         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
18174         switches for the compiler.
18175         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
18176         (Scan_Make_Switches): When failing with an illegal switch, output an
18177         error message with the full switch.
18178         Eliminate numeric switches for binder/gnatmake
18179
18180         * switch.ads, switch.adb (Bad_Switch): New procedure
18181
18182         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
18183         Remove 0-9 as debug flag character possibilities
18184         -d is now controlling the primary stack size when its value is a
18185         positive. Also add checks against invalid values, and support for kb,
18186         mb. Ditto for -D switch.
18187
18188 2006-02-13  Robert Dewar  <dewar@adacore.com>
18189             Serguei Rybin  <rybin@adacore.com>
18190
18191         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
18192         save/restore routines.
18193         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
18194         were not always properly handled previously.
18195         Since we are changing the tree format anyway, also get rid of the
18196         junk obsolete Immediate_Errors flag.
18197         (Tree_Read): Change the way of reading Tree_Version_String - now we
18198         read the version string from the tree even if its length is not the
18199         same as the length of the version string computed from Gnatvsn.
18200         (Search_Directory_Present): New Boolean flag for the compiler.
18201         Define Tree_Version_String as a dynamic string.
18202         (Default_Stack_Size): new variable, used to handle switch -d.
18203
18204         * par-prag.adb: 
18205         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
18206         only for main unit.
18207         Add pragma Ada_2005 (synonym for Ada_05)
18208         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
18209         were not always properly handled previously.
18210
18211         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
18212         explicit Ada_95 to Ada_2005.
18213
18214 2006-02-13  Javier Miranda  <miranda@adacore.com>
18215             Robert Dewar  <dewar@adacore.com>
18216             Ed Schonberg  <schonberg@adacore.com>
18217
18218         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
18219         against errors in the source program: a private types for which the
18220         corresponding full type declaration is missing and pragma CPP_Virtual
18221         is used.
18222         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
18223         (Is_Known_Null): New flag
18224         (Has_Pragma_Pure): New flag
18225         (No_Return): Present in all entities, set only for procedures
18226         (Is_Limited_Type): A type whose ancestor is an interface is limited if
18227         explicitly declared limited.
18228         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
18229         entities. Only used for component marked Is_Tag. If present it stores
18230         the Offset_To_Top function used to provide this value in tagged types
18231         whose ancestor has discriminants.
18232
18233         * exp_ch2.adb: Update status of new Is_Known_Null flag
18234
18235         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
18236
18237         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
18238         the categorization sense if Is_Pure was set by pragma Pure_Function.
18239
18240 2006-02-13  Quentin Ochem  <ochem@adacore.com>
18241             Olivier Hainque  <hainque@adacore.com>
18242
18243         * bindusg.adb: Updated documentation for -d and -D switches.
18244
18245         * raise.h (__gnat_set_globals): added new parameter for
18246         Default_Stack_Size.
18247
18248         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
18249         (__gnat_handle_vms_condition): Adjust context before raise.
18250         (__gnat_install_handler): Restore the global vector setup for GCC
18251         versions before 3.4, as the frame based circtuitry is not available
18252         in this case.
18253         (__gnat_set_globals): added a parameter default_stack_size
18254         (__gl_default_stack_size): new variable.
18255
18256 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
18257
18258         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
18259         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
18260         does not exist in the Ada RM.
18261         (Compatible_Int_Bounds): Determine whether two integer range bounds
18262         are of equal length and have the same start and end values.
18263         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
18264         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
18265         aggregate when it is part of an object declaration.
18266         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
18267         constrains discriminants of its parent, add explicitly the discriminant
18268         constraints of the ancestor by retrieving them from the
18269         stored_constraint of the parent.
18270
18271 2006-02-13  Robert Dewar  <dewar@adacore.com>
18272
18273         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
18274         attribute Mechanism_Code is applied to renamed subprogram, modify
18275         prefix to point to base subprogram.
18276         Max/Min attributes now violate Restriction No_Implicit_Conditionals
18277
18278         * sinfo.ads: Document that Mechanism_Code cannot be applied to
18279         renamed subprograms so that the front-end must replace the prefix
18280         appropriately.
18281
18282 2006-02-13  Javier Miranda  <miranda@adacore.com>
18283             Gary Dismukes  <dismukes@adacore.com>
18284
18285         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
18286         availability of RE_Interface_Tag.
18287         (Build_Initialization_Call): Fix wrong access to the discriminant value.
18288         (Freeze_Record_Type): Do not generate the tables associated with
18289         timed and conditional dispatching calls through synchronized
18290         interfaces if compiling under No_Dispatching_Calls restriction.
18291         When compiling for Ada 2005, for a nonabstract
18292         type with a null extension, call Make_Controlling_Function_Wrappers
18293         and insert the wrapper function declarations and bodies (the latter
18294         being appended as freeze actions).
18295         (Predefined_Primitive_Bodies): Do not generate the bodies of the
18296         predefined primitives associated with timed and conditional
18297         dispatching calls through synchronized interfaces if we are
18298         compiling under No_Dispatching_Calls.
18299         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
18300         service is available before generating a call.
18301         (Make_Controlling_Function_Wrappers): New procedure.
18302         (Expand_N_Full_Type_Declaration): Create a class-wide master for
18303         access-to-limited-interfaces because they can be used to reference
18304         tasks that implement such limited interface.
18305         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
18306         procedure spec and body of the Offset_To_Top function that is generated
18307         when the parent of a type with discriminants has secondary dispatch
18308         tables.
18309         (Init_Secondary_Tags): Handle the case in which the parent of the type
18310         containing secondary dispatch tables has discriminants to generate the
18311         correct arguments to call Set_Offset_To_Top.
18312         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
18313
18314         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
18315         Add Wide_[Wide_]Expanded_Name.
18316         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
18317         the same functionality of Get_Prim_Op_Address but applied to predefined
18318         primitive operations because the pointers to the predefined primitives
18319         are now saved in a separate table.
18320         (Parent_Size): Modified to get access to the separate table of primitive
18321         operations or the parent type.
18322         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
18323         functionality of Set_Prim_Op_Address but applied to predefined primitive
18324         operations.
18325         (Set_Signature): New subprogram used to store the signature of a DT.
18326         (Displace): If the Offset_To_Top value is not static then call the
18327         function generated by the expander to get such value; otherwise use
18328         the value stored in the table of interfaces.
18329         (Offset_To_Top): The type of the actual has been changed to Address to
18330         give the correct support to tagged types with discriminants. In this
18331         case this value is stored just immediately after the tag field.
18332         (Set_Offset_To_Top): Two new formals have been added to indicate if the
18333         offset_to_top value is static and hence pass this value to the run-time
18334         to store it in the table of interfaces, or else if this value is dynamic
18335         and then pass to the run-time the address of a function that is
18336         generated by the expander to provide this value for each object of the
18337         type.
18338
18339         * rtsfind.ads (Default_Prin_Op_Count): Removed.
18340         (Default_Prim_Op_Count): New entity
18341         (Get_Predefined_Prim_Op_Address): New entity
18342         (Set_Predefined_Prim_Op_Address): New entity
18343         (RE_Set_Signature): New entity
18344
18345 2006-02-13  Thomas Quinot  <quinot@adacore.com>
18346             Ed Schonberg  <schonberg@adacore.com>
18347
18348         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
18349         Make_Adjust_Call done for a newly-allocated object.
18350
18351         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
18352         in a subprogram are wrapped in a cleanup block, indicate that the
18353         subprogram contains an inner block with an exception handler.
18354         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
18355         Adjust call is for a newly-allocated object. In that case we must not
18356         assume that the finalization list chain pointers are correct (since they
18357         come from a bit-for-bit copy of the original object's pointers) so if
18358         the attach level would otherwise be zero (no change), we set it to 4
18359         instead to cause the pointers to be reset to null.
18360
18361         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
18362         reset chain pointers to null.
18363
18364 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
18365
18366         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
18367         string, and the context requires a loop for the assignment (e.g.
18368         because the left-hand side is packed), generate a unique name for the
18369         temporary that holds the string, to prevent spurious name clashes.
18370
18371 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
18372             Javier Miranda  <miranda@adacore.com>
18373             Robert Dewar  <dewar@adacore.com>
18374             Gary Dismukes  <dismukes@adacore.com>
18375
18376         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
18377         return unconstrained arrays.
18378         Update comments.
18379         (Expand_Call):  An indirect call through an access parameter of a
18380         protected operation is not a protected call.
18381         Add circuit to raise CE in Ada 2005 mode following call
18382         to Raise_Exception.
18383         (Register_DT_Entry): Do nothing if
18384         the run-time does not give support to abstract interfaces.
18385         (Freeze_Subprogram): In case of dispatching operations, do not generate
18386         code to register the operation in the dispatch table if the source
18387         is compiled with No_Dispatching_Calls.
18388         (Register_Predefined_DT_Entry): Generate code that calls the new
18389         run-time subprogram Set_Predefined_Prim_Op_Address instead of
18390         Set_Prim_Op_Address.
18391
18392         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
18393         on array assignments if the right-hand side is a function call that has
18394         been inlined. Check is performed on the assignment in the block.
18395         (Process_Bounds): If bounds and range are overloaded, apply preference
18396         rule for root operations to disambiguate, and diagnose true ambiguity.
18397         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
18398         a tag-indeterminate right-hand side even when Expander_Active is True.
18399         Needed to ensure that dispatching calls to T'Input are allowed and
18400         get the tag of the target class-wide object.
18401
18402         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
18403         an inherited primitive operation that already overrides several
18404         abstract interface primitives. For transitivity, the new entity must
18405         also override all the abstract interface primitives covered by the
18406         inherited overriden primitive.
18407         Emit warning if new entity differs from homograph in same scope only in
18408         that one has an access parameter and the other one has a parameter of
18409         a general access type with the same designated type, at the same
18410         position in the signature.
18411         (Make_Inequality_Operator): Use source locations of parameters and
18412         subtype marks from corresponding equality operator when creating the
18413         tree structure for the implicit declaration of "/=". This does not
18414         change anything in behaviour except that the decoration of the
18415         components of the subtree created for "/=" allows ASIS to get the
18416         string images of the corresponding identifiers.
18417         (Analyze_Return_Statement): Remove '!' in warning message.
18418         (Check_Statement_Sequence): Likewise.
18419         (Analyze_Subprogram_Body): For an access parameter whose designated type
18420         is an incomplete type imported through a limited_with clause, use the
18421         type of the corresponding formal in the body.
18422         (Check_Returns): Implicit return in No_Return procedure now raises
18423         Program_Error with a compile time warning, instead of beging illegal.
18424         (Has_Single_Return):  Function returning unconstrained type cannot be
18425         inlined if expression in unique return statement is not an identifier.
18426         (Build_Body_To_Inline): It is possible to inline a function call that
18427         returns an unconstrained type if all return statements in the function
18428         return the same local variable. Subsidiary procedure Has_Single_Return
18429         verifies that the body conforms to this restriction.
18430
18431         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
18432         same type, and  one of them is of an anonymous access type, convert
18433         the other operand to it, so that this is a valid binary operation for
18434         gigi.
18435         (Resolve_Type_Conversion): Handle subtypes of protected types and
18436         task types when accessing to the corresponding record type.
18437         (Resolve_Allocator): Add '\' in 2-line warning message.
18438         Remove '!' in warning message.
18439         (Resolve_Call): Add '\' in 2-line warning message.
18440         (Valid_Conversion): Likewise.
18441         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
18442         resulting type may be an access type with an implicit dereference.
18443         Obtain the proper component from the designated type.
18444         (Make_Call_Into_Operator): Handle properly a call to predefined equality
18445         given by an expanded name with prefix Standard, when the operands are
18446         of an anonymous access type.
18447         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
18448         Explicit_Dereference and Resolve_Selected_Component, to verify that the
18449         prefix of the expression is not of an incomplete type. Allows full
18450         diagnoses of all semantic errors.
18451         (Resolve_Actuals): If the actual is an allocator whose directly
18452         designated type is a class-wide interface we build an anonymous
18453         access type to use it as the type of the allocator. Later, when
18454         the subprogram call is expanded, if the interface has a secondary
18455         dispatch table the expander will add a type conversion to force
18456         the displacement of the pointer.
18457         (Resolve_Call): If a function that returns an unconstrained type is
18458         marked Inlined_Always and inlined, the call will be inlined and does
18459         not require the creation of a transient scope.
18460         (Check_Direct_Boolean_Op): Removed
18461         (Resolve_Comparison_Op): Remove call to above
18462         (Resolve_Equality_Op): Remove call to above
18463         (Resolve_Logical_Op): Inline above, since this is only call.
18464         (Valid_Conversion): Handle properly conversions between arrays of
18465         convertible anonymous access types.
18466
18467         PR ada/25885
18468         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
18469         the literal in an unchecked conversion, because GCC 4.x needs a static
18470         value for a string bound.
18471
18472 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
18473             Hristian Kirtchev  <kirtchev@adacore.com>
18474
18475         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
18476         components of the corresponding record, take into account component
18477         definitions that are access definitions.
18478         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
18479         procedure is not considered a dispatching call and will be expanded
18480         properly.
18481
18482 2006-02-13  Javier Miranda  <miranda@adacore.com>
18483
18484         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
18485         controlling argument of the dispatching call is an abstract interface
18486         class-wide type then we use it directly.
18487         Check No_Dispatching_Calls restriction.
18488         (Default_Prim_Op_Position): Remove the code that looks for the last
18489         entity in the list of aliased subprograms. This code was wrong in
18490         case of renamings.
18491         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
18492         when the source is compiled with the No_Dispatching_Calls restriction.
18493         (Init_Predefined_Interface_Primitives): No need to inherit primitives
18494         if we are compiling with restriction No_Dispatching_Calls.
18495         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
18496         subprograms if we are compiling under No_Dispatching_Calls restriction.
18497         (Make_DT): Generate a dispatch table with a single dummy entry if
18498         we are compiling with the No_Dispatching_Calls restriction. In
18499         addition, in this case we don't generate code that calls to the
18500         following run-time subprograms: Set_Type_Kind, Inherit_DT.
18501         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
18502         of this subprogram if compiling with the No_Dispatching_Calls
18503         restriction.
18504         (Expand_Type_Conversion): Instead of using the actual parameter,
18505         the argument passed as parameter to the conversion function was
18506         erroneously referenced by the expander.
18507         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
18508         Set_Predefined_Primitive_Op_Address and Set_Signature.
18509         (Expand_Dispatching_Call): Generate call to
18510         Get_Predefined_Prim_Op_Address for predefined primitives.
18511         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
18512         predefined primitives.
18513         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
18514         primitives we reserve one dummy entry to ensure that the tag does not
18515         point to some memory that is associated with some other object. In
18516         addition, remove all the old code that generated the assignments
18517         associated with the signature of the dispatch table and replace them
18518         by a call to the new subprogram Set_Signature.
18519         (Set_All_DT_Position): Change the algorithm because now we have a
18520         separate dispatch table associated with predefined primitive operations.
18521         (Expand_Interface_Conversion): In case of non-static offset_to_top
18522         add explicit dereference to get access to the object after the call
18523         to displace the pointer to the object.
18524         (Expand_Interface_Thunk): Modify the generation of the actual used
18525         in the calls to the run-time function Offset_To_Top to fulfil its
18526         new interface.
18527         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
18528
18529 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
18530
18531         * exp_dist.adb (Copy_Specification): For access parameters, copy
18532         Null_Exclusion flag, which will have been set for stream subprograms
18533         in Ada2005 mode.
18534
18535 2006-02-13  Pascal Obry  <obry@adacore.com>
18536
18537         * expect.c (__gnat_expect_portable_execvp): New implementation. The
18538         previous implementation was using the C runtime spawnve routine but
18539         the corresponding wait was using directly the Win32 API. This was
18540         causing some times a lock when waiting for an event using
18541         WaitForSingleObject in __gnat_waitpid. This new implementation uses
18542         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
18543         API fixes this problem.
18544
18545 2006-02-13  Robert Dewar  <dewar@adacore.com>
18546
18547         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
18548         call.
18549
18550 2006-02-13  Thomas Quinot  <quinot@adacore.com>
18551
18552         * exp_pakd.ads: Fix typos in comments.
18553
18554         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
18555         array reference that is an explicit dereference, mark the converted
18556         (packed) array reference as analyzed to prevent a forthcoming
18557         reanalysis from resetting its type to the original (non-packed) array
18558         type.
18559
18560 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
18561             Javier Miranda  <miranda@adacore.com>
18562             Eric Botcazou  <ebotcazou@adacore.com>
18563
18564         * exp_util.ads, exp_util.adb (Find_Prim_Op,
18565         Is_Predefined_Primitive_Operation): When
18566         searching for the predefined equality operator, verify that operands
18567         have the same type.
18568         (Is_Predefined_Dispatching_Operation): Remove the code that looks
18569         for the last entity in the list of aliased subprograms. This code
18570         was wrong in case of renamings.
18571         (Set_Renamed_Subprogram): New procedure
18572         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
18573         Exp_Type constant computed when entering this subprogram.
18574         (Known_Null): New function
18575         (OK_To_Do_Constant_Replacement): New function
18576         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
18577         (Side_Effect_Free): An attribute reference 'Input is not free of
18578         side effect, unlike other attributes that are functions. (from code
18579         reading).
18580         (Remove_Side_Effects): Expressions that involve packed arrays or records
18581         are copied at the point of reference, and therefore must be marked as
18582         renamings of objects.
18583         (Is_Predefined_Dispatching_Operation): Return false if the operation is
18584         not a dispatching operation.
18585
18586         PR ada/18819
18587         (Remove_Side_Effects): Lift enclosing type conversion nodes for
18588         elementary types in all cases.
18589
18590 2006-02-13  Javier Miranda  <miranda@adacore.com>
18591
18592         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
18593         task types when accessing to the corresponding record type.
18594         Remove '!' in warning message.
18595
18596 2006-02-13  Olivier Hainque  <hainque@adacore.com>
18597
18598         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
18599         to avoid useless and space inefficient overalignments on targets where
18600         Max_Alignment is larger than 16.
18601
18602 2006-02-13  Pascal Obry  <obry@adacore.com>
18603
18604         * g-catiio.adb (Sec_Number): New type used to compute the number of
18605         seconds since 1-1-1970.
18606         (Image) [Natural]: The parameter was an Integer, as we can't deal with
18607         negative numbers (years, months...) it is better to have a Natural here.
18608         Code clean-up.
18609         (Image) [Number]: Change parameter from Long_Integer to Number.
18610         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
18611         overflow for dates past year 2038.
18612
18613 2006-02-13  Matthew Heaney  <heaney@adacore.com>
18614
18615         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
18616         Constraint_Error.
18617
18618 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
18619
18620         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
18621         native platforms.
18622         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
18623         finalization can occur normally.
18624
18625 2006-02-13  Vincent Celier  <celier@adacore.com>
18626
18627         * gnatcmd.adb (Rules_Switches): New table
18628         (Add_To_Rules_Switches): New procedure
18629         (GNATCmd): For command CHECK, put all options following "-rules" in the
18630         Rules_Switches table. Append these -rules switches after the -cargs
18631         switches.
18632
18633 2006-02-13  Robert Dewar  <dewar@adacore.com>
18634
18635         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
18636         These two cases were generating incorrect output, and if this unit
18637         was built with checks on, generated a discriminant mismatch constraint
18638         error.
18639
18640 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
18641             Robert Dewar  <dewar@adacore.com>
18642
18643         * lib-xref.adb (Get_Type_Reference): For a private type whose full
18644         view is an array type, indicate the component type as well, for
18645         navigation purposes.
18646         (Generate_Reference): Don't consider array ref on LHS to be a case
18647         of violating pragma Unreferenced.
18648         Do not give Ada 2005 warning except on real reference.
18649
18650 2006-02-13  Vincent Celier  <celier@adacore.com>
18651
18652         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
18653         main source, add switch -mdebug-main=_ada_ so that the executable can
18654         be debugged by the standard VMS debugger.
18655         (Gnatmake): Set No_Main_Subprogram to True when there is no main
18656         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
18657         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
18658         of the last source, as the binding and linking phases are never
18659         performed.
18660         Set all executable obsolete when rebuilding a library.
18661
18662         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
18663         options.
18664
18665 2006-02-13  Javier Miranda  <miranda@adacore.com>
18666
18667         PR ada/23973
18668         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
18669         code to improve the error message reported when the program has
18670         declarations of abstract interface types and it is not compiled with
18671         the -gnat05 switch.
18672         (P_Access_Definition): Reorganize the code to improve the error
18673         message reported when the new Ada 2005 syntax for anonymous
18674         access types is used and the program is not compiled with the
18675         -gnat05 switch.
18676
18677 2006-02-13  Robert Dewar  <dewar@adacore.com>
18678
18679         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
18680         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
18681         (MODE_IN)
18682
18683 2006-02-13  Javier Miranda  <miranda@adacore.com>
18684
18685         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
18686         against source containing syntax errors.
18687
18688 2006-02-13  Vincent Celier  <celier@adacore.com>
18689
18690         * prj.adb (Reset): Initialize the first element of table Namings with
18691         the standard naming data.
18692
18693 2006-02-13  Vincent Celier  <celier@adacore.com>
18694
18695         * prj.ads (Error_Warning): New enumeration type
18696
18697         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
18698         unknown, use the location of the project to report the error.
18699         (When_No_Sources): New global variable
18700         (Report_No_Ada_Sources): New procedure
18701         (Check): New parameter When_No_Sources. Set value of global variable
18702         When_No_Sources,
18703         (Find_Sources): Call Report_No_Ada_Sources when appropriate
18704         (Get_Sources_From_File): Ditto
18705         (Warn_If_Not_Sources): Better warning messages indicating the unit name
18706         and the file name.
18707
18708         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
18709         Call Prj.Proc.Process with parameter When_No_Sources.
18710
18711         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
18712         Call Recursive_Check with parameter When_No_Sources.
18713         (Recursive_Check): New parameter When_No_Sources. Call itself and
18714         Prj.Nmsc.Check with parameter When_No_Sources.
18715         (Process): New parameter When_No_Sources. Call Check with parameter
18716         When_No_Sources.
18717         (Copy_Package_Declarations): New procedure to copy renamed parameters
18718         and setting the location of the declared attributes to the location
18719         of the renamed package.
18720         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
18721         packages.
18722
18723 2006-02-13  Vincent Celier  <celier@adacore.com>
18724
18725         * prj-makr.adb (Make): Preserve the comments from the original project
18726         file.
18727         When removing nodes (attributes Source_Dirs, Source_Files,
18728         Source_List_File and package Naming), save the comments and attach the
18729         saved comments to the newly created nodes.
18730         Do not add a with clause for the naming package if one already exists.
18731
18732 2006-02-13  Javier Miranda  <miranda@adacore.com>
18733             Gary Dismukes  <dismukes@adacore.com>
18734             Robert Dewar  <dewar@adacore.com>
18735
18736         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
18737
18738         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
18739         aliased entities to look for the overriden abstract interface
18740         subprogram.
18741         (Is_Interface_Subprogram): Complete documentation.
18742         (Check_Dispatching_Operation): Do not generate code to register the
18743         operation in the dispatch table if the source is compiled with
18744         restriction No_Dispatching_Calls.
18745         (Override_Dispatching_Operation): Check for illegal attempt to override
18746         No_Return procedure with procedure that is not No_Return
18747         (Check_Dispatching_Call): Suppress the check for an abstract operation
18748         when the original node of an actual is a tag-indeterminate attribute
18749         call, since the attribute, which must be 'Input, can never be abstract.
18750         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
18751         call to the Input attribute (even when rewritten).
18752         (Propagate_Tag): Augment comment to indicate the possibility of a call
18753         to an Input attribute.
18754
18755         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
18756         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
18757
18758         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
18759         No_Wide_Characters is no longer partition-wide
18760         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
18761         rather than GNAT
18762
18763 2006-02-13  Douglas Rupp  <rupp@adacore.com>
18764
18765         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
18766
18767 2006-02-13  Javier Miranda  <miranda@adacore.com>
18768
18769         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
18770         handles default-initialized components to keep separate the management
18771         of this feature but also avoid the unrequired resolution and
18772         expansion of components that do not have partially initialized
18773         values.
18774         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
18775         (Check_Bounds): Likewise.
18776         (Check_Length): Likewise.
18777
18778 2006-02-13  Javier Miranda  <miranda@adacore.com>
18779             Ed Schonberg  <schonberg@adacore.com>
18780
18781         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
18782         abstract interface type call analyze_and_resolve to expand the type
18783         conversion into the corresponding displacement of the
18784         reference to the base of the object.
18785         (Eval_Attribute, case Width): For systems where IEEE extended precision
18786         is supported, the maximum exponent occupies 4 decimal digits.
18787         (Accessibility_Message): Add '\' in 2-line warning message.
18788         (Resolve_Attribute): Likewise.
18789         (case Attribute_Access): Significantly revise checks
18790         for illegal access-to-subprogram Access attributes to properly enforce
18791         the rules of 3.10.2(32/2).
18792         Diagnose use of current instance with an illegal attribute.
18793
18794         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
18795         to a Node_Id.
18796         (Enclosing_Generic_Unit): New function to return a node's innermost
18797         enclosing generic declaration node.
18798         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
18799         (Type_Access_Level): The accessibility level of anonymous acccess types
18800         associated with discriminants is that of the current instance of the
18801         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
18802         (Compile_Time_Constraint_Error): Handle case of conditional expression.
18803         (Kill_Current_Values_For_Entity): New function
18804         (Enter_Name): Change formal type to Entity_Id
18805
18806 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
18807             Ed Schonberg  <schonberg@adacore.com>
18808             Gary Dismukes  <dismukes@adacore.com>
18809
18810         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
18811         Analyze_Compilation_Unit.
18812         Detect and warn on redundant with clauses detected in a package spec
18813         and/or body when -gnatwr is used.
18814         (Analyze_Context): Analyze config pragmas before other items
18815         (Install_Context_Items): Don't analyze config pragmas here
18816         (Install_Limited_Withed_Unit): Set limited entity of package in
18817         with_clause so that cross-reference information or warning messages on
18818         unused packages can be properly generated
18819         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
18820         has Error_Posted set. Prevent infinite loops in illegal programs.
18821         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
18822         to the point of the error test requiring the current unit to be private.
18823         This ensures that private with clauses are not exempted from the basic
18824         checking for being a descendant of the same library unit parent as a
18825         withed private descendant unit.
18826         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
18827         handle private with clauses properly, as well as to account for cases
18828         where the withed unit is a public descendant of a private ancestor
18829         (in which case the current unit must be a descendant of the private
18830         ancestor's parent). The spec comments were updated accordingly. Also,
18831         the old error message in this subprogram was replaced with error
18832         messages that mirror the errors tested and reported by
18833         Check_Private_Child_Unit.
18834         Parameter and variable names improved for readability.
18835         (Install_Limited_Context_Clauses): Remove test for a withed unit being
18836         private as the precondition for calling
18837         Check_Private_Limited_Withed_Unit since that subprogram has been
18838         revised to test public units as well as private units.
18839
18840 2006-02-13  Thomas Quinot  <quinot@adacore.com>
18841             Robert Dewar  <dewar@adacore.com>
18842             Ed Schonberg  <schonberg@adacore.com>
18843             Javier Miranda  <miranda@adacore.com>
18844
18845         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
18846         that Scope_Stack.First = 1.
18847         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
18848         were not always properly handled previously.
18849         (Formal_Entity): Complete rewrite, to handle properly some complex case
18850         with multiple levels of parametrization by formal packages.
18851         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
18852         to the corresponding derived type declaration for proper semantics.
18853
18854         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
18855         (Check_Component): Enforce restriction on components of
18856         unchecked_unions: a component in a variant cannot contain tasks or
18857         controlled types.
18858         (Unchecked_Union): Allow nested variants and multiple discriminants, to
18859         conform to AI-216.
18860         Add pragma Ada_2005 (synonym for Ada_05)
18861         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
18862         were not always properly handled previously.
18863         Document that pragma Propagate_Exceptions has no effect
18864         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
18865         (Set_Convention_From_Pragma): Check that if a convention is
18866         specified for a dispatching operation, then it must be
18867         consistent with the existing convention for the operation.
18868         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
18869         longer required to specify an vtable-ptr component in the record. For
18870         compatibility reasons we leave the support for the previous definition.
18871         (Analyze_Pragma, case No_Return): Allow multiple arguments
18872
18873         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
18874         non-overrideen inherited operation with a controlling result as
18875         illegal only its implicit declaration comes from the derived type
18876         declaration of its result's type.
18877         (Check_Possible_Deferred_Completion): Relocate the object definition
18878         node of the subtype indication of a deferred constant completion rather
18879         than directly analyzing it. The analysis of the generated subtype will
18880         correctly decorate the GNAT tree.
18881         (Record_Type_Declaration): Check whether this is a declaration for a
18882         limited derived record before analyzing components.
18883         (Analyze_Component_Declaration): Diagnose record types  not explicitly
18884         declared limited when a component has a limited type.
18885         (Build_Derived_Record_Type): Code reorganization to check if some of
18886         the inherited subprograms of a tagged type cover interface primitives.
18887         This check was missing in case of a full-type associated with a private
18888         type declaration.
18889         (Constant_Redeclaration): Check that the subtypes of the partial and the
18890         full view of a constrained deferred constant statically match.
18891         (Mentions_T): A reference to the current type in an anonymous access
18892         component declaration  must be an entity name.
18893         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
18894         class_wide type to refer to full type, not to the incomplete one.
18895         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
18896         available. Required to give support to the certified run-time.
18897         (Analyze_Component_Declaration): In case of anonymous access components
18898         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
18899         (Process_Discriminants): For an access discriminant, use the
18900         discriminant specification as the associated_node_for_itype, to
18901         simplify accessibility checks.
18902
18903 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
18904             Javier Miranda  <miranda@adacore.com>
18905
18906         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
18907         abstract interpretations on an operator, remove interpretations that
18908         yield Address or a type derived from it, if one of the operands is an
18909         integer literal.
18910         (Try_Object_Operation.Try_Primitive_Operation,
18911         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
18912         location when creating the new reference to a primitive or class-wide
18913         operation as a part of rewriting a subprogram call.
18914         (Try_Primitive_Operations): If context requires a function, collect all
18915         interpretations after the first match, because there may be primitive
18916         operations of the same type with the same profile and different return
18917         types. From code reading.
18918         (Try_Primitive_Operation): Use the node kind to choose the proper
18919         operation when a function and a procedure have the same parameter
18920         profile.
18921         (Complete_Object_Operation): If formal is an access parameter and prefix
18922         is an object, rewrite as an Access reference, to match signature of
18923         primitive operation.
18924         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
18925         by an expanded name with prefix Standard, when the operands are of an
18926         anonymous access type.
18927         (Remove_Abstract_Operations): If the operation is abstract because it is
18928         inherited by a user-defined type derived from Address, remove it as
18929         well from the set of candidate interpretations of an overloaded node.
18930         (Analyze_Membership_Op): Membership test not applicable to cpp-class
18931         types.
18932
18933 2006-02-13  Bob Duff  <duff@adacore.com>
18934
18935         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
18936         redundant use clauses.
18937         In particular, if the scope of two use clauses overlaps, but one is not
18938         entirely included in the other, we should not warn.  This can happen
18939         with nested packages.
18940         (Analyze_Subprogram_Renaming): Protect the compiler against previously
18941         reported errors. The bug was reported when the compiler was built
18942         with assertions enabled.
18943         (Find_Type): If the node is a 'Class reference and the prefix is a
18944         synchronized type without a corresponding record, return the type
18945         itself.
18946
18947 2006-02-13  Javier Miranda  <miranda@adacore.com>
18948
18949         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
18950         if this is the full-declaration associated with a private declaration
18951         that implement interfaces, then the private type declaration must be
18952         limited.
18953         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
18954         as aliased. The use of the 'access attribute is not available for such
18955         object (for this purpose the object should be explicitly marked as
18956         aliased, but being an anonymous type this is not possible).
18957
18958 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
18959             Robert Dewar  <dewar@adacore.com>
18960
18961         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
18962         compilation unit is an elaboration scope.
18963         (Add_Task_Proc): Add '\' in 2-line warning message.
18964         (Activate_All_Desirable): Deal with case of unit with'ed by parent
18965
18966 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
18967             Javier Miranda  <miranda@adacore.com>
18968
18969         * sem_type.adb (Write_Overloads): Improve display of candidate
18970         interpretations.
18971         (Add_One_Interp): Do not add to the list of interpretations aliased
18972         entities corresponding with an abstract interface type that is an
18973         immediate ancestor of a tagged type; otherwise we have a dummy
18974         conflict between this entity and the aliased entity.
18975         (Disambiguate): The predefined equality on universal_access is not
18976         usable if there is a user-defined equality with the proper signature,
18977         declared in the same declarative part as the designated type.
18978         (Find_Unique_Type): The universal_access equality operator defined under
18979         AI-230 does not cover pool specific access types.
18980         (Covers): If one of the types is a generic actual subtype, check whether
18981         it matches the partial view of the other type.
18982
18983 2006-02-13  Thomas Quinot  <quinot@adacore.com>
18984
18985         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
18986         line. This is necessary to allow In_Extended_Main_Unit to provide
18987         correct results for itypes while writing out expanded source.
18988         (Close_File): No need to update the source_index_table here since it's
18989         now done for each line.
18990
18991 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
18992             Robert Dewar  <dewar@adacore.com>
18993
18994         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
18995         preserve the source unit where the itype is declared, and prevent a
18996         backend abort.
18997         (Note_Implicit_Run_Time_Call): New procedure
18998         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
18999         E_Subprogram_Type)
19000
19001         * sprint.ads: Document use of $ for implicit run time routine call
19002
19003 2006-02-13  Quentin Ochem  <ochem@adacore.com>
19004
19005         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
19006         task name.
19007
19008 2006-02-13  Bob Duff  <duff@adacore.com>
19009
19010         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
19011         Scan_Unsigned, so we do not scan leading blanks and sign twice.
19012         Integer'Value("- 5") and Integer'Value("-+5") now correctly
19013         raise Constraint_Error.
19014
19015         * s-vallli.adb (Scan_Long_Long_Integer): Call
19016         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
19017         do not scan leading blanks and sign twice.
19018         Integer'Value("- 5") and Integer'Value("-+5") now correctly
19019         raise Constraint_Error.
19020
19021         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
19022         Scan_Long_Long_Unsigned): Split out most of the processing from
19023         Scan_Long_Long_Unsigned out into
19024         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
19025         This prevents scanning leading blanks and sign twice.
19026         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
19027         See RM-3.5(44).
19028
19029         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
19030         out most of the processing from Scan_Unsigned out into
19031         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
19032         This prevents scanning leading blanks and sign twice.
19033
19034         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
19035         use with Modular'Value attribute.
19036         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
19037         attribute.
19038
19039 2006-02-13  Robert Dewar  <dewar@adacore.com>
19040
19041         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
19042
19043 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
19044
19045         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
19046         (PPC VxWorks): Likewise.
19047         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
19048         (forced_callee): Make non-inlinable and non-pure.
19049         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
19050
19051 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
19052             Ben Brosgol  <brosgol@adacore.com>
19053             Robert Dewar  <dewar@adacore.com>
19054
19055         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
19056         support.
19057         Document that gnatbind -M option is for cross environments only.
19058         Added description of using gnatmem to trace gnat rtl allocs and deallocs
19059         Add note on use of $ to label implicit run time calls
19060         Add documentation for -gnatyI (check mode IN)
19061         Updated chapter on compatibility with HP Ada
19062         VMS-oriented edits.
19063         Ran spell and corrected errors
19064         Add documentation for gnatbind -d and rework documentation of -D
19065         at the same time.
19066         Add subprogram/data elimination section.
19067         Minor editing of annex A.
19068         Add section for gnatcheck.
19069         Add documentation for restriction No_Dispatching_Calls
19070         Add documentation for pragma Ada_2005
19071         Remove mention of obsolete pragma Propagate_Exceptions
19072         Document that pragma Unreferenced can appear after DO in ACCEPT
19073         Clarify Pure_Function for library level units
19074         Mention Max/Min in connection with No_Implicit_Conditionals
19075         No_Wide_Characters restriction is no longer partition-wide
19076         Add a nice example for Universal_Literal_String attribute
19077         Document that pragma No_Return can take multiple arguments
19078
19079         * ug_words: Added entry for gnatcheck
19080
19081         * g-ctrl_c.ads (Install_Handler): Enhance comments
19082
19083         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
19084
19085         * g-trasym.ads: Add documentation on how to do off line symbolic
19086         traceback computation.
19087
19088         * s-fatgen.adb: Add comments for Unaligned_Valid
19089
19090         * stand.ads: Fix typo in comment
19091
19092 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
19093
19094         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
19095
19096 2006-02-06  Roger Sayle  <roger@eyesopen.com>
19097
19098         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
19099
19100 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19101
19102         PR target/25926
19103         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
19104         implementation that calls __main.
19105
19106 2006-01-25  Peter O'Gorman  <peter@pogma.com>
19107
19108         PR bootstrap/25859
19109         * Makefile.in (GCC_LINK): Remove quotes.
19110         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
19111         or $(GCC_LINK).
19112
19113         (powerpc-darwin): Pass -shared-libgcc when building shared library.
19114
19115 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19116
19117         PR ada/24533
19118         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
19119
19120 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19121
19122         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
19123
19124 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
19125
19126         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
19127         needed.
19128
19129 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
19130
19131         * Make-lang.in: Update dependencies
19132
19133 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
19134
19135         * Make-lang.in: Add rule for ada/exp_sel.o
19136
19137 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
19138
19139         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
19140
19141 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
19142
19143         * gnatvsn.ads (Library_Version): Bump to version 4.2
19144         (ASIS_Version_Number): Bumped.
19145
19146 2005-12-09  Doug Rupp  <rupp@adacore.com>
19147
19148         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
19149         Ada bind file prefix on VMS from b$ to b__.
19150         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
19151         __init.
19152
19153         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
19154         Targparm.OpenVMS_On_Target.
19155         (Object_Suffix): Initialize with target object suffix.
19156         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
19157
19158         * butil.adb: Change some Hostparm.OpenVMS checks to
19159         Targparm.OpenVMS_On_Target.
19160
19161         * clean.adb: Change some Hostparm.OpenVMS checks to
19162         Targparm.OpenVMS_On_Target.
19163         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
19164         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
19165         Ada bind file prefix on VMS from b$ to b__.
19166
19167         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
19168         --GCC so that Get_Target_Parameters can find system.ads.
19169         (Gnatlink): Call Get_Target_Parameters in mainline.
19170         Initialize standard packages for Targparm.
19171         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
19172         (Process_Args): Also Check for object files with target object
19173         extension.
19174         (Make_Binder_File_Names): Create with target object extension.
19175         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
19176         to b__.
19177
19178         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
19179         Targparm.OpenVMS_On_Target.
19180         ({declaration},Build_Library,Check_Library): Change Ada bind file
19181         prefix on VMS from b$ to b__.
19182
19183         * osint-b.adb: Change some Hostparm.OpenVMS checks to
19184         Targparm.OpenVMS_On_Target.
19185         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
19186         b__.
19187
19188         * targext.c: New file.
19189
19190         * Makefile.in: add support for vxworks653 builds
19191         (../../vxaddr2line): gnatlink with targext.o.
19192         (TOOLS_LIBS): Move targext.o to precede libgnat.
19193         (init.o, initialize.o): Minor clean up in dependencies.
19194         (GNATLINK_OBJS): Add targparm.o, snames.o
19195         Add rules fo building targext.o and linking it explicitly with all
19196         tools.
19197         Also add targext.o to gnatlib.
19198
19199         * Make-lang.in: Add rules for building targext.o and linking it in
19200         with gnat1 and gnatbind.
19201         Add entry for exp_sel.o.
19202
19203         * osint.adb Change some Hostparm.OpenVMS checks to
19204         Targparm.OpenVMS_On_Target.
19205         (Object_File_Name): Use target object suffix.
19206
19207         * osint.ads (Object_Suffix): Remove, no longer used.
19208         (Target_Object_Suffix): Initialize with target object suffix.
19209
19210         * rident.ads: Add special exception to license.
19211
19212         * targparm.adb (Get_Target_Parameters): Set the value of
19213         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
19214         value.
19215         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
19216         
19217         * targparm.ads: Add special exception to license.
19218
19219         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
19220         function.
19221         (Copy_File): Make sure from file is closed if error on to file
19222         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
19223
19224         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
19225         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
19226
19227         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
19228         target object suffix.
19229
19230 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
19231             Quentin Ochem  <ochem@adacore.com>
19232             Florian Villoing  <villoing@adacore.com>
19233
19234         * a-taster.ads, a-taster.adb: New files.
19235
19236         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
19237         link to the version that does nothing. This way the task termination
19238         routine is not executed twice for the environment task when finishing
19239         because of an unhandled exception.
19240
19241         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
19242         handler because of an unhandled exception.
19243
19244         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
19245         System.Tasking.Utilities instead of that in System.Tasking.Stages.
19246
19247         * s-finimp.adb (initialization code): Modify the soft link for the
19248         finalization of the global list instead of Adafinal.
19249
19250         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
19251         non-tasking version of the soft link for task termination. We do
19252         nothing since if we are using the non-tasking version it
19253         means that the task termination functionality is not used.
19254         (Null_Finalize_Global_List): Add this null version for the procedure
19255         in charge of finalizing the global list for controlled objects.
19256         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
19257         instead for handling run-time termination in a more flexible way.
19258         (Adafinal_NT): This new procedure will take care of finalizing the
19259         global list for controlled objects if needed, but no tasking
19260         finalization.
19261
19262         * s-tarest.adb (Task_Lock): Do not try to lock again the
19263         Global_Task_Lock if we already own it. Otherwise, we get blocked in
19264         some run-time operations.
19265         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
19266         until all nested locks have been released.
19267         (Task_Wrapper): Call the fall-back task termination handler. It
19268         applies to all tasks but the environment task.
19269         (Finalize_Global_Tasks): Add the call for the task termination
19270         procedure for the environment task.
19271         (Task_Wrapper): suppress warnings around declaration of
19272         Secondary_Stack_Address.
19273
19274         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
19275         moved to the Common_ATCB record.
19276         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
19277         Common_ATCB record.
19278         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
19279         Common_ATCB record.
19280
19281         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
19282         Fall_Back_Handler, and Specific_Handler.
19283
19284         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
19285         defined in Ada.Task_Termination, to avoid circular dependencies.
19286         (Termination_Handler): Redefine this type here, alredy defined in
19287         Ada.Task_Termination, for avoiding circular dependencies.
19288         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
19289         for storing task termination handlers. In addition,
19290         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
19291         Common_ATCB because it is used by both the regular and the restricted
19292         run times.
19293         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
19294         Common_ATCB because it is used by both the regular and the restricted
19295         run times.
19296         (Common_ATCB): Added a dynamic task analyzer field.
19297
19298         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
19299         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
19300         (Task_Wrapper): Call the task termination handler. It applies to all
19301         tasks but the environment task.
19302         (Finalize_Global_Tasks): Call the task termination procedure for the
19303         environment task. The call to Finalize_Global_List is now performed
19304         using the soft links mechanism.
19305         (Task_Wrapper): added dynamic stack analysis.
19306
19307         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
19308         potentially blocking operations has been moved from
19309         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
19310         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
19311         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
19312         this run-time check.
19313
19314         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
19315         of task termination procedure.
19316         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
19317         link for the task termination procedure.
19318
19319         * bindusg.adb: (Bindusg): Added documentation for -u option.
19320
19321         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
19322         (Get_Main_C): Add handling of dynamic stack analysis.
19323         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
19324
19325         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
19326         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
19327         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
19328
19329         * opt.ads: Added flags used by dynamic stack measurement.
19330         (Max_Line_Length): Remove (not used anymore)
19331
19332         * s-io.ads, s-io.adb (Standard_Error): new subprogram
19333         (Standart_Output): new subprogram
19334         (Set_Output): new subprogram
19335         (Put): now uses the value of Current_Out to know if the output has to be
19336         send to stderr or stdout.
19337         
19338         * s-stausa.ads: Complete implementation.
19339
19340         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
19341         
19342         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
19343         list of Ada 05 files.
19344         (GNAT Library Units): Add AltiVec files.
19345
19346         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
19347         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
19348         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
19349
19350 2005-12-09  Nicolas Setton  <setton@adacore.com>
19351
19352         * adaint.c (__gnat_locate_regular_file): Return immediately if
19353         file_name is empty.
19354
19355 2005-12-09  Javier Miranda  <miranda@adacore.com>
19356             Hristian Kirtchev  <kirtchev@adacore.com>
19357
19358         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
19359         to the specification because the frontend generates code that uses this
19360         subprogram.
19361         (Set_Interface_Table): Add missing assertion.
19362         Update documentation describing the run-time structure.
19363         (Displace): New subprogram that displaces the pointer to the object
19364         to reference one of its secondary dispatch tables.
19365         (IW_Membership): Modified to use the new table of interfaces.
19366         (Inherit_TSD): Modified to use the new table of interfaces.
19367         (Register_Interface_Tag): Use the additional formal to fill the
19368         contents of the new table of interfaces.
19369         (Set_Interface_Table): New subprogram that stores in the TSD the
19370         pointer to the table of interfaces.
19371         (Set_Offset_To_Top): Use the additional formal to save copy of
19372         the offset value in the table of interfaces.
19373         Update structure of GNAT Primary and Secondary dispatch table diagram.
19374         Add comment section on GNAT dispatch table prologue.
19375         (Offset_To_Signature): Update the constant value of the Signature field.
19376         (Dispatch_Table): Update comment on hidden fields in the prologue.
19377         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
19378         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
19379         the type of formal parameter T to Tag, introduce additional assertions.
19380         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
19381         conversion.
19382         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
19383
19384         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
19385         in all the calls to Expand_Interface_Thunk. Instead of referencing the
19386         record component containing the tag of the secondary dispatch table we
19387         have to use the Offset_To_Top run-time function to get this information;
19388         otherwise if the pointer to the base of the object has been displace
19389         we get a wrong value if we use the 'position attribute.
19390
19391         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
19392         all the calls to Expand_Interface_Thunk.
19393         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
19394         interfaces; hence the call to Set_Interface_Table was clearly wrong.
19395         (Collect_All_Interfaces): Modify the internal subprogram Collect to
19396         ensure that the interfaces implemented by the ancestors are placed
19397         at the header of the generated list.
19398         (Expand_Interface_Conversion): Handle the case in which the displacement
19399         associated with the interface conversion is not statically known. In
19400         this case we generate a call to the new run-time subprogram Displace.
19401         (Make_DT): Generate and fill the new table of interfaces.
19402         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
19403         Get_Tagged_Kind and Set_Tagged_Kind.
19404         (Tagged_Kind): New function that determines the tagged kind of a type
19405         with respect to limitedness and concurrency and returns a reference to
19406         RE_Tagged_Kind.
19407         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
19408         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
19409         primary dispatch table for a type.
19410         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
19411         secondary dispatch table respectively of a tagged type.
19412
19413         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
19414         (Expand_Interface_Conversion): New subprogram to indicate if the
19415         displacement of the type conversion is statically known.
19416         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
19417
19418         * rtsfind.ads (RE_Offset_To_Top): New entity
19419         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
19420         accessible to users.
19421         (Re_Displace): New entity
19422         (RE_Interface_Data): New entity
19423         (RE_Set_Interface_Data): New_Entity
19424         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
19425         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
19426         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
19427         RE_TK_Tagged, RE_TK_Task.
19428
19429         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
19430         Init_Secondary_Tags_Internal to allow its use with interface types and
19431         also to generate the code for the new additional actual required
19432         by Set_Offset_To_Top.
19433         (Build_Init_Statements): In case of components associated with abstract
19434         interface types there is no need to generate a call to its IP.
19435         (Freeze_Record_Type): Generate Select Specific Data tables only for
19436         concurrent types.
19437         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
19438         the bodies and specifications of the predefined primitive operations
19439         dealing with dispatching selects and abort, 'Callable, 'Terminated only
19440         for concurrent types.
19441
19442         * exp_sel.ads, exp_sel.adb: New files.
19443
19444         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
19445         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
19446         properly protected objects and attach handler in the case of the
19447         restricted profile.
19448         Move embeded package Select_Expansion_Utilities into a separate external
19449         package.
19450         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
19451         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
19452         (Build_K, Build_S_Assignment): New subprograms, part of the select
19453         expansion utilities.
19454         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
19455         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
19456         where the trigger is a dispatching procedure of a limited tagged type.
19457
19458 2005-12-09  Olivier Hainque  <hainque@adacore.com>
19459
19460         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
19461         pointer initialization values. Make a SAVE_EXPR instead. Add comments
19462         about the use and expansion of SAVE_EXPRs in the various possible
19463         renaming handling cases.
19464         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
19465         abusing DECL_FCONTEXT.
19466
19467 2005-12-09  Matthew Heaney  <heaney@adacore.com>
19468
19469         * a-convec.adb (Merge): Added assertions to check whether vector params
19470         are sorted.
19471
19472         * a-coinve.adb (Merge): Added assertions to check whether vector params
19473         are sorted.
19474
19475         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
19476         draft.
19477         (Cursor'Read): raises PE
19478
19479         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
19480         to its default value.
19481
19482         * a-cihama.adb: Manually check whether cursor's key and elem are
19483         non-null
19484
19485         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
19486         (Merge): Assert that target and source lists are in order
19487         (Swap): Declare non-const temporaries, to pass to Splice
19488
19489         * a-cdlili.ads: (Splice): Changed param name and param mode
19490
19491         * a-cdlili.adb: (Splice): Changed param name and param mode
19492         (Merge): Assert that target and source lists are in order
19493         (Swap): Declare non-const temporaries, to pass to Splice
19494
19495         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
19496         (Write): declare Stream param as not null
19497
19498         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
19499         an exception message.
19500
19501 2005-12-09  Thomas Quinot  <quinot@adacore.com>
19502             Robert Dewar  <dewar@adacore.com>
19503
19504         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
19505         which is the absolute maximum length we can support.
19506
19507         * frontend.adb: For the processing of configuration pragma files,
19508         remove references to Opt.Max_Line_Length, which is not checked anymore.
19509
19510         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
19511         length.
19512
19513         * scn.adb, scng.adb: 
19514         Always check line length against the absolute supported maximum,
19515         Hostparm.Max_Line_Length.
19516
19517         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
19518         value for the maximum line length is Max_Line_Length (not
19519         Column_Number'Last).
19520         Minor error msg update
19521         (Set_Style_Check_Options): New interface returning error msg
19522         Minor code reorganization (processing for 'M' was out of alpha order)
19523
19524         * switch-c.adb: New interface for Set_Style_Check_Options
19525
19526         * stylesw.ads (Set_Style_Check_Options): New interface returning error
19527         msg.
19528
19529 2005-12-09  Javier Miranda  <miranda@adacore.com>
19530
19531         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
19532         with IP subprogram were only supported if there were limited types.
19533
19534         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
19535         records with IP subprogram were only supported if there were limited
19536         types.
19537
19538 2005-12-09  Olivier Hainque  <hainque@adacore.com>
19539             Eric Botcazou  <ebotcazou@adacore.com>
19540
19541         * trans.c (tree_transform, emit_check): Adjust calls to
19542         build_call_raise, passing the now expected GNAT_NODE argument.
19543
19544         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
19545         source line information than what the current global locus indicates
19546         when appropriate.
19547
19548         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
19549         field has overflowed.
19550         (build_call_raise): Add a GNAT_NODE argument to convey better source
19551         line information than what the current global locus indicates when
19552         appropriate.
19553         (build_component_ref): Adjust call to build_call_raise.
19554
19555 2005-12-09  Pascal Obry  <obry@adacore.com>
19556
19557         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
19558         the iterator is quitting iteration on parent directory.
19559
19560 2005-12-09  Javier Miranda  <miranda@adacore.com>
19561
19562         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
19563         and the assignment to a class-wide object, before the assignment we
19564         generate a run-time check to ensure that the tag of the Target is
19565         covered by the tag of the source.
19566
19567 2005-12-09  Robert Dewar  <dewar@adacore.com>
19568
19569         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
19570         parameter in call to Image_Wide_Character.
19571
19572         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
19573         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
19574         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
19575         annoying FFFE/FFFF inconsistency.
19576
19577 2005-12-09  Robert Dewar  <dewar@adacore.com>
19578             Javier Miranda  <miranda@adacore.com>
19579             Ed Schonberg  <schonberg@adacore.com>
19580
19581         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
19582         of type conversion.
19583         (Find_Interface): New subprogram that given a tagged type and one of its
19584         component associated with the secondary table of an abstract interface
19585         type, return the entity associated with such abstract interface type.
19586         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
19587         base type to create anonymous subtype, because entity may be a locally
19588         declared subtype or generic actual.
19589         (Find_Interface): New subprogram that given a tagged type and one of its
19590         component associated with the secondary table of an abstract interface
19591         type, return the entity associated with such abstract interface type.
19592
19593         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
19594         conversion cannot be handled at compile time. In this case we pass this
19595         information to the expander to generate the appropriate code.
19596
19597 2005-12-09  Robert Dewar  <dewar@adacore.com>
19598             Ed Schonberg  <schonberg@adacore.com>
19599             Gary Dismukes  <dismukes@adacore.com>
19600             Javier Miranda  <miranda@adacore.com>
19601             Hristian Kirtchev  <kirtchev@adacore.com>
19602
19603         * einfo.adb (Itype_Printed): New flag
19604         (Is_Limited_Type): Derived types do not inherit limitedness from
19605         interface progenitors.
19606         (Is_Return_By_Reference_Type): Predicate does not apply to limited
19607         interfaces.
19608
19609         * einfo.ads (Itype_Printed): New flag
19610         Move Is_Wrapper_Package to proper section
19611         Add missing Inline for Is_Volatile
19612
19613         * output.ads, output.adb (Write_Erase_Char): New procedure
19614         (Save/Restore_Output_Buffer): New procedures
19615         (Save/Restore_Output_Buffer): New procedures
19616
19617         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
19618         Add missing support for anonymous access type
19619         (Write_Id): Insert calls to Write_Itype
19620         (Write_Itype): New procedure to output itypes
19621
19622         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
19623         use of "limited" in declaration.
19624
19625         * sinfo.ads, sinfo.adb: 
19626         Formal derived types can carry an explicit "limited" indication.
19627
19628         * sem_ch3.adb: Add with and use of Targparm.
19629         (Create_Component): If Frontend_Layout_On_Target is True and the
19630         copied component does not have a known static Esize, then reset
19631         the size and positional fields of the new component.
19632         (Analyze_Component_Declaration): A limited component is
19633         legal within a protected type that implements an interface.
19634         (Collect_Interfaces): Do not add to the list the interfaces that
19635         are implemented by the ancestors.
19636         (Derived_Type_Declaration): If the parent of the full-view is an
19637         interface perform a transformation of the tree to ensure that it has
19638         the same parent than the partial-view. This simplifies the job of the
19639         expander in order to generate the correct object layout, and it is
19640         needed because the list of interfaces of the full-view can be given in
19641         any order.
19642         (Process_Full_View): The parent of the full-view does not need to be
19643         a descendant of the parent of the partial view if both parents are
19644         interfaces.
19645         (Analyze_Private_Extension_Declaration): If declaration has an explicit
19646         "limited" the parent must be a limited type.
19647         (Build_Derived_Record_Type): A derived type that is explicitly limited
19648         must have limited ancestor and progenitors.
19649         (Build_Derived_Type): Ditto.
19650         (Process_Full_View): Verify that explicit uses of "limited" in partial
19651         and full declarations are consistent.
19652         (Find_Ancestor_Interface): Remove function.
19653         (Collect_Implemented_Interfaces): New procedure used to gather all
19654         implemented interfaces by a type.
19655         (Contain_Interface): New function used to check whether an interface is
19656         present in a list.
19657         (Find_Hidden_Interface): New function used to determine whether two
19658         lists of interfaces constitute a set equality. If not, the first
19659         differing interface is returned.
19660         (Process_Full_View): Improve the check for the "no hidden interface"
19661         rule as defined by AI-396.
19662
19663 2005-12-09  Robert Dewar  <dewar@adacore.com>
19664
19665         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
19666         types, not on record subtypes.
19667         (Freeze_Entity): Code cleanup. Add barrier to the loop
19668         that generates the references for primitive operations. This allows to
19669         remove an unnecessary exception handler.
19670         Code reformatting and comment clean ups.
19671
19672 2005-12-09  Vincent Celier  <celier@adacore.com>
19673
19674         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
19675         If GNAT CHECK is called with a project file, but with no
19676         source on the command line, call gnatcheck with all the compilable
19677         sources of the project.
19678         Take into account the new command Check, for gnatcheck. Treat as for
19679         other ASIS tools: take into account project, specific package Check and
19680         Compiler switches.
19681         For ASIS tools, add the switches in package Compiler for
19682         the invocation of the compiler.
19683
19684         * prj-attr.adb: Add package Check and its attributes
19685
19686         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
19687
19688         * vms_conv.adb (Initialize): Change Params of command Check to
19689         unlimited files.
19690         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
19691         Add data for new command Check
19692
19693         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
19694         ELIM.
19695         Add qualifiers for Check command options
19696         (Command_Type): New command Check
19697
19698 2005-12-09  Thomas Quinot  <quinot@adacore.com>
19699
19700         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
19701         command line switch overruns the output buffer.
19702
19703 2005-12-09  Robert Dewar  <dewar@adacore.com>
19704
19705         * sem_prag.adb: Processing for new pragma Complete_Representation
19706         (Analyze_Pragma, case Debug): Implement two argument form.
19707
19708         * par-prag.adb: Entry for new pragma Complete_Representation
19709         (Prag, case Debug): Recognize two argument form of pragma Debug
19710         New interface for Set_Style_Check_Options.
19711
19712         * sem_ch13.adb: Implement new pragma Complete_Representation.
19713
19714         * snames.adb, snames.ads, snames.h: Entry for new pragma
19715         Complete_Representation.
19716
19717 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
19718
19719         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
19720         available user-specified stream attributes on limited parameters to
19721         also test the type directly rather than only its underlying type (for
19722         Ada 95) and, in the case of Ada 2005, to check that the user-specified
19723         attributes are visible at the point of the subprogram declaration.
19724         For Ada 2005, the error message is modified to indicate that the
19725         type's stream attributes must be visible (again, only for -gnat05).
19726
19727 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
19728
19729         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
19730         anonymous access types.
19731
19732         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
19733         matching of anonymous access types and anonymous access to subprogram
19734         types. 'R'M 4.9.1 (2/2).
19735
19736 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
19737
19738         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
19739         rule prematurely when operands are universal, remaining ambiguities
19740         will be removed during resolution.
19741         Code cleanup.
19742
19743         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
19744         that are Ada 2005 functions.
19745         (Has_Abstract_Interpretation): Subsidiary to
19746         Remove_Conversions, to remove ambiguities caused by abstract operations
19747         on numeric types when operands are universal.
19748
19749 2005-12-09  Robert Dewar  <dewar@adacore.com>
19750
19751         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
19752         for case where spec is categorized.
19753
19754 2005-12-09  Javier Miranda  <miranda@adacore.com>
19755
19756         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
19757         types use the corresponding record type. This was not needed before
19758         the implementation of Ada 2005 synchronized types because
19759         concurrent types were never tagged types in Ada 95.
19760
19761 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
19762
19763         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
19764         first subtype of the type of the expression to verify that it is a
19765         legal Time type.
19766
19767 2005-12-09  Robert Dewar  <dewar@adacore.com>
19768
19769         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
19770         decoded names.
19771
19772 2005-12-09  Quentin Ochem  <ochem@adacore.com>
19773             Robert Dewar  <dewar@adacore.com>
19774             Ed Falis  <falis@adacore.com>
19775             Florian Villoing  <villoing@adacore.com>
19776             Thomas Quinot  <quinot@adacore.com>
19777             Arnaud Charlet  <charlet@adacore.com>
19778
19779         * gnat_ugn.texi: Created section "Stack Related Tools"
19780         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
19781         "Stack Related Tools"
19782         Added subsection "Static Stack Usage Analysis"
19783         Added subsection "Dynamic Stack Usage Analysis"
19784         Include documentation of itypes in sprint listing (-gnatG)
19785         Documented gnatbind -D switch (default sec stack size for fixed sec
19786         stacks).
19787         Added Interrupt_State and Persistent_BSS to list of configuration
19788         pragmas.
19789         Add missing doc for maximum value of nnn in -gnatyMnnn
19790
19791         * gnat_rm.texi: Document the AltiVec binding.
19792         Add documentation for pragma Complete_Representation
19793         Shortened an overly long line (> 79 chars)
19794         Clarify documentation of unchecked conversion in implementation
19795         defined cases.
19796         Document two argument form of pragma Debug
19797
19798         * types.ads (Column_Number): Update documentation.
19799
19800         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
19801         library level Finalize_Storage_Only objects (these are not attached to
19802         any finalization list).
19803
19804         * system-mingw.ads: (Underlying_Priorities): Update comment.
19805
19806 2005-12-09  Robert Dewar  <dewar@adacore.com>
19807
19808         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
19809         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
19810         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
19811         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
19812         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
19813         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
19814         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
19815         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
19816         reformatting.
19817
19818 2005-12-09  Robert Dewar  <dewar@adacore.com>
19819
19820         * s-vaflop-vms-alpha.adb: (Ne_F): New function
19821         (Ne_G): New function
19822
19823         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
19824         for tag assignment.
19825         (Rewrite_Comparison): Handle case where operation is not a comparison
19826         and ignore, and also handle type conversion case.
19827
19828 2005-12-09  Thomas Quinot  <quinot@adacore.com>
19829
19830         * exp_aggr.ads: Fix typo in comment.
19831         ???-mark Convert_Aggr_In_Assignment as needing documentation.
19832
19833 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
19834
19835         * layout.adb: Replace various uses of byte by storage unit throughout.
19836         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
19837         static size, convert to storage units before returning, to conform to
19838         spec.
19839
19840 2005-12-09  Matthew Gingell  <gingell@adacore.com>
19841
19842         * g-exctra.ads: Fix typo in comment.
19843
19844 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19845
19846         * utils.c: Minor reformatting.
19847
19848 2005-12-09  Robert Dewar  <dewar@adacore.com>
19849
19850         * g-soccon.ads: 
19851         Further comment fixes to make the status of the default file clear
19852
19853         * s-bitops.adb: Clarify comment for Bits_Array
19854
19855 2005-12-07  Rafael ï¿½vila de Esp�ndola  <rafael.espindola@gmail.com>
19856
19857         * Make-lang.in (ada.install-normal): Remove.
19858
19859 2005-12-07  Rafael ï¿½vila de Esp�ndola  <rafael.espindola@gmail.com>
19860
19861         * Make-lang.in: Remove all dependencies on s-gtype.
19862
19863 2005-12-05  Richard Guenther  <rguenther@suse.de>
19864
19865         * utils.c (convert): Use fold_convert where appropriate.
19866
19867 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
19868
19869         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
19870         a period is meant.
19871
19872 2005-12-02  Richard Guenther  <rguenther@suse.de>
19873
19874         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
19875
19876 2005-12-01  Roger Sayle  <roger@eyesopen.com>
19877
19878         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
19879         nodes.
19880
19881 2005-11-23  Laurent Guerby  <laurent@guerby.net>
19882
19883         * mlib-prj.adb (Build_Library): Initialize Delete.
19884
19885 2005-11-21  Joel Sherrill  <joel.sherrill@oarcorp.com>
19886
19887         * socket.c: Add extern int h_errno for rtems since networking header
19888         files are not available at this point in a tool bootstrap. Newlib
19889         only has basic C library header files.
19890
19891 2005-11-19  Richard Guenther  <rguenther@suse.de>
19892         Roger Sayle  <roger@eyesopen.com>
19893
19894         PR ada/23717
19895         * misc.c (internal_error_function): Don't use vsprintf to format
19896         the error message text, instead use pp_format_text and the new
19897         pretty printer APIs.  This allows handling of %qs, %w, etc.
19898
19899 2005-11-18  Laurent Guerby  <laurent@guerby.net>
19900
19901         PR ada/24857
19902         * Makefile.in: Use s-auxdec-empty for RTEMS.
19903
19904 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19905
19906         PR ada/22333
19907         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
19908         a temporary if taking the address of something that is neither
19909         reference, declaration, or constant, since the gimplifier
19910         can't handle that case.
19911
19912 2005-11-17  Laurent Guerby  <laurent@guerby.net>
19913
19914         PR ada/24857
19915         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
19916
19917 2005-11-16  Richard Guenther  <rguenther@suse.de>
19918
19919         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
19920
19921 2005-11-16  Joel Sherrill  <joel.sherrill@oarcorp.com>
19922
19923         PR ada/24855
19924         * raise-gcc.c: Add missing stdarg.h include.
19925  
19926 2005-11-16  Richard Guenther  <rguenther@suse.de>
19927
19928         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
19929         (ada/misc.o): Likewise.
19930
19931 2005-11-14  Thomas Quinot  <quinot@adacore.com>
19932
19933         * g-soccon.ads: Minor reformatting. Update comments.
19934
19935         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
19936         gain visibility on the declaration of struct timeval.
19937
19938         * g-soccon-freebsd.ads,
19939         g-soccon-darwin.ads,
19940         g-soccon-tru64.ads,
19941         g-soccon-aix.ads,
19942         g-soccon-irix.ads,
19943         g-soccon-hpux.ads,
19944         g-soccon-solaris.ads,
19945         g-soccon-vms.ads,
19946         g-soccon-mingw.ads,
19947         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
19948
19949         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
19950         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
19951         g-soccon-linux-x86.ads: New files.
19952
19953         * g-socthi-mingw.adb: 
19954         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
19955
19956         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
19957         (time_t, suseconds_t): New types constructed to match the tv_sec
19958         and tv_usec fields of C struct timeval.
19959         (Timeval): Construct structure in terms of the new types.
19960         (Host_Errno): New function (imported from socket.c), returns last hosts
19961         database error.
19962
19963         * g-socthi-vxworks.adb:  Add error handling circuitry.
19964
19965         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
19966         components of struct timeval.
19967         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
19968         (Check_Selector): In error conditions, clear internal socket sets to
19969         avoid a memory leak.
19970         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
19971         Send_Timeout, Receive_Timeout.
19972
19973         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
19974         the tv_sec and tv_usec fields of C struct timeval.
19975         (Timeval): Construct structure in terms of the new types.
19976         (Host_Errno): New function (imported from socket.c), returns last hosts
19977         database error.
19978
19979         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
19980         hosts database last error code.
19981
19982         * gen-soccon.c: Complete value expansion should not be performed on
19983         TARGET, as it has the form of a math expression, and some components
19984         may be platform-defined macros.
19985         For VxWorks, generate the OK and ERROR values.
19986         New constants giving the sizes of the components of C struct timeval.
19987
19988 2005-11-14  Robert Dewar  <dewar@adacore.com>
19989             Ed Schonberg  <schonberg@adacore.com>
19990
19991         PR ada/18434
19992         * types.ads: Include All_Checks in Suppress_Array
19993
19994         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
19995         not(a=b), since we no longer do this rewriting, and hence it is not
19996         needed.
19997         (Elaboration_Checks_Suppressed): Add special casing to
19998         deal with different cases of static and dynamic elaboration checks (all
19999         checks does not count in the first case, but does in the second).
20000         (Expr_Known_Valid): Do not assume that the result of any arbitrary
20001         function call is valid, since this is not the case.
20002         (Ensure_Valid): Do not apply validity check to a real literal
20003         in a universal or fixed context
20004
20005         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
20006         elementary types using the operator in standard. It is cleaner not to
20007         modify the programmers intent, especially in the case of floating-point.
20008         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
20009         it did not matter because we always rewrote a/=b to not(a=b).
20010         (Expand_Allocator_Expression): For an allocator expression whose nominal
20011         subtype is an unconstrained packed type, convert the expression to its
20012         actual constrained subtype.
20013         Implement warning for <= or >= where < or > not possible
20014         Fix to Vax_Float tests (too early in many routines, causing premature
20015         Vax_Float expansions.
20016
20017         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
20018         to be used with packages and generic packages as well as with
20019         subprograms.
20020         (Suppress): Set All_Checks, but not Elaboration_Check, for case
20021         of pragma Suppress (All_Checks)
20022         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
20023         a string literal for precise control over warnings.
20024         Avoid raise of pragma in case of unrecognized pragma and just return
20025         instead.
20026
20027         * sem_prag.ads: Minor reformatting
20028
20029         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
20030         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
20031         Switch. Do not handle any exception.
20032         Include -gnatwx as part of -gnatg (warn on redundant parens)
20033         Allow optional = after -gnatm
20034         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
20035         longer sets Elaboration_Checks.
20036         Code to set warning mode moved to Sem_Warn
20037         so that it can be shared by pragma processing.
20038
20039         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
20040         statement.
20041
20042         * s-taprop-solaris.adb: 
20043         Change some <= to =, to avoid new warning
20044
20045         * a-exexda.adb, prj-proc.adb: 
20046         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
20047         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
20048
20049 2005-11-14  Robert Dewar  <dewar@adacore.com>
20050
20051         * exp_vfpt.adb: Handle /= case
20052         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
20053         so that we do not get duplicate scaling for fixed point conversions.
20054
20055         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
20056
20057 2005-11-14  Matthew Gingell  <gingell@adacore.com>
20058
20059         * system-lynxos-ppc.ads, system-lynxos-x86.ads: 
20060         Increase default priority on Lynx from 15 to 17, and meet the Ada
20061         requirement that Default_Priority be ((Priority'First +
20062         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
20063
20064 2005-11-14  Vincent Celier  <celier@adacore.com>
20065
20066         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
20067         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
20068         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
20069         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
20070         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
20071         mlib-tgt-lynxos.adb (DLL_Prefix): New function
20072
20073 2005-11-14  Doug Rupp  <rupp@adacore.com>
20074
20075         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
20076         private part.
20077
20078 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
20079
20080         * s-traces-default.adb, s-trafor-default.ads,
20081         s-tratas-default.adb: Fix compilation errors.
20082
20083 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
20084
20085         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
20086         raising the exception so the memory used is freed.
20087
20088 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
20089
20090         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
20091         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
20092         (convert_address): Update comments and list of platforms using this.
20093
20094         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
20095         no longer used.
20096
20097 2005-11-14  Pascal Obry  <obry@adacore.com>
20098             Vincent Celier  <celier@adacore.com>
20099
20100         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
20101         GNAT.Command_Line.
20102
20103         * memroot.adb: Remove redundant with/use clause on
20104         System.Storage_Elements.
20105
20106 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
20107
20108         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
20109         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
20110         related code to a-exexpr.adb
20111         (Save_Occurrence_And_Private): Move GCC EH related code to
20112         a-exexpr-gcc.adb
20113         (Raise_Current_Excep): Add new variable Id with pragma
20114         volatile, to ensure that the variable lives on stack.
20115
20116         * a-exexpr-gcc.adb, raise-gcc.c: New file.
20117
20118         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
20119         from a-except.adb.
20120         Move GCC EH related code to a-exexpr-gcc.adb
20121
20122         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
20123         64-bit Solaris
20124         Split the Linux version of g-soccon into separate variants for 32 and 64
20125         bit platforms.
20126         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
20127         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
20128         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
20129         of host variable $(RANLIB_FLAGS).
20130         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
20131         Code clean up: remove unused/obsolete targets.
20132         (EH_MECHANISM): New variable introduced to differenciate between the
20133         two EH mechanisms statically.
20134         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
20135         (LIBGNAT_OBJS): Add raise-gcc.o
20136         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
20137         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
20138         supports VxWorks 6 RTPs.
20139         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
20140         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
20141
20142         * raise.c: Move all GCC EH-related routines to raise-gcc.c
20143
20144 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
20145
20146         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
20147         deferral level, when abort is not allowed, to a later stage (the
20148         Task_Wrapper).
20149         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
20150         it will not get changed by the generated code. It was previously done
20151         in Create_Task.
20152
20153 2005-11-14  Thomas Quinot  <quinot@adacore.com>
20154             Olivier Hainque  <hainque@adacore.com>
20155             Eric Botcazou  <ebotcazou@adacore.com>
20156
20157         * decl.c:
20158         Factor common code to build a storage type for an unconstrained object
20159         from a fat or thin pointer type and a constrained object type.
20160         (annotate_value): Handle BIT_AND_EXPR.
20161         (annotate_rep): Don't restrict the back annotation of inherited
20162         components to the type_annotate_only case.
20163         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
20164         we are not defining the type.
20165         <E_Record_Type>: Likewise.
20166         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
20167         to get advantage of the new maybe_stabilize_reference interface, to
20168         ensure that what we reference is indeed stabilized instead of relying
20169         on assumptions on what the stabilizer does.
20170         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
20171         type imported through a limited_with clause, use its non-limited view.
20172         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
20173         differentiation.
20174         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
20175         of #if sections + explicit comparisons of convention identifiers.
20176         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
20177         before early-returning for certain types when code generation is
20178         disabled.
20179         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
20180         nullification of gnu_expr we do for objects with address clause and
20181         that we are not defining.
20182         (elaborate_expression_1): Do not create constants when creating
20183         variables needed by the debug info: the dwarf2 writer considers that
20184         CONST_DECLs is used only to represent enumeration constants, and emits
20185         nothing for them.
20186         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
20187         object with an address clause into an indirect reference, drop the
20188         initializing expression.
20189         Include "expr.h".
20190         (STACK_CHECK_BUILTIN): Delete.
20191         (STACK_CHECK_PROBE_INTERVAL): Likewise.
20192         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
20193         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
20194         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
20195         corresponding to the renamed object as ignored for debugging purposes.
20196
20197         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
20198         related): For a prefix that is a dereference of a fat or thin pointer,
20199         if there is an actual subtype provided by the front-end, use that
20200         subtype to build an actual type with bounds template.
20201         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
20202         is provided by the front-end, use that subtype to compute the size of
20203         the deallocated object.
20204         (gnat_to_gnu): When adding a statement into an elaboration procedure,
20205         check for a potential violation of a No_Elaboration_Code restriction.
20206         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
20207         with extra arguments to control whether to recurse through non-values
20208         and to let the caller know if the stabilization has succeeded.
20209         (gnat_stabilize_reference): Now a simple wrapper around
20210         maybe_stabilize, for common uses without restriction on lvalues and
20211         without need to check for the success indication.
20212         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
20213         pass false instead of 0 as the FORCE argument which is a bool.
20214         (Identifier_to_gnu): Remove checks ensuring that an renamed object
20215         attached to a renaming pointer has been properly stabilized, as no such
20216         object is attached otherwise.
20217         (call_to_gnu): Invoke create_var_decl to create the temporary when the
20218         function uses the "target pointer" return mechanism.
20219         Reinstate conversion of the actual to the type of the formal
20220         parameter before any other specific treatment based on the passing
20221         mechanism. This turns out to be necessary in order for PLACEHOLDER
20222         substitution to work properly when the latter type is unconstrained.
20223
20224         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
20225         common pattern.
20226         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
20227         with extra arguments to control whether to recurse through non-values
20228         and to let the caller know if the stabilization has succeeded.
20229
20230         * utils2.c (gnat_build_constructor): Only sort the fields for possible
20231         static output of record constructor if all the components are constant.
20232         (gnat_build_constructor): For a record type, sort the list of field
20233         initializers in increasing bit position order.
20234         Factor common code to build a storage type for an unconstrained object
20235         from a fat or thin pointer type and a constrained object type.
20236         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
20237         types variants, and process special cases of VIEW_CONVERT expressions
20238         as their NOP_EXPR counterpart to ensure we get to the
20239         CORRESPONDING_VARs associated with CONST_DECls.
20240         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
20241         on the right-hand side.
20242
20243         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
20244         a common pattern.
20245         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
20246         are converting back to its original type.
20247         (convert) <JM input>: Fallthrough regular conversion code instead of
20248         extracting the object if converting to a type variant.
20249         (create_var_decl): When a variable has an initializer requiring code
20250         generation and we are at the top level, check for a potential violation
20251         of a No_Elaboration_Code restriction.
20252         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
20253         SIZE and SIZE_UNIT which we need for later back-annotations.
20254         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
20255         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
20256         is an unchecked union.
20257         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
20258         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
20259         main variant, just replace the VIEW_CONVERT_EXPR.
20260         <UNION_TYPE>: Revert 2005-03-02 change.
20261
20262         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
20263
20264         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
20265
20266 2005-11-14  Matthew Heaney  <heaney@adacore.com>
20267
20268         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
20269         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
20270         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
20271         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
20272         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
20273         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 
20274         Compiles against the spec for ordered maps described in sections
20275         A.18.6 of the most recent (August 2005) AI-302 draft.
20276
20277 2005-11-14  Olivier Hainque  <hainque@adacore.com>
20278
20279         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
20280         to ensure bias adjustments take place when need be and to prevent
20281         occurrences of intermediate overflows.
20282
20283 2005-11-14  Matthew Gingell  <gingell@adacore.com>
20284             Olivier Hainque  <hainque@adacore.com>
20285
20286         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
20287         ia64 HP-UX.
20288
20289         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
20290         tracebacks on ia64 HP-UX and provide explanatory comment.
20291         Enable backtraces on ia64 GNU/Linux.
20292         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
20293         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
20294
20295 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
20296             Javier Miranda  <miranda@adacore.com>
20297
20298         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
20299         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
20300         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
20301         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
20302
20303         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
20304         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
20305         assertions).
20306
20307         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
20308         subprogram that generates the external name associated with a
20309         secondary dispatch table.
20310         (Get_Secondary_DT_External_Name): New subprogram that generates the
20311         external name associated with a secondary dispatch table.
20312
20313 2005-11-14  Emmanuel Briot  <briot@adacore.com>
20314
20315         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
20316         line in the ALI file to include both an instantiation reference, and a
20317         returned value.
20318
20319 2005-11-14  Vincent Celier  <celier@adacore.com>
20320
20321         * clean.adb (Check_Project): Look for Ada code in extending project,
20322         even if Ada is not specified as a language.
20323         Use new function DLL_Prefix for DLL_Name
20324         (Clean_Interface_Copy_Directory): New procedure
20325         (Clean_Library_Directory): New procedure
20326         (Clean_Directory): Remove procedure, no longer used
20327         (Clean_Project): Do not delete any file in an externally built project
20328
20329         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
20330         directory of an extending project, even when there are no Ada source
20331         present.
20332         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
20333         (Set_Ada_Paths.Add.Recursive_Add): Ditto
20334
20335         * mlib-prj.adb (Check_Library): For all library projects, get the
20336         library file timestamp.
20337         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
20338         (Build_Library): Use new function DLL_Prefix for the DLL_Name
20339         (Clean): Remove procedure, no longer used
20340         (Ultimate_Extension_Of): New function
20341         (Build_Library): When cleaning the library directory, only remove an
20342         existing library file and any ALI file of a source of the project.
20343         When cleaning the interface copy directory, remove any source that
20344         could be a source of the project.
20345
20346         * prj.ads, prj.adb (Project_Empty): Add values of new components
20347         Library_TS and All_Imported_Projects.
20348         (Project_Empty): Add values for new components of Project_Data:
20349         Library_ALI_Dir and Display_Library_ALI_Dir
20350
20351         * prj-attr.adb: New project level attribute name Library_ALI_Dir
20352
20353         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
20354         attribute Library_ALI_Dir.
20355         (Check_Library_Attributes): The library directory cannot be the same as
20356         any source directory of the project tree.
20357         (Check_Stand_Alone_Library): The interface copy directory cannot be
20358         the same as any source directory of the project tree.
20359
20360         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
20361         all temporary files.
20362
20363 2005-11-14  Robert Dewar  <dewar@adacore.com>
20364             Ed Schonberg  <schonberg@adacore.com>
20365
20366         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
20367         (Check_Elab_Call): A call within a protected body is never an
20368         elaboration call, and does not require checking.
20369         (Same_Elaboration_Scope): Take into account protected types for both
20370         entities.
20371         (Activate_Elaborate_All_Desirable): New procedure
20372
20373         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
20374         desirable
20375
20376         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
20377         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
20378
20379         * lib-writ.ads, lib-writ.adb: 
20380         Implement new AD/ED for Elaborate_All/Elaborate desirable
20381         Use new Elaborate_All_Desirable flag in N_With_Clause node
20382
20383         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
20384         N_Free_Statement nodes.
20385         Define new class N_Subprogram_Instantiation
20386         Add Elaborate_Desirable flag to N_With_Clause node
20387         Add N_Delay_Statement (covering two kinds of delay)
20388
20389         * debug.adb: Introduce d.f flag for compiler
20390         Add -da switch for binder
20391
20392 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
20393             Cyrille Comar  <comar@adacore.com>
20394
20395         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
20396         for task component, in the case of a limited aggregate. The enclosed
20397         object declaration will create it earlier. Otherwise, in the case of a
20398         nested aggregate, the object may appear in the wrong scope.
20399         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
20400         (Gen_Assign): If the component being assigned is an array type and the
20401         expression is itself an aggregate, wrap the assignment in a block to
20402         force finalization actions on the temporary created for each row of the
20403         enclosing object.
20404         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
20405         structures are initialized after all discriminants are set so that
20406         they can be accessed even when their offset is dynamic.
20407
20408 2005-11-14  Robert Dewar  <dewar@adacore.com>
20409             Hristian Kirtchev  <kirtchev@adacore.com>
20410
20411         * sem_attr.adb: Implement Machine_Rounding attribute
20412         (Analyze_Access_Attribute): The access attribute may appear within an
20413         aggregate that has been expanded into a loop.
20414         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
20415         'Terminated whenever the prefix is of a task interface class-wide type.
20416         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
20417         the prefix is of a task interface class-wide type.
20418
20419         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
20420         to avoid warnings.
20421
20422         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
20423         Remove pragma Inline for [Unaligned_]Valid.
20424         Add comments that Valid routines do not work for Vax_Float
20425
20426         * exp_attr.adb: Implement Machine_Rounding attribute
20427
20428         * snames.h: Add entry for Machine_Rounding attribute
20429
20430 2005-11-14  Javier Miranda  <miranda@adacore.com>
20431             Robert Dewar  <dewar@adacore.com>
20432             Hristian Kirtchev  <kirtchev@adacore.com>
20433
20434         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
20435         and related): For a prefix that is an explicit dereference of an
20436         access to unconstrained packed array type, annotate the dereference
20437         with an actual subtype so GIGI can make a correct size computation.
20438         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
20439         'Unrestricted_Access, if the designated type is an interface we
20440         add a type conversion to force the displacement of the pointer
20441         to the secondary dispatch table.
20442         Use Universal_Real instead of Long_Long_Float when we need a high
20443         precision float type for the generated code (prevents gratuitous
20444         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
20445         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
20446         'Terminated for task interface class-wide objects. Generate a call to
20447         the predefined dispatching routine used to retrieve the _task_id from
20448         a task corresponding record.
20449         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
20450
20451         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
20452         (Check_Dispatching_Operation): Protect the frontend againts
20453         previously detected errors.
20454
20455         * Makefile.rtl: Add new instantiations of system.fat_gen
20456
20457         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
20458         Change name of instantiated package for better consistency
20459         with newly added system.fat_gen instantiations.
20460
20461         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
20462         s-fvagfl.ads: New files.
20463
20464 2005-11-14  Cyrille Comar  <comar@adacore.com>
20465             Thomas Quinot  <quinot@adacore.com>
20466
20467         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
20468         assignment of a value of a tagged type that has been rewritten to a
20469         block statement, it is known by construction that no checks are
20470         necessary for the statements within the block: analyze it with checks
20471         suppressed.
20472         (Expand_N_If_Statement): When killing a dead then-branch in an
20473         if-statement that has elsif_parts, recompute the Current_Value node
20474         for any entity whose value is known from the condition of the first
20475         elsif_part.
20476         (Expand_N_Return_Statement): When returning a mutable record, convert
20477         the return value into its actual subtype in order to help the backend
20478         to return the actual size instead of the maximum. This is another
20479         aftermath of not returning mutable records on the sec-stack anymore.
20480
20481         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
20482         handling of error msg for suspicious reverse range iteration.
20483         (Check_Possible_Current_Value_Condition): Move declaration from body to
20484         spec, to allow this subprogram to be called from exp_ch5.
20485
20486 2005-11-14  Thomas Quinot  <quinot@adacore.com>
20487
20488         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
20489         generate a set of nested array aggregates instead of a single flat
20490         aggregate for multi-dimensional arrays.
20491
20492 2005-11-14  Pascal Obry  <obry@adacore.com>
20493
20494         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
20495         by spawnve is a process handle, no need to convert. Add a parameter
20496         close to control wether the process handle must be closed.
20497         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
20498         a process handle, not need to convert.
20499         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
20500
20501         * g-expect.adb: (Kill): Document the new close parameter.
20502         (Close): Do not release the process handle in the kill there as
20503         waitpid() is using it.
20504         (Send_Signal): Release the process handle.
20505
20506 2005-11-14  Robert Dewar  <dewar@adacore.com>
20507
20508         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
20509         need a high precision float type for the generated code (prevents
20510         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
20511         used).
20512
20513         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
20514         need a high precision float type for the generated code (prevents
20515         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
20516         used).
20517         (Expand_Width_Attribute): In configurable run-time, the attribute is not
20518         allowed on non-static enumeration subtypes. Force a load error to emit
20519         the correct diagnostic.
20520
20521 2005-11-14  Thomas Quinot  <quinot@adacore.com>
20522             Robert Dewar  <dewar@adacore.com>
20523             Ed Schonberg  <schonberg@adacore.com>
20524
20525         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
20526         subtype to compute the size of the designated object at run-time,
20527         create such a subtype and store it in the Actual_Designated_Subtype
20528         attribute of the N_Free_Statement.
20529         Generate itype for classwide designated object in both cases of
20530         user-specified storage pool: specific and class-wide, not only in the
20531         specific case.
20532         Raise CE when trying to set a not null access type object to null.
20533         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
20534         an explicit loop, because freeze nodes make its position variable.
20535
20536         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
20537         null object.
20538
20539 2005-11-14  Javier Miranda  <miranda@adacore.com>
20540
20541         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
20542         Build_Stream_Procedure): Add the null-excluding attribute to the first
20543         formal.
20544         This has no semantic meaning under Ada95 mode but it is a
20545         requirement under Ada05 mode.
20546
20547         * par-ch3.adb (P_Access_Definition): Addition of warning message if
20548         the null exclusion is used under Ada95 mode
20549         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
20550         (P_Access_Definition): Remove assertion that forbids the use of
20551         the null-exclusion feature in Ada95.
20552
20553 2005-11-14  Robert Dewar  <dewar@adacore.com>
20554
20555         * impunit.adb: Exclude container helper units not intended for use by
20556         users.
20557
20558 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
20559
20560         * freeze.adb (Freeze_Entity): For an access formal that is an access
20561         to subprogram, freeze the anonymous subprogram type at the same time,
20562         to prevent later freezing in the wrong scope, such as the enclosing
20563         subprogram body.
20564         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
20565         subprogram whenever available.
20566
20567 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
20568
20569         PR ada/23732
20570         * gnatvsn.ads (Library_Version): Bump to 4.1
20571
20572 2005-11-14  Robert Dewar  <dewar@adacore.com>
20573
20574         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
20575         Storage_Offset to avoid wrap around causing invalid results.
20576
20577 2005-11-14  Pascal Obry  <obry@adacore.com>
20578
20579         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
20580         cross-compiler.
20581         (Scan_Bind_Arg): Fail with an error message if -M option is used
20582         on a native compiler.
20583
20584 2005-11-14  Robert Dewar  <dewar@adacore.com>
20585             Vincent Celier  <celier@adacore.com>
20586
20587         * gprep.adb: Implement -C switch to scan comments
20588
20589         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
20590
20591         * scans.ads: Comment updates (including new use of Tok_Comment in
20592         preprocessing)
20593
20594         * opt.ads: Add documentation for flags that are used by gprmake,
20595         currently and in the next version of gprmake.
20596         (Verbosity_Level): New variable
20597         Add Replace_In_Comments switch
20598
20599         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
20600         and -vm.
20601         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
20602
20603 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
20604
20605         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
20606         message, friendlier.
20607
20608 2005-11-14  Robert Dewar  <dewar@adacore.com>
20609
20610         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
20611
20612 2005-11-14  Doug Rupp  <rupp@adacore.com>
20613
20614         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
20615
20616 2005-11-14  Robert Dewar  <dewar@adacore.com>
20617
20618         * interfac.ads: Change declarations of IEEE float types so that we no
20619         longer need a separate version of this package for VMS.
20620
20621 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
20622
20623         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
20624         internal entity created for the declaration of a child subprogram body
20625         with no spec as coming from source, to generate proper cross-reference
20626         information.
20627
20628 2005-11-14  Vincent Celier  <celier@adacore.com>
20629
20630         * make.adb (Compile_Sources): Change verbose message to minimum
20631         verbosity level High for "is in an Ada library", "is a read-only
20632         library" and "is an internal library",
20633         (Create_Binder_Mapping_File): Path name of ALI file for library project
20634         must include the library directory, not the object directory.
20635         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
20636         for new switches -vl, -vm and -vh.
20637         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
20638         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
20639         (Compile_Sources): Do not attempt to compile if an ALI file is missing
20640         in a project that is externally built.
20641         (Compute_All_Imported_Projects): New procedure
20642         (Gnatmake): Check if importing libraries should be regenerated because
20643         at least an imported library is more recent.
20644         (Initialize): For each project compute the list of the projects it
20645         imports directly or indirectly.
20646         (Add_Library_Search_Dir): New procedure, used in place of
20647         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
20648         put in the search paths.
20649         (Add_Source_Search_Dir): New procedure, used in place of
20650         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
20651         put in the search paths.
20652         (Mark_Directory): Resolve the absolute path the directory before marking
20653         it.
20654
20655         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
20656         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
20657         Switch. Do not handle any exception.
20658         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
20659         so that the switch is recognized as valid.
20660         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
20661
20662 2005-11-14  GNAT Script  <nobody@adacore.com>
20663
20664         * Make-lang.in: Makefile automatically updated
20665
20666 2005-11-14  Pascal Obry  <obry@adacore.com>
20667
20668         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
20669         used.
20670         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
20671         In both cases the last argument was dropped.
20672
20673 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
20674
20675         * namet.h: (Column_Numbe): New type.
20676         (Get_Column_Number): Define to sinput__get_column_number.
20677         (Instantiation): Define to sinput__instantiation.
20678         (Get_Column_Number): Declare.
20679         (Instantiation): Likewise.
20680
20681 2005-11-14  Robert Dewar  <dewar@adacore.com>
20682
20683         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
20684         syntax, which could cause compiler hangs.
20685
20686 2005-11-14  Vincent Celier  <celier@adacore.com>
20687
20688         * prj-ext.adb: Take into account new environment variable
20689         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
20690         are defined.
20691         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
20692         normalize its path name, making it absolute and resolving symbolic
20693         links, and replace the original if resolved path is different.
20694
20695 2005-11-14  Vincent Celier  <celier@adacore.com>
20696
20697         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
20698         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
20699
20700 2005-11-14  Emmanuel Briot  <briot@adacore.com>
20701
20702         * prj-pp.adb (Print): Do not output the with statement if the
20703         associated name is empty, which happens for virtual extending projects.
20704         (Print): Preserve the "extends all" attribute when printing the project.
20705
20706         * prj-tree.ads (String_Value_Of): Add comment about returned value for
20707         a virtual extending project.
20708
20709 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
20710
20711         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
20712         rhs of an assignment even if the type is unconstrained, when the
20713         context is non-expanding.
20714         In an inlined body, if the context type is private,
20715         resolve with its full view, which must be a composite type.
20716
20717 2005-11-14  Robert Dewar  <dewar@adacore.com>
20718             Ed Schonberg  <schonberg@adacore.com>
20719
20720         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
20721         Do not give obsolescent warning on with of subprogram (since we
20722         diagnose calls)
20723         (Analyze_With_Clause): Add test for obsolescent package
20724         (Install_Context_Clauses): If the unit is the body of a child unit, do
20725         not install twice the private declarations of the parents, to prevent
20726         circular lists of Use_Clauses in a parent.
20727         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
20728         compiling body of child unit.
20729         Use new class N_Subprogram_Instantiation
20730         (Expand_With_Clause): If this is a private with_clause for a child unit,
20731         appearing in the context of a package declaration, then the implicit
20732         with_clauses generated for parent units are private as well.
20733         (License_Check): Do not generate message if with'ed unit is internal
20734
20735 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
20736             Ed Schonberg  <schonberg@adacore.com>
20737             Thomas Quinot  <quinot@adacore.com>
20738
20739         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
20740         names are internal, because they will not have a corresponding partner
20741         in the actual package.
20742         (Analyze_Formal_Package): Move the setting of the formal package spec's
20743         Generic_Parent field so that it occurs prior to analyzing the package,
20744         to allow proper operation of Install_Parent_Private_Declarations.
20745         (Analyze_Package_Instantiation): Set the instantiated package entity's
20746         Package_Instantiation field.
20747         (Get_Package_Instantiation_Node): Move declaration to package spec.
20748         Retrieve the N_Package_Instantiation node when the Package_Instantiation
20749         field is present.
20750         (Check_Generic_Child_Unit): Within an inlined call, the only possible
20751         instantiation is Unchecked_Conversion, for which no parents are needed.
20752         (Inline_Instance_Body): Deinstall and record the use_clauses for all
20753         parent scopes of a scope being removed prior to inlining an instance
20754         body.
20755         (Analyze_Package_Instantiation): Do not perform front-end inlining when
20756         the current context is itself an instance within a non-instance child
20757         unit, to prevent scope stack errors.
20758         (Save_References): If the node is an aggregate that is an actual in a
20759         call, rewrite as a qualified expression to preserve some type
20760         information, to resolve possible ambiguities in the instance.
20761         (Instance_Parent_Unit): New global variable to record the ultimate
20762         parent unit associated with a generic child unit instance (associated
20763         with the existing Parent_Unit_Visible flag).
20764         (type Instance_Env): New component Instance_Parent_Unit for stacking
20765         parents recorded in the global Instance_Parent_Unit.
20766         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
20767         stack.
20768         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
20769         it's not a top-level unit, and only do this if Instance_Parent_Unit is
20770         not already set. Replace test of Is_Child_Unit with test of parent's
20771         scope against package Standard. Add comments and a ??? comment.
20772         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
20773         on a child instance parent to test that the parent equals
20774         Instance_Parent rather than simply checking that the unit is not a
20775         child unit.
20776         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
20777         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
20778         a formal interface are ancestors of the corresponding actual.
20779         (Validate_Formal_Interface_Type): Additional legality checks.
20780         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
20781         interface types with ancestors.
20782         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
20783         to diagnose attempts to use generic within its own declaration.
20784
20785 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
20786             Javier Miranda  <miranda@adacore.com>
20787
20788         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
20789         discriminant.
20790         (Build_Private_Derived_Type): The entity of the created full view of the
20791         derived type does not come from source. If after installing the private
20792         declarations of the parent scope the parent is still private, use its
20793         full view to construct the full declaration of the derived type.
20794         (Build_Derived_Record_Type): Relax the condition that controls the
20795         execution of the check that verifies that the partial view and
20796         the full view agree in the set of implemented interfaces. In
20797         addition, this test now only takes into account the progenitors.
20798         (Derive_Interface_Subprograms): No need to derive subprograms
20799         of ancestors that are interfaces.
20800         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
20801         associated code.
20802         Change name Is_Package to Is_Package_Or_Generic_Package
20803         (Complete_Subprograms_Derivation): Handle the case in which the full
20804         view is a transitive derivation of the ancestor of the partial view.
20805         (Process_Full_View): Rename local subprogram Find_Interface_In_
20806         Descendant to Find_Ancestor_Interface to leave the code more clear.
20807         Remove wrong code that avoids the generation of an error message
20808         when the immediate ancestor of the partial view is an interface.
20809         In addition some minor reorganization of the code has been done to
20810         leave it more clear.
20811         (Analyze_Type_Declaration): If type has previous incomplete tagged
20812         partial view, inherit properly its primitive operations.
20813         (Collect_Interfaces): Make public, for analysis of formal
20814         interfaces.
20815         (Analyze_Interface_Declaration): New procedure for use for regular and
20816         formal interface declarations.
20817         (Build_Derived_Record_Type): Add support for private types to the code
20818         that checks if a tagged type implements abstract interfaces.
20819         (Check_Aliased_Component_Type): The test applies in the spec of an
20820         instance as well.
20821         (Access_Type_Declaration): Clean up declaration of malformed type
20822         declared as an access to its own classwide type, to prevent cascaded
20823         crash.
20824         (Collect_Interfaces): For private extensions and for derived task types
20825         and derived protected types, the parent may be an interface that must
20826         be included in the interface list.
20827         (Access_Definition): If the designated type is an interface that may
20828         contain tasks, create Master_Id for it before analyzing the expression
20829         of the declaration, which may be an allocator.
20830         (Record_Type_Declaration): Set properly the interface kind, for use
20831         in allocators, the creation of master id's for task interfaces, etc.
20832
20833 2005-11-14  Javier Miranda  <miranda@adacore.com>
20834             Ed Schonberg  <schonberg@adacore.com>
20835
20836         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
20837         omitted in case of stream attribute subprograms.
20838         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
20839         appear immediately after a subprogram body, when there is no previous
20840         subprogram declaration.
20841         Change name Is_Package to Is_Package_Or_Generic_Package
20842         (Process_Formals): A non null qualifier on a non null named access
20843         type is not an error, and is a warning only if Redundant_Constructs
20844         are flagged.
20845
20846 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
20847             Ed Schonberg  <schonberg@adacore.com>
20848
20849         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
20850         nested within Analyze_Package_Specification to install the private
20851         declarations and use clauses within each of the parent units of a
20852         package instance of a generic child package.
20853         (Analyze_Package_Specification): When entering a private part of a
20854         package associated with a generic instance or formal package, the
20855         private declarations of the parent must be installed (by calling new
20856         procedure Install_Parent_Private_Declarations).
20857         Change name Is_Package to Is_Package_Or_Generic_Package
20858         (Preserve_Full_Attributes): For a synchronized type, the corresponding
20859         record is absent in a generic context, which does not indicate a
20860         compiler error.
20861
20862 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
20863
20864         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
20865         not try to rewrite a renamed stream attribute, because the operations
20866         on the type may not have been generated.
20867         Handle properly a renaming_as_body generated for a stream operation
20868         whose default is abstract because the object type itself is abstract.
20869         (Find_Type): If the type is incomplete and appears as the prefix of a
20870         'Class reference, it is tagged, and its list of primitive operations
20871         must be initialized properly.
20872         (Chain_Use_Clauses): When chaining the use clauses that appear in the
20873         private declaration of a parent unit, prior to compiling the private
20874         part of a child unit, find on the scope stack the proper parent entity
20875         on which to link the use clause.
20876         (Note_Redundant_Use): Emit a warning when a redundant use clause is
20877         detected.
20878         (Analyze_Object_Renaming): An attribute reference is not a legal object
20879         if it is not a function call.
20880
20881 2005-11-14  Robert Dewar  <dewar@adacore.com>
20882             Ed Schonberg  <schonberg@adacore.com>
20883
20884         * sem_eval.adb: Implement d.f flag
20885         (Subtype_Statically_Match): A generic actual type has unknown
20886         discriminants when the corresponding actual has a similar partial view.
20887         If the routine is called to validate the signature of an inherited
20888         operation in a child instance, the generic actual matches the full view,
20889
20890 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
20891             Ed Schonberg  <schonberg@adacore.com>
20892             Robert Dewar  <dewar@adacore.com>
20893             Thomas Quinot  <quinot@adacore.com>
20894
20895         * sem_res.adb (Resolve_Call): Provide a better error message whenever
20896         a procedure call is used as a select statement trigger and is not an
20897         entry renaming or a primitive of a limited interface.
20898         (Valid_Conversion): If the operand has a single interpretation do not
20899         remove address operations.
20900         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
20901         statement to inhibit warning.
20902         (Resolve_Unary_Op): Do not produce a warning when
20903         processing an expression of the form -(A mod B)
20904         Use Universal_Real instead of Long_Long_Float when we need a high
20905         precision float type for the generated code (prevents gratuitous
20906         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
20907         (Resolve_Concatenation_Arg): Improve error message when argument is an
20908         ambiguous call to a function that returns an array.
20909         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
20910         there is an implicit operator in the given scope if we are within an
20911         instance: legality check has been performed on the generic.
20912         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
20913         after resolving operand, to avoid false warnings on overloaded calls.
20914
20915 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
20916             Javier Miranda  <miranda@adacore.com>
20917
20918         PR ada/15604
20919         * sem_type.adb (Covers): In an inlined body, a composite type matches
20920         a private type whose full view is a composite type.
20921         (Interface_Present_In_Ancestor): Protect the frontend against
20922         previously detected errors to ensure that its compilation
20923         with assertions enabled gives the same output that its
20924         compilation without assertions.
20925         (Interface_Present_In_Ancestor): Add support for private types.
20926         Change name In_Actual to In_Generic_Actual (clean up)
20927         (Disambiguate): New predicate In_Actual, to recognize expressions that
20928         appear in the renaming declaration generated for generic actuals, and
20929         which must be resolved in the outer context.
20930
20931 2005-11-14  Robert Dewar  <dewar@adacore.com>
20932             Thomas Quinot  <quinot@adacore.com>
20933             Hristian Kirtchev  <kirtchev@adacore.com>
20934             Ed Schonberg  <schonberg@adacore.com>
20935
20936         * sem_util.ads, sem_util.adb: Change name Is_Package to
20937         Is_Package_Or_Generic_Package.
20938         (Check_Obsolescent): New procedure.
20939         (Set_Is_Public): Remove obsolete junk test.
20940         (Set_Public_Status): Do not set Is_Public on an object whose declaration
20941         occurs within a handled_sequence_of_statemets.
20942         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
20943         for a parameterless procedure.
20944         (Enter_Name): Recognize renaming declarations created for private
20945         component of a protected type within protected operations, so that
20946         the source name of the component can be used in the debugger.
20947
20948 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
20949             Robert Dewar  <dewar@adacore.com>
20950
20951         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
20952         of a generic subprogram are not visible outside the body.
20953         (Set_Warning_Switch): New procedure (code to set warning mode moved
20954         here from Switch.C so that it can be shared by pragma processing.
20955         (Check_References): Special case warning for non-modified non-imported
20956         volatile objects.
20957         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
20958         form with a string literal argument
20959
20960 2005-11-14  Javier Miranda  <miranda@adacore.com>
20961
20962         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
20963         anonymous access.
20964         (Write): Addition of "not null" to the anonymous access.
20965         (Read): Addition of "not null" to the anonymous access.
20966         (Write): Addition of "not null" to the anonymous access.
20967
20968         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
20969         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
20970         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
20971         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
20972         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
20973         "not null" to the anonymous access.
20974
20975 2005-11-14  Robert Dewar  <dewar@adacore.com>
20976
20977         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
20978         offset values
20979
20980 2005-11-14  Vincent Celier  <celier@adacore.com>
20981
20982         * switch.adb (Bad_Switch): New procedure
20983         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
20984         message when in error.
20985
20986         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
20987         Too_Many_Output_Files): Remove declarations, no longer used.
20988         (Scan_Nat): New parameter Switch
20989         (Scan_Pos): Ditto
20990         (Bad_Switch): New procedure
20991
20992         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
20993         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
20994         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
20995         to Osint.Fail. Do not handle any exception.
20996
20997 2005-11-14  Vincent Celier  <celier@adacore.com>
20998
20999         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
21000         designates a non existent directory.
21001
21002 2005-11-14  Robert Dewar  <dewar@adacore.com>
21003
21004         * xgnatugn.adb: Replace invalid membership test by 'Valid
21005
21006 2005-11-14  Vincent Celier  <celier@adacore.com>
21007
21008         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
21009         there is no object directory.
21010
21011 2005-11-14  Robert Dewar  <dewar@adacore.com>
21012
21013         * usage.adb: Minor adjustment to output format, use nn instead of nnn
21014         (so that -gnateInnn does not run into next column)
21015
21016 2005-11-14  Ed Falis  <falis@adacore.com>
21017
21018         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
21019         "constrained"
21020
21021 2005-11-14  Cyrille Comar  <comar@adacore.com>
21022
21023         * s-chepoo.ads: Add comments on Dereference.
21024         Remove unnecessary inherited abstract primitives.
21025         Cosmetic cleanup.
21026
21027 2005-11-14  Robert Dewar  <dewar@adacore.com>
21028
21029         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
21030         node parameter, not needed, since it is available as Declaration_Node.
21031
21032 2005-11-14  Geert Bosch  <bosch@adacore.com>
21033
21034         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
21035         grammatically correct.
21036
21037 2005-11-14  Vincent Celier  <celier@adacore.com>
21038
21039         * s-fileio.ads: Correct spelling error in comment
21040
21041 2005-11-14  Cyrille Comar  <comar@adacore.com>
21042             Robert Dewar  <dewar@adacore.com>
21043             Vincent Celier  <celier@adacore.com>
21044             Ben Brosgol  <brosgol@adacore.com>
21045             Jose Ruiz  <ruiz@adacore.com>
21046             Pascal Obry  <obry@adacore.com>
21047
21048         * gnat_ugn.texi: 
21049         Document that -fstack-check is needed for strict compliance with the
21050         Ada 95 Reference Manual.
21051         Correct reference to VAX systems to meet HP guidelines
21052         Add documentation for new gnatmake switches -vl, -vm and -vh
21053         Replace DEC Ada by HP Ada
21054         Replace DIGITAL by HP
21055         Remove empty section on tools in compatibility section
21056         Clarify the Windows convention semantics.
21057         Document the Win32 calling convention.
21058         The Stdcall, Win32 and DLL convention are synonyms.
21059         Add a note in -gnatR description about zero size record components
21060         Note on new >= and <= warnings for -gnatwc
21061         Document that equal sign after -gnatm is optional.
21062         Note that strip is working fine on DLL built with a Library
21063         Project. The restriction apply only to DLL built with gnatdll.
21064         Update section about the way to debug a DLL.
21065         Update information about the DLL convention.
21066         Document -C switch for gnatprep
21067         Document new attribute Library_ALI_Dir
21068         Update elaboration doc to include implicit Elaborate pragmas now
21069         generated for subprogram instantiations.
21070         Document limitation on executable names that include spaces for --GCC,
21071         --GNATBIND, and --GNATLINK switches.
21072         Document that -w causes -gnatws to be added at start of gcc switches
21073
21074         * gnat_rm.texi: Document that -mieee is needed for generating infinite
21075         and NaN values in case of overflow on machines that are not fully
21076         compliant with the IEEE floating-point standard.
21077         Create a section describing the set of compiler options needed for
21078         strict compliance with the Ada 95 Reference Manual.
21079         Add documentation for pragma Obsolescent applied to a package
21080         Clarify potential issues of mixed language programs related to the
21081         I/O buffering enabling in the elaboration of the GNAT runtime.
21082         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
21083         This documentation only patch adds extra documentsion for pragma
21084         Restrictions (No_Elaboration_Code), explaining why it is not possible
21085         to document this restriction in terms of allowed source constructs.
21086         Document string literal form of pragma Warnings
21087         Document new attribute Library_ALI_Dir
21088         Add documentation on stable attributes in project files that was missing
21089
21090         * gnat-style.texi: Indicate that paragraphs within a single comment
21091         should be separated by empty comment lines
21092
21093         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
21094         /05 respectively)
21095
21096         * bindusg.adb: Minor cleanup, put -m before -M for consistency
21097
21098 2005-11-14  Robert Dewar  <dewar@adacore.com>
21099
21100         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
21101         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
21102         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
21103         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
21104         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
21105         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
21106         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
21107         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
21108         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
21109         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
21110         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
21111         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
21112         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
21113         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
21114         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
21115         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
21116         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
21117         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
21118         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
21119         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
21120         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
21121         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
21122         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
21123         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
21124         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
21125         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
21126         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
21127         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
21128         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
21129         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
21130         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
21131         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
21132         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
21133         system-interix.ads, system-solaris-sparc.ads,
21134         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
21135         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
21136         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
21137         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
21138         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
21139         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
21140         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
21141         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
21142         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
21143         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
21144         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
21145         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
21146         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
21147         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
21148         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
21149         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
21150         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
21151         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
21152         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
21153         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
21154         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
21155         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
21156         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
21157         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
21158         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
21159         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
21160         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
21161         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
21162         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
21163         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
21164         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
21165         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
21166         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
21167         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
21168         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
21169         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
21170         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
21171         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
21172         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
21173         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
21174         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
21175         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
21176         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
21177         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
21178         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
21179         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
21180         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
21181         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
21182         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
21183         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
21184         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
21185         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
21186         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
21187         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
21188         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
21189         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
21190         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
21191         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
21192         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
21193         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
21194         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
21195         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
21196         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
21197         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
21198         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
21199         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
21200         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
21201         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
21202         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
21203         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
21204         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
21205         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
21206         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
21207         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
21208         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
21209         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
21210         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
21211         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
21212         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
21213         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
21214         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
21215         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
21216         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
21217         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
21218         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
21219         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
21220         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
21221         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
21222         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
21223         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
21224         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
21225         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
21226         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
21227         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
21228         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
21229         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
21230         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
21231         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
21232         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
21233         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
21234         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
21235         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
21236         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
21237         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
21238         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
21239         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
21240         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
21241         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
21242         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
21243         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
21244         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
21245         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
21246         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
21247         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
21248         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
21249         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
21250         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
21251         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
21252         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
21253         a-numaux-darwin.ads, a-numaux-darwin.adb,
21254         a-swuwha.ads, a-stunha.ads: Minor reformatting
21255
21256 2005-11-14  Robert Dewar  <dewar@adacore.com>
21257
21258         PR ada/18434
21259         * osint-m.adb: Add pragma Elaborate_All for Osint
21260
21261 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
21262
21263         PR ada/23995
21264         * trans.c (call_to_gnu): Restore statement lost in translation.
21265
21266 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
21267
21268         * init.c: Use the Linux-specific section for the IA-64/Linux target.
21269         (__gnat_adjust_context_for_raise): Add conditional code so that the
21270         IA-64 is also supported.
21271
21272 2005-11-03  James E Wilson  <wilson@specifix.com>
21273
21274         PR ada/23427
21275         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
21276         TREE_OVERFLOW check.
21277
21278 2005-09-21  Olivier Hainque  <hainque@adacore.com>
21279
21280         PR ada/22418
21281         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
21282         as we create them to store a size in bits.
21283
21284 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
21285
21286         PR ada/21937
21287         PR ada/22328
21288         PR ada/22381
21289         PR ada/22383
21290         PR ada/22419
21291         PR ada/22420
21292         * utils2.c (build_return_expr): New helper function.
21293         * gigi.h (build_return_expr): Declare it.
21294         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
21295         of manually building the RETURN_EXPR tree.
21296         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
21297         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
21298         build_binary_op for the "target pointer" case.  Use build_return_expr
21299         instead of manually building the RETURN_EXPR tree.
21300
21301 2005-09-16  Laurent Guerby  <laurent@guerby.net>
21302
21303         PR ada/23788
21304         * s-tpinop.ads: Make this unit Preelaborate.
21305
21306 2005-09-16  Andreas Jaeger  <aj@suse.de>
21307
21308         * socket.c: Add string.h for memcpy.
21309
21310 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
21311
21312         * dec-io.ads, dec-io.adb: Removed, no longer used.
21313
21314 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
21315
21316         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
21317
21318         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
21319         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
21320         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
21321         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
21322         dependent units are Preelaborate.
21323         (Initialize): Call Interrupt_Managemeent.Initialize and
21324         OS_Primitives.Initialize to ensure proper initialization of this unit.
21325         Remove use of System.Soft_Links
21326         Make this unit Preelaborate.
21327
21328         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
21329         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
21330         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
21331         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
21332         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
21333         s-tratas.ads, s-tasinf.ads: Minor reformatting.
21334         Add pragma Preelaborate, since these packages are suitable for this
21335         categorization.
21336         Update comments.
21337
21338         * s-traent-vms.ads, s-intman-dummy.adb,
21339         s-taprop-dummy.adb: Make this unit Preelaborate.
21340
21341         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
21342         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
21343         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
21344         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
21345         s-intman-solaris.adb, s-intman-irix-athread.adb,
21346         s-intman-irix.adb: Mark this unit Preelaborate.
21347         (Initialize): New procedure.
21348         Update comments.
21349
21350         * s-taspri-linux.ads: Removed.
21351
21352         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
21353         as done by other implementations (e.g. posix).
21354
21355         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
21356         responsible for deferring abort.
21357         Mark this unit Preelaborate.
21358
21359         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
21360         proper initialization of the tasking run-time.
21361
21362         * s-tasdeb.ads: Mark this unit Preelaborate.
21363         (Known_Tasks): Add explicit default value to avoid elaboration code.
21364
21365         * s-inmaop-vms.adb (Elaboration code): Add call to
21366         Interrupt_Management.Initialize since the elaboration code depends on
21367         proper initialization of this package.
21368
21369         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
21370         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
21371         s-osprim-posix.adb: Make this unit Preelaborate.
21372
21373         * a-calend.adb: Add call to OS_Primitives.Initialize
21374
21375         * a-elchha.adb: Update use of Except.Id.Full_Name.
21376         Minor reformatting.
21377         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
21378
21379         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
21380         Move with clauses outside Warnings Off now that dependent units are
21381         Preelaborate.
21382         Use raise xxx with "..."; Ada 2005 form.
21383
21384         * a-taside.ads, a-taside.adb:
21385         Remove some dependencies, to make it easier to make this unit truly
21386         Preelaborate.
21387         Rewrite some code to be conformant with Preelaborate rules.
21388
21389         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
21390         marked Preelaborate in the future.
21391
21392         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
21393         these units Preelaborate.
21394
21395         * s-exctab.adb: Update use of Except.Id.Full_Name.
21396
21397         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
21398         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
21399         Set_Exc_Stack_Addr): Removed, no longer used.
21400         Remove reference to *Machine_State_Addr*, no longer needed.
21401
21402         * s-stalib.ads: Mark this unit as Preelaborate[_05].
21403         (Exception_Data): Full_Name is now a System.Address so that this unit
21404         can be made Preelaborate.
21405         Clean up/simplify code thanks to Full_Name being a System.Address.
21406         Remove obsolete pragma Suppress (All_Checks), no longer needed.
21407
21408         * s-taskin.ads, s-taskin.adb:
21409         Move with clauses outside Warnings Off now that dependent units are
21410         Preelaborate.
21411         Make this unit Preelaborate.
21412         (Initialize): New proceduure, replace elaboration code and makes the
21413         set up of the tasking run-time cleaner.
21414         (Detect_Blocking): Now a function instead of a deferred boolean, to
21415         obey Preelaborate rules.
21416
21417         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
21418         soft links, no longer used.
21419
21420         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
21421         packages are suitable for this categorization.
21422
21423         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
21424         since we compile run-time sources in Ada 2005 mode.
21425         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
21426         avoid having s-taprop*.adb depend on s-soflin and to avoid code
21427         duplication.
21428         Remove reference to *Machine_State_Addr*, no longer needed.
21429
21430 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
21431
21432         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
21433         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
21434         Remove reference to System.Exceptions.
21435
21436         * s-mastop-x86.adb: Removed, no longer used.
21437
21438         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
21439
21440         * a-excach.adb: Minor reformatting.
21441
21442         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
21443         instead fix new warnings that were hidden by this change.
21444         (AAA, ZZZ): Removed, replaced by...
21445         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
21446         are used instead of constants, to help make Ada.Exception truly
21447         preelaborate.
21448         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
21449         Raise_Storage_Error): File is now a System.Address, to simplify code.
21450         (Elab code): Removed, no longer used.
21451         (Null_Occurrence): Remove Warnings Off and make this construct
21452         preelaborate.
21453         Remove code related to front-end zero cost exception handling, since
21454         it is no longer used.
21455         Remove -gnatL/-gnatZ switches.
21456
21457         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
21458         Update use of Except.Msg.
21459
21460         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
21461         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
21462         to front-end zero cost exception handling, since it is no longer used.
21463         Remove -gnatL/-gnatZ switches.
21464
21465         * lib-writ.ads: Minor reformatting
21466         Remove doc of UX
21467
21468         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
21469
21470         * Make-lang.in: Remove references to s-except.ads
21471
21472         * s-except.ads: Removed, no longer used.
21473
21474         * s-mastop.ads, s-mastop.adb:
21475         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
21476         Remove reference to System.Exceptions.
21477
21478         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
21479         switch-b.adb: Remove code related to front-end zero cost exception
21480         handling, since it is no longer used.
21481         Remove -gnatL/-gnatZ switches.
21482
21483 2005-09-01  Robert Dewar  <dewar@adacore.com>
21484             Gary Dismukes  <dismukes@adacore.com>
21485             Javier Miranda  <miranda@adacore.com>
21486
21487         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
21488         type by valid test and generate warning.
21489         (Tagged_Membership): Generate call to the run-time
21490         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
21491         Change formal name Subtype_Mark to Result_Definition in several calls to
21492         Make_Function_Specification.
21493         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
21494         check for proper accessibility of the operand of a class-wide allocator.
21495         The check can be left out if checks are suppressed or if the expression
21496         has a specific tagged type whose level is known to be safe.
21497
21498         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
21499         generates the run-time check associated with null-excluding entities.
21500         (Expand_N_Return_Statement): Add tests to determine if the accessibility
21501         check on the level of the return expression of a class-wide function
21502         can be elided. The check usually isn't needed if the expression has a
21503         specific type (unless it's a conversion or a formal parameter). Also
21504         add a test for whether accessibility checks are suppressed. Augment
21505         the comments to describe the conditions for performing the check.
21506
21507 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
21508             Javier Miranda  <miranda@adacore.com>
21509             Gary Dismukes  <dismukes@adacore.com>
21510             Ed Schonberg  <schonberg@adacore.com>
21511
21512         * a-tags.adb (IW_Membership): Give support to
21513         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
21514         subprogram has been extended to look for the tag in the ancestors tag
21515         table.
21516         Update the structure of the GNAT Dispatch Table to reflect the
21517         additional two tables used in dispatching selects.
21518         Introduce appropriate array types and record components in
21519         Type_Specific_Data to reflect the two tables.
21520         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
21521         the TSD of a tag, indexed by position.
21522         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
21523         operation kind in the TSD of a tag, indexed by position.
21524
21525         * a-tags.ads: Introduce an enumeration type to capture different
21526         primitive operation kinds. Define a constant reflecting the number of
21527         predefined primitive operations.
21528         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
21529         of an entry wrapper.
21530         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
21531         callable entity of a primitive operation.
21532
21533         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
21534         primitive operations used in dispatching selects for limited
21535         interfaces, limited tagged, task and protected types what implement a
21536         limited interface.
21537         (Freeze_Type): Generate the bodies of the primitive operations used in
21538         dispatching selects for limited tagged, task and protected types that
21539         implement a limited interface. Generate statements to populate the two
21540         auxiliary tables used for dispatching in select statements.
21541         (Freeze_Record_Type): Add call to initialize the dispatch table entries
21542         associated with predefined interface primitive operations.
21543         (Build_Dcheck_Function): Change Set_Subtype_Mark to
21544         Set_Result_Definition.
21545         (Build_Variant_Record_Equality): Change Subtype_Mark to
21546         Result_Definition.
21547         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
21548         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
21549         (Build_Assignment): Simplify the code that adds the run-time-check.
21550         (Expand_N_Object_Declaration): Code cleanup.
21551
21552         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
21553         entries when there is a protected type that implements a limited
21554         interface.
21555
21556         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
21557         common routines used in expansion of dispatching selects.
21558         (Add_Private_Declarations): Select the appropriate protection type when
21559         there is a protected type that implements a limited interface.
21560         (Build_Parameter_Block): Generate a wrapped parameter block.
21561         (Build_Protected_Subprogram_Body): Select the appropriate type for
21562         locking entries when there is a protected type that implements a
21563         limited interface.
21564         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
21565         classified as entry wrappers.
21566         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
21567         asynchronous selects.
21568         (Expand_N_Conditional_Entry_Call): Add support for expansion of
21569         dispatching conditional selects.
21570         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
21571         protection when there is a protected type that implements limited
21572         interfaces.
21573         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
21574         timed selects.
21575         (Extract_Dispatching_Call): Extract the entity of the name of a
21576         dispatching call, the object parameter, actual parameters and
21577         corresponding formals.
21578         (Make_Initialize_Protection): Correct logic of protection initialization
21579         when there is a protected type that implements a limited interface.
21580         (Parameter_Block_Pack): Populate a wrapped parameter block with the
21581         values of actual parameters.
21582         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
21583         block and assign them to the original actual parameters.
21584
21585         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
21586         (Build_Protected_Sub_Specification): Change the type and name of the
21587         last formal to account for the increased variety of protection modes.
21588
21589         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
21590         entities. Used to save the value of the Is_Hidden attribute when the
21591         limited-view is installed.
21592         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
21593         the attribute of procedures classified as entry wrappers.
21594         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
21595         entity of a primitive wrapper.
21596         (Write_Entity_Flags): Output the name and value of the
21597         Is_Primitive_Wrapper attribute.
21598         (Write_Field27_Name): Output the name and entity of the field Wrapped_
21599         Entity.
21600         (Underlying_Type): If we have an incomplete entity that comes from
21601         the limited view then we return the Underlying_Type of its non-limited
21602         view if it is already available.
21603         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
21604         including operators.
21605         (Write_Field26_Name): Add entry for Overridden_Operation
21606         (Overridden_Operation): New attribute of functions and procedures.
21607
21608         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
21609         predefined position in the dispatch table for the primitive operations
21610         used in dispatching selects.
21611         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
21612         predefined primitive operations and replace it with
21613         Default_Prim_Op_Count.
21614         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
21615         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
21616         the names of the generated primitive operations used in dispatching
21617         selects.
21618         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
21619         case of abstract interface types. They will be inherit by the objects
21620         implementing the interface.
21621         (Make_DT): There is no need to inherit the dispatch table of the
21622         ancestor interface for the elaboration of abstract interface types.
21623         The dispatch table will be inherited by the object implementing the
21624         interface.
21625         (Copy_Secondary_DTs): Add documentation.
21626         (Validate_Position): Improve this static check in case of
21627         aliased subprograms because aliased subprograms must have
21628         the same position.
21629         (Init_Predefined_Interface_Primitives): New subprogram that initializes
21630         the entries associated with predefined primitives of all the secondary
21631         dispatch tables.
21632         (Build_Anonymous_Access_Type): Removed.
21633         (Expand_Interface_Actuals): With the previous cleanup there is no need
21634         to build an anonymous access type. This allows further cleanup in the
21635         code generated by the expander.
21636         (Expand_Interface_Conversion): If the actual is an access type then
21637         build an internal function to handle the displacement. If the actual
21638         is null this function returns null because no displacement is
21639         required; otherwise performs a type conversion that will be
21640         expanded in the code that returns the value of the displaced actual.
21641         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
21642         conversions that have no effect in the generated code because no
21643         displacement is required. Code cleanup; use local variables to
21644         avoid repeated calls to the subprogram directly_designated_type().
21645
21646         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
21647         Classify the primitive operations used in dispatching selects as
21648         predefined.
21649         (Implements_Limited_Interface): Determine whether some type either
21650         directly implements a limited interface or extends a type that
21651         implements a limited interface.
21652         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
21653         (Expand_Subtype_From_Expr): Do not build actual subtype if the
21654         expression is limited.
21655         (Find_Interface_Tag): Add code to handle class-wide types and
21656         entities from the limited-view.
21657
21658         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
21659         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
21660         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
21661         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
21662         Set_Prim_Op_Kind.
21663
21664         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
21665         of procedure name or prefix that appears as a trigger in a triggering
21666         alternative.
21667
21668         * uintp.ads: Introduce constants Uint_11 and Uint_13.
21669
21670 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
21671
21672         * s-tataat.adb, a-tasatt.adb:
21673         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
21674
21675         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
21676         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
21677         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
21678         longer used.
21679
21680 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
21681             Jose Ruiz  <ruiz@adacore.com>
21682
21683         * s-taprop-vxworks.adb:
21684         Move with clauses outside Warnings Off now that dependent units are
21685         Preelaborate.
21686         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
21687         initialization of this unit.
21688         (Specific): Add new procedures Initialize and Delete so that this
21689         package can be used for VxWorks 5.x and 6.x
21690         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
21691         differences between VxWorks 5.x and 6.x
21692         Minor reformatting.
21693         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
21694         caller.
21695         Use only Preelaborate-compatible constructs.
21696
21697         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
21698         Primitives.Operations.
21699         (Delete, Initialize): New procedures.
21700
21701         * s-osinte-vxworks.adb: Body used to handle differences between
21702         VxWorks 5.x and 6.x
21703         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
21704
21705         * s-osinte-vxworks.ads: Minor reformatting.
21706         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
21707         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
21708         and 6.
21709         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
21710         between Vxworks 5 and 6.
21711         (taskLock, taskUnlock): Removeed, no longer used.
21712
21713         * adaint.c: The wait.h header is not located in the sys directory on
21714         VxWorks when using RTPs.
21715         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
21716         using RTPs.
21717         (__gnat_dup): dup is available on Vxworks when using RTPs.
21718         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
21719
21720         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
21721
21722         * expect.c: The wait.h header is not located in the sys directory on
21723         VxWorks when using RTPs.
21724
21725 2005-09-01  Thomas Quinot  <quinot@adacore.com>
21726
21727         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
21728
21729         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
21730
21731         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
21732         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
21733         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
21734         g-soccon-freebsd.ads: Add new constants:
21735          IP_MULTICAST_IF
21736          SO_RCVTIMEO/SO_SNDTIMEO
21737          IOV_MAX
21738
21739         * gen-soccon.c:
21740         Move all target-specific file inclusions and macro definitions to
21741         gsocket.h, in order to ensure that any C code in socket.c will see a
21742         set of constants that is consistent with the contents of g-soccon.ads.
21743
21744         * gsocket.h: Code imported from gen-soccon.c:
21745         Move all target-specific file inclusions and macro definitions to
21746         gsocket.h, in order to ensure that any C code in socket.c will see a set
21747         of constants that is consistent with the contents of g-soccon.ads.
21748         This change also makes gen-soccon self-contained (removing dependencies
21749         upon GCC internal headers).
21750
21751         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
21752         iovecs at a time.
21753         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
21754
21755         * socket.c: Minor reformatting.
21756
21757 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
21758             Thomas Quinot  <quinot@adacore.com>
21759
21760         * fname-sf.adb, mlib-tgt.ads,
21761         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
21762         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
21763         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
21764         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
21765         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
21766         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
21767         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
21768         makegpr.adb: Remove redundant use_clauses.
21769
21770 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
21771
21772         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
21773         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
21774         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
21775         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
21776         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
21777         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
21778         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
21779         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
21780         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
21781         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
21782         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
21783         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
21784         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
21785         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
21786         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
21787         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
21788         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
21789         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
21790         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
21791         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
21792         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
21793         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
21794         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
21795         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
21796         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
21797         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
21798         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
21799         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
21800         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
21801         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
21802         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
21803         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
21804         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
21805         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
21806         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
21807         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
21808         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
21809         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
21810         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
21811         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
21812         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
21813         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
21814         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
21815         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
21816         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
21817         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
21818         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
21819         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
21820         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
21821         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
21822         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
21823         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
21824         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
21825         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
21826         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
21827         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
21828         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
21829         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
21830         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
21831         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
21832         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
21833         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
21834         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
21835         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
21836         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
21837         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
21838         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
21839         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
21840         and always use the no parameter form for consistency.
21841
21842         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
21843
21844 2005-09-01  Robert Dewar  <dewar@adacore.com>
21845
21846         * binde.adb: Minor reformatting
21847         (Find_Elab_Order): Output warning if -p used with static elab order
21848
21849 2005-09-01  Robert Dewar  <dewar@adacore.com>
21850
21851         * checks.adb (Check_Needed): New procedure, deals with removing checks
21852         based on analysis of short-circuited forms. Also generates warnings for
21853         improper use of non-short-circuited forms.
21854         Code clean ups.
21855
21856 2005-09-01  Robert Dewar  <dewar@adacore.com>
21857
21858         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
21859         with 'Valid tests.
21860
21861 2005-09-01  Robert Dewar  <dewar@adacore.com>
21862
21863         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
21864         spec.
21865         Implement new insertion char < (conditional warning)
21866         * errutil.adb, erroutc.adb: Implement new insertion char <
21867         (conditional warning).
21868         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
21869         (Error_Msg_Warn): New variable for < insertion char.
21870         * prj-nmsc.adb: Implement new errout insertion char < (conditional
21871         warning).
21872         (Check_For_Source): Change value of Source_Id only after the current
21873         source has been dealt with.
21874
21875 2005-09-01  Robert Dewar  <dewar@adacore.com>
21876             Doug Rupp  <rupp@adacore.com>
21877
21878         * exp_attr.adb: Handle vax fpt for 'Valid attribute
21879         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
21880         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
21881         (Valid_D, Valid_F, Valid_G): New functions
21882
21883 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
21884             Hristian Kirtchev  <kirtchev@adacore.com>
21885             Javier Miranda  <miranda@adacore.com>
21886
21887         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
21888         from object notation, the original node is unanalyzed and carries no
21889         semantic information, so that accessiblity checks must be performed on
21890         the type of the actual itself.
21891         (Expand_N_Subprogram_Declaration): Change last actual parameter for
21892         compatibility with Build_Protected_Sub_Specification.
21893         (Check_Overriding_Inherited_Interfaces): Add suport to handle
21894         overloaded primitives.
21895         (Register_Interface_DT_Entry): Use the new name of the formal
21896         the the calls to Expand_Interface_Thunk
21897
21898         * exp_dbug.ads: Augment comments on encoding of protected types to
21899         include the generation of dispatching subprograms when the type
21900         implements at least one interface.
21901
21902         * lib.ads: Extend information in Load_Stack to include whether a given
21903         load comes from a Limited_With_Clause.
21904
21905         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
21906         whether a potential circularity is harmless, because it includes units
21907         loaded through a limited_with clause. Extends previous treatment which
21908         did not handle properly arbitrary combinations of limited and
21909         non-limited clauses.
21910
21911 2005-09-01  Nicolas Setton  <setton@adacore.com>
21912
21913         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
21914         to be encoded as typ___XBLU_lowerbound__upperbound instead of
21915         typ___XB_lowerbound__upperbound.
21916
21917 2005-09-01  Thomas Quinot  <quinot@adacore.com>
21918
21919         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
21920         dummy access formal for RACW/RAS TypeCode TSS.
21921         (Build_TypeCode_Call): Do not generate dummy null access actual for
21922         calls to the TypeCode TSS.
21923
21924 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
21925
21926         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
21927         fully qualified name, to distinguish instances with the same local name.
21928
21929         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
21930         fully qualified.
21931
21932 2005-09-01  Robert Dewar  <dewar@adacore.com>
21933
21934         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
21935         packed arrays.
21936
21937 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
21938
21939         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
21940         (Free): New deallocation procedure for filter elements
21941         (Close): Deallocate any existing filter for the concerned connection
21942
21943 2005-09-01  Laurent Pautet  <pautet@adacore.com>
21944
21945         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
21946         position set is provided, we compute one in order to reduce the maximum
21947         length of the keys.  This computation first selects a character
21948         position between 1 and the minimum length of the keys in order to
21949         avoid reducing one of the keys to an empty string.
21950         (Initialize, Compute): When the ratio V to K is too low, the algorithm
21951         does not converge. The initialization procedure now comes with a
21952         maximum number of iterations such that when exceeded, an exception is
21953         raised in Compute. The user can initialize this ratio to another value
21954         and try again
21955         Reformating and updated headers.
21956
21957 2005-09-01  Javier Miranda  <miranda@adacore.com>
21958
21959         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
21960         that given an entity T creates and returns an Itype that duplicates the
21961         contents of T. The returned Itype has the null-exclusion
21962         attribute set to True, and its Etype attribute references T
21963         to keep the association between the two entities.
21964         Update copyright notice
21965
21966         * sem_aggr.adb (Check_Can_Never_Be_Null,
21967         Aggregate_Constraint_Checks, Resolve_Aggregate,
21968         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
21969
21970         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
21971
21972 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
21973             Robert Dewar  <dewar@adacore.com>
21974             Hristian Kirtchev  <kirtchev@adacore.com>
21975
21976         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
21977         Result_Definition.
21978
21979         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
21980         function specs.
21981         Call Set_Result_Definition instead of Set_Subtype_Mark.
21982         (P_Subprogram_Specification): Add parsing of anonymous access result
21983         plus null exclusions. Call Set_Result_Definition instead of
21984         Set_Subtype_Mark.
21985
21986         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
21987         (P_Access_Type_Definition): Add parsing for an anonymous access result
21988         subtype, plus parsing for null exclusions. Call Set_Result_Definition
21989         instead of Set_Subtype_Mark.
21990
21991         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
21992         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
21993         (Result_Definition): New function for N_Function_Specifications.
21994         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
21995         N_Function_Specification.
21996         (Set_Null_Exclusion_Present): Allow this flag for
21997         N_Function_Specification.
21998         (Set_Result_Definition): New procedure for N_Function_Specifications.
21999         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
22000         and N_Function_Specification.
22001
22002         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
22003         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
22004         Add support for LIMITED NEW for Ada 2005 AI-419
22005         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
22006         syntax for anonymous access results.
22007         Replace Subtype_Mark field by Result_Definition in
22008         N_Function_Specification and N_Access_Definition specs.
22009         Add Null_Exclusion_Present to spec of N_Function_Specification.
22010         (Result_Definition): New function for N_Function_Specification and
22011         N_Access_Function_Definition.
22012         (Set_Result_Definition): New procedure for N_Function_Specification and
22013         N_Access_Function_Definition.
22014
22015         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
22016         Result_Definition for cases of N_Access_Function_Definition and
22017         N_Function_Specification.
22018         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
22019
22020 2005-09-01  Vincent Celier  <celier@adacore.com>
22021
22022         * lib-writ.adb: Update Copyright notice
22023         (Write_With_Lines): On platforms where file names are case-insensitive,
22024         record the file names in lower case.
22025         (Write_ALI): For D lines, on platforms where file names are
22026         case-insensitive, record the file names in lower case.
22027
22028 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
22029             Emmanuel Briot  <briot@adacore.com>
22030
22031         * lib-xref.adb (Output_Overridden_Op): Display information on
22032         overridden operation.
22033
22034         * lib-xref.ads: Add documentation on overridden operations.
22035
22036         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
22037         information.
22038
22039         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
22040         overriding entity information.
22041
22042 2005-09-01  Vincent Celier  <celier@adacore.com>
22043
22044         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
22045         including those that are inherited.
22046
22047 2005-09-01  Robert Dewar  <dewar@adacore.com>
22048
22049         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
22050
22051         * par-prag.adb: Implement new pragma Debug_Policy
22052
22053         * sem_prag.adb Implement new pragma Debug_Policy
22054         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
22055         Component_Size attribute specification. Give warning for ignored pragma
22056         Pack.
22057
22058         * snames.h, snames.ads, snames.adb: Introduce entries in
22059         Preset_Names for Name_Disp_Asynchronous_Select,
22060         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
22061         Name_Disp_Timed_Select.
22062         New pragma Debug_Policy
22063
22064         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
22065         explicitly.
22066         Switch -gnata also sets Debug_Pragmas_Enabled
22067
22068         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
22069         handle an explicit -gnata when compiling predefined files.
22070
22071 2005-09-01  Vincent Celier  <celier@adacore.com>
22072
22073         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
22074         directories of projects that have no Ada sources.
22075
22076 2005-09-01  Robert Dewar  <dewar@adacore.com>
22077
22078         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
22079         (makes a difference for wide characters)
22080
22081         * widechar.adb, widechar.ads:
22082         Add Wide_Char_Byte_Count feature to count chars vs bytes
22083
22084 2005-09-01  Thomas Quinot  <quinot@adacore.com>
22085             Ed Schonberg  <schonberg@adacore.com>
22086             Robert Dewar  <dewar@adacore.com>
22087
22088         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
22089         'Address attribute reference with an overloaded prefix, use the
22090         location of the prefix (not the location of the attribute reference) as
22091         the error location.
22092         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
22093         a function renaming thereof, is a valid prefix for 'Size (where it is
22094         intepreted as a function call).
22095         (Statically_Denotes_Entity): New predicate to determine whether the
22096         prefix of an array attribute can be considered static.
22097
22098         PR ada/9087
22099         (Eval_Attr): Fix failure to evaluate Component_Size for
22100         unconstrained arrays (resulted in wrong value in packed case, since
22101         back end cannot handle this case)
22102
22103 2005-09-01  Robert Dewar  <dewar@adacore.com>
22104
22105         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
22106         error msgs for most common cases.
22107         Use new errout insertion char < (conditional warning)
22108
22109 2005-09-01  Javier Miranda  <miranda@adacore.com>
22110             Ed Schonberg  <schonberg@adacore.com>
22111
22112         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
22113         become local to the whole package.
22114         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
22115         the package was already analyzed the new algorithm "replaces" the
22116         real entities by the shadow ones. This is required to ensure that
22117         the order of these entities in the homonym chains does not change;
22118         otherwise we can have undefined references at linking time because
22119         in case of conflicts the external name of the entities will have
22120         a suffix that depends on the order of the entities in the chain.
22121         (Remove_Limited_With_Clause): Complementary code that completes the
22122         new algorithm and replaces the shadow entities by the real ones.
22123         (Install_Limited_Withed_Unit): When unchaining entities before the
22124         installation of the shadow entities, only regular entities of the
22125         public part must be taken into account. This is required to
22126         keep this routine in synch with the work done by Remove_Limited_
22127         With_Clause
22128         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
22129         even if unit is analyzed, because the analysis of the unit is
22130         idempotent in any case, and the limited view of the unit may have to
22131         be installed for proper visibility.
22132         (Expand_Limited_With_Clause): Even if the unit in the implicit
22133         with_clause has been analyzed already, a limited view of the package
22134         must be built for the current context, if it does not exist yet.
22135
22136 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
22137             Javier Miranda  <miranda@adacore.com>
22138             Gary Dismukes  <dismukes@adacore.com>
22139
22140         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
22141         defining entity for the instance body, make a new defining identifier
22142         rather than copying the entity of the spec, to prevent accidental
22143         sharing of the entity list.
22144         (Check_Private_View): When exchanging views of private types, build the
22145         list of exchanged views as a stack, to ensure that on exit the exchanges
22146         are undone in the proper order.
22147         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
22148         Restore the compilation environment in case of instantiation_error.
22149         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
22150         for an anonymous access result.
22151         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
22152         (Formal_Entity): Handle properly the case of a formal package that
22153         denotes a generic package renaming.
22154
22155 2005-09-01  Thomas Quinot  <quinot@adacore.com>
22156
22157         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
22158         clause if the array aggregate is surrounded by parentheses.
22159
22160 2005-09-01  Cyrille Comar  <comar@adacore.com>
22161             Gary Dismukes  <dismukes@adacore.com>
22162             Ed Schonberg  <schonberg@adacore.com>
22163             Javier Miranda  <miranda@adacore.com>
22164
22165         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
22166         underlying type
22167         to check if a type is Constrained in cases related to code generation
22168         (rather than semantic checking) since otherwise we do not generate
22169         similar code for mutable private types depending if their
22170         discriminants are visible or not.
22171         (Check_Abstract_Overriding): Do not complain about failure to override
22172         the primitive operations used in dispatching selects since they will
22173         always be overriden at the freeze point of the type.
22174         (Access_Definition): Separate out handling for resetting the scope
22175         of an anonymous access function result type. Retrieve the scope
22176         of the associated function rather than using Current_Scope, which
22177         does not have a consistent value (depends on whether we're in the
22178         middle of analyzing formal parameters). Add ??? comment about
22179         finding a cleaner way to handle the special cases of scope setting.
22180         (Process_Incomplete_Dependents): A protected operation is never a
22181         dispatching operation (only its wrapper may be).
22182         (Build_Derived_Record_Type): In case of tagged private types that
22183         implement interfaces add derivation of predefined primitive
22184         operations.
22185         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
22186         by two parameters that are used in case of derivation from abstract
22187         interface types: No_Predefined_Prims is used to avoid the derivation
22188         of predefined primitives from the interface, and Predefined
22189         Prims_Only is used to complete the derivation predefined primitives
22190         in case of private tagged types implementing interfaces.
22191         Fix typo in comments
22192         (Find_Interface_In_Descendant): Protect the frontend against
22193         wrong code with large circularity chains.
22194         (Is_Private_Overriding): Add support for entities overriding interface
22195         subprograms. The test failed because Entities associated with overriden
22196         interface subprograms are always marked as hidden (and used to build
22197         the secondary dispatch table); in this case the overriden entity is
22198         available through the field abstract_interface_alias (cf. override_
22199         dispatching_operation)
22200         (Access_Definition): Set the scope of the type to Current_Scope for the
22201         case of a function with an anonymous access result type.
22202         (Access_Subprogram_Declaration): Handle creation of the type entity for
22203         an access-to-function type with an anonymous access result.
22204         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
22205         in handling for N_Access_Function_Definition.
22206         (Analyze_Subtype_Declaration): Modify the text of error message.
22207         (Derived_Type_Declaration): Modify the text of error message.
22208         (Process_Subtype): Modify the text of error message plus cleanup
22209         of one redundant error message.
22210         (Analyze_Component_Declaration): Code cleanup.
22211         (Analyze_Object_Declaration): Code cleanup.
22212         (Analyze_Subtype_Declaration): Propagate the null-exclusion
22213         attribute in case of access types. Code cleanup.
22214         (Array_Type_Declaration): Code cleanup.
22215         (Process_Discriminants): Create the new null-excluding itype
22216         if required. Code cleanup.
22217         (Process_Subtype): Create the new null-excluding itype if
22218         required. Code cleanup.
22219         (Build_Derived_Record_Type): Code cleanup to avoid calling
22220         twice the subprogram derive_subprograms in case of private
22221         types that implement interfaces. In this particular case the
22222         subprogram Complete_Subprograms_Derivation already does the
22223         job associated with the second call.
22224
22225         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
22226         conversion to the full view when generating an operation for a
22227         discriminant whose type may currently be private.
22228
22229 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
22230             Javier Miranda  <miranda@adacore.com>
22231
22232         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
22233         V (Obj.F), the rewriting does not involve the indexed component, but
22234         only the selected component itself.
22235         Do not apply the transformation if the analyzed node is an actual of a
22236         call to another subprogram.
22237         (Complete_Object_Operation): Retain the entity of the
22238         dispatching operation in the selector of the rewritten node. The
22239         entity will be used in the expansion of dispatching selects.
22240         (Analyze_One_Call): Improve location of the error message associated
22241         with interface.
22242         (Analyze_Selected_Component): No need to resolve prefix when it is a
22243         function call, resolution is done when parent node is resolved, as
22244         usual.
22245         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
22246         when attempting to resolve a call transformed from its object notation.
22247         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
22248         of the argument list for each interpretation of the operation.
22249         (Try_Object_Operation): The designated type of an access parameter may
22250         be an incomplete type obtained through a limited_with clause, in which
22251         case the primitive operations of the type are retrieved from its full
22252         view.
22253         (Analyze_Call): If this is an indirect call, and the return type of the
22254         access_to_subprogram is incomplete, use its full view if available.
22255
22256 2005-09-01  Javier Miranda  <miranda@adacore.com>
22257             Gary Dismukes  <dismukes@adacore.com>
22258
22259         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
22260         access types the null-exclusion and access-to-constant attributes must
22261         also match.
22262         (Analyze_Return_Statement): When the result type is an anonymous access
22263         type, apply a conversion of the return expression to the access type
22264         to ensure that appropriate accessibility checks are performed.
22265         (Analyze_Return_Type): For the case of an anonymous access result type,
22266         generate the Itype and set Is_Local_Anonymous_Access on the type.
22267         Add ??? placeholder for check to disallow returning a limited object
22268         in Ada 2005 unless it's an aggregate or a result of a function call.
22269         Change calls from Subtype_Mark to Result_Definition.
22270         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
22271         Result_Definition in call to Make_Function_Specification.
22272         (Build_Body_To_Inline): Change Set_Subtype_Mark to
22273         Set_Result_Definition.
22274         (Make_Inequality_Operator): Change formal Subtype_Mark to
22275         Result_Definition in call to Make_Function_Specification.
22276         (Process_Formals): Create the new null-excluding itype if required.
22277         (New_Overloaded_Entity): For an entity overriding an interface primitive
22278         check if the entity also covers other abstract subprograms in the same
22279         scope. This is required to handle the general case, that is, overriding
22280         other interface primitives and overriding abstract subprograms inherited
22281         from some abstract ancestor type.
22282         (New_Overloaded_Entity): For an overriding entity that comes from
22283         source, note the operation that it overrides.
22284         (Check_Conformance, Type_Conformant): Addition of one new formal
22285         to skip controlling formals in the analysis. This is used to
22286         handle overloading of abstract interfaces.
22287         (Base_Types_Match): Add missing case for types imported from
22288         limited-with clauses
22289         (New_Overloaded_Entity): Add barrier to protect the use of
22290         the "alias" attribute.
22291
22292 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
22293
22294         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
22295         verify that the procedure and the entry are mode conformant.
22296         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
22297         as a different operator, which is often a cut-and-paste error.
22298
22299 2005-09-01  Javier Miranda  <miranda@adacore.com>
22300             Ed Schonberg  <schonberg@adacore.com>
22301
22302         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
22303         used in controlling parameters exclude null because it is necessary to
22304         read the tag to dispatch, and null has no tag.
22305         (Override_Dispatching_Operation): If the previous operation is inherited
22306         from an interface, it becomes hidden  and does not participate in later
22307         name resolution.
22308
22309 2005-09-01  Javier Miranda  <miranda@adacore.com>
22310             Ed Schonberg  <schonberg@adacore.com>
22311             Gary Dismukes  <dismukes@adacore.com>
22312
22313         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
22314         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
22315         the expander will generate the corresponding run-time check to evaluate
22316         the expression.
22317         (Resolve_Call): Check for legal type of procedure name or prefix that
22318         appears as a trigger in a triggering alternative.
22319         (Valid_Conversion): If expression is ambiguous and the context involves
22320         an extension of System, remove System.Address interpretations.
22321         (Resolve_Qualified_Expression): Reject the case of a specific-type
22322         qualification applied to a class-wide argument. Enhance comment
22323         to explain checking of Original_Node.
22324         (Resolve_Type_Conversion): The location of the error message was not
22325         general enough to handle the general case and hence it has been removed.
22326         In addition, this patch improves the text of the message.
22327         (Resolve_Type_Conversion): Add missing support for access to interface
22328         types.
22329         (Resolve_Type_Conversion): If the target is a class-wide interface type,
22330         do not expand if the expression is the actual in a call, because proper
22331         expansion will take place when the call itself is expanded.
22332         (Resolve_Allocator): If the context is an unchecked conversion, the
22333         allocator inherits its storage pool, if any, from the target type of
22334         the conversion.
22335
22336 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
22337             Javier Miranda  <miranda@adacore.com>
22338
22339         * sem_type.adb (Add_One_Interp): If a candidate operation is an
22340         inherited interface operation that has an implementation, use the
22341         implementation to avoid spurious ambiguities.
22342         (Interface_Present_In_Ancestor): In case of concurrent types we can't
22343         use the Corresponding_Record_Typ attribute to look for the interface
22344         because it is set by the expander (and hence it is not always
22345         available). For this reason we traverse the list of interfaces
22346         (available in the parent of the concurrent type).
22347         (Interface_Present_In_Ancestor): Handle entities from the limited view
22348
22349 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
22350
22351         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
22352         from the list of required components.
22353         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
22354         primitive procedure of a limited interface with a controlling first
22355         parameter.
22356         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
22357         of an entry.
22358         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
22359         capture if it is generated in the second operand of a short-circuit
22360         operation.
22361         Do not capture values for variables with address clauses.
22362         (Is_Object_Reference): Treat a function call as an object reference only
22363         if its type is not Standard_Void_Type.
22364
22365 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
22366
22367         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
22368         to a variable that is statically known to be constant.
22369
22370 2005-09-01  Geert Bosch  <bosch@adacore.com>
22371             Robert Dewar  <dewar@adacore.com>
22372
22373         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
22374         (VAXGF_Safe_First): Idem.
22375
22376 2005-09-01  Robert Dewar  <dewar@adacore.com>
22377             Arnaud Charlet  <charlet@adacore.com>
22378
22379         * g-dirope.ads: Minor reformatting
22380         Document that bounds of result of Base_Name match the input index
22381         positions.
22382         Add documentation on environment variable syntax for Expand_Path
22383
22384         * gnat_ugn.texi: Update documentation to include mention of -m switches
22385         Document new treatment of wide characters in max line length
22386         style check.
22387         Remove -gnatL/-gnatZ switches, no longer used.
22388         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
22389         of -gnata switch.
22390
22391         * gnat_rm.texi: Add doc for two argument form of pragma
22392         Float_Representation.
22393         Add documentation for pragma No_Strict_Aliasing
22394         Add note that explicit component clause overrides pragma Pack.
22395         Add documentation of pragma Debug_Policy
22396
22397 2005-09-01  Matthew Heaney  <heaney@adacore.com>
22398
22399         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
22400         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
22401         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
22402         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
22403         draft (Draft 13, August 2005) of Ada Amendment 1.
22404
22405 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
22406
22407         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
22408         Note that the platform-specific version of g-soccon.ads for VMS is now
22409         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
22410         really is a package spec).
22411         Replace s-taspri-linux.ads by s-taspri-posix.ads
22412         Remove references to s-mastop-x86.adb
22413
22414         * system-vxworks-xscale.ads: Removed, no longer used.
22415         * s-vxwork-xscale.ads: Removed, no longer used.
22416
22417 2005-09-01  Robert Dewar  <dewar@adacore.com>
22418
22419         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
22420         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
22421         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
22422         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
22423         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
22424         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
22425         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
22426         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
22427         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
22428         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
22429         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
22430         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
22431         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
22432         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
22433         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
22434         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
22435         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
22436         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
22437         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
22438         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
22439         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
22440
22441 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
22442
22443         PR ada/23187
22444         * adaint.c
22445         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
22446
22447 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
22448             Doug Rupp  <rupp@adacore.com>
22449
22450         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
22451         when needed.
22452         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
22453         this code in the GNAT run-time.
22454
22455         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
22456
22457         PR ada/21053
22458         * init.c (__gnat_error_handler [many]): Mark "msg" as const
22459         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
22460
22461         (__gnat_inside_elab_final_code): Moved here from
22462         Standard_Library and only defined for the compiler.
22463         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
22464         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
22465         using RTPs because directly vectored Interrupt routines are not
22466         supported on this configuration.
22467         (getpid): Do not redefine this function on VxWorks when using RTPs
22468         because this primitive is well supported by the RTP libraries.
22469         (copy_msg): Correct the code that checks for buffer overflow.
22470         Discovered during code reading.
22471
22472 2005-08-29  Olivier Hainque  <hainque@adacore.com>
22473
22474         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
22475         a library level mutable variable with an initializer, tell
22476         build_allocator to ignore the initializer's size. It may not be large
22477         enough for all the values that might be assigned to the variable later
22478         on.
22479
22480 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
22481             Eric Botcazou  <ebotcazou@adacore.com>
22482
22483         * trans.c: Protect < in error msg with quote
22484         Replace GCC_ZCX by Back_End_Exceptions.
22485         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
22486         has been sufficiently aligned in the record.
22487
22488 2005-08-15  James E. Wilson  <wilson@specifix.com>
22489
22490         * system-linux-alpha.ads: Change ia64 to alpha.
22491
22492 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
22493
22494         * decl.c, utils.c: Fix comment typos.
22495
22496 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
22497
22498         * decl.c, init.c, initialize.c: Fix comment typos.
22499
22500 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
22501
22502         Make CONSTRUCTOR use VEC to store initializers.
22503         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
22504         CONSTRUCTOR_ELTS.
22505         * trans.c (extract_values): Likewise.
22506         * utils.c (convert, remove_conversions): Likewise.
22507         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
22508         gnat_build_constructor): Likewise.
22509
22510 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
22511
22512         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
22513         DECL_SECTION_NAME.
22514         (compare_field_bitpos): Likewise.
22515
22516 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
22517
22518         * utils.c (create_var_decl): Only set DECL_COMMON on
22519         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
22520         VAR_OR_FUNCTION_DECL_P.
22521
22522 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
22523
22524         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
22525         removed.
22526
22527 2005-07-07  Pascal Obry  <obry@adacore.com>
22528
22529         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
22530         returned type on Windows.
22531
22532         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
22533         routine.
22534
22535         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
22536         exception in this case.
22537         Simplify the code as "Image (Image'Range)" = "Image".
22538
22539 2005-07-07  Vincent Celier  <celier@adacore.com>
22540
22541         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
22542         the destructor/constructor attributes for <lib>final/<lib>init.
22543
22544         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
22545
22546 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
22547
22548         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
22549         type if the parameter is not passed by copy but reference by default.
22550
22551 2005-07-07  Javier Miranda  <miranda@adacore.com>
22552
22553         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
22554         Reimplementation of the support for abstract interface types in order
22555         to leave the code more clear and easy to maintain.
22556
22557         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
22558         abstract interface types in order to leave the code clearer and easier
22559         to maintain.
22560
22561         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
22562         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
22563         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
22564         appropriate entry of the secondary dispatch table.
22565         (Make_DT): Add code to inherit the secondary dispatch tables of
22566         the ancestors.
22567
22568         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
22569         implementing both functionalities by means of a common routine, each
22570         routine has its own code.
22571
22572 2005-07-07  Javier Miranda  <miranda@adacore.com>
22573
22574         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
22575
22576         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
22577         types:
22578         --
22579           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
22580         --
22581
22582         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
22583         use of tag incomplete types.
22584
22585         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
22586         give support to tagged incomplete types.
22587
22588         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
22589         expression is a discriminant reference and its type is private, as can
22590         happen within a stream operation for a mutable record, use the full
22591         view of the type to resolve the case alternatives.
22592         (Analyze_Assignment): Check wrong dereference of incomplete types.
22593
22594         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
22595         types.
22596
22597         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
22598         incomplete types.
22599
22600         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
22601         N_Incomplete_Type_Declaration nodes.
22602
22603         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
22604         Tag_Present to give support to tagged incomplete types:
22605         --
22606           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
22607         --
22608
22609 2005-07-07  Olivier Hainque  <hainque@adacore.com>
22610
22611         PR ada/22301
22612         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
22613         definitions for the Unwind wrappers in the compiler case.
22614
22615 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
22616             Javier Miranda  <miranda@adacore.com>
22617
22618         * par-load.adb (Load): If a child unit is loaded through a limited_with
22619         clause, each parent must be loaded as a limited unit as well.
22620
22621         * sem_ch10.adb (Previous_Withed_Unit): Better name for
22622         Check_Withed_Unit. Return true if there is a previous with_clause for
22623         this unit, whether limited or not.
22624         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
22625         the current unit.
22626         (Is_Visible_Through_Renamings): New local subprogram of install_limited
22627         _withed_unit that checks if some package installed through normal with
22628         clauses has a renaming declaration of package whose limited-view is
22629         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
22630         of the current Draft document for Ada 2005.
22631         (Analyze_Context): Complete the list of compilation units that
22632         are allowed to contain limited-with clauses. It also contains
22633         checks that were previously done by Install_Limited_Context_Clauses.
22634         This makes the code more clear and easy to maintain.
22635         (Expand_Limited_With_Clause) It is now a local subprogram of
22636         Install_Limited_Context_Clauses, and contains the code that adds
22637         the implicit limited-with clauses for parents of child units.
22638         This functionality was prevously done by Analyze_Context.
22639
22640         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
22641         incomplete type.
22642
22643         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
22644         been erroneously named in a limited-with clause of its own context.
22645         In this case the error has been previously notified by Analyze_Context.
22646
22647 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
22648
22649         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
22650         generic package that contains local declarations with the same name.
22651         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
22652
22653 2005-07-07  Bernard Banner  <banner@adacore.com>
22654
22655         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
22656         ia64 platform only on platforms that you the GCC unwind library
22657         rather than the system unwind library.
22658
22659 2005-07-07  Thomas Quinot  <quinot@adacore.com>
22660
22661         * expect.c: Minor reformatting
22662
22663 2005-07-07  Sergey Rybin  <rybin@adacore.com>
22664
22665         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
22666         --no-separate-is
22667
22668         * gnat_ugn.texi: Add description for new gnatpp option
22669         (--no-separate-is)
22670
22671 2005-07-04  Thomas Quinot  <quinot@adacore.com>
22672
22673         * g-expect-vms.adb, g-expect.ads, g-expect.adb
22674         (Get_Command_Output): New subprogram to launch a process and get its
22675         standard output as a string.
22676
22677 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
22678             Olivier Hainque  <hainque@adacore.com>
22679
22680         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
22681         fetch a code-range descriptor associated with the machine state. On
22682         failure set the machine state's PC to 0; on success, pass the
22683         descriptor to exc_virtual_unwind.
22684
22685         * init.c (Tru64 section): New function __gnat_set_code_loc.
22686
22687 2005-07-04  Vincent Celier  <celier@adacore.com>
22688
22689         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
22690         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
22691         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
22692         Remove all auto-initialization code, as this is now done through the
22693         constructor mechanism.
22694
22695         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
22696         __gnat_sals_init_using_constructors): New functions.
22697
22698         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
22699         Linker_Constructor and Linker_Destructor when switch -a is used.
22700
22701         * bindusg.adb: Add line for new switch -a
22702
22703         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
22704         (Gnatbind): When switch -a is used, check if it is allowed
22705
22706         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
22707
22708 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
22709
22710         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
22711         This prevents us from hitting a limitation during the debug info
22712         generation when using stabs.
22713         (Prims_Ptr): Likewise.
22714
22715 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
22716             Ed Schonberg  <schonberg@adacore.com>
22717             Javier Miranda  <miranda@adacore.com>
22718
22719         * checks.adb (Null_Exclusion_Static_Checks): In the case of
22720         N_Object_Declaration, only perform the checks if the Object_Definition
22721         is not an Access_Definition.
22722
22723         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
22724         where the parent of an the access definition is an N_Object_Declaration
22725         when determining the Associated_Node_For_Itype and scope of an
22726         anonymous access-to-subprogram type.
22727
22728         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
22729         Corresponding_Spec on the body created for a null procedure. Add ???
22730         comment. Remove New_Copy_Tree call on body argument to
22731         Set_Body_To_Inline.
22732
22733         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
22734         discriminants, use the type of the actual as well, because the
22735         discriminants may be read by the called subprogram.
22736
22737         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
22738         access type we do not need to handle non-limited views.
22739         (Build_Derived_Record_Type): Additional check to check that in case of
22740         private types, interfaces are only allowed in private extensions.
22741
22742 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
22743
22744         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
22745         <Pragma_Linker_Destructor>: Likewise.
22746
22747         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
22748         Pragma_Linker_Destructor.
22749
22750         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
22751         ATTR_LINK_DESTRUCTOR.
22752         (static_ctors, static_dtors): New variables.
22753
22754         * misc.c (gnat_expand_body): Output current function as constructor
22755         and destructor if requested.
22756
22757         * par-prag.adb: Add processing for pragma Linker_Constructor and
22758         Linker_Destructor.
22759
22760         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
22761         extracted from Check_Interrupt_Or_Attach_Handler.
22762         (Check_Interrupt_Or_Attach_Handler): Invoke it.
22763         Implement pragma Linker_Constructor and Linker_Destructor with the
22764         help of Find_Unique_Parameterless_Procedure.
22765         Replace Name_Alias with Name_Target for pragma Linker_Alias.
22766
22767         * snames.h, snames.ads, snames.adb:
22768         Add Name_Linker_Constructor and Name_Linker_Destructor.
22769         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
22770         * snames.adb: Remove Name_Alias.
22771
22772         * trans.c: Include cgraph.h.
22773         (build_global_cdtor): New function.
22774         (Compilation_Unit_to_gnu): Build global constructor and destructor if
22775         needed.
22776         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
22777         of objects too.
22778         (addressable_p) <COMPONENT_REF>: Unconditionally test
22779         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
22780
22781         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
22782         variable if it is external.
22783
22784         (static_ctors, static_dtors): New global variables.
22785         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
22786         <ATTR_LINK_DESTRUCTOR>: Likewise.
22787         (end_subprog_body): Chain function as constructor and destructor
22788         if requested.
22789
22790         * exp_util.adb (Force_Evaluation): Unconditionally invoke
22791         Remove_Side_Effects with Variable_Ref set to true.
22792         (Remove_Side_Effects): Handle scalar types first. Use a renaming
22793         for non-scalar types even if Variable_Ref is true and for class-wide
22794         expressions.
22795
22796 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
22797
22798         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
22799         to prevent spurious warnings.
22800
22801 2005-07-04  Thomas Quinot  <quinot@adacore.com>
22802
22803         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
22804         Itypes. Itypes are really unexpected there.
22805         (Build_TypeCode_Function): Generalise special processing for Itypes to
22806         handle the case of numeric implicit base types as well as enumerated
22807         ones.
22808
22809 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
22810
22811         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
22812         controlled, indicate the expected type of the dereference that is
22813         created for the call to Deep_Finalize, to prevent spurious errors when
22814         the designated type is private and completed with a derivation from
22815         another private type.
22816
22817 2005-07-04  Vincent Celier  <celier@adacore.com>
22818
22819         * make.adb (Change_To_Object_Directory): When unable to change the
22820         current dir to the object directory, output the full path of the
22821         directory.
22822
22823 2005-07-04  Matthew Gingell  <gingell@adacore.com>
22824
22825         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
22826
22827         * indepsw-linux.adb: Replace by...
22828
22829         * indepsw-gnu.adb: ...this new file
22830
22831 2005-07-04  Vincent Celier  <celier@adacore.com>
22832
22833         * mlib-prj.adb (Auto_Initialize): New constant String
22834         (SALs_Use_Constructors): New Boolean function
22835         (Build_Library): Call gnatbind with Auto_Initialize switch when
22836         SALs_Use_Constructors returns True.
22837
22838         * mlib-tgt.ads: Minor reformatting
22839
22840         * mlib-utl.ads: Minor reformatting
22841
22842         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
22843
22844 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
22845
22846         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
22847         single protected declarations can have an interface list.
22848         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
22849         with seriously malformed entry declarations, and lead to compilation
22850         abandoned messages.
22851
22852 2005-07-04  Javier Miranda  <miranda@adacore.com>
22853
22854         * par-load.adb: Load the context items in two rounds.
22855
22856 2005-07-04  Robert Dewar  <dewar@adacore.com>
22857
22858         * scng.adb: Do not consider Mod used as an attribute to be a keyword
22859
22860 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
22861             Javier Miranda  <miranda@adacore.com>
22862
22863         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
22864         type extension needs a limited view.
22865         Remove previous restriction on private types available through the
22866         limited-view (only tagged private types were previously allowed).
22867         (Install_Withed_Unit): In the code that implements the
22868         legality rule given in AI-377, exclude a child unit with the name
22869         Standard, because it is a homonym of the Standard environment package.
22870
22871 2005-07-04  Thomas Quinot  <quinot@adacore.com>
22872
22873         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
22874         overloaded function call, carry interpretations from the original tree
22875         to the copy.
22876
22877 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
22878
22879         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
22880         types check whether some designated type is a limited view, and use
22881         the non-limited view if available.
22882
22883 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
22884
22885         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
22886         constraint of full view of a private view T1 if present, when T2 is a
22887         discriminated full view.
22888
22889 2005-07-04  Thomas Quinot  <quinot@adacore.com>
22890
22891         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
22892         actual that is a view conversion of a bit packed array reference.
22893
22894 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
22895
22896         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
22897         present before checking whether an interface type covers a synchronized
22898         type.
22899
22900 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
22901
22902         * sem_util.adb (Is_Object_Reference): An indexed or selected component
22903         whose prefix is an implicit dereference is an object reference. Removes
22904         spurious errors when compiling with -gnatc.
22905
22906 2005-07-04  Robert Dewar  <dewar@adacore.com>
22907
22908         PR ada/22039
22909         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
22910
22911 2005-07-04  Matthew Gingell  <gingell@adacore.com>
22912
22913         * tracebak.c: Enable tracebacks on ia64 platforms
22914
22915 2005-07-04  Vincent Celier  <celier@adacore.com>
22916
22917         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
22918         the GNAT BIND command, as gnatbind accepts multiples ALI files with
22919         the -L or -n switches.
22920
22921 2005-07-04  Vincent Celier  <celier@adacore.com>
22922
22923         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
22924         correctly computed and the main project data is not modified while
22925         doing so.
22926         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
22927         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
22928         c++linker as this does not work on some platforms.
22929
22930 2005-07-04  Matthew Heaney  <heaney@adacore.com>
22931
22932         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
22933         was changed.
22934         * a-coinve.adb: Perform constraint checks explicitly.
22935
22936 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22937             Thomas Quinot  <quinot@adacore.com>
22938
22939         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
22940         new target gen-soccon.
22941
22942 2005-07-04  Robert Dewar  <dewar@adacore.com>
22943
22944         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
22945
22946 2005-07-04  Thomas Quinot  <quinot@adacore.com>
22947
22948         * g-socket.ads (Check_Selector): Minor rewording of comment.
22949
22950 2005-07-04  Vincent Celier  <celier@adacore.com>
22951
22952         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
22953
22954 2005-07-04  Thomas Quinot  <quinot@adacore.com>
22955
22956         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
22957
22958 2005-07-04  Sergey Rybin  <rybin@adacore.com>
22959
22960         * gnat_ugn.texi: Add description of --eol gnatpp option
22961
22962 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
22963             Thomas Quinot  <quinot@adacore.com>
22964
22965         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
22966         if the user wants all calls of a subprogram to be flagged,
22967         independently of whether they are made from within the same unit or
22968         another unit.
22969         Mention restriction for pragma Linker_Alias on some platforms.
22970         Document pragma Linker_Constructor and Linker_Destructor.
22971         Rewrite documentation of Weak_External, Linker_Section and
22972         Linker_Alias pragmas.
22973
22974 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
22975
22976         * s-stausa.ads, s-stausa.adb: New files.
22977
22978 2005-06-30  Kelley Cook
22979
22980         * all files:  Update FSF address in copyright headers.
22981         * gen-soccon.co (main): Output new FSF address in generated files.
22982
22983 2005-06-28  Paul Brook  <paul@codesourcery.com>
22984
22985         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
22986
22987 2005-06-14  Olivier Hainque  <hainque@adacore.com>
22988             Eric Botcazou  <ebotcazou@adacore.com>
22989
22990         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
22991         exc_unwind, now that we are generating proper .debug_frame output for
22992         that target.
22993
22994         * tracebak.c: Remove the mips-irix section, as we are now using the
22995         s-mastop based unwinder again.
22996         Under SPARC/Solaris, take into account the stack bias to compute the
22997         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
22998         ABI.
22999
23000 2005-06-14  Doug Rupp  <rupp@adacore.com>
23001
23002         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
23003
23004         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
23005
23006 2005-06-14  Pascal Obry  <obry@adacore.com>
23007
23008         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
23009         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
23010         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
23011         package name).
23012
23013         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
23014         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
23015         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
23016         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
23017         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
23018         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
23019         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
23020         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
23021         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
23022         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
23023         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
23024         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
23025         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
23026         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
23027         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
23028         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
23029         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
23030         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
23031         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
23032         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
23033         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
23034         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
23035         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
23036         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
23037         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
23038         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
23039         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
23040         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
23041         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
23042         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
23043         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
23044         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
23045         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
23046         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
23047         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
23048         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
23049         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
23050         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
23051         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
23052         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
23053         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
23054         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
23055         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
23056         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
23057         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
23058         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
23059         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
23060         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
23061         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
23062         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
23063         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
23064         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
23065         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
23066         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
23067         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
23068         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
23069         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
23070         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
23071         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
23072         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
23073         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
23074         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
23075         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
23076         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
23077         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
23078         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
23079         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
23080         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
23081         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
23082         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
23083         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
23084         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
23085         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
23086         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
23087         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
23088         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
23089         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
23090         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
23091         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
23092         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
23093         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
23094         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
23095         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
23096         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
23097         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
23098         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
23099         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
23100         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
23101         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
23102         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
23103         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
23104         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
23105         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
23106         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
23107         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
23108         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
23109         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
23110         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
23111         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
23112         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
23113         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
23114         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
23115         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
23116         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
23117         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
23118         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
23119         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
23120         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
23121         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
23122         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
23123         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
23124         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
23125         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
23126         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
23127         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
23128         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
23129         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
23130         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
23131         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
23132         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
23133         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
23134         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
23135         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
23136         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
23137         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
23138         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
23139         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
23140         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
23141         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
23142         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
23143         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
23144         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
23145         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
23146
23147 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
23148             Arnaud Charlet  <charlet@adacore.com>
23149
23150         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
23151         longer protected objects. They have been replaced by lower-level
23152         suspension objects made up by a mutex and a condition variable (or
23153         their equivalent given a particular OS) plus some internal data to
23154         reflect the state of the suspension object.
23155         (Initialize, Finalize): Add this initialization procedure for
23156         Suspension_Object, which is a controlled type.
23157         (Finalize): Add the finalization procedure for Suspension_Object,
23158         which is a controlled type.
23159
23160         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
23161         Ada.Synchronous_Task_Control because there is no longer a need for a
23162         VxWorks specific version of this package. Target dependencies
23163         has been moved to System.Task_Primitives.Operations.
23164
23165         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
23166         longer needed.
23167         (InitializeCriticalSection, EnterCriticalSection,
23168         LeaveCriticalSection, DeleteCriticalSection): Replace the type
23169         pCriticalSection by an anonymous access type so that we avoid problems
23170         of accessibility to local objects.
23171
23172         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
23173         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
23174         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
23175         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
23176         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
23177         set the environment task mask here.
23178         (Current_State): Add this function that returns the state of the
23179         suspension object.
23180         (Set_False): Add this procedure that sets the state of the suspension
23181         object to False.
23182         (Set_True): Add this procedure that sets the state of the suspension
23183         object to True, releasing the task that was suspended, if any.
23184         (Suspend_Until_True): Add this procedure that blocks the calling task
23185         until the state of the object is True. Program_Error is raised if
23186         another task is already waiting on that suspension object.
23187         (Initialize): Add this procedure for initializing the suspension
23188         object. It initializes the mutex and the condition variable which are
23189         used for synchronization and queuing, and it sets the internal state
23190         to False.
23191         (Finalize): Add this procedure for finalizing the suspension object,
23192         destroying the mutex and the condition variable.
23193
23194         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
23195         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
23196         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
23197         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
23198         which provides a low-level abstraction (using operating system
23199         primitives) for Ada.Synchronous_Task_Control.
23200         This object is made up by a mutex (for ensuring mutual exclusion), a
23201         condition variable (for queuing threads until the condition is
23202         signaled), a Boolean (State) indicating whether the object is open,
23203         and a Boolean (Waiting) reflecting whether there is a task already
23204         suspended on this object.
23205
23206         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
23207         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
23208         s-intman-vms.ads, s-intman-mingw.adb,
23209         (Initialize_Interrupts): Removed, no longer used.
23210
23211         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
23212         (Setup_Interrupt_Mask): New procedure.
23213
23214         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
23215
23216         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
23217
23218         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
23219         this is no longer done in the body of s-taprop
23220         (Server_Task): Explicitely test for Pending_Action in case
23221         System.Parameters.No_Abort is True.
23222
23223         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
23224         is no longer done in the body of s-taprop
23225
23226 2005-06-14  Robert Dewar  <dewar@adacore.com>
23227
23228         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
23229         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
23230         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
23231         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
23232         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
23233         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
23234         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
23235         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
23236         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
23237         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
23238         system-linux-hppa.ads, system-vms_64.ads,
23239         system-vxworks-alpha.ads: Minor comment update for
23240         AI-362 (unit is Pure).
23241
23242         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
23243         Add pragma Pure_05 for AI-362
23244         Make remaining conversion functions obsolescent in Ada 95
23245
23246         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
23247         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
23248         Add entries for a-wichun and a-zchuni
23249         Add a-widcha a-zchara for AI-395
23250         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
23251
23252         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
23253         Add entries for a-wichun.o and a-zchuni.o
23254         Entries for a-widcha.o and a-zchara.o
23255         Add entry for a-chacon.o
23256
23257         * a-ztenau.adb: Add with of Ada.Characters.Conversions
23258
23259         * a-chacon.ads, a-chacon.adb: New files.
23260
23261         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
23262         categorization violations.
23263
23264         * a-strmap.ads: Add pragma Pure_05 for AI-362
23265         * a-strmap.ads: Add note on implicit categorization for AI-362
23266
23267         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
23268
23269         * par-prag.adb: Dummy entry for pragma Persistent_BSS
23270         Set Ada_Version_Explicit, for implementation of AI-362
23271         Add processing for pragma Pure_05 and Preelaborate_05
23272         Add entry for Assertion_Policy pragma
23273
23274         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
23275         when needed for proper processing of categorization stuff
23276
23277         * sem_cat.adb:
23278         For several cases, make errors in preealborate units warnings,
23279         instead of errors, if GNAT_Mode is set. For AI-362.
23280
23281         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
23282         preelaborate unit is now warning if in GNAT mode
23283
23284         * s-stoele.ads: Document AI-362 for pragma preelaborate
23285
23286 2005-06-14  Doug Rupp  <rupp@adacore.com>
23287
23288         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
23289         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
23290         Default_Exception_Msg_Max_Length: new parameter.
23291
23292         * a-except.ads: (Exception_Msg_Max_Length): Set to
23293         System.Parameters.Default_Exception_Msg_Max_Length
23294         Add pragma Preelaborate_05 for AI-362
23295         Add warnings off to allow categorization violations for AI-362
23296
23297 2005-06-14  Vincent Celier  <celier@adacore.com>
23298
23299         * gnatsym.adb: Adapt to modification of package Symbols: procedure
23300         Process is now in package Processing.
23301
23302         * symbols.ads, symbols.adb:
23303         (Processing): New package, containing procedure Process
23304
23305         * symbols-vms-alpha.adb:
23306         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
23307
23308         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
23309         symbols-processing-vms-ia64.adb: New files.
23310
23311 2005-06-14  Pascal Obry  <obry@adacore.com>
23312
23313         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
23314         implementation. This new version generates the proper DllMain routine
23315         to initialize the SAL. The DllMain is generated in Ada and compiled
23316         before being added as option to the library build command.
23317
23318 2005-06-14  Doug Rupp  <rupp@adacore.com>
23319             Pascal Obry  <obry@adacore.com>
23320
23321         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
23322         call to decc$translate_vms.
23323         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
23324         need to remove those quotes before catenating the filename.
23325         (__gnat_locate_exec_on_path): improvements to the Win32 section:
23326         * avoid allocating the memory twice for better efficiency;
23327         * allocate 32K buffer for environment expansion as suggested by MSDN;
23328         * prepend ".;" to the path so that current directory is searched too.
23329
23330 2005-06-14  Robert Dewar  <dewar@adacore.com>
23331
23332         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
23333         instead of raising CE (AI-241)
23334         Add warnings off to allow categorization violations for AI-362
23335
23336 2005-06-14  Robert Dewar  <dewar@adacore.com>
23337
23338         * ali-util.adb, gnatbind.adb: Remove references to
23339         Force_RM_Elaboration_Order.
23340
23341         * switch-b.adb: Remove recognition of -f switch
23342
23343 2005-06-14  Pascal Obry  <obry@adacore.com>
23344
23345         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
23346         implementation which is slightly more efficient.
23347
23348 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
23349             Javier Miranda  <miranda@adacore.com>
23350             Ed Schonberg  <schonberg@adacore.com>
23351             Hristian Kirtchev  <kirtchev@adacore.com>
23352
23353         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
23354         allocator's designated type is a class-wide type, and compiling for
23355         Ada 2005, emit a run-time check that the accessibility level of the
23356         type given in the allocator's expression is not deeper than the level
23357         of the allocator's access type.
23358
23359         (Tagged_Membership): Modified to gives support to abstract interface
23360         types.
23361
23362         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
23363         Access_Level.
23364         (Descendant_Tag): New predefined function
23365         (Is_Descendant_At_Same_Level): New predefined function
23366         (Get_Access_Level): New private function
23367         (Set_Access_Level): New private procedure
23368         (IW_Membership): New function. Given the tag of an object and the tag
23369         associated with an interface, evaluate if the object implements the
23370         interface.
23371         (Register_Interface_Tag): New procedure used to initialize the table of
23372         interfaces used by the IW_Membership function.
23373         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
23374         of the dispatch table.
23375         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
23376         table of interfaces of the parent.
23377         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
23378         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
23379         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
23380         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
23381         Ada 2005 semantics for the new predefined function.
23382
23383         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
23384         call to Descendant_Tag rather than Internal_Tag.
23385         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
23386         the accessibility level of the attribute's Item parameter is not deeper
23387         than the level of the attribute's prefix type. Tag_Error is raised if
23388         the check fails. The check is only emitted for Ada_05.
23389         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
23390         requested stream attribute, use it.
23391         (Expand_N_Attribute_Reference): If the designated type is an interface
23392         then rewrite the referenced object as a conversion to force the
23393         displacement of the pointer to the secondary dispatch table.
23394         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
23395         is a dereference of an object with a constrained partial view.
23396
23397         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
23398         type is a class-wide type, emit a run-time check that the accessibility
23399         level of the returned object is not deeper than the level of the
23400         function's master (only when compiling for Ada 2005).
23401
23402         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
23403         Action_Nb_Arg): Add entries for new Get_Access_Level and
23404         Set_Access_Level routines in these tables.
23405         (Make_DT): Generate a call to set the accessibility level of the
23406         tagged type in its TSD.
23407         (Make_DT): Code cleanup. The functionality of generating all the
23408         secondary dispatch tables has been moved to freeze_record_type.
23409         (Make_Abstract_Interface_DT): Minor code cleanup.
23410         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
23411         this subprogram implements a new algorithm that provides the
23412         same functionality and it is more clear in case of primitives
23413         associated with abstract interfaces.
23414         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
23415         clean up, the functionality of this subprogram is now provided
23416         by Set_All_DT_Position.
23417         (Write_DT): New subprogram: a debugging procedure designed to be called
23418         within gdb to display the dispatch tables associated with a tagged
23419         type.
23420         (Collect_All_Interfaces): New subprogram that collects the whole list
23421         of interfaces that are directly or indirectly implemented by a tagged
23422         type.
23423         (Default_Prim_Op_Position): New subprogram that returns the fixed
23424         position in the dispatch table of the default primitive operations.
23425         (Expand_Interface_Actuals): New subprogram to generate code that
23426         displaces all the actuals corresponding to class-wide interfaces to
23427         reference the interface tag of the actual object.
23428         (Expand_Interface_Conversion): New subprogram. Reference the base of
23429         the object to give access to the interface tag associated with the
23430         secondary dispatch table.
23431         (Expand_Interface_Thunk): New subprogram that generates the code of the
23432         thunk. This is required for compatibility with the C+ ABI.
23433         (Make_Abstract_Interface_DT): New subprogram that generate the
23434         declarations for the secondary dispatch tables associated with an
23435         abstract interface.
23436         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
23437         attribute for each primitive operation covering interface subprograms
23438         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
23439         These subprograms were upgraded to give support to abstract interfaces
23440
23441         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
23442         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
23443         RE_Set_Access_Level.
23444         (RE_Unit_Table): Add entries for new Ada.Tags operations.
23445         Add support to call the followig new run-time subprograms:
23446         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
23447
23448         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
23449         match its full declaration when both have an access definition with
23450         statically matching designated subtypes.
23451         (Analyze_Component_Declaration): Delete commented out code that was
23452         incorrectly setting the scope of an anonymous access component's type.
23453         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
23454         an access discriminant when the containing type is nonlimited.
23455         (Make_Incomplete_Type_Declaration): Create an incomplete type
23456         declaration for a record type that includes self-referential access
23457         components.
23458         (Check_Anonymous_Access_Types): Before full analysis of a record type
23459         declaration, create anonymous access types for each self-referential
23460         access component.
23461         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
23462         an access component in this context is a Local_Anonymous_Access, for
23463         proper accessibility checks.
23464         (Access_Definition): Set properly the scope of the anonymous access type
23465         created for a stand-alone access object.
23466         (Find_Type_Of_Object): An object declaration may be given with an access
23467         definition.
23468         (Complete_Subprograms_Derivation): New subprogram used to complete
23469         type derivation of private tagged types implementing interfaces.
23470         In this case some interface primitives may have been overriden
23471         with the partial-view and, instead of re-calculating them, they
23472         are included in the list of primitive operations of the full-view.
23473         (Build_Derived_Record_Type): Modified to give support to private
23474         types implemening interfaces.
23475         (Access_Definition): Reject ALL on anonymous access types.
23476         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
23477         type derivation to occur at a deeper accessibility level than the
23478         parent type.
23479         For the case of derivation within a generic body however, disallow the
23480         derivation if the derived type has an ancestor that is a formal type
23481         declared in the formal part of an enclosing generic.
23482         (Analyze_Object_Declaration): For protected objects, remove the check
23483         that they cannot contain interrupt handlers if not declared at library
23484         level.
23485         (Add_Interface_Tag_Components): New subprogram to add the tag components
23486         corresponding to all the abstract interface types implemented by a
23487         record type or a derived record type.
23488         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
23489         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
23490         Process_Full_View, Record_Type_Declaration): Modified to give
23491         support to abstract interface types
23492         (Collect_Interfaces): New subprogram that collects the list of
23493         interfaces that are not already implemented by the ancestors
23494         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
23495         when partial view has no discriminants and full view has defaults.
23496         (Constrain_Access): Reject a constraint on a general access type
23497         if the discriminants of the designated type have defaults.
23498         (Access_Subprogram_Declaration): Associate the Itype node with the inner
23499         full-type declaration or subprogram spec. This is required to handle
23500         nested anonymous declarations.
23501         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
23502         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
23503         Process_Full_View, Record_Type_Declaration): Modified to give
23504         support to abstract interface types
23505         (Derive_Subprograms): Addition of a new formal to indicate if
23506         we are in the case of an abstact-interface derivation
23507         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
23508         to the specification because it is requied to analyze all the
23509         identifiers found in a list of interfaces
23510
23511         * debug.adb: Complete documentation of flag "-gnatdZ"
23512
23513         * exp_ch3.adb: Implement config version of persistent_bss pragma
23514         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
23515         testing for TSS presence to properly enforce visibility rules.
23516         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
23517         Make_Abstract_Interfaces_DT to generate the secondary tables
23518         associated with abstract interfaces.
23519         (Build_Init_Procedure): Modified to initialize all the tags
23520         corresponding.
23521         (Component_Needs_Simple_Initialization): Similar to other tags,
23522         interface tags do not need initialization.
23523         (Freeze_Record_Type): Modified to give support to abstract interface
23524         types.
23525         (Expand_N_Object_Declaration): Do not generate an initialization for
23526         a scalar temporary marked as internal.
23527
23528         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
23529         in-out parameter that is a component in an initialization procedure,
23530         whose constraint might depend on discriminants, and that may be
23531         misaligned because of packing or representation clauses.
23532         (Is_Legal_Copy): New predicate to determine whether a possibly
23533         misaligned in-out actual can actually be passed by copy/return. This
23534         is an error in case the type is by_reference, and a warning if this is
23535         the consequence of a DEC import pragma on the subprogram.
23536         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
23537         interface types
23538         (Expand_Inlined_Call): Mark temporary generated for the return value as
23539         internal, so that no useless scalar normalization is generated for it.
23540         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
23541         null procedure can always be inlined.
23542         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
23543         procedure, generate an explicit empty body for it.
23544
23545         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
23546         Given a type implementing an interface, returns the corresponding
23547         access_disp_table value.
23548         (Find_Interface_Tag): New subprogram. Given a type implementing an
23549         interface, returns the record component containing the tag of the
23550         interface.
23551         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
23552         previous ones that return the corresponding tag and access_disp_table
23553         entities.
23554         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
23555         is a predefined primitive operation.
23556         (Expand_Subtype_From_Expr): If the expression is a selected component
23557         within an initialization procedure, compute its actual subtype, because
23558         the component may depend on the discriminants of the enclosing record.
23559
23560         * i-cpp.ads, i-cpp.adb:
23561         This package has been left available for compatibility with previous
23562         versions of the frontend. As part of the new layout this is now a
23563         dummy package that uses declarations available at a-tags.ads
23564
23565         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
23566         "constant access" and "aliased [constant] access" when not compiling
23567         with -gnat05.
23568         Suppress Ada 2005 keyword warning if -gnatwY used
23569         (P_Identifier_Declarations): Add support for object declarations with
23570         access definitions.
23571         (Private_Extension_Declaration): Complete the documentation
23572         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
23573         attribute in case of private extension declaration
23574         (P_Type_Declaration): Mark as "abstract" the type declarations
23575         corresponding with protected, synchronized and task interfaces
23576         (P_Declarative_Items): "not" and "overriding" are overriding indicators
23577         for a subprogram or instance declaration.
23578
23579         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
23580         instantiation that is a dispatching operation has controlling access
23581         parameters that are null excluding.
23582         Save and restore Ada_Version_Explicit, for implementation of AI-362
23583         (Validate_Derived_Type_Instance): Add check for abstract interface
23584         types.
23585         (Analyze_Formal_Package): Establish Instantiation source for the copy of
23586         the generic that is created to represent the formal package.
23587         (Analyze_Package_Instantiation): Instantiate body immediately if the
23588         package is a predefined unit that contains inlined subprograms, and
23589         we are compiling for a Configurable_Run_Time.
23590         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
23591         If the program has a null default, generate an empty body for it.
23592
23593         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
23594         error message condition, null procedures are correctly detected now.
23595         (New_Overloaded_Entity): Bypass trivial overriding indicator check
23596         for subprograms in the context of protected types. Instead, the
23597         indicator is examined in Sem_Ch9 while analysing the subprogram
23598         declaration.
23599         (Check_Overriding_Indicator): Check consistency of overriding indicator
23600         on subprogram stubs as well.
23601         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
23602         the library level.
23603         (Analize_Subprogram_Specification): When analyzing a subprogram in which
23604         the type of the first formal is a concurrent type, replace this type
23605         by the corresponding record type.
23606         (Analyze_Subprogram_Body): Undo the previous work.
23607         (Analyze_Procedure_Call): If the call has the form Object.Op, the
23608         analysis of the prefix ends up analyzing the call itself, after which
23609         we are done.
23610         (Has_Interface_Formals): New subprogram subsidiary to analyze
23611         subprogram_specification that returns true if some non
23612         class-wide interface subprogram is found
23613         (New_Overloaded_Entity): Modified to give support to abstract
23614         interface types
23615         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
23616         access to subprograms must be recursive.
23617         (Is_Unchecked_Conversion): Improve the test that recognizes
23618         instantiations of Unchecked_Conversion, and allows them in bodies that
23619         are to be inlined by the front-end. When the body comes from an
23620         instantiation, a reference to Unchecked_Conversion will be an
23621         Expanded_Name, even though the body has not been analyzed yet.
23622         Replace Is_Overriding and Not_Overriding in subprogram_indication with
23623         Must_Override and Must_Not_Override, to better express intent of AI.
23624         (Analyze_Subprogram_Body): If an overriding indicator is given, check
23625         that it is consistent with the overrinding status of the subprogram
23626         at this point.
23627         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
23628         always inlined.
23629         If the subprogram is a null procedure, indicate that it does not need
23630         a completion.
23631
23632         * sem_disp.adb (Check_Controlling_Type): Give support to entities
23633         available through limited-with clauses.
23634         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
23635         allowed as the last primitive of a tagged type if it has no previous
23636         spec.
23637         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
23638         to give support to abstract interface types
23639
23640         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
23641         in the case where the target type is an anonymous access type of an
23642         object or component (that is, when Is_Local_Anonymous_Access is true).
23643         Prevent the special checks for conversions of access discriminants in
23644         the case where the discriminant belongs to a nonlimited type, since
23645         such discriminants have their accessibility level defined in the same
23646         way as a normal component of an anonymous access type.
23647         (Resolve_Allocator): When an allocator's designated type is a class-wide
23648         type, check that the accessibility level of type given in the
23649         allocator's expression or subtype indication is not statically deeper
23650         than the level of the allocator's access type.
23651         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
23652         name in a discriminant constraint of a record component.
23653         (Resolve_Explicit_Dereference): Do not check whether the type is
23654         incomplete when the dereference is a use of an access discriminant in
23655         an initialization procedure.
23656         (Resolve_Type_Conversion): Handle conversions to abstract interface
23657         types.
23658         (Valid_Tagged_Conversion): The conversion of a tagged type to an
23659         abstract interface type is always valid.
23660         (Valid_Conversion): Modified to give support to abstract interface types
23661         (Resolve_Actuals): Enable full error reporting on view conversions
23662         between unrelated by_reference array types.
23663         The rule for view conversions of arrays with aliased components is
23664         weakened in Ada 2005.
23665         Call to obsolescent subprogram is now considered to be a violation of
23666         pragma Restrictions (No_Obsolescent_Features).
23667         (Check_Direct_Boolean_Operator): If the boolean operation has been
23668         constant-folded, there is nothing to check.
23669         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
23670         check on possible violation of restriction No_Direct_Boolean_Operators
23671         until after expansion of operands, to prevent spurious errors when
23672         operation is constant-folded.
23673
23674         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
23675         Has_Compatible_Type): Modified to give support to abstract interface
23676         types.
23677         (Interface_Present_In_Ancestor): New function to theck if some ancestor
23678         of a given type implements a given interface
23679
23680         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
23681         prefix is a parameterless function that returns an access_to_procedure.
23682         (Transform_Object_Operation): Handle properly function calls of the
23683         form Obj.Op (X), which prior to analysis appear as indexed components.
23684         (Analyze_One_Call): Complete the error notification to help new Ada
23685         2005 users.
23686         (Analyze_Allocator): For an allocator without an initial value, where
23687         the designated type has a constrained partial view, a discriminant
23688         constraint is illegal.
23689
23690 2005-06-14  Robert Dewar  <dewar@adacore.com>
23691
23692         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
23693         do with treatment of Set_Col when positioned at end of line character.
23694
23695 2005-06-14  Robert Dewar  <dewar@adacore.com>
23696
23697         * atree.adb: (Elist*): Protect against uninitialized field
23698
23699 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
23700
23701         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
23702         for an attribute reference that returns an access type.
23703         (Apply_Discriminant_Check): No need for check if (designated) type has
23704         constrained partial view.
23705
23706         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
23707         both bound checks, rather than a conjunction.
23708         (Insert_Valid_Check): If the expression is an actual that is an indexed
23709         component of a bit-packed array, force expansion of the packed element
23710         reference, because it is specifically inhibited elsewhere.
23711
23712 2005-06-14  Vincent Celier  <celier@adacore.com>
23713
23714         * clean.adb (Clean_Project): Correctly delete executable specified as
23715         absolute path names.
23716
23717         * make.adb (Gnatmake): Allow relative executable path names with
23718         directory information even when project files are used.
23719         (Change_To_Object_Directory): Fail gracefully when unable to change
23720         current working directory to object directory of a project.
23721         (Gnatmake): Remove exception handler that could no longer be exercized
23722         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
23723         may be deallocated by Normalize_Arguments.
23724         (Collect_Arguments): Eliminate empty arguments
23725
23726         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
23727         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
23728         (Check_Project): Return False when Project is No_Project. Return True
23729         when All_Projects is True.
23730         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
23731         All_Projects to True.
23732         Minor reformatting
23733
23734 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
23735             Javier Miranda  <miranda@adacore.com>
23736             Thomas Quinot  <quinot@adacore.com>
23737             Robert Dewar  <dewar@adacore.com>
23738             Hristian Kirtchev  <kirtchev@adacore.com>
23739             Gary Dismukes  <dismukes@adacore.com>
23740
23741         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
23742         anonymous access types, to indicate that the accessibility level of
23743         the type is determined by that of the enclosing declaration.
23744         (Has_Persistent_BSS): New flag
23745         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
23746         of this attribute with functions.
23747         (Is_Primitive_Wrapper): Remove the barrier.
23748         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
23749         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
23750         New subprograms.
23751         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
23752         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
23753         New subprograms.
23754         (Is_Pure_Unit_Access_Type): New flag
23755         (Abstract_Interfaces): Complete the assertion to cover all usages.
23756         (Set_Is_Interface): Complete the assertion to cover all usages.
23757         (Is_Primitive_Wrapper): New attribute.
23758         (Is_Obsolescent): Now applies to all entities (though it is only set
23759         for subprograms currently)
23760         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
23761         which solves various problems concerning access subtypes.
23762         (Has_Persistent_BSS): New flag
23763         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
23764         Remove these subprograms because this attribute is currently
23765         not used.
23766         New entity flags:
23767         Has_Specified_Stream_Input (Flag190)
23768         Has_Specified_Stream_Output (Flag191)
23769         Has_Specified_Stream_Read (Flag192)
23770         Has_Specified_Stream_Write (Flag193)
23771         Present in all type and subtype entities. Set for a given view if the
23772         corresponding stream-oriented attribute has been defined by an
23773         attribute definition clause. When such a clause occurs, a TSS is set
23774         on the underlying full view; the flags are used to track visibility of
23775         the attribute definition clause for partial or incomplete views.
23776         (Is_Pure_Unit_Access_Type): New flag
23777         Clarify use of Is_Internal.
23778         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
23779         internally generated to wrap the invocation of tasks and protected
23780         types that implement interfaces.
23781         (Implementation_Base_Type): Documentation correction
23782         (Is_Obsolescent): Now applies to all entities (though it is only set
23783         for subprograms currently)
23784         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
23785         which solves various problems concerning access subtypes.
23786
23787         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
23788         for examined parameters. Identify unequal parameter list lengths as
23789         non-conformant parameters.
23790         (Overriding_Possible): Do not check for "All" qualifier in declaration
23791         of controlling access parameter, following prescription of AI-404.
23792         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
23793         that build the procedure body that wraps an entry invocation
23794         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
23795         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
23796         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
23797         give support to abstract interface types
23798
23799         * freeze.adb (Freeze_Entity): Issue error message if
23800         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
23801         type has no storage pool (Ada 2005) AI-366.
23802         Also modified to give support to abstract interface types
23803         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
23804         Inline_Always pragma.
23805
23806         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
23807         now begin an entry declaration.
23808         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
23809         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
23810         a subprogram declaration preceded by an overriding indicator.
23811         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
23812         declarations or subprogram declarations preceded by reserved words
23813         "not" or "overriding".
23814         (P_Entry_Declaration): Update comment. Parse and check overriding
23815         indicator, set semantic flags of entry declarations.
23816         (P_Task): New error message in case of private applied
23817         to a task type declaration.
23818         (P_Protected): New error message in case of private applied
23819         to a task type declaration.
23820
23821         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
23822         in which the full view of a type implementing an interface is a
23823         concurrent type.
23824         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
23825         Declare_Inherited_Private_Subprograms): If an explicit operation
23826         overrides an operation that is inherited in the private part, mark the
23827         explicit one as overriding, to enable overriding indicator checks.
23828         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
23829         full view to partial view, to simplify handling in back-end.
23830
23831         * sprint.adb: Print interface lists where needed: derived types,
23832         protected types, task types.
23833         output "is null" for null procedures. Part of implementation of
23834
23835         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
23836         relaxation of rules for access types in pure, shared passive partitions.
23837
23838         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
23839         first read discriminants into temporary objects, performing checks on
23840         the read values, then possibly performing discriminant checks on the
23841         actual (if it is constrained), and only finally reading the components
23842         into a constrained temporary object.
23843         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
23844         case of reading discriminants of a mutable record type to recognize
23845         the new form of the code generated by
23846         Build_Mutable_Record_Read_Procedure.
23847
23848         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
23849         of a simple call to Make_TSS_Name.
23850         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
23851         buffer, in order for Is_TSS to work correctly on local TSS names.
23852
23853         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
23854         Is_Local_Anonymous_Access to check legaliy of attributes in the
23855         context of  access components and stand-alone access objects.
23856         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
23857         treated as available for a limited private type if there is an
23858         attribute_definition_clause that applies to its full view, but not in
23859         other cases where the attribute is available for the full view
23860         (specifically, the sole fact that the full view is non-limited does not
23861         make the attribute available for the partial view).
23862         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
23863         non-overloaded intrinsic subprogram.
23864         (Check_Stream_Attribute): Reject an attribute reference for an
23865         unavailable stream attribute even if the prefix is not a limited type
23866         (case of a 'Input attribute reference for an abstract, non-classwide
23867         type)
23868         (Stream_Attribute_Available): New function to determine whether a stream
23869         attribute is available at a place.
23870         (Check_Attribute): Use Stream_Attribute_Available instead of just
23871         testing for TSS presence on the implementation base type.
23872         (Analyze_Attribute): Modified to give support to task interfaces.
23873         (Analyze_Access_Attribute): Add error check for use of an Access (or
23874         Unrestricted_Access) attribute with a subprogram marked as
23875         Inline_Always.
23876         (Analyze_Attribute, case Attribute_Address): Add error check for use of
23877         an Address attribute with a subprogram marked as Inline_Always.
23878         Update Eval_Attribute to handle new value of Width from AI-395
23879
23880         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
23881         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
23882         Factor common code across the stream-oriented attribute circcuits into
23883         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
23884         processing is functionally identical to the previous duplicated one,
23885         except that an expression that denotes an abstract subprogram will now
23886         be rejected, as mandated by AI-195 item 5.
23887
23888         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
23889         Is_Local_Anonymous_Access to apply accessibility checks to access
23890         components and stand-alone access objects.
23891         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
23892         elsewhere.
23893         (Is_Potentially_Persistent_Type): New function
23894         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
23895         a heap-object whose type has a constrained partial view, the object is
23896         unconstrained and the component may depend on a discriminant, making its
23897         renaming illegal.
23898
23899         * sinfo.ads, sinfo.adb
23900         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
23901         (Must_Override): Flag applicable to N_Entry_Declaration.
23902         Indicate that interface_list can appear in single task and single
23903         protected declarations.
23904         Replace Is_Overriding and Not_Overriding with Must_Override and
23905         Must_Not_Override, to better express intent of AI.
23906         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
23907         of an overriding indicator in a subprogram or instance.
23908         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
23909         Add the overriding indicator [[not] overriding] construct to the
23910         following grammar productions:
23911          ENTRY_DECLARATION
23912          GENERIC_INSTANTIATION
23913          SUBPROGRAM_SPECIFICATION
23914
23915         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
23916         can start with an overriding indicator.
23917
23918         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
23919         flags accordingly on subrogram specifications or instances.
23920
23921         * sem_ch8.adb:
23922         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
23923         overriding_indicator, if present, is consistent with status of spec.
23924         Improve error message for null-excluding checks on controlling access
23925         parameters.
23926         (Check_In_Previous_With_Clause): Protect the frontend against
23927         previously reported critical errors in the context clauses.
23928         Save and restore Ada_Version_Explicit, for implementation of AI-362
23929         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
23930         operation verify that controlling formals of the renamed entity that
23931         are access parameters are explicitly non-null.
23932         (Find_Expanded_Name): Improve error message when prefix is an illegal
23933         reference to a private child unit.
23934
23935         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
23936         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
23937         Rewrite to correspond to new wide character names in AI-395
23938
23939         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
23940         default procedures.
23941
23942 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
23943             Robert Dewar  <dewar@adacore.com>
23944
23945         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
23946         code, not on the bodies of predefined operations, to cut down on
23947         spurious noise.
23948
23949 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
23950
23951         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
23952         be expanded in place. The size computation does not require a
23953         subtraction, which would raise an exception on a compiler built with
23954         assertions when the upper bound is Integer'first.
23955         (Flatten): For an array of composite components, take into account the
23956         size of the components to determine whether it is safe to expand the
23957         array into a purely positional representation.
23958
23959 2005-06-14  Thomas Quinot  <quinot@adacore.com>
23960
23961         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
23962         denoting a formal parameter into account.
23963
23964 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
23965
23966         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
23967         the entry_call alternative of a conditional entry call, wrap the
23968         conditional entry call itself.
23969
23970 2005-06-14  Nicolas Setton  <setton@adacore.com>
23971             Ed Schonberg  <schonberg@adacore.com>
23972
23973         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
23974         the "simple_choice" member in a variant record, in accordance with the
23975         description in the package spec: the information output for a constant
23976         should be "S number", not "SS number".
23977         (Get_Encoded_Name): Return at once if not generating code. Avoids name
23978         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
23979
23980 2005-06-14  Thomas Quinot  <quinot@adacore.com>
23981
23982         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
23983         RACW without any primitives, do not generate the if statement for
23984         dispatching by name in the PolyORB/DSA case, as it would be malformed
23985         (it would have an Elsif_Parts list that is not No_List, but with a
23986         length of 0).
23987
23988 2005-06-14  Robert Dewar  <dewar@adacore.com>
23989
23990         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
23991
23992 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
23993
23994         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
23995         can determine whether pragma Suppress_Exception_Locations is in effect.
23996
23997         * utils2.c (build_call_raise): Do not pass the file name to the
23998         exception handler if pragma Suppress_Exception_Locations is in effect.
23999         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
24000
24001 2005-06-14  Emmanuel Briot  <briot@adacore.com>
24002
24003         * g-debpoo.adb (Deallocate, Dereference): Improve output.
24004
24005 2005-06-14  Nicolas Roche  <roche@adacore.com>
24006
24007         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
24008         to ""
24009         (Next_Level): Fix minor bug in handling of ../dir case
24010         (Read): Add dir separator to Directory name so that "" is understood as
24011          "/"
24012
24013 2005-06-14  Pascal Obry  <obry@adacore.com>
24014
24015         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
24016         releasing the items.
24017
24018 2005-06-14  Vincent Celier  <celier@adacore.com>
24019             Cyrille Comar  <comar@adacore.com>
24020
24021         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
24022         with output file descriptor and with output file name.
24023         (Dup, Dup2): Now global procedures as they are used by two subprograms
24024         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
24025
24026 2005-06-14  Thomas Quinot  <quinot@adacore.com>
24027
24028         PR ada/6717
24029         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
24030         broadcast address.
24031         (Create_Selector): Bind listening socket used to create the signalling
24032         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
24033         Set listen backlog to 1 to ensure that we detect socket theft by a
24034         failure of our own connect(2) call.
24035         (Check_Selector): Improve documentation of the selector mechanism.
24036         (Broadcast_Inet_Addr): New constant.
24037
24038 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
24039
24040         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
24041         type which turns out to be an incomplete and incorrect fix.
24042         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
24043         of the type is declared in a record (for determination of insertion
24044         type).
24045         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
24046         a private type and ensure that the primary entity is used for the type
24047         of the newly created function's V formal by taking the Etype of the
24048         view.
24049
24050 2005-06-14  Javier Miranda  <miranda@adacore.com>
24051             Jose Ruiz  <ruiz@adacore.com>
24052             Robert Dewar  <dewar@adacore.com>
24053             Ed Schonberg  <schonberg@adacore.com>
24054
24055         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
24056         that indicates if we are parsing a compilation unit found in a
24057         limited-with clause.
24058         It is use to avoid the circularity check.
24059
24060         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
24061         we are parsing a compilation unit found in a limited-with clause. This
24062         is use to avoid the circularity check.
24063
24064         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
24065         unit as a consequence of parsing a limited-with clause. This is used
24066         to avoid the circularity check.
24067
24068         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
24069         (Analyze_Context): Limited-with clauses are now allowed
24070         in more compilation units.
24071         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
24072         againts previously reported critical errors in context clauses
24073         (Install_Limited_Withed_Unit): Code cleanup plus static detection
24074         of two further errors: renamed subprograms and renamed packages
24075         are not allowed in limited with clauses.
24076         (Install_Siblings): Do not install private_with_clauses on the package
24077         declaration for a non-private child unit.
24078         (Re_Install_Parents): When a parent of the subunit is reinstalled,
24079         reset visibility of child units properly.
24080         (Install_Withed_Unit): When a child unit appears in a with_clause of its
24081         parent, it is immediately visible.
24082
24083 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
24084             Emmanuel Briot  <briot@adacore.com>
24085
24086         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
24087         declared within an inlined body as referenced, to prevent spurious
24088         warnings.
24089         (Output_One_Ref): If an entity renames an array component, indicate in
24090         the ALI file that this aliases (renames) the array. Capture as well
24091         function renamings that rename predefined operations.
24092         Add information about generic parent for package and subprogram
24093         instances.
24094         (Get_Type_Reference): For a subtype that is the renaming of an actual in
24095         an instantiation, use the first_subtype to ensure that we don't generate
24096         cross-reference information for internal types.
24097         For objects and parameters of a generic private type, retain the '*'
24098         indicator to distinguish such an entity from its type.
24099
24100         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
24101         to store information about instantiated entities.
24102
24103         * ali.adb (Scan_ALI): Add support for parsing the reference to the
24104         generic parent
24105
24106         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
24107         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
24108         information.
24109
24110 2005-06-10  Doug Rupp  <rupp@adacore.com>
24111             Arnaud Charlet  <charlet@adacore.com>
24112             Olivier Hainque  <hainque@adacore.com>
24113             Jose Ruiz  <ruiz@adacore.com>
24114
24115         * Make-lang.in: Add initialize.o when needed.
24116         Remove obsolete references to RT_FLAGS.
24117         Add missing dependencies for sdefault.o
24118
24119         * initialize.c: New file.
24120
24121         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
24122         [VMS] cond_signal_table: Fix problem in declaration.
24123         [VMS] __gnat_error_handler: rewrite.
24124         Move all __gnat_initialize() routines to initialize.c
24125         Specialize the former "hpux" section to "hppa hpux", as this is what the
24126         section really is here for and we now have other hpux ports that need
24127         different contents.
24128         (__gnat_adjust_context_for_raise) i386-linux: First version of this
24129         function for this target. Adjust PC by one in the machine context. This
24130         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
24131         it is more reliable to do that in the signal handler itself.
24132         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
24133         flags, so that the handler is passed the context structure to adjust
24134         prior to the raise.
24135         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
24136         SA_SIGINFO sigaction should look like. Call
24137         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
24138         Machine_State_Operations stuff.
24139         Add conditional code so that the x86_64 is also supported.
24140
24141 2005-06-14  Pascal Obry  <obry@adacore.com>
24142
24143         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
24144         the library name.
24145
24146 2005-06-14  Robert Dewar  <dewar@adacore.com>
24147
24148         * opt.ads, opt.adb: New flags for persistent_bss mode
24149         Add Ada_Version_Explicit, for implementation of AI-362
24150         Add Assertions_Enabled_Config and associated handling
24151         Needed since setting can be changed with Assertion_Policy pragma
24152         Add new flag Warn_On_Ada_2005_Compatibility
24153
24154         * switch-c.adb: Recognize -gnatwy/Y
24155         Set Ada_Version_Explicit, for implementation of AI-362
24156         The -gnatg switch now includes -gnatyu
24157
24158         * usage.adb: Add -gnatwy/Y
24159         Remove wrong asterisk on -gnatwX line
24160         Add line for -gnatyu switch
24161
24162 2005-06-14  Vincent Celier  <celier@adacore.com>
24163
24164         * osint.adb (Add_Default_Search_Dirs): Put source and object
24165         directories of project files before directories coming from
24166         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
24167
24168 2005-06-14  Robert Dewar  <dewar@adacore.com>
24169
24170         PR ada/15613
24171         * par-ch2.adb (Scan_Pragma_Argument): New procedure
24172         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
24173
24174 2005-06-14  Vincent Celier  <celier@adacore.com>
24175
24176         * prep.adb (Preprocess): Ignore error when scanning the first token of
24177         a line.
24178
24179 2005-06-14  Vincent Celier  <celier@adacore.com>
24180
24181         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
24182         (Check_Stand_Alone_Library): If the specified reference symbol file does
24183         not exist, only issue a warning when the symbol policy is not
24184         Controlled. And, when symbol policy is Compliant, set the symbol
24185         policy to Autonomous.
24186
24187 2005-06-14  Vincent Celier  <celier@adacore.com>
24188
24189         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
24190         when the project file in a with clause is not the last one, that is the
24191         project file name is followed by a comma.
24192         * prj-pp.adb: (First_With_In_List): New Boolean global variable
24193         (Print): Issue list of project files separated by commas in with clauses
24194         according to the values returned by Is_Not_Last_In_List.
24195         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
24196         (Set_Is_Not_Last_In_List): New procedure
24197
24198 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
24199
24200         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
24201
24202 2005-06-14  Robert Dewar  <dewar@adacore.com>
24203
24204         * scng.adb: Add call to new Check_EOF routine
24205         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
24206         Add some comments regarding wide character handling
24207
24208         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
24209
24210         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
24211
24212         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
24213         characters are now considered graphic characters and hence yield false
24214         in this call.
24215
24216         * nmake.adt: Modify header so that xnmake does not generate output
24217         files with multiple blank lines.
24218
24219         * treeprs.adt: Remove a blank line so that output from xtreeprs does
24220         not have an extra blank line
24221
24222 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
24223
24224         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
24225         expression when the component type is an anonymous access type to
24226         ensure that appropriate accessibility checks are done.
24227
24228         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
24229         expression of an assignment when the target object is of an anonymous
24230         access type. This ensures that required accessibility checks are done.
24231         (One_Bound): Move the check for type Universal_Integer to
24232         Process_Bounds.
24233         (Process_Bounds): Check whether the type of the preanalyzed range is
24234         Universal_Integer, and in that case set Typ to Integer_Type prior
24235         to setting the type of the original range and the calls to One_Bound.
24236
24237 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
24238
24239         * sem_case.adb (Expand_Others_Choice): Improve warning.
24240
24241 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
24242
24243         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
24244         constraint of full view if present, when other type is discriminated.
24245         (Eval_Relational_Op): Recognize tests of pointer values against Null,
24246         when the pointer is known to be non-null, and emit appropriate warning.
24247
24248 2005-06-14  Robert Dewar  <dewar@adacore.com>
24249             Ed Schonberg  <schonberg@adacore.com>
24250
24251         PR ada/10671
24252         * sem_prag.adb: Implement pragma Persistent_BSS
24253         Remove obsolete pragma Persistent_Data, Persistent_Object
24254         Set Ada_Version_Explicit, for implementation of AI-362
24255         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
24256         Add processing for pragma Pure_05 and Preelaborate_05
24257         Add processing for Assertion_Policy pragma
24258         Add pragma identifiers for Assert
24259         (Analyze_Pragma, case Assert): Check number of arguments
24260         (Process_Inline): Additional guard against an illegal program, where the
24261         argument of the pragma is undefined, and warnings on redundant
24262         constructs are enabled.
24263         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
24264         Ada_05 to this pragma, specifying that the pragma is only active in
24265         Ada_05 mode.
24266         (Check_Arg_Order): New procedure
24267         Add appropriate calls to this procedure throughout
24268         Also throughout, check entity name before doing any other checks
24269
24270         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
24271         Remove obsolete pragma Persistent_Data, Persistent_Object
24272         Add entries for pragma Pure_05 and Preelaborate_05
24273         Add entries for Assertion_Policy pragma and associated names
24274         Add some names for pragma argument processing
24275
24276         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
24277
24278 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
24279
24280         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
24281         appears within a negation (either from source or as a rewriting of
24282         inequality) adjust text of warning accordingly.
24283
24284 2005-06-14  Thomas Quinot  <quinot@adacore.com>
24285
24286         * s-strxdr.adb: Follow AI95-00132
24287
24288 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
24289
24290         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
24291
24292 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
24293             Jose Ruiz  <ruiz@adacore.com>
24294
24295         * s-tposen.adb, s-tpobop.adb
24296         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
24297         the exception id.
24298         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
24299         there is no violation of the Max_Entry_Queue_Length restriction (if it
24300         has been set); Program_Error is raised otherwise.
24301         (Requeue_Call): Before requeuing the task on the target entry queue we
24302         check that there is no violation of the Max_Entry_Queue_Length
24303         restriction (if it has been set); Program_Error is raised otherwise.
24304
24305 2005-06-14  Robert Dewar  <dewar@adacore.com>
24306
24307         * styleg.adb: Fix several remaining problems in -gnatyu switch
24308         Blank line count not reset at start
24309         Scanning outside source buffer in some cases
24310         Confusing message for blanks at end of file
24311         Non-empty blank lines not recognized
24312
24313         * nmake.adt: Modify header so that xnmake does not generate output
24314         files with multiple blank lines.
24315
24316         * treeprs.adt: Remove a blank line so that output from xtreeprs does
24317         not have an extra blank line
24318
24319 2005-06-14  Sergey Rybin  <rybin@adacore.com>
24320
24321         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
24322
24323 2005-06-14  Doug Rupp  <rupp@adacore.com>
24324             Vincent Celier  <celier@adacore.com>
24325
24326         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
24327         Update copyright.
24328
24329         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
24330         Remove "Library" command.
24331         Change keyword for style check -gnatyd from NOCRLF to
24332         DOS_LINE_ENDINGS.
24333         Remove useless second style check keyword NONE
24334         Remove help documentation for inexistent style check keyword
24335         RM_COLUMN_LAYOUT.
24336         Add help documentation for style check keywords DOS_LINE_ENDINGS,
24337         UNNECESSARY_BLANK_LINES and XTRA_PARENS
24338         Add UNNECESSARY_BLANK_LINES for -gnatyu
24339         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
24340
24341         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
24342
24343 2005-06-14  Vincent Celier  <celier@adacore.com>
24344
24345         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
24346         gprmake was invoked with -d.
24347         (Compile_Sources): If -d was used, output the "completed ..." message
24348         for each compilation.
24349         (Scan_Arg): Recognize new switch -d
24350         When -c and at least one main is specified, set
24351         Unique_Compile to True to guarantee that no other sources will be
24352         compiled.
24353
24354 2005-06-14  Matthew Heaney  <heaney@adacore.com>
24355
24356         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
24357         * a-swuwha.ads, a-swuwha.adb: New files
24358
24359         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
24360         * a-szuzha.ads, a-szuzha.adb: New files.
24361
24362         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
24363         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
24364         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
24365         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
24366         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
24367         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
24368         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
24369         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
24370         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
24371         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
24372         Ada 2005 RM.
24373
24374 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
24375             Olivier Hainque  <hainque@adacore.com>
24376             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24377             Pascal Obry  <obry@adacore.com>
24378
24379         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
24380
24381         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
24382         making a temporary around a procedure call because of non-addressable
24383         actual parameter.
24384         (process_freeze_entity): If entity is a private type, capture size
24385         information that may have been computed for the full view.
24386         (tree_transform, case N_Allocator): If have initializing expression,
24387         check type for Has_Constrained_Partial_View and pass that to
24388         build_allocator.
24389         (tree_transform, case N_Return_Statement): Pass extra arg to
24390         build_allocator.
24391
24392         * decl.c (annotate_value): Remove early return if -gnatR is not
24393         specified.
24394         (gnat_to_gnu_field): Don't make a packable type for a component clause
24395         if the position is byte aligned, the field is aliased, and the clause
24396         size isn't a multiple of the packable alignment. It serves no useful
24397         purpose packing-wise and would be rejected later on.
24398         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
24399
24400         PR ada/20515
24401         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
24402         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
24403         instead.
24404         (create_concat_name): Idem.
24405
24406 2005-06-10  Robert Dewar  <dewar@adacore.com>
24407             Eric Botcazou  <ebotcazou@adacore.com>
24408             Ben Brosgol  <brosgol@adacore.com>
24409             Cyrille Comar  <comar@adacore.com>
24410             Sergey Rybin  <rybin@adacore.com>
24411             Pascal Obry  <obry@adacore.com>
24412
24413         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
24414         Document second argument (Ada_05) of pragma Obsolescent
24415         Add note that call to subprogram marked with pragma Obsolescent
24416         is now considered to be a violation of program Restrictions
24417         (No_Obsolescent_Features).
24418         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
24419         that only machine-dependent attributes are supported.
24420
24421         * gnat_ugn.texi:
24422         Commented out menu lines and empty section for gnatclean examples
24423         Document -gnatwy/Y
24424         Fix some over long lines
24425         Clarify and enhance documentation of ADA_PROJECT_PATH.
24426         Rework section 2.11.2(3) about linking with a non-GNU compiler.
24427         Mention new switch -fcallgraph-info.
24428         Mention new switch -fstack-usage.
24429         For gnatpp, replace '-notab' with '-N' and add this option to Index
24430         Corrected VMS example.
24431         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
24432         Minor reformatting
24433         Add documentation for -gnatyu switch (unnecessary blank lines)
24434         Document new switch -U for GNAT PRETTY and GNAT METRIC
24435         Add note about Stdcall being handled as C convention on non Windows OS.
24436         Remove some junk typo in description of gnatbind -S switch
24437         Remove reference to Extensions_Allowed pragma
24438         Document the new order of the directories to be searched (source and
24439         object directories of project files before directories in ADA_*_PATH
24440         environment variables.
24441
24442         * g-trasym.ads: Document that IRIX is supported
24443
24444 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
24445
24446         * Makefile.in: Add initialize.o when needed.
24447         Adapt to new VMS package body Symbols and subunits
24448         No specialized version of a-sytaco is needed for VxWorks.
24449
24450         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
24451         * a-zchara.ads, a-widcha.ads: New files.
24452
24453         * system-hpux-ia64.ads: New file.
24454
24455         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
24456         is imported from the VxWorks kernel.
24457
24458 2005-06-14  Robert Dewar  <dewar@adacore.com>
24459
24460         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
24461         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
24462         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
24463         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
24464         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
24465         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
24466         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
24467         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
24468         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
24469         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
24470         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
24471         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
24472
24473 2005-06-14  Thomas Quinot  <quinot@adacore.com>
24474
24475         * xeinfo.adb: Fix typo in comment
24476
24477 2005-06-14  Javier Miranda  <miranda@adacore.com>
24478
24479         * repinfo.ads: Fix typo in comment
24480
24481 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
24482
24483         * s-finimp.adb (Parent_Tag): Delete this imported function (function
24484         Parent_Tag is now in the visible part of Ada.Tags).
24485         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
24486         using imported function.
24487
24488 2005-06-14  Bernard Banner  <banner@adacore.com>
24489
24490         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
24491         also apply for handling support for VxSim 653.
24492
24493 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
24494
24495         * xsnames.adb: Add automatic generation of snames.h.
24496
24497 2005-06-14  Thomas Quinot  <quinot@adacore.com>
24498
24499         * gen-soccon.c: Add IP_MULTICAST_IF constant
24500         Minor reformatting and adjustments to prevent warnings.
24501
24502 2005-06-14  Pascal Obry  <obry@adacore.com>
24503
24504         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
24505
24506 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
24507
24508         * trans.c (gnat_gimplify_expr): Call
24509         recompute_tree_invarant_for_addr_expr when we change
24510         the operand of the ADDR_EXPR.
24511
24512 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24513
24514         * misc.c: Don't include errors.h.
24515
24516 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24517
24518         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
24519
24520 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
24521
24522         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
24523         comment typos.
24524         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
24525
24526 2005-05-16  Nathanael Nerode  <neroden@gcc.gnu.org>
24527
24528         PR ada/20270
24529         * Makefile.in: Make TGT_LIB behave correctly.
24530
24531 2005-04-23  DJ Delorie  <dj@redhat.com>
24532
24533         * misc.c: Adjust warning() callers.
24534
24535 2005-04-16  Laurent Guerby  <laurent@guerby.net>
24536
24537         PR ada/18847
24538         * a-nudira.adb (Value): Check for valid string.
24539         * a-nuflra.adb (Value): Likewise.
24540
24541 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
24542
24543         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
24544
24545 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
24546
24547         * adaint.c, init.c, tracebak.c: Fix comment typos.
24548         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
24549
24550 2005-04-07  Laurent Guerby  <laurent@guerby.net>
24551             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24552
24553         * Makefile.in: Add make ifeq define for hppa linux tasking support.
24554         * system-hpux.ads: Define Signed_Zeros to be True.
24555         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
24556
24557 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
24558
24559         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
24560         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
24561         typos.
24562
24563 2005-03-30  Tom Tromey  <tromey@redhat.com>
24564
24565         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
24566
24567 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
24568
24569         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
24570
24571 2005-03-29  Robert Dewar  <dewar@adacore.com>
24572
24573         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
24574         fixed-point expression has value that is not a multiple of the Small
24575         value.
24576
24577         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
24578
24579         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
24580         nanoseconds.
24581
24582         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
24583
24584 2005-03-29  Vincent Celier  <celier@adacore.com>
24585
24586         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
24587         (Build_Dynamic_Library.Version_String): Return the empty string when
24588         Lib_Version is empty or when the symbol policy is not Autonomous.
24589
24590         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
24591         a symbol is not in the reference symbol file, increase the Major ID
24592         and set the Minor ID to 0.
24593         Use gsmatch=lequal instead of gsmatch=equal
24594
24595 2005-03-29  Doug Rupp  <rupp@adacore.com>
24596
24597         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
24598         name and translate.
24599
24600 2005-03-29  Javier Miranda  <miranda@adacore.com>
24601
24602         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
24603         (Inherit_DT): The first formal has been redefined as a Tag.
24604         This allows us the removal of the subprogram Get_TSD.
24605         (TSD): Replace the call to Get_TSD by the actual code.
24606
24607         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
24608         (Make_DT): Upgrade the call to Inherit_TSD according to the
24609         new interface: the first formal is now a Tag.
24610
24611         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
24612         redefined as a Tag.
24613         This change allows us to remove the subprogram Get_TSD.
24614         (CPP_Get_TSD): Subprogram removed.
24615         (TSD): Replace the call to CPP_Get_TSD by the actual code.
24616
24617         * rtsfind.ads: Remove support to call the run-time
24618         subprogram Get_TSD
24619
24620 2005-03-29  Robert Dewar  <dewar@adacore.com>
24621
24622         * errutil.adb, errout.adb:
24623         Minor comment updates on Line_Terminator references
24624
24625         * par-ch10.adb: Add ??? comment about line terminator
24626
24627         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
24628         (check dos line terminator).
24629         (Check_Line_Max_Length): New procedure, split off from the existing
24630         Check_Line_Terminator routine. Separating this out allows -gnatyf to
24631         be properly recognized.
24632
24633         * styleg.adb: Add ??? comment for line terminator reference
24634
24635         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
24636         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
24637
24638         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
24639         (check dos line terminator).
24640         (Check_Line_Max_Length): New procedure, split off from the existing
24641         Check_Line_Terminator routine. Separating this out allows -gnatyf to
24642         be properly recognized.
24643
24644         * stylesw.ads, stylesw.adb:
24645         Add handling for new -gnatyd switch (check dos line terminator)
24646
24647         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
24648         Recognize -gnatwb/-gnatwB switches
24649         Include Warn_On_Bad_Fixed_Value for -gnatg
24650
24651         * usage.adb:
24652         Add line for new -gnatyd switch (check dos line terminator)
24653
24654         * usage.adb: Add lines for -gnatwb/-gnatwB
24655
24656         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
24657
24658         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
24659
24660         * gnat_ugn.texi: Fix overlong lines
24661         Document new -gnatyd switch
24662         Document new -gnatwb/-gnatwB switches
24663
24664 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
24665
24666         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
24667         order to retrieve the component list of the type, before examining
24668         individual components.
24669
24670         * sem_type.adb (Covers): Types are compatible if one is the base type
24671         of the other, even though their base types might differ when private
24672         views are involved.
24673
24674 2005-03-29  Thomas Quinot  <quinot@adacore.com>
24675
24676         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
24677         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
24678         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
24679         analyzed if expansion is disabled (which could otherwise cause spurious
24680         error messages if expansion has been disabled due to previous
24681         (unrelated) errors).
24682
24683         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
24684         is disabled, the entity denoted by the argument is the access type
24685         itself, not an underlying record type, so there is no need to go back
24686         to the Corresponding_Remote_Type.
24687
24688 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
24689             Robert Dewar  <dewar@adacore.com>
24690
24691         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
24692         expand a call to an instance of
24693         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
24694         Constructor actual of the instance. A class-wide membership
24695         check is also generated, to ensure that the tag passed to the instance
24696         denotes a type in the class.
24697         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
24698         of Name_Generic_Dispatching_Constructor.
24699
24700         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
24701         05 unit for AI-260-02).
24702
24703         * a-tgdico.ads: New file.
24704
24705         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
24706         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
24707
24708         * snames.ads, snames.adb (Preset_Names): Add entry for
24709         Generic_Dispatching_Constructor.
24710
24711         PR ada/20300
24712         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
24713         character type cases.
24714         (Analyze_Subprogram_Renaming): Add special handling for
24715         the case of renaming of stream attributes when the renaming denotes a
24716         generic formal subprogram association for an abstract formal subprogram.
24717         Check that the attribute is a primitive stream attribute (and not
24718         a class-wide stream attribute) and then rewrite the attribute name
24719         as the name of the appropriate compiler-generated stream primitive.
24720
24721 2005-03-29  Robert Dewar  <dewar@adacore.com>
24722
24723         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
24724         recursive calls.
24725         (Is_Possibly_Unaligned_Object): Correct typo that
24726         resulted in inaccurate result for unaligned scalars within records.
24727
24728 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
24729
24730         * freeze.adb (Freeze_Record_Type): If the type of the component is an
24731         itype whose parent is controlled and not yet frozen, do not create a
24732         freeze node for the itype if expansion is disabled.
24733
24734 2005-03-29  Vincent Celier  <celier@adacore.com>
24735
24736         * make.adb (Gnatmake): Don't fail if the main project file is declared
24737         as having no Ada sources. Do not display message "no sources to
24738         compile" in quiet output.
24739
24740 2005-03-29  Doug Rupp  <rupp@adacore.com>
24741
24742         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
24743         extra tools.
24744
24745 2005-03-29  Robert Dewar  <dewar@adacore.com>
24746
24747         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
24748         child.
24749
24750 2005-03-29  Robert Dewar  <dewar@adacore.com>
24751
24752         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
24753         missing TYPE Improve the error message generated when compiling a
24754         limited interface in Ada83 or Ada95 mode.
24755
24756 2005-03-29  Robert Dewar  <dewar@adacore.com>
24757
24758         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
24759         rather than proceed ahead using a junk attribute name.
24760
24761 2005-03-29  Vincent Celier  <celier@adacore.com>
24762
24763         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
24764
24765         * prj-part.adb (Parse_Single_Project): Set the location of a project
24766         on its defining identifier, rather than on the reserved word "project".
24767
24768         * prj-proc.adb (Expression): Adapt to the fact that default of external
24769         references may be string expressions, not always literal strings.
24770         (Recursive_Process): Set Display_Name equal to Name
24771         when Location is No_Location, that is when there is no actual file.
24772         Get the Display_Name of the project from the source, when it is not a
24773         virtual project.
24774         (Process): Use the Display_Name in error messages
24775
24776         * prj-strt.adb (External_Reference): Allow default to be string
24777         expressions, not only literal strings.
24778
24779 2005-03-29  Vincent Celier  <celier@adacore.com>
24780
24781         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
24782         file and the reference symbol file to be the same file.
24783
24784 2005-03-29  Thomas Quinot  <quinot@adacore.com>
24785
24786         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
24787         forbid conversion of a local access-to-subprogram type to a remote one.
24788
24789         * sem_util.adb (Wrong_Type): For a record type that is the expanded
24790         equivalent type for a remote access-to-subprogram type, go back to the
24791         original RAS entity when displaying an error message, so the casing is
24792         the original source casing.
24793
24794 2005-03-29  Robert Dewar  <dewar@adacore.com>
24795
24796         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
24797         on param update.
24798
24799 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
24800
24801         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
24802         subtype if code is being pre-analyzed, to prevent un-expanded
24803         references to protected formals, among others.
24804         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
24805         interpretation that can be a call, include the result of the call as a
24806         possible interpretation of the dereference.
24807
24808         * sem_ch5.adb (Process_Bounds): Determine type of range by
24809         pre-analyzing a copy of the original range, and then analyze the range
24810         with the expected type.
24811
24812         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
24813         with an overloaded prefix where not all interpretations yield an
24814         access to subprogram, do not rewrite node as a call.
24815         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
24816         the node as a call once the context identifies the interpretation of
24817         the prefix whose call yields the context type.
24818         (Valid_Conversion): For the case of a conversion between
24819         local access-to-subprogram types, check subtype conformance using
24820         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
24821         detailed error message.
24822
24823 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
24824
24825         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
24826         indicator, indicate that the formal can never be null.
24827         (Process_Formals): If a formal has a non_null indicator, insert the
24828         resulting subtype immediately before the enclosing subprogram decl,
24829         and not at the beginning of the corresponding declarative part, to
24830         prevent access before elaboration (Ada2005).
24831
24832 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24833
24834         PR ada/19956
24835         * utils.c (finish_record_type): Use variable_size when setting sizes.
24836
24837 2005-03-29  Robert Dewar  <dewar@adacore.com>
24838
24839         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
24840         guarantee Unix style line terminators for the output files, even when
24841         running on windows.
24842
24843 2005-03-29  Robert Dewar  <dewar@adacore.com>
24844
24845         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
24846         buffer if an exception is raised.
24847
24848 2005-03-29  Ed Falis  <falis@adacore.com>
24849
24850         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
24851         VxWorks 653 1.4
24852
24853 2005-03-29  Robert Dewar  <dewar@adacore.com>
24854
24855         * sem_util.ads: Minor reformatting
24856         * gnat_rm.texi: Minor editing.
24857
24858 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
24859
24860         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
24861         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
24862
24863 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
24864
24865         * adaint.c (__gnat_portable_spawn): Adjust cast.
24866
24867 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
24868
24869         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
24870
24871 2005-03-17  Pascal Obry  <obry@adacore.com>
24872
24873         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
24874         used.
24875
24876         * expect.c (__gnat_waitpid): Moved here from adaint.c.
24877         Reimplement under Win32 using Win32 API.
24878
24879         (__gnat_kill) [Win32]: Properly close the process handle before leaving
24880         this routine.
24881
24882 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
24883
24884         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
24885         (DECL_RENAMED_OBJECT): New accessor macro.
24886         (SET_DECL_RENAMED_OBJECT): New setter macro.
24887
24888         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
24889         object in all cases.  Attach the renamed object to the VAR_DECL.
24890         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
24891         field is not prescribed.
24892
24893         * misc.c (gnat_handle_option): Handle -gnatO separately.
24894         (gnat_print_decl) <VAR_DECL>: New case.
24895         Print the DECL_RENAMED_OBJECT node.
24896
24897         * lang.opt:  Declare separate -gnatO option.
24898
24899         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
24900         pointer, replace it with the renamed object.
24901         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
24902         pointer type if the source is not a fat pointer type whose underlying
24903         array has the same non-zero alias set as that of the destination array.
24904
24905 2005-03-17  Javier Miranda  <miranda@adacore.com>
24906
24907         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
24908         (Get_Inheritance_Depth): Removed.
24909         (Set_Inheritance_Depth): Removed.
24910
24911         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
24912         subprogram Get_Expanded_Name because it is not referenced by the
24913         frontend.
24914
24915         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
24916         (CPP_Get_Inheritance_Depth): Removed.
24917         (CPP_Set_Inheritance_Depth): Removed.
24918
24919         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
24920
24921 2005-03-17  Robert Dewar  <dewar@adacore.com>
24922
24923         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
24924         3, since we now expect GCC 3 to do all the work.
24925
24926 2005-03-17  Javier Miranda  <miranda@adacore.com>
24927
24928         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
24929         of one barrier to avoid wrong usage of this attribute.
24930
24931         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
24932         First_Private_Entity.
24933
24934         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
24935         the subprogram against wrong usage.
24936         Adapt the code to traverse the entities in the
24937         scope of a record_type because in addition to its usage regarding
24938         packages, this subprogram is also called by Expand_N_Freeze_Entity
24939         to install the visible declarations of the enclosing scope of a
24940         record_type_with_private to establish the proper visibility before
24941         freezing the entity and related subprograms.
24942
24943 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
24944
24945         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
24946         entry formals.
24947
24948 2005-03-17  Thomas Quinot  <quinot@adacore.com>
24949
24950         * exp_ch3.adb (Check_Attr): New subprogram.
24951         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
24952         into a new Check_Attr subprogram, in order to provide a more
24953         explanatory error message (including the name of the missing attribute).
24954         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
24955         subprogram determines whether a default implementation exists for a
24956         given stream attribute.
24957         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
24958         Determine whether to generate a default implementation for each stream
24959         attribute separately, as this depends on the specific attribute.
24960
24961         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
24962         limited extension where a stream attribute is missing for a limited
24963         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
24964         generate a bogus reference to the missing attribute to prevent
24965         cascaded errors. Instead, generate a null statement.
24966
24967         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
24968         available for a limited type if it has been specified for an ancestor
24969         of the type.
24970
24971 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
24972
24973         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
24974         entity is an operator.
24975
24976 2005-03-17  Thomas Quinot  <quinot@adacore.com>
24977
24978         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
24979         spec, to make this predicate available to other units.
24980
24981         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
24982         reimplementing it.
24983
24984         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
24985         when no distribution runtime library is available.
24986
24987         * sem_res.adb, sem_dist.adb: Disable expansion of remote
24988         access-to-subprogram types when no distribution runtime library is
24989         available.
24990         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
24991         predicate available to other units.
24992
24993         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
24994         spec, to make this predicate available to other units.
24995
24996 2005-03-17  Vincent Celier  <celier@adacore.com>
24997
24998         * make.adb (Insert_Project_Sources): Make sure the Q is always
24999         initialized.
25000
25001         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
25002         the default for the tree, not the global default naming.
25003
25004         * prj-proc.adb (Recursive_Process): No need to put the default naming
25005         in the project data, it's already there.
25006
25007 2005-03-17  Doug Rupp  <rupp@adacore.com>
25008
25009         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
25010
25011         * 5xcrtl.ads: Renamed to...
25012         * s-crtl-vms64.ads: ...this new file
25013
25014 2005-03-17  Robert Dewar  <dewar@adacore.com>
25015
25016         PR ada/19519
25017         * namet.adb (Copy_One_Character): Set proper wide character encoding
25018         for upper half character if we have upper half encoding.
25019
25020 2005-03-17  Robert Dewar  <dewar@adacore.com>
25021
25022         * par.adb (Par): Improved msg for attempt to recompile predefined unit
25023
25024 2005-03-17  Thomas Quinot  <quinot@adacore.com>
25025
25026         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
25027         tagged limited type, the TSS is a newly built renaming declaration:
25028         insert it using Set_TSS, not Copy_TSS.
25029
25030 2005-03-17  Javier Miranda  <miranda@adacore.com>
25031
25032         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
25033         Try_Object_Operation): Analyze the object that is accessible
25034         through the prefix of the subprogram call before we apply
25035         the transformation of the object-operation notation.
25036
25037 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
25038
25039         * s-taprob.adb (Initialize_Protection): Initialize the protected
25040         object's owner to Null_Task.
25041         (Lock): If pragma Detect_Blocking is in effect and the caller of this
25042         procedure is already the protected object's owner then Program_Error
25043         is raised. In addition the protected object's owner is updated.
25044         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
25045         of this procedure is already the protected object's owner then
25046         Program_Error is raised.
25047         In addition the protected object's owner is updated.
25048         (Unlock): Remove the ownership of the protected object.
25049
25050         * s-taprob.ads (Protection): Add the field Owner, used to store the
25051         protected object's owner.
25052         This component is needed for detecting one type of potentially blocking
25053         operations (external calls on a protected subprogram with the same
25054         target object as that of the protected action). Document the rest of
25055         the components.
25056
25057         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
25058         Initialize the protected object's owner to Null_Task.
25059         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
25060         caller of this procedure is already the protected object's owner then
25061         Program_Error is raised.
25062         Do not raise Program_Error when this procedure is called from a
25063         protected action.
25064         (Unlock_Entries): Remove the ownership of the protected object.
25065         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
25066         of this procedure is already the protected object's owner then
25067         Program_Error is raised.
25068         Do not raise Program_Error when this procedure is called from
25069         a protected action.
25070
25071         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
25072         used to store the protected object's owner.
25073
25074         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
25075         effect and this procedure (a potentially blocking operation) is called
25076         from whithin a protected action, Program_Error is raised.
25077         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
25078         and this procedure (a potentially blocking operation) is called from
25079         whithin a protected action, Program_Error is raised.
25080
25081 2005-03-17  Vincent Celier  <celier@adacore.com>
25082             Nicolas Setton  <setton@adacore.com>
25083
25084         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
25085         switch, not supported by the linker on Darwin. Add '_' before
25086         <library>init, as this character is added unconditionally by the
25087         compiler.
25088         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
25089         correct one ".dylib". This fixes detection of the archive files when
25090         building library projects.
25091
25092 2005-03-17  Vincent Celier  <celier@adacore.com>
25093
25094         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
25095         -gnat83, -gnat95 and -gnat05.
25096
25097 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
25098
25099         * gnat_ugn.texi: Document gnatmem restriction
25100
25101 2005-03-17  Thomas Quinot  <quinot@adacore.com>
25102
25103         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
25104         cleanup
25105
25106 2005-03-17  Robert Dewar  <dewar@adacore.com>
25107
25108         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
25109         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
25110         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
25111
25112         * casing.adb: Comment improvements
25113
25114 2005-03-17  Pascal Obry  <obry@adacore.com>
25115
25116         * g-expect.adb: Minor reformatting.
25117
25118 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
25119
25120         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
25121         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
25122         to dependencies.
25123
25124 2005-03-15  Vincent Celier  <celier@adacore.com>
25125
25126         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
25127         Add new parameter In_Tree to specify the project tree: needed
25128         by the project manager. Adapt to changes in project manager
25129         using new parameter In_Tree.
25130
25131 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
25132
25133         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
25134         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
25135         ada/bldtools to avoid make -jN failures.
25136
25137 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
25138
25139         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
25140         to NULL_TREE on entry.
25141
25142 2005-03-15  Robert Dewar  <dewar@adacore.com>
25143
25144         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
25145         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
25146         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
25147         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
25148         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
25149         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
25150         system-interix.ads, system-solaris-sparc.ads,
25151         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
25152         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
25153         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
25154         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
25155         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
25156         Compiler_System_Version to be False.
25157
25158         * opt.ads: Add new flag Opt.Address_Is_Private
25159
25160         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
25161         Add new parameter Compiler_System_Version to avoid checking for
25162         completeness of parameters when compiler is compiling itself.
25163         Allows old versions of GNAT to be compiled with new compiler.
25164
25165 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
25166
25167         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
25168         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
25169         calling thread.
25170         (Stack_Base_Available): New flag.
25171         (Get_Page_Size): New overloaded functions imported from C.
25172         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
25173         PROT_ON, PROT_OFF): New constants.
25174         (mprotect): New function imported from C.
25175         (pthread_teb_t): New record type.
25176
25177         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
25178         (Create_Task): Account for the Yellow Zone and the guard page.
25179
25180 2005-03-15  Vincent Celier  <celier@adacore.com>
25181
25182         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
25183         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
25184         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
25185         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
25186         Library_File_Name_For): Add new parameter In_Tree
25187         to specify the project tree: needed by the project manager.
25188         Adapt to changes in project manager using new parameter In_Tree.
25189         Remove local imports, use functions in System.CRTL.
25190
25191         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
25192         to use the project manager.
25193
25194         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
25195         In_Tree to designate the project tree. Adapt to changes in the project
25196         manager, using In_Tree.
25197
25198         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
25199         Copy_Interface_Sources): Add new parameter In_Tree to specify the
25200         project tree: needed by the project manager.
25201         (Build_Library): Check that Arg'Length >= 6 before checking if it
25202         contains "--RTS=...".
25203
25204         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
25205         Library_File_Name_For): Add new parameter In_Tree to specify the
25206         project tree: needed by the project manager.
25207
25208         * prj.ads, prj.adb: Major modifications to allow several project trees
25209         in memory at the same time.
25210         Change tables to dynamic tables and hash tables to dynamic hash
25211         tables. Move tables and hash tables from Prj.Com (in the visible part)
25212         and Prj.Env (in the private part). Move some constants from the visible
25213         part to the private part. Make other constants deferred.
25214         (Project_Empty): Make it a variable, not a function
25215         (Empty_Project): Add parameter Tree. Returns the data with the default
25216         naming data of the project tree Tree.
25217         (Initialize): After updating Std_Naming_Data, copy its value to the
25218         component Naming of Project Empty.
25219         (Register_Default_Naming_Scheme): Use and update the default naming
25220         component of the project tree, instead of the global variable
25221         Std_Naming_Data.
25222         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
25223         Tree is not defaulted, return the default naming data of the Tree.
25224         (Initial_Buffer_Size): Constant moved from private part
25225         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
25226         variables initialized in procedure Initialize.
25227         (Add_To_Buffer): Add two in out parameters to replace global variables
25228         Buffer and Buffer_Last.
25229         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
25230         functions.
25231         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
25232         hash tables.
25233         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
25234         for the project tree.
25235         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
25236         constant at the beginning of the package spec, so that they cane be used
25237         in subprograms before their full declarations.
25238         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
25239         (Empty_Project): Add parameter of type Project_Node_Ref
25240         (Private_Project_Tree_Data): Add component Default_Naming of type
25241         Naming_Data.
25242         (Buffer, Buffer_Last): remove global variables
25243         (Add_To_Buffer): Add two in out parameters to replace global variables
25244         Buffer and Buffer_Last.
25245         (Current_Packages_To_Check): Remove global variable
25246         (Empty_Name): Move to private part
25247         (No-Symbols): Make it a constant
25248         (Private_Project_Tree_Data): New type for the private part of the
25249         project tree data.
25250         (Project_Tree_Data): New type for the data of a project tree
25251         (Project_Tree_Ref): New type to designate a project tree
25252         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
25253         for the project tree.
25254
25255         * prj-attr.ads: Add with Table; needed, as package Prj no longer
25256         imports package Table.
25257
25258         * prj-com.adb: Remove empty, no longer needed body
25259
25260         * prj-com.ads: Move most of the content of this package to package Prj.
25261
25262         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
25263         designate the project node tree and Packages_To_Check to replace
25264         global variable Current_Packages_To_Check.
25265         Add new parameters In_Tree and Packages_To_Check to local subprograms,
25266         when needed. Adapt to changes in project manager with project node tree
25267         In_Tree.
25268
25269         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
25270         project tree to most subprograms. Move tables and hash tables to
25271         private part of package Prj.
25272         Adapt to changes in project manager using project tree In_Tree.
25273
25274         * prj-makr.adb (Tree): New constant to designate the project node tree
25275         Adapt to change in project manager using project node tree Tree
25276
25277         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
25278         display the Library_Src_Dir and the Library_Dir.
25279         Add new parameter In_Tree to designate the project node tree to most
25280         subprograms. Adapt to changes in the project manager, using project tree
25281         In_Tree.
25282         (Check_Naming_Scheme): Do not alter the casing on platforms where
25283         the casing of file names is not significant.
25284         (Check): Add new parameter In_Tree to designate the
25285
25286         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
25287         designate the project tree.
25288         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
25289
25290         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
25291         to replace those that were in the private part of package Prj.
25292         Add new parameter In__Tree to designate the project node tree to most
25293         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
25294         (Post_Parse_Context_Clause): When specifying the project node of a with
25295         clause, indicate that it is a limited with only if there is "limited"
25296         in the with clause, not necessarily when In_Limited is True.
25297         (Parse): Add new parameter In_Tree to designate the project node tree
25298
25299         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
25300         designate the project node tree. Adapt to change in Prj.Tree with
25301         project node tree In_Tree.
25302
25303         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
25304         tree In_Tree in the call to function Empty_Process to give its initial
25305         value to the project data Processed_Data.
25306         Add new parameters In_Tree to designate the project tree and
25307         From_Project_Node_Tree to designate the project node tree to several
25308         subprograms. Adapt to change in project manager with project tree
25309         In_Tree and project node tree From_Project_Node_Tree.
25310
25311         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
25312         to replace those that were in the private part of package Prj.
25313         Add new parameter In_Tree to designate the project node tree to most
25314         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
25315
25316         * prj-tree.ads, prj-tree.adb: Add new parameter of type
25317         Project_Node_Tree_Ref to most subprograms.
25318         Use this new parameter to store project nodes in the designated project
25319         node tree.
25320         (Project_Node_Tree_Ref): New type to designate a project node tree
25321         (Tree_Private_Part): Change table to dynamic table and hash tables to
25322         dynamic hash tables.
25323
25324         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
25325         the project tree to most subprograms. Adapt to changes in project
25326         manager using project tree In_Tree.
25327
25328         * makegpr.adb (Project_Tree): New constant needed to use project
25329         manager.
25330
25331 2005-03-15  Olivier Hainque  <hainque@adacore.com>
25332
25333         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
25334         for sigactions with SA_SIGINFO set. Call
25335         __gnat_adjust_context_for_raise before raising, to perform the
25336         potentially required adjustments to the machine context for the GCC
25337         unwinder.
25338
25339         * raise.h (__gnat_adjust_context_for_raise): New prototype.
25340
25341         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
25342         Adjust PC by one in the provided machine context.
25343         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
25344         so that the handler is passed the context structure to adjust prior to
25345         the raise.
25346         (__gnat_error_handler) HPUX: Adjust the signature to match what an
25347         SA_SIGINFO sigaction should look like. Call
25348         __gnat_adjust_context_for_raise before actually raising.
25349         (__gnat_adjust_context_for_raise): Default noop to help PC
25350         adjustments before raise from signal handlers.
25351         (__gnat_error_handler): Indirectly call a predicate function to
25352         determine if a condition should be resignaled or not.
25353         (__gnat_set_resignal_predicate): User interface to modify the predicate.
25354         (__gnat_default_resignal_p): Default GNAT predicate.
25355
25356 2005-03-15  Doug Rupp  <rupp@adacore.com>
25357
25358         * adaint.c: Prefix #include of VMS system header files with vms/
25359         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
25360         Do not define a dummy function "convert_addresses" under Darwin,
25361         not needed.
25362
25363         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
25364         with vms/
25365
25366 2005-03-15  Nicolas Setton  <setton@adacore.com>
25367
25368         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
25369         PPC/AIX.
25370
25371 2005-03-15  Robert Dewar  <dewar@adacore.com>
25372
25373         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
25374         AI-386.
25375
25376         * a-retide.ads: Minor comment changes
25377
25378 2005-03-15  Robert Dewar  <dewar@adacore.com>
25379
25380         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
25381         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
25382         Realloc_For_Chunk to private part of package.
25383         New subprograms for AI-301
25384
25385         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
25386         Get_Line procedure.
25387         Avoid unnecessary use of Get/Set_Wide_String
25388
25389 2005-03-15  Robert Dewar  <dewar@adacore.com>
25390
25391         PR ada/13470
25392         * a-stunau.ads, a-stunau.adb:
25393         Change interface to allow efficient (and correct) implementation
25394         The previous changes to allow extra space in unbounded strings had
25395         left this interface a bit broken.
25396
25397         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
25398
25399         * g-spipat.ads, g-spipat.adb: New interface for Get_String
25400         Minor reformatting (function specs)
25401
25402         * g-spitbo.adb: New interface for Get_String
25403
25404         * g-spitbo.ads: Minor reformatting
25405
25406         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
25407
25408         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
25409
25410 2005-03-15  Javier Miranda  <miranda@adacore.com>
25411             Robert Dewar  <dewar@adacore.com>
25412             Thomas Quinot  <quinot@adacore.com>
25413             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25414
25415         * atree.ads, atree.adb: Add support for Elist24 field
25416
25417         * atree.h: Fix wrong definition of Field27
25418         Add support for Elist16 field
25419         Add support for Elist24 field
25420
25421         * einfo.ads, einfo.adb (Abstract_Interfaces,
25422         Set_Abstract_Interfaces): New subprograms.
25423         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
25424         subprograms.
25425         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
25426         entities rather than a single node.
25427         (Is_Interface, Set_Is_Interface): New subprogram
25428         (First_Tag_Component): New syntesized attribute
25429         (Next_Tag_Component): New synthesized attribute
25430         (Write_Entity_Flags): Upgraded to write Is_Interface
25431         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
25432         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
25433         (Task_Body_Procedure): New subprogram to read this attribute.
25434         (Set_Task_Body_Procedure): New subprogram to set this attribute.
25435         (Has_Controlled_Component): Now applies to all entities.
25436         This is only a documentation change, since it always worked to apply
25437         this to other than composite types (yielding false), but now this is
25438         official.
25439         Update documentation on Must_Be_Byte_Aligned for new spec
25440
25441         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
25442         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
25443         uses of the Access_Disp_Table attribute to reference the first dispatch
25444         table associated with a tagged type. As
25445         part of the implementation of abstract interface types,
25446         Access_Disp_Table has been redefined to contain a list of dispatch
25447         tables (rather than a single dispatch table).
25448         Similarly, upgrade all the references to Tag_Component by the
25449         new attribute First_Tag_Component.
25450         (Find_Inherited_TSS): Moved to exp_tss.
25451         Clean up test in Expand_N_Object_Declaration for cases
25452         where we need to do a separate assignment of the initial value.
25453         (Expand_N_Object_Declaration): If the expression in the
25454         declaration of a tagged type is an aggregate, no need to generate an
25455         additional tag assignment.
25456         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
25457         is to be deleted.
25458         Bit packed array ops are only called if operands are known to be
25459         aligned.
25460         (Component_Equality): When returning an N_Raise_Program_Error statement,
25461         ensure that its Etype is set to Empty to avoid confusing GIGI (which
25462         expects that only expressions have a bona fide type).
25463         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
25464         determine the amount of data to be copied.
25465
25466         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
25467         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
25468             INTERFACE_TYPE_DEFINITION ::=
25469               [limited | task | protected | synchronized] interface
25470                 [AND interface_list]
25471
25472         * par-ch3.adb (P_Type_Declaration): Modified to give support to
25473         interfaces.
25474         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
25475         interfaces.
25476         (P_Interface_Type_Definition): New subprogram that parses the new
25477         syntax rule of Ada 2005 interfaces
25478         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
25479         messages by the correct RENAMES (quotes removed).
25480
25481         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
25482         attribute First_Tag_Component.
25483
25484         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
25485         (Interface_List, Set_Interface_List): New subprograms.
25486         (Interface_Present, Set_Interface_Present): New subprograms.
25487         (Limited_Present, Set_Limited_Present): Available also in derived
25488         type definition nodes.
25489         (Protected_Present, Set_Protected_Present): Available also in
25490         record type definition and
25491         derived type definition nodes.
25492         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
25493         (Task_Present, Set_Task_Present): New subprogram.
25494         (Task_Body_Procedure): Removed.
25495         (Set_Task_Body_Procedure): Removed.
25496         These subprogram have been removed because the attribute
25497         Task_Body_Procedure has been moved to the corresponding task type
25498         or task subtype entity to leave a field free to store the list
25499         of interfaces implemented by a task (for AI-345)
25500         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
25501         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
25502         expression flag Do_Range_Check
25503         (Exception_Junk): Change to Flag7 to accomodate above change
25504         (Box_Present, Default_Name, Specification, Set_Box_Present,
25505         Set_Default_Name, Set_Specification): Expand the expression
25506         "X in N_Formal_Subprogram_Declaration" into the corresponding
25507         two comparisons. Required to use the csinfo tool.
25508
25509         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
25510         "with string" given.
25511
25512         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
25513         expression given.
25514
25515         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
25516         in 2005 mode
25517
25518         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
25519         attribute Task_Body_Procedure rather than the old semantic field that
25520         was available in the task_type_declaration node.
25521
25522         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
25523         interface type definitions.
25524         (P_Formal_Derived_Type_Definition): Modified to handle the list of
25525         interfaces.
25526
25527         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
25528         task type declaration.
25529         (P_Protected): Modified to handle the list of interfaces in a
25530         protected type declaration.
25531
25532 2005-03-15  Doug Rupp  <rupp@adacore.com>
25533             Vincent Celier  <celier@adacore.com>
25534
25535         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
25536         (Gen_Output_File_C): Likewise.
25537         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
25538
25539 2005-03-15  Thomas Quinot  <quinot@adacore.com>
25540
25541         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
25542         is an N_Raise_Constraint_Error node, create a new copy of it without
25543         going through a call to Duplicate_Subexpr.
25544
25545 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
25546             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25547             Nicolas Setton  <setton@adacore.com>
25548             Ed Schonberg  <schonberg@adacore.com>
25549
25550         PR ada/19900
25551         PR ada/19408
25552         PR ada/19140
25553         PR ada/20255
25554         * decl.c (gnat_to_gnu_field): Reject aliased components with a
25555         representation clause that prescribes a size not equal to the rounded
25556         size of their types.
25557         (gnat_to_gnu_entity, case E_Component): Always look at
25558         Original_Record_Component if Present and not the entity.
25559         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
25560         of tagged extension types by not making field for components that are
25561         inside the parent.
25562         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
25563         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
25564         expression to the type of the object when the object is constant.
25565         Reverse defer_debug_incomplete_list before traversing it, so that trees
25566         are processed in the order at which they were added to the list. This
25567         order is important when using the stabs debug format.
25568         If we are deferring the output of debug information, also defer this
25569         output for a function return type.
25570         When adding fields to a record, prevent emitting debug information
25571         for incomplete records, emit the information only when the record is
25572         complete.
25573         (components_to_record): New parameter defer_debug.
25574         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
25575         (gnat_to_gnu_field_decl): New function.
25576         (substitution_list, annotate_rep): Call it.
25577         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
25578         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
25579         No longer update discriminants to not be a COMPONENT_REF.
25580         (copy_alias_set): Strip padding from input type; also handle
25581         unconstrained arrays properly.
25582
25583         * gigi.h (write_record_type_debug_info): New function.
25584         Convert to use ANSI-style prototypes. Remove unused
25585         declarations for emit_stack_check, elab_all_gnat and
25586         set_second_error_entity.
25587         (gnat_to_gnu_field_decl): New decl.
25588
25589         * utils.c (write_record_type_debug_info): New function.
25590         (finish_record_type): Delegate generation of debug information to
25591         write_record_type_debug_info.
25592         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
25593         (update_pointer_to): Fix pasto.
25594         (convert) <UNION_TYPE>: Accept slight type variations when
25595         converting to an unchecked union type.
25596
25597         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
25598         replace the N_Freeze_Entity with a null statement.
25599
25600         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
25601         within a constrained subcomponent of an enclosing record, place the
25602         freeze nodes in the scope stack entry for the enclosing record.
25603         (Undelay_Type): New Subprogram.
25604         (Set_Small_Size): Pass T, the type to modify; all callers changed.
25605         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
25606         within records; allow them to have freeze nodes if their base types
25607         aren't frozen yet.
25608
25609         * exp_util.adb (Remove_Side_Effects): Properly test for
25610         Expansion_Delayed and handle case when it's inside an
25611         N_Qualified_Expression.
25612
25613         * sem_ch3.adb (Derived_Type_Declaration): New predicate
25614         Comes_From_Generic, to recognize accurately that the parent type in a
25615         derived type declaration can be traced back to a formal type, because
25616         it is one or is derived from one, or because its completion is derived
25617         from one.
25618         (Constrain_Component_Type): If component comes from source and has no
25619         explicit constraint, no need to constrain in in a subtype of the
25620         enclosing record.
25621         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
25622         Minor change to propagate Is_Ada_2005 flag
25623
25624         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
25625         Expansion_Delayed is False.
25626         (assoc_to_constructor): Ignore fields that have a
25627         Corresponding_Discriminant.
25628         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
25629         function returns "by target", dereference the target pointer using the
25630         type of the actual return value.
25631         <all>: Be prepared for a null gnu_result.
25632         (processed_inline_subprograms): Check flag_really_no_inline
25633         instead of flag_no_inline.
25634         (set_second_error_entity): Remove unused function.
25635         (gnat_to_gnu, case N_Selected_Component): Call
25636         gnat_to_gnu_field_decl.
25637         (assoc_to_constructor): Likewise.
25638
25639 2005-03-15  Robert Dewar  <dewar@adacore.com>
25640             Ed Schonberg  <schonberg@adacore.com>
25641             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25642
25643         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
25644         Must_Be_Byte_Aligned for cases where we do not need to use a
25645         System.Pack_nn unit.
25646
25647         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
25648         as procedures.
25649         Needed now that we do some processing for IN parameters as well. This
25650         may well fix some unrelated errors.
25651         (Expand_Call): Handle case of unaligned objects (in particular those
25652         that come from packed arrays).
25653         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
25654         renamed entity is an inherited operation, re-expand the call using the
25655         original operation, which is the one to call.
25656         Detect attempt to inline parameterless recursive subprogram.
25657         (Represented_As_Scalar): Fix to work properly with private types
25658         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
25659         accurate estimate. Yields True in far fewer cases than before,
25660         improving the quality of code that depends on this test.
25661
25662         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
25663         over both visible and private declarations to remove them from tree,
25664         and mark subprograms declared in package as eliminated, to prevent
25665         spurious use in subsequent compilation of generic units in the context.
25666
25667         * exp_util.ads: Minor cleanup in variable names
25668
25669         * sem_eval.ads, sem_eval.adb: Minor reformatting
25670         (Compile_Time_Known_Bounds): New function
25671
25672 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
25673
25674         * exp_ch7.adb (Convert_View): Use base types of underlying types when
25675         determining whether an unchecked conversion is needed for the argument
25676         of an initialization call.
25677
25678 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
25679
25680         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
25681         that appears in the instantiation rather than the internal subtype
25682         generated in the wrapper package, to avoid anomalies in gigi when the
25683         target is derived from a private type whose full view is an access type.
25684
25685 2005-03-15  Robert Dewar  <dewar@adacore.com>
25686
25687         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
25688         not needed.
25689         Add documentation to replace the use of this flag
25690         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
25691         the x86_64.
25692
25693 2005-03-15  Thomas Quinot  <quinot@adacore.com>
25694
25695         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
25696         here from exp_attr so it can be shared between exp_attr and exp_dist.
25697         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
25698         all TSS names, not a subset thereof, and the previous name introduced
25699         an unnecessarily confusion that a distinction might exist between
25700         "OK" TSS names and some "not OK" TSS names.
25701
25702 2005-03-15  Doug Rupp  <rupp@adacore.com>
25703
25704         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
25705         Command_Name.
25706
25707 2005-03-15  Pascal Obry  <obry@adacore.com>
25708             Eric Botcazou  <ebotcazou@adacore.com>
25709
25710         PR ada/20226
25711         PR ada/20344
25712         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
25713         when IN_RTS. This is to work around a bootstrap path problem.
25714
25715         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
25716         table and pass it to __gnat_install_SEH_handler().
25717         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
25718
25719         * lang.opt: Fix specification of -fRTS=.
25720
25721 2005-03-15  Doug Rupp  <rupp@adacore.com>
25722             Bernard Banner  <banner@adacore.com>
25723             Vincent Celier  <celier@adacore.com>
25724             Arnaud Charlet  <charlet@adacore.com>
25725
25726         PR ada/6852
25727         This change works fine when gnatlib is built from the gcc directory,
25728         but does not work when using the libada Makefile, since GCC_FOR_TARGET
25729         is not passed to ada/Makefile.in, so more work is needed by a
25730         Makefile/configure expert.
25731
25732         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
25733         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
25734         Setup gnatlink switch -M for x86_64 linux, as it is already setup
25735         for Linux x86.
25736         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
25737         Run ranlib on libgccprefix.a
25738         Define PREFIX_OBJS for Darwin, to build libgccprefix.
25739         (ADA_INCLUDE_SRCS): Split Ada packages.
25740
25741 2005-03-15  Robert Dewar  <dewar@adacore.com>
25742
25743         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
25744
25745         * impunit.adb: Add GNAT.UTF_32
25746
25747         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
25748
25749         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
25750         now uses GNAT.UTF_32).
25751
25752         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
25753         capabilities for categorizing characters using Unicode categories
25754
25755 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
25756
25757         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
25758         instantiation that has been rewritten as a package body, retrieve spec
25759         to generate proper name for implicit_with_clause.
25760         (Install_Parents): Recognize a parent that is an instantiation but has
25761         been rewritten as a package declaration during analysis.
25762
25763 2005-03-15  Javier Miranda  <miranda@adacore.com>
25764             Ed Schonberg  <schonberg@adacore.com>
25765
25766         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
25767         parameter reported some error we immediately return. This improves the
25768         behaviour of the frontend in case of errors.
25769         (Install_Parent, Remove_Parent): Introduce new flag
25770         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
25771         ancestor of a generic child unit, when the child is being instantiated.
25772         (Inline_Instance_Body): If we are compiling the private
25773         part or the body of a child unit, restore the proper visibility of the
25774         parents after compiling the instance body.
25775
25776 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
25777             Javier Miranda  <miranda@adacore.com>
25778
25779         PR ada/15608
25780         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
25781         of a private type, in which case it is underlying_type that denotes
25782         the proper task. Also modified to use the new entity attribute
25783         that is directly available in the task type and task subtype entities
25784         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
25785         arrays when other dimensions than the first are constrained by
25786         discriminants of an enclosing record.
25787         (Insert_Explicit_Dereference): If the prefix is an indexed component or
25788         a combination of indexed and selected components, find ultimate entity
25789         and generate the appropriate reference for it, to suppress spurious
25790         warnings.
25791         (Note_Possible_Modification): If an entity name has no entity, return.
25792         (Is_Variable): A function call never denotes a variable.
25793         (Requires_Transient_Scope): For record types, recurse only on
25794         components, not on internal subtypes that may have been generated for
25795         constrained components.
25796
25797 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
25798
25799         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
25800         Eliminated as candidates for resolution. Both efficient, and avoids
25801         anomalies with operators declared in deleted code.
25802         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
25803         expansion is disabled (as when compiling a generic) to prevent spurious
25804         warnings on prefixes of selected components.
25805
25806 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
25807
25808         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
25809         attached to a list before checking whether it appears in the private
25810         declarations of the current package.
25811         (Make_Inequality_Operator): Insert declaration in proper declarative
25812         list rather than just setting the Parent field, so that
25813         Is_Private_Declaration can handle it properly.
25814
25815 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
25816
25817         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
25818         a renaming a body, check that the renamed subprogram in not intrinsic.
25819         (Find_Direct_Name): If several use_visible entities hide
25820         each other, and the context is a predefined file compiled through
25821         rtsfind, keep only the entity that comes from a predefined file.
25822
25823 2005-03-15  Geert Bosch  <bosch@adacore.com>
25824
25825         * s-fatgen.adb (Valid): Extend special exceptions to account for long
25826         long float padding to also cover AMD64 and IA64.
25827
25828 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
25829
25830         * s-imgwch.adb: Add with and use of Interfaces.
25831         (Img_Wide_Character): Change type of Val to Unsigned_16.
25832         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
25833
25834 2005-03-15  Matthew Gingell  <gingell@adacore.com>
25835
25836         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
25837
25838 2005-03-15  Robert Dewar  <dewar@adacore.com>
25839
25840         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
25841
25842         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
25843
25844         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
25845
25846 2005-03-15  Robert Dewar  <dewar@adacore.com>
25847
25848         * s-bitops.adb, s-bitops.ads,
25849         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
25850         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
25851         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
25852         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
25853         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
25854         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
25855         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
25856         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
25857         reformatting.
25858
25859 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
25860
25861         * utils2.c (build_binary_op): Fix typo.
25862
25863 2005-03-15  Doug Rupp  <rupp@adacore.com>
25864
25865         * s-crtl.ads (popen,pclose): New imports.
25866
25867 2005-03-15  Cyrille Comar  <comar@adacore.com>
25868
25869         * comperr.adb (Compiler_Abort): remove references to obsolete
25870         procedures in the bug boxes for various GNAT builds.
25871
25872 2005-03-15  Vincent Celier  <celier@adacore.com>
25873
25874         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
25875
25876 2005-03-15  Geert Bosch  <bosch@adacore.com>
25877             Arnaud Charlet  <charlet@adacore.com>
25878             Robert Dewar  <dewar@adacore.com>
25879             Cyrille Comar  <comar@adacore.com>
25880             Sergey Rybin  <rybin@adacore.com>
25881
25882         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
25883         too specific and long-winded to be appropriate for the GNAT User's
25884         Guide.
25885         Warn about use of GCC switches not documented in the GNAT User's Guide,
25886         as these may cause generated code to not conform to Ada semantics.
25887         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
25888         Add documentation for -gnat95 and -gnat05 switches
25889         Remove paragraph documenting obsolete way to refer to third party
25890         libraries.
25891         Add a few references to Ada_05 that were missing.
25892         Update documentation on -gnatZ/-gnatL.
25893         Document limitation when using -m64 under Solaris.
25894         Change the "Name Casing" subsection of the pretty-printer section
25895         according to the changes in the dictionary processing.
25896
25897         * gnat_rm.texi: Document the Ada_05 pragma.
25898         Section on record representation clauses describes the new more
25899         relaxed rules about placement of large packed bit array components.
25900         Add documentation of GNAT.UTF_32
25901
25902 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
25903
25904         * misc.c (gnat_post_options): Turn off structural
25905         aliasing for now.
25906
25907 2005-03-08  Laurent Guerby  <laurent@guerby.net>
25908
25909         * system-linux-sparc.ads: Fix typo in previous commit.
25910
25911 2005-03-07  James A. Morrison  <phython@gcc.gnu.org>
25912             Laurent Guerby  <laurent@guerby.net>
25913
25914         PR ada/20035
25915         * system-linux-sparc.ads: New.
25916         * Makefile.in: Add sparc linux entry.
25917
25918 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
25919
25920         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
25921         parameters as unused.
25922
25923 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
25924         Partial merge from libada-gnattools-branch:
25925
25926         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
25927         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
25928         into code in gnattools/Makefile.in.  Remove direct dependencies on
25929         stamp-tools by tools clauses.
25930         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
25931         * config-lang.in: Add gnattools to $lang_dirs.
25932
25933 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
25934
25935         PR ada/19942
25936         * utils.c (gnat_type_for_mode): Return null instead of ICE because
25937         we asked for an unknown mode.
25938
25939 2005-02-12  Richard Henderson  <rth@redhat.com>
25940
25941         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
25942         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
25943
25944 2005-02-10  Andreas Jaeger  <aj@suse.de>
25945
25946         * init.c (__gnat_initialize): Mark parameter as unused.
25947
25948 2005-02-09  Doug Rupp  <rupp@adacore.com>
25949
25950         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
25951         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
25952
25953 2005-02-09  Doug Rupp  <rupp@adacore.com>
25954
25955         * gnatchop.adb (dup, dup2),
25956         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
25957
25958         * gnatlbr.adb (mkdir),
25959         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
25960
25961         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
25962
25963 2005-02-09  Doug Rupp  <rupp@adacore.com>
25964
25965         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
25966
25967 2005-02-09  Robert Dewar  <dewar@adacore.com>
25968             Thomas Quinot  <quinot@adacore.com>
25969             Javier Miranda  <miranda@adacore.com>
25970             Pascal Obry  <obry@adacore.com>
25971             Ed Schonberg  <schonberg@adacore.com>
25972             Doug Rupp  <rupp@adacore.com>
25973             Gary Dismukes  <dismukes@adacore.com>
25974             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25975
25976         * g-zstspl.ads: New file.
25977
25978         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
25979
25980         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
25981         Ada 95 mode
25982         Add definition of Wide_Wide_Space for AI-285
25983
25984         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
25985         interface (to support Ada 95 and Ada 2005 units).
25986         Add Unbounded_IO files
25987         Add entries for Wide_Wide packages for AI-285
25988         Add list of containers packages to Ada 2005 unit list
25989
25990         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
25991         support new Unbounded_IO package cleanly.
25992
25993         * g-utf_32.ads, g-utf_32.adb: New files.
25994
25995         * Makefile.rtl: Add entry for g-utf_32
25996         Add new files for Unbounded_IO
25997         Adjust make file for new AI-285 wide wide packages
25998         Add AI-302 containers to the run time.
25999
26000         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
26001         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
26002         subprograms for AI-301.
26003
26004         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
26005
26006         * a-stunau.ads: Minor comment correction
26007
26008         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
26009         etc.
26010         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
26011         (Check_RPC): Update to match changes in expanded code.
26012         Clean up unused entity.
26013
26014         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
26015         was not taken into account.
26016         This includes proper initialization with Normalize_Scalars.
26017         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
26018         normalize scalars cases (particularly the latter) to do a better job
26019         of finding invalid representations.
26020
26021         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
26022
26023         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
26024         used
26025
26026         * exp_dist.adb: Add support for wide wide character type
26027         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
26028         private part, generate stub bodies at the end of the private part,
26029         not the visible part.
26030         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
26031         PolyORB support.
26032         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
26033         generic wrapper to execute final processing after completing the
26034         expansion of the RPC receiver for an RACW.
26035
26036         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
26037         packages and attributes.
26038         (Preset_Names): Addition of the new reserved words of Ada 2005,
26039         that is interface, overriding and synchronized.
26040         (Get_Pragma_Id): Give support to the use of the new reserved word
26041         "interface" as a pragma name.
26042         (Is_Pragma_Name): Give support to the use of the new reserved word
26043         "interface" as a pragma name.
26044         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
26045         attribute implementation.
26046
26047         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
26048         checks to entities that are output parameters of Asm operations.
26049         Handle the Stream_Size attribute.
26050         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
26051
26052         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
26053
26054         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
26055         for second parameter being 0.0.
26056         Add support for wide wide character type.
26057         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
26058
26059         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
26060         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
26061         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
26062         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
26063         for wide wide character cases.
26064
26065         * cstand.adb: Create entities for Wide_Wide_Character and
26066         Wide_Wide_String.
26067
26068         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
26069         accordance with AI-258.
26070         Add new declarations for 16/32 bit C character types (Part of AI285)
26071
26072         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
26073         (Obsolescent_Warning): New field
26074         (Rep_Clause): New local subprogram used to share code. Returns the rep
26075         clause for which the name is given in parameter.
26076         (Has_Stream_Size_Clause): New routine.
26077         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
26078         (Address_Clause): Implementation is now using Rep_Clause.
26079         (Alignment_Clause): Idem.
26080         (Size_Clause): Idem.
26081
26082         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
26083         entity in non-Ada 2005 mode and generate warning.
26084
26085         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
26086         (Prag): Code cleanup. Remove old gnat pragma "overriding"
26087
26088         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
26089         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
26090         on the named unit if the pragma is not in the current compilation unit,
26091         so that elaboration calls in the current unit can set up an elaboration
26092         dependency on the named unit, as needed.
26093         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
26094         subprogram as well as for subprograms declared within a package.
26095         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
26096         pragma overriding.
26097
26098         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
26099         to z) to avoid some instances of duplication for Wide_Wide packages.
26100
26101         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
26102         characters.
26103
26104         * scn.adb: Char_Literal_Value field is now a Uint
26105
26106         * scng.adb: Significant rewrite to handle new Ada 2005 features
26107         allowing wide and wide wide characters in program text, e.g. for
26108         identifiers, as described in AI-285.
26109         (Set_Reserved): New procedure, makes setting up keywords cleaner.
26110         (Initialize_Scanner): Register the new reserved words of Ada 2005.
26111         (Scan): Give support to the new reserved words.
26112
26113         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
26114         warning notifying that interface, overriding, and synchronized are
26115         new reserved words.
26116         (P_Pragma): Allow the use of the new reserved word "interface" as
26117         a pragma name.
26118
26119         * gnatls.adb, gnatbind.adb,
26120         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
26121         identifiers named "interface" to "SAL_Interface".
26122
26123         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
26124         (Structured Exception handling).
26125         (Gen_Main_C): Idem.
26126
26127         * bindgen.adb:
26128         (Gen_Main_Ada): Set the default exit code if specified.
26129         (Gen_Main_C): Likewise.
26130         Part of *DC20-006.
26131         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
26132         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
26133
26134         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
26135         new -Xnnn switch.
26136
26137         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
26138         has a collision with the new Ada 2005 "interface" reserved word.
26139
26140         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
26141         generate a warning notifying that interface, overriding, and
26142         synchronized are new reserved words.
26143
26144         * scans.ads (Token_Type): Addition of the tokens corresponding to the
26145         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
26146         and Tok_Synchronized.
26147
26148         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
26149         "dispatching" rather than "primitive" operations, since dispatching
26150         calls are now allowed to abstract formal subprograms (which are not
26151         primitive).
26152         Char_Literal_Value field is now a Uint
26153         (Resolve_Slice): If the prefix is an access to an unconstrained array,
26154         compute the actual subtype of the designated object to impose the proper
26155         index constraints.
26156         (Resolve_Selected_Component): Do not insert an access check if the
26157         prefix is an access type: such a node is expanded into an explicit
26158         dereference, on which the access check is performed anyway. Removes
26159         expensive duplicate checks.
26160         (Resolve_Call): Use new flag Is_Obsolescent and field
26161         Obsolescent_Warning so that pragma Obsolescent works on library
26162         subprograms.
26163         Add support for wide wide character type
26164         (Resolve_Allocator): Replace the error message on wrong null-exclusion
26165         value by a warning message.
26166         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
26167         as fixed-point, and one of the operands is non-static and universal, it
26168         can only be an illegal exponentiation operation, in which case there is
26169         no real value to retrieve.
26170
26171         * exp_strm.adb: Add support for wide wide character type
26172         (Build_Elementary_Input_Call): Compute the size of the stream element by
26173         querying the rep chain to find the Stream_Attribute attribute value.
26174         (Build_Elementary_Write_Call): Ditto.
26175
26176         * sem_aggr.adb: Char_Literal_Value field is now a Uint
26177         Add support for wide wide character type
26178         Replace the error messages on wrong null-exclusion value by warnings
26179         as described in Ada 2005.
26180         (Resolve_Extension_Aggregate): Document the fact that the error
26181         message on class-wide expressions in extensions aggregates.
26182
26183         * sem_case.adb: Add support for wide wide character type
26184
26185         * sem_ch13.adb: Add support for wide wide character type
26186         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
26187
26188         * sem_ch3.adb: Add support for wide wide character type
26189         (Process_Subtype): If constraint is illegal for the type, set Ekind of
26190         now-useless Itype, to prevent cascaded errors on a compiler built
26191         without -gnatp.
26192
26193         * sem_ch8.adb: Add with and use of Sem_Disp.
26194         (Analyze_Subprogram_Renaming): Replace unclean uses of
26195         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
26196         of Corresponding_Spec to Empty).
26197         (Attribute_Renaming): Replace use of Corresponding_Spec with
26198         Corresponding_ Formal_Spec and simplify condition.
26199         (Use_One_Package): Check that scope of homonym of identifier is defined,
26200         before checking whether it is a wrapper package.
26201         Add support for wide wide character type
26202
26203         * sem_eval.adb: Add support for wide wide character type.
26204         (Eval_Arithmetic_Op): Check for compile time known signed integer
26205         overflow in the non-static case.
26206         (Subtypes_Statically_Match): A formal scalar type and its base type do
26207         not statically match.
26208
26209         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
26210         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
26211         subtype).
26212         (Unit_Declaration_Node): Ditto.
26213         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
26214         has a packed array type, the prefix has been rewritten into a type
26215         conversion. Determine variable-ness from the converted expression.
26216         Handle wide wide character cases.
26217
26218         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
26219
26220         * stringt.ads, stringt.adb: Handle full UTF-32 range.
26221         Remove ["0A"] from comment, since it can look like a line terminator.
26222         Currently we don't permit this, but this is under discussion by the
26223         ARG, and it is easy enough to use a different example.
26224
26225         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
26226         handling UTF-32 encoding for wide wide character.
26227         Implement new brackets coding ["hhhhhhhh"]
26228         Add UTF-8 encodings for full UTF-32 range
26229
26230         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
26231
26232         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
26233         bit range Add full UTF-32 support.
26234         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
26235         notify that constraint error will be raised at run-time
26236         because a null value is assigned to a null-excluding object.
26237         Remove some obsolete declarations and make Char_Code
26238         unsigned.
26239
26240         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
26241         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
26242         Rcheck subprograms.
26243
26244         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
26245         wrong null-exclusion value by a warning message.
26246         (Enable_Range_Check): Do range check if the prefix is an
26247         explicit dereference whose designated object is an unconstrained array.
26248         Current algorithm for removing duplicate checks is over-eager in this
26249         case.
26250
26251         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
26252         null-exclusion value by a warning message
26253
26254         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
26255         completely. Add support for Uint2 field
26256
26257         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
26258         exp_prag.adb: Char_Literal_Value field is now a Uint.
26259
26260         * exp_util.adb (Insert_Actions): Replace
26261         N_Formal_Subprogram_Declaration by
26262         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
26263         Char_Literal_Value field is now a Uint.
26264
26265         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
26266         defined for subprogram renaming declarations. When set, the field
26267         indicates the defining entity of a corresponding formal subprogram
26268         when the renaming corresponds to a formal subprogram association in an
26269         instantiation.
26270         (Set_Corresponding_Formal_Spec): New procedure to return
26271         Corresponding_Formal_Spec field.
26272         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
26273         (which is now a subtype).
26274         Char_Literal_Value field is now a Uint
26275
26276         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
26277         pointer to the base of the dispatch table.
26278         Minor changes to comments.
26279         (Controlling_Type): New function for determining the tagged type
26280         associated with a tagged primitive subprogram.
26281         (Expand_Dispatching_Call): Add support for a controlling actual that is
26282         directly a value of type Ada.Tag rather than a tagged object.
26283
26284         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
26285         describing the new layout.
26286         (Dispatch_Table): The expander computes the actual array size, allocates
26287         the Dispatch_Table record accordingly, and generates code that displaces
26288         the base of the record after the Typeinfo_Ptr component. The access to
26289         these components is done by means of local functions.
26290         (Offset_To_Top): New function.
26291         (Typeinfo_Ptr): New function.
26292         (Get_TSD): Modified to access the new position of the TSD.
26293         (Set_TSD): Modified to save the TSD in its new position.
26294
26295         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
26296         case of formal abstract subprograms. Add check and message for -gnat05.
26297         Update comments.
26298
26299         * sem_ch12.adb: Add with and use for Sem_Disp.
26300         (Analyze_Associations): Minor change from "=" to "in" for use of
26301         N_Formal_Subtype_Declaration (which is now a subtype).
26302         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
26303         N_Formal_Subtype_Declaration (which is now a subtype).
26304         (Analyze_Formal_Subprogram): Add handling for
26305         N_Formal_Abstract_Subprogram, marking the formal as abstract and
26306         dispatching, setting the controlling status of the formal parameters
26307         and result, and issuing an error if there is no controlling type for
26308         the formal subprogram.
26309         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
26310         which is an unclean use of that field, we set the new field
26311         Corresponding_Formal_Spec to make the formal subprogram available to
26312         processing in Analyze_Subprogram_Declaration.
26313         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
26314         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
26315         Constrained, so that it is is does not statically match its anonymous
26316         base type.
26317
26318         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
26319         abstract formal subprograms in error check for functions returning
26320         abstract types. Set scope of new designator for
26321         a parameterless subprogram, so that it is available when checking the
26322         body for nested subprograms, before full analysis of said body.
26323         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
26324         subprogram only if inner one comes from source.
26325         (Analyze_Function_Call): If the call is given in object notation, the
26326         analysis of the name rewrites the node and analyzes it with the proper
26327         argument list. After analyzing the name, if the call has been rewritten
26328         and the result type is set, no further analysis is needed.
26329         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
26330         mark in function specification, in a context where the formals are
26331         visible and hide outer homographs.
26332
26333         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
26334         as the tagged type for the cases of abstract formal subprograms and
26335         renamings of those.  Clean up spec comments.
26336         (Check_Dispatching_Context): Add error message to indicate "abstract
26337         procedure", covering the case of a call to a formal abstract procedure
26338         that has statically tagged operands.
26339         (Check_Dispatching_Call): Check for the case of an actual given by
26340         a tag-indeterminate function call whose type is an ancestor of the
26341         containing call's associated tagged type. This situation can occur
26342         for inherited primitives with function defaults. In this case we
26343         use the tagged type's tag directly as the controlling argument for
26344         the calls.
26345         (Expand_Call): Name change on call to Expand_Dispatch_Call.
26346
26347         * sprint.adb (Sprint_Node_Actual): Split
26348         N_Formal_Subprogram_Declaration into two alternatives for the new
26349         cases N_Formal_Abstract_Subprogram_Declaration and
26350         N_Formal_Concrete_Subprogram_Declaration.
26351         Char_Literal_Value field is now a Uint.
26352
26353         * trans.c: Get rid of junk Uint2 reference.
26354         Char_Literal_Value field is now a Uint.
26355         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
26356         (gigi): Correct third arg to gimplify_body.
26357
26358         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
26359         (TYPE_LANG_FLAG_0): Check for record or union.
26360
26361         * treepr.adb: Char_Literal_Value field is now a Uint
26362
26363         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
26364         UI_From_CC.
26365
26366         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
26367         Add full UTF-32 support
26368         Char_Code is now 32 bits
26369
26370         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
26371         wide character UTF_32 line terminators.
26372         Initialize Main_Source_File to avoid error when no main
26373         source is loaded.
26374
26375         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
26376         (Main_Source_File) when no main source has been loaded, to avoid
26377         potential crash.
26378
26379 2005-02-09  Robert Dewar  <dewar@adacore.com>
26380
26381         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
26382         Fix name of Set routine
26383
26384         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
26385         fixed packages.
26386
26387         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
26388         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
26389         fixed packages
26390
26391         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
26392         forms of Get_Line subprograms for AI-301.
26393
26394         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
26395         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
26396         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
26397         a-stwima.ads: Minor reformatting.
26398
26399 2005-02-09  Doug Rupp  <rupp@adacore.com>
26400             Thomas Quinot  <quinot@adacore.com>
26401
26402         * adaint.c, adaint.h
26403         [VMS] (to_ptr32): New function.
26404         (MAYBE_TO_PTR32): New macro.
26405         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
26406         for pointer size.
26407         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
26408         [VMS] (#define fork()): Remove since unneccessary.
26409         (__gnat_set_close_on_exec): New routine to support
26410         GNAT.OS_Lib.Set_Close_On_Exec.
26411
26412         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
26413         the parent side as close-on-exec so that they are not inherited by the
26414         child.
26415
26416         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
26417         set or clear the FD_CLOEXEC flag on a file descriptor.
26418
26419 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
26420             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26421
26422         PR ada/19386
26423         * decl.c:
26424         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
26425         on the field if Pragma Component_Alignment (Storage_Unit).
26426         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
26427         side-effects as if it were a constant; also make SAVE_EXPR to protect
26428         side-effects.
26429         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
26430         UNION_TYPE.
26431         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
26432         (components_to_record): Test it.
26433         Fix improper usage of REFERENCE_CLASS_P.
26434
26435         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
26436         RECORD_TYPE.
26437
26438         * utils2.c: Minor reformatting.
26439
26440         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
26441         handle other cases like RECORD_TYPE.
26442
26443         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
26444
26445 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
26446
26447         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
26448         component of an array of arrays in an assignment context, and the
26449         aggregate has component associations that require sliding on
26450         assignment, force reanalysis of the aggregate to generate a temporary
26451         before the assignment.
26452         (Must_Slide): Make global to the package, for use in Gen_Assign.
26453
26454 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
26455
26456         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
26457         unchecked union with no inferable discriminants, return a
26458         Raise_Program_Error node, rather than inserting it at the point the
26459         type is frozen.
26460         (Expand_Record_Equality, Component_Equality): Handle properly the case
26461         where some subcomponent is an unchecked union whose generated equality
26462         code raises program error.
26463
26464 2005-02-09  Doug Rupp  <rupp@adacore.com>
26465
26466         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
26467         [VMS] (#define exit hack): Remove.
26468
26469 2005-02-09  Pascal Obry  <obry@adacore.com>
26470             Arnaud Charlet  <charlet@adacore.com>
26471
26472         * init.c (__gnat_initialize): Add a new parameter eh which contains the
26473         address of the exception registration. The Win32 version of this
26474         routine calls __gnat_install_SEH_handler() to initialize the SEH
26475         (Structured Exception Handling) handler.
26476         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
26477         SEH (Structured Exception Handling) now.
26478         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
26479         (__gnat_initialize for ppc-vxworks): Adjust comments and the
26480         preprocessor condition protecting the call to the extra eh setup
26481         subprogram, which is only available for the ppc target.
26482         (__gnat_clear_exception_count): replaced reference to
26483         variable taskIdCurrent by call to taskIdSelf(), cleaner.
26484
26485         * seh_init.c: New file.
26486
26487         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
26488         (GNATBIND_OBJS): Idem.
26489
26490         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
26491         routine takes a new parameter (a pointer to the exception registration
26492         for the SEH (Structured Exception Handling) support.
26493
26494         * raise.h: (__gnat_install_SEH_handler): New prototype.
26495         Update copyright notice.
26496
26497         * s-tassta.adb (Task_Wrapper): Declare the exception registration
26498         record and initialize it by calling __gnat_install_SEH_handler.
26499
26500 2005-02-09  Vincent Celier  <celier@adacore.com>
26501
26502         * make.adb (Gnatmake): Do not fail when the main project has no object
26503         directory.
26504
26505 2005-02-09  Doug Rupp  <rupp@adacore.com>
26506
26507         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
26508         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
26509         [VMS]: Add translations for g-enblsp.adb.
26510
26511         * s-asthan-vms.adb: Removed.
26512         * s-asthan-vms-alpha.adb: Added.
26513
26514 2005-02-09  Pascal Obry  <obry@adacore.com>
26515
26516         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
26517         (LIBGNAT_OBJS): Add seh_init.o.
26518
26519 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
26520
26521         PR ada/16592
26522         * Makefile.in: Link all gnat tools with -static-libgcc, since
26523         -shared-libgcc is now used by default on some systems (e.g. linux with
26524         recent binutils).
26525         Remove references to Makefile.prolog/generic, no longer used.
26526
26527 2005-02-09  Vincent Celier  <celier@adacore.com>
26528
26529         * prj-makr.adb (Process_Directory): Put file name in canonical case
26530         before matching against the patterns.
26531         If gnatname has been invoked as <prefix>-gnatname
26532         then invoke the compiler as <prefix>-gcc, not just "gcc".
26533
26534 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
26535
26536         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
26537         with expansion disabled. The actual subtype is needed among other
26538         places when the selected component appears in the context of a loop
26539         bound, and denotes a packed array.
26540         (Operator_Check): Always use the first subtype in the
26541         error message, to avoid the appearance of internal base types.
26542         (Transform_Object_Operation): Copy each actual in full
26543         to the parameter associations of the constructed call, rather than
26544         using the shallow copy mechanism of New_Copy_List. This ensures that
26545         the chaining of named associations is done properly.
26546         (Complete_Object_Operation): Rewrite node, rather than
26547         replacing it, so that we can trace back to the original selected
26548         component.
26549
26550         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
26551         and calls that use object notation, if the called function is not
26552         declared  in a withed unit, place the elaboration constraint on the
26553         unit in the context that makes the function accessible.
26554         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
26555         imposes an elaboration constraint between two packages.
26556
26557 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
26558
26559         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
26560         views of a private type after handling its private dependents, to
26561         maintain proper stack discipline between entry and exit from the
26562         package.
26563
26564 2005-02-09  Cyrille Comar  <comar@adacore.com>
26565
26566         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
26567         Minor reformatting.
26568
26569 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
26570
26571         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
26572         fields for foreign threads.
26573
26574 2005-02-09  Doug Rupp  <rupp@adacore.com>
26575
26576         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
26577         recursion warnings when compiled with -gnatdm.
26578
26579 2005-02-09  Robert Dewar  <dewar@adacore.com>
26580
26581         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
26582         Slight fix to documentation of -gnaty with no parameters
26583
26584         * xr_tabls.ads: Add ??? comment for missing overall comment
26585
26586         * xsinfo.adb: Make default file name be sinfo.h, since this is what
26587         we now use by default.
26588
26589         * xsnames.adb: Adjust end of file test to look for five space followed
26590         by '#' instead of six spaces. The format of xsnames.adb was modified
26591         in the last update.
26592
26593         * a-numeri.ads: Add reference to AI-388 for greek letter pi
26594         identifier.
26595
26596         * clean.adb: Minor reformatting.
26597
26598         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
26599         gnatname.adb: Minor reformatting
26600         Add 2005 to copyright output when utility is run
26601
26602         * csets.adb: Eliminate obsolete comment
26603
26604         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
26605         Update comments.
26606
26607         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
26608
26609 2005-02-09  Sergey Rybin  <rybin@adacore.com>
26610
26611         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
26612         the difference between compact and incompact layout and add the record
26613         representation clause to the example illustrating different layouts.
26614         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
26615         component clauses").
26616
26617 2005-02-09  Florian Villoing  <villoing@adacore.com>
26618
26619         * gnat_ugn.texi: Fix typos.
26620         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
26621         @file.
26622         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
26623         in the generated documentation.
26624
26625 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
26626
26627         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
26628         longer supported.
26629         Update linker wrapper when linking with non GNU C++.
26630
26631 2005-02-09  Pascal Obry  <obry@adacore.com>
26632
26633         * gnat_ugn.texi:
26634         Document the procedure to debug the DllMain routine on Windows.
26635         Add note about -funwind-tables and mixed Ada and C/C++ programming in
26636         ZCX mode.
26637         Document new BIND qualifer /RETURN_CODES=VMS.
26638
26639 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
26640
26641         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
26642         Edited gnatmetric chapter
26643
26644 2005-02-09  Robert Dewar  <dewar@adacore.com>
26645
26646         * gnat_rm.texi:
26647         Changes to document new wide wide character support
26648         For AI-285
26649         Update documentation on Normalize_Scalars and Initialize_Scalars
26650
26651 2005-02-09  Pascal Obry  <obry@adacore.com>
26652
26653         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
26654
26655 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
26656
26657         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
26658         from the VxWorks kernel) that is needed for getting the active
26659         priority of the different tasks.
26660
26661         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
26662         Use a pragma Elaborate_Body in the spec file instead.
26663         Noticed by code reading.
26664
26665 2005-02-09  Thomas Quinot  <quinot@adacore.com>
26666
26667         * exp_util.ads: Minor correction in comment.
26668
26669 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
26670
26671         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
26672         since this procedure is now too complex to be worth inlining.
26673
26674 2005-02-09  Richard Henderson  <rth@redhat.com>
26675
26676         * utils.c (gnat_define_builtin): Remove.
26677         (gnat_install_builtins): Use build_common_builtin_nodes.
26678
26679 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
26680
26681         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
26682         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
26683         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
26684         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
26685         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
26686         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
26687         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
26688         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
26689         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
26690         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
26691         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
26692         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
26693         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
26694         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
26695         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
26696         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
26697         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
26698         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
26699         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
26700         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
26701         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
26702         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
26703         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
26704         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
26705         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
26706         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
26707         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
26708         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
26709         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
26710         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
26711         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
26712         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
26713         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
26714         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
26715         library.
26716
26717 2005-01-27  Laurent Guerby  <laurent@guerby.net>
26718
26719         * Makefile.in: Fix a-intnam.ads from previous commit,
26720         add 2005 to copyright.
26721         * a-intman-rtems.ads: Renamed to...
26722         * a-intnam-rtems.ads:
26723
26724 2005-01-27  Laurent Guerby  <laurent@guerby.net>
26725
26726         * Makefile.in: Rename GNAT RTEMS specific files.
26727         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
26728         5rosinte.ads, 5rparame.adb: Replaced by files below.
26729         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
26730         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
26731
26732 2005-01-27  Joel Sherrill  <joel.sherrill@oarcorp.com>
26733             Laurent Guerby  <laurent@guerby.net>
26734
26735         PR ada/19488
26736         * 5rosinte.ads: Add No_Key constant.
26737         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
26738         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
26739
26740 2005-01-26  Laurent Guerby  <laurent@guerby.net>
26741
26742         PR ada/19414
26743         * i-cobol.adb (Valid_Numeric): Handle zero length case.
26744
26745 2005-01-20  Richard Henderson  <rth@redhat.com>
26746
26747         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
26748         a-intnam-linux.ads and system-linux-alpha.ads.
26749         * a-intnam-linux-alpha.ads: Remove file.
26750         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
26751         * system-linux-alpha.ads: New file.
26752
26753 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
26754
26755         PR ada/13470
26756         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
26757         set to the new string.
26758
26759 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
26760
26761         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
26762         to True.
26763
26764 2005-01-18  Richard Henderson  <rth@redhat.com>
26765
26766         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
26767         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
26768         for alpha-linux.
26769         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
26770
26771 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
26772
26773         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
26774         (GCC_ZCX_Support): Likewise.
26775
26776 2005-01-11  Bastian Blank  <waldi@debian.org>
26777
26778         * system-linux-s390.ads: Define Preallocated_Stacks.
26779         * system-linux-s390x.ads: Likewise.
26780
26781 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
26782
26783         * gnat_ugn.texi: Fix texi errors with null variables.
26784
26785 2005-01-03  Thomas Quinot  <quinot@adacore.com>
26786
26787         * gen-soccon.c: New utility program to generate g-soccon.ads
26788         automatically.
26789
26790         * socket.c, gsocket.h: Split inclusion of system header files into a
26791         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
26792
26793         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
26794         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
26795         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
26796         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
26797         should not be edited by hand anymore, but should be regenerated using
26798         gen-soccon.
26799
26800 2005-01-03  Robert Dewar  <dewar@adacore.com>
26801             Ed Schonberg  <schonberg@adacore.com>
26802             Vincent Celier  <celier@adacore.com>
26803
26804         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
26805         on/off, since this is an obsolescent feature, for which we now generate
26806         a warning.
26807
26808         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
26809         warning mode is set and obsolescent usage of this attribute occurs.
26810         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
26811         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
26812         predates, and partly motivates, the adoption of the AI.
26813         Implement new Ada 2005 attribute Mod
26814
26815         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
26816         attribute Mod.
26817
26818         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
26819
26820         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
26821         pragma restrictions.
26822         New entry for Ada 2005 attribute Mod.
26823
26824         * par-prag.adb:
26825         Add recognition of new pragma Restrictions No_Dependence
26826         Recognize restriction No_Obsolescent_Features at parse time
26827
26828         * bcheck.adb: Add circuitry for checking for consistency of
26829         No_Dependence restrictions.
26830
26831         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
26832         restrictions.
26833
26834         * restrict.ads, restrict.adb: Add subprograms to deal with
26835         No_Dependence restrictions.
26836
26837         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
26838         restrictions.
26839
26840         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
26841         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
26842
26843         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
26844         dummy parameter to scng instantiation.
26845         Needed for new restriction No_Obsolescent_Features
26846
26847         * scn.adb: (Obsolescent_Check): New procedure
26848         Needed for new restriction No_Obsolescent_Features
26849
26850         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
26851         specified by AI-285, needed for implementation of AI-388 (adding greek
26852         pi to Ada.Numerics).
26853         Add new generic formal to scng, needed for new restriction
26854         No_Obsolescent_Features.
26855
26856         * s-rident.ads: Add new restriction No_Obsolescent_Features.
26857
26858         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
26859         restrictions lines.
26860         (Scan_ALI): When finding an unexpected character on an R line, raise
26861         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
26862         Ignore_Errors is True, default restrictions are set and scanning of the
26863         ALI file continues with the next line. Also, when Bad_R_Line is raised
26864         and Ignore_Errors is True, skip to the end of le line.
26865
26866         * sem_ch10.adb: Check that explicit with's do not violate
26867         No_Dependence restrictions.
26868         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
26869         illegal context clauses containing child units of instance.
26870
26871         * sem_prag.adb: Processing and checking for new No_Dependence
26872         restrictions.
26873         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
26874         analyze and check the External argument.
26875
26876         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
26877
26878 2005-01-03  Robert Dewar  <dewar@adacore.com>
26879
26880         * atree.adb: Add a fifth component to entities
26881         This allows us to add 32 flags and four new fields
26882
26883         * atree.ads: Add a fifth component to entities
26884         This allows us to add 32 flags and four new fields
26885
26886         * einfo.ads, einfo.adb: Document new fields and new flags now available
26887         Add routines for printing new fields
26888
26889         * treepr.adb: Call routines to print out additional fields if present
26890
26891 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
26892
26893         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
26894         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
26895
26896         * Makefile.in: Add support to build shared Ada libraries on solaris x86
26897         Remove gpr2make, replaced by gprmake.
26898         Remove references to gnatmem and libaddr2line.
26899         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
26900         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
26901         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
26902         a-numaux-darwin.ads and a-numaux-darwin.adb
26903         Enable mlib-tgt-lynxos.adb on lynxos.
26904
26905         * Make-lang.in: Remove rules for gpr2make.
26906         When generating sdefault.adb, do not call Relocate_Path
26907         on S3 for function Target_Name, as it is not a path.
26908         Remove references to gnatmem and libaddr2line.
26909
26910         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
26911         files.
26912
26913 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
26914
26915         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
26916         address is incompatible with its base type alignment constraints when
26917         this can be decided statically.
26918
26919 2005-01-03  Olivier Hainque  <hainque@adacore.com>
26920
26921         * decl.c (compatible_signatures_p): New function. The intended purpose
26922         is to check if two function signatures for a call-site and a callee are
26923         compatible enough for the call to be valid. The underlying purpose is
26924         to check if a call to a mapped builtin is using the right interface.
26925         The current code actually does not check antyhing - this a placeholder
26926         for future refinements.
26927         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
26928         builtin calls for convention Intrinsic.
26929
26930         * gigi.h (builtin_decl_for): Declare (new function).
26931
26932         * utils.c (gnat_install_builtins): Install the target specific builtins.
26933         (builtin_decl_for): New function, provide a dummy body for now.
26934
26935 2005-01-03  Geert Bosch  <bosch@adacore.com>
26936
26937         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
26938         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
26939         (Pred): Implement in terms of Succ.
26940
26941         * trans.c (convert_with_check): Reimplement conversion of float to
26942         integer.
26943
26944 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
26945             Vincent Celier  <celier@adacore.com>
26946
26947         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
26948         bounds can be negative, and must be declared Int, not Nat.
26949
26950         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
26951         array is checked after using the index in the array.
26952
26953         * makegpr.adb (Add_Switches): Check if there is a package for the
26954         processor. If there is no package, do not look for switches.
26955
26956 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
26957
26958         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
26959         generation of predefined stream operations (specs and bodies) should
26960         proceed. Under various restrictions these subprograms must not be
26961         generated.
26962
26963 2005-01-03  Thomas Quinot  <quinot@adacore.com>
26964
26965         * exp_dist.adb:
26966         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
26967         amount of PCS-specific code in RACW stubs generation.
26968         (Copy_Specification): Set Etype on copied formal parameter entities, as
26969         this information is needed for PolyORB stubs generation.
26970         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
26971         variable Dynamic_Async.
26972         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
26973         (Build_RPC_Receiver_Specification): Make generic again, as recent
26974         changes have allowed RPC receivers to have the same profile for both
26975         variants of the PCS.
26976         Reorganise RPC receiver generation to reduce differences between the
26977         structure of GARLIC and PolyORB RPC receivers.
26978         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
26979         PCS-specific.
26980         Simplify elaboration code for RCI packages.
26981
26982         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
26983         generation to reduce differences between the structure of GARLIC and
26984         PolyORB RPC receivers.
26985
26986         * s-stratt.adb: Fix typo in comment.
26987
26988 2005-01-03  Thomas Quinot  <quinot@adacore.com>
26989
26990         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
26991         copied from Make_Init_Call).
26992
26993         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
26994         reads and assignments on a temporary variable declared with appropriate
26995         discriminants.
26996
26997 2005-01-03  Robert Dewar  <dewar@adacore.com>
26998
26999         * i-c.adb (To_C): Raise CE if string is null and Append_Null
27000
27001 2005-01-03  Robert Dewar  <dewar@adacore.com>
27002
27003         * i-cstrin.adb (Update): Do not append a null in form called with a
27004         String. This avoids unintended behavior.
27005
27006 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
27007
27008         PR ada/17527
27009         * init.c: Fix warnings on Free BSD section.
27010
27011 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
27012
27013         PR ada/16949
27014         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
27015         xsinfo.adb).
27016
27017 2005-01-03  Vincent Celier  <celier@adacore.com>
27018
27019         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
27020         libraries when Unique_Compile is True (-u switch).
27021         (Gnatmake): ditto.
27022
27023 2005-01-03  Robert Dewar  <dewar@adacore.com>
27024
27025         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
27026         upper case letter or underscore after W, as allowed by spec.
27027
27028 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
27029
27030         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
27031         darwin port by using proper type definitions from header files.
27032         Use SIGTERM instead of SIGABRT for SIGADAABORT.
27033
27034 2005-01-03  Robert Dewar  <dewar@adacore.com>
27035
27036         * par.adb: Enhance error message handling for configuration file
27037         pragmas.
27038
27039 2005-01-03  Robert Dewar  <dewar@adacore.com>
27040
27041         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
27042         removed during the previous update (test properly for case of dividing
27043         largest negative number by -1, which generates overflow).
27044
27045 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
27046             Sergey Rybin  <rybin@adacore.com>
27047
27048         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
27049         to use as the defining identifier for a formal package.
27050         (Remove_Parent): If the instance takes place within (an instance of)
27051         a sibling, preserve private declarations of common parent.
27052
27053 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
27054
27055         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
27056         to determine whether one of the operands is a fixed-point type for
27057         which a user-defined multiplication or division operation might be
27058         defined.
27059
27060         * sem_res.adb (Valid_Conversion): The legality rules for conversions
27061         of access types are symmetric in Ada 2005: either designated type can
27062         be unconstrained.
27063
27064 2005-01-03  Vincent Celier  <celier@adacore.com>
27065
27066         * s-fileio.adb (Temp_File_Record): Change length of string component
27067         Name from L_tmpnam + 1 to max_path_len + 1.
27068
27069 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
27070
27071         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
27072         Self_Id.Deferral_Level = 0.
27073         (Do_Pending_Action): Move this function to the spec.
27074
27075         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
27076         Do_Pending_Action explicitely when needed, in case we're using
27077         No_Abort restrictions.
27078
27079         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
27080         deferral level since it will not get changed by the generated code.
27081         Keeping a default value of 1 would prevent some operations (e.g.
27082         select or delay) to proceed successfully.
27083
27084 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
27085             Robert Dewar  <dewar@adacore.com>
27086             Cyrille Comar  <comar@adacore.com>
27087
27088         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
27089         porting guide chapter (vms version).
27090         Revised doc title (removed "for native platforms") and subtitle.
27091         Add discussion on warning flag for obsolescent features. First we
27092         note that it applies to obsolete GNAT features, which was previously
27093         omitted. Second we contrast the behavior with that of the new
27094         Ada 2005 AI-368 restriction No_Obsolescent_Features.
27095         Preliminary rewriting of GNAT & libraries chapter in order to take
27096         into account default project locations & new project manager
27097         capabilities.
27098
27099 2005-01-03  Robert Dewar  <dewar@adacore.com>
27100
27101         * cstand.adb (Create_Operators): Clean up format and documentation of
27102         unary and binary operator result tables. No change in code, just
27103         reformatting and addition of comments.
27104
27105         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
27106         sem_ch2.adb: Minor reformatting
27107
27108         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
27109         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
27110         comments for Tree_Read and Tree_Write.
27111
27112 2005-01-03  Pascal Obry  <obry@adacore.com>
27113
27114         * exp_attr.ads: Minor reformatting.
27115
27116 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
27117
27118         * comperr.adb (Compiler_Abort): Add specialized message for GAP
27119         versions.
27120
27121 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
27122
27123         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
27124         whether the ancestor type is private, as may be the case with nested
27125         instantiations.
27126
27127 2004-12-30  Sohail Somani  <sohail@sohailsomani.com>
27128
27129         PR ada/19128
27130         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
27131
27132 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
27133
27134         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
27135         * utils2.c (build_unary_op): Likewise.
27136
27137 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27138
27139         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
27140
27141 2004-12-19  Richard Henderson  <rth@redhat.com>
27142
27143         * trans.c (gigi): Update gimplify_body call.
27144
27145 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
27146
27147         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
27148
27149 2004-12-07  Ed Falis  <falis@adacore.com>
27150
27151         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
27152         current task being suspended.
27153
27154         * init.c (__gnat_clear_exception): added to reset VxWorks exception
27155         count.
27156         (__gnat_map_signal): removed test for current task being suspended.
27157
27158 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
27159
27160         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
27161         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
27162         targets (such as AAMP).
27163
27164 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
27165
27166         * atree.adb (Visit_Itype): Create a new name for the generated itype,
27167         because the back-end may otherwise treat it as a redefinition of the
27168         old symbol.
27169
27170 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
27171
27172         * back_end.adb (Scan_Back_End_Switches): Accept --param.
27173
27174         * lang-specs.h: Accept --param.
27175
27176 2004-12-07  Vincent Celier  <celier@adacore.com>
27177
27178         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
27179         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
27180         Current_Body_Suffix => Ada_Body_Suffix).
27181         Take into account Externally_Built attribute.
27182
27183         * clean.adb (In_Extension_Chain): Always return False when one of the
27184         parameter is No_Project.
27185         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
27186         Ada_Language_Index).
27187         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
27188         Process_Languages for procedure Parse).
27189
27190         * gnatcmd.adb (Carg_Switches): New table.
27191         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
27192         Adapt to name changes in package Prj (Current_Spec_Suffix =>
27193         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
27194
27195         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
27196         Header_Num and function Hash are now declared in package Prj,
27197         not Prj.Com.
27198
27199         * prj.adb (Suffix_Of): New function.
27200         (Set (Suffix)): New procedure.
27201         (Hash): One function moved from Prj.Com
27202         (Is_Present, Language_Processing_Data_Of): New functions
27203         (Set): Two new procedures
27204         (Add_Language_Name, Display_Language_Name): New procedures
27205
27206         * prj.ads: (Suffix_Of): New function
27207         (Set (Suffix)): New procedure
27208         Add several types and tables for multi-language support.
27209         (Header_Num): Type moved from Prj.Com
27210         (Hash): Two functions moved from Prj.Com
27211         (Is_Present, Language_Processing_Data_Of): New functions
27212         (Set): Two new procedures
27213         (Add_Language_Name, Display_Language_Name): New procedures
27214         (Naming): Component name changes:
27215         Current_Spec_Suffix => Ada_Spec_Suffix,
27216         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
27217         Impl_Suffixes, Supp_Suffixes.
27218         (Project_Data): New components: Externally_Built, Supp_Languages,
27219         First_Language_Processing, Supp_Language_Processing, Default_Linker,
27220         Default_Linker_Path.
27221
27222         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
27223         new package Language_Processing with its attributes (Compiler_Driver,
27224         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
27225         Binder_Driver, Default_Linker).
27226
27227         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
27228         (Header_Num): Type moved to package Prj
27229
27230         * prj-env.adb: Adapt to name changes in package Prj
27231         (Current_Spec_Suffix => Ada_Spec_Suffix,
27232         Current_Body_Suffix => Ada_Body_Suffix).
27233
27234         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
27235         default to the project path, except the "-" is one of the directories
27236         in env var ADA_PROJECT_PATH.
27237         (Current_Project_Path): Global variable, replacing Project_Path
27238         that was in the body of Prj.Part.
27239         (Project_Path): New function
27240         (Set_Project_Path): New procedure
27241         Initialize Current_Project_Path during elaboration of the package
27242         Remove dependency on Prj.Com, no longer needed
27243
27244         * prj-ext.ads (Project_Path): New function
27245         (Set_Project_Path): New procedure
27246
27247         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
27248         suffix is defined for language <lang>.
27249         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
27250         accessing directly the components of Naming.
27251         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
27252         Reorganise of this package.
27253         Break procedure Check in several procedures.
27254
27255         * prj-nmsc.ads: Replace all procedures (Ada_Check,
27256         Other_Languages_Check and Language_Independent_Check) with a single
27257         procedure Check.
27258
27259         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
27260         Process_Languages, no longer needed.
27261
27262         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
27263         Current_Project_Path.
27264         Remove elaboration code, moved to the body of Prj.Ext
27265         Use new function Prj.Ext.Project_Path instead of old variable
27266         Project_Path.
27267         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
27268         When comparing with project paths on the stack, first put the resolved
27269         path in canonical case.
27270         (Parse_Single_Project): Set the path name of the project file in the
27271         tree to the normalized path.
27272
27273         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
27274         parameter Process_Languages, no longer needed.
27275         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
27276         Other_Languages_Check.
27277
27278         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
27279         to store the resolved canonical path of the project file.
27280         Remove dependency to Prj.Com, no longer needed
27281
27282         * prj-util.adb: Adapt to name changes in package Prj
27283         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
27284         Ada_Body_Suffix).
27285
27286         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
27287         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
27288         Externally_Built, Include_Option, Language_Processing.
27289
27290         * makegpr.adb: Numerous changes due to changes in packages
27291         Prj and Prj.Nmsc.
27292
27293         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
27294         default to the project path, except whe "-" is one of the directories
27295         in env var ADA_PROJECT_PATH.
27296         (Gnatls): In verbose mode, add the new section "Project Search Path:"
27297
27298 2004-12-07  Robert Dewar  <dewar@adacore.com>
27299
27300         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
27301
27302         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
27303         set -gnatR3m mode.
27304
27305         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
27306         flag. No longer needed now that we handle this in gnat1drv.adb.
27307
27308         * repinfo.ads: Minor reformatting
27309
27310 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27311             Olivier Hainque  <hainque@adacore.com>
27312             Eric Botcazou  <ebotcazou@adacore.com>
27313
27314         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
27315         TYPE_SIZE_UNIT of result type if SIZE is not specified.
27316         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
27317         of a bitfield, which we know is useless and causes trouble because of
27318         alignment implications.
27319
27320         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
27321         BSS sections.
27322         (process_attributes): Clear DECL_COMMON again when a section attribute
27323         is present.
27324         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
27325         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
27326         (create_field_decl): Special case ADDRESSABLE negative to mean
27327         "no bitfield creation", to be used by make_aligning_type. Don't
27328         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
27329         fields claimed addressable still have to be bitfields. Use
27330         value_factor_p instead of a raw binop construction to check for the
27331         position's alignment.
27332
27333 2004-12-07  Geert Bosch  <bosch@adacore.com>
27334
27335         * eval_fat.adb: Revert previous change.
27336
27337 2004-12-07  Thomas Quinot  <quinot@adacore.com>
27338             Ed Schonberg  <schonberg@adacore.com>
27339
27340         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
27341         with an implicit dereference as its prefix, use
27342         Insert_Explicit_Dereference instead of merely rewriting the prefix into
27343         an explicit dereference. This ensures that a reference to the original
27344         prefix is generated, if appropriate.
27345
27346         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
27347         dereference is rewritten to an explicit one, generate a reference to
27348         the entity denoted by its prefix using the original prefix node, so
27349         the dereference can be properly recorded as a read of the denoted
27350         access value, if appropriate.
27351
27352         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
27353         emitting 'assigned but never read' warning on a variable on the basis
27354         that it has an access type.
27355         (Check_References): Emit unreferenced warning when the scope is a
27356         subprogram body.
27357
27358 2004-12-07  Robert Dewar  <dewar@adacore.com>
27359             Ed Schonberg  <schonberg@adacore.com>
27360
27361         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
27362         intrinsic
27363
27364         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
27365         leaving call unchanged.
27366         This deals with the case where the pragma Import specified
27367         an external name, to be handled by the back end.
27368
27369         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
27370         subprogram which is Imported with convention Intrinsic if an
27371         External_Name argument is specified.
27372         (Process_Import_Or_Interface): Properly diagnose link name argument.
27373         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
27374         with Sem_Ch6.Cannot_Inline.
27375         (Process_Inline): Provide separate warning for inapplicable inline
27376         pragma.
27377         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
27378         treatment is uniform on different targets.
27379
27380 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
27381
27382         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
27383         construct is rewritten, preserve end label to permit source navigation.
27384
27385 2004-12-07  Thomas Quinot  <quinot@adacore.com>
27386
27387         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
27388         Specific_Build_Stub_Target): New subprograms.
27389         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
27390         the PCS implementation used, using the above PCS-customized subprograms.
27391         Minor reformatting.
27392         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
27393         for generation of DSA code targeted to the PolyORB PCS.
27394         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
27395         implementation of the partition communication subsystem in ancillary
27396         subprograms.
27397         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
27398         PolyORB_Support.Build_Stub_Type): New subrograms containing the
27399         PCS-specific part of Add_Stub_Type.
27400         (Insert_Partition_Check): Use runtime library function to perform
27401         E.4(19) check.
27402
27403         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
27404         (RE_Same_Partition): New entity, from s-parint.
27405
27406         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
27407
27408 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
27409
27410         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
27411         Output the copyright message on a separate line from the version
27412         message.
27413
27414 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
27415
27416         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
27417         compile-time warning.
27418
27419 2004-12-07  Robert Dewar  <dewar@adacore.com>
27420
27421         * g-regpat.adb: (Match): Change a misuse of or to or else
27422
27423 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
27424
27425         * lib-xref.adb:
27426         (Generate_Reference): Handle properly a reference to an entry formal,
27427          when an accept statement has a pragma Unreferenced for it.
27428
27429         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
27430         and the Has_Pragma_Unreferenced flag for each formal before analyzing
27431         the body, to ensure that warnings are properly emitted for each accept
27432         statement of a given task entry.
27433
27434 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
27435
27436         * Makefile.in: Add support for foreign threads on VMS.
27437
27438 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27439
27440         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
27441         Remove.
27442         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
27443
27444         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
27445
27446         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
27447         exception.
27448         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
27449
27450 2004-12-07  Robert Dewar  <dewar@adacore.com>
27451
27452         * nlists.adb (Prepend_Debug): Remove parameters and nest within
27453         Prepend.
27454         (Remove_Next_Debug): Same fix
27455
27456         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
27457         maintain back pointers now, though we did not used to, and comments
27458         were out of date).
27459         (Prepend): Remove pragma Inline.
27460         (Remove_Next): Same cleanup
27461
27462 2004-12-07  Thomas Quinot  <quinot@adacore.com>
27463
27464         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
27465         used to record an implicit dereference as a read operation on its
27466         prefix when operating under -gnatc. Necessary to avoid spurious
27467         'variable assigned but never read' warnings in that mode.
27468         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
27469         is a non-overloaded implicit dereference, call the above subprogram to
27470         ensure proper recording of references.
27471
27472 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
27473
27474         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
27475         to be resolved later as part of Analyze_Iteration_Scheme's call to
27476         Make_Index.
27477
27478 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
27479
27480         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
27481         prefix is not a scalar type, place error message on prefix, not on
27482         type entity.
27483
27484 2004-12-07  Bernard Banner  <banner@adacore.com>
27485
27486         * vxaddr2line.adb: Add support for x86 vxworks
27487
27488 2004-12-07  Thomas Quinot  <quinot@adacore.com>
27489
27490         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
27491         documentation of the behaviour of these functions when passed an IP
27492         address that has no record in the system hosts database and no reverse
27493         record in the DNS.
27494
27495         * cstand.adb, a-tags.ads: Fix typos in comment.
27496
27497 2004-12-07  Robert Dewar  <dewar@adacore.com>
27498
27499         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
27500         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
27501         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
27502         s-poosiz.ads: Minor reformatting
27503
27504         * make.adb: Minor reformatting
27505         Add some ??? comments asking for more comments
27506
27507         * s-poosiz.adb: Minor reformatting
27508         Add comments on alignment requirement
27509
27510         * sinfo.ads: Remove obsolete comment and fix typo.
27511
27512 2004-12-07  Vincent Celier  <celier@adacore.com>
27513             Sergey Rybin  <rybin@adacore.com>
27514
27515         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
27516         Files" with the new tool and package names.
27517         Reformatting to suppress most of the warnings for line too long
27518         Document the new section "Project Search Path:" in the output of
27519         gnatls -v.
27520         Add gnatmetric section
27521
27522 2004-12-07  Vincent Celier  <celier@adacore.com>
27523
27524         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
27525         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
27526         and -eit to -ept. Added qualifier
27527         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
27528
27529 2004-11-27  Andreas Schwab  <schwab@suse.de>
27530
27531         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
27532
27533 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
27534
27535         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
27536         internal implementation unit GNAT.Sockets.Thin,
27537         as their usage for sockets is non-portable (using the read and write
27538         functions from the system runtime library is fine on UNIX but won't
27539         work under Windows).
27540
27541         * mingw32.h: Update copyright notice.
27542
27543 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
27544
27545         * ada-tree.h: Minor reformatting of previous change to avoid lines
27546         longer than 79 characters.
27547
27548 2004-11-25  Olivier Hainque  <hainque@adacore.com>
27549
27550         * tb-gcc.c: GCC infrastructure based implementation of
27551         __gnat_backtrace.
27552
27553 2004-11-24  Steven Bosscher  <stevenb@suse.de>
27554
27555         * misc.c (gnat_post_options): Don't clear
27556         flag_inline_functions.
27557
27558 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
27559
27560         PR ada/17986
27561         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
27562         tree.
27563
27564 2004-11-21  Andreas Jaeger  <aj@suse.de>
27565
27566         * stylesw.adb: Change Style_Check_Subprogram_Order to
27567         Style_Check_Order_Subprograms.
27568
27569 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
27570
27571         * adaint.h, adaint.c
27572         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
27573         to avoid warnings.
27574         Add also a cast to kill another warning.
27575         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
27576         parameter with the priority class of the parent process instead of
27577         always using the NORMAL_PRIORITY_CLASS.
27578         (__gnat_dup): New function.
27579         (__gnat_dup2): New function.
27580         (__gnat_is_symbolic_link): Enable the effective body of this
27581         function when __APPLE__ is defined.
27582
27583         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
27584         Update comments.
27585
27586 2004-11-18  Olivier Hainque  <hainque@adacore.com>
27587
27588         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
27589         address of which may be used to represent "others" and "all others"
27590         choices in exception tables, instead of the current harcoded
27591         (void *)0 and (void *)1.
27592         (Setup_Exception): Do nothing in the GNAT SJLJ case.
27593
27594         * gigi.h (others_decl, all_others_decl): New decls representing the
27595         new Others_Value and All_Others_Value objects.
27596         (struct attrib): Rename "arg" component as "args", since GCC expects a
27597         list of arguments in there.
27598
27599         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
27600         corresponding objects exported by a-exexpr, instead of hardcoded dummy
27601         addresses.
27602
27603         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
27604         others_decl and all_others_decl instead of hardcoded dummy addresses
27605         to represent "others" and "all others" choices, which is cleaner and
27606         more flexible with respect to the possible eh pointer encoding policies.
27607
27608         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
27609         (process_attributes): Account for the naming change of the "args"
27610         attribute list entry component.
27611
27612         * decl.c (build_attr_list): Rename into prepend_attributes to allow
27613         cumulating attributes for different entities into a single list.
27614         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
27615         attributes for the current entity and propagate first subtype
27616         attributes to other subtypes.
27617         <E_Procedure>: Attribute arguments are attr->args and not
27618         attr->arg any more.
27619         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
27620         argument provided, as this is what GCC expects. Use NULL_TREE instead
27621         of 0 for trees.
27622
27623 2004-11-18  Robert Dewar  <dewar@adacore.com>
27624
27625         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
27626         Minor reformatting througout (including new function specs)
27627         Add ??? comments asking for clarification.
27628
27629 2004-11-18  Thomas Quinot  <quinot@adacore.com>
27630
27631         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
27632         incomplete duplicate implementation of this subprogram from butil.
27633
27634 2004-11-18  Thomas Quinot  <quinot@adacore.com>
27635
27636         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
27637         procedures factors the common processing for building an RPC receiver
27638         for an RCI package or an RACW type.
27639         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
27640         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
27641         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
27642         in use.
27643         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
27644         Add_RACW_Features.
27645         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
27646         Add_RAST_Features.
27647         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
27648         distribution subprogram identifiers that are either subprogram numbers
27649         or strings.
27650         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
27651         string distribution identifiers assigned to a given subprogram.
27652         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
27653         (Add_RAS_Dereference_TSS): Add comments.
27654         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
27655         is not referenced yet because it will be used by the PolyORB DSA
27656         implementation.
27657         (Insert_Partition_Check): Remove fossile code.
27658         (First_RCI_Subprogram_Id): Document this constant.
27659         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
27660         RAS_Access TSS.
27661         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
27662         replaced with calls to Get_Library_Unit_Name_String. Previously there
27663         were several instances of the same code in different locations in the
27664         compiler; this checkin completes the replacement of all of these
27665         instances with calls to a common subprogram.
27666         Minor reformatting.
27667
27668         * sem_dist.adb: Remove comment noting that RPC receiver generation
27669         should be disabled for RACWs that implement RASs.
27670         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
27671
27672         * sem_util.ads, sem_util.adb (Has_Stream): New function
27673         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
27674         qualified name of a library unit into the name buffer.
27675         (Note_Possible_Modification): Generate a reference only
27676         if the context comes from source.
27677
27678         * snames.ads (PCS_Names): New subtype corresponding to names of
27679         supported implementations of the Partition Communication Subsystem
27680         (PCS) (i.e. the runtime library support modules for the distributed
27681         systems annex).
27682
27683 2004-11-18  Robert Dewar  <dewar@adacore.com>
27684             Ed Schonberg  <schonberg@adacore.com>
27685
27686         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
27687         (Has_Rep_Pragma): New function
27688         (Has_Attribute_Definition_Clause): New function
27689         (Record_Rep_Pragma): Moved here from sem_ch13.adb
27690         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
27691
27692         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
27693
27694         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
27695         (Expand_Pragma_Psect_Object): New procedure
27696         These procedures contain the revised and cleaned up processing for
27697         these two pragmas. This processing was formerly in Sem_Prag, but
27698         is more appropriately moved here. The cleanup involves making sure
27699         that the pragmas are properly attached to the tree, and that no
27700         nodes are improperly shared.
27701
27702         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
27703         pragmas to Exp_Prag, which is more appropriate.
27704         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
27705         check for duplicates Remove use of Is_Psected flag, no longer needed.
27706         Use new Make_String_Literal function with string.
27707
27708         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
27709         that are functions return universal values, that have to be converted
27710         to the context type.
27711         Use new Make_String_Literal function with string.
27712         (Get_Stream_Convert_Pragma): New function, replaces the use of
27713         Get_Rep_Pragma, which had to be kludged to work in this case.
27714
27715         * freeze.adb: Use new Has_Rep_Pragma function
27716
27717         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
27718         function with string.
27719         Use new Has_Rep_Pragma function.
27720
27721         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
27722         string argument.
27723
27724 2004-11-18  Robert Dewar  <dewar@adacore.com>
27725
27726         * errout.ads, errout.adb: (First_Sloc): New function
27727
27728         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
27729         check (-gnatyx) instead of being included as a redundant construct
27730         warning.
27731
27732         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
27733         Style_Check_Order_Subprograms.
27734
27735         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
27736         stylesw.adb: Add Style_Check_Xtra_Parens
27737
27738         * usage.adb: Add line for -gnatyx (check extra parens)
27739
27740         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
27741
27742 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
27743             Robert Dewar  <dewar@adacore.com>
27744
27745         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
27746         discriminant of a constrained subtype, analyze the copy of the
27747         corresponding constraint, because in some cases it may be only
27748         partially analyzed.
27749         Removes long-lived ??? comments.
27750
27751         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
27752         handled controlled or secondary-stack expressions within the
27753         iteration_scheme of a loop.
27754
27755         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
27756         bounds that may contain functions calls, to prevent memory leaks when
27757         the bound contains a call to a function that uses the secondary stack.
27758         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
27759         generate temporaries for loop bounds that might contain function calls
27760         that require secondary stack and/or finalization actions.
27761
27762         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
27763         selected component and the selector is overloadable (not just a
27764         function) treat as function call, Analyze_Call will disambiguate if
27765         necessary.
27766         (Analyze_Selected_Component): Do not generate an actual subtype for the
27767         selected component if expansion is disabled. The actual subtype is only
27768         needed for constraint checks.
27769         (Analyze_Allocator): If restriction No_Streams is set, then do
27770         not permit objects to be declared of a stream type, or of a
27771         composite type containing a stream.
27772
27773         * restrict.ads: Remove the a-stream entry from Unit_Array, since
27774         No_Streams no longer prohibits with'ing this package.
27775
27776         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
27777         discriminants, but the parent base has unknown discriminants, there is
27778         no discriminant constraint to inherit. Such a discrepancy can arise
27779         when the actual for a formal type with unknown discriminants is a
27780         similar private type whose full view has discriminants.
27781         (Analyze_Object_Declaration): If restriction No_Streams is set, then
27782         do not permit objects to be declared of a stream type, or of a
27783         composite type containing a stream.
27784
27785 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
27786
27787         * exp_dbug.ads: Update documentation to reflect simpler encoding for
27788         protected operations.
27789
27790         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
27791         generated name, it complicates decoding in gdb and hinders debugging
27792         of protected operations.
27793         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
27794         flag for the protected entry barrier function.
27795         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
27796         flag for the protected entry function.
27797
27798 2004-11-18  Nicolas Setton  <setton@adacore.com>
27799
27800         * expect.c: Define __unix__ when __APPLE__ is defined.
27801
27802         * Makefile.in: Inform the value of the variable GMEM_LIB in the
27803         Darwin-specific section.
27804
27805         * lang-specs.h: Change the placement of the %1 marker.
27806         Works around the fact that gcc adds -fPIC by default under Darwin.
27807
27808 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
27809
27810         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
27811         type of the object with the packed array type, set the Analyzed flag
27812         on the object if it is an entity or simple indexed component, to avoid
27813         spurious type errors.
27814
27815 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
27816
27817         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
27818         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
27819         separate line from the version message.
27820
27821 2004-11-18  Ed Falis  <falis@adacore.com>
27822
27823         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
27824         vthreads.
27825         (init_float): Eliminate initialization of floating point status for
27826         AE653. The instructions have no effect for vThreads.
27827
27828 2004-11-18  Vincent Celier  <celier@adacore.com>
27829
27830         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
27831         gnatbind is invoked with -shared.
27832
27833 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
27834
27835         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
27836         for Detect_Blocking which is redundant with the check done within the
27837         procedure Protected_Single_Entry_Call.
27838         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
27839         Detect_Blocking which is redundant with the check done within the
27840         procedure Protected_Single_Entry_Call.
27841
27842 2004-11-18  Vincent Celier  <celier@adacore.com>
27843
27844         * makegpr.adb (Compile): Put the compiling switches (in package
27845         Compiler and on the command line) immediately after "-c", instead of
27846         at the end of the command line invocation of the compiler, when
27847         compiling a non-Ada file.
27848         (Build_Global_Archive): When there is no need to rebuild the archive,
27849         set Global_Archive_Exists, so that the archive is passed to the linker
27850         if one is needed.
27851
27852 2004-11-18  Robert Dewar  <dewar@adacore.com>
27853             Sergey Rybin  <rybin@adacore.com>
27854
27855         * gnat_ugn.texi:
27856         Remove extra paren check from list of checks for redundant constructs
27857         Add documentation of new -gnatyx style check (check extra parens)
27858         Remove paragraph about gnatelim debug options.
27859
27860         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
27861         objects rather than forbidding dependencies on the package Ada.Streams.
27862
27863         * sinfo.ads: Add ??? note that we should document pragmas passed to
27864         back end.
27865
27866         * g-expect.ads: Fix a few typos in the comments.
27867
27868 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
27869
27870         * misc.c (gnat_handle_option): Use %< and %> for quoting in
27871         warning message.
27872
27873 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
27874
27875         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
27876
27877 2004-11-07  Andreas Schwab  <schwab@suse.de>
27878
27879         * Makefile.in (install-gnatlib): Remove spurious hyphen.
27880
27881 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
27882
27883         PR ada/18228
27884         * Makefile.in (darwin): Set soext to .dylib.
27885
27886 2004-10-26  Vincent Celier  <celier@gnat.com>
27887             Thomas Quinot   <quinot@act-europe.fr>
27888
27889         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
27890         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
27891         there is no use of GNAT.Sockets.Constants.
27892         Remove remaining pragma Import for C_Write
27893         Remove C_Read and C_Write from internal implementation unit
27894         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
27895         the read and write functions from the system runtime library is fine
27896         on UNIX but won't work under Windows).
27897
27898         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
27899         (Check_Selector): Use C_Recv instead of C_Read.
27900         Selectors are the GNAT.Sockets abstraction to perform a select()
27901         call on a set of descriptors. To allow abortion of an ongoing
27902         select operation, some data is written to a dedicated socket that
27903         is always monitored.
27904         Under Windows, the write and read library functions cannot operate
27905         on sockets, so we need to use send and recv instead, which is portable
27906         across all supported platforms.
27907
27908         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
27909         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
27910         (using the read and write functions from the system runtime library is
27911         fine on UNIX but won't work under Windows).
27912
27913 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
27914
27915         * mlib-tgt-darwin.adb: New file.
27916
27917         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
27918         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
27919         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
27920         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
27921         subprogram body.
27922
27923         * Makefile.in: Add support for building shared libraries under Darwin.
27924         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
27925         the low level EH init subprogram to be called from __gnat_initialize.
27926
27927         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
27928         indicates which options to pass to the archive indexer.
27929
27930         * mlib-utl.adb: Add support for calling ranlib with additional
27931         options. This is needed for instance under Mac OS X.
27932         (Ranlib_Options): New global variable, used to store the potential
27933         options to pass to ranlib.
27934         (Ar): Use Ranlib_Options when spawning ranlib.
27935         (Initialize): Set the value of ranlib option.
27936
27937 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
27938
27939         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
27940         instead of 8K, to reflect the real potential needs for stack-checking
27941         in the ZCX case.
27942
27943 2004-10-26  Pascal Obry  <obry@gnat.com>
27944
27945         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
27946
27947         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
27948         Windows only the initial thread stack size can be set so it is good to
27949         start we a low stack size.
27950         The OS will adjust the size as needed.
27951
27952 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
27953             Nicolas Setton  <setton@act-europe.fr>
27954
27955         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
27956         "__unix__" instead of "unix".
27957         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
27958         sections were just mistakenly ignored. The former is
27959         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
27960         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
27961         of hpux. This prevents an unwanted definition of the symbol
27962         convert_addresses in adaint.o.
27963
27964 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
27965
27966         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
27967         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
27968
27969 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
27970
27971         * a-filico.ads, a-filico.adb: fix incorrect header.
27972
27973 2004-10-26  Javier Miranda  <miranda@gnat.com>
27974
27975         * a-ststio.ads: Fix typo in identifier
27976
27977 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
27978
27979         * sem_ch4.adb: Minor reformatting.
27980
27981 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
27982
27983         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
27984         enabled, check the result of unary and binary operations when the
27985         expression is the right-hand side of an assignment.
27986
27987 2004-10-26  Vincent Celier  <celier@gnat.com>
27988
27989         * clean.adb (Delete): Do not output warnings when in quiet output and
27990         not in verbose mode.
27991         (Force_Deletions): New Boolean flag, defaulted to False
27992         (Delete): Only delete a file if it is writable, and when
27993         Force_Deletions is True.
27994         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
27995         (Usage): Line for new switch -f
27996         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
27997         own.
27998
27999 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
28000
28001         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
28002         JM type only if its size matches that of the wrapper.  When a size is
28003         prescribed and the field is not aliased, remove the wrapper of a JM
28004         type only if the size is not greater than that of the packed array.
28005         (gnat_to_gnu_entity): Change the extension of packed array wrappers
28006         from LJM to JM.
28007
28008 2004-10-26  Geert Bosch  <bosch@gnat.com>
28009
28010         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
28011         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
28012         (Pred): Implement in terms of Succ.
28013
28014 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
28015
28016         * exp_aggr.adb (Safe_Component): An aggregate component that is an
28017         unchecked conversion is safe for in-place use if the expression of the
28018         conversion is safe.
28019         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
28020         be expandable in place even if the aggregate does not come from source.
28021         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
28022         designated object of an allocator in place, rather than building it
28023         first on the stack. The previous scheme forces a full copy of the array,
28024         and may be altogether unsusable if the size of the array is too large
28025         for stack allocation.
28026
28027 2004-10-26  Robert Dewar  <dewar@gnat.com>
28028
28029         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
28030         compares if the component is atomic.
28031
28032         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
28033         array assignment if the component type is atomic.
28034
28035 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
28036             Eric Botcazou  <ebotcazou@act-europe.fr>
28037
28038         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
28039         is aliased and is a by_reference type, do not pass by copy.
28040         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
28041         detect whether the call is in the right side of an assignment or
28042         the expression of an object declaration.  Recurse on component
28043         association within aggregates.
28044         Call it in the condition that determines whether the temporary is
28045         necessary for correct stack-checking.
28046
28047 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
28048
28049         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
28050         RACW_Type, used in the PolyORB version.
28051         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
28052         version and the GARLIC version.
28053
28054         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
28055         Rename RCI_Info to RCI_Locator for better consistency between the
28056         GARLIC and PolyORB versions of the distributed systems annex.
28057         (DSA_Implementation_Name): This enumeration lists the possible
28058         implementations of the Partition Communication Subsystem for the
28059         Distributed Systems Annex (DSA). The three available implementations
28060         are the dummy stub implementation (No_DSA), and two versions based on
28061         two different distribution runtime libraries: GARLIC and PolyORB. Both
28062         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
28063         technology.
28064         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
28065         that organization.
28066
28067         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
28068         between the GARLIC and PolyORB versions of the distributed systems
28069         annex.
28070         Remove RE_Unbounded_Reclaim_Pool since it is unused.
28071
28072 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
28073
28074         * gnat1drv.adb: Suppress calling the back end when
28075         Frontend_Layout_On_Target is true.
28076
28077 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
28078
28079         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
28080         Set_Read_Only): New subprograms.
28081         These new routines allow the user to set or unset the Owner execute
28082         and Owner write permission flags on a file.
28083
28084         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
28085         GNAT.OS_Lib.Set_Executable instead of rolling our own.
28086
28087 2004-10-26  Matthew Gingell  <gingell@gnat.com>
28088
28089         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
28090
28091 2004-10-26  Pascal Obry  <obry@gnat.com>
28092
28093         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
28094         memory before the faulting page we properly test the process read
28095         access for this address using appropriate Win32 routine.
28096         (HPUX sections): guard with "__hpux__" instead of "hpux".
28097
28098 2004-10-26  Robert Dewar  <dewar@gnat.com>
28099
28100         * lib-xref.adb (Generate_Reference): Don't complain about reference to
28101         entry parameter if pragma Unreferenced set, since we do not properly
28102         handle the case of multiple parameters.
28103
28104 2004-10-26  Vincent Celier  <celier@gnat.com>
28105
28106         * prj-env.adb: (Contains_ALI_Files): New Boolean function
28107         (Ada_Objects_Path.Add): For a library project, add to the object path
28108         the library directory only if there is no object directory or if the
28109         library directory contains ALI files.
28110         (Set_Ada_Paths.Add.Recursive_Add): Ditto
28111
28112 2004-10-26  Vincent Celier  <celier@gnat.com>
28113
28114         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
28115         extension of library projects.
28116
28117         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
28118         path defaults to ".:<prefix>/lib/gnat".
28119         (Parse): For an extending all project, allow direct import of a project
28120         that is virtually extended.
28121
28122         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
28123         the specified name is directly imported, return its ID. Otherwise, if
28124         an extension of this project is imported, return the ID of the
28125         extension.
28126
28127 2004-10-26  Robert Dewar  <dewar@gnat.com>
28128
28129         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
28130         (Sub3): New procedure, used by Scaled_Divide
28131         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
28132         correct more than one instance of failure to propagate carries
28133         correctly.
28134         (Double_Divide): Handle overflow case of largest negative number
28135         divided by minus one.
28136
28137         * s-arit64.ads (Double_Divide): Document that overflow can occur in
28138         the case of a quotient value out of range.
28139         Fix comments.
28140
28141 2004-10-26  Robert Dewar  <dewar@gnat.com>
28142
28143         * s-bitops.adb (Bit_Eq): Remove redundant check.
28144
28145         * s-bitops.ads: Minor comment updates
28146         Change some occurrences of Address to System.Address
28147
28148         * s-carsi8.ads: Fix minor cut-and-paste error in comments
28149
28150 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
28151
28152         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
28153         accessibility check to prefix that is a protected operation.
28154
28155 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
28156
28157         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
28158         empty, post message on stub.
28159
28160 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
28161             Javier Miranda  <miranda@gnat.com>
28162
28163         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
28164         current instance appears within a unit that is directly in the context
28165         of the main unit.
28166         Used to determine whether the body of the instance should be analyzed
28167         immediately after its spec, to make its subprogram bodies available
28168         for front-end inlining.
28169         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
28170         constraint is not allowed on the component type (AARM 12.5.3(3))
28171
28172 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
28173
28174         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
28175         'Storage_Pool): enhance, document & limit detection of non-sharable
28176         internal pools.
28177
28178         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
28179
28180         * s-pooglo.ads: Add more documentation now that this pool is properly
28181         documented.
28182
28183 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
28184
28185         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
28186         or protected type with discriminants, do not constrain the
28187         corresponding record type if the subtype declaration has no
28188         discriminant constraints. This can be the case in source code, or in
28189         the subtype declaration created to rename an actual type within an
28190         instantiation.
28191
28192 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
28193
28194         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
28195         different kind of stub (possibly wrong name for file), do not check
28196         for conformance.
28197         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
28198         includes call to some function that returns an unconstrained type, do
28199         not inline.
28200
28201 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
28202
28203         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
28204         appear in the code for the main unit. Dependencies among units in the
28205         context of the main unit are established when those other units are
28206         compiled. Otherwise spurious elaboration constraints can generate
28207         incorrect elaboration circularities.
28208
28209 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
28210             Ed Schonberg   <schonberg@gnat.com>
28211
28212         * sem_util.adb (Is_Aliased_View): Defend against the case where this
28213         subprogram is called with a parameter that is not an object name. This
28214         situation arises for some cases of illegal code, which is diagnosed
28215         later, and in this case it is wrong to call Is_Aliased, as that might
28216         cause a compiler crash.
28217         (Explain_Limited_Type): Refine previous fix to include
28218         inherited components of derived types, to provide complete information.
28219
28220         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
28221         is the prival for a protected object.
28222         It is necessary to mark this entity as a variable, in addition to
28223         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
28224         modified to avoid checking the Aliased flag on entities that are not
28225         objects. (Checking that flag for non-objects is erroneous and could
28226         lead to a compiler crash).
28227
28228 2004-10-26  Robert Dewar  <dewar@gnat.com>
28229
28230         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
28231         X_Frac = 0.5, then we know that the number X must be positive.
28232         (Succ): Remove the same redundant test, and also fix the primary test
28233         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
28234         Minor reformatting
28235         (Decompose): Add fuller comments to spec
28236
28237 2004-10-26  Pascal Obry  <obry@gnat.com>
28238
28239         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
28240         validity (process must have read access). Set to 0 in all other cases.
28241         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
28242         violation on Win32.
28243         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
28244         segmentation violation.
28245
28246 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
28247
28248         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
28249         whose type is a constructed subtype of an aliased object with an
28250         unconstrained nominal subtype, convert the actual to the constructed
28251         subtype before taking its address.
28252
28253 2004-10-26  Vincent Celier  <celier@gnat.com>
28254
28255         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
28256         (Is_Path_Name_Case_Sensitive): New function
28257
28258         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
28259         (Base_Name, Simple_Name, Current_Directory, Compose,
28260         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
28261         the result.
28262
28263 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
28264             Vasiliy Fofanov  <fofanov@act-europe.fr>
28265             Vincent Celier   <celier@gnat.com>
28266
28267         * gnat_ugn.texi: Generalize "finding memory problems" section into a
28268         "memory management issues" section and document some of the useful
28269         memory pools provided as part of the GNAT library.
28270         Remove "virtual" from declaration of A::method2 in
28271         the simple example of Ada/C++ mixed system.
28272         Library Projects may be virtually extended: their virtual extensions
28273         are not Library Projects.
28274         Added section on extending project hierarchies.
28275
28276 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
28277
28278         * adaint.c (__gnat_get_libraries_from_registry): Cast value
28279         to LPBYTE.
28280         (__gnat_portable_spawn): Remove const.
28281
28282         * mingw32.h (MAXPATHLEN): Check for previous definition.
28283
28284 2004-10-17  Matthias Klose  <doko@debian.org>
28285
28286         * gnatvsn.ads: Set gnat library version to 4.0.
28287
28288 2004-10-05  Vincent Celier  <celier@gnat.com>
28289
28290         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
28291
28292 2004-10-04  Laurent Guerby  <laurent@guerby.net>
28293
28294         PR ada/15156
28295         * Makefile.in: Define and use RANLIB_FLAGS.
28296
28297 2004-10-04  Pascal Obry  <obry@gnat.com>
28298
28299         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
28300         other x86 platforms).
28301
28302 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
28303
28304         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
28305         in general and triggers stack alignment adjustment for thread entry
28306         points on targets where this is necessary.
28307
28308 2004-10-04  Bernard Banner  <banner@gnat.com>
28309
28310         PR ada/13897
28311         * Makefile.in: Add section for powerpc linux
28312         Add variant i-vxwork-x86.ads
28313
28314         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
28315
28316 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
28317
28318         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
28319         table registration calls when need be. Ensures no reference to the crt
28320         ctors symbol are issued in the SJLJ case, which avoids possible
28321         undefined symbol errors in the case of modules to be statically linked
28322         with the kernel.
28323
28324 2004-10-04  Javier Miranda  <miranda@gnat.com>
28325
28326         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
28327         in-line the code corresponding to subprogram Analyze_Actuals. In
28328         addition, analyze the actuals only in case of subprogram call.
28329
28330 2004-10-04  Ed Falis  <falis@gnat.com>
28331
28332         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
28333
28334 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
28335
28336         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
28337         in the documentation.
28338
28339 2004-10-04  Robert Dewar  <dewar@gnat.com>
28340
28341         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
28342         IF and CASE.
28343         (Analyze_Block_Statement): Add circuitry to detect following dead code
28344         (Check_Unreachable_Code): Handle case of block exit
28345
28346 2004-10-04  Robert Dewar  <dewar@gnat.com>
28347
28348         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
28349         (XMatchD): Avoid warning for Logic_Error call
28350
28351 2004-10-04  Robert Dewar  <dewar@gnat.com>
28352
28353         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
28354         consider expressions buried within a procedure actual to be an actual.
28355         This caused some blowups with uses of packed slices within a procedure
28356         actual.
28357
28358 2004-10-04  Robert Dewar  <dewar@gnat.com>
28359
28360         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
28361         longer need to be initialized to zero.
28362         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
28363         initialized to zero.
28364
28365         * checks.adb (Expr_Known_Valid): Packed arrays are now always
28366         considered valid, even if the representation is modular. That's correct
28367         now that we no longer initialize packed modular arrays to zero.
28368
28369         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
28370         suffixes. These are now documented as the only cases in which the
28371         debugger ignores outer records.
28372         Previously, the spec allowed arbitrary suffixes for this purpose.
28373         Change name of LJM to JM for packed array pad records
28374         Create separate section on packed array handling, and add a whole new
28375         set of comments to this section describing the situation with packed
28376         modular types and justification requirements depending on endianness.
28377
28378 2004-10-04  Robert Dewar  <dewar@gnat.com>
28379
28380         * a-except.adb: Add a comment for last change
28381
28382         * einfo.ads: Minor spelling correction in comment
28383
28384         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
28385
28386         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
28387         messages.
28388
28389         * sem_util.ads: Minor comment update
28390
28391 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
28392
28393         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
28394         Inline_Always when in Configurable_Run_Time mode.
28395
28396         * sem_prag.adb (Process_Convention): If entity is an inherited
28397         subprogram, apply convention to parent subprogram if in same scope.
28398         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
28399         when in Configurable_Run_Time mode.
28400
28401 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
28402
28403         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
28404         class_wide type after component list has been inherited.
28405
28406 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
28407
28408         * sem_ch12.adb (Check_Generic_Actuals): New predicate
28409         Denotes_Previous_Actual, to handle properly the case of a private
28410         actual that is also the component type of a subsequent array actual.
28411         The visibility status of the first actual is not affected when the
28412         second is installed.
28413         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
28414         make fully recursive the treatment of formals of packages declared
28415         with a box.
28416         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
28417         the above on exit from an instantiation.
28418         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
28419         current instantiation which is now complete.
28420         (Analyze_Package_Instantiation): No instantiated body is needed if the
28421         main unit is generic. Efficient, and avoid anomalies when a instance
28422         appears in a package accessed through rtsfind.
28423
28424 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
28425
28426         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
28427         do not generate a declaration for a temporary if the call is part of a
28428         library-level instantiation.
28429
28430 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
28431
28432         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
28433         searching for a limited component to flag.
28434
28435         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
28436         expansion of Input, to account for the fact that the implicit call
28437         generated by the attribute reference must freeze the user-defined
28438         stream subprogram. This is only relevant to 'Input, because it can
28439         appear in an object declaration, prior to the body of the subprogram.
28440
28441         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
28442         expansion can proceed and further errors uncovered.
28443         (Minor clean up): Fix cases of using | instead of \ for continuation
28444         messages.
28445
28446 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28447
28448         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
28449
28450         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
28451         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
28452         Use gcc_assert and gcc_unreachable.
28453
28454         * decl.c (gnat_to_gnu_entity, case object): Check and process a
28455         specified alignment before validating size.
28456         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
28457         stripped-down declaration for the type of the inner field when making
28458         a JM type.
28459
28460         * utils.c (finish_record_type): Do not compute the size in units
28461         incrementally. Instead compute it once for the rep clause case.
28462         Use gcc_assert and gcc_unreachable.
28463
28464 2004-10-04  Vincent Celier  <celier@gnat.com>
28465
28466         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
28467         in file name.
28468         (Is_Valid_Path_Name): Take '/' as a directory separator.
28469
28470 2004-10-04  Vincent Celier  <celier@gnat.com>
28471
28472         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
28473         (Extended_Project) only if Extended_Project is defined, to avoid
28474         assertion error.
28475         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
28476         resolved path.
28477         (Parse_Single_Project): Ditto.
28478
28479         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
28480         Add_To_Project_Path for virtual projects.
28481
28482 2004-10-04  Vincent Celier  <celier@gnat.com>
28483
28484         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
28485         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
28486         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
28487         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
28488         parameter Options_2.
28489
28490         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
28491         Build_Dynamic_Library with an empty Options_2.
28492
28493         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
28494         default anymore.
28495
28496         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
28497         directory separator, if any.
28498         (Gprmake): Do not allow mains on the command line for library projects.
28499         Do not attempt to link when the project is a library project.
28500         (Library_Opts): New table to store Library_Options.
28501         (Build_Library): If Library_Options is specified, pass these options
28502         when building a shared library.
28503
28504 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
28505
28506         * s-tposen.adb (Service_Entry): The object must be always unlocked at
28507         the end of this procedure now that the unlock operation was inserted
28508         by the expander.
28509
28510 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
28511
28512         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
28513         corresponding to the Preallocated_Stacks flags in System.
28514         (Get_Target_Parameters): Including the processing for
28515         Preallocated_Stacks.
28516
28517         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
28518         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
28519         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
28520         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
28521         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
28522         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
28523         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
28524         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
28525         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
28526         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
28527         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
28528         used to signal whether the compiler creates the required stacks and
28529         descriptors for the different tasks (when True) or it is done by the
28530         underlying operating system at run time (when False).
28531         It is initially set to False in all targets.
28532
28533         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
28534         if it is supported by the target.
28535         (Make_Task_Create_Call): Pass the stack address if it has been
28536         previously created. Otherwise pass a Null_Address.
28537
28538         * snames.adb: Add _stack.
28539
28540         * snames.ads: Add Name_uStack. Required to allow the expander to
28541         statically allocated task stacks.
28542
28543         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
28544         Stack_Address argument.
28545         Check that its value is equal to Null_Address because this target does
28546         not support the static stack allocation.
28547
28548 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
28549
28550         * usage.adb: Change "pragma inline" to "pragma Inline" in information
28551         and error messages
28552
28553 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
28554
28555         * exp_dist.adb: Split declaration of asynchronous flag out of
28556         Add_RACW_Read_Attribute.
28557         Minor reformatting for better alignment with PolyORB version.
28558         Store the entity for the asynchronous flag of an RACW, rather than the
28559         expression, in the asynchronous flags table. This will allow this flag
28560         to be used in other subprograms beside Add_RACW_Read_Attribute.
28561
28562 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
28563
28564         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
28565         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
28566         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
28567         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
28568         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
28569         sockets constant MSG_NOSIGNAL (Linux-specific).
28570         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
28571         all Send operations.
28572         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
28573         from trigerring SIGPIPE.
28574         Rename components to avoid clash with Ada 2005 possible reserved
28575         word 'interface'.
28576         (Check_Selector): When the select system call returns with an error
28577         condition, propagate Socket_Error to the caller.
28578
28579 2004-10-01  Jan Hubicka  <jh@suse.cz>
28580
28581         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
28582
28583 2004-09-23  Robert Dewar  <dewar@gnat.com>
28584
28585         PR ada/17540
28586         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
28587         instead do this at freeze time (we won't do it if there is an address
28588         clause).
28589         Change "pragma inline" to "pragma Inline" in information and error
28590         messages.
28591         Minor reformatting.
28592
28593         * freeze.adb (Check_Address_Clause): Remove previous change, not the
28594         right way of doing things after all.
28595         (Freeze_Entity): For object, set Is_Public for imported entities
28596         unless there is an address clause present.
28597
28598 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
28599
28600         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
28601         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
28602         ensures proper handling of types with rep clauses, which might have
28603         their TYPE_SIZE set already.
28604
28605 2004-09-21  Robert Dewar  <dewar@gnat.com>
28606
28607         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
28608         packed array types in both little- and big-endian cases. This change
28609         ensures that we no longer count on the unused bits being initialized
28610         for such types (and in particular ensures that equality testing will
28611         only read the relevant bits).
28612         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
28613         These changes mean that we no longer need to initialize small packed
28614         arrays.
28615         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
28616         optimization to an LJM field as to its parent field.
28617
28618         * ada-tree.h, trans.c, utils.c, utils2.c:
28619         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
28620
28621 2004-09-20  Jan Hubicka  <jh@suse.cz>
28622
28623         * utils.c (gnat_finalize): Remove.
28624         (end_subprog_body): Directly call cgraph_finalize_function;
28625         do not lower the nested functions.
28626
28627 2004-09-20  Robert Dewar  <dewar@gnat.com>
28628
28629         PR ada/17540
28630         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
28631         if an address clause is present, since that means that the Import
28632         should be ignored.
28633
28634 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
28635
28636         * 5tsystem.ads: Removed, no longer used.
28637
28638 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
28639             Zack Weinberg  <zack@codesourcery.com>
28640
28641         * ada-tree.def: Use tree_code_class enumeration constants
28642         instead of code letters.
28643         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
28644         Update for new tree-class enumeration constants.
28645
28646 2004-09-17  Vincent Celier  <celier@gnat.com>
28647
28648         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
28649         capabilities of the general project manager.
28650
28651 2004-09-09  Vincent Celier  <celier@gnat.com>
28652
28653         * a-direct.ads: Add pragma Ada_05
28654         (Directory_Entry_Type): Give default value to component Kind to avoid
28655         not initialized warnings.
28656
28657         * a-direct.adb (Current_Directory): Remove directory separator at the
28658         end.
28659         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
28660         an existing directory.
28661         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
28662         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
28663         Convert the result to File_Size.
28664
28665         * prj.ads: (Project_Error): New exception
28666
28667         * prj-attr.adb: Except in procedure Initialize, Fail comes from
28668         Prj.Com, not from Osint.
28669         (Attrs, Package_Attributes): Tables moved to private part of spec
28670         (Add_Attribute, Add_Unknown_Package): Moved to new child package
28671         Prj.Attr.PM.
28672         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
28673         Prj.Project_Error after call to Fail.
28674         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
28675         Fail. Check that package name is not already in use.
28676
28677         * prj-attr.ads: Comment updates to indicate that all subprograms may be
28678         used by tools, not only by the project manager, and to indicate that
28679         exception Prj.Prj_Error may be raised in case of problem.
28680         (Add_Unknown_Package, Add_Attribute): Moved to new child package
28681         Prj.Attr.PM.
28682         (Attrs, Package_Attributes): Table instantiations moved from the body to
28683         the private part to be accessible from Prj.Attr.PM body.
28684
28685         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
28686         from new package Prj.Attr.PM.
28687         (Parse_Attribute_Declaration): Call Add_Attribute from new package
28688         Prj.Attr.PM.
28689
28690         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
28691
28692         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
28693         instead of Elaboration_Checks).
28694
28695         * a-calend.adb: Minor reformatting
28696
28697 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28698
28699         * gigi.h (maybe_pad_type): New declaration.
28700         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
28701
28702         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
28703
28704         * cuintp.c: Convert to use buildN.
28705
28706         * decl.c (maybe_pad_type): No longer static.
28707         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
28708         target pointer.
28709         Convert to use buildN.
28710
28711         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
28712         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
28713         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
28714         RHS.
28715         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
28716         (gnat_gimplify_expr, case ADDR_EXPR): New case.
28717         Convert to use buildN.
28718
28719         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
28720         TREE_READONLY for const.
28721         Convert to use buildN.
28722
28723         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
28724         (create_var_decl): Refine when TREE_STATIC is set.
28725         Convert to use buildN.
28726
28727 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
28728
28729         * gnat_ugn.texi: Delete text relating to checking of ali and object
28730         consistency.
28731
28732         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
28733         routines.
28734
28735 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
28736
28737         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
28738         pragmas recognized by GNAT.
28739
28740         * gnat_rm.texi: Document pragma Detect_Blocking.
28741
28742         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
28743         raise Program_Error if called from a protected operation.
28744
28745         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
28746         the protected action nesting level.
28747         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
28748         protected action nesting level.
28749         (Unlock): When pragma Detect_Blocking is active decrease the protected
28750         action nesting level.
28751
28752         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
28753         Protected_Action_Nesting.
28754
28755         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
28756         Common_ATCB record. It contains the dynamic level of protected action
28757         nesting for each task. It is needed for checking whether potentially
28758         blocking operations are called from protected operations.
28759         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
28760         Detect_Blocking is active or not in the partition.
28761
28762         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
28763         raise Program_Error if called from a protected operation.
28764         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
28765         Program_Error if called from a protected operation.
28766         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
28767         Program_Error if called from a protected operation.
28768
28769         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
28770         raise Program_Error if called from a protected operation.
28771
28772         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
28773         raise Program_Error if called from a protected operation, and increase
28774         the protected action nesting level.
28775         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
28776         Program_Error if called from a protected operation, and increase the
28777         protected action nesting level.
28778         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
28779         protected action nesting level.
28780
28781         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
28782         raise Program_Error if called from a protected operation, and increase
28783         the protected action nesting level.
28784         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
28785         Program_Error if called from a protected operation, and increase the
28786         protected action nesting level.
28787         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
28788         raise Program_Error if called from a protected operation.
28789         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
28790         active, raise Program_Error if called from a protected operation.
28791         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
28792         protected action nesting level.
28793
28794         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
28795         insertion of the statement raising Program_Error. The run time
28796         contains the required machinery for handling that.
28797
28798         * sem_util.ads: Change comment associated to procedure
28799         Check_Potentially_Blocking_Operation.
28800         This procedure does not insert a call for raising the exception because
28801         that is currently done by the run time.
28802
28803         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
28804
28805         * init.c: Add the global variable __gl_detect_blocking that indicates
28806         whether pragma Detect_Blocking is active (1) or not (0). Needed for
28807         making the pragma available at run time.
28808         (__gnat_set_globals): Pass and update the detect_blocking parameter.
28809
28810         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
28811         pragma Detect_Blocking is active.
28812
28813         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
28814
28815         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
28816         DB is found in the ali file. Any unit compiled with pragma
28817         Detect_Blocking active forces its effect in the whole partition.
28818
28819         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
28820         Detect_Blocking is active and delay is called from a protected
28821         operation.
28822
28823         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
28824         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
28825         Detect_Blocking is active (0 otherwise).
28826         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
28827         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
28828         otherwise).
28829
28830 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
28831
28832         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
28833         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
28834         package.
28835
28836         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
28837         (Register_Receiving_Stub): Add Subp_Info formal parameter.
28838         Update API in placeholder implemetation of s-parint to reflect changes
28839         in distribution runtime library.
28840
28841         * sem_ch3.adb (Expand_Derived_Record): Rename to
28842         Expand_Record_Extension.
28843
28844         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
28845         primitive operations of potentially distributed object types that have
28846         non-controlling anonymous access formals.
28847
28848         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
28849         subprogram.
28850         New implementation of expansion for remote access-to-subprogram types,
28851         based on the RACW infrastructure.
28852         This version of sem_dist is compatible with PolyORB/DSA as well as
28853         GLADE.
28854
28855         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
28856         Asynchrronous that applies to a remote access-to-subprogram type, mark
28857         the underlying RACW type as asynchronous.
28858
28859         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
28860          __gnat_using_gnu_linker to 1.
28861
28862         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
28863         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
28864         GNAT.Perfect_Hash_Generators, and remove the empty
28865         GNAT.Perfect_Hash package.
28866
28867         * atree.adb: Minor reformatting
28868
28869         * exp_ch3.adb (Expand_Derived_Record): Rename to
28870         Expand_Record_Extension.
28871         (Build_Record_Init_Proc.Build_Assignment): The default expression in
28872         a component declaration must remain attached at that point in the
28873         tree so New_Copy_Tree copies it if the enclosing record type is derived.
28874         It is therefore necessary to take a copy of the expression when building
28875         the corresponding assignment statement in the init proc.
28876         As a side effect, in the case of a derived record type, we now see the
28877         original expression, without any rewriting that could have occurred
28878         during expansion of the ancestor type's init proc, and we do not need
28879         to go back to Original_Node.
28880
28881         * exp_ch3.ads (Expand_Derived_Record): Rename to
28882         Expand_Record_Extension.
28883
28884         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
28885         Returns the RACW type used to implement a remote access-to-subprogram
28886         type.
28887         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
28888         New subprograms. Used to create a proxy tagged object for a remote
28889         subprogram. The proxy object is used as the designated object
28890         for RAS values on the same partition (unless All_Calls_Remote applies).
28891         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
28892         System.Partition_Interface.Get_Unique_Remote_Pointer.
28893         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
28894         Renamed from Add_RAS_*_Attribute.
28895         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
28896         subprograms.
28897         New implementation of expansion for remote access-to-subprogram types,
28898         based on the RACW infrastructure.
28899
28900         * exp_dist.ads (Copy_Specification): Update comment to note that this
28901         function can copy the specification from either a subprogram
28902         specification or an access-to-subprogram type definition.
28903
28904 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
28905
28906         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
28907         in an instance, between an explicit subprogram an one inherited from a
28908         type derived from an actual.
28909
28910         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
28911         add a polling call if the subprogram is to be inlined by the back-end,
28912         to avoid repeated calls with multiple inlinings.
28913
28914         * checks.adb (Apply_Alignment_Check): If the expression in the address
28915         clause is a call whose name is not a static entity (e.g. a dispatching
28916         call), treat as dynamic.
28917
28918 2004-09-09  Robert Dewar  <dewar@gnat.com>
28919
28920         * g-trasym.ads: Minor reformatting
28921
28922         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
28923         packed arrays, since unused bits are expected to be zero for a
28924         comparison.
28925
28926 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
28927
28928         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
28929         comment.
28930
28931 2004-09-09  Pascal Obry  <obry@gnat.com>
28932
28933         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
28934         enable map file generation. Add the right option to generate the map
28935         file if Map_File is set to True.
28936
28937         * gnatdll.adb (Gen_Map_File): New variable.
28938         (Syntax): Add info about new -m (Map_File) option.
28939         (Parse_Command_Line): Add support for -m option.
28940         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
28941         Minor reformatting.
28942
28943 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
28944
28945         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
28946         new gnatdist implementation.
28947         Define a subpackage isolating the output routines specific to this
28948         verbose mode.
28949
28950 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
28951
28952         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
28953
28954         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
28955
28956 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
28957
28958         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
28959         internal unit.
28960
28961         * opt.ads: Add Ada_Version_Runtime constant used to decide which
28962         version of the language is used to compile the run time.
28963
28964 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
28965
28966         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
28967         of variable length temporaries for function return now that the
28968         back-end and gigi support it.
28969
28970 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28971
28972         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
28973
28974         * trans.c (struct stmt_group): Delete field GLOBAL.
28975         (gnat_init_stmt_group): Do not initialize it.
28976         (call_to_gnu): Use save_expr, not protect_multiple_eval.
28977         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
28978         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
28979         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
28980         (start_stmt_group): Likewise.
28981         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
28982
28983         * utils2.c (ggc.h): Include.
28984         (build_call_raise): Call build_int_cst, not build_int_2.
28985
28986         * utils.c (gnat_init_decl_processing): Fix arg to
28987         build_common_tree_nodes.
28988         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
28989         (gnat_define_builtin): Set built_in_decls.
28990         (init_gigi_decls): Call build_int_cst, not build_int_2.
28991
28992         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
28993         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
28994         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
28995         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
28996         SET_TYPE_MODULE): Use them.
28997         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
28998         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
28999         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
29000         SET_TYPE_ADA_SIZE): Likewise.
29001         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
29002         (DECL_CONST_CORRESPONDING_VAR,
29003         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
29004         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
29005         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
29006         (TYPE_RM_SIZE_NUM): New macro.
29007         (TYPE_RM_SIZE): Modified to use above.
29008
29009         * cuintp.c: (build_cst_from_int): New function.
29010         (UI_To_gnu): Use it.
29011
29012         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
29013         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
29014         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
29015         MIN_EXPR for the size, copy it into new.
29016
29017 2004-09-01  Robert Dewar  <dewar@gnat.com>
29018
29019         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
29020         packed indexed component where array is an IN OUT formal. This
29021         generated garbage code previously.
29022
29023         * gnat_ugn.texi: Document -fverbose-asm
29024
29025         * gnat-style.texi: Minor updates (note that boolean constants and
29026         variables are joined with AND/OR rather than short circuit forms).
29027
29028 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
29029
29030         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
29031         it is an upward conversion of an untagged type with no representation
29032         change.
29033
29034 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
29035
29036         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
29037         System.Partition_Interface.
29038
29039         * checks.adb (Apply_Access_Checks): Do not generate checks when
29040         expander is not active (but check for unset reference to prefix of
29041         dereference).
29042
29043         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
29044         pragma Debug as an if statement with a constant condition, for
29045         consistent treatment of entity references contained within the
29046         enclosed procedure call.
29047
29048 2004-09-01  Vincent Celier  <celier@gnat.com>
29049
29050         * bindgen.adb: (Set_EA_Last): New procedure
29051         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
29052         Set_EA_Last.
29053         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
29054         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
29055         linked without errors.
29056         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
29057         ST and EA.
29058         (Gen_Exception_Table_C): Correct same bugs
29059
29060         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
29061
29062         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
29063         on Windows, make sure that the drive letter is in upper case.
29064
29065         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
29066         Windows, when the drive letter is added and Case_Sensitive is True, the
29067         drive letter is forced to upper case.
29068
29069         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
29070         to Options_2 for the call to MLib.Utl.Gcc.
29071
29072         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
29073         directory separator when defining BASE_DIR.
29074
29075 2004-09-01  Pascal Obry  <obry@gnat.com>
29076
29077         * gprcmd.adb (Extend): Do not output trailing directory separator. This
29078         is not needed and it confuses Windows GNU/make which does not report
29079         directory terminated by a slash as a directory.
29080         (gprcmd): Idem for "pwd" internal command.
29081
29082         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
29083         target names rewrite to fix regressions with recent version of
29084         GNU/make. Starting with GNU/make 3.80 the pipe character was not
29085         handled properly anymore.
29086
29087 2004-09-01  Andreas Schwab  <schwab@suse.de>
29088
29089         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
29090         * raise.c [!IN_RTS]: Undef abort.
29091
29092 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
29093
29094         * utils2.c (build_allocator): Use ssize_int.
29095
29096         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
29097
29098 2004-08-27  Andreas Schwab  <schwab@suse.de>
29099
29100         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
29101
29102 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
29103             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29104
29105         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
29106
29107 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
29108
29109         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
29110         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
29111         * utils.c (init_gigi_decls): Likewise.
29112         * utils2.c (build_call_raise, build_allocator): Likewise.
29113
29114 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
29115
29116         * utils.c (gnat_init_decl_processing): Adjust
29117         build_common_tree_nodes call.
29118
29119 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
29120
29121         * utils2.c (build_allocator): Use build_int_cst for negative
29122         size types.
29123
29124 2004-08-18  Richard Henderson  <rth@redhat.com>
29125
29126         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
29127
29128 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
29129
29130         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
29131         call.s
29132         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
29133         (gnat_to_gnu): Likewise.
29134
29135 2004-08-16  Pascal Obry  <obry@gnat.com>
29136
29137         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
29138         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
29139         option and not mdll anymore. Update comment.
29140
29141 2004-08-16  Pascal Obry  <obry@gnat.com>
29142
29143         * bld.adb (Put_Include_Project): Properly handle directory separators
29144         on Windows.
29145
29146 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
29147
29148         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
29149         decreasing the number of allocated junk nodes while searching for the
29150         appropriate subprogram.
29151
29152 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
29153
29154         * cuintp.c (UI_To_gnu): Use build_int_cst..
29155         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
29156         * utils.c (init_gigi_decls): Likewise.
29157         * utils2.c (build_call_raise): Likewise.
29158
29159 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
29160
29161         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
29162         for a global aliased object with a variable size and an unconstrained
29163         nominal subtype, pretend there is no initializer if the one we have is
29164         incomplete, and avoid referencing an inexistant component in there. The
29165         part we have will be rebuilt anyway and the reference may confuse
29166         further operations.
29167
29168 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
29169
29170         * einfo.ads: Minor reformatting
29171
29172         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
29173         restrictions in the ALI if we only want to warn about violations.
29174
29175 2004-08-13  Vincent Celier  <celier@gnat.com>
29176
29177         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
29178         when creating a new Unit_Record in table Units.
29179
29180         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
29181         that are violated, if any.
29182
29183         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
29184         add directory separator if path already ends with a directory separator.
29185
29186 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
29187
29188         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
29189         unit, this is an attempt to inline a construct that is not available in
29190         the current restricted mode, so abort rather than trying to continue.
29191
29192         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
29193         discriminants that rename those of the parent, recover names of
29194         original discriminants for the constraint on the full view of the
29195         parent.
29196         (Complete_Private_Subtype): Do not create a subtype declaration if the
29197         subtype is an itype.
29198
29199         * gnat_rm.texi: Added section on implementation of discriminated
29200         records with default values for discriminants.
29201
29202 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
29203
29204         PR ada/15601
29205         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
29206         the second operand is overloaded.
29207
29208 2004-08-10  Richard Henderson  <rth@redhat.com>
29209
29210         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
29211         add __builtin_alloca.
29212
29213 2004-08-10  Richard Henderson  <rth@redhat.com>
29214
29215         * config-lang.in (boot_language): Yes.
29216
29217 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
29218
29219         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
29220         from complaining on potential uninitialized reference.
29221         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
29222         new specification and test explicitly for non-zero return value.
29223
29224         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
29225         returning C.int, to avoid using a derived boolean type.
29226
29227         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
29228         Duplicate_Subexpr_No_Checks in preference to direct use of
29229         Remove_Side_Effects and New_Copy_Tree.
29230         Clear Comes_From_Source on prefix of 'Size attribute reference.
29231
29232         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
29233         g-socthi-vxworks.adb: Change calls to
29234         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
29235         and test explicitly for non-zero return value.
29236
29237         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
29238         (Is_Socket_In_Set): Declare imported function as returning C.int, to
29239         avoid using a derived boolean type.
29240
29241 2004-08-09  Albert Lee  <lee@gnat.com>
29242
29243         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
29244
29245 2004-08-09  Pascal Obry  <obry@gnat.com>
29246
29247         * gnat_ugn.texi: Document new way to build DLLs on Windows using
29248         GCC's -shared option.
29249
29250         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
29251         Options_2 parameter (options put after object files).
29252
29253 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
29254
29255         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
29256         ignore overflows on low and high bounds of an index to also account for
29257         differences in signedness between sizetype and gnu_index_subtype.
29258         These are as legitimate as the ones caused by a lower TYPE_PRECISION
29259         on sizetype.
29260
29261 2004-08-09  Robert Dewar  <dewar@gnat.com>
29262
29263         * s-solita.ads, s-solita.adb: Minor reformatting
29264
29265         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
29266         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
29267         obsolescent section
29268         Add note that No_Implicit_Conditionals does not suppress
29269         run time constraint checks.
29270
29271         * vms_conv.ads: Minor reformatting
29272
29273         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
29274         and necessary for following change).
29275         (Mark): Return new format Mark_Id containing sec stack address
29276         (Release): Use sec stack address from Mark_Id avoiding Self call
29277
29278         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
29279         pointer (cleanup and necessary for following change).
29280         Define Mark_Id as record containing address of secondary stack, that way
29281         Release does not need to find the stack again, decreasing the number of
29282         calls to Self and improving efficiency.
29283
29284         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
29285
29286         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
29287         case variable into the individual case branches when possible.
29288
29289         * sem_ch11.adb: Minor reformatting
29290
29291         * prj.ads: Correct spelling of suffixs
29292
29293         * prj-nmsc.adb: Minor reformatting
29294         Correct spelling suffixs throughout (also in identifiers)
29295
29296         * freeze.adb: Minor spelling correction
29297
29298         * exp_ch2.adb: Cleanups to handling of Current_Value
29299         (no functional effect).
29300
29301         * bld.adb: Correct spelling of suffixs
29302
29303         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
29304
29305 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
29306
29307         PR ada/15408
29308         * sem_ch7.adb (Install_Private_Declarations): In the body of the
29309         package or of a child, private entities are both immediately_visible
29310         and not hidden.
29311
29312 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
29313
29314         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
29315         there are no range checks on the value of the literal.
29316
29317         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
29318         wrapped is the triggering alternative of an asynchronous select, action
29319         statements mustbe inserted before the select itself.
29320
29321         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
29322         case where the prefix is a protected function call.
29323         (Resolve_Attribute, case 'Access): The attribute reference on a
29324         subprogram is legal in a generic body if the subprogram is declared
29325         elsewhere.
29326
29327 2004-08-09  Vincent Celier  <celier@gnat.com>
29328
29329         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
29330         languages, otherwise building the library may fail with unresolved
29331         symbols.
29332         (Compile_Sources): Do not build libraries if -c switch is used
29333
29334         * gnatlink.adb (Process_Args): New switches -M and -Mmap
29335         (Write_Usage): If map file creation is supported, output new switches
29336         -M and -Mmap.
29337         (Gnatlink): When -M is specified, add the necessary switch(es) to the
29338         gcc call, when supported.
29339
29340         * Makefile.in: Added indepsw.o to the object list for gnatlink
29341         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
29342
29343         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
29344         indepsw.adb, indepsw.ads: New files.
29345
29346 2004-08-09  Bernard Banner  <banner@gnat.com>
29347
29348         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
29349
29350         * Makefile.in: add section for vxworks x86
29351
29352 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
29353
29354         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
29355         per-object constrained components where the discriminant is of an
29356         Access type.
29357         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
29358         the parent initialization procedure for derived Unchecked_Unions.
29359         Instead, derived Unchecked_Unions build their own initialization
29360         procedure.
29361         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
29362         Check the body of the subprogram for details.
29363         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
29364         functions for derived Unchecked_Union types by introducing a condition.
29365         Allow the creation of TSS equality functions for Unchecked_Unions.
29366         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
29367         Add formal parameter Discr to function signature. Discr is used to
29368         control the generated case statement for Unchecked_Union types.
29369         (Make_Eq_If): Rename formal parameter Node to E in function signature.
29370
29371         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
29372         Unchecked_Unions.
29373         Check the body of the subprogram for details.
29374         (Expand_Composite_Equality): Augment composite type equality to include
29375         correct handling of Unchecked_Union components.
29376         (Expand_N_In): Add condition to detect illegal membership tests when the
29377         subtype mark is a constrained Unchecked_Union and the expression lacks
29378         inferable discriminants, and build a Raise_Program_Error node.
29379         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
29380         to detect types that contain components of unconstrained Unchecked_Union
29381         subtype. Add condition to detect equality between types that have an
29382         unconstrained Unchecked_Union component, and build a Raise_Program_Error
29383         node. Add condition to detect equality between Unchecked_Union types
29384         that lack inferable discriminants, and build a Raise_Program_Error node.
29385         Otherwise build a TSS equality function call.
29386         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
29387         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
29388         with the operand lacking inferable discriminants, and build a Raise_
29389         Program_Error node.
29390         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
29391         composite equality.
29392         (Has_Inferable_Discriminants): Implement new predicate for objects and
29393         expressions of Unchecked_Union type. Check the body of subprogram for
29394         details.
29395         (Has_Unconstrained_UU_Components): Add function
29396         Component_Is_Unconstrained_UU. It is used to detect whether a single
29397         component is of an unconstrained Unchecked_Union subtype. Add function
29398         Variant_Is_Unconstrained_UU. It is used to detect whether a single
29399         component inside a variant is of an unconstrained Unchecked_Union type.
29400
29401         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
29402         inferred discriminant values. Add condition to generate a case
29403         statement with an inferred discriminant as the switch.
29404         (Make_Component_List_Assign): Introduce a Boolean flag that determines
29405         the behaviour of the subprogram in the presence of an Unchecked_Union.
29406         Add condition to trigger the usage of the inferred discriminant value
29407         as the generated case statement switch.
29408         (Make_Field_Assign): Introduce a Boolean flag that determines the
29409         behaviour of the subprogram in the presence of an Unchecked_Union. Add
29410         condition to trigger the usage of the inferred discriminant value as
29411         the right-hand side of the generated assignment.
29412
29413         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
29414         parameter generation when dealing with Unchecked_Unions.
29415
29416         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
29417         checks for Unchecked_Unions.
29418
29419         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
29420
29421         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
29422         Raise_Program_Error nodes for the execution of Read and Write
29423         attributes of Unchecked_Union types and the execution of Input and
29424         Output attributes of Unchecked_Union types that lack default
29425         discriminant values.
29426
29427         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
29428         Unchecked_Union. Add procedure Check_Component. It is used to inspect
29429         per-object constrained components of Unchecked_Unions for being
29430         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
29431         check individual components withing a variant.
29432
29433         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
29434         comparison of Unchecked_Unions.
29435         (Resolve_Equality_OP): Remove guard that prevents equality between
29436         Unchecked_Unions.
29437
29438         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
29439         of component subtypes for Unchecked_Union components.
29440         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
29441         since it is the actual subtype.
29442
29443         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
29444         pass of Unchecked_Union subtypes as generic actuals to formal types
29445         that lack known_discriminant_parts or that are derived Unchecked_Union
29446         types, and do nothing. In any other case, produce an error message.
29447
29448         * sem_ch3.adb (Analyze_Component_Declaration): Add function
29449         Contains_POC. It determines whether a constraint uses the discriminant
29450         of an enclosing record type.
29451         Add condition to detect per-object constrained component and set the
29452         appropriate flag.
29453         (Derived_Type_Declaration): Remove guard that prevents derivation from
29454         Unchecked_Union types.
29455         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
29456         Union subtypes.
29457
29458         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
29459         references to Unchecked_Union discriminants.
29460
29461         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
29462         formal generation when dealing with Unchecked_Unions.
29463         (Set_Actual_Subtypes): Add condition to prevent generation of actual
29464         subtypes for Unchecked_Unions.
29465
29466         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
29467         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
29468         completions of discriminated partial views by Unchecked_Unions and
29469         produce an error message.
29470
29471 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29472
29473         * trans.c (struct stmt_group): New field, GLOBAL.
29474         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
29475         (struct elab_info): New struct.
29476         (elab_info_list, gnu_elab_proc_stack): New variables.
29477         (Compilation_Unit_to_gnu): New procedure.
29478         (gigi): Call it and also handle elaboration procs we've saved.
29479         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
29480         global field from parent.
29481         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
29482         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
29483         (start_stmt_group): Initialize global field from parent.
29484         (add_decl_expr): Set to global for current statement group.
29485         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
29486         post.
29487
29488         * utils.c (global_bindings_p): True when no current_function_decl; no
29489         longer check current_binding_level.
29490
29491 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
29492
29493         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
29494         choice.
29495
29496         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
29497
29498 2004-08-06  Andreas Schwab  <schwab@suse.de>
29499
29500         * utils.c (gnat_define_builtin): Remove second parameter of
29501         make_decl_rtl.
29502         (begin_subprog_body): Likewise.
29503
29504 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
29505
29506         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
29507         optimization, not supported by the tree-ssa back-end.
29508
29509 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
29510
29511         * s-mastop-irix.adb: Update comments.
29512
29513         * a-except.adb (Exception_Information): Raise Constraint_Error if
29514         exception Id is Null_Id.
29515         This is required behavior, which is more reliably and clearly checked
29516         at the top level interface level.
29517
29518 2004-07-26  Javier Miranda  <miranda@gnat.com>
29519
29520         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
29521         call if a component has no default_expression and the box is used.
29522
29523         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
29524         default_expression and you use box, it behaves as if you had declared a
29525         stand-alone object.
29526         (Resolve_Record_Aggregate): If a component has no default_expression and
29527         you use box, it behaves as if you had declared a stand-alone object.
29528
29529         * sem_ch10.adb (Install_Siblings): Do not make visible the private
29530         entities of private-with siblings.
29531
29532 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
29533
29534         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
29535         for a component of an itype, set the parent pointer for analysis,
29536         there is no list in which to insert it.
29537
29538         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
29539         bona-fide renamings, not for inherited operations.
29540
29541         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
29542         actual for a formal that is an access parameter, create local
29543         finalization list even if the expression is not an aggregate.
29544
29545 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
29546
29547         PR ada/16213
29548         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
29549         Diagnose properly illegal subprogram renamings that are library units.
29550
29551 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
29552
29553         PR ada/15588
29554         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
29555         conversion rewritten as an unchecked conversion, check that original
29556         expression is a variable.
29557
29558         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
29559         unchecked_conversion, create new node rather than rewriting in place,
29560         to preserve original construct.
29561
29562 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29563
29564         * gigi.h (gnat_expand_body): Deleted.
29565
29566         * Make-lang.in: (trans.o): Depends on function.h.
29567
29568         * misc.c: (gnat_expand_body): Moved to here.
29569
29570         * trans.c (gnat_expand_body_1): Deleted.
29571         (gnat_expand_body): Moved from here.
29572         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
29573         (add_stmt): Check for marked visited with global_bindings_p.
29574         (gnat_gimplify_expr, case COMPONENT_REF): New case.
29575         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
29576
29577         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
29578         VIEW_CONVERT_EXPR if not operation type.
29579
29580         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
29581         fat pointer.
29582
29583         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
29584         changes: reformatting of negation operators, removing unneeded
29585         inequality comparison with zero, converting equality comparisons with
29586         zero to negations, changing int/0/1 to bool/false/true, replace calls
29587         to gigi_abort with abort, and various other similar changes.
29588
29589 2004-07-26  Vincent Celier  <celier@gnat.com>
29590
29591         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
29592         "setup".
29593
29594         * make.adb (Gnatmake): Fail when a library is not present and there is
29595         no object directory.
29596
29597         * mlib-prj.adb (Check_Library): No need to check if the library needs
29598         to be rebuilt if there is no object directory, hence no object files
29599         to build the library.
29600
29601         * opt.ads (Setup_Projects): New Boolean flag.
29602
29603         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
29604         Location.
29605         Create directory when Kind /= "" and in "gnat setup". Report error if
29606         directory cannot be created.
29607         (Ada_Check): Create library interface copy dir if it does not exist
29608         and we are in "gnat setup".
29609         (Find_Sources): No error if in "gnat setup" and no Ada sources were
29610         found.
29611         (Language_Independent_Check): Create object directory, exec directory
29612         and/or library directory if they do not exist and we are in
29613         "gnat setup".
29614
29615         * vms_conv.ads: (Command_Type): New command Setup.
29616
29617         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
29618
29619         * vms_data.ads: Add qualifiers/switches for new built-in command
29620         "setup".
29621
29622 2004-07-25  Richard Henderson  <rth@redhat.com>
29623
29624         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
29625         DECL_IGNORED_P on RESULT_DECL.
29626
29627 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
29628
29629         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
29630         allocation and potentially overflowing update with
29631         Tailored_Exception_Information. Use the sec-stack free procedural
29632         interface to output Exception_Information instead.
29633
29634         * a-except.adb (To_Stderr): New subprogram for character, and string
29635         version moved from a-exextr to be visible from other separate units.
29636         (Tailored_Exception_Information): Remove the procedural version,
29637         previously used by the default Last_Chance_Handler and not any more.
29638         Adjust various comments.
29639
29640         * a-exexda.adb: Generalize the exception information procedural
29641         interface, to minimize the use of secondary stack and the need for
29642         local buffers when the info is to be output to stderr:
29643         (Address_Image): Removed.
29644         (Append_Info_Character): New subprogram, checking for overflows and
29645         outputing to stderr if buffer to fill is of length 0.
29646         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
29647         (Append_Info_Address, Append_Info_Exception_Name,
29648         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
29649         Append_Info_Basic_Exception_Traceback,
29650         Append_Info_Exception_Information): New subprograms.
29651         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
29652         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
29653         Exception_Info_Maxlength, Exception_Name_Length,
29654         Exception_Message_Length): New subprograms.
29655         (Exception_Information): Use Append_Info_Exception_Information.
29656         (Tailored_Exception_Information): Use
29657         Append_Info_Basic_Exception_Information.
29658         Export services for the default Last_Chance_Handler.
29659
29660         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
29661         other separate units.
29662
29663 2004-07-20  Vincent Celier  <celier@gnat.com>
29664
29665         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
29666
29667 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
29668
29669         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
29670         emit itype references for the designated types of component types that
29671         are declared outside of the full record declaration, and that may
29672         denote a partial view of that record type.
29673
29674 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
29675
29676         PR ada/15607
29677         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
29678         which is the designated type in an access component declaration, to the
29679         list of incomplete dependents of the parent type, to avoid elaboration
29680         issues with out-of-scope subtypes.
29681         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
29682         full view of the parent.
29683
29684 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
29685
29686         PR ada/15610
29687         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
29688         entities that are hidden, such as references to generic actuals
29689         outside an instance.
29690
29691 2004-07-20  Javier Miranda  <miranda@gnat.com>
29692
29693         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
29694         support to the new notation.
29695         (Analyze_Selected_Component): Add call to Try_Object_Operation.
29696
29697 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
29698
29699         * s-taprob.adb: Adding the elaboration code required for initializing
29700         the tasking soft links that are common to the full and the restricted
29701         run times.
29702
29703         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
29704         restricted run time has been moved to the package
29705         System.Soft_Links.Tasking.
29706
29707         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
29708         restricted run time has been moved to the package
29709         System.Soft_Links.Tasking.
29710
29711         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
29712
29713         * s-solita.ads, s-solita.adb: New files.
29714
29715 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29716
29717         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
29718         Case_Statement_to_gnu): Split off from gnat_to_gnu.
29719         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
29720         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
29721         Exception_Handler_to_gnu_zcx): Likewise.
29722
29723 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
29724
29725         * gigi.h (builtin_function): Declare.
29726
29727 2004-07-15  Robert Dewar  <dewar@gnat.com>
29728
29729         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
29730         reformatting
29731
29732         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
29733         access values as an example of a warning.
29734
29735         * gnat_rm.texi: Document new attribute Has_Access_Values
29736
29737         * gnat-style.texi: Document that box comments belong on nested
29738         subprograms
29739
29740         * sem_util.ads (Has_Access_Values): Improved documentation
29741
29742         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
29743
29744         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
29745         (Process_Interface_Name): Call to this new procedure
29746         (Set_Extended_Import_Export_External_Name): Call to this new procedure
29747
29748         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
29749
29750         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
29751
29752         * einfo.ads: Minor comment typo fixed
29753
29754 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
29755
29756         * snames.adb: Add _atcb.
29757
29758         * snames.ads: Add Name_uATCB.
29759
29760         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
29761         (in the expanded code) when using the restricted run time.
29762
29763         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
29764         a in parameter in order to allow ATCBs to be preallocated (in the
29765         expanded code).
29766
29767         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
29768         order to allow ATCBs to be preallocated. In case of error, the ATCB is
29769         deallocated in System.Tasking.Stages.
29770
29771         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
29772         order to allow ATCBs to be preallocated.
29773
29774         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
29775         here. It was previously done in Initialize_ATCB.
29776
29777         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
29778
29779         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
29780         Restricted run time.
29781
29782         * exp_ch3.adb: When using the Restricted run time, pass the
29783         preallocated Ada_Task_Control_Block when creating a task.
29784
29785 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
29786
29787         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
29788         function call that is itself an actual in an enclosing call, diagnose
29789         problem here rather than assuming that resolution will catch it.
29790
29791         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
29792         the local copy of a generic unit for a formal package, and the generic
29793         is a child unit, install private part of ancestors before compiling
29794         private part of spec.
29795
29796         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
29797         use scope entities rather than tree structures, to handle properly
29798         parent units that are instances rewritten as bodies for inlining
29799         purposes.
29800
29801         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
29802         Remove_Parents): Handle properly a parent unit that is an
29803         instantiation, when the unit has been rewritten as a body for inlining
29804         purposes.
29805
29806         * par.adb (Goto_List): Global variable to collect goto statements in a
29807         given unit, for use in detecting natural loops.
29808
29809         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
29810         use in detecting natural loops.
29811
29812         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
29813         backwards goto's, and rewrite as a infinite loop, to improve locality
29814         of temporaries.
29815
29816         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
29817         subcomponent that includes an indexed reference, to prevent the
29818         generation of copies that would miscompile the desired assignment
29819         statement.
29820         (Build_Task_Image_Decls): Add a numeric suffix to
29821         generated name for string variable, to avoid spurious conflicts with
29822         the name of the type of a single protected object.
29823
29824         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
29825         loop with an explicit exit statement, to avoid generating an
29826         out-of-range value with 'Succ leading to spurious constraint_errors
29827         when compiling with -gnatVo.
29828
29829 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
29830
29831         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
29832         might not be analyzed yet, even if its Etype is already set (case of an
29833         unchecked conversion built using Unchecked_Convert_To, for example).
29834         If the prefix has already been analyzed, this will be a nop anyway.
29835
29836         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
29837         controller type, or an assignment of a record type with controlled
29838         components, copy only user data, and leave the finalization chain
29839         pointers untouched.
29840
29841 2004-07-15  Vincent Celier  <celier@gnat.com>
29842
29843         * make.adb (Collect_Arguments): Improve error message when attempting
29844         to compile a source not part of any project, when -x is not used.
29845
29846         * prj.ads: (Defined_Variable_Kind): New subtype
29847
29848         * prj-attr.adb (Register_New_Package): Two new procedures to register
29849         a package with or without its attributes.
29850         (Register_New_Attribute): Mew procedure to register a new attribute in a
29851         package.
29852         New attribute oriented subprograms: Attribute_Node_Id_Of,
29853         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
29854         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
29855         Next_Attribute.
29856         New package oriented subprograms: Package_Node_Id_Of,
29857         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
29858
29859         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
29860         type.
29861         (Package_Node_Id): Now a private, self initialized type
29862         (Register_New_Package): New procedure to register a package with its
29863         attributes.
29864         New attribute oriented subprograms: Attribute_Node_Id_Of,
29865         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
29866         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
29867         Next_Attribute.
29868         New package oriented subprograms: Package_Node_Id_Of,
29869         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
29870
29871         * prj-dect.adb (Parse_Attribute_Declaration,
29872         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
29873
29874         * prj-makr.adb (Make): Parse existing project file before creating
29875         other files. Fail if there was an error during parsing.
29876
29877         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
29878         new spec of Prj.Attr.
29879
29880         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
29881         to new spec of Prj.Attr.
29882
29883 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29884
29885         * utils2.c: Fix typo in comment.
29886
29887 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29888
29889         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
29890         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
29891
29892 2004-07-14  Andreas Schwab  <schwab@suse.de>
29893
29894         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
29895
29896 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29897
29898         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
29899         object type.
29900         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
29901         TYPE_STUB_DECL.
29902
29903         * misc.c (gnat_types_compatible_p): New function.
29904         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
29905         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
29906
29907         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
29908         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
29909         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
29910         (mark_visited): Don't mark dummy type.
29911         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
29912         parameter, we must remove any LJM building from GNU_NAME.
29913         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
29914         (pos_to_constructor): Use int_const_binop.
29915         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
29916         PARM_DECL.
29917
29918         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
29919         (gnat_pushlevel): Set TREE_USE on BLOCK node.
29920         (gnat_install_builtins): Add __builtin_memset.
29921
29922 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
29923
29924         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
29925         for a renaming, stabilize the initialization expression if we are at a
29926         local level.  At the local level, uses of the renaming may be performed
29927         by a direct dereference of the initializing expression, and we don't
29928         want possible variables there to be evaluated for every use.
29929
29930         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
29931         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
29932         them on the way.  Account for the fact that we may introduce side
29933         effects in the process.
29934
29935 2004-07-13  Richard Henderson  <rth@redhat.com>
29936
29937         * misc.c (default_pass_by_ref): Use pass_by_reference.
29938
29939 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
29940
29941         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
29942         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
29943
29944 2004-07-08  Richard Henderson  <rth@redhat.com>
29945
29946         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
29947         commentary.
29948
29949 2004-07-06  Vincent Celier  <celier@gnat.com>
29950
29951         * vms_conv.ads: Minor reformatting.
29952         Alphabetical order for enumerated values of type Command_Type, to have
29953         the command in alphabetical order for the usage.
29954
29955         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
29956         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
29957
29958         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
29959
29960         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
29961         (Add_Archive_Path): Only add the global archive if there is one.
29962         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
29963         or not any object file to put in the global archive, and don't build
29964         a global archive if there is none.
29965         (X_Switches): New table
29966         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
29967         in the X_Switches table, if any.
29968         (Initialize): Make sure the X_Switches table is empty
29969         (Scan_Arg): Record -X switches in table X_Switches
29970
29971         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
29972
29973         * make.adb: Minor comment fix
29974
29975         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
29976         invoked with directory information, add the directory in front of the
29977         path.
29978
29979         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
29980         invoked with directory information, add the directory in front of the
29981         path.
29982
29983         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
29984         when Keep_Temporary_Files is False.
29985         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
29986         directory information, add the directory in front of the path.
29987         When not on VMS, handle new switch -dn before the command to set
29988         Keep_Temporary_Files to True.
29989         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
29990         everywhere.
29991
29992         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
29993         invoked with directory information, add the directory in front of the
29994         path.
29995
29996 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
29997
29998         * snames.ads, snames.adb (Name_Stub): New name for the distributed
29999         systems annex.
30000
30001         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
30002         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
30003
30004         * g-socket.adb (To_Timeval): Fix incorrect conversion of
30005         Selector_Duration to Timeval for the case of 0.0.
30006
30007         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
30008         documentation from Evolve_And_Then.
30009
30010 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
30011
30012         * s-taprop-tru64.adb, s-taprop-os2.adb,
30013         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
30014
30015 2004-07-06  Robert Dewar  <dewar@gnat.com>
30016
30017         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
30018         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
30019         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
30020         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
30021         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
30022         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
30023         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
30024         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
30025         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
30026         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
30027         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
30028         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
30029         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
30030         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
30031         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
30032         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
30033         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
30034         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
30035         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
30036         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
30037         vms_data.ads: Minor reformatting,
30038         Fix bad box comment format.
30039
30040         * gnat_rm.texi: Fix minor grammatical error
30041
30042         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
30043
30044         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
30045         more cases of discriminated records to be recognized as not needing a
30046         secondary stack.
30047         (Has_Access_Values): New function.
30048
30049         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
30050
30051         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
30052         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
30053         with LRM terminology).
30054         Change terminology in comments primitive type => elementary type.
30055
30056 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
30057
30058         PR ada/15602
30059         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
30060         parameters do not impose any requirements on the presence of a body.
30061
30062 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
30063
30064         PR ada/15593
30065         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
30066         compilation unit and is in an open scope at the point of instantiation,
30067         assume that a body may be present later.
30068
30069 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
30070
30071         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
30072         Improve error message when specified size is not supported.
30073
30074         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
30075         is never a primitive operation.
30076
30077 2004-07-05  Andreas Schwab  <schwab@suse.de>
30078
30079         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
30080         RECORD_OR_UNION_CHECK.
30081         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
30082
30083 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
30084
30085         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
30086         dependency on xgnatugn, instead build it via a submake.
30087         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
30088
30089 2004-07-04  Richard Henderson  <rth@redhat.com>
30090
30091         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
30092
30093 2004-07-01  Richard Henderson  <rth@redhat.com>
30094
30095         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
30096         * utils.c (max_size): Likewise.
30097
30098 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30099
30100         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
30101         and rest_of_type_compilation; add arg to create_*_decl.
30102         (annotate_decl_with_node): Deleted.
30103         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
30104         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
30105         (get_current_block_context, gnat_pushdecl): New declarations.
30106         (gnat_init_stmt_group): Likewise.
30107         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
30108         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
30109         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
30110         (gnat_init): Call gnat_init_stmt_group.
30111         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
30112         (gnu_pending_elaboration_list): Deleted.
30113         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
30114         (gigi): Rearrange initialization calls and move some to last above.
30115         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
30116         Delete calls to add_decl_expr; add arg to create_*_decl.
30117         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
30118         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
30119         begin_subprog_body and call it.
30120         Don't push and pop ggc context.
30121         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
30122         (add_stmt): Remove handling of DECL_EXPR from here.
30123         If not in function, mark visited.
30124         (add_decl_expr): Put global at top level.
30125         Check for cases of DECL_INITIAL we have to handle here.
30126         (process_type): Add extra arg to create_type_decl.
30127         (build_unit_elab): Rework to just gimplify.
30128         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
30129         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
30130         (get_pending_elaborations, pending_elaborations_p): Likewise.
30131         (push_pending_elaborations, pop_pending_elaborations): Likewise.
30132         (get_elaboration_location, insert_elaboration_list): Likewise.
30133         (gnat_binding_level): Renamed from ada_binding_level.
30134         (init_gnat_to_gnu): Don't clear pending_elaborations.
30135         (global_bindings_p): Treat as global if no current_binding_level.
30136         (set_current_block_context): New function.
30137         (gnat_pushdecl): Renamed from pushdecl; major rework.
30138         All callers changed.
30139         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
30140         (finish_record_type): Call call pushdecl for stub decl.
30141         (function_nesting_depth): Deleted.
30142         (begin_subprog_body): Delete obsolete code.
30143         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
30144
30145 2004-06-28  Robert Dewar  <dewar@gnat.com>
30146
30147         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
30148         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
30149         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
30150         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
30151         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
30152
30153         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
30154         deal with problem of inefficient slices on machines with strict
30155         alignment, when the slice is a component of a composite.
30156
30157         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
30158         machines, we need the check there as well.
30159
30160 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
30161
30162         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
30163         determine safe copying direction for overlapping slice assignments
30164         when component is controlled.
30165
30166         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
30167         formal derived type in the actual for a formal package are visible in
30168         the enclosing instance.
30169
30170 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
30171
30172         PR ada/15600
30173         * sem_util.adb (Trace_Components): Diagnose properly an illegal
30174         circularity involving a private type whose completion includes a
30175         self-referential component.
30176         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
30177         renaming or an instantiation from an implicit derived operation.
30178
30179 2004-06-28  Pascal Obry  <obry@gnat.com>
30180
30181         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
30182         DLL.
30183         (Library_File_Name_For): Idem.
30184
30185 2004-06-28  Matthew Gingell  <gingell@gnat.com>
30186
30187         * g-traceb.ads: Add explanatory note on the format of addresses
30188         expected by addr2line.
30189
30190 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
30191
30192         * Makefile.in: Force debugging information on s-tasdeb.adb,
30193         a-except.adb and s-assert.adb needed by the debugger.
30194
30195 2004-06-28  Vincent Celier  <celier@gnat.com>
30196
30197         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
30198         Need_To_Build_Lib.
30199         (Gnatmake): Ditto.
30200
30201         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
30202
30203         * prj.adb: Minor reformatting
30204         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
30205
30206         * prj.ads: Comment updates
30207         Minor reformatting
30208         (Project_Data): Change Flag1 to Need_To_Build_Lib.
30209         Remove Flag2: not used.
30210
30211         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
30212         declaration.
30213
30214         * gnat_ugn.texi: Put a "null;" declaration in one project file example
30215
30216         * gnat_rm.texi: Document Empty declarations "null;".
30217
30218         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
30219         front of the linker options.
30220         (Link_Foreign): Put the global archives and the libraries in front of
30221         the linker options.
30222
30223 2004-06-28  Javier Miranda  <miranda@gnat.com>
30224
30225         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
30226         (RTU_Loaded): Code cleanup
30227         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
30228         withed predefined units.
30229
30230         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
30231         explicitly withed predefined units.
30232         Fix typo in comment
30233
30234         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
30235         explicitly withed predefined units.
30236
30237 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30238
30239         * ada-tree.def (DECL_STMT): Deleted.
30240         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
30241         (DECL_STMT_VAR): Deleted.
30242         * decl.c: add_decl_stmt now add_decl_expr.
30243         * gigi.h: Likewise.
30244         * trans.c: Likewise.
30245         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
30246         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
30247         (add_stmt): Only handle padded type here.
30248         (add_stmt_with_node): Allow gnat_node to not be present.
30249         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
30250         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
30251         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
30252         make a SAVE_EXPR for the entire fat pointer.
30253         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
30254         (create_index_type): Make a DECL_EXPR.
30255         (end_subprog_body): Don't call allocate_struct_function here but
30256         do clear cfun.
30257
30258 2004-06-25  Pascal Obry  <obry@gnat.com>
30259
30260         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
30261         Relocatable from Build_Dynamic_Library call.
30262
30263         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
30264         Relocatable are now synonym.
30265
30266         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
30267
30268         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
30269         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
30270         call.
30271
30272         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
30273         Lib_Address and Relocatable.
30274         (Default_DLL_Address): Removed.
30275
30276         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
30277         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
30278         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
30279         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
30280         (Default_DLL_Address): Removed.
30281
30282         * mlib-tgt-mingw.adb: Ditto.
30283         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
30284
30285         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
30286         the initial thread stack size.
30287
30288         * a-strmap.ads: Move package L to private part as it is not used in
30289         the spec. Found while reading code.
30290
30291 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
30292
30293         * tracebak.c: Introduce support for a GCC infrastructure based
30294         implementation of __gnat_backtrace.
30295
30296         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
30297         any more. Use accessors instead. This eases maintenance and relaxes
30298         some alignment constraints.
30299         (_GNAT_Exception structure): Remove the Ada specific fields
30300         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
30301         a-exexpr.adb.
30302         (is_handled_by, __gnat_eh_personality): Replace component references to
30303         exception structure by use of the new accessors.
30304
30305         * init.c (__gnat_initialize): Adjust comments to match the just
30306         reverted meaning of the -static link-time option.
30307
30308         * adaint.c (convert_addresses): Arrange not to define a stub for
30309         mips-irix any more, as we now want to rely on a real version from a
30310         recent libaddr2line.
30311
30312         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
30313         the personality routine can use them and not have to rely on a C
30314         counterpart of the record anymore. This simplifies maintenance and
30315         relaxes the constraint of having Standard'Maximum_Alignment match
30316         BIGGEST_ALIGNMENT.
30317         Update comments, and add a section on the common header alignment issue.
30318
30319 2004-06-25  Geert Bosch  <bosch@gnat.com>
30320
30321         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
30322         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
30323
30324 2004-06-25  Robert Dewar  <dewar@gnat.com>
30325
30326         * gnat_rm.texi: Fix section on component clauses to indicate that the
30327         restriction on byte boundary placement still applies for bit packed
30328         arrays.
30329         Add comment on stack usage from Initialize_Scalars
30330
30331         * gnat_ugn.texi: Add documentation for -gnatyLnnn
30332
30333         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
30334         limiting nesting level.
30335
30336         * usage.adb: Add line for -gnatyLnnn switch
30337
30338         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
30339         sem_ch13.adb, exp_aggr.adb: Minor reformatting
30340
30341         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
30342         type as well as on the subtype. This corrects a problem in freeze in
30343         setting alignments of atomic types.
30344
30345         * sem_eval.ads: Minor comment typo fixed
30346
30347         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
30348         level.  Minor reformatting.
30349
30350         * fname.adb (Is_Predefined_File_Name): Require a letter after the
30351         minus sign. This means that file names like a--b.adb will not be
30352         considered predefined.
30353
30354         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
30355         record Test new flag and give diagnostic for bad component clause.
30356         (Freeze_Entity): Set alignment of array from component alignment in
30357         cases where this is safe to do.
30358
30359         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
30360         arrays.
30361
30362         * cstand.adb: (Create_Standard): Set alignment of String to 1
30363
30364         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
30365
30366         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
30367         code in the common constrained array cases.
30368
30369         * a-storio.adb: Change implementation to avoid possible alignment
30370         problems on machines requiring strict alignment (data should be moved
30371         as type Buffer, not type Elmt).
30372
30373         * checks.adb (Apply_Array_Size_Check): Improve these checks by
30374         killing the overflow checks which we really do not need (64-bits is
30375         enough).
30376
30377 2004-06-25  Vincent Celier  <celier@gnat.com>
30378
30379         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
30380         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
30381         inconditionally for the main project.
30382         (Recursive_Add_Archives.Add_Archive_Path): New procedure
30383         (Link_Executables.Check_Time_Stamps): New procedure
30384         (Link_Executables.Link_Foreign): New procedure
30385         Changes made to reduce nesting level of this package
30386         (Check): New procedure
30387         (Add_Switches): When not in quiet output, check that a switch is not
30388         the concatenation of several valid switches. If it is, issue a warning.
30389         (Build_Global_Archive): If the global archive is rebuilt, linking need
30390         to be done.
30391         (Compile_Sources): Rebuilding a library archive does not imply
30392         rebuilding the global archive.
30393         (Build_Global_Archive): New procedure
30394         (Build_Library): New name for Build_Archive, now only for library
30395         project
30396         (Check_Archive_Builder): New procedure
30397         (Create_Global_Archive_Dependency_File): New procedure
30398         (Gprmake): Call Build_Global_Archive before linking
30399         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
30400         throughout.
30401         (Scan_Arg): Display the Copyright notice when -v is used
30402
30403         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
30404         for gnatls.
30405
30406         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
30407         COMPILE.
30408         Add new GNAT LIST qualifier /FILES=
30409         Added qualifier /DIRECTORY= to GNAT METRIC
30410         Added qualifier /FILES= to GNAT METRIC
30411         Added qualifier /FILES to GNAT PRETTY
30412
30413         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
30414         to take into account both versions of the switch.
30415
30416         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
30417         always be the last switch to the gcc driver. Disable switch storing so
30418         that switches automatically added by the gcc driver are not put in the
30419         ALI file.
30420
30421         * prj.adb (Project_Empty): Take into account changes in components of
30422         Project_Data.
30423
30424         * prj.ads (Languages_Processed): New enumaration value All_Languages.
30425
30426         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
30427         used. Split Boolean component Ada_Sources_Present in two Boolean
30428         components Ada_Sources_Present and Other_Sources_Present.
30429         Minor reformatting
30430
30431         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
30432         instead of Sources_Present.
30433         (Set_Ada_Paths.Add.Recursive_Add): Ditto
30434
30435         * prj-nmsc.adb: Minor reformatting
30436         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
30437         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
30438         Check_Ada_Naming_Scheme.
30439         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
30440         throughout.
30441
30442         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
30443         In_Limited.
30444         Make sure that all cycles where there is at least one "limited with"
30445         are detected.
30446         (Parse_Single_Project): New Boolean parameter In_Limited
30447
30448         * prj-proc.adb (Recursive_Check): When Process_Languages is
30449         All_Languages, call first Prj.Nmsc.Ada_Check, then
30450         Prj.Nmsc.Other_Languages_Check.
30451
30452         * prj-proc.adb (Process): Use Ada_Sources_Present or
30453         Other_Sources_Present (instead of Sources_Present) depending on
30454         Process_Languages.
30455
30456         * lang-specs.h: Keep -g and -m switches in the same order, and as the
30457         last switches.
30458
30459         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
30460         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
30461         False.
30462         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
30463         False.
30464
30465         * lib.ads (Disable_Switch_Storing): New procedure.
30466
30467         * make.adb: Modifications to reduce nesting level of this package.
30468         (Check_Standard_Library): New procedure
30469         (Gnatmake.Check_Mains): New procedure
30470         (Gnatmake.Create_Binder_Mapping_File): New procedure
30471         (Compile_Sources.Compile): Add switch -gnatez as the last option
30472         (Display): Never display -gnatez
30473
30474         * Makefile.generic:
30475         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
30476
30477         * gnatcmd.adb (Check_Project): New function
30478         (Process_Link): New procedure to reduce nesting depth
30479         (Check_Files): New procedure to reduce the nesting depth.
30480         For GNAT METRIC, include the inherited sources in extending projects.
30481         (GNATCmd): When GNAT LS is invoked with a project file and no files,
30482         add the list of files from the sources of the project file. If this list
30483         is too long, put it in a temp text files and use switch -files=
30484         (Delete_Temp_Config_Files): Delete the temp text file that contains
30485         a list of source for gnatpp or gnatmetric, if one has been created.
30486         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
30487         in the project file is too large, create a temporary text file that
30488         list them and pass it to the tool with "-files=<temp text file>".
30489         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
30490
30491         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
30492         generated file is in not in Ada.
30493
30494         * gnatls.adb: Remove all parameters And_Save that are no longer used.
30495         (Scan_Ls_Arg): Add processing for -files=
30496         (Usage): Add line for -files=
30497
30498         * g-os_lib.adb (On_Windows): New global constant Boolean flag
30499         (Normalize_Pathname): When on Windows and the path starts with a
30500         directory separator, make sure that the resulting path will start with
30501         a drive letter.
30502
30503         * clean.adb (Clean_Archive): New procedure
30504         (Clean_Project): When there is non-Ada code, delete the global archive,
30505         the archive dependency files, the object files and their dependency
30506         files, if they exist.
30507         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
30508
30509 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
30510
30511         * sinfo.ads: Fix typo in comment.
30512
30513         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
30514         the TSS for remote access-to-subprogram types, since these TSS are
30515         always present once the type has been analyzed.
30516         (RAS_E_Dereference): Same.
30517
30518         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
30519         reference raises Bad_Attribute, mark the reference as analyzed so the
30520         node (and any children resulting from rewrites that could have occurred
30521         during the analysis that ultimately failed) is not analyzed again.
30522
30523         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
30524
30525         * exp_dist.adb: Minor comment fix.
30526
30527         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
30528         type is an anonymous access type, no unchecked deallocation of the
30529         allocated object can occur. If the object is controlled, attach it with
30530         a count of 1. This allows attachment to the Global_Final_List, if
30531         no other relevant list is available.
30532         (Get_Allocator_Final_List): For an anonymous access type that is
30533         the type of a discriminant or record component, the corresponding
30534         finalisation list is the one of the scope of the type.
30535
30536 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
30537
30538         * sem_ch3.adb (Replace_Type): When computing the signature of an
30539         inherited subprogram, use the first subtype if the derived type
30540         declaration has no constraint.
30541
30542         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
30543         before applying previous optimization. Minor code cleanup.
30544
30545         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
30546         placed at the beginning of an unpacked record without explicit
30547         alignment, a slice of it will be aligned and does not need a copy when
30548         used as an actual.
30549
30550 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
30551
30552         PR ada/15591
30553         PR ada/15592
30554         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
30555         reference is written with expressions mimicking parameters.
30556
30557 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
30558
30559         PR ada/15589
30560         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
30561         STEP 2a. The constraints of a full type declaration of a derived record
30562         type are checked for conformance with those declared in the
30563         corresponding private extension declaration. The message
30564         "not conformant with previous declaration" is emitted if an error is
30565         detected.
30566
30567 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
30568
30569         * g-traceb.ads: Document the need for -E binder switch in the spec.
30570
30571         * g-trasym.ads: Document the need for -E binder switch in the spec.
30572
30573 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
30574
30575         * sem_prag.adb: Add handling of pragma Detect_Blocking.
30576
30577         * snames.h, snames.ads, snames.adb: Add entry for pragma
30578         Detect_Blocking.
30579
30580         * s-rident.ads: Change reference to pragma Detect_Blocking.
30581
30582         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
30583         system.ads.
30584
30585         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
30586         to indicate whether pragma Detect_Blocking is active.
30587
30588         * par-prag.adb: Add entry for pragma Detect_Blocking.
30589
30590         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
30591         of not handling WITH.
30592         Note that this replaces the previous update which was incorrect.
30593
30594 2004-06-25  Javier Miranda  <miranda@gnat.com>
30595
30596         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
30597         use-clauses to have a clean environment.
30598
30599         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
30600         the installation of the use-clauses to stablish a clean environment in
30601         case of compilation of a separate unit; otherwise the call to
30602         use_one_package is protected by the barrier Applicable_Use.
30603
30604         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
30605         the installation of the use-clauses to stablish a clean environment in
30606         case of compilation of a separate unit.
30607         (End_Use_Clauses): Minor comment cleanup.
30608
30609 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
30610
30611         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
30612
30613 2004-06-23  Richard Henderson  <rth@redhat.com>
30614
30615         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
30616
30617 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30618
30619         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
30620         now bool instead of int.
30621         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
30622         * trans.c (gnu_switch_label_stack): New function.
30623         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
30624         elaboration of renamed entity returns.
30625         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
30626         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
30627         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
30628         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
30629         DECL_SIZE_UNIT and simplify variable-sized case.
30630         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
30631         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
30632         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
30633         (build_unit_elab): Disable for now.
30634         * utils.c (mark_visited): New function.
30635         (pushdecl): Walk tree to call it for global decl.
30636         (update_pointer_to): Update all variants of pointer and ref types.
30637         Add arg to COMPONENT_REF.
30638         (convert): Likewise.
30639         Move check for converting between variants lower down.
30640         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
30641         (build_allocator): Don't force type of MODIFY_EXPR.
30642         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
30643         put_var_into_stack.
30644
30645 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30646
30647         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
30648         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
30649         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
30650         subprograms.
30651         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
30652         all callers changed.
30653         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
30654         the way that EXIT_STMT finds the loop label.
30655         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
30656         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
30657         (add_stmt): Use annotate_with_locus insted of setting directly.
30658         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
30659         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
30660         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
30661         (build_vms_descriptor): Add extra args to ARRAY_REF.
30662         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
30663         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
30664         New cases.
30665         (build_binary_op): Don't make explicit CONVERT_EXPR.
30666         Add extra rgs to ARRAY_REF.
30667
30668 2004-06-14  Pascal Obry  <obry@gnat.com>
30669
30670         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
30671         Windows.  Fix minor typo.
30672
30673         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
30674         which is now supported on Windows. With this implementation using the
30675         Library Project feature is no different on Windows than on UNIX.
30676
30677 2004-06-14  Vincent Celier  <celier@gnat.com>
30678
30679         * makegpr.adb (Compile_Sources): Nothing to do when there are no
30680         non-Ada sources.
30681
30682         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
30683
30684         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
30685         found, show the project name and the path of the previously parsed
30686         project file.
30687
30688 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
30689
30690         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
30691         array, avoid copying the actual before the call.
30692
30693 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
30694
30695         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
30696         Instead, allocate memory on worst-case alignment assumptions, and then
30697         return an aligned address within the allocated zone.
30698
30699 2004-06-14  Robert Dewar  <dewar@gnat.com>
30700
30701         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
30702         elab entities in predefined units in No_Run_Time_Mode.
30703         (Gen_Adainit_C): Same fix
30704         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
30705         units in No_Run_Time_Mode
30706         (Gen_Elab_Calls_C): Same fix
30707
30708         * symbols-vms-alpha.adb: Minor reformatting
30709
30710         * g-debpoo.ads: Minor reformatting
30711
30712         * lib.adb (In_Same_Extended_Unit): Version working on node id's
30713
30714         * lib.ads (In_Same_Extended_Unit): Version working on node id's
30715
30716         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
30717         working on nodes.
30718
30719         * make.adb: Minor reformatting
30720
30721         * par-ch12.adb: Minor reformatting
30722
30723         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
30724
30725         * prj-strt.adb: Minor reformatting
30726
30727         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
30728         be more general.
30729
30730         * sem_attr.adb: Minor reformatting
30731
30732         * sem_ch7.adb: Minor reformatting
30733
30734         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
30735         for type in the same unit as the object declaration.
30736
30737         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
30738         static string expressions and not just string literals.
30739         Minor reformatting
30740         (Set_Warning): Reset restriction warning flag for restriction pragma
30741         Implement pragma Profile_Warnings
30742         Implement pragma Profile (Restricted)
30743         Give obolescent messages for old restrictions and pragmas
30744
30745         * snames.h, snames.ads, snames.adb: Add new entry for pragma
30746         Profile_Warnings.
30747
30748         * s-rident.ads: Add declarations for restrictions required by profile
30749         Restricted and profile Ravenscar.
30750
30751         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
30752
30753         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
30754         configuration pragmas.
30755
30756 2004-06-11  Vincent Celier  <celier@gnat.com>
30757
30758         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
30759         gnatsym, when symbol policy is Restricted.
30760
30761         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
30762         gnatsym, when symbol policy is Restricted.
30763
30764         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
30765         read the symbol file.
30766         (Finalize): Fail in symbol policy Restricted if a symbol in the original
30767         symbol file is not in the object files. Do not create a new symbol file
30768         when symbol policy is Restricted.
30769
30770         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
30771         in Scng.
30772
30773         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
30774         Restricted.
30775         (Usage): Line for new switch -R
30776
30777         * make.adb (Initialize): When the platform is not VMS, add the
30778         directory where gnatmake is invoked in the front of the path, if
30779         gnatmake is invoked with directory information.  Change the Scan_Args
30780         while loop to a for loop.
30781         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
30782         if Depth is equal or greater than the proposed depth, there is nothing
30783         to do.
30784         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
30785         instead of 0.
30786
30787         * prj.ads: Add new symbol policy Restricted.
30788
30789         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
30790         with the new parameters Check_All_Labels and Case_Location.
30791
30792         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
30793         (Library_Symbol_File needs to be defined).
30794
30795         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
30796         and Case_Location If Check_All_Labels is True, check that all values of
30797         the string type are used, and output warning(s) if they are not.
30798
30799         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
30800         and Case_Location.
30801
30802         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
30803
30804         * gnat_ugn.texi: Update documentation about the library directory in
30805         Library Projects.
30806
30807         * makegpr.adb (Display_Command): In verbose mode, also display the
30808         value of the CPATH env var, when the compiler is gcc.
30809         (Initialize): Change the Scan_Args while loop to a for loop
30810         (Compile_Individual_Sources): Change directory to object directory
30811         before compilations.
30812
30813         * symbols.ads: New symbol policy Restricted.
30814
30815 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
30816
30817         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
30818         is now taken care of internally in the Exception_Propagation package
30819         and does not require clients assistance any more.
30820
30821         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
30822         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
30823         functions. Helpers to maintain a predicate required in the handling of
30824         occurrence transfer between tasks.
30825         This is now handled internally and does not require clients assistance
30826         for the setup/propagate separation anymore.
30827         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
30828         allocation strategy, handle the Setup_And_Not_Propagated predicate and
30829         document.
30830
30831         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
30832         raise_after_setup, now that everything is handled internally within the
30833         setup/propagation engine.
30834
30835 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
30836
30837         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
30838         Add additional conditions for the case of an actual being a simple
30839         name or literal. Improve inlining by preventing the generation
30840         of temporaries with a short lifetime (one use).
30841
30842 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
30843
30844         PR ada/15587
30845         * einfo.ads: Minor comment updates for Has_Completion and
30846         E_Constant list of flags.
30847
30848         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
30849         and constant redeclarations now set the Has_Completion flag of their
30850         defining identifiers.
30851
30852         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
30853         Inspect_Deferred_Constant_Completion.
30854         Used to detect private deferred constants that have not been completed
30855         either by a constant redeclaration or pragma Import. Emits error message
30856         "constant declaration requires initialization expression".
30857
30858         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
30859         completes a deferred constant.
30860
30861 2004-06-11  Geert Bosch  <bosch@gnat.com>
30862
30863         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
30864
30865         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
30866         calculating exponent for scaling denormal numbers.
30867         (Leading_Part): Properly raise Constraint_Error for zero or negative
30868         Adjustment.
30869         (Remainder): Properly raise Constraint_Error for zero divisor.
30870
30871 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
30872
30873         * sem_util.adb: Minor reformatting.
30874
30875         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
30876         dereference when accessing the entry parameter record.
30877         (Check_Array_Type): Always check for possible implicit dereference.
30878         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
30879         Abort if a pointer is still present (denoting that an implicit
30880         dereference was left in the tree by the front-end).
30881
30882         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
30883         dereference when accessing the entry parameter record.
30884         (Check_Array_Type): Always check for possible implicit dereference.
30885         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
30886         Abort if a pointer is still present (denoting that an implicit
30887         dereference was left in the tree by the front-end).
30888
30889 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
30890
30891         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
30892         message, like the compiler itself does. Easier to parse the output.
30893
30894         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
30895
30896         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
30897         be base names, and not includes directories.
30898
30899 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
30900
30901         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
30902         so that dependencies are properly taken into account by make.
30903
30904 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
30905
30906         PR ada/15622
30907         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
30908         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
30909
30910 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
30911
30912         * Makefile.in (install-gnatlib): install target-specific run-time files.
30913
30914         * Make-lang.in: Remove obsolete targets.
30915
30916 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
30917
30918         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
30919         specification, to catch misuses of program unit names.
30920
30921         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
30922         superfluous conversions in an instance.
30923
30924 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
30925
30926         PR ada/15403
30927         * sem_ch12.adb (Save_References): If operator node has been folded to
30928         enumeration literal, associated_node must be discarded.
30929
30930 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
30931
30932         * s-stchop-vxworks.adb: Add required pragma Convention to
30933         Task_Descriptor because it is updated by a C function.
30934
30935 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
30936
30937         PR ada/15568
30938         * Makefile.in: Remove target specific SO_OPT on IRIX
30939
30940 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30941
30942         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
30943         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
30944         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
30945         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
30946         (STMT_STMT, USE_STMT): New statement codes.
30947         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
30948         * ada-tree.h: Reflect above changes.
30949         (struct tree_loop_id): Deleted.
30950         (union lang_tree_node, struct lang_decl, struct lang_type):
30951         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
30952         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
30953         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
30954         (IS_ADA_STMT): New macro.
30955         * decl.c (annotate_decl_with_node): New function.
30956         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
30957         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
30958         Call add_stmt_with_node to do needed assignments.
30959         Add call to update setjmp buffer directly, not via EXPR_STMT.
30960         (maybe_variable): Argment GNAT_NODE deleted.
30961         * gigi.h (maybe_variable): Likewise.
30962         (make_transform, add_stmt_with_node, set_block_for_group): New.
30963         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
30964         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
30965         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
30966         (set_lineno, set_lineno_from_sloc): Likewise.
30967         (record_code_position, insert_code_for): Likewise.
30968         (gnat_poplevel): Now returns void.
30969         (end_subprog_body): Now takes argument.
30970         * misc.c (cgraph.h, tree-inline.h): New includes.
30971         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
30972         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
30973         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
30974         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
30975         (gnat_parse_file): Don't set immediate_size_expand.
30976         Call cgraph functions.
30977         (gnat_expand_expr): Remove most cases.
30978         (record_code_position, insert_code_for): Remove from here.
30979         * trans.c (toplev.h, tree-gimple.h): Now included.
30980         (discard_file_names): Deleted.
30981         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
30982         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
30983         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
30984         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
30985         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
30986         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
30987         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
30988         (set_block_for_group, add_stmt_list): Likewise.
30989         (start_stmt_group): Renamed from start_block_stmt.
30990         (end_stmt_group): Likewise, from end_block_stmt.
30991         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
30992         (gigi): Don't set discard_file_names or call set_lineno.
30993         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
30994         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
30995         Numerous changes throughout to reflect new names and complete
30996         function-at-a-time implementation.
30997         (gnat_expand_stmt): Delete or comment out all cases.
30998         (process_inlined_subprograms): Use add_stmt.
30999         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
31000         call set_lineno; also remove unneeded block handling.
31001         (process_type): Remove unneeded block handling.
31002         (build_unit_elab): Remove calls to deleted functions.
31003         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
31004         (tree-dump.h): Likewise.
31005         (struct ada_binding_level): Add field jmpbuf_decl.
31006         (gnat_define_builtin, gnat_install_builtins): New.
31007         (gnat_gimplify_function, gnat_finalize): Likewise.
31008         (gnat_poplevel): No longer return BLOCK, set it instead.
31009         Remove code dealing with nested functions.
31010         (gnat_init_decl_processing): Also set size_type_node.
31011         Call gnat_install_builtins.
31012         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
31013         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
31014         Remove special-case for "main".
31015         (end_subprog_body): Add arg and rework for tree-ssa.
31016         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
31017         Add case for BOOLEAN_TYPE.
31018         * utils2.c (rtl.h): Now include.
31019         (build_call_raise): Test Debug_Flag_NN directly.
31020         (build_call_alloc_dealloc): Don't use local stack allocation for now.
31021         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
31022         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
31023
31024 2004-06-07  Robert Dewar  <dewar@gnat.com>
31025
31026         * a-direct.ads, einfo.ads: Minor comment updates
31027
31028         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
31029         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
31030         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
31031         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
31032         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
31033
31034         * s-interr-sigaction.adb: Remove unreferenced variable
31035         (Attached_Interrupts).  Minor reformatting.
31036         Avoid use of variable I (replace by J).
31037
31038         * par-ch10.adb: Fix text of one error message
31039
31040         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
31041         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
31042         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
31043         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
31044         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
31045         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
31046         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
31047         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
31048         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
31049         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
31050         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
31051         2005 support.
31052
31053 2004-06-07  Doug Rupp  <rupp@gnat.com>
31054
31055         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
31056
31057         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
31058
31059         * mlib-tgt-vms-ia64.adb: New file.
31060
31061         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
31062         Add mlib-tgt-vms-ia64.adb
31063         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
31064         Move to alpha specific ifeq section.
31065         Add VMS specific versions of symbols.adb
31066         Renaming of 5q vms files.
31067
31068         * 5qsystem.ads renamed to system-vms_64.ads.
31069
31070 2004-06-07  Vincent Celier  <celier@gnat.com>
31071
31072         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
31073         explain that when a time of day corresponding to the non existing hour
31074         on the day switching to DST is specified, Split may return a different
31075         value for Seconds.
31076
31077         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
31078         to GNAT PRETTY.
31079
31080         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
31081         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
31082
31083         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
31084         to False.
31085         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
31086         the linking options.
31087         (Build_Library.Check_Libs): On VMS, if there is a dependency on
31088         g-trasym.ads, set Gtrasymobj_Needed to True.
31089
31090         * prj-attr.adb: Add new package Metrics for gnatmetric
31091
31092         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
31093         canonical case to take into account files with upper case characters on
31094         Windows.
31095         (Ada_Check): Load the reference symbol file name in the name buffer to
31096         check it, not the symbol file name.
31097
31098         * snames.ads, snames.adb: Add standard name Metrics (name of project
31099         file package for gnatmetric).
31100
31101         * vms_conv.ads: Add Metric to Comment_Type
31102
31103         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
31104
31105         * vms_data.ads: Add qualifiers for GNAT METRIC
31106
31107         * makegpr.adb (Link_Executables): Take into account the switches
31108         specified in package Linker of the main project.
31109
31110 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
31111
31112         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
31113         the index of the last element is Units.Last, not Units.Table'Last
31114         (which is usually not a valid index within the actually allocated
31115         storage for the table).
31116
31117         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
31118         determines whether to generate a call to a checked storage pool
31119         Dereference action.
31120         Generate such a call only for a dereference that either comes from
31121         source, or is the result of rewriting a dereference that comes from
31122         source.
31123
31124 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
31125
31126         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
31127
31128 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
31129
31130         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
31131         file level, elaborate the stride for inner dimensions in alignment
31132         units, not bytes.
31133
31134         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
31135         in a comment.
31136
31137 2004-06-07  Javier Miranda  <miranda@gnat.com>
31138
31139         * exp_ch6.adb: Correct wrong modification in previous patch
31140
31141 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
31142
31143         * g-trasym.ads: Corrected comment to properly reflect level of support
31144         on VMS.
31145
31146 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
31147
31148         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
31149         includes case of a variable referenced on the left hand side of an
31150         assignment, therefore remove redundant code. Variables and prefixes of
31151         indexed or selected components are now marked as referenced on left
31152         hand side. Warnings are now properly emitted when variables or prefixes
31153         are assigned but not read.
31154
31155         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
31156         left hand side referenced variables. Private access types do not
31157         produce the warning "variable ... is assigned but never read".
31158         Add also additional checks to left hand side referenced variables.
31159         Aliased, renamed objects and access types do not produce the warning
31160         "variable ... is assigned but never read" since other entities may read
31161         the memory location.
31162
31163 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
31164
31165         * Makefile.in: In the powerpc/vxworks-specific section, restore
31166         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
31167         by mistake).
31168
31169 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
31170
31171         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
31172         predefined operators.
31173         Removes spurious type errors from g-trasym-vms.adb.
31174
31175         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
31176         distinct from the operator appearing in the source, call appropriate
31177         routine to insert conversions when needed, and complete resolution of
31178         node.
31179         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
31180         interpretations for rewritten right operand.
31181         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
31182         the other operand is overloaded and the context is a type conversion.
31183
31184 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31185
31186         * ada-tree.def (BLOCK_STMT): Now has two operands.
31187         (BREAK_STMT): New.
31188
31189         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
31190
31191         * gigi.h: (gnat_poplevel): Now returns a tree.
31192
31193         * trans.c (end_block_stmt): Add arg; all callers changed.
31194         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
31195         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
31196         (add_stmt): Set TREE_TYPE.
31197         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
31198         (gnat_expand_stmt, case BREAK_STMT): New case.
31199
31200         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
31201
31202 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
31203
31204         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
31205         procedure Set_Stack_Size that is not needed.
31206
31207 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
31208
31209         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
31210         used for gnatpp input file and for the files upon which it depends
31211
31212 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
31213
31214         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
31215
31216 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
31217
31218         * gnatvsn.ads: Bump version numbers appropriately.
31219         Add new build type.
31220
31221 2004-06-07  Pascal Obry  <obry@gnat.com>
31222
31223         * gnat_ugn.texi: Improve comments about imported names and link names
31224         on Windows. Add a note about the requirement to use -k gnatdll's option
31225         when working with a DLL which has stripped stdcall symbols (no @nn
31226         suffix).
31227
31228 2004-05-27  Vincent Celier  <celier@gnat.com>
31229
31230         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
31231         COMMENTS_LAYOUT=UNTOUCHED
31232
31233         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
31234         symbols-vms-alpha.adb
31235
31236 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
31237
31238         * sem.ads: Clarify documentation on checks suppression.
31239
31240         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
31241
31242 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
31243
31244         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
31245         the case of multiple derivations.
31246         (Is_Object_Reference): For a selected component, verify that the prefix
31247         is itself an object and not a value.
31248
31249         * sem_ch12.adb (Same_Instantiated_Constant): New name for
31250         Same_Instantiated_Entity.
31251         (Same_Instantiated_Variable): Subsidiary to
31252         Check_Formal_Package_Instance, to recognize actuals for in-out generic
31253         formals that are obtained from a previous formal package.
31254         (Instantiate_Subprogram_Body): Emit proper error when
31255         generating code and the proper body of a stub is missing.
31256
31257         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
31258         has a universal interpretation, do the disambiguation here.
31259
31260         * exp_ch4.adb (Expand_N_Type_Conversion,
31261         Expand_N_Unchecked_Type_Conversion): Special handling when target type
31262         is Address, to avoid typing anomalies when Address is a visible integer
31263         type.
31264
31265         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
31266         to determine whether a subprogram should not be marked Pure, even when
31267         declared in a pure package.
31268
31269 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
31270
31271         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
31272
31273         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
31274         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
31275         Update the documentation about the Ravenscar profile, following the
31276         definition found in AI-249.
31277
31278         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
31279         setting the Profile (Ravenscar). This must be done in addition to
31280         setting the required restrictions.
31281
31282         * rtsfind.ads: Add the set of operations defined in package
31283         Ada.Interrupts.
31284
31285         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
31286         restriction.
31287
31288 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
31289
31290         lang-specs.h: Always require -c or -S and always redirect to /dev/null
31291         if -gnatc or -gnats is passed.
31292
31293 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
31294
31295         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
31296         a significant reference. Warnings are now properly emitted when a
31297         discriminated type is not referenced.
31298
31299         * lib-xref.adb (Generate_Reference): A deferred constant completion,
31300         record representation clause or record type discriminant does not
31301         produce a reference to its corresponding entity. Warnings are now
31302         properly emitted when deferred constants and record types are not
31303         referenced.
31304
31305 2004-05-27  Geert Bosch  <bosch@gnat.com>
31306
31307         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
31308         Fixes ACATS Annex G tests.
31309
31310 2004-05-27  Robert Dewar  <dewar@gnat.com>
31311
31312         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
31313         handling WITH
31314
31315 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
31316
31317         * s-interr.adb (Server_Task): Take into account case of early return
31318         from sigwait under e.g. linux.
31319
31320 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
31321
31322         * gnat_ugn.texi: Add description for the new gnatpp options:
31323          -rnb - replace the original source without creating its backup copy
31324          -c0 - do not format comments
31325
31326 2004-05-24  Geert Bosch  <bosch@gnat.com>
31327
31328         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
31329         with 192 bits of precision, sufficient to reduce a double-extended
31330         arguments X with a maximum relative error of T'Machine_Epsilon, for X
31331         in -2.0**32 .. 2.0**32.
31332         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
31333         reduction by the processor, which only uses a 68-bit approximation of
31334         Pi.
31335         (Tan): Always reduce arguments and compute function either using
31336         the processor's fptan instruction, or by dividing sin and cos as needed.
31337
31338 2004-05-24  Doug Rupp  <rupp@gnat.com>
31339
31340         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
31341         gcc error on 32/64 bit VMS.
31342
31343 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
31344
31345         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
31346         since this is what we get for stack overflows although not documented
31347         as such.
31348         Document the issues which may require adjustments to our signal
31349         handlers.
31350
31351 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
31352
31353         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
31354         enclosing dynamic scope if the instantiation is within a generic unit.
31355
31356 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
31357
31358         * exp_dbug.ads: Fix typo.
31359
31360         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
31361         Rename it to its proper name: system-linux-ia64.ads
31362         (stamp-gnatlib1): Remove extra target specific run time files when
31363         setting up the rts directory.
31364
31365 2004-05-24  Javier Miranda  <miranda@gnat.com>
31366
31367         * einfo.ads, einfo.adb (Limited_Views): Removed.
31368         (Limited_View): New attribute that replaces the previous one. It is
31369         now a bona fide package with the limited-view list through the
31370         first_entity and first_private attributes.
31371
31372         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
31373         limited-private-with clause.
31374         (Install_Limited_Withed_Unit): Install the private declarations of a
31375         limited-private-withed package. Update the installation of the shadow
31376         entities according to the new structure (see Build_Limited_Views)
31377         (Build_Limited_Views): Replace the previous implementation of the
31378         limited view by a package entity that references the first shadow
31379         entity plus the first shadow private entity (required for limited-
31380         private-with clause)
31381         (New_Internal_Shadow_Entity): Code cleanup.
31382         (Remove_Limited_With_Clause): Update the implementation to undo the
31383         new work carried out by Build_Limited_Views.
31384         (Build_Chain): Complete documentation.
31385         Replace Ada0Y by Ada 0Y in comments
31386         Minor reformating
31387
31388         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
31389         types the level of accessibility depends on the enclosing type
31390         declaration.
31391
31392         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
31393         entities. Complete documentation of previous change.
31394
31395 2004-05-24  Robert Dewar  <dewar@gnat.com>
31396
31397         * namet.adb: Minor reformatting
31398         Avoid use of name I (replace by J)
31399         Minor code restructuring
31400
31401         * sem_ch6.adb: Minor reformatting
31402
31403         * lib-writ.adb: Do not set restriction as active if this is a
31404         Restriction_Warning case.
31405
31406         * sem_prag.adb: Reset restriction warning flag if real pragma
31407         restriction encountered.
31408
31409         * s-htable.adb: Minor reformatting
31410         Change rotate count to 3 in Hash (improves hash for small strings)
31411
31412         * 5qsystem.ads: Add comments for type Address (no literals allowed).
31413
31414         * gnat_ugn.texi: Add new section of documentation "Code Generation
31415         Control", which describes the use of -m switches.
31416
31417 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
31418
31419         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
31420         through the DECL_INITIAL for renamed variables.
31421
31422 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
31423
31424         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
31425
31426 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
31427
31428         * exp_dbug.ads: Correct comments concerning handling of overloading,
31429         since we no longer use $ anymore.
31430
31431 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
31432
31433         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
31434         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
31435         with illegal subunits.
31436
31437 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
31438
31439         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
31440         body with front-end inlining enabled, check whether an inline pragma
31441         appears immediately after the body and applies to it.
31442
31443         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
31444         enabled and the pragma appears after the body of the subprogram.
31445
31446 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31447
31448         Part of function-at-a-time conversion
31449
31450         * misc.c (adjust_decl_rtl): Deleted.
31451         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
31452         Define.
31453
31454         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
31455         (add_decl_stmt, add_stmt, block_has_vars): New functions.
31456         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
31457
31458         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
31459         when making a decl.
31460         (gnat_to_gnu_entity): Likewise.
31461         Use add_stmt to update setjmp buffer.
31462         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
31463         flush_addressof.
31464         No longer call adjust_decl_rtl.
31465         (DECL_INIT_BY_ASSIGN_P): New macro.
31466         (DECL_STMT_VAR): Likewise.
31467
31468         * trans.c (gigi): Call start_block_stmt to make the outermost
31469         BLOCK_STMT.
31470         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
31471         Call start_block_stmt and end_block_stmt temporarily.
31472         Use gnat_expand_stmt instead of expand_expr_stmt.
31473         (add_decl_stmt): New function.
31474         (tree_transform): Call it.
31475         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
31476         (end_block_stmt): Set type and NULL_STMT.
31477         (gnat_expand_stmt): Make recursize call instead of calling
31478         expand_expr_stmt.
31479         (gnat_expand_stmt, case DECL_STMT): New case.
31480         (set_lineno_from_sloc): Do nothing if global.
31481         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
31482         (start_block_stmt, add_stmt, end_block_stmt): New functions.
31483         (build_block_stmt): Call them.
31484         (gnat_to_code): Don't expand NULL_STMT.
31485         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
31486         args.
31487         (tree_transform): Likewise.
31488         (tree_transform, case N_Null_Statement): Return NULL_STMT.
31489         (gnat_expand_stmt, case NULL_STMT): New case.
31490         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
31491         IF_STMT_TRUE.
31492
31493         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
31494         TREE_ADDRESSABLE.
31495
31496         * utils.c (create_var_decl): Do not call expand_decl or
31497         expand_decl_init.
31498         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
31499         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
31500         here.
31501         (struct e_stack): Add chain_next to GTY.
31502         (struct binding_level): Deleted.
31503         (struct ada_binding_level): New struct.
31504         (free_block_chain): New.
31505         (global_binding_level, clear_binding_level): Deleted.
31506         (global_bindings_p): Rework to see if no chain.
31507         (kept_level_p, set_block): Deleted.
31508         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
31509         new data structure and work directly on BLOCK node.
31510         (gnat_poplevel): Similarly.
31511         (get_decls): Look at BLOCK_VARS.
31512         (insert_block): Work directly on BLOCK node.
31513         (block_has_var): New function.
31514         (pushdecl): Rework for new binding structures.
31515         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
31516         poplevel.
31517         (build_subprog_body): Likewise.
31518         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
31519
31520         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
31521
31522         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
31523         (DECL_STMT_VAR): Likewise.
31524
31525 2004-05-17  Robert Dewar  <dewar@gnat.com>
31526
31527         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
31528         procedure
31529
31530         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
31531         of restriction synonyums by using
31532         Restrict.Process_Restriction_Synonyms.
31533
31534         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
31535
31536         * s-restri.ads (Tasking_Allowed): Correct missing comment
31537
31538         * s-rident.ads: Add entries for restriction synonyms
31539
31540         * ali.adb: Fix some problems with badly formatted ALI files that can
31541         result in infinite loops.
31542
31543         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
31544         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
31545         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
31546         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
31547         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
31548         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
31549         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
31550         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
31551         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
31552         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
31553         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
31554         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
31555         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
31556         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
31557         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
31558         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
31559         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
31560         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
31561         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
31562         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
31563         to Task_Id (minor cleanup).
31564
31565 2004-05-17  Vincent Celier  <celier@gnat.com>
31566
31567         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
31568         directory separator.
31569
31570         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
31571         project being extended, if Languages is not declared in extending
31572         project.
31573
31574 2004-05-17  Javier Miranda  <miranda@gnat.com>
31575
31576         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
31577         limited view of a visible sibling.
31578
31579 2004-05-14  Robert Dewar  <dewar@gnat.com>
31580
31581         * gnat_ugn.texi: Minor change to -gnatS documentation
31582
31583         * sprint.adb: Remove some instances of Assert (False) and for this
31584         purpose replace them by output of a ??? string.
31585
31586         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
31587         Assert (False).
31588
31589         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
31590         flag processing. This was suppressing required dependencies in
31591         No_Run_Time mode and is not needed since the binder does not generate
31592         references for things in libgnat anyway.
31593
31594         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
31595         warning.
31596
31597 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
31598
31599         * gnat_ugn.texi: Document AIX-specific issue with initialization of
31600         resolver library.
31601
31602         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
31603         action for the case of an actual parameter in an init proc call.
31604
31605 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
31606
31607         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
31608         subtype, check visible entities in base type.
31609
31610         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
31611         actions if the object is a renaming.
31612
31613         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
31614         Check_Formal_Package_Instance, to determine more precisely when the
31615         formal and the actual denote the same entity.
31616
31617 2004-05-14  Javier Miranda  <miranda@gnat.com>
31618
31619         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
31620
31621         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
31622         corresponding to a private_with must be removed from visibility; it
31623         will be made visible later, just before we analyze the private part of
31624         the package.
31625         (Check_Private_Child_Unit): Allow private_with clauses in public
31626         siblings.
31627         (Install_Siblings): Make visible the private entities of private-withed
31628         siblings.
31629         (Install_Withed_Unit): Do not install the private withed unit if we
31630         are compiling a package declaration and the Private_With_OK flag was
31631         not set by the caller. These declarations will be installed later,
31632         just before we analyze the private part of the package.
31633
31634         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
31635         during the evaluation of the expression that initializes the object,
31636         decorate it with the expected type to avoid cascade errors.
31637         Code cleanup.
31638
31639         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
31640         subprogram we have to install the private_with clauses after its
31641         specification has been analyzed (as documented in AI-262.TXT).
31642
31643         * sem_ch8.adb (Has_Private_With): New function. Determines if the
31644         current compilation unit has a private with on a given entity.
31645         (Find_Direct_Name): Detect the Beaujolais problem described in
31646         AI-262.TXT
31647
31648         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
31649         provides the functionality of the function Is_Ancestor that was
31650         previously available in sem_ch10. It has been renamed to avoid
31651         overloading.
31652
31653         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
31654
31655 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31656
31657         * utils.c (build_vms_descriptor): Use SImode pointers.
31658
31659 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
31660
31661         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
31662
31663 2004-05-14  GNAT Script  <nobody@gnat.com>
31664
31665         * Make-lang.in: Makefile automatically updated
31666
31667 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
31668
31669         Renaming of target specific files for clarity
31670
31671         * Makefile.in: Rename GNAT target specific files.
31672
31673         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
31674         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
31675         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
31676         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
31677         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
31678         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
31679         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
31680         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
31681         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
31682         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
31683         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
31684         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
31685         51osinte.adb, 51osinte.ads, 51system.ads,
31686         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
31687         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
31688         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
31689         56tpopsp.adb, 57system.ads, 58system.ads,
31690         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
31691         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
31692         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
31693         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
31694         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
31695         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
31696         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
31697         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
31698         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
31699         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
31700         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
31701         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
31702         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
31703         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
31704         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
31705         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
31706         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
31707         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
31708         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
31709         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
31710         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
31711         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
31712         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
31713         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
31714         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
31715         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
31716         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
31717         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
31718         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
31719         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
31720         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
31721         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
31722         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
31723         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
31724         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
31725         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
31726         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
31727         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
31728         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
31729         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
31730
31731         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
31732         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
31733         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
31734         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
31735         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
31736         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
31737         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
31738         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
31739         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
31740         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
31741         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
31742         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
31743         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
31744         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
31745         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
31746         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
31747         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
31748         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
31749         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
31750         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
31751         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
31752         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
31753         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
31754         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
31755         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
31756         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
31757         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
31758         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
31759         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
31760         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
31761         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
31762         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
31763         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
31764         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
31765         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
31766         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
31767         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
31768         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
31769         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
31770         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
31771         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
31772         s-osinte-vms.ads, s-osinte-vxworks.adb,
31773         s-osinte-vxworks.ads, s-osprim-mingw.adb,
31774         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
31775         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
31776         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
31777         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
31778         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
31779         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
31780         s-stchop-vxworks.adb, s-taprop-dummy.adb,
31781         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
31782         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
31783         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
31784         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
31785         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
31786         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
31787         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
31788         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
31789         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
31790         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
31791         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
31792         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
31793         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
31794         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
31795         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
31796         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
31797         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
31798         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
31799         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
31800         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
31801         system-irix-o32.ads, system-linux-x86_64.ads,
31802         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
31803         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
31804         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
31805         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
31806         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
31807         system-vxworks-mips.ads, system-vxworks-ppc.ads,
31808         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
31809         above.
31810
31811 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
31812
31813         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
31814
31815 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
31816
31817         Merge from tree-ssa-20020619-branch.
31818
31819         * config-lang.in (boot_language, build_by_default): Set
31820         to no.
31821         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
31822         (max_size): Add static chain op for call_expr.
31823
31824 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
31825
31826         PR target/15331
31827         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
31828
31829 2004-05-11  Roger Sayle  <roger@eyesopen.com>
31830
31831         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
31832         COND_EXPR.
31833
31834 2004-05-10  Doug Rupp  <rupp@gnat.com>
31835
31836         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
31837         system.aux_dec.
31838
31839         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
31840
31841         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
31842
31843         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
31844         Fixes undefined symbols in IA64 gnatlib.
31845
31846         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
31847
31848         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
31849         Short_Address). This will be moved to system.auxdec.
31850
31851 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
31852
31853         * sem_util.adb: Replace test for presence of a node that is always
31854         present with a call to Discard_Node.
31855
31856         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
31857         Analyze on the library unit node after generation of distribution stub
31858         constructs.  The call was a no-op because Unit_Node has already been
31859         Analyzed, and the tree fragments for the distribution stubs are
31860         analyzed as they are inserted in Exp_Dist.
31861         Update comment regarding to distribution stubs to reflect that we
31862         do not generate stub in separate files anymore.
31863
31864         * einfo.ads: Clarify the fact that a tagged private type has the
31865         E_Record_Type_With_Private Ekind.
31866
31867         * erroutc.adb: Minor reformatting
31868
31869         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
31870         values if line length is increased using -gnatyM (noticed during code
31871         reading).
31872
31873         * eval_fat.adb: Minor reformatting
31874         Put spaces around exponentiation operator
31875
31876 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
31877
31878         PR ada/15005
31879         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
31880         has been rewritten as an explicit dereference, retrieve type of
31881         original node to check for possibly unconstrained record type.
31882
31883 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
31884
31885         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
31886         overriding, use the operation of the parent unconditionally.
31887
31888         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
31889         operation when either operand is a literal, to avoid further
31890         ambiguities.
31891
31892         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
31893         overridden by a previous explicit declaration, mark the previous entity
31894         as overriding.
31895
31896         * sem_disp.adb (Check_Dispatching_Operation): New predicate
31897         Is_Visibly_Controlled, to determine whether a declaration of a
31898         primitive control operation for a derived type overrides an inherited
31899         one. Add warning if the explicit declaration does not override.
31900
31901 2004-05-10  Vincent Celier  <celier@gnat.com>
31902
31903         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
31904         some cases when the sources are no longer present.
31905
31906         * make.adb (Collect_Arguments): Fail if an external source, not part
31907         of any project need to be compiled, when switch -x has not been
31908         specified.
31909
31910         * makeusg.adb: Document new switch -x
31911
31912         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
31913         defaulted to False.
31914
31915         * switch-m.adb (Scan_Make_Switches): New switch -x
31916
31917         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
31918         gnatmake switch -x.
31919
31920         * gnat_ugn.texi: Document new gnatmake switch -x
31921
31922 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
31923
31924         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
31925
31926         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
31927         (process_attributes): Likewise.
31928
31929 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
31930
31931         * s-inmaop.ads: Fix spelling mistake in one of the comments.
31932
31933 2004-05-10  Robert Dewar  <dewar@gnat.com>
31934
31935         * gnat_ugn.texi: Document that for config pragma files, the maximum
31936         line length is always 32767.
31937
31938         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
31939         literals is now allowed.
31940
31941         * gnat-style.texi: Remove statement about splitting long lines before
31942         an operator rather than after, since we do not follow this rule at all.
31943         Clarify rule (really lack of rule) for spaces around exponentiation
31944
31945         * sem_elim.adb: Allow concatenation of string literals as well as a
31946         single string literal for pragma arguments.
31947
31948         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
31949
31950         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
31951         written for append case.
31952
31953         * frontend.adb: Changes to avoid checking max line length in config
31954         pragma files.
31955
31956         * g-os_lib.ads: Minor reformatting
31957
31958         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
31959         wrong in any case. Instead use standard value. Noticed during code
31960         reading.
31961
31962         * opt.ads (Max_Line_Length): New field, used to implement removal of
31963         limitation on length of lines when scanning config pragma files.
31964
31965         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
31966         makeutl.ads, makeutl.adb: Minor reformatting
31967
31968         * scn.adb: Do not check line length while scanning config pragma files
31969         Do not check line length while scanning out license information
31970
31971         * scng.adb: Changes to avoid line length checks while parsing config
31972         pragma files.
31973
31974 2004-05-10  GNAT Script  <nobody@gnat.com>
31975
31976         * Make-lang.in: Makefile automatically updated
31977
31978 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
31979
31980         * osint.adb (Find_Program_Name): Fix handling of VMS version
31981         number.
31982
31983 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
31984
31985         * g-os_lib.ads (Invalid_Time): New constant
31986
31987         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
31988         return OS_Time instead of time_t to match what is imported by Ada.
31989         Now return -1 if the file doesn't exist, instead of a random value
31990
31991 2004-05-05  Robert Dewar  <dewar@gnat.com>
31992
31993         * usage.adb: Add line for -gnatR?s switch
31994
31995         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
31996
31997         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
31998         and for Match (Data_First, Data_last)
31999
32000         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
32001         written when we are dealing with multi-unit files.
32002
32003 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
32004
32005         * Makefile.in: Remove unused targets and variables.
32006
32007 2004-05-05  Vincent Celier  <celier@gnat.com>
32008
32009         * switch-m.adb: New gnatmake switch -eI
32010
32011         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
32012         of new gnatmake switch -eInnn.
32013
32014         * makegpr.adb: Take into account new parameters Index and Src_Index in
32015         Prj.Util.
32016
32017         * clean.adb: Implement support for multi-unit sources, including new
32018         switch -i.
32019
32020         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
32021         Src_Index.
32022
32023         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
32024         (Extract_From_Q): New out parameter Index
32025         (Mark, Is_Marked): Subprograms moved to Makeutl
32026         (Switches_Of): New parameter Source_Index
32027         (Add_Switch): New parameter Index
32028         (Check): New parameter Source_Index
32029         (Collect_Arguments): New parameter Source_Index
32030         (Collect_Arguments_And_Compile): New parameter Source_Index
32031         (Compile): New parameter Source_Index
32032         Put subprograms in alphabetical order
32033         Add support for multi-source sources, including in project files.
32034
32035         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
32036         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
32037         Make.
32038
32039         * makeusg.adb: New gnatmake switch -eInnn
32040
32041         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
32042         Prj.Util.Value_Of.
32043
32044         * opt.ads (Main_Index): New variable, defaulted to 0.
32045
32046         * osint.ads, osinte.adb (Add_File): New parameter Index
32047         (Current_Source_Index): New function
32048
32049         * prj.adb: Take into account new components Index and Src_Index
32050
32051         * prj.ads (String_Element): New component Index
32052         (Variable_Value): New component Index
32053         (Array_Element): New component Src_Index
32054
32055         * prj-attr.adb: Indicate that optional index may be specified for
32056         attributes Main, Executable, Spec, Body and some of Switches.
32057
32058         * prj-attr.ads (Attribute_Kind): New values for optional indexes
32059         (Attribute_Record): New component Optional_Index
32060
32061         * prj-com.ads (File_Name_Data): New component Index
32062
32063         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
32064
32065         * prj-env.adb (Put): Output optional index
32066
32067         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
32068         attributes Spec and Body.
32069
32070         * prj-nmsc.adb: Process optional indexes
32071
32072         * prj-pp.adb: Ouput "at" for optional indexes
32073
32074         * prj-proc.adb: Take into account optional indexes
32075
32076         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
32077         Optional_Index. For string literal,
32078         process optional index when Optional_Index is True.
32079         (Parse_Expresion): New Boolean parameter Optional_Index
32080
32081         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
32082         (Set_Source_Index_Of): New procedure
32083
32084         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
32085         index.
32086
32087         * prj-util.ads (Executable_Of): New parameter Index
32088         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
32089         New parameter Src_Index, defaulted to 0.
32090
32091 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
32092
32093         PR ada/15257
32094         * sem_ch3.adb (Access_Definition): If this is an access parameter
32095         whose designated type is imported through a limited_with clause, do
32096         not add the enclosing subprogram to the list of private dependents of
32097         the type.
32098
32099 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
32100
32101         PR ada/15258
32102         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
32103         a limited_with clause, and the other is its non-limited view.
32104
32105 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
32106
32107         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
32108
32109         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
32110         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
32111         Stand.Boolean_Literals to produce references to entities
32112         Standard_False and Standard_True from compile-time computed boolean
32113         values.
32114
32115         * stand.ads (Boolean_Literals): New variable, provides the entity
32116         values for False and True, for use by the expander.
32117
32118 2004-05-05  Doug Rupp  <rupp@gnat.com>
32119
32120         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
32121         5vinmaop.adb: Unchecked convert Short_Address vice Address
32122
32123         * adaint.c, raise.c: Caste CRTL function return value
32124         to avoid gcc error on 32/64 bit IVMS.
32125
32126         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
32127         target = IA64/VMS.
32128
32129         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
32130
32131         * 5qsystem.ads (Address): Declare as Long_Integer
32132         (Short_Address): Declare as 32 bit subtype of Address
32133         Declare  abstract address operations to avoid gratuitous ambiguities.
32134
32135 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
32136
32137         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
32138         instead of the old Boolean_Entry_Barriers.
32139         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
32140
32141 2004-05-05  GNAT Script  <nobody@gnat.com>
32142
32143         * Make-lang.in: Makefile automatically updated
32144
32145 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
32146
32147         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
32148
32149 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
32150
32151         PR ada/15152
32152         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
32153         alone. Replacing object references by literals is inappropriate in a
32154         so low level context.
32155
32156 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
32157
32158         * a-exexpr.adb: Add comments
32159
32160 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
32161
32162         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
32163         declare the Ancestor_Tags array in Type_Specific_Data with a small size
32164         without risking a bounds check error when accessing one of its
32165         components.
32166         (Type_Specific_Data): Define Ancestor_Tags as a small array.
32167         This prevents us from hitting a limitation during the debug info
32168         generation when using stabs.
32169
32170         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
32171         small array.
32172         This prevents us from hitting a limitation during the debug info
32173         generation when using stabs.
32174
32175 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
32176
32177         lang-specs.h: Remove -gnatz* from specs.
32178
32179 2004-05-03  Vincent Celier  <celier@gnat.com>
32180
32181         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
32182
32183         * Make-lang.in, Makefile.in: Add gprmake
32184
32185 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
32186
32187         * sem_aggr.adb: Fix typo in comment.
32188
32189 2004-05-03  Robert Dewar  <dewar@gnat.com>
32190
32191         * make.adb: Minor reformatting
32192
32193         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
32194
32195         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
32196         so that it works when address is not a private type.
32197
32198         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
32199         properly with rewritten unchecked conversions. This prevents
32200         order-of-elaboration issues that can otherwise arise.
32201         (Minimum_Size): Don't check size of access types under VMS
32202
32203         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
32204         interpretations of integer literals as type System.Address.
32205
32206         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
32207         (Is_Descendent_Of): New function
32208
32209 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
32210
32211         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
32212         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
32213         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
32214
32215         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
32216         of the old Max_Entry_Queue_Depth.
32217
32218         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
32219         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
32220         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
32221
32222         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
32223         New entry for proper handling of Max_Entry_Queue_Depth.
32224         New entry for proper handling of No_Dynamic_Interrupts.
32225
32226         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
32227         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
32228         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
32229         the GNAT specific restriction Max_Entry_Queue_Depth.
32230         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
32231         the GNAT specific restriction No_Dynamic_Interrupts.
32232
32233         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
32234         instead of the old Boolean_Entry_Barriers.
32235         Use the new restriction No_Dynamic_Attachment instead of the old
32236         No_Dynamic_Interrupts.
32237
32238         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
32239         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
32240
32241         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
32242         of the old Max_Entry_Queue_Depth.
32243
32244 2004-05-03  GNAT Script  <nobody@gnat.com>
32245
32246         * Make-lang.in: Makefile automatically updated
32247
32248 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
32249
32250         * checks.adb (Enable_Range_Check): If the prefix of an index component
32251         is an access to an unconstrained array, perform check unconditionally.
32252
32253 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32254
32255         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
32256         Component_Clause.
32257
32258 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
32259
32260         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
32261         alternate stack setting. There was no support for the tasking cases
32262         and the changes eventually caused a number of side-effect failures in
32263         the non-tasking case too.
32264
32265 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
32266
32267         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
32268         -gnats is passed.
32269
32270 2004-04-29  Vincent Celier  <celier@gnat.com>
32271
32272         * make.adb (Gnatmake): Increase max size of argument array for
32273         gnatbind for the potential addition of -F.
32274         If there are Stand-Alone Library projects, invoke gnatbind with -F to
32275         be sure that elaboration flags will be checked.
32276
32277         * switch-c.adb: Correct call to Scan_Pos for -gnateI
32278
32279 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
32280
32281         * sem_warn.adb (Check_References): Move '<access-variable> may be
32282         null' warning out of under Warn_On_No_Value_Assigned.
32283
32284 2004-04-29  Ed Falis  <falis@gnat.com>
32285
32286         * gnat_ugn.texi: Fixed texi error
32287
32288 2004-04-29  Robert Dewar  <dewar@gnat.com>
32289
32290         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
32291         abstract operations if they come from predefined files.
32292
32293         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
32294         Dynamic, not RM).
32295
32296         * s-addope.adb: Correct obvious error in mod function
32297
32298 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
32299
32300         * Makefile.in: Add target pairs for powerpc darwin*
32301         tasking support.
32302
32303         * a-intnam-darwin.ads, s-osinte-darwin.adb,
32304         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
32305
32306 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
32307
32308         * Makefile.in: Add target macro definitions for s390*-linux*.
32309         * system-linux-s390.ads: New file.
32310         * system-linux-s390x.ads: New file.
32311
32312 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
32313
32314         * gnat_ugn.texi: Correct argument to @setfilename.
32315
32316 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
32317
32318         * a-exexpr.adb (Unwind_Word): New data type.
32319         (Unwind_Exception): Use it as type of Private1 and Private2.
32320
32321         * raise.c (db_action_for): Fix debug printf.
32322
32323 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
32324
32325         * a-wtmoio.ads: Formal type must be a modular type, not a signed
32326         integer type.
32327
32328 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32329
32330         * decl.c (gnat_to_gnu_entity, case object): Call
32331         __builtin_update_setjmp_buf.
32332
32333         * gigi.h (update_setjmp_buf): Deleted.
32334         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
32335
32336         * misc.c: (update_setjmp_buf): Deleted.
32337
32338         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
32339         around block of RTL.
32340
32341         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
32342
32343 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
32344
32345         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
32346         subprogram for which no pragma All_Calls_Remote applies, store the
32347         address of the real subprogram in the underlying record type, so local
32348         dereferences do not go through the PCS.
32349
32350 2004-04-26  Robert Dewar  <dewar@gnat.com>
32351
32352         * i-c.ads: Add some type qualifications to avoid ambiguities when
32353         compiling with s-auxdec.ads and a non-private address type.
32354
32355 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
32356
32357         * Makefile.rtl: Fix error in previous check-in:
32358         Add s-addope.o to non tasking object list (rather than tasking object
32359         list).
32360
32361 2004-04-26  Javier Miranda  <miranda@gnat.com>
32362
32363         * sem_aggr.adb: Fix typo in comments
32364         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
32365         Required to check the null-exclusion attribute.
32366
32367         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
32368         case of anonymous access types in record and array components. For a
32369         component definition the level is the same of the enclosing composite
32370         type.
32371
32372         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
32373         that are anonymous access types the level of accessibility depends on
32374         the enclosing type declaration. In order to have this information, set
32375         the scope of the anonymous access type to the enclosing record type
32376         declaration.
32377         (Array_Type_Declaration): In case of components that are anonymous
32378         access types the level of accessibility depends on the enclosing type
32379         declaration. In order to have this information, set the scope of the
32380         anonymous access type to the enclosing array type declaration.
32381
32382         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
32383         access type.
32384
32385         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
32386         renaming of anonymous access-to-constant types allowed if and only if
32387         the renamed object is access-to-constant.
32388
32389         * sem_util.adb (Type_Access_Level): In case of anonymous access types
32390         that are component_definition or discriminants of a nonlimited type,
32391         the level is the same as that of the enclosing component type.
32392
32393 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
32394
32395         * sem_elim.adb: Some minor code reorganization from code reading. Fix
32396         misprint in the function name (File_Name_Match).
32397
32398 2004-04-23  Laurent Guerby  <laurent@guerby.net>
32399
32400         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
32401         install.
32402
32403 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
32404
32405         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
32406
32407 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
32408
32409         * adaint.c (__gnat_try_lock): No longer requires that the parent
32410         directory be writable, the directory itself is enough.
32411         (gnat_is_absolute_path): Change profile, so that the call from
32412         GNAT.OS_Lib can be made more efficient.
32413
32414         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
32415         from GNAT.OS_Lib can be made more efficient.
32416
32417         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
32418         one copy of the file name. Found by code reading.
32419
32420 2004-04-23  Vincent Celier  <celier@gnat.com>
32421
32422         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
32423         Correct documentation on gnatmake switches transmitted to the compiler
32424
32425         * ali.ads: Minor comment fix
32426
32427 2004-04-23  Javier Miranda  <miranda@gnat.com>
32428
32429         * sem_ch6.adb: (Confirming Types): Code cleanup
32430
32431         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
32432         subprogram types: E_Anonymous_Access_Subprogram_Type and
32433         E_Anonymous_Access_Protected_Subprogram_Type.
32434
32435 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
32436
32437         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
32438         whether a pragma All_Calls_Remote applies to the subprogram on which
32439         'Access is taken.
32440         No functional change is introduced by this revision; the new parameter
32441         will be used to allow calls to local RCI subprograms to be optimized
32442         to not use the PCS in the case where no pragma All_Calls_Remote applies,
32443         as is already done in the PolyORB implementation of the DSA.
32444
32445         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
32446         whether a pragma All_Calls_Remote applies to the subprogram on which
32447         'Access is taken.
32448         No functional change is introduced by this revision; the new parameter
32449         will be used to allow calls to local RCI subprograms to be optimized
32450         to not use the PCS in the case where no pragma All_Calls_Remote applies,
32451         as is already done in the PolyORB implementation of the DSA.
32452
32453 2004-04-23  Robert Dewar  <dewar@gnat.com>
32454
32455         * Makefile.rtl: Add entry for s-addope.o in run time library list
32456         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
32457         * s-addope.ads, s-addope.adb: New files.
32458
32459         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
32460         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
32461         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
32462         System.Address to be non-private and signed.
32463
32464         * sem_elim.adb: Minor reformatting (fairly extensive)
32465         Some minor code reorganization from code reading
32466         Add a couple of ??? comments
32467
32468 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32469
32470         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
32471         (tree_transform, case N_If_Statement): Remove non-determinism.
32472
32473         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
32474
32475 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
32476
32477         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
32478         Eliminate' section.
32479
32480         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
32481         no longer used as a parameter name for Eliminate pragma).
32482
32483 2004-04-22  Laurent Guerby  <laurent@guerby.net>
32484
32485         PR optimization/14984
32486         PR optimization/14985
32487         * trans.c (gigi): Fix non determinism leading to bootstrap
32488         comparison failures.
32489
32490 2004-04-21  Pascal Obry  <obry@gnat.com>
32491
32492         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
32493         passed to spawnvp() to properly handle program pathname with spaces on
32494         Win32.
32495
32496 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
32497
32498         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
32499         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
32500         unlocked in case of exceptions.
32501
32502 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
32503
32504         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
32505         This function does not exist anymore.
32506
32507 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
32508
32509         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
32510
32511         * link.c: Move variables to the __gnat name space.
32512
32513         * Makefile.in: list link.o explicitly when needed.
32514
32515         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
32516
32517 2004-04-21  Javier Miranda  <miranda@gnat.com>
32518
32519         * einfo.adb (Original_Access_Type): New subprogram
32520         (Set_Original_Access_Type): New subprogram
32521         (Write_Field21_Name): Write the name of the new field
32522
32523         * einfo.ads (Original_Access_Type): New field present in access to
32524         subprogram types.
32525         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
32526         E_Anonymous_Access_Protected_Subprogram_Type.
32527
32528         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
32529         subprogram types.
32530
32531         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
32532         to anonymous access to subprogram types.
32533
32534         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
32535         to subprogram types.
32536
32537         * sem_ch3.adb (Access_Definition): Complete decoration of entities
32538         corresponding to anonymous access to subprogram types.
32539         (Analyze_Component_Declaration): Add new actual to the call to
32540         subprogram replace_anonymous_access_to_protected_subprogram.
32541         (Array_Type_Declaration): Add new actual to the call to subprogram
32542         replace_anonymous_access_to_protected_subprogram.
32543         (Process_Discriminants): Add new actual to the call to subprogram
32544         replace_anonymous_access_to_protected_subprogram.
32545         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
32546
32547         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
32548         formal.
32549
32550         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
32551         access to subprogram types.
32552
32553         * sem_util.adb (Has_Declarations): Addition of package_specification
32554         nodes.
32555
32556 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
32557
32558         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
32559         inlined flags to renamed entity only if in current unit.
32560
32561 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
32562
32563         * s-parint.ads: Add DSA implementation marker.
32564
32565         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
32566         value of System.Partition_Interface.DSA_Implementation to determine
32567         what version of the distributed systems annex is available (no
32568         implementation, GLADE, or PolyORB).
32569
32570 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
32571
32572         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
32573
32574 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32575
32576         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
32577         with new type if alias sets differ.
32578         Fixes ACATS c41103b.
32579
32580 2004-04-21  Vincent Celier  <celier@gnat.com>
32581
32582         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
32583         Add array Lang_Args for the language specific compiling argument
32584         switches.
32585
32586         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
32587
32588 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
32589
32590         * gnat_rm.texi: Update the descripton of the Eliminate pragma
32591         according to the recent changes in the format of the parameters of the
32592         pragma (replacing Homonym_Number with Source_Location).
32593
32594 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
32595
32596         * 5isystem.ads: Removed, unused.
32597
32598         * gnat_rm.texi: Redo 1.13 change.
32599
32600 2004-04-19  Robert Dewar  <dewar@gnat.com>
32601
32602         * s-stoele.ads: Clean up definition of Storage_Offset (the new
32603         definition is cleaner, avoids the kludge of explicit Standard operator
32604         references, and also is consistent with a visible System.Address with
32605         no visible operations.
32606
32607         * s-geveop.adb: Add declarations to avoid assumption of visible
32608         operations on type System.Address (since these might not be available
32609         if Address is a non-private type for which the operations
32610         are made abstract).
32611
32612         * sem_eval.adb: Minor reformatting
32613
32614         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
32615         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
32616         reformatting (new function spec format).
32617
32618         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
32619         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
32620         s-caun64.adb: Add declarations to avoid assumption of visible
32621         operations on type System.Address (since these might not be available
32622         if Address is a non-private type for which the operations are made
32623         abstract).
32624
32625         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
32626
32627         * exp_intr.adb: Minor comment update
32628
32629         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
32630
32631         * 5omastop.adb: Add declarations to avoid assumption of visible
32632         operations on type System.Address (since these might not be available
32633         if Address is a non-private type for which the operations
32634         are made abstract).
32635
32636 2004-04-19  Vincent Celier  <celier@gnat.com>
32637
32638         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
32639
32640         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
32641         defaulted to Ada.
32642
32643         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
32644         defaulted to Ada.
32645         Call Check with Process_Languages.
32646         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
32647         with Process_Languages.
32648         (Recursive_Check): New Boolean parameter Process_Languages. Call
32649         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
32650         Process_Languages.
32651
32652         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
32653
32654         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
32655         parameter Ada_Main, defaulted to True.
32656         Check for Ada specific characteristics only when Ada_Main is True.
32657
32658         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
32659
32660         * prj.adb: (Project_Empty): Add new Project_Data components.
32661
32662         * prj.ads: New types and tables for non Ada languages.
32663         (Project_Data): New components Languages, Impl_Suffixes,
32664         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
32665         Include_Path, Include_Data_Set.
32666
32667         * prj-env.ads, prj-env.adb: Minor reformatting
32668
32669         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
32670         Put subprograms in alphabetical order
32671
32672         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
32673         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
32674         Opt.Follow_Links.
32675
32676         * mlib-prj.adb: Back out modification in last version, as they are
32677         incorrect.
32678         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
32679
32680         * make.adb: (Mains): Moved to package Makeutl
32681         (Linker_Opts): Moved to package Makeutl
32682         (Is_External_Assignment): Moved to package Makeutl
32683         (Test_If_Relative_Path): Moved to package Makeutl
32684         (Gnatmake): Move sorting of linker options to function
32685         Makeutl.Linker_Options_Switches.
32686
32687         * makeutl.ads, makeutl.adb: New files.
32688
32689         * Makefile.in: Add makeutl.o to the object files for gnatmake
32690
32691         * makeusg.adb: Add line for new switch -eL.
32692
32693         * gnatls.adb (Image): New function.
32694         (Output_Unit): If in verbose mode, output the list of restrictions
32695         specified by pragmas Restrictions.
32696
32697         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
32698         Text_IO.
32699
32700         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
32701         needed, to put it in the range 1970 (included) - 2026 (excluded).
32702         (Time_Of): Do not shift Unix_Min_Year (1970).
32703         Shift the date by multiple of 56 years, if needed, to put it in the
32704         range 1970 (included) - 2026 (excluded).
32705
32706         * adaint.h, adaint.c (__gnat_set_executable): New function.
32707
32708 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32709
32710         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
32711         and pop GC context.
32712         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
32713         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
32714         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
32715         (tree_transform, case N_Code_Statement): Likewise.
32716         (gnat_expand_stmt, case LABEL_STMT): Don't look at
32717         LABEL_STMT_FIRST_IN_EH.
32718         (gnat_expand_stmt, case ASM_STMT): New case.
32719
32720         * utils2.c (build_unary_op): Properly set TREE_READONLY of
32721         UNCONSTRAINED_ARRAY_REF.
32722
32723         * utils.c (poplevel): Temporarily push/pop GC context around inline
32724         function expansion.
32725
32726         * decl.c (maybe_variable): Properly set TREE_READONLY of
32727         UNCONSTRAINED_ARRAY_REF.
32728         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
32729
32730         * ada-tree.def: (ASM_STMT): New.
32731
32732         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
32733         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
32734         ASM_STMT_INPUT): New.
32735         (ASM_STMT_CLOBBER): Likewise.
32736
32737 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
32738
32739         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
32740         general rcheck mechanism to raise Program_Error for E.4(18), instead
32741         of a custom raiser in System.Partition_Interface.
32742         Part of general cleanup work before PolyORB integration.
32743
32744         * snames.ads, snames.adb: Add new runtime library entities and names
32745         for PolyORB DSA.
32746
32747         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
32748         exp_dist.
32749         (Build_Subprogram_Id): New subprogram provided by exp_dist
32750         Code reorganisation in preparation for PolyORB integration.
32751
32752         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
32753         exp_dist.
32754         (Build_Subprogram_Id): New subprogram provided by exp_dist
32755
32756         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
32757         actual parameter types for call to dereference of an
32758         access-to-subprogram type.
32759
32760         * rtsfind.ads: Add new runtime library entities and names for PolyORB
32761         DSA.
32762
32763         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
32764         instead, which has the same behaviour here since we never pass it a
32765         NULL pointer.
32766
32767         * link.c (run_path_option, Solaris case): Use -Wl, as for other
32768         platforms.
32769
32770         * Makefile.in: adjust object file lists for gnatlink and gnatmake
32771         to account for new dependency upon Interfaces.C.Strings + link.o
32772         For x86 FreeBSD, use 86numaux.
32773
32774         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
32775         from Mlib.Tgt to Mlib.
32776
32777         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
32778         target-independent.
32779
32780         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
32781         target-specific versions of this subprogram, now implemented as a
32782         target-independent function in Mlib.
32783
32784         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
32785         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
32786         (Linker_Library_Path_Option): Remove target-specific versions of this
32787         subprogram, now implemented as a target-independent function in Mlib.
32788
32789         * atree.adb: (Allocate_Initialize_Node): New subprogram.
32790         Factors out node table slots allocation.
32791         (Fix_Parents): New subprogram.
32792         Encapsulate the pattern of fixing up parent pointers for syntactic
32793         children of a rewritten node.
32794         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
32795         (Rewrite): Use New_Copy when creating saved copy of original node.
32796         (Replace): Use Copy_Node to copy nodes.
32797
32798 2004-04-19  Javier Miranda  <miranda@gnat.com>
32799
32800         * sprint.adb (Sprint_Node_Actual): Give support to the new
32801         Access_To_Subprogram node available in Access_Definition nodes. In
32802         addition, give support to the AI-231 node fields: null-exclusion,
32803         all-present, constant-present.
32804
32805         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
32806
32807         * sinfo.ads, sinfo.adb:
32808         New field Access_To_Subprogram_Definition in Access_Definition nodes
32809
32810         * sem_ch6.adb (Process_Formals): Move here the code that creates and
32811         decorates internal subtype declaration corresponding to the
32812         null-excluding formal. This code was previously in Set_Actual_Subtypes.
32813         In addition, carry out some code cleanup on this code. In case of
32814         access to protected subprogram call
32815         Replace_Anonymous_Access_To_Protected_Subprogram.
32816         (Set_Actual_Subtypes): Code cleanup.
32817
32818         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
32819         Find_Type in case of anonymous access renamings. Add warning in case of
32820         null-excluding attribute used in anonymous access renaming.
32821
32822         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
32823         subprogram
32824
32825         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
32826         subprogram.
32827         (Access_Definition): In case of anonymous access to subprograms call
32828         the corresponding semantic routine to decorate the node.
32829         (Access_Subprogram_Declaration): Addition of some comments indicating
32830         some code that probably should be added here. Detected by comparison
32831         with the access_definition subprogram.
32832         (Analyze_Component_Declaration): In case of access to protected
32833         subprogram call Replace_Anonymous_Access_To_Protected.
32834         (Array_Type_Declaration): In case of access to protected subprogram call
32835         Replace_Anonymous_Access_To_Protected_Subprogram.
32836         (Process_Discriminants): In case of access to protected subprogram call
32837         Replace_Anonymous_Access_To_Protected_Subprogram.
32838
32839         * par.adb (P_Access_Definition): New formal that indicates if the
32840         null-exclusion part was present.
32841         (P_Access_Type_Definition): New formal that indicates if the caller has
32842         already parsed the null-excluding part.
32843
32844         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
32845         (P_Identifier_Declarations): Code cleanup and give support to renamings
32846         of anonymous access to subprogram types.
32847         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
32848         (P_Array_Type_Definition): Give support to AI-254.
32849         (P_Component_Items): Give support to AI-254.
32850         (P_Access_Definition): New formal that indicates if the header was
32851         already parsed by the caller.
32852         (P_Access_Type_Definition): New formal that indicates if the caller has
32853         already parsed the null-excluding part.
32854
32855         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
32856         call to P_Access_Definition.
32857
32858 2004-04-19  Geert Bosch  <bosch@gnat.com>
32859
32860         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
32861         the delicate semantics of floating-point to integer conversion.
32862         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
32863
32864         * eval_fat.adb (Machine_Mantissa): Moved to spec.
32865         (Machine_Radix): New function.
32866
32867         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
32868         conversion checks.
32869         (Machine_Radix): New function also for use in conversion checks.
32870
32871 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
32872
32873         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
32874
32875         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
32876         to decorate the access-to-protected subprogram and the equivalent type.
32877
32878         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
32879         to anonymous access to subprogram types.
32880
32881         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
32882         constant-folding, for legality checks in contexts that require an RM
32883         static expression.
32884
32885         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
32886         temporary but stack checking is not enabled, increment serial number
32887         to so that symbol generation is consistent with and without stack
32888         checking.
32889
32890         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
32891         independent on whether stack checking is enabled, caller must check
32892         the corresponding flag.
32893
32894         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
32895         range checks.
32896         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
32897         parent if it has discriminants.
32898         (Build_Derived_Private_Type): Constructed full view does
32899         not come from source.
32900         (Process_Discriminants): Default discriminants on a tagged type are
32901         legal if this is the internal completion of a private untagged
32902         derivation.
32903
32904         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
32905         no constraint checks, because it corresponds to an existing object.
32906
32907         * sem_prag.adb (Process_Convention): Pragma applies
32908         only to subprograms in the same declarative part, i.e. the same unit,
32909         not the same scope.
32910
32911         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
32912         ignore type mismatch on a numeric conversion if expression comes from
32913         expansion.
32914
32915 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
32916
32917         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
32918         Homonym_Number parameter, add processing for Source_Location parameter
32919         corresponding.
32920         (Check_Eliminated): Remove the check for homonym numbers, add the check
32921         for source location traces.
32922
32923         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
32924         with Arg_Source_Location corresponding to the changes in the format of
32925         the pragma.
32926
32927         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
32928         Eliminate pragma corresponding to the changes in the format of the
32929         pragma: Homonym_Number is replaced with Source_Location, two ways of
32930         distinguishing homonyms are mutially-exclusive.
32931
32932 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
32933
32934         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
32935
32936         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
32937         No_Dollar_In_Label, no longer necessary, as it is always True.
32938         (Strip_Suffixes): Likewise.
32939
32940 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
32941
32942         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
32943         modulus for compatibility with size clause on targets with 16-bit
32944         Integer.
32945
32946         * layout.adb (Discrimify): In the case of private types, set Vtyp to
32947         full type to fix type mismatches on calls to size functions for
32948         discriminant-dependent array components.
32949
32950 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
32951
32952         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
32953         lib.
32954
32955 2004-04-19  Pascal Obry  <obry@gnat.com>
32956
32957         * mdll-utl.adb (Locate): New version is idempotent.
32958
32959 2004-04-17  Laurent Guerby  <laurent@guerby.net>
32960
32961         PR ada/14988 (partial)
32962         * impunit.adb: Fix typo.
32963
32964 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
32965
32966         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
32967         and install-rts-cert targets.  Remove all gnatlib and gnattools
32968         targets and all other rts-* targets (moved to libada).  Remove (now)
32969         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
32970         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
32971
32972 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32973
32974         * trans.c (tree_transform): Shortcut returning error_mark_node for
32975         statements in annotate_only_mode.
32976         (tree_transform, case N_Label, case N_Return_Statement,
32977         N_Goto_Statement): Make statement tree instead of generating code.
32978         (tree_transform, case N_Assignment_Statement): No longer check
32979         type_annotate_only.
32980         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
32981         RETURN_STMT): New.
32982         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
32983         New fcns.
32984         (gnat_to_gnu): Collect any RTL generated and deal with it.
32985         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
32986         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
32987         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
32988
32989         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
32990
32991         * ada-tree.def (EXPR_STMT): Fix typo in name.
32992         (BLOCK_STMT, IF_STMT): New nodes.
32993
32994         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
32995         LABEL_STMT_FIRST_IN_EH): New macros.
32996         (RETURN_STMT_EXPR): Likewise.
32997
32998         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
32999         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
33000
33001 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
33002
33003         * atree.ads: Correct documentation on extended nodes.
33004
33005         * link.c: Set run_path_option for FreeBSD.
33006
33007 2004-04-08  Vincent Celier  <celier@gnat.com>
33008
33009         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
33010         one of the ALI file, do not link with DEC lib.
33011
33012         * par.adb Remove the last two characters ("%s" or "%b") when checking
33013         if a language defined unit may be recompiled.
33014
33015 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
33016
33017         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
33018         removal of abstract operation leaves no possible interpretation for
33019         expression.
33020
33021         * sem_eval.adb (Eval_Qualified_Expression): Use
33022         Set_Raises_Constraint_Error on node when needed, so that it does not
33023         get optimized away by subsequent optimizations.
33024
33025         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
33026         operands even when they are not wrapped in a type conversion.
33027
33028 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
33029
33030         * sem_prag.adb (Set_Exported): Warn about making static as result of
33031         export only when the export is coming from source. This may be not
33032         be true e.g. on VMS where we expand export pragmas for exception codes
33033         together with imported or exported exceptions, and we don't want the
33034         user to be warned about something he didn't write.
33035
33036 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
33037
33038         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
33039         duplication between normal entities and those declared as renamings.
33040         No functional change.
33041
33042         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
33043         inline functions returning an unconstrained result.
33044
33045 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
33046
33047         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
33048         conform to what other front-ends do.
33049
33050 2004-04-08  Doug Rupp  <rupp@gnat.com>
33051
33052         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
33053         libraries.
33054
33055 2004-04-06  Pascal Obry  <obry@gnat.com>
33056
33057         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
33058
33059         * osint.adb (Program_Name): Do not look past a directory separator.
33060
33061 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
33062
33063         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
33064
33065         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
33066         requirement for preserving a copy of the original assignment node.
33067
33068         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
33069
33070 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
33071
33072         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
33073         when supported.
33074
33075 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
33076
33077         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
33078         operator calls in functional notation, and apply
33079         Universal_Interpretation to operands, not to their type.
33080
33081 2004-04-06  Robert Dewar  <dewar@gnat.com>
33082
33083         * 5wdirval.adb: Minor reformatting
33084
33085 2004-04-06  Ed Falis  <falis@gnat.com>
33086
33087         * gnat_rm.texi: Improve a reference to the GCC manual
33088
33089 2004-04-05  Vincent Celier  <celier@gnat.com>
33090
33091         * adaint.h, adaint.c: Add function __gnat_named_file_length
33092
33093         * impunit.adb: Add Ada.Directories to the list
33094
33095         * Makefile.in: Add VMS and Windows versions of
33096         Ada.Directories.Validity package body.
33097
33098         * Makefile.rtl: Add a-direct and a-dirval
33099
33100         * mlib-tgt.ads: Minor comment update.
33101
33102         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
33103         a-direct.ads, a-direct.adb: New files.
33104
33105 2004-04-05  Vincent Celier  <celier@gnat.com>
33106
33107         PR ada/13620
33108         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
33109         just to the compiler.
33110
33111 2004-04-05  Robert Dewar  <dewar@gnat.com>
33112
33113         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
33114         returned string is 1.
33115
33116         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
33117
33118         * eval_fat.ads: Minor reformatting
33119
33120         * g-curexc.ads: Document that lower bound of returned string values
33121         is always one.
33122
33123         * gnatlink.adb: Add ??? comment for previous change
33124         (need to document why this is VMS specific)
33125
33126         * s-stoele.ads: Minor reformatting
33127
33128         * tbuild.ads: Minor reformatting throughout (new function specs)
33129
33130         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
33131         after WITH.
33132
33133         * scng.adb: Minor reformatting
33134
33135 2004-04-05  Geert Bosch  <bosch@gnat.com>
33136
33137         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
33138         (Leading_Part): Still perform truncation to machine number if the
33139         specified radix_digits is greater or equal to machine_mantissa.
33140
33141 2004-04-05  Javier Miranda  <miranda@gnat.com>
33142
33143         * par-ch3.adb: Complete documentation of previous change
33144         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
33145         (aliased must appear before constant).
33146
33147         * par-ch4.adb: Complete documentation of previous change.
33148
33149         * par-ch6.adb: Complete documentation of previous change.
33150
33151         * sinfo.ads: Fix typo in commment.
33152
33153 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
33154
33155         * sem_ch3.adb (Inherit_Components): If derived type is private and has
33156         stored discriminants, use its discriminants to constrain parent type,
33157         as is done for non-private derived record types.
33158
33159         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
33160         Ada 2005 AI-310: an abstract non-dispatching operation is not a
33161         candidate interpretation in an overloaded call.
33162
33163         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
33164         expression is Null and target type is not an access type (e.g. a
33165         non-private address type).
33166
33167 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
33168
33169         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
33170         statement whose right-hand side is an inlined call, save a copy of the
33171         original assignment subtree to preserve enough consistency for
33172         Analyze_Assignment to proceed.
33173
33174         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
33175         complete assignment subtree which is now unnecessary, as the expansion
33176         of inlined call has been improved to preserve a consistent assignment
33177         tree.  Note_Possible_Modification must be called only
33178         after checks have been applied, or else unnecessary checks will
33179         be generated.
33180
33181         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
33182         of explicit dereferences that do not Come_From_Source:
33183          - be selective on cases where we must go back to the dereferenced
33184            pointer (an assignment to an implicit dereference must not be
33185            recorded as modifying the pointer);
33186          - do not rely on Original_Node being present (Analyze_Assignment
33187            calls Note_Possible_Modification on a copied tree).
33188
33189         * sem_warn.adb (Check_References): When an unset reference to a pointer
33190         that is never assigned is encountered, prefer '<pointer> may be null'
33191         warning over '<pointer> is never assigned a value'.
33192
33193 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
33194
33195         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
33196         the ABI.
33197
33198 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
33199
33200         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
33201         libexc. We currently don't reference anything in this library and
33202         linking it in triggers linker warnings we don't want to see.
33203
33204         * init.c: Update comments.
33205
33206 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33207
33208         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
33209         * utils.c (create_field_decl): Likewise.
33210         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
33211
33212 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
33213
33214         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
33215         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
33216         Add info directory entry and category.
33217
33218 2004-04-02  Jan Hubicka  <jh@suse.cz>
33219
33220         * utils.c: Include function.h
33221         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
33222
33223 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
33224
33225         PR ada/14150
33226         * Make-lang.in: Clean up generation of documentation
33227
33228         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
33229
33230         * xgnatug.adb: Removed, replaced by xgnatugn.adb
33231
33232         * xgnatugn.adb: Replaces xgnatug.adb
33233
33234         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
33235
33236         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
33237
33238         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
33239         gnat_ug_wnt.texi: Removed.
33240
33241 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
33242
33243         * utils2.c: Update copyright notice.
33244
33245 2004-04-01  Robert Dewar  <dewar@gnat.com>
33246
33247         * checks.adb: Minor reformatting throughout
33248         Note that prev checkin added RM reference to alignment warning
33249
33250 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
33251
33252         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
33253         non-static when building aggregate for bit-packed array.
33254
33255         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
33256         function call that is itself the actual in a procedure call, build
33257         temporary for it.
33258
33259         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
33260         a string literal, create a temporary for it, constant folding only
33261         handles scalars here.
33262
33263 2004-04-01  Vincent Celier  <celier@gnat.com>
33264
33265         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
33266         Error_Msg_SP): New empty procedures to instantiate the Scanner.
33267         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
33268         tokens.
33269         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
33270         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
33271         and get the checksum.
33272
33273         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
33274         already in the Q.
33275         Increase the Marking_Label at the end of the Multiple_Main_Loop,
33276         instead of at the beginning.
33277
33278         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
33279         directly.
33280         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
33281         on VMS.
33282
33283         * osint.ads (Multi_Unit_Index_Character): New Character global variable
33284
33285         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
33286         not '~' directly.
33287
33288         * par.adb: Remove test on file name to detect language defined units.
33289         Add test on unit name, after parsing, to detect language defined units
33290         that are not compiled with -gnatg (except System.RPC and its children)
33291
33292         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
33293         following units without style checking.
33294
33295         * switch-c.adb: Change -gnatC to -gnateI
33296
33297         * usage.adb: Document new switch -gnateInnn
33298
33299         * scng.adb (Accumulate_Token_Checksum): New procedure
33300         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
33301         word or literal number.
33302         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
33303         numbers.
33304
33305 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
33306
33307         * a-tasatt.adb,
33308         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
33309         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
33310         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
33311         5vtpopde.adb: Add missing 'constant' keywords.
33312
33313 2004-04-01  Javier Miranda  <miranda@gnat.com>
33314
33315         * par-ch4.adb: (P_Allocator): Code cleanup
33316
33317         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
33318         attribute.
33319
33320         * sinfo.ads: Complete documentation of previous change
33321
33322 2004-04-01  Pascal Obry  <obry@gnat.com>
33323
33324         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
33325         only on VMS.  This special handling was done because an old GNU/ld bug
33326         on Windows which has been fixed.
33327
33328 2004-04-01  GNAT Script  <nobody@gnat.com>
33329
33330         * Make-lang.in: Makefile automatically updated
33331
33332 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33333
33334         * decl.c (gnat_to_gnu_entity, make_type_from_size):
33335         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
33336         * trans.c (tree_transform, convert_with_check): Likewise.
33337         * utils.c (gnat_signed_or_unsigned_type): Likewise.
33338         (build_vms_descriptor, unchecked_convert): Likewise.
33339         * utils2.c (nonbinary_modular_operation): Likewise.
33340
33341 2004-03-29  Javier Miranda  <miranda@gnat.com>
33342
33343         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
33344         (Install_Null_Excluding_Check): Local subprogram that determines whether
33345         an access node requires a runtime access check and if so inserts the
33346         appropriate run-time check.
33347         (Apply_Access_Check): Call Install_Null_Excluding check if required
33348         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
33349
33350         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
33351
33352         * einfo.ads: Fix typo in comment
33353
33354         * exp_ch3.adb (Build_Assignment): Generate conversion to the
33355         null-excluding type to force the corresponding run-time check.
33356         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
33357         type to force the corresponding run-time check.
33358
33359         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
33360         the null-excluding type to force the corresponding run-time check.
33361
33362         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
33363         case of access types unless they have the null-excluding attribute.
33364
33365         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
33366         part.
33367
33368         * exp_util.ads: Fix typo in comment
33369
33370         * par.adb (P_Null_Exclusion): New subprogram
33371         (P_Subtype_Indication): New formal that indicates if the null-excluding
33372         part has been scanned-out and it was present
33373
33374         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
33375
33376         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
33377         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
33378         type to force the corresponding run-time check
33379         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
33380         components
33381         (Resolve_Array_Aggregate): Carry out some static checks
33382         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
33383
33384         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
33385         attribute must be set only if specified by means of the null-excluding
33386         part. In addition, we must also propagate the access-constant attribute
33387         if present.
33388         (Access_Subprogram_Declaration, Access_Type_Declaration,
33389         Analyze_Component_Declaration, Analyze_Object_Declaration,
33390         Array_Type_Declaration, Process_Discriminants,
33391         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
33392         and carry out some static checks.
33393         (Build_Derived_Access_Type): Set the null-excluding attribute
33394         (Derived_Type_Declaration, Process_Subtype): Carry out some static
33395         checks.
33396
33397         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
33398
33399         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
33400
33401         * sem_ch6.adb (Process_Formals): Carry out some static checks.
33402         (Set_Actual_Subtypes): Generate null-excluding subtype if the
33403         null-excluding part was present; it is not required to be done here in
33404         case of anonymous access types.
33405         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
33406         value.
33407
33408         * sem_res.adb (Resolve_Actuals): Carry out some static check
33409         (Resolve_Null): Allow null in anonymous access
33410
33411         * sinfo.adb: New subprogram Null_Exclusion_Present
33412         All_Present and Constant_Present available on access_definition nodes
33413
33414         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
33415         object_declaration, derived_type_definition, component_definition,
33416         discriminant_specification, access_to_object_definition,
33417         access_function_definition, allocator, access_procedure_definition,
33418         access_definition, parameter_specification, All_Present and
33419         Constant_Present flags available on access_definition nodes.
33420
33421 2004-03-29  Robert Dewar  <dewar@gnat.com>
33422
33423         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
33424         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
33425         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
33426         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
33427         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
33428         sem_prag.adb: Updates to handle multiple units/file
33429
33430         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
33431
33432         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
33433         sem_util.adb: Minor reformatting
33434
33435         * sem_ch12.adb: Add comment for previous change
33436
33437 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
33438
33439         * osint.adb (Executable_Prefix): Set Exec_Name to the current
33440         executable name when not initialized. Otherwise, use its current value.
33441
33442         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
33443         initialize it to another executable name than the current one. This
33444         allows to configure paths for an executable name (gnatmake) different
33445         from the current one (gnatdist).
33446
33447 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
33448
33449         * exp_ch6.adb (Expand_Call): A call to a function declared in the
33450         current unit cannot be inlined if it appears in the body of a withed
33451         unit, to avoid order of elaboration problems in gigi.
33452
33453         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
33454         information for protected (wrapper) operation as well, to simplify gdb
33455         use.
33456
33457         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
33458         protected body, indicate that the entity for the generated spec comes
33459         from source, to ensure that references are properly generated for it.
33460         (Build_Body_To_Inline): Do not inline a function that returns a
33461         controlled type.
33462
33463         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
33464         apply convention to homonyms that are declared explicitly.
33465
33466         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
33467         that renames an equality operator and the operands are overloaded,
33468         resolve them with the declared formal types, before rewriting as an
33469         operator.
33470
33471 2004-03-29  GNAT Script  <nobody@gnat.com>
33472
33473         * Make-lang.in: Makefile automatically updated
33474
33475 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
33476
33477         * memtrack.adb: Log realloc calls, which are treated as free followed
33478         by alloc.
33479
33480 2004-03-25  Vincent Celier  <celier@gnat.com>
33481
33482         * prj-makr.adb (Process_Directories): Detect when a file contains
33483         several units. Do not include such files in the config pragmas or
33484         in the naming scheme.
33485
33486         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
33487         Resolve links only when not in Trusted_Mode.
33488         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
33489         Do not resolve links for the display names.
33490
33491         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
33492         resolve links when computing the display names.
33493
33494 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
33495
33496         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
33497         attribute reference does not denote a subtype, it can be any
33498         expression that has a classwide type, potentially after an implicit
33499         dereference.  In particular, the prefix can be a view conversion for
33500         a classwide type (for which Is_Object_Reference holds), but it can
33501         also be a value conversion for an access-to-classwide type. In the
33502         latter case, there is an implicit dereference, and the original node
33503         for the prefix does not verify Is_Object_Reference.
33504
33505         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
33506         conversion of a discriminant-dependent component of a mutable object
33507         is one itself.
33508
33509 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
33510
33511         * freeze.adb (Freeze_Entity): When an inherited subprogram is
33512         inherited, has convention C, and has unconstrained array parameters,
33513         place the corresponding warning on the derived type declaration rather
33514         than the original subprogram.
33515
33516         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
33517         indication on renaming declaration, if formal has a box and actual
33518         is absent.
33519
33520         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
33521         determine whether to generate an implicit or explicit reference to
33522         the renamed entity.
33523
33524         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
33525         subprogram renaming comes from a defaulted formal subprogram in an
33526         instance.
33527
33528 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
33529
33530         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
33531         value expressions to ensure that calls within a component definition
33532         will be checked (since those are evaluated during the record type's
33533         elaboration).
33534
33535 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
33536
33537         * s-tpobop.adb: Code clean up:
33538         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
33539         code.
33540         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
33541
33542 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
33543
33544         * Makefile.in: Clean up in the ravenscar run time.
33545
33546 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33547
33548         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
33549         of No_Strict_Aliasing to build_pointer_type_for_mode.
33550         * utils.c (update_pointer_to): Walk pointer and ref chains.
33551
33552 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
33553
33554         * ali.ads: Fix Comment about Dynamic_Elab.
33555
33556         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
33557         Has_RACW, Is_Generic, etc.)
33558         (Output_Object, Gnatls): Take into account ALI files not attached to
33559         an object.
33560
33561 2004-03-22  Vincent Celier  <celier@gnat.com>
33562
33563         * gprep.adb: Change all String_Access to Name_Id
33564         (Is_ASCII_Letter): new function
33565         (Double_File_Name_Buffer): New procedure
33566         (Preprocess_Infile_Name): New procedure
33567         (Process_Files): New procedure
33568         (Gnatprep): Check if output and input are existing directories.
33569         Call Process_Files to do the real job.
33570
33571 2004-03-22  Robert Dewar  <dewar@gnat.com>
33572
33573         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
33574         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
33575
33576 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
33577
33578         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
33579         case when the source contains only comments.
33580
33581 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
33582
33583         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
33584         declaration for a child subprogram body that acts as a spec, indicate
33585         that the entity in the declaration needs debugging information.
33586
33587         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
33588         full view if the subtype is created for a constrained record component;
33589         gigi has enough information to construct the record, and there is no
33590         place in the tree for the declaration.
33591
33592         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
33593         serial number for the dummy body that is built for analysis, to avoid
33594         inconsistencies in the generation of internal names when compiling
33595         with -gnatN.
33596
33597 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
33598
33599         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
33600         object.
33601
33602 2004-03-22  GNAT Script  <nobody@gnat.com>
33603
33604         * Make-lang.in: Makefile automatically updated
33605
33606 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33607
33608         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
33609         * trans.c (tree_transform, emit_index_check): Likewise.
33610         * utils.c (build_template): Likewise.
33611         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
33612         (maybe_unconstrained_array, unchecked_convert): Likewise.
33613         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
33614         (build_unary_op): Likewise.
33615         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
33616         (fill_vms_descriptor): Likewise.
33617         (build_call_alloc_dealloc): Likewise.
33618         ALIGN is unsigned.
33619         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
33620
33621 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
33622
33623         PR other/14630
33624         * gnat_ug.texi: Add info directory category and entry.
33625         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
33626         gnat_ug_wnt.texi: Regenerate.
33627
33628 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
33629
33630         * ada-tree.h: Update copyright notice.
33631         Minor reformatting.
33632
33633 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
33634
33635         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
33636         as regular exception objects and not as mere integers representing the
33637         condition code.  The latter approach required some dynamics to mask off
33638         severity bits, which did not fit well into the GCC table based model.
33639         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
33640         exception data objects. We don't it and it would conflict with the other
33641         external symbol we have to generate for such exceptions.
33642
33643         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
33644         the special code for VMS exceptions, since these are now represented
33645         as regular exceptions objects.
33646
33647 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33648
33649         * decl.c (debug_no_type_hash): Remove.
33650         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
33651         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
33652
33653 2004-03-19  Laurent Guerby  <laurent@guerby.net>
33654
33655         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
33656         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
33657
33658 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33659
33660         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
33661         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
33662         (TYPE_RM_SIZE_INT): Directly use type.values.
33663         (TREE_LOOP_ID): Clean up check.
33664         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
33665         TYPE_VALUES, not TYPE_FIELDS.
33666         * trans.c (convert_with_check): Delay access of bounds of basetype
33667         until sure is numeric.
33668
33669 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
33670
33671         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
33672
33673         Code clean up:
33674         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
33675         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
33676         Specific.Set instead of direct call to e.g pthread_setspecific.
33677
33678 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
33679
33680         * adaint.c: Update comments.
33681
33682         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
33683         GNATLIB_SHARED for FreeBSD.
33684
33685 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
33686
33687         * init.c [VxWorks]: Do not fix the stack size for the environment task.
33688         When needed (stack checking) the stack size is retrieved
33689         from the VxWorks kernel.
33690
33691         * Makefile.in: Flag -nostdinc is required when building the run time
33692         for avoiding looking for files in the base compiler.
33693         Add the VxWorks specific version of the package body for
33694         System.Stack_checking.Operations (5zstchop.adb).
33695
33696         * Make-lang.in: Add the object file for
33697         System.Stack_Checking.Operations.
33698
33699         * Makefile.rtl: Add object file for the package
33700         System.Stack_Checking.Operations.
33701
33702         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
33703
33704         * s-stache.ads, s-stache.adb: Move the operations related to stack
33705         checking from this package to package System.Stack_Checking.Operations.
33706         This way, stack checking operations are only linked in the final
33707         executable when using the -fstack-check flag.
33708
33709 2004-03-18  Doug Rupp  <rupp@gnat.com>
33710
33711         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
33712         Reorganize ifeq's.
33713
33714         * 5qsystem.ads, 5xcrtl.ads: New files.
33715
33716 2004-03-18  Vincent Celier  <celier@gnat.com>
33717
33718         * prj.adb (Reset): Reset hash table Files_Htable
33719
33720         * prj-env.adb (Source_Paths, Object_Paths): New tables.
33721         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
33722         the procedures Add_To_Path_File.
33723         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
33724         making sure that each directory is present only once and, for object
33725         dirs, when a directory already present is added, the duplicate is
33726         removed and the directory is always put as the last in the table.
33727         Write the path files at the end of these accumulations.
33728
33729         * prj-nmsc.adb (Record_Source): Add source file name in hash table
33730         Files_Htable for all sources.
33731
33732         * prj-proc.adb (Process): Remove restrictions between not directly
33733         related extending projects.
33734
33735 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
33736
33737         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
33738         (Find_Sources): Minor speed optimization.
33739
33740         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
33741         parameter Trusted_Mode.
33742
33743 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
33744
33745         * scn.adb (Determine_License): Take into account a degenerated case
33746         when the source contains only comments.
33747
33748 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
33749
33750         * sem_warn.adb (Check_References): For a warning on a selected
33751         component that does not come from source, locate an uninitialized
33752         component of the record type to produce a more precise error message.
33753
33754 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
33755
33756         * 3zsoccon.ads: Fix multicast options.
33757
33758         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
33759         in the spec.
33760
33761 2004-03-15  Robert Dewar  <dewar@gnat.com>
33762
33763         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
33764         pragma used for a private type.
33765
33766         * lib-xref.adb (Generate_Reference): Do not generate warning if
33767         reference is in a different unit from the pragma Unreferenced.
33768
33769         * 5vtpopde.adb: Minor reformatting
33770         Fix casing of To_Task_ID
33771
33772         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
33773         flag if we have an unchecked conversion to an access type in the same
33774         unit.
33775
33776 2004-03-15  Geert Bosch  <bosch@gnat.com>
33777
33778         * a-ngcoty.adb (Modulus): In alternate formula for large real or
33779         imaginary parts, use Double precision throughout.
33780
33781         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
33782         we want to be able to compile run-time with -gnata for testing, but
33783         this may also be instantiated in user code that is compiled with -gnata.
33784
33785 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
33786
33787         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
33788         codes. Having a separate type for this is useful to enforce consistency
33789         throughout the various run-time units.
33790         (Exception_Data): Use Exception_Code for Import_Code.
33791
33792         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
33793         Natural and Integer in various places.
33794         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
33795         with the severity bits masked off.
33796         (Register_VMS_Exception): Handle the additional exception data pointer
33797         argument.
33798
33799         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
33800         component, now reflected by an exported accessor.
33801         (is_handled_by): New routine to compute whether the propagated
33802         occurrence matches some handler choice specification. Extracted out of
33803         get_action_description_for, and expanded to take care of the VMS
33804         specifities.
33805         (get_action_description_for): Use is_handled_by instead of an explicit
33806         complex condition to decide if the current choice at hand catches the
33807         propagated occurrence.
33808
33809         * raise.h (Exception_Code): New type for C.
33810
33811         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
33812         System.Standard_Library.Exception_Code, to allow references from the
33813         pragma import/export expander.
33814
33815         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
33816         New accessors to allow easy access to GNAT exception data
33817         characteristics.
33818         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
33819         redundant Handled_By_Others component, helper for the personality
33820         routine which will now be able to call the appropriate exception data
33821         accessor instead.
33822
33823         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
33824         component of Standard_Exception_Type to be the closest possible to
33825         Exception_Code in System.Standard_Library, that we cannot get at this
33826         point. Expand a ??? comment to notify that this type node should
33827         probably be rewritten later on.
33828
33829         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
33830         registration call to include a pointer to the exception object in the
33831         arguments.
33832
33833         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
33834         instead of int and explicit bitmasks.
33835
33836 2004-03-15  Vincent Celier  <celier@gnat.com>
33837
33838         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
33839         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
33840
33841         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
33842         longer needed now that it is in the spec of
33843         System.Tasking.Task_Attributes.
33844
33845         * adaint.h, adaint.c: (__gnat_create_output_file): New function
33846
33847         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
33848
33849         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
33850
33851         * make.adb (Gnatmake): Do not check the executable suffix; it is being
33852         taken care of in Scan_Make_Arg.
33853         (Scan_Make_Arg): Add the executable suffix only if the argument
33854         following -o, in canonical case, does not end with the executable
33855         suffix.  When in verbose mode and executable file name does not end
33856         with executable suffix, output the executable name, in canonical case.
33857
33858         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
33859         to avoid warnings when instantiating Ada.Task_Attributes.
33860         Minor reformating.
33861
33862         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
33863         in the correct order.
33864
33865         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
33866         redirect standard output and error to a file for the invocation of the
33867         compiler, then read the file.
33868
33869         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
33870         directory, instead of the Value.
33871         (Find_Source_Dirs): Remove useless code & comments.
33872
33873 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
33874
33875         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
33876         tagged type is inherited, and the parent operation is not frozen yet,
33877         force generation of a freeze node for the inherited operation, so the
33878         corresponding dispatch entry is properly initialized.
33879         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
33880         when looking for user-defined equality operation.
33881
33882         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
33883         boolean when locating primitive equality of tagged component.
33884
33885         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
33886         bit-aligned field and the right-hand side a string literal, introduce
33887         a temporary before expanding assignment into a loop.
33888
33889         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
33890         priority in full, to ensure that any expanded subepxressions of it are
33891         elaborated in the scope of the init_proc.
33892
33893         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
33894         after object declaration, skipping over code that may have been
33895         generated for validity checks.
33896
33897         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
33898         discriminants, ignore the known discriminants of its full view, if
33899         any, to check legality.
33900
33901         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
33902         component if type has unknown discriminants.
33903         (Analyze_Private_Extension_Declaration): Discriminant constraint is
33904         null if type has unknown discriminants.
33905
33906         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
33907         for end label when present.
33908
33909         * s-fileio.adb (Open): When called with a C_Stream, use given name for
33910         temporary file, rather than an empty string.
33911
33912 2004-03-15  Ed Falis  <falis@gnat.com>
33913
33914         * s-thread.adb: Removed, no longer used.
33915
33916 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33917
33918         * decl.c (target.h): Now include.
33919         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
33920         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
33921         (validate_size): For POINTER_TYPE, get smallest size permitted on
33922         machine.
33923
33924         * fe.h: Sort Einfo decls and add Set_Mechanism.
33925
33926         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
33927         (ada/decl.o): Depends on target.h.
33928
33929         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
33930         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
33931
33932 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
33933
33934         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
33935
33936         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
33937         Insert_Dereference_Action when rewriting an implicit dereference into
33938         an explicit one, this will be taken care of during expansion of the
33939         explicit dereference.
33940         (Expand_N_Slice): Same. Always do the rewriting, even for the case
33941         of non-packed slices, since the dereference action generated by
33942         expansion of the explicit dereference is needed in any case.
33943         (Expand_N_Selected_Component): When rewriting an implicit dereference,
33944         analyze and resolve the rewritten explicit dereference so it is seen
33945         by the expander.
33946         (Insert_Dereference_Action): This procedure is now called only for the
33947         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
33948         dereferences that do not come from source (including explicit
33949         dereferences resulting from rewriting implicit ones), but do not
33950         recursively insert a check for the dereference nodes contained within
33951         the check.
33952         (Insert_Dereference_Action): Clarify and correct comment.
33953
33954 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
33955
33956         PR ada/14131
33957         Move language detection to the top level.
33958         * config-lang.in: Build by default.
33959
33960 2004-03-05  Robert Dewar  <dewar@gnat.com>
33961
33962         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
33963
33964         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
33965         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
33966         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
33967         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
33968         unchecked conversion to spec to avoid warnings.
33969
33970         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
33971         to Task_ID
33972
33973         * 7stpopsp.adb: Correct casing in To_Task_ID call
33974
33975         * a-strsea.ads, a-strsea.adb: Minor reformatting
33976
33977         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
33978
33979         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
33980         Adjust Max_Msg_Length to be clearly large enough.
33981
33982         * fe.h: Define In_Same_Source_Unit
33983
33984         * osint.adb: Add pragma Warnings Off to suppress warnings
33985         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
33986         aliasing warnings.
33987
33988         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
33989
33990         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
33991
33992         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
33993
33994         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
33995
33996         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
33997
33998         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
33999         node. We now do generate them for gcc back end.
34000
34001         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
34002         warning.
34003
34004         * sinput-c.adb: Fix bad name in header.
34005         Add pragma Warnings Off to suppress aliasing warning.
34006
34007         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
34008
34009         * snames.h, snames.ads, snames.adb: Add entry for pragma
34010         No_Strict_Aliasing.
34011
34012 2004-03-05  Vincent Celier  <celier@gnat.com>
34013
34014         * prj-com.ads: Add hash table Files_Htable to check when a file name
34015         is already a source of another project.
34016
34017         * prj-nmsc.adb (Record_Source): Before recording a new source, check
34018         if its file name is not already a source of another project. Report an
34019         error if it is.
34020
34021         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
34022         source file name, call gnatpp with all the sources of the main project.
34023
34024         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
34025         of file names.
34026
34027         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
34028         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
34029         /RUNTIME_SYSTEM=, converted to --RTS=
34030         /NOTABS, converted to -notabs
34031
34032 2004-03-05  Pascal Obry  <obry@gnat.com>
34033
34034         * make.adb: Minor reformatting.
34035
34036 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
34037
34038         Part of implemention of AI-262.
34039         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
34040
34041         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
34042         procedure.
34043
34044         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
34045         when component type is a partially constrained class-wide subtype.
34046         (Constrain_Discriminated_Type): If parent type has unknown
34047         discriminants, a constraint is illegal, even if full view has
34048         discriminants.
34049         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
34050         with unknown discriminants whose full view is a discriminated record.
34051
34052         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
34053         flag, to handle properly derivations of tagged types with unknown
34054         discriminants.
34055         (Analyze_Package_Spec, Analyze_Package_Body): Install
34056         Private_With_Clauses before analyzing private part or body.
34057
34058         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
34059         Has_Discriminants can be true for a given type (documentation).
34060
34061 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
34062
34063         * s-restri.ads: Fix license (GPL->GMGPL).
34064
34065         * s-tassta.adb: Minor reformatting.
34066
34067         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
34068         by calls to Exit_One_ATC_Level, since additional clean up is performed
34069         by this function.
34070
34071         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
34072         by calls to Exit_One_ATC_Level, since additional clean up is performed
34073         by this function.
34074
34075 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34076
34077         * trans.c: Reflect GCC changes to fix bootstrap problem.
34078         Add warning for suspicious aliasing unchecked conversion.
34079
34080 2004-03-05  GNAT Script  <nobody@gnat.com>
34081
34082         * Make-lang.in: Makefile automatically updated
34083
34084 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
34085
34086         * ali.adb (Read_Instantiation_Instance): Do not modify the
34087         current_file_num when reading information about instantiations, since
34088         this corrupts files in later references.
34089
34090 2004-03-02  Vincent Celier  <celier@gnat.com>
34091
34092         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
34093         before checking if it is read-only.
34094
34095         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
34096         of SRC_DIRS and eliminate duplicates.
34097
34098         * gprcmd.adb: Replace command "path" with command "path_sep" to return
34099         the path separator.
34100         (Usage): Document path_sep
34101
34102         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
34103         C++ compiler. No need for a script.
34104         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
34105         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
34106         subst.
34107
34108         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
34109         where there are Ada sources.
34110         (Set_Ada_Paths): Only add to the include path the source dirs of project
34111         with Ada sources.
34112         (Add_To_Path): Add the Display_Values of the directories, not their
34113         Values.
34114
34115         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
34116         data.
34117
34118         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
34119         is not No_Name.
34120         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
34121         Value is canonicalized.
34122         (Language_Independent_Check): Do not copy Value to Display_Value when
34123         canonicalizing Value.
34124
34125         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
34126         path to find limited with cycles.
34127         (Parse_Single_Project): Use canonical cased path to find the end of a
34128         with cycle.
34129
34130 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
34131
34132         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
34133         and not a child unit.
34134
34135         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
34136         appear in a with_clause.
34137
34138         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
34139         only happen in type_annotate mode, do not try to elaborate it.
34140
34141         * exp_util.adb (Force_Evaluation): If expression is a selected
34142         component on the left of an assignment, use a renaming rather than a
34143         temporary to remove side effects.
34144
34145         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
34146         inlined instance body, which is analyzed before the end of the
34147         enclosing scope.
34148
34149 2004-03-02  Robert Dewar  <dewar@gnat.com>
34150
34151         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
34152         sem_ch4.adb: Use new feature for substitution of keywords in VMS
34153
34154         * errout.ads, errout.adb: Implement new circuit for substitution of
34155         keywords in VMS.
34156
34157         * sem_case.adb (Analyze_Choices): Place message properly when case is
34158         a subtype reference rather than an explicit range.
34159
34160         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
34161
34162 2004-03-02  Doug Rupp  <rupp@gnat.com>
34163
34164         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
34165
34166 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
34167
34168         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
34169
34170 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34171
34172         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
34173         BLKmode bitfield.
34174
34175 2004-02-25  Robert Dewar  <dewar@gnat.com>
34176
34177         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
34178         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
34179         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
34180         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
34181         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
34182         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
34183         the defining instance of the type to avoid aliasing problems.
34184         Fix copyright header.  Fix bad comments in package header.
34185
34186         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
34187
34188 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
34189
34190         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
34191         rewritten as references when aliased through an address clause.
34192
34193         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
34194         whether call can be interpreted as an indirect call to the result of a
34195         parameterless function call returning an access subprogram.
34196
34197 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
34198
34199         Code clean up:
34200         * exp_ch7.adb (Make_Clean): Remove generation of calls to
34201         Unlock[_Entries], since this is now done by Service_Entries directly.
34202
34203         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
34204
34205         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
34206         Requeue_Call for better code readability. Change spec and update calls:
34207         PO_Service_Entries now unlock the PO on exit.
34208         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
34209         PO_Service_Entries.
34210
34211         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
34212
34213         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
34214
34215 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
34216
34217         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
34218         protected subprogram call and analyzing the result of such expanding
34219         in case when the called protected subprogram is eliminated.
34220
34221         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
34222         names.
34223
34224 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
34225
34226         * Makefile.in: Clean ups.
34227
34228 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
34229
34230         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
34231         protected operations if original subprogram is flagged as eliminated.
34232         (Expand_N_Subprogram_Body): For a protected operation, create
34233         discriminals for next operation before checking whether the operation
34234         is eliminated.
34235
34236         * exp_ch9.adb (Expand_N_Protected_Body,
34237         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
34238         for internal protected operations if the original subprogram is
34239         eliminated.
34240
34241         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
34242         declared in a single protected object.
34243
34244 2004-02-23  Vincent Celier  <celier@gnat.com>
34245
34246         * prj-attr.adb: Make attribute Builder'Executable an associative array,
34247         case insensitive if file names are case insensitive, instead of a
34248         standard associative array.
34249
34250         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
34251         them as case insensitive on platforms where the file names are case
34252         sensitive.
34253
34254         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
34255         project file has already been parsed that canonical path are compared.
34256
34257 2004-02-23  Robert Dewar  <dewar@gnat.com>
34258
34259         * sinput-c.ads: Correct bad unit title in header
34260
34261         * freeze.adb: Minor reformatting
34262
34263 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34264
34265         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
34266         nonaddressable COMPONENT_REF that is removing padding that we are
34267         taking the address of, take the address of the padded record instead
34268         if item is variable size.
34269
34270 2004-02-20  Robert Dewar  <dewar@gnat.com>
34271
34272         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
34273
34274 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
34275
34276         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
34277         itype references for the constrained designated type of a component
34278         whose base type is already frozen.
34279
34280 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
34281
34282         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
34283         avoid GCC warnings.
34284
34285 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
34286
34287         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
34288         identifier for a phantom package that rewrites the formal package
34289         declaration with a box. The Add semantic decorations for the defining
34290         identifier from the original node (that represents the formal package).
34291
34292 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
34293
34294         * Make-lang.in (ada/stamp-sdefault): Use the top level
34295         move-if-change.
34296
34297 2004-02-19  Richard Henderson  <rth@redhat.com>
34298
34299         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
34300
34301 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
34302
34303         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
34304         Scan_ALI can be used for multiple ALI files without reinitializing
34305         between calls.
34306
34307 2004-02-18  Robert Dewar  <dewar@gnat.com>
34308
34309         * debug.adb: Minor reformatting.
34310
34311 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34312
34313         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
34314         to zero if there is an address clause.
34315
34316 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
34317
34318         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
34319
34320 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
34321
34322         * layout.adb (Layout_Component_List): Revise generation of call to
34323         discriminant-checking function to pass selections of all of the type's
34324         discriminants rather than just the variant-controlling discriminant.
34325
34326 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
34327
34328         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
34329         fail in the current setup and triggers spurious system error messages.
34330         Pretend it occurred and failed instead.
34331
34332 2004-02-18  Vincent Celier  <celier@gnat.com>
34333
34334         * bld.adb: Mark FLDFLAGS as saved
34335         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
34336         it is not the root project.  Put each directory to be
34337         extended between double quotes to prevent it to be expanded on Windows.
34338         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
34339         the project file. Set them back to their initial values if they have not
34340         been set in the project file.
34341
34342         * gprcmd.adb: (Gprdebug, Debug): New global variables
34343         (Display_Command): New procedure
34344         (Usage): Document new command "linkopts"
34345         Call Display_Command when env var GPRDEBUG has the value "TRUE"
34346         Implement new command "linkopts"
34347         Remove quotes that may be around arguments for "extend"
34348         Always call Normalize_Pathname with arguments formatted for the platform
34349
34350         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
34351         Change @echo to @$(display) in target clean to be able to clean silently
34352
34353         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
34354
34355         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
34356         canonical case.
34357
34358         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
34359         = Extending_All when current project is an extending all project.
34360
34361         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
34362         set to True only for LINK command, after Unix switch -o.
34363         (Process_Arguments): Set Output_File_Expected to True for LINK command
34364         after Unix switch -o. When Output_File_Expected is True, never add an
34365         extension to a file name.
34366
34367         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
34368         option file name, only to the --for-linker= switch.
34369         (Option_File_Name): If option file name do not end with ".opt", append
34370         "/OPTIONS".
34371
34372 2004-02-18  GNAT Script  <nobody@gnat.com>
34373
34374         * Make-lang.in: Makefile automatically updated
34375
34376 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
34377
34378         * Make-lang.in (stamp-sdefault): Do not depend on
34379         move-if-change.
34380
34381 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
34382
34383         * config-lang.in: Disable Ada by default until probe logic for
34384         a bootstrap Ada compiler can be moved to the top level configure
34385         script.
34386
34387 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
34388
34389         * decl.c (components_to_record): Don't claim that the internal fields
34390         we make to hold the variant parts are semantically addressable, because
34391         they are not.
34392
34393         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
34394         adjust the comment describing the modular type form when we can use it.
34395         (Install_PAT): Account for the Esiz renaming.
34396
34397         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
34398         sc_onstack context indication before raising the exception to which
34399         the signal is mapped. Allows better handling of later signals possibly
34400         triggered by the resumed user code if the exception is handled.
34401
34402 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
34403
34404         * 5zinit.adb: Removed, no longer used.
34405
34406 2004-02-12  Robert Dewar  <dewar@gnat.com>
34407
34408         * ali.adb: Remove separating space between parameters on R line. Makes
34409         format consistent with format used by the binder for Set_Globals call.
34410
34411         * atree.ads, atree.adb: Minor reformatting (new function header format)
34412
34413         * bindgen.adb: Add Run-Time Globals documentation section containing
34414         detailed documentation of the globals passed from the binder file to
34415         the run time.
34416
34417         * gnatls.adb: Minor reformatting
34418
34419         * init.c (__gnat_set_globals): Add note pointing to documentation in
34420         bindgen.
34421
34422         * lib-writ.ads, lib-writ.adb: Remove separating space between
34423         parameters on R line.
34424         Makes format consistent with format used by the binder for Set_Globals
34425         call.
34426
34427         * osint.ads: Add 2004 to copyright notice
34428         Minor reformatting
34429
34430         * snames.ads: Correct capitalization of FIFO_Within_Priorities
34431         Noticed during code reading, documentation issue only
34432
34433         * usage.adb: Remove junk line for obsolete C switch
34434         Noticed during code reading
34435
34436 2004-02-12  Vincent Celier  <celier@gnat.com>
34437
34438         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
34439         extend for each directory, so that multiple /** directories are
34440         extended individually.
34441         (Recursive_Process): Set the default for LANGUAGES to ada
34442
34443         * gprcmd.adb: Define new command "ignore", to do nothing.
34444         Implement new comment "path".
34445
34446         * Makefile.generic: Suppress output when SILENT is set
34447         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
34448         used, so that the correct compiler is invoked.
34449         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
34450         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
34451
34452 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
34453
34454         * Makefile.in: Clean ups and remove obsolete targets.
34455
34456 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
34457
34458         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
34459         predicate declared in exp_util.
34460
34461         * exp_util.adb: Add comments.
34462
34463         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
34464         visibility before compiling context of the subunit.
34465
34466         * sem_res.adb (Check_Parameterless_Call): If the context expects a
34467         value but the name is a procedure, do not attempt to analyze as a call,
34468         in order to obtain more telling diagnostics.
34469
34470         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
34471         'Access on parameterless function calls.
34472         (Normalize_Actuals): For a parameterless function call with missing
34473         actuals, defer diagnostic until resolution of enclosing call.
34474
34475         * sem_util.adb (Wrong_Type): If the context type is an access to
34476         subprogram and the expression is a procedure name, suggest a missing
34477         'attribute.
34478
34479 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
34480             Nathanael Nerode  <neroden@gcc.gnu.org>
34481
34482         PR ada/6637
34483         PR ada/5911
34484         Merge with libada-branch:
34485         * config-lang.in: Build libada only when ada is built.
34486
34487 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
34488
34489         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
34490         for a tagged type, verify that both formals have the same type.
34491
34492         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
34493         temporary when the formal is an in-parameter and the actual a possibly
34494         unaligned slice.
34495
34496         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
34497         when expansion is disabled, to ensure proper name capture with
34498         overloaded literals.  Condition can be of any boolean type, resolve
34499         accordingly.
34500
34501         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
34502         renaming is for a formal subprogram with a default operator name, and
34503         there is a usable operator that is visible at the point of
34504         instantiation.
34505
34506 2004-02-09  Robert Dewar  <dewar@gnat.com>
34507
34508         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
34509         rewrite to ignore errors in ali files, intended to allow tools downward
34510         compatibility with new versions of ali files.
34511
34512         * ali.ads: Add new parameter Ignore_Errors
34513
34514         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
34515         duplicating the error message giving the file with restrictions.
34516
34517         * debug.adb: Add debug flag I for gnatbind
34518
34519         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
34520         operators for the case where the operator is a defining operator.
34521
34522         * exp_ch3.adb: Minor reformatting (new function spec format).
34523
34524         * exp_ch4.adb: Add comment for previous change, and make minor
34525         adjustment to loop to always check for improper loop termination.
34526         Minor reformatting throughout (new function spec format).
34527
34528         * gnatbind.adb: Implement -di debug flag for gnatbind
34529
34530         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
34531
34532         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
34533
34534         * lib-load.adb: Fix bad assertion.
34535         Found by testing and code reading.
34536         Minor reformatting.
34537
34538         * lib-load.ads: Minor reformatting.
34539
34540         * lib-writ.adb: There is only one R line now.
34541
34542         * lib-writ.ads: Add documentation on making downward compatible changes
34543         to ali files so old tools work with new ali files.
34544         There is only one R line now.
34545         Add documentation on format incompatibilities (with special GPS note)
34546
34547         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
34548
34549         * par-load.adb: Minor reformatting
34550
34551         * sem_ch8.adb: Fix to error message from last update
34552         Minor reformatting and restructuring of code from last update
34553
34554         * par-prag.adb, snames.adb, snames.ads, snames.h,
34555         sem_prag.adb: Implement pragma Profile.
34556
34557         * stylesw.adb: Implement -gnatyN switch to turn off all style check
34558         options.
34559
34560         * usage.adb: Add line for -gnatyN switch
34561
34562         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
34563
34564 2004-02-09  Albert Lee  <lee@gnat.com>
34565
34566         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
34567
34568 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
34569
34570         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
34571         slices.
34572
34573         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
34574         is nested in an instance that is not frozen yet, to avoid
34575         order-of-elaboration problems in gigi.
34576
34577         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
34578         body the attribute is legal.
34579
34580 2004-02-09  Robert Dewar  <dewar@gnat.com>
34581
34582         * s-rident.ads: Minor comment correction
34583
34584         * targparm.adb: Remove dependence on uintp completely. There was
34585         always a bug in Make in that it called Targparm before initializing
34586         the Uint package. The old code appeared to get away with this, but
34587         the new code did not! This caused an assertion error in gnatmake.
34588
34589         * targparm.ads: Fix bad comment, restriction pragmas with parameters
34590         are indeed fully supported.
34591
34592 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
34593
34594         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
34595
34596 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
34597
34598         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
34599         with targetm.calls.promote_prototypes.
34600
34601 2004-02-04  Robert Dewar  <dewar@gnat.com>
34602
34603         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
34604         ali.ads, gprcmd.adb: Minor reformatting
34605
34606         * bindgen.adb: Output restrictions string for new style restrictions
34607         handling
34608
34609         * impunit.adb: Add s-rident.ads (System.Rident) and
34610         s-restri (System.Restrictions)
34611
34612         * lib-writ.adb: Fix bug in writing restrictions string (last few
34613         entries wrong)
34614
34615         * s-restri.ads, s-restri.adb: Change name Restrictions to
34616         Run_Time_Restrictions to avoid conflict with package name.
34617         Add circuit to read and acquire run time restrictions.
34618
34619 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
34620
34621         * restrict.ads, restrict.adb: Use the new restriction
34622         No_Task_Attributes_Package instead of the old No_Task_Attributes.
34623
34624         * sem_prag.adb: No_Task_Attributes is a synonym of
34625         No_Task_Attributes_Package.
34626
34627         * snames.ads, snames.adb: New entry for proper handling of
34628         No_Task_Attributes.
34629
34630         * s-rident.ads: Adding restriction No_Task_Attributes_Package
34631         (AI-00249) that supersedes the GNAT specific restriction
34632         No_Task_Attributes.
34633
34634 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
34635
34636         * sem_prag.adb:
34637         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
34638          body, an identifier may be wrapped in an unchecked conversion.
34639
34640 2004-02-04  Vincent Celier  <celier@gnat.com>
34641
34642         * lib-writ.ads: Comment update for the W lines
34643
34644         * bld.adb: (Expression): An empty string list is static
34645
34646         * fname-uf.adb: Minor comment update
34647
34648         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
34649
34650         * gnatbind.adb: Initialize Cumulative_Restrictions with the
34651         restrictions on the target.
34652
34653 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
34654
34655         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
34656         gen_rtx.
34657
34658 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
34659
34660         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
34661
34662 2004-02-02  Vincent Celier  <celier@gnat.com>
34663
34664         * gprcmd.adb (Check_Args): If condition is false, print the invoked
34665         comment before the usage.
34666         Gprcmd: Fail when command is not recognized.
34667         (Usage): Document command "prefix"
34668
34669         * g-md5.adb (Digest): Process last block.
34670         (Update): Do not process last block. Store remaining characters and
34671         length in Context.
34672
34673         * g-md5.ads (Update): Document that several call to update are
34674         equivalent to one call with the concatenated string.
34675         (Context): Add fields to allow new Update behaviour.
34676
34677         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
34678         defaulted to False.
34679         When May_Fail is True and no existing file can be found, return No_File.
34680
34681         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
34682         functions.
34683
34684         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
34685         spec file name instead on the W line.
34686
34687 2004-02-02  Robert Dewar  <dewar@gnat.com>
34688
34689         * ali.adb: Read and acquire info from new format restrictions lines
34690
34691         * bcheck.adb: Add circuits for checking restrictions with parameters
34692
34693         * bindgen.adb: Output dummy restrictions data
34694         To be changed later
34695
34696         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
34697         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
34698         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
34699         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
34700         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
34701
34702         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
34703         the warning message on access to possibly uninitialized variable S)
34704         Minor changes for new restrictions handling.
34705
34706         * gnatbind.adb: Minor reformatting
34707         Minor changes for new restrictions handling
34708         Move circuit for -r processing here from bcheck (cleaner)
34709
34710         * gnatcmd.adb, gnatlink.adb: Minor reformatting
34711
34712         * lib-writ.adb: Output new format restrictions lines
34713
34714         * lib-writ.ads: Document new R format lines for new restrictions
34715         handling.
34716
34717         * s-restri.ads/adb: New files
34718
34719         * Makefile.rtl: Add entry for s-restri.ads/adb
34720
34721         * par-ch3.adb: Fix bad error messages starting with upper case letter
34722         Minor reformatting
34723
34724         * restrict.adb: Major rewrite throughout for new restrictions handling
34725         Major point is to handle restrictions with parameters
34726
34727         * restrict.ads: Major changes in interface to handle restrictions with
34728         parameters. Also generally simplifies setting of restrictions.
34729
34730         * snames.ads/adb: New entry for proper handling of No_Requeue
34731
34732         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
34733         restriction counting.
34734         Other minor changes for new restrictions handling
34735
34736         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
34737         Restriction_Warnings now allows full parameter notation
34738         Major rewrite of Restrictions for new restrictions handling
34739
34740 2004-02-02  Javier Miranda  <miranda@gnat.com>
34741
34742         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
34743         syntax rule for object renaming declarations.
34744         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
34745         component definitions.
34746
34747         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
34748         components.
34749         (Array_Type_Declaration): Give support to access components. In addition
34750         it was also modified to reflect the name of the object in anonymous
34751         array types. The old code did not take into account that it is possible
34752         to have an unconstrained anonymous array with an initial value.
34753         (Check_Or_Process_Discriminants): Allow access discriminant in
34754         non-limited types.
34755         (Process_Discriminants): Allow access discriminant in non-limited types
34756         Initialize the new Access_Definition field in N_Object_Renaming_Decl
34757         node.  Change Ada0Y to Ada 0Y in comments
34758
34759         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
34760         equality operators.
34761         Change Ada0Y to Ada 0Y in comments
34762
34763         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
34764         renamings Change Ada0Y to Ada 0Y in comments
34765
34766         * sem_type.adb (Find_Unique_Type): Give support to the equality
34767         operators for universal access types
34768         Change Ada0Y to Ada 0Y in comments
34769
34770         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
34771
34772         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
34773         field.
34774         (N_Object_Renaming_Declaration): Addition of Access_Definition field
34775         Change Ada0Y to Ada 0Y in comments
34776
34777         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
34778         component definition and object renaming nodes
34779         Change Ada0Y to Ada 0Y in comments
34780
34781 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
34782
34783         * restrict.adb: Use the new restriction identifier
34784         No_Requeue_Statements instead of the old No_Requeue for defining the
34785         restricted profile.
34786
34787         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
34788         No_Requeue_Statements.
34789
34790         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
34791         that supersedes the GNAT specific restriction No_Requeue. The later is
34792         kept for backward compatibility.
34793
34794 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
34795
34796         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
34797         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
34798         pragma and fix incorrect ones.
34799
34800         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
34801         warning if the pragma is redundant.
34802
34803 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
34804
34805         * 5staprop.adb: Add missing 'constant' keywords.
34806
34807         * Makefile.in: use consistent value for SYMLIB on
34808         platforms where libaddr2line is supported.
34809
34810 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34811
34812         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
34813         annotating types.
34814
34815 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
34816
34817         * init.c (__gnat_install_handler): Setup an alternate stack for signal
34818         handlers in the environment thread. This allows proper propagation of
34819         an exception on stack overflows in this thread even when the builtin
34820         ABI stack-checking scheme is used without support for a stack reserve
34821         region.
34822
34823         * utils.c (create_field_decl): Augment the head comment about bitfield
34824         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
34825         here, because the former is not accurate enough at this point.
34826         Let finish_record_type decide instead.
34827         Don't make a bitfield if the field is to be addressable.
34828         Always set a size for the field if the record is packed, to ensure the
34829         checks for bitfield creation are triggered.
34830         (finish_record_type): During last pass over the fields, clear
34831         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
34832         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
34833         from DECL_BIT_FIELD.
34834
34835 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
34836
34837         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
34838         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
34839         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
34840
34841 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34842
34843         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
34844
34845         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
34846         (ZCX_By_Default): Likewise.
34847         (Front_End_ZCX_Support): Likewise.
34848
34849         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
34850         (Initialize_Lock): Mark Level unreferenced.
34851         (Sleep): Mark Reason unreferenced.
34852         (Timed_Sleep): Likewise.
34853         (Wakeup): Likewise.
34854         (Exit_Task): Use Result.
34855         (Check_No_Locks): Mark Self_ID unreferenced.
34856
34857         * 5gtasinf.adb (New_Sproc): Make Attr constant.
34858         (Bound_Thread_Attributes): Make Sproc constant.
34859         (New_Bound_Thread_Attributes): Likewise.
34860
34861 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
34862
34863         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
34864         one-dimensional array an slice assignments, when component type is
34865         controlled.
34866
34867         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
34868         component type is controlled, and control_actions are in effect, use
34869         TSS procedure rather than generating inline code.
34870
34871         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
34872         arrays with controlled components.
34873
34874 2004-01-26  Vincent Celier  <celier@gnat.com>
34875
34876         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
34877         command line for the non VMS case.
34878
34879         * gnatlink.adb (Process_Binder_File): When building object file, if
34880         GNU linker is used, put all object paths between quotes, to prevent ld
34881         error when there are unusual characters (such as '!') in the paths.
34882
34883         * Makefile.generic: When there are sources in Ada and the main is in
34884         C/C++, invoke gnatmake with -B, instead of -z.
34885
34886         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
34887         from VMS_Conversion.
34888         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
34889         specification of argument file on the command line.
34890
34891 2004-01-26  Bernard Banner  <banner@gnat.com>
34892
34893         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
34894
34895 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
34896
34897         * snames.adb: Update copyright notice.
34898         Add info on slice assignment for controlled arrays.
34899
34900 2004-01-23  Robert Dewar  <dewar@gnat.com>
34901
34902         * exp_aggr.adb: Minor reformatting
34903
34904         * exp_ch9.adb: Minor code clean up
34905         Minor reformatting
34906         Fix bad character in comment
34907
34908         PR ada/13471
34909         * targparm.adb (Get_Target_Parameters): Give clean abort error on
34910         unexpected end of file, along with more detailed message.
34911
34912 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34913
34914         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
34915         PAT.
34916
34917         * decl.c (copy_alias_set): New function.
34918         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
34919
34920 2004-01-23  Doug Rupp  <rupp@gnat.com>
34921
34922         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
34923         lib$${file} in case subsequent character is not a separator.
34924
34925 2004-01-23  Vincent Celier  <celier@gnat.com>
34926
34927         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
34928         when the GCC version is at least 3.
34929
34930         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
34931         Remove all "Opt.", to prepare for opt split
34932
34933         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
34934         Extends_All. Set to True when the project parsed is an extending all
34935         project. Fails for importing an extending all project only when the
34936         imported project is an extending all project.
34937         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
34938         depending on the value of Extends_All returned.
34939
34940         * prj-proc.adb (Process): Check that no project shares its object
34941         directory with a project that extends it, directly or indirectly,
34942         including a virtual project.
34943         Check that no project extended by another project shares its object
34944         directory with another also extended project.
34945
34946         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
34947         Kind = N_With_Clause
34948
34949         * prj-tree.ads: Minor reformatting
34950         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
34951
34952 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
34953
34954         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
34955         applies to a type with an incomplete view, use full view in Name of
34956         clause, for consistency with uses of Get_Attribute_Definition_Clause.
34957
34958 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
34959
34960         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
34961         SCHED_RR, since other values are not supported by this policy.
34962         (Initialize): Move initialization of mutex attribute to package
34963         elaboration, to prevent early access to this variable.
34964
34965         * Makefile.in: Remove mention of Makefile.adalib, unused.
34966
34967         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
34968         1ssecsta.ads: Removed, unused.
34969
34970 2004-01-21  Javier Miranda  <miranda@gnat.com>
34971
34972         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
34973         entity if already built in the current scope.
34974
34975         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
34976         reminder in internal scopes. Required for nested limited aggregates.
34977
34978 2004-01-21  Doug Rupp  <rupp@gnat.com>
34979
34980         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
34981         VMS. Replace all occurences of libgnat- and libgnarl- with
34982         libgnat$(hyphen) and libgnarl$(hyphen).
34983         Fixed shared library build problem on VMS.
34984
34985 2004-01-21  Robert Dewar  <dewar@gnat.com>
34986
34987         * mlib-prj.adb: Minor reformatting
34988
34989 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
34990
34991         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
34992         'constant' keywords for declaration of pointers that are not modified.
34993
34994         * exp_pakd.adb: Fix English in comment.
34995
34996 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
34997
34998         PR ada/10889
34999         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
35000         copy all attributes of the parent, including the foreign language
35001         convention.
35002
35003 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
35004
35005         PR ada/10565
35006         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
35007         for 'delay until' statement.
35008
35009 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
35010
35011         * Make-lang.in: Replace $(docdir) with doc.
35012         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
35013         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
35014         to use consistent MAKEINFO rule.
35015         (ada.man, ada.srcman): Dummy entry.
35016         (ADA_INFOFILES): Define.
35017         (ada.info, ada.srcinfo): New rules.
35018
35019 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
35020
35021         * utils.c: Update copyright notice, missed in previous change.
35022
35023 2004-01-19  Vincent Celier  <celier@gnat.com>
35024
35025         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
35026         args if Bind is True. Set First_ALI, if not already done.
35027         (Build_Library): For Stand Alone Libraries, extract from one ALI file
35028         an eventual --RTS switch, for gnatbind, and all backend switches +
35029         --RTS, for linking.
35030
35031 2004-01-19  Robert Dewar  <dewar@gnat.com>
35032
35033         * sem_attr.adb, memtrack.adb: Minor reformatting
35034
35035 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
35036
35037         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
35038         that rename enumeration literals. This is properly done in sem_eval.
35039
35040         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
35041         to functions that rename enumeration literals.
35042
35043         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
35044         functions that rename enumeration literals.
35045
35046 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
35047
35048         * Make-lang.in (utils.o): Depend on target.h.
35049         * utils.c: Include target.h.
35050         (process_attributes): Use targetm.have_named_sections instead
35051         of ASM_OUTPUT_SECTION_NAME.
35052
35053 2004-01-16  Andreas Jaeger  <aj@suse.de>
35054
35055         * Makefile.in: Add $(DESTDIR).
35056
35057 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
35058
35059         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
35060         also when not defining if a Size clause applies. That information is
35061         not to be ignored.
35062
35063 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
35064
35065         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
35066         symbolic links for the shared gnat run time when needed.
35067
35068 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
35069
35070         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
35071         for writing, and terminate with an error message if not.
35072
35073 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
35074
35075         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
35076         warning on an access to subprogram in an instance, when the target
35077         type is declared in the same generic unit.
35078         (Eval_Attribute): If 'access is known to fail accessibility check,
35079         rewrite as a raise statement.
35080
35081 2004-01-15  GNAT Script  <nobody@gnat.com>
35082
35083         * Make-lang.in: Makefile automatically updated
35084
35085 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
35086
35087         * Make-lang.in (ada.srcextra): Dummy entry.
35088
35089 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
35090
35091         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
35092
35093 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
35094
35095         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
35096         components that are initialized with aggregates.
35097
35098 2004-01-13  Vincent Celier  <celier@gnat.com>
35099
35100         * gnatlink.adb (Process_Binder_File): To find directory of shared
35101         libgcc, if "gcc-lib" is not a subdirectory, look for the last
35102         subdirectory "lib" in the path of the shared libgnat or libgnarl.
35103
35104         * make.adb (Gnatmake): If GCC version is at least 3, link with
35105         -shared-libgcc, when there is at least one shared library project.
35106
35107         * opt.ads (GCC_Version): New integer constant.
35108
35109         * adaint.c (get_gcc_version): New function.
35110
35111 2004-01-13  Robert Dewar  <dewar@gnat.com>
35112
35113         * sem_dist.adb, sem_res.adb, sem_util.adb,
35114         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
35115         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
35116
35117 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
35118
35119         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
35120         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
35121         declarations.
35122
35123 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
35124
35125         * misc.c: Remove trailing spaces.
35126         Update copyright notice missed in previous change.
35127
35128         PR ada/13572
35129         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
35130         prefix/share/make
35131
35132         * Makefile.generic: Update copyright.
35133         Add license notice.
35134
35135         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
35136         of prefix/share/make.
35137
35138         * Makefile.prolog: Update copyright.
35139         Add license notice.
35140
35141 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
35142
35143         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
35144         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
35145         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
35146         instead of String.
35147
35148         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
35149         signature.
35150
35151 2004-01-12  Javier Miranda  <miranda@gnat.com>
35152
35153         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
35154         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
35155         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
35156         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
35157         Component_Definition node.
35158
35159 2004-01-12  Ed Falis  <falis@gnat.com>
35160
35161         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
35162
35163 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
35164
35165         * link.c: Change default libgnat kind to STATIC for FreeBSD.
35166
35167 2004-01-12  Bernard Banner  <banner@gnat.com>
35168
35169         * Makefile.in: map 86numaux to a-numaux for x86_64
35170
35171 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
35172
35173         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
35174         generated to rename a generic actual, go to the actual itself, the
35175         subtype is not a user-visible entity.
35176
35177         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
35178         part is a private subtype, reset the visibility of its full view, if
35179         any, to be consistent.
35180
35181         PR ada/13417
35182         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
35183         to use a generic package G as a formal package for another generic
35184         declared within G.
35185
35186 2004-01-12  Robert Dewar  <dewar@gnat.com>
35187
35188         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
35189
35190         * usage.adb: Remove mention of obsolete -gnatwb switch
35191         Noticed during code reading
35192
35193 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
35194
35195         * 1ssecsta.adb: Minor changes for -gnatwa warnings
35196
35197 2004-01-12  GNAT Script  <nobody@gnat.com>
35198
35199         * Make-lang.in: Makefile automatically updated
35200
35201 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
35202
35203         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
35204
35205 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
35206
35207         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
35208
35209 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
35210
35211         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
35212         Update comment and copyright date.
35213         * stamp-xgnatug: Delete.
35214
35215 2004-01-05  Robert Dewar  <dewar@gnat.com>
35216
35217         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
35218         be modified by the binder generated main program if the -D switch is
35219         used.
35220
35221         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
35222         imported functions (since now we expect this to be done for imported
35223         functions)
35224
35225         * 5vtaprop.adb: Add several ??? for sections requiring more comments
35226         Minor reformatting throughout
35227
35228         * 5zinit.adb: Minor reformatting
35229         Add 2004 to copyright date
35230         Minor changes to avoid -gnatwa warnings
35231         Correct some instances of using OR instead of OR ELSE (noted while
35232         doing reformatting)
35233
35234         * sprint.adb: Minor updates to avoid -gnatwa warnings
35235
35236         * s-secsta.ads, s-secsta.adb:
35237         (SS_Get_Max): New function to obtain high water mark for ss stack
35238         Default_Secondary_Stack is not a constant since it may be modified by
35239         the binder generated main program if the -D switch is used.
35240
35241         * switch-b.adb: New -Dnnn switch for binder
35242
35243         * switch-c.adb:
35244         Make -gnatg imply all warnings currently in -gnatwa
35245
35246         * vms_conv.adb: Minor reformatting
35247         Add 2004 to copyright notice
35248         Add 2004 to printed copyright notice
35249
35250         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
35251         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
35252         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
35253         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
35254         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
35255         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
35256         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
35257         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
35258         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
35259         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
35260         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
35261         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
35262         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
35263         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
35264         checks.adb, clean.adb, cstand.adb, einfo.ads,
35265         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
35266         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
35267         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
35268         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
35269         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
35270         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
35271         Minor reformatting and code clean ups.
35272         Minor changes to prevent -gnatwa warnings
35273
35274         * ali.adb: Minor reformatting and cleanup of code
35275         Acquire new SS indication of secondary stack use from ali files
35276
35277         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
35278         (since now we expect this to be done for imported functions)
35279
35280         * bindgen.adb: Generate call to modify default secondary stack size if
35281         -Dnnn switch given
35282
35283         * bindusg.adb: Add line for new -D switch
35284
35285         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
35286         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
35287         Add circuitry for both records and arrays to avoid gigi
35288         processing if the type involved has non-bit-aligned components
35289
35290         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
35291         N_String_Literal node always references an E_String_Literal_Subtype
35292         entity. This may not be true in the future.
35293         (Possible_Bit_Aligned_Component): Move processing of
35294         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
35295
35296         * exp_ch6.adb (Expand_Thread_Body): Pick up
35297         Default_Secondary_Stack_Size as variable so that we get value modified
35298         by possible -Dnnn binder parameter.
35299
35300         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
35301         (Type_May_Have_Bit_Aligned_Components): New function.
35302
35303         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
35304         (Type_May_Have_Bit_Aligned_Components): New function.
35305
35306         * fe.h: (Set_Identifier_Casing): Fix prototype.
35307         Add declaration for Sem_Elim.Eliminate_Error_Msg.
35308         Minor reformatting.
35309
35310         * freeze.adb (Freeze_Entity): Add RM reference to error message about
35311         importing constant atomic/volatile objects.
35312         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
35313         unless explicit Pure_Function pragma given, to avoid insidious bug of
35314         call to non-pure imported function getting eliminated.
35315
35316         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
35317         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
35318         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
35319         Add 2004 to printed copyright notice
35320
35321         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
35322         stack used.
35323
35324         * Makefile.rtl: Add entry for g-sestin.o
35325         g-sestin.ads: New file.
35326
35327         * mdll.adb: Minor changes to avoid -gnatwa warnings
35328
35329         * mlib-tgt.adb: Minor reformatting
35330
35331         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
35332         New switch Sec_Stack_Used (GNAT, GNATBIND)
35333         Make Default_Secondary_Stack_Size a variable instead of a constant,
35334         so that it can be modified by the new -Dnnn bind switch.
35335
35336         * rtsfind.adb (Load_Fail): Give full error message in configurable
35337         run-time mode if all_errors mode is set. This was not done in the case
35338         of a file not found, which was an oversight.
35339         Note if secondary stack unit is used by compiler.
35340
35341         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
35342         ineffective elaborate all pragmas on non-visible packages (this
35343         happened when a renamed subprogram was called). Now the elaborate all
35344         always goes on the package containing the renaming rather than the one
35345         containing the renamed subprogram.
35346
35347         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
35348         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
35349
35350         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
35351         has an Etype that references an E_String_Literal.
35352         (Eval_String_Literal): Avoid assumption that N_String_Literal node
35353         always references an E_String_Literal_Subtype entity. This may not
35354         be true in the future.
35355
35356         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
35357         pragma location.
35358
35359         * sem_res.adb (Resolve): Specialize msg for function name used in proc
35360         call.
35361
35362 2004-01-05  Ed Falis  <falis@gnat.com>
35363
35364         * g-debuti.adb: Replaced direct boolean operator with short-circuit
35365         form.
35366
35367 2004-01-05  Vincent Celier  <celier@gnat.com>
35368
35369         * bld.adb: Minor comment updates
35370         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
35371         of Item_Name).
35372
35373         * make.adb (Gnatmake): Special process for files to compile/check when
35374         -B is specified. Fail when there are only foreign mains in attribute
35375         Main of the project file and -B is not specified. Do not skip bind/link
35376         steps when -B is specified.
35377
35378         * makeusg.adb: Document new switch -B
35379
35380         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
35381
35382         * switch-m.adb: (Scan_Make_Switches): Process -B switch
35383
35384         * vms_data.ads: Add new GNAT PRETTY qualifier
35385         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
35386
35387 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35388
35389         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
35390         case.
35391
35392         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
35393         Set_Identifier_Casing.
35394
35395         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
35396         has size that overflows.
35397
35398 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
35399
35400         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
35401         -gnatwa warning on static condition.
35402
35403 2004-01-05  Doug Rupp  <rupp@gnat.com>
35404
35405         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
35406
35407 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
35408
35409         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
35410         all attributes, including read-only attribute.
35411
35412 2004-01-05  Pascal Obry  <obry@gnat.com>
35413
35414         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
35415         library naming scheme.
35416
35417         * mlib-prj.adb (Build_Library): Generate different names for the static
35418         or dynamic version of the GNAT runtime. This is needed to support the
35419         new shared library naming scheme.
35420         (Process_Binder_File): Add detection of shared library in binder file
35421         based on the new naming scheme.
35422
35423         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
35424         scheme for the shared runtime libraries.
35425
35426         * Makefile.in:
35427         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
35428         scheme.
35429         (install-gnatlib): Do not create symlinks for shared libraries.
35430         (gnatlib-shared-default): Idem.
35431         (gnatlib-shared-dual-win32): New target. Not used for now as the
35432         auto-import feature does not support arrays/records.
35433         (gnatlib-shared-win32): Do not create copy for the shared libraries.
35434         (gnatlib-shared-vms): Fix shared runtime libraries names.
35435
35436         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
35437         dependent runtime shared library name.
35438
35439 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
35440
35441         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
35442         than the object.
35443
35444 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
35445
35446         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
35447         protected objects when allocator has a subtype indication, not a
35448         qualified expression. Note that qualified expressions may have to be
35449         checked when limited aggregates are implemented.
35450
35451         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
35452         pure, emit warning.
35453         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
35454         subprogram is imported, remove warning.
35455
35456 2004-01-05  Geert Bosch  <bosch@gnat.com>
35457
35458         * s-poosiz.adb: Update copyright notice.
35459         (Allocate): Use Task_Lock to protect against concurrent access.
35460         (Deallocate): Likewise.
35461
35462 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
35463
35464         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
35465         comment.
35466
35467 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
35468
35469         * gnat_ug.texi: Force a CVS commit by updating copyright.
35470         * gnat_ug_vxw.texi: Regenerate.
35471         * gnat_ug_wnt.texi: Regenerate.
35472         * gnat_ug_vms.texi: Regenerate.
35473         * gnat_ug_unx.texi: Regenerate.
35474
35475 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
35476
35477         * trans.c: Remove uses of "register" specifier in
35478         declarations of local variables.
35479
35480 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
35481
35482         * stamp-xgnatug: New stamp file.
35483         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
35484         (ada/doctools/xgnatug): Add $(build_exeext).
35485         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
35486         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
35487
35488 2003-12-17  Ed Falis  <falis@gnat.com>
35489
35490         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
35491         eliminate warning.
35492
35493         * a-exextr.adb: Add context clause for
35494         Ada.Exceptions.Last_Chance_Handler.
35495
35496 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
35497
35498         * cstand.adb (Create_Standard): Change the way how the declaration of
35499         the Duration type is created (making it the same way as it is for all
35500         the other standard types).
35501
35502 2003-12-17  Robert Dewar  <dewar@gnat.com>
35503
35504         * s-crtl.ads: Fix header format
35505         Change Pure to Preelaborate
35506
35507 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
35508
35509         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
35510         the expression type only if it is declared in the current unit.
35511
35512         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
35513         are universal and already analyzed, as can occur in constrained
35514         subcomponents that depend on discriminants, when one constraint is a
35515         subtype mark.
35516
35517         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
35518         type Any_Fixed is legal as the argument of a conversion, if only one
35519         fixed-point type is in context.
35520
35521 2003-12-17  GNAT Script  <nobody@gnat.com>
35522
35523         * Make-lang.in: Makefile automatically updated
35524
35525 2003-12-15  Robert Dewar  <dewar@gnat.com>
35526
35527         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
35528         sec stack size.
35529
35530 2003-12-15  Vincent Celier  <celier@gnat.com>
35531
35532         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
35533         (Gnatchop): Do not set failure status when reporting the number of
35534         warnings.
35535
35536 2003-12-15  Doug Rupp  <rupp@gnat.com>
35537
35538         * s-ctrl.ads: New file.
35539
35540         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
35541
35542         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
35543         (GNATBIND_OBJS): Add ada/s-crtl.o.
35544
35545         * Makefile.in [VMS]: Clean up ifeq rules.
35546
35547         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
35548         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
35549         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
35550         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
35551         s-tasdeb.adb: Update copyright.
35552         Import System.CRTL.
35553         Make minor modifications to use System.CRTL declared functions instead
35554         of importing locally.
35555
35556 2003-12-15  GNAT Script  <nobody@gnat.com>
35557
35558         * Make-lang.in: Makefile automatically updated
35559
35560 2003-12-11  Ed Falis  <falis@gnat.com>
35561
35562         * 5zinit.adb: Clean up.
35563
35564         * 5zintman.adb (Notify_Exception): replaced case statement with a call
35565         to __gnat_map_signal, imported from init.c to support
35566         signal -> exception mappings that depend on the vxWorks version.
35567
35568         * init.c:
35569         Created and exported __gnat_map_signal to support signal -> exception
35570         mapping that is dependent on the VxWorks version.
35571         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
35572
35573 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
35574
35575         * 5wosinte.ads: Link with -mthreads switch.
35576
35577 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
35578
35579         * init.c (__gnat_install_handler [NetBSD]): Set
35580         __gnat_handler_installed, as done on all other platforms.
35581         Remove duplicated code.
35582
35583 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
35584
35585         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
35586
35587 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
35588
35589         * sinfo.ads: Fix inconsistent example code in comment.
35590
35591 2003-12-11  Robert Dewar  <dewar@gnat.com>
35592
35593         * a-tiinau.adb: Add a couple of comments
35594
35595         * sem_ch3.adb: Minor reformatting
35596
35597         * sem_prag.adb:
35598         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
35599         Minor reformatting throughout
35600
35601 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
35602
35603         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
35604         bounds of a loop, create a separate block in order to generate proper
35605         cleanup actions to prevent memory leaks.
35606
35607         * sem_res.adb (Resolve_Call): After a call to
35608         Establish_Transient_Scope, the call may be rewritten and relocated, in
35609         which case no further processing is needed.
35610
35611         * sem_util.adb: (Wrong_Type): Refine previous fix.
35612          Fixes ACATS regressions.
35613
35614         PR ada/13353
35615         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
35616         be inlined.
35617
35618 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
35619
35620         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
35621         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
35622         obsolete files.
35623
35624         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
35625         (rts-zfp): Ditto.
35626
35627 2003-12-08  Robert Dewar  <dewar@gnat.com>
35628
35629         * 7sintman.adb: Minor reformatting
35630
35631         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
35632         standard linker options to get standard libraries linked. We now plan
35633         to provide dummy versions of these libraries to match the appropriate
35634         configurable run-time (e.g. if a library is not needed at all, provide
35635         a dummy empty library).
35636
35637         * targparm.ads: Configurable_Run_Time mode no longer affects linker
35638         options (-L parameters and standard libraries). What we plan to do is
35639         to provide dummy libraries where the libraries are not required.
35640
35641         * gnatbind.adb: Minor comment improvement
35642
35643 2003-12-08  Javier Miranda  <miranda@gnat.com>
35644
35645         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
35646         aggregate in the parent. Otherwise constants with limited aggregates
35647         are not supported. Add new formal to pass the component type (Ctype).
35648         It is required to call the corresponding IP subprogram in case of
35649         default initialized components.
35650         (Gen_Assign): In case of default-initialized component, generate a
35651         call to the IP subprogram associated with the component.
35652         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
35653         of aggregate with default initialized components.
35654         (Has_Default_Init_Comps): Improve implementation to recursively check
35655         all the present expressions.
35656
35657         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
35658         to indicate that the initialization call corresponds to a
35659         default-initialized component of an aggregate.
35660         In case of default initialized aggregate with tasks this parameter is
35661         used to generate a null string (this is just a workaround that must be
35662         improved later). In case of discriminants, this parameter is used to
35663         generate a selected component node that gives access to the discriminant
35664         value.
35665
35666         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
35667         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
35668         allocated aggregates with default-initialized components.
35669
35670         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
35671         the box notation is used in positional aggregates.
35672
35673 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
35674
35675         * lib.ads: Fix typo in comment
35676
35677 2003-12-08  Vincent Celier  <celier@gnat.com>
35678
35679         * prj.adb (Project_Empty): New component Unkept_Comments
35680         (Scan): Remove procedure; moved to Prj.Err.
35681
35682         * prj.ads (Project_Data): New Boolean component Unkept_Comments
35683         (Scan): Remove procedure; moved to Prj.Err.
35684
35685         * prj-dect.adb: Manage comments for the different declarations.
35686
35687         * prj-part.adb (With_Record): New component Node
35688         (Parse): New Boolean parameter Store_Comments, defaulted to False.
35689         Set the scanner to return ends of line and comments as tokens, if
35690         Store_Comments is True.
35691         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
35692         comments are associated with these nodes. Store the node IDs in the
35693         With_Records.
35694         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
35695         With_Records.
35696         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
35697         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
35698         current project. Call Tree.Restore afterwards. Set the various nodes
35699         for comment storage (Next_End, End_Of_Line, Previous_Line,
35700         Previous_End).
35701
35702         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
35703         defaulted to False.
35704
35705         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
35706         to False. When Truncated is True, truncate the string, never go to the
35707         next line.
35708         (Write_End_Of_Line_Comment): New procedure
35709         (Print): Process comments for nodes N_With_Clause,
35710         N_Package_Declaration, N_String_Type_Declaration,
35711         N_Attribute_Declaration, N_Typed_Variable_Declaration,
35712         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
35713         Process nodes N_Comment.
35714
35715         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
35716         without comments and there are some comments, set the flag
35717         Unkept_Comments to True.
35718         (Scan): If there are comments, set the flag Unkept_Comments to True and
35719         clear the comments.
35720         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
35721         (Next_End_Nodes: New table
35722         (Comment_Zones_Of): New function
35723         (Scan): New procedure; moved from Prj. Accumulate comments in the
35724         Comments table and set end of line comments, comments after, after end
35725         and before end.
35726         (Add_Comments): New procedure
35727         (Save, Restore, Seset_State): New procedures
35728         (There_Are_Unkept_Comments): New function
35729         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
35730         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
35731         procedures.
35732         (First_Comment_After, First_Comment_After_End): New functions
35733         (First_Comment_Before, First_Comment_Before_End): New functions
35734         (Next_Comment): New function
35735         (End_Of_Line_Comment, Follows_Empty_Line,
35736         Is_Followed_By_Empty_Line): New functions
35737         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
35738         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
35739         (Set_Next_Comment): New procedure
35740         (Default_Project_Node): Associate comment before if the node can store
35741         comments.
35742
35743         * scans.ads (Token_Type): New enumeration value Tok_Comment
35744         (Comment_Id): New global variable
35745
35746         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
35747         defaulted to False.
35748         (Scan): Store position of start of comment. If comments are tokens, set
35749         Comment_Id and set Token to Tok_Comment when scanning a comment.
35750         (Set_Comment_As_Token): New procedure
35751
35752         * sinput-p.adb: Update Copyright notice
35753         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
35754         that no longer exists.
35755
35756 2003-12-08  Javier Miranda  <miranda@gnat.com>
35757
35758         * sem_aggr.adb: Add dependence on Exp_Tss package
35759         Correct typo in comment
35760         (Resolve_Aggregate): In case of array aggregates set the estimated
35761         type of the aggregate before calling resolve. This is needed to know
35762         the name of the corresponding IP in case of limited array aggregates.
35763         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
35764         in case of default initialized array components.
35765
35766         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
35767         types. Required to give support to limited aggregates in generic
35768         formals.
35769
35770 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
35771
35772         * sem_ch3.adb (Check_Initialization): For legality purposes, an
35773         inlined body functions like an instantiation.
35774         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
35775         until bounds are analyzed, to diagnose premature use of type.
35776
35777         * sem_util.adb (Wrong_Type): Improve error message when the type of
35778         the expression is used prematurely.
35779
35780 2003-12-08  GNAT Script  <nobody@gnat.com>
35781
35782         * Make-lang.in: Makefile automatically updated
35783
35784 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
35785
35786         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
35787         they are automatically generated by Make-lang.in and cause nothing but
35788         maintenance troubles.
35789
35790 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
35791
35792         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
35793         version of this unit).
35794
35795 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
35796
35797         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
35798         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
35799         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
35800         the body of System.Interrupt_Management common to several targets.
35801         Update copyright notice when appropriate.
35802
35803         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
35804         constant.
35805
35806         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
35807         to ensure that the kernel fills in the interrupted context structure
35808         before calling a signal handler, which is necessary to be able to
35809         unwind past it. Update the copyright notice.
35810
35811 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
35812
35813         * a-elchha.ads: New file.
35814
35815         * a-elchha.adb: New default last chance handler. Contents taken from
35816         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
35817
35818         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
35819         is moved to a-elchha.adb to provide a target-independent default last
35820         chance handler.
35821
35822         * Makefile.rtl: Add a-elchha.o
35823
35824         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
35825
35826 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
35827
35828         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
35829         declared in an instance, do not inline the call if the instance is not
35830         frozen yet, to prevent order of elaboration problems.
35831
35832         * sem_prag.adb: Add comments for previous fix.
35833
35834 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
35835
35836         * g-table.adb: Use the right variable in Set_Item.
35837         Update copyright notice.
35838
35839 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
35840
35841         * Makefile.in: Remove unused rules.
35842
35843 2003-12-05  Vincent Celier  <celier@gnat.com>
35844
35845         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
35846         -nostdlib. Not needed here after all.
35847
35848 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
35849
35850         PR ada/11724
35851         * adaint.h, adaint.c, g-os_lib.ads:
35852         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
35853         on some platforms (including FreeBSD), it is a 64 bit value.
35854         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
35855
35856 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
35857
35858         * gnatvsn.ads (Library_Version): Now contain only the relevant
35859         version info.
35860         (Verbose_Library_Version): New constant.
35861
35862         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
35863         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
35864         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
35865
35866         * gnatlbr.adb: Clean up: replace Library_Version by
35867         Verbose_Library_Version.
35868
35869         * make.adb, lib-writ.adb, exp_attr.adb:
35870         Clean up: replace Library_Version by Verbose_Library_Version.
35871
35872         * 5lintman.adb: Removed.
35873
35874         * Makefile.in:
35875         Update and simplify computation of LIBRARY_VERSION.
35876         Fix computation of GSMATCH_VERSION.
35877         5lintman.adb is no longer used: replaced by 7sintman.adb.
35878
35879 2003-12-03  Robert Dewar  <dewar@gnat.com>
35880
35881         * exp_ch5.adb:
35882         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
35883         name. Modified to consider small non-bit-packed arrays as troublesome
35884         and in need of component-by-component assigment expansion.
35885
35886 2003-12-03  Vincent Celier  <celier@gnat.com>
35887
35888         * lang-specs.h: Process nostdlib as nostdinc
35889
35890         * back_end.adb: Update Copyright notice
35891         (Scan_Compiler_Arguments): Process -nostdlib directly.
35892
35893 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
35894
35895         * Makefile.in:
35896         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
35897         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
35898         included in HIE_NONE_TARGET_PAIRS.
35899
35900 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
35901
35902         * sem_attr.adb:
35903         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
35904         is legal in an instance, because legality is cheched in the template.
35905
35906         * sem_prag.adb:
35907         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
35908         appplied to an unchecked conversion of a formal parameter.
35909
35910         * sem_warn.adb:
35911         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
35912         variables.
35913
35914 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
35915
35916         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
35917         routines. The second one is new functionality to deal with backtracing
35918         through signal handlers.
35919         (unwind): Split into the two separate subroutines above.
35920         Update the documentation, and deal properly with sizeof (REG) different
35921         from sizeof (void*).
35922
35923 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
35924
35925         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
35926         so that the debugger can reliably access the value of the parameter,
35927         and therefore is able to display the exception name when an exception
35928         breakpoint is reached.
35929
35930 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
35931
35932         * fmap.adb: Fix typo in warning message.
35933
35934         * g-socket.ads, g-socket.adb: Make Free a visible instance of
35935         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
35936
35937 2003-12-01  Vincent Celier  <celier@gnat.com>
35938
35939         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
35940         ther is no Afile.
35941         (Build_Library): Get the switches only if Default_Switches is declared
35942         in package Binder.
35943
35944 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
35945
35946         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
35947         actuals that are indexed components, reanalyze actual to ensure that
35948         packed array references are properly expanded.
35949
35950         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
35951         attempted assignment to a discriminant.
35952
35953 2003-12-01  Robert Dewar  <dewar@gnat.com>
35954
35955         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
35956         reformatting.
35957
35958         * switch-c.adb: Minor reformatting of comments
35959
35960 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
35961
35962         * Makefile.in: Clean ups.
35963
35964 2003-12-01  GNAT Script  <nobody@gnat.com>
35965
35966         * Make-lang.in: Makefile automatically updated
35967
35968 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
35969
35970         * 5wsystem.ads: Disable zero cost exception, not ready yet.
35971
35972 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
35973
35974         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
35975         to force serialization.
35976
35977 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
35978
35979         * g-socket.ads, g-socket.adb:
35980         Clarify documentation of function Stream. Introduce a Free procedure
35981         to release the returned Stream once it becomes unused.
35982
35983         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
35984
35985 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
35986
35987         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
35988         since NT 4 cannot handle timeout values that are too large,
35989         e.g. DWORD'Last - 1.
35990
35991 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
35992
35993         * exp_ch4.adb:
35994         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
35995         in procedure calls and whose expansion must be deferred.
35996
35997         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
35998         is in exp_ch4.
35999
36000         * sem_ch3.adb:
36001         (Build_Derived_Array_Type): Create operator for unconstrained type
36002         if ancestor is unconstrained.
36003
36004 2003-11-26  Vincent Celier  <celier@gnat.com>
36005
36006         * make.adb (Project_Object_Directory): New global variable
36007         (Change_To_Object_Directory): New procedure
36008         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
36009         of Change_Dir directly. Do not change working directory to object
36010         directory of main project after each compilation.
36011         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
36012         directly.
36013         Change to object directory of main project before binding step.
36014         (Initialize): Initialize Project_Object_Directory to No_Project
36015
36016         * mlib-prj.adb:
36017         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
36018         binding a Stand-Alone Library.
36019
36020         * output.adb: Update Copyright notice
36021         (Write_Char): Output buffer when full
36022
36023 2003-11-26  Robert Dewar  <dewar@gnat.com>
36024
36025         * sem_ch13.adb: (Check_Size): Reset size if size is too small
36026
36027         * sem_ch13.ads:
36028         (Check_Size): Fix documentation to include bit-packed array case
36029
36030         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
36031
36032         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
36033
36034         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
36035
36036 2003-11-24  Arnaud Charlet  <charlet@act-europe.fr>
36037
36038         PR ada/13142
36039         * utils.c (init_gigi_decls): Change name of built-in setjmp to
36040         __builtin_setjmp, since this is apparently needed by recent
36041         non Ada changes.
36042
36043 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
36044
36045         * adadecode.c: Only include ctype.h if not IN_GCC.
36046         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
36047
36048 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
36049
36050         * Makefile.in:
36051         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
36052         signals and interrupts.
36053
36054         * 5zintman.ads: New File.
36055
36056         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
36057         add exception signals to the set of unmasked signals.
36058
36059         * 5ztaprop.adb:
36060         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
36061         between signals and interrupts.
36062         Add to Unblocked_Signal_Mask the set of signals that are in
36063         Keep_Unmasked.
36064
36065         * 7sinmaop.adb:
36066         Adding a check to see whether the Interrupt_ID we want to unmask is in
36067         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
36068         reason is that the index type of the Keep_Unmasked array is not always
36069         Interrupt_ID; it may be a subtype of Interrupt_ID.
36070
36071 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
36072
36073         * exp_util.adb:
36074         (Remove_Side_Effects): Condition constantness of object created for a
36075          an unchecked type conversion on the constantness of the expression
36076          to ensure the correct value for 'Constrained when passing components
36077          of view-converted class-wide objects.
36078
36079 2003-11-24  Robert Dewar  <dewar@gnat.com>
36080
36081         * par-load.adb (Load): Improve handling of misspelled and missing units
36082         Removes several cases of compilation abandoned messages
36083
36084         * lib.adb: (Remove_Unit): New procedure
36085
36086         * lib.ads: (Remove_Unit): New procedure
36087
36088         * lib-load.adb: Minor reformatting
36089
36090 2003-11-24  Vincent Celier  <celier@gnat.com>
36091
36092         * make.adb:
36093         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
36094         (Marking_Label): Label to mark processed source files. Incremented for
36095         each executable.
36096         (Gnatmake): Increase Marking_Labet for each executable
36097         (Is_Marked): Compare against marking label
36098         (Mark): Mark with marking label
36099
36100 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
36101
36102         * s-thread.ads:
36103         Move the declaration of the TSD for System.Threads to System.Soft_Links.
36104         Add some comments.
36105
36106         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
36107         (rts-cert): build a single relocatable object for the run-time lib.
36108         Fix perms.
36109
36110 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
36111
36112         * Make-lang.in:
36113         Use gnatls rather than gcc to obtain the location of GNAT RTL for
36114         crosstools build.
36115
36116 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
36117
36118         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
36119         can not use it as before (that is, as a variable) when dumping it into
36120         the tree file. Add a local variable to store the result of this
36121         function and to be used as the string to be written into the tree.
36122
36123         * scn.adb (Initialize_Scanner): Add comments explaining the recent
36124         changes.
36125
36126         * sinput.adb (Source_First, Source_Last): In case of
36127         Internal_Source_File, replace returning attributes of
36128         Internal_Source_Ptr (which is wrong) with returning attributes of
36129         Internal_Source.
36130
36131 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
36132
36133         * sem_ch3.adb:
36134         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
36135         used for implicit concatenation operators.
36136         Code cleanup.
36137
36138         * sem_elab.adb:
36139         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
36140         task bodies that are in the scope of a Suppress pragma.
36141         (Check_A Call): Use the flag to prevent spurious elaboration checks.
36142
36143         * sinfo.ads, sinfo.adb:
36144         New flag No_Elaboration_Check on function/procedure calls, to properly
36145         suppress checks on calls in task bodies that are within a local suppress
36146         pragma.
36147
36148         * exp_ch4.adb:
36149         (Expand_Concatenate_Other): Use the proper integer type for the
36150         expression for the upper bound, to avoid universal_integer computations
36151         when possible.
36152
36153 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
36154
36155         * .cvsignore: Delete.
36156
36157 2003-11-21  Andreas Schwab  <schwab@suse.de>
36158
36159         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
36160
36161 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
36162
36163         * 5wsystem.ads: Enable zero cost exception.
36164
36165 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
36166
36167         * 5ztiitho.adb: Remove an unreferenced variable.
36168
36169 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
36170
36171         * adaint.c: For FreeBSD, use mkstemp.
36172
36173 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
36174
36175         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
36176
36177 2003-11-21  Robert Dewar  <dewar@gnat.com>
36178
36179         * bld.adb: Remove useless USE of gnatvsn
36180
36181         * gnatchop.adb: Minor reformatting
36182         Clean up version handling to be more consistent
36183
36184         * gnatxref.adb: Minor reformatting
36185
36186         * gprcmd.adb: Minor reformatting
36187         Fix output of copyright to be more consistent with other tools
36188
36189 2003-11-21  Vincent Celier  <celier@gnat.com>
36190
36191         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
36192
36193 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
36194
36195         * atree.adb (Initialize): Add initializations for global variables
36196         used in New_Copy_Tree.
36197
36198         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
36199         Internal_Source_File as the actual).
36200         Put the set of statements creating Any_Character before the set of
36201         statements creating Any_Array to have Any_Character fully initialized
36202         when it is used in creating Any_Array.
36203
36204         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
36205         not call Scan in case if the actual is Internal_Source_File
36206         Add 2003 to copyright note.
36207
36208         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
36209         processing Internal_Source_File.
36210
36211         * types.ads: Add the constant Internal_Source_File representing the
36212         source buffer for artificial source-code-like strings created within
36213         the compiler (the definition of Source_File_Index is changed).
36214
36215 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
36216
36217         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
36218         56system.ads: New file, FreeBSD version.
36219
36220 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
36221
36222         * Make-lang.in (ada.extraclean): Delete.
36223
36224 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
36225
36226         * gnatmem.adb: Clean up verbose output.
36227
36228         * gprcmd.adb: Change copyright to FSF.
36229
36230 2003-11-19  Vincent Celier  <celier@gnat.com>
36231
36232         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
36233         and Version (ignored).
36234
36235         * symbols.ads: (Policy): New type
36236         (Initialize): New parameter Reference, Symbol_Policy and
36237         Library_Version.
36238         Remove parameter Force.
36239         Minor reformatting.
36240
36241         * snames.ads, snames.adbadb: New standard names
36242         Library_Reference_Symbol_File and Library_Symbol_Policy
36243
36244         * mlib-prj.adb:
36245         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
36246         project.
36247
36248         * mlib-tgt.adb:
36249         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
36250
36251         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
36252
36253         * prj.adb: (Project_Empty): New component Symbol_Data
36254
36255         * prj.ads: (Policy, Symbol_Record): New types
36256         (Project_Data): New component Symbol_Data
36257
36258         * prj-attr.adb:
36259         New attributes Library_Symbol_File, Library_Symbol_Policy and
36260         Library_Reference_Symbol_File.
36261
36262         * prj-nmsc.adb:
36263         (Ada_Check): When project is a Stand-Alone library project, process
36264         attribute Library_Symbol_File, Library_Symbol_Policy and
36265         Library_Reference_Symbol_File.
36266
36267         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
36268         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
36269         5sml-tgt.adb (Build_Dynamic_Library): New parameter
36270         Symbol_Data (ignored).
36271
36272         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
36273         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
36274         functions Option_File_Name and Version_String. Set new options of
36275         gnatsym related to symbol file, symbol policy and reference symbol
36276         file.
36277
36278         * 5vsymbol.adb:
36279         Extensive modifications to take into account the reference symbol file,
36280         the symbol policy, the library version and to put in the symbol file the
36281         minor and major IDs.
36282
36283         * bld.adb (Process_Declarative_Items): Put second argument of
36284         gprcmd to_absolute between single quotes, to avoid problems with
36285         Windows.
36286
36287         * bld-io.adb: Update Copyright notice.
36288         (Flush): Remove last character of a line, if it is a back slash, to
36289         avoid make problems.
36290
36291         * gnatsym.adb:
36292         Implement new scheme with reference symbol file and symbol policy.
36293
36294         * g-os_lib.ads: (Is_Directory): Clarify comment
36295
36296 2003-11-19  Robert Dewar  <dewar@gnat.com>
36297
36298         * atree.adb: Move New_Copy_Tree global variables to head of package
36299
36300         * errout.adb: Minor reformatting
36301
36302 2003-11-19  Javier Miranda  <miranda@gnat.com>
36303
36304         * sem_ch4.adb: (Diagnose_Call): Improve error message.
36305         Add reference to Ada0Y (AI-50217)
36306
36307         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
36308         sem_util.adb: Add reference to AI-50217
36309
36310         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
36311
36312         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
36313
36314         * sem_aggr.adb: Complete documentation of AI-287 changes
36315
36316         * par-ch4.adb: Document previous changes.
36317
36318         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
36319         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
36320         Ada0Y (AI-50217)
36321
36322         * exp_aggr.adb: Add references to AI-287 in previous changes
36323
36324 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
36325
36326         * exp_ch6.adb:
36327         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
36328         in the rewriting is the result of an inlined call.
36329
36330         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
36331         parameter is a type conversion, use original node to construct the
36332         post-call assignment, because expression may have been rewritten, e.g.
36333         if it is a packed array.
36334
36335         * sem_attr.adb:
36336         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
36337         body, just as it is in an instance.
36338         Categorization routines
36339
36340         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
36341         Instantiate_Object): Set proper sloc reference for message on missing
36342         actual.
36343
36344 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
36345
36346         * Makefile.in: Add FreeBSD libgnat pairs.
36347
36348         * usage.adb: Fix typo in usage message.
36349
36350 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
36351
36352         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
36353         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
36354         pragma Thread_Body.
36355         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
36356
36357         * s-thread.adb: This file is now a dummy implementation of
36358         System.Thread.
36359
36360 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
36361
36362         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
36363
36364 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
36365
36366         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
36367         instanciation references in the parent type description.
36368
36369 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36370
36371         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
36372
36373         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
36374         TYPE_PRECISION directly from esize.
36375
36376 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
36377
36378         * cstreams.c:
36379         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
36380
36381         * init.c: Initialization routines for FreeBSD
36382
36383         * link.c: Link info for FreeBSD
36384
36385         * sysdep.c: Add the case of FreeBSD
36386
36387 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
36388
36389         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
36390         already called in System.Threads.
36391
36392         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
36393         environment task, as it has been moved to System.Threads.Initialization.
36394
36395 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
36396
36397         * adaint.c (__gnatlib_install_locks): Only reference
36398         __gnat_install_locks on VMS, since other platforms can avoid using
36399         --enable-threads=gnat
36400
36401 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36402
36403         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
36404
36405         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
36406         TYPE_PACKED_ARRAY_TYPE_P.
36407         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
36408
36409         Part of PR ada/12806
36410         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
36411         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
36412
36413 2003-11-17  Vincent Celier  <celier@gnat.com>
36414
36415         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
36416         to False.
36417         Do not set exit status to Failure when Warning is True.
36418         (Gnatchop): Make errors "no compilation units found" and
36419         "no source files written" warnings only.
36420
36421         * make.adb (Gnatmake): When using a project file, set
36422         Look_In_Primary_Dir to False.
36423         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
36424         and Local_Configuration_Pragmas in the project where they are declared
36425         not an extending project which might have inherited them.
36426
36427         * osint.adb (Locate_File): If Name is already an absolute path, do not
36428         look for a directory.
36429
36430         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
36431         -gnats (Check_Syntax) is used, issue only a warning, not an error.
36432
36433         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
36434         in objects of type Variable_Value.
36435
36436         * prj.ads: (Variable_Value): New component Project
36437
36438         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
36439         is in a project extended by Project.
36440
36441         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
36442         Project of Variable_Values to this new parameter value.
36443         (Expression): Set component Project of Variable_Values.
36444         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
36445         Set the component Project in array elements.
36446
36447 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
36448
36449         * errout.adb: (Initialize): Add initialization for error nodes.
36450
36451         * sem_ch12.adb (Initialize): Add missing initializations for
36452         Exchanged_Views and Hidden_Entities.
36453
36454 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
36455
36456         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
36457         already instantiated tree for use in subsequent inlining.
36458         (Analyze_Associations, Instantiate_Formal_Subprogram,
36459         Instantiate_Object): improve error message for mismatch in
36460         instantiations.
36461
36462         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
36463         instantiations of subprograms declared in instances.
36464
36465 2003-11-17  Javier Miranda  <miranda@gnat.com>
36466
36467         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
36468         executed only under the Extensions_Allowed flag.
36469
36470 2003-11-17  Robert Dewar  <dewar@gnat.com>
36471
36472         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
36473         zeroes suppressed.
36474         (Address_Image): Fix bug of returning 0x instead of 0x0
36475         Minor reformatting (function specs).
36476
36477         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
36478         (missed case of 33-63)
36479
36480         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
36481
36482         * s-thread.adb: Add comments for pragma Restriction
36483
36484         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
36485         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
36486
36487 2003-11-17  Ed Falis  <falis@gnat.com>
36488
36489         * s-thread.adb: Added No_Tasking restriction for this implementation.
36490
36491 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
36492
36493         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
36494         instanciation references in the parent type description.
36495
36496 2003-11-17  GNAT Script  <nobody@gnat.com>
36497
36498         * Make-lang.in: Makefile automatically updated
36499
36500 2003-11-16  Jason Merrill  <jason@redhat.com>
36501
36502         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
36503         and TAGS files that include them for each front end.
36504
36505 2003-11-14  Andreas Jaeger  <aj@suse.de>
36506
36507         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
36508         is the canonical version.
36509         * misc.c (gnat_handle_option): Likewise.
36510
36511         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
36512
36513         * 5nsystem.ads: New file for x86_64-linux-gnu.
36514
36515 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
36516
36517         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
36518
36519         * comperr.adb: Fix logic in previous change.
36520
36521 2003-11-13  Vincent Celier  <celier@gnat.com>
36522
36523         * 5bml-tgt.adb (Build_Dynamic_Library): Use
36524         Osint.Include_Dir_Default_Prefix instead of
36525         Sdefault.Include_Dir_Default_Name.
36526
36527         * gnatlbr.adb: Update Copyright notice
36528         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
36529         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
36530         instead of Sdefault.Object_Dir_Default_Name
36531
36532         * gnatlink.adb:
36533         (Process_Binder_File): Never suppress the option following -Xlinker
36534
36535         * mdll-utl.adb:
36536         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
36537         Sdefault.Object_Dir_Default_Name.
36538
36539         * osint.ads, osint.adb:
36540         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
36541         Minor reformatting.
36542
36543         * vms_conv.ads: Minor reformating
36544         Remove GNAT STANDARD and GNAT PSTA
36545
36546         * vms_conv.adb:
36547         Allow GNAT MAKE to have several files on the command line.
36548         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
36549         Sdefault.Object_Dir_Default_Name.
36550         Minor Reformating
36551         Remove data for GNAT STANDARD
36552
36553         * vms_data.ads:
36554         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
36555         Remove data for GNAT STANDARD
36556         Remove options and documentation for -gnatwb/-gnatwB: these warning
36557         options no longer exist.
36558
36559 2003-11-13  Ed Falis  <falis@gnat.com>
36560
36561         * 5zthrini.adb: (Init_RTS): Made visible
36562
36563         * 5zthrini.adb:
36564         (Register): Removed unnecessary call to taskVarGet that checked whether
36565          an ATSD was already set as a task var for the argument thread.
36566
36567         * s-thread.adb:
36568         Updated comment to reflect that this is a VxWorks version
36569         Added context clause for System.Threads.Initialization
36570         Added call to System.Threads.Initialization.Init_RTS
36571
36572 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
36573
36574         * 5zthrini.adb:
36575         (Init_RTS): New procedure, for the initialization of the run-time lib.
36576
36577         * s-thread.adb:
36578         Remove dependancy on System.Init, so that this file can be used in the
36579         AE653 sequential run-time lib.
36580
36581 2003-11-13  Robert Dewar  <dewar@gnat.com>
36582
36583         * bindgen.adb: Minor reformatting
36584
36585 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
36586
36587         * checks.adb:
36588         (Apply_Discriminant_Check): Do no apply check if target type is derived
36589         from source type with no applicable constraint.
36590
36591         * lib-writ.adb:
36592         (Ensure_System_Dependency): Do not apply the style checks that may have
36593         been specified for the main unit.
36594
36595         * sem_ch8.adb:
36596         (Find_Selected_Component): Further improvement in error message, with
36597         RM reference.
36598
36599         * sem_res.adb:
36600         (Resolve): Handle properly the case of an illegal overloaded protected
36601         procedure.
36602
36603 2003-11-13  Javier Miranda  <miranda@gnat.com>
36604
36605         * exp_aggr.adb:
36606         (Has_Default_Init_Comps): New function to check the presence of
36607         default initialization in an aggregate.
36608         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
36609         extension aggregate of a limited record. In addition, a new formal
36610         was added to do not initialize the record controller (if any) during
36611         this recursive expansion of ancestors.
36612         (Init_Controller): Add support for limited record components.
36613         (Expand_Record_Aggregate): In case of default initialized components
36614         convert the aggregate into a set of assignments.
36615
36616         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
36617         describing the new syntax.
36618         Nothing else needed to be done because this subprogram delegates part of
36619         its work to P_Precord_Or_Array_Component_Association.
36620         (P_Record_Or_Array_Component_Association): Give support to the new
36621         syntax for default initialization of components.
36622
36623         * sem_aggr.adb:
36624         (Resolve_Aggregate): Relax the strictness of the frontend in case of
36625         limited aggregates.
36626         (Resolve_Record_Aggregate): Give support to default initialized
36627         components.
36628         (Get_Value): In case of default initialized components, duplicate
36629         the corresponding default expression (from the record type
36630         declaration). In case of default initialization in the *others*
36631         choice, do not check that all components have the same type.
36632         (Resolve_Extension_Aggregate): Give support to limited extension
36633         aggregates.
36634
36635         * sem_ch3.adb:
36636         (Check_Initialization): Relax the strictness of the front-end in case
36637         of aggregate and extension aggregates. This test is now done in
36638         Get_Value in a per-component manner.
36639
36640         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
36641         expression corresponds to a limited aggregate. This test is now done
36642         in Get_Value.
36643
36644         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
36645         Box_Present flag.
36646
36647         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
36648         present in an N_Component_Association node
36649
36650 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
36651
36652         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
36653         type-conformant entry only if they are homographs.
36654
36655 2003-11-13  GNAT Script  <nobody@gnat.com>
36656
36657         * Make-lang.in: Makefile automatically updated
36658
36659 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
36660
36661         * adadecode.c: Use <> form of include for ctype.h.
36662         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
36663
36664 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
36665
36666         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
36667         Works around PR middle-end/6552.
36668
36669 2003-11-10  Ed Falis  <falis@gnat.com>
36670
36671         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
36672
36673         * 5zinit.adb: (Install_Handler): Moved back to spec
36674         (Install_Signal_Handlers): Deleted
36675
36676         * 5zthrini.adb: Added context clause for System.Storage_Elements
36677         (Register): Only handles creation of taskVar; initialization moved to
36678         Thread_Body_Enter.
36679         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
36680         Added declaration of environment task secondary stack and
36681         initialization.
36682
36683         * s-thread.adb: Implement bodies for thread body processing
36684
36685         * s-thread.ads:
36686         Added comment identifying supported targets for pragma Thread_Body.
36687
36688 2003-11-10  Pascal Obry  <obry@gnat.com>
36689
36690         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
36691         GNAT_MAX_PATH_LEN.
36692
36693         * s-fileio.adb:
36694         (Open): Properly check for string length before copying into the buffer.
36695         Raises Name_Error if buffer is too small. Note that this was a potential
36696         buffer overflow.
36697
36698 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
36699
36700         * bindgen.adb, comperr.adb: Code clean ups.
36701         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
36702
36703 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
36704
36705         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
36706
36707 2003-11-10  Vincent Celier  <celier@gnat.com>
36708
36709         * gprcmd.adb:
36710         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
36711         installation.
36712
36713         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
36714
36715         * prj.adb: (Project_Empty): Add new boolean component Virtual
36716
36717         * prj.ads: (Virtual_Prefix): New constant string
36718         (Project_Data): New boolean component Virtual
36719
36720         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
36721         a library project is extended by a virtual extending project.
36722
36723         * prj-part.adb:
36724         Modifications throughout to implement extending-all project, including:
36725         (Virtual_Hash, Processed_Hash): New hash tables
36726         (Create_Virtual_Extending_Project): New procedure
36727         (Look_For_Virtual_Projects_For): New procedure
36728
36729         * prj-proc.adb:
36730         (Process): After checking the projects, if main project is an
36731         extending-all project, set the object directory of all virtual extending
36732         project to the object directory of the main project.
36733         Adjust error message when a virtual extending project has the same
36734         object directory as an project being extended.
36735         (Recursive_Process): If name starts with the virtual prefix, set Virtual
36736         to True in the project data.
36737
36738         * prj-tree.adb:
36739         (Default_Project_Node): Add new boolean component Extending_All
36740         (Is_Extending_All): New function
36741         (Set_Is_Extending_All): New procedure
36742
36743         * prj-tree.ads: (Is_Extending_All): New function
36744         (Set_Is_Extending_All): New procedure
36745         (Project_Node_Record): New boolean component Extending_All
36746
36747         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
36748
36749         * vms_data.ads:
36750         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
36751
36752         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
36753         "gprcmd prefix" to define it.
36754
36755 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
36756
36757         * einfo.ads: Fix a typo and remove an extraneous word in comments.
36758
36759         * lib-load.adb:
36760         (Create_Dummy_Package_Unit): Set the scope of the entity for the
36761         created dummy package to Standard_Standard, not to itself, to
36762         defend other parts of the front-end against encoutering a cycle in
36763         the scope chain.
36764
36765         * sem_ch10.adb:
36766         (Analyze_With_Clause): When setting the entities for the successive
36767         N_Expanded_Names that constitute the name of a child unit, do not
36768         attempt to go further than Standard_Standard in the chain of scopes.
36769         This case arises from the placeholder units created by
36770         Create_Dummy_Package_Unit in the case of a with_clause for a
36771         nonexistent child unit.
36772
36773 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
36774
36775         * exp_ch6.adb:
36776         (Expand_Thread_Body): Place subprogram on scope stack, so that new
36777         declarations are given the proper scope.
36778
36779         * sem_ch13.adb:
36780         (Check_Expr_Constants): Reject an expression that contains a constant
36781         created during expansion, and that appears after the object to which
36782         the address clause applies.
36783
36784         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
36785         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
36786         that uses 'Range of a function call with controlled components, so
36787         that the function result can be finalized before starting the loop.
36788
36789         * sem_ch8.adb:
36790         (Find_Selected_Component): Improve error message when prefix is
36791         an implicit dereference of an incomplete type.
36792
36793 2003-11-10  Robert Dewar  <dewar@gnat.com>
36794
36795         * opt.ads: New Print_Standard flag for -gnatS switch
36796
36797         * sem_ch13.adb: Remove some additional checks for unaligned arrays
36798
36799         * cstand.adb (Create_Standard): Print out package standard if -gnatS
36800         switch set
36801
36802         * debug.adb: Update doc for -gnatds to discuss relationship with new
36803         -gnatS flag
36804
36805         * sinfo.adb: Add new field Entity_Or_Associated_Node
36806
36807         * sinfo.ads: Add new field Entity_Or_Associated_Node
36808         Update documentation for Associated_Node and Entity fields to clarify
36809         relationship and usage.
36810
36811         * sprint.adb:
36812         (Write_Id): Properly process Associated_Node field in generic template
36813
36814         * switch-c.adb:
36815         Recognize new -gnatS switch for printing package Standard
36816         This replaces gnatpsta
36817
36818         * usage.adb:
36819         Add line for  new -gnatS switch for printing package Standard
36820         This replaces gnatpsta
36821
36822 2003-11-10  Andreas Jaeger  <aj@suse.de>
36823
36824         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
36825         integer.
36826
36827 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
36828
36829         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
36830         by gnat1.
36831
36832 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
36833
36834         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
36835         no longer needed.
36836
36837         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
36838
36839         * sysdep.c: Add handling of cygwin.
36840
36841 2003-11-10  GNAT Script  <nobody@gnat.com>
36842
36843         * Make-lang.in: Makefile automatically updated
36844
36845 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
36846
36847         PR 12950
36848         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
36849         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
36850         Replace GNAT_ROOT by GCC_ROOT.
36851
36852         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
36853
36854 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
36855
36856         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
36857         and update for changed meaning of GET_MODE_BITSIZE.
36858
36859 2003-11-04  Doug Rupp  <rupp@gnat.com>
36860
36861         * sysdep.c: Problem discovered during IA64 VMS port.
36862         [VMS] #include <unixio.h> to get proper prototypes.
36863
36864         * adaint.c:
36865         Issues discovered/problems fixed during IA64 VMS port.
36866         [VMS] #define _POSIX_EXIT for proper semantics.
36867         [VMS] #include <unixio.h> for proper prototypes.
36868         [VMS] (fork): #define IA64 version.
36869         (__gnat_os_exit): Remove unnecessary VMS specific code.
36870
36871 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36872
36873         Part of PR ada/12806
36874         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
36875         tree, not integer.
36876
36877         * decl.c:
36878         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
36879         not integer.
36880
36881         * targtyps.c, decl.c, misc.c,
36882         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
36883         routines to work around change in FP sizing semantics in GCC.
36884
36885         * utils.c:
36886         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
36887
36888         * gigi.h: (enumerate_modes): New function.
36889
36890         * Make-lang.in: (ada/misc.o): Add real.h.
36891
36892         * misc.c: (enumerate_modes): New function.
36893
36894 2003-11-04  Robert Dewar  <dewar@gnat.com>
36895
36896         * 3vtrasym.adb: Minor reformatting
36897         Use terminology encoded/decoded name, rather than C++ specific notion
36898         of mangling (this is the terminology used throughout GNAT).
36899
36900         * einfo.h: Regenerated
36901
36902         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
36903
36904         * exp_ch6.adb:
36905         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
36906
36907         * par-prag.adb: Add dummy entry for Thread_Body pragma
36908
36909         * rtsfind.ads:
36910         Add entries for System.Threads entities for thread body processing
36911
36912         * sem_attr.adb:
36913         (Analyze_Pragma, Access attributes): Check these are not applied to a
36914         thread body, since this is not permitted
36915
36916         * sem_prag.adb: Add processing for Thread_Body pragma.
36917         Minor comment fix.
36918
36919         * sem_res.adb:
36920         (Resolve_Call): Check for incorrect attempt to call a thread body
36921          procedure with a direct call.
36922
36923         * snames.ads, snames.adb: Add entry for Thread_Body pragma
36924         Add names associated with thread body expansion
36925
36926         * snames.h: Add entry for Thread_Body pragma
36927
36928         * s-thread.adb: Add entries for thread body processing
36929         These are dummy bodies so far
36930
36931         * s-thread.ads: Add documentation on thread body handling.
36932         Add entries for thread body processing.
36933
36934 2003-11-04  Javier Miranda  <miranda@gnat.com>
36935
36936         * sem_ch10.adb:
36937         (Build_Limited_Views): Return after posting an error in case of limited
36938         with_clause on subprograms, generics, instances or generic renamings
36939         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
36940         on subprograms, generics, instances or generic renamings
36941
36942 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
36943
36944         * raise.c (setup_to_install): Correct mistake in last revision; two
36945         arguments out of order.
36946
36947         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
36948         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
36949         notice, missed in previous change.
36950         Remove trailing blanks and other style errors introduced in previous
36951         change.
36952
36953 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
36954
36955         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
36956         rid of the wrapper for a LJM type, ensuring we don't do that if the
36957         field is addressable.  This avoids potential low level type view
36958         mismatches later on, for instance in a by-reference argument passing
36959         process.
36960
36961 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36962
36963         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
36964         aligned at byte boundary.
36965
36966 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
36967
36968         * decl.c (components_to_record): Do not delete the empty variants from
36969         the end of the union type.
36970
36971 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
36972
36973         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
36974         operation for a derived type, an explicit declaration may use a local
36975         subtype of Boolean.
36976
36977 2003-11-04  Vincent Celier  <celier@gnat.com>
36978
36979         * make.adb (Gnatmake): Allow main sources on the command line with a
36980         library project when it is only for compilation (no binding or
36981         linking).
36982
36983 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
36984
36985         * Makefile.in: Remove many duplicate variables.
36986
36987 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
36988
36989         * Make-lang.in (dvi): Move targets to $(docobjdir).
36990         (gnat_ug_vms.dvi): Simplify rule and adjust target.
36991         (gnat_ug_wnt.dvi): Likewise.
36992         (gnat_ug_unx.dvi): Likewise.
36993         (gnat_ug_vxw.dvi): Likewise.
36994         (gnat_rm.dvi): Likewise.
36995         (gnat-style.dvi): Likewise.
36996
36997 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
36998
36999         * gigi.h: Missed commit from update for C90.
37000
37001 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
37002
37003         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
37004
37005 2003-10-31  Andreas Schwab  <schwab@suse.de>
37006
37007         * raise.c (get_action_description_for): Fix typo in last change.
37008
37009 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
37010
37011         PR ada/12761
37012         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
37013         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
37014
37015 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
37016
37017         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
37018         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
37019         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
37020         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
37021         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
37022
37023 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
37024
37025         * 3vtrasym.adb:
37026         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
37027         numbers when symbol name is too long.
37028
37029 2003-10-30  Ed Falis  <falis@gnat.com>
37030
37031         * g-signal.ads, g-signal.adb: New files
37032
37033         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
37034
37035         * Makefile.rtl: Introduce GNAT.Signals
37036
37037 2003-10-30  Robert Dewar  <dewar@gnat.com>
37038
37039         * freeze.adb: Minor reformatting
37040
37041         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
37042
37043         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
37044         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
37045         New handling of Id_Check parameter to improve recognition of keywords
37046         used as identifiers.
37047         Update copyright notice to include 2003
37048
37049 2003-10-29  Robert Dewar  <dewar@gnat.com>
37050
37051         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
37052         sem_ch10.adb: Minor reformatting
37053
37054         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
37055         (Expand_Assign_Record): Test right hand side for bit unaligned as well
37056
37057 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
37058
37059         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
37060         Support for TBK$SYMBOLIZE-based symbolic traceback.
37061
37062 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
37063
37064         * exp_disp.adb:
37065         Revert previous change, that did not work well when pragma No_Run_Time
37066         was used in conjunction with a run-time other than ZFP.
37067
37068 2003-10-29  Vincent Celier  <celier@gnat.com>
37069
37070         * make.adb:
37071         (Gnatmake): When there are no Ada mains in attribute Main, disable the
37072          bind and link steps only is switch -z is not used.
37073
37074 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
37075
37076         * Makefile.generic: Remove duplicated setting of CC.
37077
37078         * Makefile.prolog: Set CC to gcc by default, to override make's
37079         default (cc).
37080
37081         * einfo.h: Regenerated.
37082
37083 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
37084
37085         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
37086         current body, after compiling subunit.
37087
37088         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
37089         when in deleted code, because gigi needs properly ordered freeze
37090         actions to annotate types.
37091
37092         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
37093         prevent the premature freezing of record type that contains
37094         subcomponents with a private type that does not yet have a completion.
37095
37096 2003-10-29  Javier Miranda  <miranda@gnat.com>
37097
37098         * sem_ch12.adb:
37099         (Analyze_Package_Instantiation): Check that instances can not be used in
37100         limited with_clauses.
37101
37102         * sem_ch8.adb:
37103         (Analyze_Package_Renaming): Check that limited withed packages cannot
37104         be renamed. Improve text on error messages related to limited
37105         with_clauses.
37106
37107         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
37108
37109         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
37110         Update copyright notice.
37111
37112         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
37113         (Install_Limited_Context_Clauses): New subprogram that isolates all the
37114         checks required for limited context_clauses and installs the limited
37115         view.
37116         (Install_Limited_Withed_Unit): Complete its documentation.
37117         (Analyze_Context): Check that limited with_clauses are only allowed in
37118         package specs.
37119         (Install_Context): Call Install_Limited_Context_Clauses after the
37120         parents have been installed.
37121         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
37122         package as 'From_With_Type'; this mark indicates that the limited view
37123         is installed. Used to check bad usages of limited with_clauses.
37124         (Build_Limited_Views): Do not add shadow entities to the scope's list
37125         of entities. Do not add real entities to the Non_Limited_Views chain.
37126         Improve error notification.
37127         (Remove_Context_Clauses): Remove context clauses in two phases:
37128         limited views first and regular views later (to maintain the
37129         stack model).
37130         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
37131         its visible entities.
37132
37133 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
37134
37135         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
37136         with any type that Is_Fixed_Point_Type.
37137
37138         * sinfo.ads: Fix documentation for Associated_Node attribute.
37139
37140 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
37141
37142         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
37143         both '-gnatc' and '-gnatt' are specified.
37144
37145         * atree.adb (Initialize): Add initialization for Node_Count (set to
37146         zero).
37147
37148 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37149
37150         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
37151         do not consider as Pure.
37152
37153         Part of implementation of function-at-a-time:
37154
37155         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
37156         (tree_transform): Add new argument to build_component_ref.
37157         (tree_transform, case N_Assignment_Statement): Make and return an
37158         EXPR_STMT.
37159         (tree_transform): If result IS_STMT, set flags and return it.
37160         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
37161
37162         * utils2.c (build_simple_component_ref, build_component_ref): Add new
37163         arg, NO_FOLD_P.
37164         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
37165         (build_allocator): Likewise.
37166
37167         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
37168         Add new arg to build_component_ref.
37169         (maybe_unconstrained_array, unchecked_convert): Likewise.
37170
37171         * ada-tree.def (EXPR_STMT): New code.
37172
37173         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
37174
37175         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
37176         build_component_ref calls.
37177
37178         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
37179
37180         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
37181         (build_component_ref): Add new argument, NO_FOLD_P.
37182
37183 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
37184
37185         * Makefile.generic: Add missing substitution on object_deps handling.
37186
37187         PR ada/5909
37188         * Make-lang.in (check-ada): Enable ACATS test suite.
37189
37190 2003-10-27  Robert Dewar  <dewar@gnat.com>
37191
37192         * exp_ch3.adb:
37193         (Freeze_Array_Type): We do not need an initialization routine for types
37194         derived from String or Wide_String. They should be treated the same
37195         as String and Wide_String themselves. This caused problems with the
37196         use of Initialize_Scalars.
37197
37198         * exp_ch5.adb:
37199         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
37200         composites. This allows use of component clauses that are not byte
37201         aligned.
37202
37203         * sem_prag.adb:
37204         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
37205         is an attempt to pack an array of atomic objects.
37206
37207         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
37208
37209 2003-10-27  Pascal Obry  <obry@gnat.com>
37210
37211         * g-dirope.adb:
37212         (Basename): Check for drive letters in a pathname only on DOS based OS.
37213
37214 2003-10-27  Vincent Celier  <celier@gnat.com>
37215
37216         * make.adb:
37217         (Gnatmake): When unable to change dir to the object dir, display the
37218         content of the parent dir of the obj dir, to try to understand why this
37219         happens.
37220
37221 2003-10-27  GNAT Script  <nobody@gnat.com>
37222
37223         * Make-lang.in: Makefile automatically updated
37224
37225 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
37226
37227         * sem_ch12.adb:
37228         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
37229         should not be done in Save/Restore_Scope_Stack, because it is performed
37230         locally.
37231
37232         * sem_ch8.adb:
37233         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
37234         whether use clauses should be removed/restored.
37235
37236         * sem_ch8.ads:
37237         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
37238         whether use clauses should be removed/restored.
37239
37240 2003-10-26  Andreas Jaeger  <aj@suse.de>
37241
37242         * Makefile.in: Remove duplicated lines.
37243
37244 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
37245
37246         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
37247         minimize the differences with ACT tree.
37248
37249         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
37250         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
37251         Gnatvsn.Gnat_Static_Version_String to reduce differences between
37252         ACT and FSF trees.
37253
37254 2003-10-24  Pascal Obry  <obry@gnat.com>
37255
37256         PR ada/12014
37257         * adadecode.c (ostrcpy): New function.
37258         (__gnat_decode): Use ostrcpy of strcpy.
37259         (has_prefix): Set first parameter a const.
37260         (has_suffix): Set first parameter a const.
37261         Update copyright notice. Fix source name in header.
37262         Removes a trailing space.
37263
37264 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
37265
37266         * exp_disp.adb:
37267         Remove the test against being in No_Run_Time_Mode before generating a
37268         call to Register_Tag. It is redundant with the test against the
37269         availability of the function Register_Tag.
37270
37271 2003-10-24  Vincent Celier  <celier@gnat.com>
37272
37273         * g-catiio.adb: (Month_Name): Correct spelling of February
37274
37275         * make.adb: (Mains): New package
37276         (Initialize): Call Mains.Delete
37277         (Gnatmake): Check that each main on the command line is a source of a
37278         project file and, if there are several mains, each of them is a source
37279         of the same project file.
37280         (Gnatmake): When a foreign language is specified in attribute Languages,
37281         no main is specified on the command line and attribute Mains is not
37282         empty, only build the Ada main. If there is no Ada main, just compile
37283         the Ada sources and their closure.
37284         (Gnatmake): If a main is specified on the command line with directory
37285         information, check that the source exists and, if it does, that the path
37286         is the actual path of a source of a project.
37287
37288         * prj-env.adb:
37289         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
37290         Full_Path is True, return the full path instead of the simple file name.
37291         (Project_Of): New function
37292
37293         * prj-env.ads:
37294         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
37295         defaulted to False.
37296         (Project_Of): New function
37297
37298 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
37299
37300         * Makefile.generic:
37301         Ensure objects of main project are always checked and rebuilt if needed.
37302         Set CC to gcc by default.
37303         Prepare new handling of link by creating a global archive (not activated
37304         yet).
37305
37306         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
37307         stringt.h: Update copyright notice. Remove trailing blanks.
37308         Fix source name in header.
37309
37310 2003-10-24  Robert Dewar  <dewar@gnat.com>
37311
37312         * sem_ch12.adb: Minor reformatting
37313
37314         * sem_ch3.adb:
37315         Minor reformatting (including new function return style throughout)
37316
37317         * sem_ch3.ads:
37318         Minor reformatting (including new function return style throughout)
37319
37320 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
37321
37322         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
37323         stringt.h: Update copyright notice. Remove trailing blanks.
37324         Fix source name in header.
37325
37326 2003-10-24  GNAT Script  <nobody@gnat.com>
37327
37328         * Make-lang.in: Makefile automatically updated
37329
37330 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
37331
37332         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
37333         stringt.h: Convert to ISO C90 declarations and definitions.
37334
37335 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
37336
37337         PR ada/11978
37338         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
37339         External_Tag attribute definition clauses.
37340
37341 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
37342
37343         PR ada/7613
37344         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
37345         child unit, generate a fully qualified name to avoid spurious errors
37346         when the context contains renamings of different child units with
37347         the same simple name.
37348
37349         * exp_dbug.ads: Add documentation on name qualification for renamings
37350         of child units.
37351
37352 2003-10-23  Robert Dewar  <dewar@gnat.com>
37353
37354         * g-regpat.ads, g-regpat.adb: Minor reformatting
37355
37356 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
37357
37358         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
37359
37360 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37361
37362         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
37363         Machine call.
37364
37365         * urealp.h: (Machine): Update to proper definition.
37366
37367 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
37368
37369         * init.c, adaint.c: Minor reformatting.
37370
37371 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
37372
37373         * adaint.c (w32_epoch_offset): Define static const at file level.
37374         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
37375         rather than t_create, t_access in call to GetFileTime. Use union
37376         to convert between FILETIME and  unsigned long long.
37377         (__gnat_file_time_name): Test for invalid file handle.
37378         (__gnat_set_filetime_name): Support win32 targets using
37379         w32api SetFileTime.
37380
37381 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
37382
37383         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
37384
37385         * ctrl_c.c (__gnat_int_handler): Remove declaration.
37386
37387         * decl.c (creat_concat_name):  Const-ify prefix.
37388
37389         * adaint.c: Include ctype.h if __MINGW32__.
37390         (__gnat_readlink): Mark arguments as possibly unused.
37391         (__gnat_symlink): Likewise.
37392         (__gnat_is_symbolic_link): Likewise.
37393         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
37394         declaration
37395         (__gnat_file_time_name): Don't declare struct stat statbuf when
37396         not needed.
37397         (__gnat_is_absolute_path): Add parenthesis around condition of
37398         'if' statement to avoid warning.
37399         (__gnat_plist_init): Specify void as parameter.
37400         (plist_enter): Likewise.
37401         (plist_leave): Likewise.
37402         (remove_handle): Make static. Initialize prev.
37403
37404 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
37405
37406         PR ada/10110
37407         * Makefile.in: Disable build of gnatpsta.
37408         * cstreams.c (__gnat_full_name): Minor improvements and clean up
37409         of previous change.
37410
37411 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
37412
37413         * tracebak.c (MAX): Avoid redefinition warning.
37414
37415         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
37416         Change msg to const char *.
37417         (__gnat_install_handler): Remove ss, unused.
37418         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
37419         to const char *.
37420         * cstreams.c (__gnat_full_name): Declare p only when used.
37421         (__gnat_full_name) [sgi] Return buffer.
37422
37423 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
37424
37425         * mingw32.h: New file.
37426         * gnat_wrapper.adb: New file.
37427
37428 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
37429
37430         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
37431         string match a pre compiled regular expression (the corresponding
37432         version of the function working on a raw regular expression)
37433         Fix typos in various comments
37434         Update copyright notice in spec
37435
37436 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
37437
37438         * exp_ch3.adb:
37439         (Component_Needs_Simple_Initialization): Return False when the type is a
37440         packed bit array. Revise spec comments to document this case.
37441
37442         * exp_prag.adb:
37443         (Expand_Pragma_Import): Set any expression on the imported object to
37444         empty to avoid initializing imported objects (in particular this
37445         covers the case of zero-initialization of bit arrays).
37446         Update copyright notice.
37447
37448 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
37449
37450         * sem_ch12.adb:
37451         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
37452         a subunit is missing.
37453         (Instantiate_Subprogram_Body): If body of function is missing, set type
37454         of return expression explicitly in dummy body, to prevent cascaded
37455         errors when a subunit is missing.
37456         Fixes PR 5677.
37457
37458         * sem_ch3.adb:
37459         (Access_Subprogram_Declaration): Verify that return type is valid.
37460         Fixes PR 8693.
37461
37462         * sem_elab.adb:
37463         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
37464         generic.
37465         Fixes PR 12318.
37466
37467         * sem_util.adb:
37468         (Corresponding_Discriminant): If the scope of the discriminant is a
37469         private type without discriminant, use its full view.
37470         Fixes PR 8247.
37471
37472 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
37473
37474         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
37475         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
37476         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
37477         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
37478         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
37479         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
37480         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
37481         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
37482         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
37483         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
37484         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
37485         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
37486         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
37487         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
37488         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
37489         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
37490         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
37491         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
37492         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
37493         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
37494         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
37495         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
37496         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
37497         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
37498         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
37499         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
37500         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
37501         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
37502         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
37503         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
37504         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
37505         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
37506         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
37507         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
37508         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
37509         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
37510         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
37511         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
37512         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
37513         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
37514         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
37515         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
37516         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
37517         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
37518         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
37519         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
37520         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
37521         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
37522         vms_conv.ads, vms_conv.adb, vms_data.ads,
37523         vxaddr2line.adb: Files added. Merge with ACT tree.
37524
37525         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
37526         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
37527         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
37528         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
37529         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
37530         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
37531         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
37532         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
37533         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
37534         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
37535
37536         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
37537         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
37538         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
37539         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
37540         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
37541         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
37542         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
37543         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
37544         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
37545         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
37546         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
37547         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
37548         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
37549         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
37550         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
37551         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
37552         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
37553         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
37554         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
37555         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
37556         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
37557         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
37558         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
37559         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
37560         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
37561         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
37562         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
37563         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
37564         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
37565         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
37566         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
37567         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
37568         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
37569         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
37570         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
37571         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
37572         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
37573         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
37574         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
37575         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
37576         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
37577         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
37578         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
37579         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
37580         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
37581         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
37582         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
37583         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
37584         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
37585         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
37586         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
37587         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
37588         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
37589         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
37590         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
37591         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
37592         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
37593         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
37594         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
37595         checks.adb, checks.ads, cio.c, comperr.adb,
37596         comperr.ads, csets.adb, cstand.adb, cstreams.c,
37597         debug_a.adb, debug_a.ads, debug.adb, decl.c,
37598         einfo.adb, einfo.ads, errout.adb, errout.ads,
37599         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
37600         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
37601         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
37602         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
37603         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
37604         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
37605         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
37606         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
37607         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
37608         fe.h, fmap.adb, fmap.ads, fname.adb,
37609         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
37610         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
37611         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
37612         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
37613         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
37614         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
37615         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
37616         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
37617         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
37618         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
37619         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
37620         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
37621         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
37622         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
37623         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
37624         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
37625         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
37626         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
37627         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
37628         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
37629         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
37630         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
37631         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
37632         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
37633         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
37634         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
37635         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
37636         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
37637         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
37638         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
37639         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
37640         layout.adb, lib.adb, lib.ads, lib-list.adb,
37641         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
37642         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
37643         link.c, live.adb, make.adb, make.ads,
37644         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
37645         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
37646         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
37647         misc.c, mkdir.c, mlib.adb, mlib.ads,
37648         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
37649         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
37650         namet.adb, namet.ads, namet.h, nlists.ads,
37651         nlists.h, nmake.adt, opt.adb, opt.ads,
37652         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
37653         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
37654         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
37655         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
37656         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
37657         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
37658         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
37659         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
37660         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
37661         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
37662         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
37663         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
37664         prj-util.adb, prj-util.ads, raise.c, raise.h,
37665         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
37666         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
37667         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
37668         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
37669         scans.ads, scn.adb, scn.ads, s-crc32.adb,
37670         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
37671         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
37672         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
37673         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
37674         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
37675         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
37676         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
37677         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
37678         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
37679         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
37680         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
37681         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
37682         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
37683         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
37684         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
37685         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
37686         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
37687         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
37688         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
37689         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
37690         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
37691         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
37692         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
37693         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
37694         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
37695         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
37696         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
37697         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
37698         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
37699         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
37700         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
37701         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
37702         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
37703         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
37704         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
37705         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
37706         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
37707         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
37708         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
37709         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
37710         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
37711         stringt.adb, stringt.ads, stringt.h, style.ads,
37712         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
37713         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
37714         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
37715         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
37716         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
37717         table.adb, table.ads, targparm.adb, targparm.ads,
37718         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
37719         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
37720         ttypes.ads, types.ads, types.h, uintp.adb,
37721         uintp.ads, uintp.h, uname.adb, urealp.adb,
37722         urealp.ads, urealp.h, usage.adb, utils2.c,
37723         utils.c, validsw.adb, validsw.ads, widechar.adb,
37724         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
37725         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
37726         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
37727         gnatvsn.ads: Merge with ACT tree.
37728
37729         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
37730
37731 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
37732
37733         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
37734         (gnat_ug_vmx.info): Likewise.
37735         (gnat_ug_vxw.info): Likewise.
37736         (gnat_ug_wnt.info): Likewise.
37737         (gnat_rm.info): Likewise.
37738         (gnat-style.info): Likewise.
37739
37740         * Make-lang.in (ada.install-info): Remove target.
37741         (info): New target.
37742         (install-info): Likewise.
37743         (gnat_ug_unx.info): Simplify rule.
37744         (gnat_ug_vmx.info): Likewise.
37745         (gnat_ug_vxw.info): Likewise.
37746         (gnat_ug_wnt.info): Likewise.
37747         (gnat_rm.info): Likewise.
37748         (gnat-style.info): Likewise.
37749
37750 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
37751
37752         * Make-lang.in: Replace uses of $(target_alias) with
37753         $(target_noncanonical).
37754         * ada/Makefile.in: Remove unused mention of $(target_alias).
37755
37756 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
37757
37758         * Make-lang.in (ada.info): Replace with ...
37759         (info): ... this.
37760         (ada.dvi): Replace with ...
37761         (dvi): ... this.
37762
37763 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
37764
37765         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
37766         initialize dconstp5 and dconstmp5.
37767
37768 2003-09-28  Richard Henderson  <rth@redhat.com>
37769
37770         * trans.c (tree_transform): Update call to expand_asm_operands.
37771
37772 2003-09-21  Richard Henderson  <rth@redhat.com>
37773
37774         * trans.c, utils.c: Revert.
37775
37776 2003-09-21  Richard Henderson  <rth@redhat.com>
37777
37778         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
37779         change to const.
37780
37781 2003-09-04  Michael Matz  <matz@suse.de>
37782
37783         * misc.c: Include "target.h".
37784         * Make-lang.in (misc.o): Add dependency on target.h.
37785
37786 2003-09-03  DJ Delorie  <dj@redhat.com>
37787
37788         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
37789         hook.
37790
37791 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
37792
37793         * Makefile.in: Update substitutions to match changes to
37794         configure.  Use include directives instead of @-insertions
37795         to read in host and target fragments.  Add a rule to
37796         regenerate ada/Makefile.
37797
37798 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
37799
37800         * lang-options.h: Remove.
37801         * lang.opt: Add help text.
37802
37803 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
37804
37805         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
37806         calls.
37807
37808 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
37809
37810         * misc.c (gnat_handle_option): Don't handle filenames.
37811
37812 2003-07-04  H.J. Lu  <hongjiu.lu@intel.com>
37813
37814         * Make-lang.in: Replace PWD with PWD_COMMAND.
37815         * Makefile.adalib: Likewise.
37816         * Makefile.in: Likewise.
37817
37818 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
37819
37820         * misc.c (gnat_argv): Revert last change.
37821         (gnat_handle_option, gnat_init_options): Copy arguments.
37822
37823 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
37824
37825         * misc.c (gnat_argv): Make const.
37826
37827 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
37828
37829         * misc.c (save_argc, save_argv): Keep non-static!
37830
37831 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
37832
37833         * misc.c (save_argc, save_argv): Make static.
37834         (gnat_init_options): New prototype.
37835         (gnat_init_options): Update.
37836
37837 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
37838
37839         * gnat_ug.texi: Remove unlikely characters from @vars.
37840         * gnat_ug_vms.texi: Regenerate.
37841
37842 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
37843
37844         * misc.c (record_code_position): Adjust emit_note call.
37845
37846 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
37847
37848         * misc.c (gnat_handle_option): Don't check for missing arguments.
37849
37850 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
37851
37852         * utils.c (end_subprog_body): Adjust expand_function_end call.
37853
37854 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
37855
37856         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
37857         Bind_Main_Program.
37858
37859 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
37860
37861         * lang.opt: Declare Ada.
37862         * misc.c (gnat_init_options): Update.
37863
37864 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
37865
37866         * utils.c (begin_subprog_body): Adjust init_function_start call.
37867
37868 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
37869
37870         * Make-lang.in: Update to use options.c and options.h.
37871         * misc.c: Include options.h not aoptions.h.
37872         (gnat_handle_option): Abort on unrecognized switch.
37873         (gnat_init_options): Request Ada switches.
37874
37875 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
37876
37877         * lang.opt: Add -Wall.
37878         * misc.c (gnat_handle_option): Handle it.
37879
37880 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
37881
37882         * misc.c (gnat_handle_option): Fix warnings.
37883
37884 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
37885
37886         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
37887
37888 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
37889
37890         * Make-lang.in: Update to handle command-line options.
37891         * lang.opt: New file.
37892         * misc.c: Include aoptions.h.
37893         (cl_options_count, cl_options): Remove.
37894         (gnat_handle_option): New.
37895         (gnat_decode_option): Remove.
37896         (LANG_HOOKS_DECODE_OPTION): Remove.
37897         (LANG_HOOKS_HANDLE_OPTION): Override.
37898
37899 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
37900
37901         * init.c, misc.c, trans.c, utils.c: Remove dead code.
37902
37903 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
37904
37905         * Makefile.in: Replace "host_canonical" with "host" for autoconf
37906         substitution.
37907
37908 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
37909
37910         * Make-lang.in: Update.
37911         * misc.c: Include opts.h. Define cl_options_count and cl_options.
37912
37913 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
37914
37915         * misc.c (gnat_init_options): Update.
37916
37917 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
37918
37919         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
37920         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
37921         __attribute__ ((__unused__)).
37922
37923 2003-06-05  Jan Hubicka  <jh@suse.cz>
37924
37925         * Make-lang.in:  Add support for stageprofile and stagefeedback
37926
37927 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
37928
37929         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
37930         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
37931
37932 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
37933
37934         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
37935         Remove non-VMS directive.
37936         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
37937         alternatives.
37938         (Examples of gnatls Usage): Remove VMS alternative.
37939
37940 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
37941
37942         PR ada/9953
37943         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
37944         and turn ZCX_By_Default back to False since the underlying support
37945         is not quite there yet.
37946
37947 2003-06-01  Andreas Jaeger  <aj@suse.de>
37948
37949         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
37950         and ROUND_TYPE_SIZE_UNIT.
37951
37952 2003-05-22   Geert Bosch  <bosch@gnat.com>
37953
37954         * gnat_rm.texi : Remove reference to Ada Core Technologies.
37955
37956 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
37957
37958         * trans.c (tree_transform): Use location_t and input_location
37959         directly.
37960         (build_unit_elab): Likewise.
37961         * utils.c (create_label_decl): Likewise.
37962
37963 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
37964
37965         * trans.c (tree_transform, build_unit_elab,
37966         set_lineno): Rename lineno to input_line.
37967         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
37968         end_subprog_body): Likewise.
37969         * utils2.c (build_call_raise): Likewise.
37970
37971 2003-05-01  Laurent Guerby  <guerby@acm.org>
37972
37973         PR ada/10546
37974         * 5iosinte.ads: Increase pthread_cond_t size to match recent
37975         LinuxThread and NPTL version, merge from ACT.
37976
37977 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
37978
37979         * utils.c (convert): No need to clear TREE_CST_RTL.
37980
37981 2003-04-23   Geert Bosch  <bosch@gnat.com>
37982
37983         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
37984         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
37985         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
37986         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
37987         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
37988         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
37989         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
37990         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
37991         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
37992         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
37993         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
37994         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
37995         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
37996         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
37997         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
37998         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
37999         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
38000         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
38001         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
38002         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
38003         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
38004         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
38005         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
38006         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
38007         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
38008         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
38009         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
38010         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
38011         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
38012         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
38013         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
38014         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
38015         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
38016         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
38017         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
38018         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
38019         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
38020         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
38021         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
38022         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
38023         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
38024         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
38025         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
38026         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
38027         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
38028         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
38029         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
38030         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
38031         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
38032         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
38033         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
38034         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
38035         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
38036         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
38037         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
38038         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
38039         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
38040         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
38041         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
38042         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
38043         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
38044         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
38045         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
38046         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
38047         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
38048         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
38049         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
38050         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
38051         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
38052         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
38053         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
38054         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
38055         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
38056         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
38057         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
38058         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
38059         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
38060         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
38061         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
38062         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
38063         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
38064         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
38065         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
38066         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
38067         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
38068         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
38069         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
38070         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
38071         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
38072         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
38073         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
38074         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
38075         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
38076         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
38077         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
38078         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
38079         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
38080         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
38081         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
38082         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
38083         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
38084         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
38085         ali.adb, ali.ads, alloc.ads, argv.c,
38086         atree.adb, atree.ads, atree.h, aux-io.c,
38087         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
38088         binde.adb, binde.ads, binderr.adb, binderr.ads,
38089         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
38090         butil.adb, butil.ads, cal.c, calendar.ads,
38091         casing.adb, casing.ads, ceinfo.adb, checks.adb,
38092         checks.ads, cio.c, comperr.adb, comperr.ads,
38093         config-lang.in, csets.adb, csets.ads, csinfo.adb,
38094         cstand.adb, cstand.ads, cuintp.c, debug.adb,
38095         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
38096         dec-io.ads, dec.ads, deftarg.c, directio.ads,
38097         einfo.adb, einfo.ads, elists.adb, elists.ads,
38098         elists.h, errno.c, errout.adb, errout.ads,
38099         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
38100         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
38101         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
38102         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
38103         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
38104         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
38105         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
38106         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
38107         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
38108         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
38109         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
38110         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
38111         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
38112         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
38113         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
38114         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
38115         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
38116         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
38117         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
38118         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
38119         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
38120         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
38121         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
38122         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
38123         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
38124         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
38125         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
38126         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
38127         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
38128         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
38129         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
38130         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
38131         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
38132         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
38133         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
38134         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
38135         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
38136         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
38137         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
38138         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
38139         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
38140         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
38141         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
38142         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
38143         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
38144         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
38145         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
38146         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
38147         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
38148         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
38149         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
38150         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
38151         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
38152         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
38153         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
38154         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
38155         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
38156         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
38157         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
38158         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
38159         lib.adb, lib.ads, live.adb, live.ads,
38160         machcode.ads, make.adb, make.ads, makeusg.adb,
38161         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
38162         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
38163         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
38164         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
38165         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
38166         mlib.ads, namet.adb, namet.ads, nlists.adb,
38167         nlists.ads, opt.adb, opt.ads, osint-b.adb,
38168         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
38169         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
38170         osint.ads, output.adb, output.ads, par-ch10.adb,
38171         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
38172         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
38173         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
38174         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
38175         par-tchk.adb, par-util.adb, par.adb, par.ads,
38176         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
38177         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
38178         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
38179         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
38180         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
38181         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
38182         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
38183         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
38184         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
38185         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
38186         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
38187         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
38188         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
38189         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
38190         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
38191         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
38192         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
38193         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
38194         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
38195         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
38196         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
38197         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
38198         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
38199         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
38200         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
38201         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
38202         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
38203         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
38204         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
38205         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
38206         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
38207         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
38208         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
38209         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
38210         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
38211         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
38212         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
38213         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
38214         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
38215         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
38216         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
38217         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
38218         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
38219         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
38220         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
38221         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
38222         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
38223         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
38224         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
38225         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
38226         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
38227         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
38228         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
38229         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
38230         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
38231         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
38232         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
38233         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
38234         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
38235         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
38236         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
38237         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
38238         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
38239         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
38240         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
38241         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
38242         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
38243         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
38244         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
38245         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
38246         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
38247         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
38248         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
38249         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
38250         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
38251         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
38252         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
38253         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
38254         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
38255         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
38256         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
38257         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
38258         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
38259         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
38260         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
38261         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
38262         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
38263         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
38264         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
38265         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
38266         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
38267         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
38268         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
38269         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
38270         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
38271         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
38272         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
38273         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
38274         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
38275         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
38276         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
38277         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
38278         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
38279         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
38280         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
38281         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
38282         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
38283         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
38284         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
38285         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
38286         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
38287         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
38288         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
38289         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
38290         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
38291         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
38292         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
38293         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
38294         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
38295         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
38296         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
38297         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
38298         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
38299         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
38300         snames.ads, sprint.adb, sprint.ads, stand.adb,
38301         stand.ads, stringt.adb, stringt.ads, style.adb,
38302         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
38303         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
38304         switch-m.ads, switch.adb, switch.ads, system.ads,
38305         table.adb, table.ads, targparm.adb, targparm.ads,
38306         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
38307         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
38308         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
38309         ttypef.ads, ttypes.ads, types.adb, types.ads,
38310         uintp.adb, uintp.ads, uname.adb, uname.ads,
38311         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
38312         usage.adb, usage.ads, validsw.adb, validsw.ads,
38313         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
38314         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
38315         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
38316         formatting and other trivial changes from ACT.
38317
38318 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
38319
38320         * gigi.h, utils2.c (build_constructor):
38321         Rename gnat_build_constructor. Use build_constructor.
38322         * decl.c (gnat_to_gnu_entity)
38323         * trans.c (tree_transform, pos_to_constructor, extract_values)
38324         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
38325         (unchecked_convert)
38326         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
38327         (fill_vms_descriptor):
38328         Update to match.
38329
38330 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
38331
38332         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
38333         * misc.c (gnat_tree_size): New function.
38334         (LANG_HOOKS_TREE_SIZE): Override.
38335
38336 2003-04-03  Jason Merrill  <jason@redhat.com>
38337
38338         * misc.c (gnat_adjust_rli): #if 0.
38339
38340 2003-03-31   Geert Bosch  <bosch@gnat.com>
38341
38342         PR ada/10020
38343         * link.c : Fix misspelled "const" keyword
38344
38345 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
38346
38347         PR c++/7086
38348         * utils2.c: Adjust calls to put_var_into_stack.
38349
38350 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
38351
38352         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
38353
38354 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
38355
38356         * misc.c (gnat_init): Update for new prototype.
38357
38358 2003-03-05  Olivier Hainque  <hainque@gnat.com>
38359
38360         ada/9961
38361         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
38362         warning, and fix return type for the IN_RTS && !SJLJ case.
38363
38364 2003-03-04  Tom Tromey  <tromey@redhat.com>
38365
38366         * Make-lang.in (ada.tags): New target.
38367
38368 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
38369
38370         ada/9911
38371         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
38372         wrapper, which name remains constant whatever underlying GCC
38373         scheme.
38374
38375         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
38376         the stable interface needed for a-except.
38377
38378 2003-03-02  Andreas Jaeger  <aj@suse.de>
38379
38380         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
38381         gnat_ug_wnt.texi: Regenerate.
38382
38383 2003-03-02  Laurent Guerby  <guerby@acm.org>
38384
38385         * Makefile.in (install-gnatlib): Match previous change there
38386         so it works.
38387
38388 2003-02-28  Andreas Schwab  <schwab@suse.de>
38389
38390         * Make-lang.in (install-gnatlib): Change to ada directory before
38391         running make instead of using ada/Makefile directly.
38392
38393 2003-02-18  Ben Elliston  <bje@redhat.com>
38394
38395         Part of PR ada/9406
38396         * gnat_ug.texi (Binder output file): Grammar fix.
38397
38398 2003-02-18  Ben Elliston  <bje@redhat.com>
38399
38400         PR other/7350
38401         * 5qtaprop.adb (Sleep): Fix typo in comment.
38402
38403 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
38404
38405         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
38406         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
38407         gnat_ug_wnt.texi: Regenerate.
38408
38409 2003-02-03  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
38410
38411         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
38412         be created if necessary.
38413         (ada.install-common): Let $(DESTDIR)$(bindir) be created
38414         if necessary.  Remove erroneous and redundant gnatchop
38415         installation commands.  Test for gnatdll before attempting
38416         to install it.
38417         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
38418         and gnatdll from all plausible locations.
38419
38420 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
38421
38422         * utils2.c (build_unary_op): Don't check flag_volatile.
38423         * gnat_ug.texi: Remove -fvolatile from example.
38424         * gnat_ug_vxw.texi: Likewise.
38425
38426 2003-01-29  Laurent Guerby  <guerby@acm.org>
38427
38428         PR ada/8344
38429         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
38430         * Makefile.in: match previous change.
38431         * Make-lang.in: match previous change.
38432
38433 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
38434
38435         * 5rosinte.ads: Add SIGXCPU.
38436         * 5rtpopsp.adb: New file.
38437         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
38438         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
38439         specific file 5rtpopsp.adb.
38440         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
38441         is likely needed for all newlib targets.
38442         * init.c: Add RTEMS specific version of __gnat_initialize().
38443
38444 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
38445
38446         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
38447
38448 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
38449
38450         * init.c (__gnat_error_handler): Make msg const.
38451
38452         * gmem.c (convert_addresses): Move declaration ...
38453         * adaint.h: ... here.
38454         * adaint.c (convert_addresses): Adapt addrs type to match
38455         prototype.
38456
38457         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
38458
38459 2003-01-24  Andreas Schwab  <schwab@suse.de>
38460
38461         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
38462         size_t to avoid warning.
38463
38464 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
38465
38466         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
38467
38468 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
38469
38470         * gnat_rm.texi: Remove RCS version number.
38471
38472         * ada-tree.h (union lang_tree_node): Add chain_next option.
38473
38474 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
38475
38476         * Make-lang.in (ada.install-info, ada.install-common,
38477         ada.uninstall): Prepend $(DESTDIR) to the destination
38478         directory in all (un)installation commands.
38479         * Makefile.in (install-gnatlib, install-rts): Ditto.
38480
38481 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
38482
38483         * gnat_rm.texi, gnat_ug.texi: Use @copying.
38484         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
38485         gnat_ug_wnt.texi: Regenerate.
38486
38487 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
38488
38489         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
38490         only.
38491         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
38492         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
38493         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
38494         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
38495         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
38496         $(srcdir)/doc/include/gcc-common.texi.
38497
38498 2002-12-15   Geert Bosch  <bosch@gnat.com>
38499
38500         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
38501
38502 2002-12-14   Geert Bosch  <bosch@gnat.com>
38503
38504         PR ada/5690
38505         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
38506         case of a body created for a Renaming_As_Body, on which
38507         conformance checks are not performed.
38508
38509 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
38510
38511         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
38512         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
38513         not already included.
38514         * Make-lang.in: Update dependencies.
38515
38516 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
38517         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
38518         solution to buffer overflow bug on GNU/Linux.
38519
38520 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
38521
38522         PR ada/5856
38523         PR ada/6919
38524         * bindgen.adb: Remove all references to Public_Version.
38525         * comperr.adb: Remove all references to Public_Version and
38526         GNATPRO_Version; correct bug reporting instructions.
38527         * comperr.ads: Change to match bug box.
38528         * gnatvsn.ads: Remove all references to Public version and
38529         GNATPRO version.
38530
38531 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
38532
38533         PR ada/6919
38534         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
38535         GNU/Linux.
38536
38537         PR ada/6558
38538         * config-lang.in: Remove diff_excludes.
38539
38540 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
38541
38542         PR ada/8358
38543         * trans.c (gnu_pending_elaboration_lists): New GC root.
38544         (build_unit_elab): Use..
38545
38546 2002-10-30   Geert Bosch  <bosch@gnat.com>
38547
38548         PR ada/6558
38549         * misc.c : Include optabs.h
38550
38551         * Make-lang.in (misc.o): Add dependency on optabs.h
38552
38553 2002-10-29   Geert Bosch  <bosch@gnat.com>
38554
38555         PR ada/6558
38556         * Make-lang.in (gnatbind): Depend on CONFIG_H
38557
38558 2002-10-29  Geert bosch  <bosch@gnat.com>
38559
38560         PR ada/6558
38561         * misc.c: Unrevert misc.c (1.13)
38562
38563 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
38564
38565         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
38566         maintainership comments.
38567
38568 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
38569
38570         PR ada/5904
38571         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
38572         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
38573         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
38574         7staprop.adb: Correct statements in comments about
38575         maintainership of GNAT.
38576
38577         PR ada/5904
38578         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
38579         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
38580         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
38581         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
38582         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
38583         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
38584         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
38585         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
38586         comments about maintainership of GNAT.
38587
38588         PR ada/6919 (forward port of patch for PR ada/5904)
38589         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
38590         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
38591         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
38592         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
38593         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
38594         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
38595         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
38596         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
38597         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
38598         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
38599         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
38600         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
38601         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
38602         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
38603         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
38604         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
38605         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
38606         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
38607         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
38608         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
38609         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
38610         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
38611         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
38612         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
38613         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
38614         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
38615         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
38616         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
38617         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
38618         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
38619         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
38620         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
38621         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
38622         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
38623         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
38624         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
38625         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
38626         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
38627         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
38628         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
38629         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
38630         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
38631         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
38632         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
38633         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
38634         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
38635         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
38636         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
38637         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
38638         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
38639         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
38640         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
38641         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
38642         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
38643         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
38644         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
38645         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
38646         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
38647         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
38648         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
38649         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
38650         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
38651         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
38652         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
38653         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
38654         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
38655         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
38656         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
38657         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
38658         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
38659         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
38660         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
38661         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
38662         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
38663         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
38664         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
38665         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
38666         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
38667         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
38668         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
38669         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
38670         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
38671         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
38672         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
38673         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
38674         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
38675         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
38676         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
38677         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
38678         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
38679         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
38680         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
38681         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
38682         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
38683         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
38684         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
38685         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
38686         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
38687         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
38688         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
38689         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
38690         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
38691         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
38692         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
38693         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
38694         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
38695         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
38696         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
38697         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
38698         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
38699         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
38700         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
38701         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
38702         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
38703         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
38704         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
38705         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
38706         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
38707         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
38708         par-endh.adb par-labl.adb par-load.adb par-prag.adb
38709         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
38710         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
38711         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
38712         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
38713         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
38714         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
38715         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
38716         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
38717         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
38718         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
38719         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
38720         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
38721         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
38722         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
38723         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
38724         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
38725         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
38726         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
38727         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
38728         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
38729         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
38730         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
38731         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
38732         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
38733         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
38734         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
38735         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
38736         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
38737         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
38738         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
38739         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
38740         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
38741         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
38742         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
38743         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
38744         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
38745         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
38746         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
38747         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
38748         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
38749         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
38750         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
38751         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
38752         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
38753         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
38754         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
38755         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
38756         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
38757         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
38758         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
38759         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
38760         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
38761         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
38762         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
38763         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
38764         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
38765         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
38766         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
38767         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
38768         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
38769         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
38770         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
38771         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
38772         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
38773         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
38774         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
38775         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
38776         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
38777         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
38778         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
38779         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
38780         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
38781         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
38782         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
38783         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
38784         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
38785         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
38786         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
38787         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
38788         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
38789         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
38790         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
38791         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
38792         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
38793         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
38794         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
38795         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
38796         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
38797         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
38798         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
38799         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
38800         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
38801         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
38802         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
38803         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
38804         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
38805         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
38806         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
38807         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
38808         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
38809         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
38810         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
38811         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
38812         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
38813         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
38814         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
38815         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
38816         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
38817         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
38818         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
38819         stringt.ads stringt.h style.adb style.ads stylesw.adb
38820         stylesw.ads switch.adb switch.ads sysdep.c system.ads
38821         table.adb table.ads targparm.adb targparm.ads targtyps.c
38822         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
38823         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
38824         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
38825         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
38826         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
38827         usage.ads utils.c utils2.c validsw.adb validsw.ads
38828         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
38829         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
38830         xtreeprs.adb: Correct statements in comments about maintainership
38831         of GNAT.
38832
38833 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
38834
38835         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
38836         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
38837         * gnatvsn.ads: Gnat_Version_String is now a function.
38838         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
38839         copy the C version_string into a String and return it.
38840         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
38841         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
38842         Remove pragma Ident (Gnat_Version_String).  If this was the
38843         sole use of package Gnatvsn, remove the with statement too.
38844         * gnat1drv.adb: Tweak -gnatv output.
38845
38846 2002-09-17  Richard Henderson  <rth@redhat.com>
38847
38848         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
38849         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
38850         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
38851         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
38852         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
38853         and real_2expN instead of a loop.
38854         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
38855         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
38856
38857 2002-08-25  Andre Leis  <a.leis@gmx.net>
38858             David Billinghurst  <David.Billinghurst@riotinto.com>
38859
38860         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
38861
38862 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
38863
38864         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
38865         Remove $(CONFIG_H) dependency.
38866
38867 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
38868
38869         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
38870
38871 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
38872
38873         * adadecode.c (ada_demangle): Use xstrdup in lieu of
38874         xmalloc/strcpy.
38875         * misc.c (gnat_decode_option): Likewise.
38876
38877 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
38878
38879         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
38880         function approach did not work well because of a side effect (the
38881         function call could reallocate the table which was being indexed
38882         using its result). Fixes ada/4851. [RESURRECTED]
38883
38884 2002-07-01  Roger Sayle  <roger@eyesopen.com>
38885
38886         * ada/utils.c (builtin_function): Accept an additional parameter.
38887
38888 2002-06-28  Andreas Jaeger  <aj@suse.de>
38889
38890         PR ada/7144
38891         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
38892         <adi@thur.de>.
38893
38894 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
38895
38896         * Makefile.in (SHELL): Set to @SHELL@.
38897
38898 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
38899
38900         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
38901         array size calculation.
38902
38903 2002-06-04  Andreas Jaeger  <aj@suse.de>
38904
38905         * Make-lang.in (gnatbind): Readd rule that has been lost in last
38906         patch.
38907
38908 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
38909
38910         Merge from pch-branch:
38911
38912         * config-lang.in (gtfiles): Add ada-tree.h.
38913         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
38914         (SET_TYPE_MODULUS): New.
38915         (SET_TYPE_INDEX): New.
38916         (SET_TYPE_DIGITS_VALUE): New.
38917         (SET_TYPE_RM_SIZE): New.
38918         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
38919         (SET_TYPE_ADA_SIZE): New.
38920         (SET_TYPE_ACTUAL_BOUNDS): New.
38921         (SET_DECL_CONST_CORRESPONDING_VAR): New.
38922         (SET_DECL_ORIGINAL_FIELD): New.
38923         (TREE_LOOP_ID): Correct typo.
38924         * decl.c: Use new macros.
38925         * utils.c: Include debug.h, use new macros.
38926         * utils2.c: Use new macros.
38927
38928         * ada-tree.h: Update all macros for new tree description.
38929         (struct tree_loop_id): New.
38930         (union lang_tree_node): New.
38931         (struct lang_decl): New.
38932         (struct lang_type): New.
38933         * misc.c (gnat_mark_tree): Delete.
38934         (LANG_HOOKS_MARK_TREE): Delete.
38935         * trans.c (tree_transform): No longer any need to cast
38936         for TREE_LOOP_ID.
38937
38938         * utils.c (struct language_function): New dummy structure.
38939
38940         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
38941         (misc.o): Likewise.
38942         (utils.o): Likewise; also gtype-ada.h.
38943         * Make-lang.in (gnat1): Add dependency on s-gtype.
38944         (gnatbind): Add dependency on $(CONFIG_H).
38945         * utils.c: Correct last #include.
38946         (stuct e_stack): Remove unnecessary 'static'.
38947         (mark_e_stack): Remove unused prototype.
38948
38949         * scn-nlit.adb: Remove whitespace after version number to
38950         keep lines under 80 chars.
38951         * snames.adb: Likewise.
38952         * treepr.ads: Likewise.
38953
38954         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
38955         (misc.o): Likewise.
38956         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
38957         * config-lang.in (gtfiles): New.
38958         * decl.c: Use gengtype for roots.
38959         * gigi.h: Use gengtype for roots.
38960         * trans.c: Use gengtype for roots.
38961         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
38962
38963 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
38964
38965         * misc.c (gnat_init): Adjust setting of internal_error_function.
38966
38967 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
38968
38969         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
38970         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
38971         gnat_ug_wnt.texi: Regenerate.
38972
38973 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
38974
38975         * 5ntaprop.adb (with System.OS_Primitives): Remove.
38976
38977         * cstreams.c (max_path_len): Move from here ...
38978         * adaint.c (__gnat_max_path_len): ... to here.
38979         * adaint.c (__gnat_max_path_len): Declare.
38980         * g-dirope.adb (Max_Path): Adjust.
38981         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
38982         * i-cstrea.ads (max_path_len): Adjust.
38983         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
38984         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
38985
38986         * Makefile.in, Make-lang.in: Documentation is now built in
38987         Make-lang.in.  Store Info and generated Texinfo files in the
38988         source directory.
38989         * gnat_ug.texi: Remove CVS keywords, correct version number.
38990         Set file name correctly.
38991
38992         * gnat_ug_*.texi: Add.
38993         * .cvsignore: Ignore generated Texinfo files.
38994
38995 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
38996
38997         * ada.h: Add MI guard macro.
38998         (SUBTYPE): Define constants with an anonymous enum, not static
38999         const variables.
39000         (IN): Cast constants to appropriate type before use.
39001
39002 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
39003
39004         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
39005         (experimental)".
39006
39007 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
39008
39009         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
39010         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
39011         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
39012         (ALL_ADA_CFLAGS): Likewise.
39013         (ADA_INCLUDES): Likewise.
39014         Adapt for new working dir.
39015         (GNATBIND): Use Makefile.in version.
39016         (.SUFFIXES): Copy from Makefile.in.
39017         (ada-warn): Define.
39018         (.adb.o, .ads.o): Copy from Makefile.in.
39019         Added $(OUTPUT_OPTION).
39020         (GNAT1_C_OBJS): Moved from Makefile.in.
39021         Prefix with ada subdir.
39022         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
39023         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
39024         Adapt for new working dir.
39025         (EXTRA_GNATBIND_OBJS): Likewise.
39026         (ADA_BACKEND): Moved from Makefile.in.
39027         Renamed to avoid conflict with global BACKEND.
39028         Use that one.
39029         (TARGET_ADA_SRCS): Moved from Makefile.in.
39030         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
39031         Use ADA_BACKEND.
39032         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
39033         (ada_extra_files): Moved from Makefile.in.
39034         Prefix with ada subdir.
39035         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
39036         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
39037         (ada/nmake.ads): Likewise.
39038         (update-sources): Moved from Makefile.in.
39039         Prefix with ada subdir.
39040         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
39041         (ADA_TREE_H): Likewise.
39042         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
39043         (ada/memtrack.o): Likewise.
39044         (ada/adadecode.o): Likewise.
39045         Update dependencies.
39046         (ada/adaint.o): New.
39047         (ada/argv.o): Moved from Makefile.in.
39048         Prefix with ada subdir.
39049         Update dependencies.
39050         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
39051         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
39052         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
39053         Prefix with ada subdir.
39054         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
39055         (GNAT DEPENDENCIES): Regenerate.
39056         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
39057         toplevel Makefile.in.
39058         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
39059         (TARGET_ADA_SRCS): Removed.
39060         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
39061         (GNATBIND_OBJS): Likewise.
39062         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
39063         (BACKEND): Removed.
39064         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
39065         (TREE_H): Likewise.
39066         (ada_extra_files): Likewise.
39067         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
39068         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
39069         (update-sources): Likewise.
39070         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
39071         (ADA_TREE_H): Likewise.
39072         (adadecoce.o): Likewise.
39073         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
39074         (GNAT DEPENDENCIES): Likewise.
39075
39076 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
39077
39078         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
39079         * Makefile.in: Likewise.
39080
39081 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
39082
39083         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
39084         Restore $(CONFIG_H) and prefix.o dependencies.
39085         (ada.stage[1-4]): Depend on stage?-start.
39086
39087         * Makefile.in (b_gnatb.c): Depend on interfac.o.
39088
39089 2002-05-02  Jim Wilson  <wilson@redhat.com>
39090
39091         * utils.c (finish_record_type): Change record_size to record_type.
39092
39093 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
39094
39095         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
39096         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
39097         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
39098
39099 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
39100
39101         * misc.c (gnat_parse_file): Update.
39102
39103 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
39104
39105         * misc.c (gnat_init): Don't set lang_attribute_common.
39106
39107 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
39108
39109         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
39110
39111 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
39112
39113         * gnat_ug.texi: New file.
39114
39115         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
39116         instead of gfdl.texi
39117
39118         * xgnatug.adb, ug_words: New files.
39119
39120         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
39121         gnat_rm and gnat-style manuals.
39122
39123 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
39124
39125         * gigi.h (incomplete_type_error): Remove.
39126         * utils.c (incomplete_type_error): Remove.
39127
39128 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
39129
39130         * trans.c (tree_transform): Add has_scope argument to
39131         expand_start_stmt_expr.
39132
39133 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
39134
39135         * gigi.h (truthvalue_conversion): Rename.
39136         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
39137         * trans.c (tree_transform): Update.
39138         * utils2.c (truthvalue_conversion): Rename, update.
39139         (build_binary_op, build_unary_op): Update.
39140
39141 2002-04-04  Laurent Guerby  <guerby@acm.org>
39142
39143         * make.adb: Implement -margs, remove restriction about file name placement.
39144         * makeusg.adb: Documentation update.
39145         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
39146         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
39147
39148 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
39149
39150         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
39151         (builtin_function): Similarly.
39152
39153 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
39154
39155         * decl.c (gnat_to_gnu_entity): Update.
39156         * gigi.h (mark_addressable): Rename.
39157         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
39158         * trans.c (tree_transform): Update.
39159         * utils.c (create_var_decl): Update.
39160         * util2.c (build_binary_op, build_unary_op,
39161         fill_vms_descriptor): Update.
39162         (mark_addressable): Rename, update.
39163
39164 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
39165
39166         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
39167         Rename.
39168         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
39169         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
39170         * trans.c (tree_transform, convert_with_check): Update.
39171         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
39172         Rename.
39173
39174 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
39175
39176         * gigi.h (finish_incomplete_decl): Rename.
39177         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
39178         * utils.c (gnat_init_decl_processing): Don't set hook.
39179         (finish_incomplete_decl): Rename.
39180
39181 2002-03-29  Andreas Schwab  <schwab@suse.de>
39182
39183         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
39184         directory.
39185
39186 2001-03-28  Robert Dewar  <dewar@gnat.com>
39187
39188         * checks.ads:
39189         (Remove_Checks): New procedure
39190
39191         * checks.adb:
39192         (Remove_Checks): New procedure
39193
39194         * exp_util.adb:
39195         Use new Duplicate_Subexpr functions
39196         (Duplicate_Subexpr_No_Checks): New procedure
39197         (Duplicate_Subexpr_No_Checks_Orig): New procedure
39198         (Duplicate_Subexpr): Restore original form (checks duplicated)
39199         (Duplicate_Subexpr): Call Remove_Checks
39200
39201         * exp_util.ads:
39202         (Duplicate_Subexpr_No_Checks): New procedure
39203         (Duplicate_Subexpr_No_Checks_Orig): New procedure
39204         Add 2002 to copyright notice
39205
39206         * sem_util.adb: Use new Duplicate_Subexpr functions
39207
39208         * sem_eval.adb:
39209         (Eval_Indexed_Component): This is the place to call
39210         Constant_Array_Ref and to replace the value. We simply merge
39211         the code of this function in here, since it is now no longer
39212         used elsewhere. This fixes the problem of the back end not
39213         realizing we were clever enough to see that this was
39214         constant.
39215         (Expr_Val): Remove call to Constant_Array_Ref
39216         (Expr_Rep_Val): Remove call to Constant_Array_Ref
39217         Minor reformatting
39218         (Constant_Array_Ref): Deal with string literals (patch
39219         suggested by Zack Weinberg on the gcc list)
39220
39221 2001-03-28  Ed Schonberg  <schonber@gnat.com>
39222
39223         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
39224         Duplicate_Subexpr_Move_Checks.
39225
39226         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
39227         Duplicate_Subexpr_Move_Checks.
39228
39229         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
39230         value of array exists before retrieving it (it may a private
39231         protected component in a function).
39232
39233 2002-03-28   Geert Bosch  <bosch@gnat.com>
39234
39235         * prj-pp.adb : New file.
39236
39237         * prj-pp.ads : New file.
39238
39239 2002-03-28  Andreas Jaeger  <aj@suse.de>
39240
39241         * Makefile.in (stamp-sdefault): Fix path for Makefile.
39242
39243 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
39244
39245         * misc.c (gnat_expand_expr): Move prototype.
39246
39247 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
39248
39249         * misc.c (insert_default_attributes): Remove.
39250
39251 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
39252
39253         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
39254         (gnat_init): Don't set hook.
39255         (gnat_expand_expr): Fix prototype.
39256
39257 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
39258
39259         * misc.c (ggc_p): Remove.
39260
39261 2002-03-27  Geert Bosch  <bosch@gnat.com>
39262
39263         * prj-makr.ads, prj-makr.adb : New files.
39264
39265 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
39266
39267         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
39268         (lang_mark_tree): Make static, rename.
39269
39270 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
39271
39272         * misc.c (maybe_build_cleanup): Remove.
39273
39274 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
39275
39276         * gigi.h (yyparse): Remove.
39277
39278 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
39279
39280         From Ben Brosgol  <brosgol@gnat.com>
39281         * gnat_rm.texi: Sync with ACT version.
39282
39283 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
39284
39285         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
39286         (gnat_init): Remove old hook.
39287
39288 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
39289
39290         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
39291         (yyparse): Rename gnat_parse_file.
39292
39293 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
39294
39295         Delete all lines containing "$Revision:".
39296         * xeinfo.adb: Don't look for revision numbers.
39297         * xnmake.adb: Likewise.
39298         * xsinfo.adb: Likewise.
39299         * xsnames.adb: Likewise.
39300         * xtreeprs.adb: Likewise.
39301
39302 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
39303
39304         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
39305         gnat_tree_code_name): Delete.
39306         (tree_code_type, tree_code_length, tree_code_name): Define.
39307         (gnat_init): Don't try to copy into the various tree_code
39308         arrays.
39309
39310 2002-03-11  Richard Henderson  <rth@redhat.com>
39311
39312         * Makefile.in (.NOTPARALLEL): Add fake tag.
39313
39314 2002-03-07  Geert Bosch  <bosch@gnat.com>
39315
39316         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
39317         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
39318         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
39319         switch-m.adb, switch-m.ads : New files.
39320
39321 2002-03-07  Geert Bosch  <bosch@gnat.com>
39322
39323         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
39324         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
39325         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
39326         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
39327         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
39328         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
39329         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
39330         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
39331         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
39332         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
39333         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
39334         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
39335         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
39336         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
39337         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
39338         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
39339         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
39340         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
39341         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
39342         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
39343         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
39344         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
39345         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
39346         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
39347         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
39348         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
39349         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
39350         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
39351         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
39352         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
39353         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
39354         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
39355         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
39356         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
39357         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
39358         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
39359         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
39360         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
39361         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
39362         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
39363         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
39364         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
39365         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
39366         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
39367         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
39368         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
39369         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
39370         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
39371         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
39372         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
39373         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
39374         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
39375         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
39376         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
39377         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
39378         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
39379         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
39380         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
39381         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
39382         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
39383         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
39384         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
39385         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
39386         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
39387         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
39388         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
39389         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
39390         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
39391         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
39392         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
39393         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
39394         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
39395         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
39396         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
39397         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
39398         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
39399         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
39400         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
39401         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
39402         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
39403         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
39404         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
39405         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
39406         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
39407         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
39408         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
39409         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
39410         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
39411         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
39412         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
39413         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
39414         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
39415         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
39416         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
39417         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
39418         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
39419         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
39420
39421         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
39422         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
39423         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
39424         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
39425
39426         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
39427         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
39428
39429         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
39430         to mdll-fil.ad[bs] and mdll-util.ad[bs]
39431
39432         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
39433         from mdllfile.ad[bs] and mdlltool.ad[bs]
39434
39435 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
39436
39437         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
39438         lieu of explicit sizeof/sizeof.
39439
39440 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
39441
39442         * misc.c (copy_lang_decl): Remove.
39443
39444 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
39445
39446         * misc.c: Delete traditional-mode-related code copied from the
39447         C front end but not used, or used only to permit the compiler
39448         to link.
39449
39450 2002-02-07  Richard Henderson  <rth@redhat.com>
39451
39452         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
39453         * adaint.h (__gnat_to_gm_time): Update prototype.
39454
39455 2002-01-30  Richard Henderson  <rth@redhat.com>
39456
39457         * trans.c (tree_transform) [N_Loop_Statement]: Use
39458         expand_exit_loop_top_cond.
39459
39460 2001-12-23  Richard Henderson  <rth@redhat.com>
39461
39462         * utils.c (end_subprog_body): Push GC context around
39463         rest_of_compilation for nested functions.
39464
39465 2001-12-23  Richard Henderson  <rth@redhat.com>
39466
39467         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
39468
39469 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
39470
39471         * gnat-style.texi (Declarations and Types): Remove ancient style
39472         rule which was mandated by code generation issues.
39473
39474         * gnat-style.texi (header): Add @dircategory, @direntry.
39475         (title page): Remove date.
39476         (general) Add @./@: where approriate, and two spaces after the
39477         full stop at the end of a sentence.  Use @samp markup when
39478         referring concrete lexical entities (keywords, attribute names
39479         etc.), and @syntax for ARM grammar elements. Use @r for English
39480         text in comments.  Use @emph for emphasis.  Change "if-statements"
39481         etc. to "if statements" (without @samp). Break long lines.  Make
39482         casing of section names consistent.
39483         (Identifiers): Use @samp markup for variable names.
39484         (Comments): Use @samp markup for comment characters. Line-end
39485         comments may follow any Ada code, not just statements.  Fix
39486         misspelling of "Integer" as "integer".
39487         (Loop statements): Do not use variable name "I", use "J".
39488         (Subprogram Declarations): Document alignment.
39489         (Subprogram Bodies, Block statements): Document empty line before
39490         "begin".
39491
39492 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
39493
39494         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
39495         function approach did not work well because of a side effect (the
39496         function call could reallocate the table which was being indexed
39497         using its result). Fixes ada/4851.
39498
39499 2001-12-19  Robert Dewar  <dewar@gnat.com>
39500
39501         * bindgen.adb: Minor reformatting
39502
39503         * cstand.adb: Minor reformatting
39504
39505         * fmap.adb: Minor reformatting
39506         Change name from Add for Add_To_File_Map (Add is much too generic)
39507         Change Path_Name_Of to Mapped_Path_Name
39508         Change File_Name_Of to Mapped_File_Name
39509         Fix copyright dates in header
39510
39511         * fmap.ads:
39512         Change name from Add for Add_To_File_Map (Add is much too generic)
39513         Change Path_Name_Of to Mapped_Path_Name
39514         Change File_Name_Of to Mapped_File_Name
39515         Fix copyright dates in header
39516
39517         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
39518         Add use clause for Fmap.
39519
39520         * make.adb: Minor reformatting
39521
39522         * osint.adb: Minor reformatting.  Change of names in Fmap.
39523         Add use clause for Fmap.
39524
39525         * prj-env.adb: Minor reformatting
39526
39527         * prj-env.ads: Minor reformatting
39528
39529         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
39530         error found (there were odd exceptions to this general rule in
39531         -gnatec/-gnatem processing)
39532
39533 2001-12-19  Olivier Hainque  <hainque@gnat.com>
39534
39535         * raise.c (__gnat_eh_personality): Exception handling personality
39536         routine for Ada.  Still in rough state, inspired from the C++ version
39537         and still containing a bunch of debugging artifacts.
39538         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
39539         inspired from the C++ library.
39540
39541         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
39542         exception handling integration.
39543
39544 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
39545
39546         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
39547         (HIE_SOURCES): Add s-secsta.ad{s,b}.
39548         (HIE_OBJS): Add s-fat*.o
39549         (RAVEN_SOURCES): Remove files that are no longer required. Add
39550         interrupt handling files.
39551         (RAVEN_MOD): Removed, no longer needed.
39552
39553 2001-12-19  Robert Dewar  <dewar@gnat.com>
39554
39555         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
39556         Add 2001 to copyright date
39557
39558         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
39559         need to force universal inlining for these cases.
39560
39561 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
39562
39563         * s-taprob.adb: Minor clean ups so that this unit can be used in
39564         Ravenscar HI.
39565
39566         * exp_ch7.adb: Allow use of secondary stack in HI mode.
39567         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
39568
39569 2001-12-19  Vincent Celier  <celier@gnat.com>
39570
39571         * prj-tree.ads (Project_Node_Record): Add comments for components
39572         Pkg_Id and Case_Insensitive.
39573
39574 2001-12-19  Pascal Obry  <obry@gnat.com>
39575
39576         * g-socket.adb: Minor reformatting. Found while reading code.
39577
39578 2001-12-19  Robert Dewar  <dewar@gnat.com>
39579
39580         * prj-tree.ads: Minor reformatting
39581
39582 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
39583
39584         * config-lang.in (diff_excludes): Remove.
39585
39586 2001-12-17  Ed Schonberg  <schonber@gnat.com>
39587
39588         * sem_res.adb (Resolve_Selected_Component): do not generate a
39589         discriminant check if the selected component is a component of
39590         the argument of an initialization procedure.
39591
39592         * trans.c (tree_transform, case of arithmetic operators): If result
39593         type is private, the gnu_type is the base type of the full view,
39594         given that the full view itself may be a subtype.
39595
39596 2001-12-17  Robert Dewar  <dewar@gnat.com>
39597
39598         * sem_res.adb: Minor reformatting
39599
39600         * trans.c (tree_transform, case N_Real_Literal): Add missing third
39601         parameter in call to Machine (unknown horrible effects from this
39602         omission).
39603
39604         * urealp.h: Add definition of Round_Even for call to Machine
39605         Add third parameter for Machine
39606
39607 2001-12-17  Ed Schonberg  <schonber@gnat.com>
39608
39609         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
39610         predefined units in No_Run_Time mode.
39611
39612 2001-12-17  Richard Kenner  <kenner@gnat.com>
39613
39614         * misc.c (insn-codes.h): Now include.
39615
39616 2001-12-17  Olivier Hainque  <hainque@gnat.com>
39617
39618         * a-except.adb: Preparation work for future integration of the GCC 3
39619         exception handling mechanism
39620         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
39621         to factorize previous code sequences and make them externally callable,
39622         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
39623         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
39624         Use the new notification routines.
39625
39626 2001-12-17  Emmanuel Briot  <briot@gnat.com>
39627
39628         * prj-tree.ads (First_Choice_Of): Document the when others case
39629
39630 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
39631
39632         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
39633         HI-E mode, in order to support Ravenscar profile properly.
39634
39635         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
39636         mode on 32 bits targets.
39637
39638 2001-12-17  Vincent Celier  <celier@gnat.com>
39639
39640         * fmap.adb: Initial version.
39641
39642         * fmap.ads: Initial version.
39643
39644         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
39645         If search is successfully done, add to mapping.
39646
39647         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
39648
39649         * make.adb:
39650         (Gnatmake): Add new local variable Mapping_File_Name.
39651          Create mapping file when using project file(s).
39652          Delete mapping file before exiting.
39653
39654         * opt.ads (Mapping_File_Name): New variable
39655
39656         * osint.adb (Find_File): Use path name found in mapping, if any.
39657
39658         * prj-env.adb (Create_Mapping_File): New procedure
39659
39660         * prj-env.ads (Create_Mapping_File): New procedure.
39661
39662         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
39663         (Mapping_File)
39664
39665         * usage.adb: Add entry for new switch -gnatem.
39666
39667         * Makefile.in: Add dependencies for fmap.o.
39668
39669 2001-12-17  Ed Schonberg  <schonber@gnat.com>
39670
39671         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
39672         is a package instantiation rewritten as a package body.
39673         (Install_Withed_Unit): Undo previous change, now redundant.
39674
39675 2001-12-17  Gary Dismuke  <dismukes@gnat.com>
39676
39677         * layout.adb:
39678         (Compute_Length): Move conversion to Unsigned to callers.
39679         (Get_Max_Size): Convert Len expression to Unsigned after calls to
39680         Compute_Length and Determine_Range.
39681         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
39682         Compute_Length and Determine_Range.
39683         Above changes fix problem with length computation for supernull arrays
39684         where Max (Len, 0) wasn't getting applied due to the Unsigned
39685         conversion used by Compute_Length.
39686
39687 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
39688
39689         * rtsfind.ads:
39690         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
39691          System.Secondary_Stack.
39692         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
39693          in HI-E mode.
39694         Remove unused entity RE_Exception_Data.
39695
39696         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
39697
39698         * rident.ads (No_Secondary_Stack): New restriction.
39699
39700 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
39701
39702         * gnat_rm.texi: Fix minor typos. Found while reading the section
39703         regarding "Bit_Order Clauses" that was sent to a customer.
39704         Very interesting documentation!
39705
39706 2001-12-17  Robert Dewar  <dewar@gnat.com>
39707
39708         * sem_case.adb (Choice_Image): Avoid creating improper character
39709         literal names by using the routine Set_Character_Literal_Name. This
39710         fixes bombs in certain error message cases.
39711
39712 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
39713
39714         * a-reatim.adb: Minor reformatting.
39715
39716 2001-12-17  Ed Schonberg  <schonber@gnat.com>
39717
39718         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
39719         case where the formal is an extension of another formal in the current
39720         unit or in a parent generic unit.
39721
39722 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
39723
39724         * s-tposen.adb: Update comments.  Minor reformatting.
39725         Minor code clean up.
39726
39727         * s-tarest.adb: Update comments.  Minor code reorganization.
39728
39729 2001-12-17  Gary Dismukes  <dismukes@gnat.com>
39730
39731         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
39732         when Java_VM.
39733
39734 2001-12-17  Robert Dewa  <dewar@gnat.com>
39735
39736         * exp_attr.adb: Minor reformatting
39737
39738 2001-12-17  Ed Schonberg  <schonber@gnat.com>
39739
39740         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
39741         derivations nested within a child unit: verify that the parent
39742         type is declared in an outer scope.
39743
39744 2001-12-17  Robert Dewar  <dewar@gnat.com>
39745
39746         * sem_ch12.adb: Minor reformatting
39747
39748 2001-12-17  Ed Schonberg  <schonber@gnat.com>
39749
39750         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
39751         warning if current unit is a predefined one, from which bodies may
39752         have been deleted.
39753
39754 2001-12-17  Robert Dewar  <dewar@gnat.com>
39755
39756         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
39757         Fix header format. Add 2001 to copyright date.
39758
39759         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
39760         which caused CE during compilation if checks were enabled.
39761
39762 2001-12-17  Vincent Celier  <celier@gnat.com>
39763
39764         * make.adb:
39765         (Switches_Of): New function
39766         (Test_If_Relative_Path): New procedure
39767         (Add_Switches): Use new function Switches_Of
39768         (Collect_Arguments_And_Compile): Use new function Switches_Of.
39769         When using a project file, test if there are any relative
39770         search path. Fail if there are any.
39771         (Gnatmake): Only add switches for the primary directory when not using
39772         a project file. When using a project file, change directory to the
39773         object directory of the main project file. When using a project file,
39774         test if there are any relative search path. Fail if there are any.
39775         When using a project file, fail if specified executable is relative
39776         path with directory information, and prepend executable, if not
39777         specified as an absolute path, with the exec directory.  Make sure
39778         that only one -o switch is transmitted to the linker.
39779
39780         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
39781
39782         * prj-nmsc.adb:
39783         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
39784         when using a non standard naming scheme.
39785         (Check_Ada_Naming_Scheme): Make sure that error messages
39786         do not raise exceptions.
39787         (Is_Illegal_Append): Return True if there is no dot in the suffix.
39788         (Language_Independent_Check): Check the exec directory.
39789
39790         * prj.adb (Project_Empty): Add new component Exec_Directory
39791
39792         * prj.ads:
39793         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
39794         (Project_Data): Add component Exec_Directory
39795
39796         * snames.adb: Updated to match snames.ads revision 1.215
39797
39798         * snames.ads: Added Exec_Dir
39799
39800 2001-12-17  Robert Dewar  <dewar@gnat.com>
39801
39802         * make.adb: Minor reformatting
39803
39804         * prj-nmsc.adb: Minor reformatting
39805
39806         * snames.adb: Updated to match snames.ads
39807
39808         * snames.ads: Alphebetize entries for project file
39809
39810 2001-12-17  Ed Schonberg  <schonber@gnat.com>
39811
39812         * trans.c (process_freeze_entity): Do nothing if the entity is a
39813         subprogram that was already elaborated.
39814
39815 2001-12-17  Richard Kenner  <kenner@gnat.com>
39816
39817         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
39818         and Esize if object is referenced via pointer.
39819
39820 2001-12-17  Ed Schonberg  <schonber@gnat.com>
39821
39822         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
39823         is discrete before analyzing choices.
39824
39825 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
39826
39827         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
39828         containing the name of the Ada Main Program. This string is mainly
39829         intended for the debugger.
39830         (Gen_Output_File_C): Do the equivalent change when generating a C file.
39831
39832 2001-12-17  Robert Dewar  <dewar@gnat.com>
39833
39834         * ali.adb: Set new Dummy_Entry field in dependency entry
39835
39836         * ali.ads: Add Dummy_Entry field to source dependency table
39837
39838         * bcheck.adb (Check_Consistency): Ignore dummy D lines
39839
39840         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
39841
39842         * lib-writ.ads: Document dummy D lines for missing files.
39843
39844         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
39845
39846 2001-12-17  Robert Dewar  <dewar@gnat.com>
39847
39848         * ali.adb: Type reference does not reset current file.
39849
39850         * ali.adb: Recognize and scan renaming reference
39851
39852         * ali.ads: Add spec for storing renaming references.
39853
39854         * lib-xref.ads: Add documentation for handling of renaming references
39855
39856         * lib-xref.adb: Implement output of renaming reference.
39857
39858         * checks.adb:
39859         (Determine_Range): Document local variables
39860         (Determine_Range): Make sure Hbound is initialized. It looks as though
39861          there could be a real problem here with an uninitialized reference
39862          to Hbound, but no actual example of failure has been found.
39863
39864 2001-12-17  Laurent Pautet  <pautet@gnat.com>
39865
39866         * g-socket.ads:
39867         Fix comment of Shutdown_Socket and Close_Socket. These functions
39868         should not fail silently because if they are called twice, this
39869         probably means that there is a race condition in the user program.
39870         Anyway, this behaviour is consistent with the rest of this unit.
39871         When an error occurs, an exception is raised with the error message
39872         as exception message.
39873
39874 2001-12-17  Robert Dewar  <dewar@gnat.com>
39875
39876         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
39877         that it happens before modification of Sloc values for -gnatD.
39878
39879         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
39880         so that it happens before modification of Sloc values for -gnatD.
39881
39882         * switch.adb: Minor reformatting
39883
39884 2001-12-15  Richard Henderson  <rth@redhat.com>
39885
39886         * sem_ch7.adb: Wrap comment.
39887
39888 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
39889
39890         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
39891         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
39892         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
39893         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
39894         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
39895         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
39896         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
39897         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
39898         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
39899         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
39900         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
39901         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
39902         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
39903         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
39904         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
39905         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
39906         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
39907         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
39908         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
39909         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
39910         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
39911         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
39912         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
39913         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
39914         spelling errors.
39915
39916 2001-12-14  Vincent Celier  <celier@gnat.com>
39917
39918         * osint.adb(Create_Debug_File): When an object file is specified,
39919         put the .dg file in the same directory as the object file.
39920
39921 2001-12-14  Robert Dewar  <dewar@gnat.com>
39922
39923         * osint.adb: Minor reformatting
39924
39925         * lib-xref.adb (Output_Instantiation): New procedure to generate
39926         instantiation references.
39927
39928         * lib-xref.ads: Add documentation of handling of generic references.
39929
39930         * ali.adb (Read_Instantiation_Ref): New procedure to read
39931         instantiation references
39932
39933         * ali.ads: Add spec for storing instantiation references
39934
39935         * bindusg.adb: Minor reformatting
39936
39937         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
39938
39939         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
39940
39941         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
39942
39943         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
39944
39945         * csets.ads:
39946         Fix header format
39947         Add 2001 to copyright date
39948         Add entry for Latin-5 (Cyrillic ISO-8859-5)
39949
39950 2001-12-14  Matt Gingell  <gingell@gnat.com>
39951
39952         * adaint.c: mktemp is a macro on Lynx and can not be used as an
39953         expression.
39954
39955 2001-12-14  Richard Kenner  <kenner@gnat.com>
39956
39957         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
39958         if operand is CONSTRUCTOR.
39959
39960 2001-12-14  Ed Schonberg  <schonber@gnat.com>
39961
39962         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
39963         before emiting check on right-hand side, so that exception information
39964         is correct.
39965
39966 2001-12-14  Richard Kenner  <kenner@gnat.com>
39967
39968         * utils.c (create_var_decl): Throw away initializing expression
39969         if just annotating types and non-constant.
39970
39971 2001-12-14  Vincent Celier  <celier@gnat.com>
39972
39973         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
39974         Default_Ada_...
39975
39976         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
39977         Remove functions.
39978         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
39979
39980         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
39981         Remove functions.
39982         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
39983
39984 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
39985
39986         * ChangeLog: Remove piece of diff output.
39987
39988 2001-12-14  Geert Bosch  <bosch@gnat.com>
39989
39990         * config-lang.in: Update copyright notice
39991
39992         * layout.adb: Remove commented out code.
39993
39994         * mdllfile.ads: Update copyright notice. Fix header format.
39995
39996         * sem_case.ads: Likewise.
39997
39998         * sem_ch3.adb: Minor reformatting.
39999
40000 2001-12-12  Geert Bosch  <bosch@gnat.com>
40001
40002         * freeze.ads: Update copyright date.
40003
40004         * g-comlin.ads: Minor reformatting.
40005
40006         * gnat-style.texi: Fix typo.
40007
40008 2001-12-12  Geert Bosch  <bosch@gnat.com>
40009
40010         *  einfo.h: Regenerate.
40011
40012 2001-12-12  Ed Schonberg  <schonber@gnat.com>
40013
40014         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
40015         on known node types, rather than untyped fields. Further cleanups.
40016
40017 2001-12-12  Robert Dewar  <dewar@gnat.com>
40018
40019         * sem_ch12.adb:
40020         (Save_Entity_Descendant): Minor comment update.
40021         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
40022          of an N_Attribute_Reference node. As per note below, this does not
40023         eliminate need for Associated_Node in attribute ref nodes.
40024         (Associated_Node): Documentation explicitly mentions attribute
40025         reference nodes, since this field is used in such nodes.
40026
40027         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
40028
40029 2001-12-12  Robert Dewar  <dewar@gnat.com>
40030
40031         * s-stalib.adb: Add more comments on with statements being needed
40032
40033         * par-ch12.adb: Minor reformatting
40034
40035         * prj-dect.ads: Fix copyright header
40036
40037         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
40038         inputs fit in 32 bits, but the result still overflows.
40039
40040         * s-fatgen.ads: Minor comment improvement
40041
40042 2001-12-12  Ed Schonberg  <schonber@gnat.com>
40043
40044         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
40045         formal derived type, look for an inherited component from the full
40046         view of the parent, if any.
40047
40048 2001-12-12  Robert Dewar  <dewar@gnat.com>
40049
40050         * checks.ads (Apply_Alignment_Check): New procedure.
40051
40052         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
40053         ensure that the alignment of objects with address clauses is
40054         appropriate, and raise PE if not.
40055
40056         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
40057         Exp_Pakd.Known_Aligned_Enough
40058
40059         * mdllfile.ads: Minor reformatting
40060
40061         * mlib-fil.ads: Minor reformatting
40062
40063 2001-12-12  Ed Schonberg  <schonber@gnat.com>
40064
40065         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
40066         fix to any component reference if enclosing record has non-standard
40067         representation.
40068
40069 2001-12-12  Vincent Celier  <celier@gnat.com>
40070
40071         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
40072         Iteration
40073
40074 2001-12-12  Ed Schonberg  <schonber@gnat.com>
40075
40076         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
40077         sem_attr.
40078
40079 2001-12-12  Robert Dewar  <dewar@gnat.com>
40080
40081         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
40082
40083 2001-12-12  Emmanuel Briot  <briot@gnat.com>
40084
40085         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
40086         and it adds dependencies to system.io.
40087
40088 2001-12-12  Pascal Obry  <obry@gnat.com>
40089
40090         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
40091         variable name.
40092
40093 2001-12-11  Ed Schonberg  <schonber@gnat.com>
40094
40095         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
40096         that is the parent of other generics, the instance body replaces the
40097         instance node.  Retrieve the instance of the spec, which is the one
40098         that is visible in clients and within the body.
40099
40100 2001-12-11  Vincent Celier  <celier@gnat.com>
40101
40102         * gnatmain.adb: Initial version.
40103
40104         * gnatmain.ads: Initial version.
40105
40106         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
40107
40108         * snames.adb: Updated to match snames.ads.
40109
40110         * snames.ads: Added Gnatstub.
40111
40112 2001-12-11  Vincent Celier  <celier@gnat.com>
40113
40114         * prj-attr.adb (Initialization_Data): Change name from
40115         Initialisation_Data.
40116
40117 2001-12-11  Emmanuel Briot  <briot@gnat.com>
40118
40119         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
40120         + and * applied to backslashed expressions like \r.
40121
40122 2001-12-11  Vasiliy Fofanov  <fofanov@gnat.com>
40123
40124         * g-os_lib.ads: String_List type added, Argument_List type is now
40125         subtype of String_List.
40126
40127 2001-12-11  Robert Dewar  <dewar@gnat.com>
40128
40129         * g-os_lib.ads: Change copyright to FSF
40130         Add comments for String_List type
40131
40132 2001-12-11  Vincent Celier  <celier@gnat.com>
40133
40134         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
40135         string to the buffer).
40136
40137 2001-12-11  Ed Schonberg  <schonber@gnat.com>
40138
40139         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
40140         sem_attr.
40141
40142         * sem_attr.adb: Simplify previous fix for Address.
40143         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
40144         to avoid anomalies where the bound of the type appears to raise
40145         constraint error.
40146
40147 2001-12-11  Robert Dewar  <dewar@gnat.com>
40148
40149         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
40150         handled.
40151
40152 2001-12-11  Ed Schonber   <schonber@gnat.com>
40153
40154         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
40155         renamed unit before checking for recursive instantiations.
40156
40157 2001-12-11  Emmanuel Briot  <briot@gnat.com>
40158
40159         * prj.ads: Add comments for some of the fields.
40160
40161 2001-12-11  Robert Dewar  <dewar@gnat.com>
40162
40163         * lib-xref.adb (Output_Refs): Don't output type references outside
40164         the main unit if they are not otherwise referenced.
40165
40166 2001-12-11  Ed Schonberg  <schonber@gnat.com>
40167
40168         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
40169         code and diagnose additional illegal uses
40170
40171         * sem_util.adb (Is_Object_Reference): An indexed component is an
40172         object only if the prefix is.
40173
40174 2001-12-11  Vincent Celier  <celier@gnat.com>
40175
40176         * g-diopit.adb: Initial version.
40177
40178         * g-diopit.ads: Initial version.
40179
40180         * g-dirope.adb:
40181         (Expand_Path): Avoid use of Unbounded_String
40182         (Find, Wildcard_Iterator): Moved to child package Iteration
40183
40184         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
40185
40186 2001-12-11  Robert Dewar  <dewar@gnat.com>
40187
40188         * sem_attr.adb: Minor reformatting
40189
40190 2001-12-11  Ed Schonberg  <schonber@gnat.com>
40191
40192         * sem_ch3.adb: Clarify some ???.
40193
40194 2001-12-11  Robert Dewar  <dewar@gnat.com>
40195
40196         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
40197         Exp_Pakd.Known_Aligned_Enough
40198
40199         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
40200         version is moved to Exp_Ch13.
40201
40202 2001-12-11  Robert Dewar  <dewar@gnat.com>
40203
40204         * einfo.ads: Minor reformatting
40205
40206         * exp_ch5.adb: Add comment for previous.change
40207
40208         * ali.adb: New interface for extended typeref stuff.
40209
40210         * ali.ads: New interface for typeref stuff.
40211
40212         * checks.adb (Apply_Alignment_Check): New procedure.
40213
40214         * debug.adb: Add -gnatdM for modified ALI output
40215
40216         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
40217
40218         * lib-xref.adb: Extend generation of <..> notation to cover
40219         subtype/object types. Note that this is a complete rewrite,
40220         getting rid of the very nasty quadratic algorithm previously
40221         used for derived type output.
40222
40223         * lib-xref.ads: Extend description of <..> notation to cover
40224         subtype/object types. Uses {..} for these other cases.
40225         Also use (..) for pointer types.
40226
40227         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
40228
40229         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
40230         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
40231
40232 2001-12-11  Vincent Celier  <celier@gnat.com>
40233
40234         * gnatcmd.adb:
40235         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
40236         Changed /BIND_ONLY to /ACTIONS=BIND
40237         Changed /LINK_ONLY to /ACTIONS=LINK
40238
40239 2001-12-11  Ed Schonberg  <schonber@gnat.com>
40240
40241         * sem_ch8.adb (Find_Selected_Component): improved search for a
40242         candidate package in case of error.
40243
40244         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
40245         chain back on scope stack before reinstalling use clauses.
40246
40247         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
40248         is enabled, do not kill the code for the condition, to preserve
40249         warning.
40250
40251 2001-12-11  Robert Dewar  <dewar@gnat.com>
40252
40253         * checks.adb (Insert_Valid_Check): Apply validity check to expression
40254         of conversion, not to result of conversion.
40255
40256 2001-12-11  Ed Schonberg  <schonber@gnat.com>
40257
40258         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
40259         before freezing parent. If the declarations are mutually recursive,
40260         an access to the current record type may be frozen before the
40261         derivation is complete.
40262
40263 2001-12-05  Vincent Celier  <celier@gnat.com>
40264
40265         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
40266         -c /COMPILE_ONLY, -l /LINK_ONLY
40267
40268         * opt.ads:
40269         (Bind_Only): New Flag
40270         (Link_Only): New flag
40271
40272         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
40273         and -l (Link_Only)
40274
40275         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
40276
40277         * make.adb:
40278         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
40279         (Gnatmake): Set the step flags. Only perform a step if the
40280         corresponding step flag is True.
40281         (Scan_Make_Arg): Reset the bind and link step flags when -u
40282         or -gnatc has been specified.
40283
40284 2001-12-05  Ed Schonberg  <schonber@gnat.com>
40285
40286         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
40287         get bounds from right operand.
40288
40289         * sem_eval.adb: Minor reformatting
40290
40291         * exp_util.adb (Make_Literal_Range): use bound of literal rather
40292         than Index'First, its lower bound may be different from 1.
40293
40294         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
40295         and C48009J
40296
40297 2001-12-05  Vincent Celier  <celier@gnat.com>
40298
40299         * prj-nmsc.adb Minor reformatting
40300
40301         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
40302         set and libraries are not supported.
40303
40304 2001-12-05  Ed Schonberg  <schonber@gnat.com>
40305
40306         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
40307         private view explicitly, so the back-end can treat as a global
40308         when appropriate.
40309
40310 2001-12-05  Ed Schonberg  <schonber@gnat.com>
40311
40312         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
40313          unit, always replace instance node with new body, for ASIS use.
40314
40315 2001-12-05  Vincent Celier  <celier@gnat.com>
40316
40317         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
40318         libraries are not supported and both attributes Library_Name and
40319         Library_Dir are specified.
40320
40321         * prj-proc.adb (Expression): Set location of Result to location of
40322         first term.
40323
40324         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
40325         (prj-nmsc is now importing MLib.Tgt)
40326
40327         * prj-proc.adb: Put the change indicated above that was forgotten.
40328
40329 2001-12-05  Robert Dewar  <dewar@gnat.com>
40330
40331         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
40332
40333 2001-12-05  Ed Schonberg  <schonber@gnat.com>
40334
40335         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
40336         constraint, introduce explicit subtype declaration and derive from it.
40337
40338         * sem_ch3.adb: Minor reformatting
40339
40340 2001-12-05  Robert Dewar  <dewar@gnat.com>
40341
40342         * checks.adb (Determine_Range): Increase cache size for checks.
40343         Minor reformatting
40344
40345         * exp_ch6.adb: Minor reformatting
40346         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
40347         a parameter whose root type is System.Address, since treating such
40348         subprograms as pure in the code generator is almost surely a mistake
40349         that will lead to unexpected results.
40350
40351         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
40352         change handling of conversions.
40353
40354         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
40355
40356 2001-12-05  Ed Schonberg  <schonber@gnat.com>
40357
40358         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
40359         aggregate with static wrong size, attach generated Raise node to
40360         declaration.
40361
40362 2001-12-05  Robert Dewar  <dewar@gnat.com>
40363
40364         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
40365         Fixes compilation abandoned bomb in B24009B.
40366
40367 2001-12-05  Ed Schonberg  <schonber@gnat.com>
40368
40369         * sem_ch12.adb:
40370         Document use of Associated_Node on Selected_Components.
40371         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
40372         to clarify use of untyped descendant fields.
40373
40374 2001-12-05  Robert Dewar  <dewar@gnat.com>
40375
40376         * prj-dect.ads: Add ??? comment
40377         Add 2001 to copyright notice (was not done in after all)
40378
40379         * prj-part.adb: Minor reformatting. Reword one awkward error message.
40380
40381         * prj.ads: Minor reformatting throughout, and add some ??? comments
40382
40383         * snames.ads: Minor reformatting
40384
40385 2001-12-05  Geert Bosch  <bosch@gnat.com>
40386
40387         * snames.adb: Autoupdate
40388
40389 2001-12-05  Vincent Celier  <celier@gnat.com>
40390
40391         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
40392
40393         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
40394
40395         * prj-env.adb: Minor comment changes (modifying -> extends).
40396
40397         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
40398
40399         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
40400         Tok_Extends.
40401
40402         * prj.adb (Initialize): Change Modifying to Extends.
40403
40404         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
40405
40406         * prj.ads: Minor comment change (Modifying -> extending).
40407
40408         * snames.ads: Change modifying to extends.
40409
40410 2001-12-05  Robert Dewar  <dewar@gnat.com>
40411
40412         * sem_warn.adb: Remove stuff for conditionals, we are not going to
40413         do this after all.
40414
40415         * sem_warn.ads: Remove stuff for conditionals, we are not going to
40416         do this after all.  Add 2001 to copyright notice
40417
40418 2001-12-04  Geert Bosch  <bosch@gnat.com>
40419
40420         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
40421
40422 2001-12-04  Robert Dewar  <dewar@gnat.com>
40423
40424         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
40425         location if we already have errors. Stops some cases of cascaded
40426         errors.
40427
40428         * errout.adb: Improve comment.
40429
40430 2001-12-04  Robert Dewar  <dewar@gnat.com>
40431
40432         * sem_ch12.adb:
40433         (Analyze_Formal_Type_Definition): Defend against Error.
40434         (Analyze_Formal_Subprogram): Defend against Error.
40435
40436         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
40437         remove following semicolon if present. Removes cascaded error.
40438
40439 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
40440
40441         * bindgen.adb:
40442         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
40443          exceptions equals 0.
40444         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
40445         Fixes PIWG E tests (which have to be run with -gnatL).
40446
40447 2001-12-04  Robert Dewar  <dewar@gnat.com>
40448
40449         * einfo.ads: Minor reformatting
40450
40451 2001-12-04  Ed Schonberg  <schonber@gnat.com>
40452
40453         * einfo.ads: Block_Node points to the identifier of the block, not to
40454         the block node itself, to preserve the link when the block is
40455         rewritten, e.g. within an if-statement with a static condition.
40456
40457         * inline.adb (Cleanup_Scopes): recover block statement from block
40458         entity using new meaning of Block_Node.
40459
40460         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
40461         identifier of block node, rather than to node itself.
40462
40463 2001-12-04  Gary Dismukes  <dismukes@gnat.com>
40464
40465         * layout.adb:
40466         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
40467         (Discrimify): Go back to setting the Etypes of the selected component
40468         because the Vname component does not exist at this point and will
40469         fail name resolution. Also set Analyzed.
40470         Remove with and use of Sem_Res.
40471
40472 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
40473
40474         * Makefile.in: (HIE_SOURCES): add s-fat*.
40475
40476 2001-12-04  Robert Dewar  <dewar@gnat.com>
40477
40478         * sem_attr.adb:
40479         (Compile_Time_Known_Attribute): New procedure.
40480         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
40481          proper range check.
40482
40483 2001-12-04  Ed Schonberg  <schonber@gnat.com>
40484
40485         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
40486         processing discriminants to diagnose illegal default values.
40487
40488 2001-12-04  Ed Schonberg  <schonber@gnat.com>
40489
40490         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
40491         access discriminant within a type extension that constrains its
40492         parent discriminants.
40493
40494 2001-12-04  Ed Schonberg  <schonber@gnat.com>
40495
40496         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
40497         is malformed, use instance of Any_Id to allow analysis to proceed.
40498
40499         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
40500         type definition is illegal.
40501         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
40502         misplaced.
40503
40504 2001-12-04  Ed Schonberg  <schonber@gnat.com>
40505
40506         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
40507         constants.
40508
40509 2001-12-04  Robert Dewar  <dewar@gnat.com>
40510
40511         * errout.adb: Minor reformatting
40512
40513 2001-12-04  Robert Dewar  <dewar@gnat.com>
40514
40515         * exp_util.adb: Minor reformatting from last change
40516
40517         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
40518         which is a rewriting of an expression, traverse the original
40519         expression to remove warnings that may have been posted on it.
40520
40521 2001-12-04  Ed Schonberg  <schonber@gnat.com>
40522
40523         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
40524         record that has other packed components.
40525
40526 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
40527
40528         * adaint.c: Minor cleanups.
40529
40530 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
40531
40532         * adaint.c: Do not use utime.h on vxworks.
40533
40534 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
40535
40536         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
40537         more confusion than it solves.
40538
40539 2001-12-04  Geert bosch  <bosch@gnat.com>
40540
40541         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
40542
40543 2001-12-04  Geert Bosch  <bosch@gnat.com>
40544
40545         * Makefile.in (update-sources): New target.
40546         For use by gcc_release script.
40547
40548 2001-12-04  Ed Schonberg  <schonber@gnat.com>
40549
40550         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
40551         a configuration pragma, it is now legal wherever a pragma can appear.
40552
40553 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
40554
40555         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
40556         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
40557         is now @CROSS@ -DIN_GCC; update comment.
40558
40559 2001-12-04  Robert Dewar  <dewar@gnat.com>
40560
40561         * einfo.adb (Has_Pragma_Pure_Function): New flag.
40562         Fix problem that stopped ceinfo from working
40563
40564         * einfo.ads (Has_Pragma_Pure_Function): New flag.
40565
40566         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
40567
40568 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
40569
40570         * gnatchop.adb:
40571         (File_Time_Stamp): New procedure.
40572         (Preserve_Mode): New boolean.
40573         (Write_Unit): Pass time stamp.
40574         Implement -p switch (preserve time stamps).
40575
40576         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
40577
40578         * gnatchop.adb: Do usage info for -p switch
40579
40580         * adaint.h (__gnat_set_file_time_name): New function
40581
40582         * adaint.c (__gnat_set_file_time_name): Implement
40583
40584         * adaint.h: Fix typo
40585
40586 2001-12-03  Robert Dewar  <dewar@gnat.com>
40587
40588         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
40589         have Associated_Node.
40590
40591 2001-12-03  Robert Dewar  <dewar@gnat.com>
40592
40593         * prj-proc.adb: Minor reformatting
40594
40595         * make.adb: Minor reformatting
40596
40597 2001-12-03  Geert Bosch  <bosch@gnat.com>
40598
40599         * make.adb: Minor reformatting.
40600
40601 2001-12-03 Robert Dewar  <dewar@gnat.com>
40602
40603         * sem_ch12.adb: Minor reformatting
40604
40605 2001-12-03  Ed Schonberg  <schonber@gnat.com>
40606
40607         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
40608         push Standard on the stack before analyzing the instance body,
40609         in order to have a clean visibility environment.
40610
40611         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
40612
40613 2001-12-03  Ed Schonberg  <schonber@gnat.com>
40614
40615         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
40616         instantiation of a body that contains an inlined body.
40617
40618 2001-12-03  Ed Schonberg  <schonber@gnat.com>
40619
40620         * sem_ch12.adb:
40621         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
40622         to prevent freezing within formal packages.
40623         (Freeze_Subprogram_Body): If body comes from another instance that
40624         appeared before its own body, place freeze node at end of current
40625         declarative part, to prevent a back-end crash.
40626         (Inline_Instance_Body): Handle properly a package instance within
40627         a subprogram instance that is a child unit.
40628
40629 2001-12-01  Graham Stott  <grahams@redhat.com>
40630
40631         * Makefile.in (misc.o): Add missing $(srcdir) prefix
40632         and add optabs.h dependency.
40633
40634         * misc.c: Include optabs.h
40635         (gnat_tree_code_type): Make static and const.
40636         (gnat_tree_code_length): Likewise.
40637         (gnat_tree_code_name): Likewise.
40638         (update_setjmp_buf): Obtain operands mode from insn_data.
40639
40640 2001-11-29  Richard Henderson  <rth@redhat.com>
40641
40642         * init.c: Remove obsolete dwarf2 frame.h section.
40643
40644 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
40645
40646         * Make-lang.in (ada.generated-manpages): New dummy target.
40647
40648 2001-11-29  Ed Schonberg  <schonber@gnat.com>
40649
40650         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
40651         into Command, an array conversion is illegal here. Uncovered by
40652         ACATS B460005.
40653
40654 2001-11-28  Geert Bosch  <bosch@gnat.com>
40655
40656         * init.c: Minor whitespace changes.
40657
40658 2001-11-28  Doug Rupp  <rupp@gnat.com>
40659
40660         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
40661         signal stack.
40662
40663 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
40664
40665         * misc.c (gnat_expand_constant): Move declaration above
40666         definition of lang_hooks.
40667         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
40668         (gnat_init): lang_expand_constant no longer exists.
40669
40670         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
40671         always have vprintf.
40672         (gnat_init): Always call set_internal_error_function.
40673
40674 2001-11-27  Andreas Jaeger  <aj@suse.de>
40675
40676         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
40677
40678 2001-11-27  Laurent Guerby  <guerby@acm.org>
40679
40680         * Makefile.in: Regenerate Ada dependencies.
40681
40682 2001-11-26  Richard Henderson  <rth@redhat.com>
40683
40684         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
40685         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
40686         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
40687
40688 2001-11-25  Laurent Guerby  <guerby@acm.org>
40689
40690         * sysdep.c (rts_get_*): Fix style.
40691
40692 2001-11-19  Laurent Guerby  <guerby@acm.org>
40693
40694         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
40695         since it is of no apparent use and cause warnings.
40696
40697 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
40698
40699         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
40700         static too.
40701         (gnat_init): Don't return NULL.
40702         (finish_parse): Remove.
40703
40704 2001-11-17  Laurent Guerby  <guerby@acm.org>
40705
40706         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
40707         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
40708         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
40709         * lang-spec.h: Add missing struct field to silence warnings.
40710         * sysdep.c (rts_get_*): Provide K&R prototype.
40711         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
40712         * traceback.c (Unlock_Task, Lock_Task): Likewise.
40713         * tracebak.c (__gnat_backtrace): Remove unused variable.
40714         * utils.c (end_subprog_body): Move to K&R style.
40715
40716 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
40717
40718         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
40719
40720 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
40721
40722         * misc.c (gnat_init): Change prototype.  Include the
40723         functionality of the old init_parse and init_decl_processing.
40724         (gnat_init_decl_processing): New prototype.
40725         (init_parse): Remove.
40726         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
40727
40728 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
40729
40730         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
40731         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
40732         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
40733         set_yydebug): Remove.
40734
40735 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
40736
40737         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
40738         (struct lang_hooks): Constify.
40739         (language_string, lang_identify): Remove.
40740         * utils.c (init_decl_processing): Update.
40741
40742 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
40743
40744         * misc.c: Include langhooks-def.h.
40745         * Makefile.in: Update.
40746
40747 2001-10-30  Robert Dewar  <dewar@gnat.com>
40748
40749         * style.adb:
40750         (Check_Identifier): Rewrite circuit to be compatible with use of letters
40751         in the upper half of ASCII.
40752         (Check_Identifier): Minor reformatting
40753
40754 2001-10-30  Geert Bosch  <bosch@gnat.com>
40755
40756         * (Associated_Node, Set_Associated_Node): Do not check for
40757         Freeze_Entity.
40758
40759 2001-10-30  Robert Dewar  <dewar@gnat.com>
40760
40761         * a-reatim.ads: Minor reformatting
40762
40763 2001-10-30  Robert Dewar  <dewar@gnat.com>
40764
40765         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
40766         undocumented declarations.
40767
40768 2001-10-30  Pascal Obry  <obry@gnat.com>
40769
40770         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
40771         to the binder and linker.
40772         Minor style fix.
40773
40774         * mdll.ads: Fix layout.  Update copyright notice.
40775
40776         * mdll.adb: Fix layout.  Update copyright notice.
40777
40778 2001-10-30  Robert Dewar  <dewar@gnat.com>
40779
40780         * usage.adb: Minor fix to output for -gnaty.
40781
40782 2001-10-30  Ed Schonberg  <schonber@gnat.com>
40783
40784         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
40785         to accommodate all its possible values.
40786
40787         * a-reatim.adb (Split): Special-case handling of Time_Span_First
40788         and of small absolute values of T.
40789
40790 2001-10-30  Richard Kenner  <kenner@gnat.com>
40791
40792         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
40793         set_mem_attributes since not needed and wrong if RESULT if a REG;
40794         fixes ACATS failures.
40795
40796 2001-10-30  Geert Bosch  <bosch@gnat.com>
40797
40798         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
40799         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
40800
40801 2001-10-30  Robert Dewar  <dewar@gnat.com>
40802
40803         * bindusg.adb: Undocument -f switch.
40804
40805         * gnatcmd.adb: Remove /FULL_ELABORATION.
40806
40807         * opt.ads (Force_RM_Elaboration_Order): Document that this is
40808         obsolescent.
40809
40810         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
40811
40812         * gnatbind.adb: Minor update of warning msg.
40813
40814 2001-10-30  Vincent Celier  <celier@gnat.com>
40815
40816         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
40817         for project file switches (-P (/PROJECT_FILE=),
40818          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
40819         or MEDIUM or HIGH)
40820
40821 2001-10-30  Geert Bosch  <bosch@gnat.com>
40822
40823         * decl.c: Minor whitespace fixes.
40824
40825 2001-10-30  Richard Kenner  <kenner@gnat.com>
40826
40827         * utils2.c (build_allocator): Test for SIZE overflow in array case too
40828
40829 2001-10-30  Geert Bosch  <bosch@gnat.com>
40830
40831         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
40832         Found due to GCC 3.0 warning of using uninitialized value.
40833
40834         * layout.adb:
40835         (Get_Max_Size): Use variant record for tracking value/expression.
40836          Makes logic clearer and prevents warnings for uninitialized variables.
40837         (Layout_Array_Type): Use variant record for tracking value/expression.
40838          Makes logic clearer and prevents warnings for uninitialized variables.
40839
40840 2001-10-30  Robert Dewar  <dewar@gnat.com>
40841
40842         * lib.adb: Minor reformatting
40843
40844         * s-taprop.ads: Minor reformatting
40845
40846 2001-10-29  Laurent Guerby  <guerby@acm.org>
40847
40848         * init.c:
40849         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
40850         const.
40851         (_gnat_error_handler): Make MSG const.
40852
40853 2001-10-29  Richard Kenner  <kenner@gnat.com>
40854
40855         * sysdep.c: Fix localtime_r problem on LynxOS.
40856         Also remove #elif to avoid warnings.
40857
40858         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
40859         used by this.
40860
40861         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
40862
40863 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
40864
40865         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
40866         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
40867         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
40868         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
40869         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
40870         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
40871         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
40872         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
40873         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
40874         types.ads, urealp.adb: Fix spelling errors.
40875
40876 2001-10-27  Laurent Guerby  <guerby@acm.org>
40877
40878         * trans.c (gigi): Fix non determinism leading to bootstrap
40879         comparison failures for debugging information.
40880
40881 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
40882
40883         * gnat_rm.texi: Use @./@: where appropriate.
40884
40885 2001-10-26  Robert Dewar  <dewar@gnat.com>
40886
40887         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
40888
40889 2001-10-26  Richard Kenner  <kenner@gnat.com>
40890
40891         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
40892
40893 2001-10-26  Richard Kenner  <kenner@gnat.com>
40894
40895         * decl.c (validate_size): Modify message for bad size to avoid
40896         implication that compiler is modifying the size.
40897
40898 2001-10-26  Robert Dewar  <dewar@gnat.com>
40899
40900         * prj-util.adb: Minor reformatting. Fix bad header format.
40901
40902 2001-10-26  Robert Dewar  <dewar@gnat.com>
40903
40904         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
40905
40906         * sinfo.ads: Clarify use of Associated_Node (documentation only).
40907
40908         * sem_ch12.adb: Change Node4 to Associated_Node. Change
40909         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
40910         much more narrowly in places where needed. These are cleanups.
40911
40912 2001-10-26  Joel Brobecker  <brobecke@gnat.com>
40913
40914         * 5zosinte.ads (null_pthread): new constant.
40915
40916         * 5ztaprop.adb:
40917         (Initialize_TCB): Initialize thread ID to null, to be able to verify
40918          later that this field has been set.
40919         (Finalize_TCB): ditto.
40920         (Suspend_Task): Verify that the thread ID is not null before using it.
40921         (Resume_Task): ditto.
40922
40923         * s-tasdeb.adb:
40924         (Resume_All_Tasks): Lock the tasks list before using it.
40925         (Suspend_All_Tasks): ditto.
40926
40927 2001-10-26  Richard Kenner  <kenner@gnat.com>
40928
40929         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
40930         Make constant variant of designated type for Is_Access_Constant.
40931         Call update_pointer_to with main variant.
40932
40933         * trans.c (process_freeze_entity, process_type):
40934         Call update_pointer_to on main variant.
40935
40936         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
40937         If main variant, update all other variants.
40938
40939         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
40940         TREE_STATIC.
40941
40942 2001-10-26  Robert Dewar  <dewar@gnat.com>
40943
40944         * prj-util.adb: Minor reformatting
40945
40946 2001-10-26  Robert Dewar  <dewar@gnat.com>
40947
40948         * prj-util.adb: Minor reformatting
40949
40950 2001-10-26  Robert Dewar  <dewar@gnat.com>
40951
40952         * prj-attr.adb: Minor reformatting throughout
40953
40954 2001-10-26  Robert Dewar  <dewar@gnat.com>
40955
40956         * prj-attr.ads: Minor reformatting
40957         Add ??? comment (this whole spec has almost no comments)
40958
40959 2001-10-26  Vincent Celier  <celier@gnat.com>
40960
40961         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
40962         ("//") that precede the drive letter on Interix.
40963
40964 2001-10-26  Geert Bosch  <bosch@gnat.com>
40965
40966         * gnat_rm.texi: Add GNAT Reference Manual.
40967
40968 2001-10-25  Robert Dewar  <dewar@gnat.com>
40969
40970         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
40971         is Error. Similar change for other renaming cases.
40972
40973 2001-10-25  Robert Dewar  <dewar@gnat.com>
40974
40975         * s-atacco.ads: Add pragma Inline_Always for functions.
40976         Fix header format. Add copyright 2001
40977
40978 2001-10-25  Ed Schonberg  <schonber@gnat.com>
40979
40980         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
40981         return Error rather than Empty so that analysis can proceed.
40982
40983 2001-10-25  Ed Schonberg  <schonber@gnat.com>
40984
40985         * sem_util.adb (Enter_Name): better handling of cascaded error
40986         messages when a unit appears in its own context.
40987
40988 2001-10-25  Ed Schonberg  <schonber@gnat.com>
40989
40990         * sem_util.adb (Defining_Entity): in case of error, attach created
40991         entity to specification, so that semantic analysis can proceed.
40992
40993 2001-10-25  Robert Dewar  <dewar@gnat.com>
40994
40995         * sem_util.adb
40996         (Defining_Entity): Deal with Error.
40997         (Process_End_Label): Deal with bad end label for.
40998
40999 2001-10-25  Ed Schonberg  <schonber@gnat.com>
41000
41001         * sem_elab.adb (Check_A_Call): refine message when call is in an
41002         instance but callee is not declared in the generic unit.
41003
41004 2001-10-25  Ed Schonberg  <schonber@gnat.com>
41005
41006         * sem_elab.adb (Check_A_Call): check for renaming before finding the
41007         enclosing unit, which may already be different from the calling unit.
41008
41009 2001-10-25  Geert Bosch  <bosch@gnat.com>
41010
41011         * 4gintnam.ads: fix header format.
41012
41013 2001-10-25  Ed Schonberg  <schonber@gnat.com>
41014
41015         * sem_res.adb (Resolve_Call): if the call is actually an indexing
41016         operation on the result of a parameterless call, perform elaboration
41017         check after the node has been properly rewritten.
41018
41019         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
41020         inlined within the generic tree, the defining identifier is not a
41021         compilation_unit.
41022
41023 2001-10-25  Ed Schonberg  <schonber@gnat.com>
41024
41025         * sem_res.adb (Resolve): special-case resolution of Null in an
41026          instance or an inlined body to avoid view conflicts.
41027
41028         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
41029          compatibility by retrieving the access type of the generic copy.
41030
41031 2001-10-25  Robert Dewar  <dewar@gnat.com>
41032
41033         * sem_ch3.adb:
41034         (Analyze_Number_Declaration): Handle error expression.
41035         (Signed_Integer_Type_Declaration): Handle error bound.
41036         (Analyze_Subtype_Indication): Handle error range.
41037
41038         * sem_util.adb (Get_Index_Bounds): Check for Error.
41039
41040 2001-10-25  Robert Dewar  <dewar@gnat.com>
41041
41042         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
41043         in no run time mode.
41044
41045 2001-10-25  Pascal Obry  <obry@gnat.com>
41046
41047         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
41048         mode case for ALLOC case.
41049
41050         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
41051         all platforms. Improvement of last change.
41052
41053 2001-10-25  Robert Dewar  <dewar@gnat.com>
41054
41055         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
41056
41057 2001-10-25  Geert Bosch  <bosch@gnat.com>
41058
41059         * osint.adb (Is_Relative): Remove duplicate.
41060
41061 2001-10-25  Pascal Obry  <obry@gnat.com>
41062
41063         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
41064         pathnames in UNIX and DOS style with drive letter.
41065         (Is_Relative): new routine.
41066
41067         * osint.adb: Minor reformatting
41068
41069         * osint.adb (Is_Relative): implementation using
41070         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
41071
41072 2001-10-25  Pascal Obry  <obry@gnat.com>
41073
41074         * g-dirope.adb (Basename): correctly compute offset between the
41075         original Path and the translated one.
41076
41077         * g-dirope.adb: (Base_Name): add some comments.
41078
41079 2001-10-25  Robert Dewar  <dewar@gnat.com>
41080
41081         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
41082         in HIE mode, avoids compilation abandoned message
41083
41084         * exp_imgv.adb: Correct typo in previous change
41085
41086         * exp_imgv.adb: Correct typo in previous change (not my day!)
41087
41088 2001-10-25  Robert Dewar  <dewar@gnat.com>
41089
41090         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
41091
41092 2001-10-25  Pascal Obry  <obry@gnat.com>
41093
41094         * g-awk.ads: Move all pragma inlines next to the routine
41095          declarations. This is more uniform with other GNAT spec.
41096
41097 2001-10-22  Geert Bosch  <bosch@gnat.com>
41098
41099         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
41100
41101 2001-10-19  Geert Bosch  <bosch@gnat.com>
41102
41103         * Makefile.in (tools, gnattools): Remove gnatmem.
41104
41105 2001-10-17  Richard Henderson  <rth@redhat.com>
41106
41107         * Makefile.in (misc.o): Depend on langhooks.h.
41108         * misc.c: Include it.
41109         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
41110         (LANG_HOOKS_DECODE_OPTION): New.
41111         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
41112
41113 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
41114
41115         * trans.c (tree_transform): Adjust to recent change in
41116         expand_asm_operands to implement named asm operands.
41117
41118 2001-10-11  Ed Schonberg  <schonber@gnat.com>
41119
41120         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
41121         renaming of discriminant for mutable record type.
41122
41123 2001-10-11  Robert Dewar  <dewar@gnat.com>
41124
41125         * validsw.adb: Properly save -gnatVn status.
41126
41127 2001-10-11  Robert Dewar  <dewar@gnat.com>
41128
41129         * usage.adb: Add lines for V switch.
41130
41131         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
41132         (/VALIDITY_CHECKING).
41133
41134 2001-10-11  Ed Schonberg  <schonber@gnat.com>
41135
41136         * sem_type.adb (Add_One_Interp): an operator for a type declared in
41137         an extension of System is known to be visible.
41138
41139 2001-10-11  Ed Schonberg  <schonber@gnat.com>
41140
41141         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
41142         properly. Fixes regression on ACATS C34005G.
41143
41144 2001-10-11  Robert Dewar  <dewar@gnat.com>
41145
41146         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
41147         loop in generic instance, since this is likely not very useful.
41148
41149 2001-10-11  Robert Dewar  <dewar@gnat.com>
41150
41151         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
41152         the error message for high integrity mode.
41153
41154         * rtsfind.adb (RTE): Give message if we try to find an entity that
41155         is not available in high integrity mode.
41156
41157         * rtsfind.ads:
41158         (OK_To_Use_In_HIE_Mode): New array.
41159         (RTE): May return Empty in high integrity mode.
41160
41161         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
41162         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
41163
41164         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
41165         unit if not inlined always and in no runtime mode. Fixes problem
41166         caused by new Rtsfind changes.
41167
41168         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
41169         body is deleted.
41170
41171         * rtsfind.adb (RTE): Make sure we do not try to load unit after
41172         giving message for entity not available in high integrity mode.
41173
41174 2001-10-11  Pascal Obry  <obry@gnat.com>
41175
41176         * impunit.adb: Add GNAT.CRC32.
41177
41178 2001-10-11  Ed Schonberg  <schonber@gnat.com>
41179
41180         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
41181         properly the case where one universal operand in a non-static
41182         exponentiation of a real literal.
41183
41184 2001-10-11  Ed Schonberg  <schonber@gnat.com>
41185
41186         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
41187         clause, return the gobal finalization list, for lack of anthing else.
41188
41189 2001-10-11  Ed Schonberg  <schonber@gnat.com>
41190
41191         * exp_ch7.adb (Make_Transient_Block): if statement is within
41192         exception handler, always use new transient scope to place Clean
41193         procedure.
41194
41195 2001-10-11  Pascal Obry  <obry@gnat.com>
41196
41197         * Makefile.in:
41198         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
41199         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
41200         (GNATLS_RTL_OBJS): add g-crc32.o
41201         (GNATMAKE_RTL_OBJS): add g-crc32.o
41202
41203         * ali-util.adb:
41204         (CRC_Match): new function.
41205         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
41206         instead of the previous simple checksum algorithm.
41207         (Time_Stamp_Mismatch): use CRC_Match for comparison.
41208         (Set_Source_Table): idem.
41209
41210         * ali-util.ads:
41211         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
41212         instead of simple checksum.
41213         (CRC_Match): new function.
41214         (CRC_Error): new constant.
41215
41216         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
41217         a CRC now and not a simple checksum. A CRC uses lower-case hex
41218         letters, fixes ambiguity in parsing.
41219
41220         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
41221         is what this variable will store.
41222
41223         * bcheck.adb: Change reference to chechsum in comments by CRC.
41224         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
41225         rename All_Checksum_Match to All_CRC_Match. Change due to API
41226         renaming since now GNAT does not use a simple checksum but a
41227         CRC using GNAT.CRC32.
41228
41229         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
41230         now and not anymore a simple checksum.
41231
41232         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
41233         places.
41234
41235         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
41236
41237         * scans.adb:
41238         (Restore_Scan_State): rename Checksum to CRC.
41239         (Save_Scan_State): idem.
41240
41241         * scans.ads:
41242         With GNAT.CRC32.
41243         (Checksum): rename to CRC.
41244         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
41245
41246         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
41247         GNAT.CRC32).  Update copyright notice.
41248
41249         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
41250         GNAT.CRC32).  Update copyright notice.
41251
41252         * scn.adb:
41253         (Accumulate_Checksum): removed.
41254         (Update): new procedure. Add a wide-character into the CRC.
41255
41256         * sinput-l.adb:
41257         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
41258         (Load_File): fix initialization of S (change Source_Checksum to
41259         Source_CRC)
41260
41261         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
41262         Source_CRC in S initialization.
41263
41264         * sinput.adb (Source_Checksum): renamed to Source_CRC.
41265
41266         * sinput.ads (Source_Checksum): renamed to Source_CRC.
41267         Update comments for the CRC.
41268
41269         * types.adb (Hex): Use lowercase for the letter part.
41270
41271         * types.ads (Get_Hex_String): Returns the hexadecimal representation
41272         for a word. This is currently used only for CRC. In previous version,
41273         the checksum was using a representation with all letter being
41274         upper-case. With the new implementation (using CRC) we do not remove
41275         the 32th bit of the CRC, so we can have an upper-case starting letter
41276         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
41277         It is ambigous since the CRC was optional and could be followed by
41278         options like EB, EE. So now this routines uses lower-case letter for
41279         the hexadecimal representation. Strange enough only lower case letters
41280         where checked in Scan_ALI (even if this was not a possible case).
41281
41282         * gnatvsn.ads (Library_Version): changed to 3.15a.
41283
41284         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
41285         for the compiler.
41286
41287         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
41288         for the compiler.
41289
41290         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
41291         Add 2001 to copyright notice
41292         (Accumulate_Checksum): Modify to use System.CRC32.
41293
41294         * ali-util.ads: Redo changes of previous revision to continue to use
41295         the word Checksum. Add 2001 to copyright notice.
41296
41297         * ali.adb: Undo some of previous changes, not needed.
41298         Keep the change for lower case letters in the checksum.
41299
41300         * ali.ads: Undo previous change not needed.
41301
41302         * bcheck.adb: Undo most of previous change, not needed.
41303         But do use Checksums_Match for checksum comparison.
41304
41305         * gnatls.adb: Undo most of previous change, not needed.
41306         But do use Checksums_Match for comparing checksums.
41307
41308         * lib-load.adb: Undo previous change, not needed.
41309
41310         * lib-writ.adb: Undo previous change, not needed.
41311
41312         * lib-writ.ads: Document that checksums use lower case,
41313         not upper case letters.
41314
41315         * scans.adb: Undo previous change, not needed
41316
41317         * scans.ads: Undo previous change, not needed.
41318
41319         * scn-nlit.adb: Undo previous changes, not needed.
41320
41321         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
41322
41323         * scn.adb:
41324         (Accumulate_Checksum): Use System.CRC32.
41325         (Initialize_Checksum): New procedure.
41326         Remove other changes of previous revision.
41327
41328         * sinput-p.adb: Undo previous change, not needed.
41329
41330         * sinput.adb: Undo previous change, not needed.
41331
41332         * sinput-l.adb: Undo previous change, not needed.
41333
41334         * sinput.ads: Undo previous change, not needed.  Keep only comment
41335         on new checksum algorithm
41336
41337         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
41338         Also remove a-tags and a-stream from GNAT sources.
41339
41340         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
41341
41342         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
41343
41344 2001-10-11  Geert Bosch  <bosch@gnat.com>
41345
41346         * einfo.h: Regenerate.
41347
41348         * nmake.ads: Regenerate.
41349
41350         * nmake.adb: Regenerate.
41351
41352         * sinfo.h: Regenerate.
41353
41354         * treeprs.adb: Regenerate.
41355
41356 2001-10-10  Geert Bosch  <bosch@gnat.com>
41357
41358         * gnat-style.texi: New file describing coding guidelines for Ada.
41359
41360 2001-10-10  Ed Schonberg  <schonber@gnat.com>
41361
41362         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
41363         is Flag174.
41364
41365 2001-10-10  Geert Bosch  <bosch@gnat.com>
41366
41367         * snames.ads: Add new names for project facility.
41368
41369         * snames.adb: Update to reflect snames.ads changes.
41370
41371         * snames.h: Update to reflect snames.ads changes.
41372
41373 2001-10-10  Vincent Celier  <celier@gnat.com>
41374
41375         * make.adb:
41376         (Add_Switches): reflect the changes for the switches attributes
41377         Default_Switches indexed by the programming language,
41378         Switches indexed by the file name.
41379         (Collect_Arguments_And_Compile): Idem.
41380         Reflect the attribute name changes.
41381
41382         * prj-attr.adb:
41383         (Initialisation_Data): Change the names of some packages and
41384         attributes.
41385         (Initialize): process case insensitive associative arrays.
41386
41387         * prj-attr.ads:
41388         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
41389
41390         * prj-dect.adb:
41391         (Parse_Attribute_Declaration): For case insensitive associative
41392          arrays, set the index string to lower case.
41393
41394         * prj-env.adb:
41395         Reflect the changes of the project attributes.
41396
41397         * prj-nmsc.adb:
41398         Replace Check_Naming_Scheme by Ada_Check and
41399         Language_Independent_Check.
41400
41401         * prj-nmsc.ads:
41402         Replaced Check_Naming_Scheme by 2 procedures:
41403         Ada_Check and Language_Independent_Check.
41404
41405         * prj-proc.adb:
41406         (Process_Declarative_Items): For case-insensitive associative
41407         arrays, set the index string to lower case.
41408         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
41409         Prj.Nmsc.Check_Naming_Scheme.
41410
41411         * prj-tree.adb:
41412         (Case_Insensitive): New function
41413         (Set_Case_Insensitive): New procedure
41414
41415         * prj-tree.ads:
41416         (Case_Insensitive): New function
41417         (Set_Case_Insensitive): New procedure
41418         (Project_Node_Record): New flag Case_Insensitive.
41419
41420         * prj-util.adb:
41421         (Value_Of): new function to get the string value of a single
41422         string variable or attribute.
41423
41424         * prj-util.ads:
41425         (Value_Of): new function to get the string value of a single
41426         string variable or attribute.
41427
41428         * prj.adb:
41429         (Ada_Default_Spec_Suffix): New function
41430         (Ada_Default_Impl_Suffix): New function
41431         Change definitions of several constants to reflect
41432         new components of record types.
41433
41434         * prj.ads:
41435         (Naming_Data): Change several components to reflect new
41436         elements of naming schemes.
41437         (Project_Data): New flags Sources_Present and
41438         Language_Independent_Checked.
41439         (Ada_Default_Spec_Suffix): New function.
41440         (Ada_Default_Impl_Suffix): New function.
41441
41442         * snames.ads:
41443         Modification of predefined names for project manager: added
41444         Implementation, Specification_Exceptions, Implementation_Exceptions,
41445         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
41446         Default_Switches, _Languages, Builder, Cross_Reference,
41447         Finder. Removed Body_Part, Specification_Append, Body_Append,
41448         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
41449         Gnatlink.
41450
41451         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
41452         Add comments.
41453
41454         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
41455         not that it is Nil_Variable_Value.
41456
41457         * prj.ads: Add ??? for uncommented declarations
41458
41459 2001-10-10  Ed Schonberg  <schonber@gnat.com>
41460
41461         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
41462         constant, do not indicate possible modification, so that gigi can
41463         treat it as a bona fide constant.
41464
41465 2001-10-10  Robert Dewar  <dewar@gnat.com>
41466
41467         * sem_prag.adb: Add processing for pragma External.
41468
41469         * snames.ads: Add entry for pragma External.
41470
41471         * par-prag.adb: Add pragma External.
41472
41473         * snames.adb: Updated to match snames.ads.
41474
41475 2001-10-10  Ed Schonberg  <schonber@gnat.com>
41476
41477         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
41478         a dynamic task if the allocator appears in an indexed assignment
41479         or selected component assignment.
41480
41481         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
41482         For a dynamic task in an assignment statement, use target of
41483         assignment to generate meaningful name.
41484
41485 2001-10-10  Ed Schonberg  <schonber@gnat.com>
41486
41487         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
41488         a generic package.
41489
41490         * einfo.ads: Body_Entity is also defined for generic package.
41491         Documentation change only
41492
41493         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
41494         others_choice for a discriminated component initialization,
41495         convert discriminant references into the corresponding discriminals.
41496
41497         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
41498         only if original type is private and expression has to be wrapped
41499         in a conversion.
41500
41501         * checks.adb:
41502         (Apply_Constraint_Check): Do not perform length check
41503         if expression is an aggregate with only an others_choice.
41504         (Length_N_Cond): two references to the same in_parameter
41505         (typically the discriminal in an init_proc) denote the same value.
41506         Two useful optimization uncovered by bugfixes above.
41507
41508 2001-10-10  Robert Dewar  <dewar@gnat.com>
41509
41510         * xeinfo.adb: Change int to char in translation of enumeration types.
41511         This fixes a problem in the C representation of component alignment.
41512         Add 2001 to copyright notice
41513
41514 2001-10-10  Richard Kenner  <kenner@gnat.com>
41515
41516         * decl.c: (validate_size): Do check size of object of integral type
41517         if it is a packed array type.
41518
41519 2001-10-10  Richard Kenner  <kenner@gnat.com>
41520
41521         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
41522         VAR_DECL for constant if not Is_Public but -O0.
41523
41524 2001-10-10  Richard Kenner  <kenner@gnat.com>
41525
41526         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
41527
41528 2001-10-10  Geert Bosch  <bosch@gnat.com>
41529
41530         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
41531         use '/' as switch character, allowing for absolute file names.
41532
41533 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
41534
41535         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
41536         FSF address.
41537
41538 2001-10-08  Geert Bosch  <bosch@gnat.com>
41539
41540         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
41541         Automatically build utilities when files need to be regenerated.
41542
41543 2001-10-08  Geert Bosch  <bosch@gnat.com>
41544
41545         * xsnames.adb: New utility for updating snames.ads and snames.adb
41546
41547 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
41548
41549         * Make-lang.in (ADAFLAGS): Add -W -Wall.
41550         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
41551         (gnat1): Also depend on attribs.o.
41552         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
41553         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
41554         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
41555         (ADAFLAGS): Add -W -Wall.
41556         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
41557         take out CFLAGS.
41558
41559         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
41560         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
41561         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
41562         Use $(ADAC), not $(CC), as compilation command.
41563
41564         (gnattools): Depend directly on tools to build, don't use
41565         recursive make.
41566         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
41567
41568         * einfo.h, sinfo.h: New files (autogenerated).
41569
41570 2001-10-08  Richard Henderson  <rth@redhat.com>
41571
41572         * comperr.adb (Abort_In_Progress): New.
41573         (Compiler_Abort): Use it to prevent recursion.
41574
41575 2001-10-08  Robert Dewar  <dewar@gnat.com>
41576
41577         * atree.adb: Set Error_Posted in Error node, helps error recovery.
41578
41579         * par-endh.adb (Output_End_Expected): We should also not test
41580         Error_Posted on the Error node, since now it is always set.
41581
41582         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
41583         to help error recovery. Part of general work on 9407-004.
41584
41585         * par.adb: Add ??? for misuse of error
41586
41587         * sem_res.adb:
41588         (Resolve): Defend against Error, fixes 9407-003.
41589         (Resolve_Discrete_Subtype_Indication): Defend against Error.
41590
41591         * sinfo.ads (N_Error): Now has Etype field (which will be set
41592         to Any_Type to help error recovery).
41593
41594 2001-10-08  Richard Kenner  <kenner@gnat.com>
41595
41596         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
41597         Consistently set MEM attributes from expression; fixes
41598         bootstrap failure on x86.
41599
41600 2001-10-08  Geert Bosch  <bosch@gnat.com>
41601
41602         * 5oosinte.adb: Add 2001 to copyright notice.
41603
41604 2001-10-08  Geert Bosch  <bosch@gnat.com>
41605
41606         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
41607
41608         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
41609
41610 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
41611
41612         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
41613
41614 2001-10-05  Geert Bosch  <bosch@gnat.com>
41615
41616         * adaint.h: Small formatting fix.
41617
41618 2001-10-04  Geert Bosch  <bosch@gnat.com>
41619
41620         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
41621         Arg is int, not FILE *, in dummy version of functions.
41622
41623         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
41624         Arg is int, not FILE *.
41625
41626 2001-10-04  Geert Bosch  <bosch@gnat.com>
41627
41628         * 3lsoccon.ads: Added file, missed with initial check ins.
41629
41630         * 4lintnam.ads: Fix header format.
41631         Change Linux to GNU/Linux.
41632
41633         * 5iosinte.adb: Change Linux to GNU/Linux.
41634
41635         * 5iosinte.ads: Change Linux to GNU/Linux.
41636
41637         * 5itaprop.adb: Change Linux to GNU/Linux.
41638
41639         * 5itaspri.ads: Change Linux to GNU/Linux.
41640         Update copyright notice.
41641
41642         * 5lintman.adb: Change Linux to GNU/Linux.
41643
41644         * 5lml-tgt.adb: Change Linux to GNU/Linux.
41645
41646         * 5losinte.ads: Change Linux to GNU/Linux.
41647
41648         * 5lsystem.ads: Change Linux to GNU/Linux.
41649
41650         * 5qosinte.adb: Change Linux to GNU/Linux.
41651
41652         * 5qosinte.ads: Change Linux to GNU/Linux.
41653
41654         * 5qparame.ads: Change Linux to GNU/Linux.
41655
41656         * 5qtaprop.adb: Change Linux to GNU/Linux.
41657
41658         * 5qtaspri.ads: Change Linux to GNU/Linux.
41659         Add 2001 to copyright notice.
41660
41661         * 5vintman.ads: Change Linux to GNU/Linux.
41662         Fix header format.  Add 2001 to copyright notice.
41663
41664         * g-soccon.ads: Change Linux to GNU/Linux.
41665
41666         * g-trasym.ads: Change Linux to GNU/Linux.
41667         Add 2001 to copyright notice.
41668
41669         * memtrack.adb: Change Linux to GNU/Linux.
41670
41671         * s-intman.ads: Change Linux to GNU/Linux.
41672         Add 2001 to copyright notice.  Fix header format.
41673
41674         * s-stache.adb: Change Linux to GNU/Linux.
41675
41676         * adaint.c: Change Linux to GNU/Linux.
41677
41678         * cio.c: Change Linux to GNU/Linux.
41679
41680         * cstreams.c: Change Linux to GNU/Linux.
41681
41682         * init.c: Change Linux to GNU/Linux.
41683
41684         * gmem.c: Change Linux to GNU/Linux.
41685
41686         * tracebak.c: Change Linux to GNU/Linux.
41687
41688
41689 2001-10-02  Geert Bosch  <bosch@gnat.com>
41690
41691         * misc.c (insert_default_attributes): Add dummy version.