OSDN Git Service

2008-08-04 Pascal Obry <obry@adacore.com>
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2008-08-04  Robert Dewar  <dewar@adacore.com>
2
3         * sem_res.adb: (Large_Storage_Type): Improve previous change.
4
5 2008-08-04  Pascal Obry  <obry@adacore.com>
6
7         * adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with
8         file attributes.
9
10 2008-08-04  Javier Miranda  <miranda@adacore.com>
11
12         * sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support
13         for N_Formal_Object_Declaration nodes. Adding kludge required by
14         First_Formal to provide its functionality with access to functions.
15         (Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support
16         for anonymous access types returned by functions.
17
18         * sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate
19         conversion of null-excluding access types (required only once to force
20         the generation of the required runtime check).
21
22         * sem_type.adb (Covers): minor reformating
23
24         * checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors
25         with internally generated nodes. Avoid generating the error inside init
26         procs.
27
28         * sem_res.adb (Resolve_Membership_Test): Minor reformating.
29         (Resolve_Null): Generate the null-excluding check in case of assignment
30         to a null-excluding object.
31         (Valid_Conversion): Add missing support for anonymous access to
32         subprograms.
33
34         * sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for
35         anonymous access types whose designated type is an itype. This case
36         occurs with anonymous access to protected subprograms types.
37         (Analyze_Return_Type):  Add missing support for anonymous access to
38         protected subprogram.
39
40         * sem_eval.adb (Subtypes_Statically_Match): In case of access to
41         subprograms addition of missing check on matching convention. Required
42         to properly handle access to protected subprogram types.
43
44         * exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on
45         null excluding access types.
46
47 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
48
49         * sem_ch12.adb: Add comments
50
51         * sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null
52         access type and the allocator is not initialized, warn rather than
53         reporting an error.
54
55 2008-08-04  Robert Dewar  <dewar@adacore.com>
56
57         * exp_ch4.adb: Minor reformatting
58
59         * exp_dist.adb: Minor reformatting
60
61         * g-comlin.adb: Minor reformatting
62
63 2008-08-04  Gary Dismukes  <dismukes@adacore.com>
64
65         * exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the
66         target to the type of the aggregate in the case where the target object
67         is class-wide.
68
69         * exp_ch5.adb (Expand_Simple_Function_Return): When the function's
70         result type is class-wide and inherently limited, and the expression
71         has a specific type, create a return object of the specific type, for
72         more efficient handling of returns of build-in-place aggregates (avoids
73         conversions of the class-wide return object to the specific type on
74         component assignments).
75
76         * sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error
77         about a type mismatch for a class-wide function with a return object
78         having a specific type when the object declaration doesn't come from
79         source. Such an object can result from the expansion of a simple return.
80
81 2008-08-04  Vasiliy Fofanov  <fofanov@adacore.com>
82
83         * g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files.
84
85         * gcc-interface/Makefile.in: Use 64bit-specific system files when
86         compiling for 64bit windows.
87
88 2008-08-04  Jerome Lambourg  <lambourg@adacore.com>
89
90         * g-comlin.adb (Group_Switches): Preserve the switch order when
91         grouping and allow switch grouping of switches with more than one
92         character extension (e.g. gnatw.x).
93         (Args_From_Expanded): Remove this now obsolete method.
94
95 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
96
97         * exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for
98         chain at once, to ensure that type is properly decorated for back-end,
99         when allocator appears within a loop.
100
101 2008-08-04  Kevin Pouget  <pouget@adacore.com>
102
103         * snames.h, snames.adb, snames.ads:
104         Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines.
105
106         * exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call,
107         Build_To_Any_Call and Build_TypeCode_Call procedures.
108
109         * exp_attr.adb, sem_attr.adb: Add corresponding cases.
110
111         * rtsfind.ads: Add corresponding names.
112
113         * tbuild.adb: Update prefix restrictions to allow '_' character.
114
115 2008-08-04  Doug Rupp  <rupp@adacore.com>
116
117         * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
118         * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter.
119         * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and
120         use it.  Calculate pointer range overflow using 64bit types.
121
122 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
123
124         * sem_ch3.adb (Access_Definition): A formal object declaration is a
125         legal context for an anonymous access to subprogram.
126
127         * sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an
128         indirect call, report success to the caller to include possible
129         interpretation.
130
131         * sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance
132         check when the type
133         of the extended return is an anonymous access_to_subprogram type.
134
135         * sem_res.adb:
136         (Resolve_Call): Insert a dereference if the type of the subprogram is an
137         access_to_subprogram and the context requires its return type, and a
138         dereference has not been introduced previously.
139
140 2008-08-04  Arnaud Charlet  <charlet@adacore.com>
141
142         * usage.adb (Usage): Minor rewording of -gnatwz switch, to improve
143         gnatcheck support in GPS.
144
145 2008-08-04  Vincent Celier  <celier@adacore.com>
146
147         * mlib.adb (Create_Sym_Links): Create relative symbolic links when
148         requested
149
150 2008-08-04  Vincent Celier  <celier@adacore.com>
151
152         * gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean
153         variable, but don't check the resulting value as it has no impact on
154         the processing.
155         
156         * opt.ads:
157         (Generate_Processed_File): New Boolean flag, set to True in the compiler
158         when switch -gnateG is used.
159         
160         * prep.adb:
161         (Preprocess): new Boolean out parameter Source_Modified. Set it to True
162         when the source is modified by the preprocessor and there is no
163         preprocessing errors.
164         
165         * prep.ads (Preprocess): new Boolean out parameter Source_Modified
166         
167         * sinput-l.adb:
168         (Load_File): Output the result of preprocessing if the source text was
169         modified.
170         
171         * switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG
172         
173         * switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG
174         
175         * ug_words: Add VMS equivalent for -gnateG
176         
177         * vms_data.ads:
178         Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG
179
180 2008-08-04  Doug Rupp  <rupp@adacore.com>
181
182         * gcc-interface/utils2.c:
183         (fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer
184         in 32bit descriptor.
185
186 2008-08-04  Robert Dewar  <dewar@adacore.com>
187
188         * par-ch10.adb: Minor reformatting
189
190         * i-cobol.adb: Minor reformatting.
191
192 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
193
194         * sem_ch3.adb (Access_Definition): Create an itype reference for an
195         anonymous access return type of a regular function that is not a
196         compilation unit.
197
198 2008-08-04  Vincent Celier  <celier@adacore.com>
199
200         * prj-attr.adb: New Builder attribute Global_Compilation_Switches
201         
202         * snames.adb: New standard name Global_Compilation_Switches
203         
204         * snames.ads: New standard name Global_Compilation_Switches
205
206         * make.adb: Correct spelling error in comment
207
208 2008-08-04  Arnaud Charlet  <charlet@adacore.com>
209
210         * sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI
211         target.
212
213 2008-08-04  Thomas Quinot  <quinot@adacore.com>
214
215         * sem_ch10.adb: Minor comment fix.
216
217 2008-08-04  Robert Dewar  <dewar@adacore.com>
218
219         * restrict.adb: Improved messages for restriction warnings
220
221         * restrict.ads: Improved messages for restriction messages
222
223         * s-rident.ads (Profile_Name): Add No_Profile
224
225 2008-08-04  Robert Dewar  <dewar@adacore.com>
226
227         * system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus
228
229 2008-08-04  Robert Dewar  <dewar@adacore.com>
230
231         * freeze.adb (Freeze_Entity): Check for size clause for boolean warning
232
233 2008-08-04  Vincent Celier  <celier@adacore.com>
234
235         * prj-proc.adb:
236         (Copy_Package_Declarations): When inheriting package Naming from a
237         project being extended, do not inherit source exception names.
238
239 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
240
241         * sem_prag.adb (Check_Precondition_Postcondition): When scanning the
242         list of declaration to find previous subprogram, do not go to the
243         original node of a generic unit.
244
245 2008-08-02  Eric Botcazou  <ebotcazou@adacore.com>
246
247         * gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR, MINUS_EXPR>:
248         New case.  Convert BOOLEAN_TYPE operation to the default integer type.
249
250 2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>
251
252         * gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
253         * gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify
254         and adjust for above renaming.
255         * gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new
256         gnu_expr_alt_type parameter.  Convert the expression to it instead
257         of changing its type in place.
258         (build_function_stub): Adjust call to above function.
259
260 2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>
261
262         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead
263         code.  Do not get full definition of deferred constants with address
264         clause for a use.  Do not ignore deferred constant definitions with
265         address clause.  Ignore constant definitions already marked with the
266         error node.
267         <object>: Remove obsolete comment.  For a deferred constant with
268         address clause, get the initializer from the full view.
269         * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
270         Rework and remove obsolete comment.
271         <N_Object_Declaration>: For a deferred constant with address clause,
272         mark the full view with the error node.
273         * gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
274         formatting nits.
275
276 2008-08-01  Hristian Kirtchev  <kirtchev@adacore.com>
277
278         * rtsfind.ads: Add block IO versions of stream routines for Strings.
279         
280         * bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads,
281         sem_prag.adb, snames.adb, snames.ads, snames.h,
282         par-prag.adb: Undo previous stream related changes.
283         
284         * s-rident.ads: Add new restriction No_Stream_Optimizations.
285         
286         * s-ststop.ads, s-ststop.adb: Comment reformatting.
287         Define enumeration type to designate different IO mechanisms.
288         Enchance generic package Stream_Ops_Internal to include an
289         implementation of Input and Output.
290
291         * exp_attr.adb (Find_Stream_Subprogram): If restriction
292         No_Stream_Optimization is active, choose the default byte IO
293         implementations of stream attributes for Strings.
294         Otherwise use the corresponding block IO version.
295
296 2008-08-01  Olivier Hainque  <hainque@adacore.com>
297         
298         * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>: Do not
299         turn Ada Pure into GCC const, now implicitely implying nothrow as well.
300
301 2008-08-01  Robert Dewar  <dewar@adacore.com>
302
303         * par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to
304         convert plain identifier into defining identifier.
305
306 2008-08-01  Robert Dewar  <dewar@adacore.com>
307
308         * sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve
309         warnings
310
311         * lib-xref.adb: Add error defense.
312
313 2008-08-01  Bob Duff  <duff@adacore.com>
314
315         * ioexcept.ads, sequenio.ads, directio.ads: Correct comment.
316
317 2008-08-01  Gary Dismukes  <dismukes@adacore.com>
318
319         * exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing
320         correct accessibility levels. In the "when others" case, retrieve the
321         access level of the Etype of Prev rather than Prev_Orig, because the
322         original exression has not always been analyzed.
323
324 2008-08-01  Robert Dewar  <dewar@adacore.com>
325
326         * prj-nmsc.adb: Minor reformatting
327
328         * sem_ch4.adb: Minor reformatting
329         Minor code reorganization
330
331         * prj.ads: Minor reformatting
332
333         * s-os_lib.adb: Minor reformatting
334
335         * par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper
336         half encodings
337
338         * scans.ads: Minor reformatting.
339
340         * sem_prag.adb (Analyze_Pragma): Put entries in alpha order
341         (Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma
342
343         * sem_res.adb:
344         (Resolve_Call): Check violation of No_Specific_Termination_Handlers
345
346         * sem_ch12.adb: Minor comment reformatting
347
348         * par-ch3.adb (P_Type_Declaration): Properly handle missing type
349         keyword
350
351 2008-08-01  Robert Dewar  <dewar@adacore.com>
352
353         * sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not
354         generating code
355
356 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
357
358         * checks.adb (Apply_Float_Conversion_Check): If the expression to be
359         converted is a real literal and the target type has static bounds,
360         perform the conversion exactly to prevent floating-point anomalies on
361         some targets.
362
363 2008-08-01  Vincent Celier  <celier@adacore.com>
364
365         * prj-attr.adb: New attribute Compiler'Name_Syntax (<lang>)
366         
367         * prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax
368         
369         * prj.adb (Object_Exist_For): Use Object_Generated, not
370         Objects_Generated that is removed and was never modified anyway.
371
372         * prj.ads:
373         (Path_Syntax_Kind): New enumeration type
374         (Language_Config): New component Path_Syntax, defaulted to Host.
375         Components PIC_Option and Objects_Generated removed, as they are not
376         used.
377
378         * snames.adb: New standard name Path_Syntax
379         
380         * snames.ads: New standard name Path_Syntax
381
382 2008-08-01  Vincent Celier  <celier@adacore.com>
383
384         * mlib-utl.adb:
385         (Adalib_Path): New variable to store the path of the adalib directory
386         when procedure Specify_Adalib_Dir is called.
387         (Lib_Directory): If Adalib_Path is not null, return its value
388         (Specify_Adalib_Dir): New procedure
389         
390         * mlib-utl.ads (Specify_Adalib_Dir): New procedure
391
392 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
393
394         * sem_prag.adb:
395         (Check_Precondition_Postcondition): If not generating code, analyze the
396         expression in a postcondition that appears in a subprogram body, so that
397         it is properly decorated for ASIS use.
398
399 2008-08-01  Gary Dismukes  <dismukes@adacore.com>
400
401         * exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets
402         Orig_Prev to Prev in the case where the actual is N_Function_Call or
403         N_Identifier. This was interfering with other cases that are rewritten
404         as N_Identifier, such as allocators, resulting in passing of the wrong
405         accessibility level, and based on testing this code is apparently no
406         longer needed at all.
407
408 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
409
410         * sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a
411         procedure call whose prefix
412         is a parameterless function call that returns an access_to_procedure.
413
414 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
415
416         * adaint.c (__gnat_tmp_name): Refine the generation of temporary names
417         for RTX. Adding a suffix that is incremented at each iteration.
418
419 2008-08-01  Robert Dewar  <dewar@adacore.com>
420
421         * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of
422         Raise_Exception
423
424 2008-08-01  Jerome Lambourg  <lambourg@adacore.com>
425
426         * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in
427         paths, which are authorized by Windows but can lead to errors when used
428         elsewhere.
429
430 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
431
432         * sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create
433         a pending instantiation for the body of a subprogram that is to be
434         inlined.
435
436         * sem_ch12.adb:
437         (Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body.
438
439         * sem_prag.adb (Make_Inline): If the pragma applies to an instance,
440         create a pending instance for its body, so that calls to the subprogram
441         can be inlined by the back-end.
442
443 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
444
445         * gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and
446         rts-rtx-w32).
447
448 2008-08-01  Robert Dewar  <dewar@adacore.com>
449
450         * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer
451
452 2008-08-01  Doug Rupp  <rupp@adacore.com>
453
454         * gnat_rm.texi: Document new mechanism Short_Descriptor.
455         
456         * types.ads (Mechanism_Type): Modify range for new Short_Descriptor
457         mechanism values.
458
459         * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
460         mechanism and Short_Descriptor mechanism values.
461
462         * snames.adb (preset_names): Add short_descriptor entry.
463
464         * snames.ads: Add Name_Short_Descriptor.
465
466         * types.h: Add new By_Short_Descriptor mechanism values.
467
468         * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
469         mechanism and Short_Descriptor mechanism values.
470
471         * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism
472         values.
473         (Descriptor_Codes): Modify range for new mechanism values.
474
475         * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
476         mechanism values.
477
478         * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
479         (gnat_to_gnu_param): Handle By_Short_Descriptor.
480
481         * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
482         (build_vms_descriptor32): New prototype.
483         (fill_vms_descriptor): Remove unneeded gnat_actual parameter.
484
485         * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
486         argument in call fill_vms_descriptor.
487
488         * gcc-interface/utils.c (build_vms_descriptor32): Renamed from
489         build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
490         (build_vms_descriptor): Renamed from build_vms_descriptor64. 
491         (convert_vms_descriptor32): New function.
492         (convert_vms_descriptor64): New function.
493         (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
494         descriptors.
495
496         * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
497         no longer needed.
498
499 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
500
501         * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam
502         nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary
503         name.
504
505 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
506
507         * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the
508         current directory so only fully qualified names are allowed.
509
510 2008-08-01  Robert Dewar  <dewar@adacore.com>
511
512         * gnat_ugn.texi:
513         Minor editing, remove uncomfortable use of semicolon
514
515         * s-ststop.adb: Add some ??? comments
516
517         * sem_ch10.adb: Minor reformatting
518
519         * snames.ads:
520         Minor comment fixes, some pragmas were not properly
521         categorized in the comments, documentation change only
522
523         * xref_lib.adb: Minor reformatting
524
525         * sinput.adb: Minor reformatting
526
527         * gnatchop.adb: Minor reformatting
528
529         * sem_util.ads: Minor reformatting.
530
531         * opt.ads: Minor documentation fix
532
533         * scng.adb: Minor reformatting
534
535         * prj-part.adb: Update comments
536
537 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
538
539         * exp_disp.adb (Expand_Interface_Conversion): If the target type is a
540         tagged synchronized type, use corresponding record type.
541
542 2008-08-01  Doug Rupp  <rupp@adacore.com>
543
544         * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a
545         dummy transfer address for debugging.
546         
547         * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise.
548
549         * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING
550
551 2008-07-31  Eric Botcazou  <ebotcazou@adacore.com>
552
553         * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting.
554         * gcc-interface/utils.c (create_field_decl): Avoid superfluous work.
555
556 2008-07-31  Pascal Obry  <obry@adacore.com>
557
558         * prj-nmsc.adb: Keep Object and Exec directory casing.
559
560 2008-07-31  Jose Ruiz  <ruiz@adacore.com>
561
562         * system-rtx-rtss.ads
563         Change the default stack size. It is important to set the commit part.
564         
565         * s-taprop-rtx.adb
566         (Initialize): Get the clock resolution.
567         (RT_Resolution): Return the clock resolution that is indicated by the
568         system.
569
570         * s-parame-vxworks.adb
571         Document that this body is used for RTX in RTSS (kernel) mode.
572
573         * gcc-interface/Makefile.in
574         (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the
575         s-parame-vxworks.adb body in order to have reasonable stack sizes in
576         RTX RTSS kernel mode. Virtual memory is not used in that case, so we
577         cannot ask for too big values.
578
579 2008-07-31  Robert Dewar  <dewar@adacore.com>
580
581         * exp_aggr.adb: Minor reformatting
582
583         * makeutl.adb: Minor reformatting
584
585         * prj-env.adb: Minor reformatting
586
587 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
588
589         * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private
590         tagged type is completed by a concurrent type.
591
592 2008-07-31  Gary Dismukes  <dismukes@adacore.com>
593
594         * sem_aggr.adb:
595         (Resolve_Record_Aggregate): Bypass error that a type without
596         components must have a "null record" aggregate when compiling for Ada
597         2005, since it's legal to give an aggregate of form (others => <>)
598         for such a type.
599
600 2008-07-31  Javier Miranda  <miranda@adacore.com>
601
602         * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to
603         handle synchronized types. Required to handle well the object.operation
604         notation applied to synchronized types.
605
606 2008-07-31  Quentin Ochem  <ochem@adacore.com>
607
608         * s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored
609         anymore - just used internally.
610         Added handling of very small tasks - when the theoretical size is
611         already full at the point of the call.
612         (Report_Result): Fixed result computation, Stack_Used_When_Filling does
613         not need to be added to the result.
614
615 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
616
617         * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the
618         corresponding spec is a primitive wrapper. Update comment.
619
620 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
621
622         * bindgen.adb Comment reformatting. Update the list of run-time globals.
623         (Gen_Adainit_Ada): Add the declaration, import and value set for
624         configuration flag Canonical_Streams.
625         (Gen_Adainit_C): Add the declaration and initial value of external
626         symbol __gl_canonical_streams.
627         
628         * init.c: Update the list of global values computed by the binder.
629         
630         * opt.ads: Add flag Canonical_Streams.
631         
632         * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of
633         semantically handled pragmas.
634         
635         * sem_prag.adb: Add an entry into enumeration type Sig_Flags.
636         (Analyze_Pragma): Add case for pragma Canonical_Streams.
637         
638         * snames.adb: Add character value for name Canonical_Streams.
639         
640         * snames.ads:
641         Add Name_Canonical_Streams to the list of configuration pragmas.
642         Add Pragma_Canonical_Streams to enumeration type Pragma_Id.
643         
644         * snames.h: Add a definition for Pragma_Canonical_Streams.
645         
646         * s-ststop.adb:
647         Add a flag and import to seize the value of external symbol
648         __gl_canonical_streams. Update comment and initial value of constant
649         Use_Block_IO.
650         
651         * gnat_rm.texi: Add section of pragma Canonical_Streams.
652         
653         * gnat_ugn.texi:
654         Add pragma Canonical_Streams to the list of configuration pragmas.
655
656 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
657
658         * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause
659         has the form A.B.C and B is a unit renaming, analyze its compilation
660         unit and add a with_clause on A.b to the context.
661
662 2008-07-31  Vincent Celier  <celier@adacore.com>
663
664         * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails,
665         return the empty string, instead of raising Constraint_Error.
666
667 2008-07-31  Gary Dismukes  <dismukes@adacore.com>
668
669         * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node.
670         
671         * checks.adb (Apply_Accessibility_Check): Insert the check on
672         Insert_Node.
673         
674         * exp_attr.adb:
675         (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node
676         to new parameter Insert_Node on call to Apply_Accessibility_Check.
677         Necessary to distinguish the insertion node because the dereferenced
678         formal may come from a rename, but the check must be inserted in
679         front of the attribute.
680         
681         * exp_ch4.adb:
682         (Expand_N_Allocator): Pass actual for new Insert_Node parameter on
683         call to Apply_Accessibility_Check.
684         (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter
685         on call to Apply_Accessibility_Check.
686         Minor reformatting
687
688 2008-07-31  Javier Miranda  <miranda@adacore.com>
689
690         * sem_type.adb (Has_Compatible_Type): Complete support for synchronized
691         types when the candidate type is a synchronized type.
692         
693         * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized
694         types, and complete management of synchronized types adding missing
695         code to handle formal that is a synchronized type.
696         
697         * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that
698         are not available and cause the compiler to blowup. Found compiling
699         test with switch -gnatc
700         
701         * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram
702         Has_Correct_Formal_Mode plus code cleanup.
703
704 2008-07-31  Bob Duff  <duff@adacore.com>
705
706         * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was
707         recognized as two end-of-lines, but it should be just one.
708
709 2008-07-31  Thomas Quinot  <quinot@adacore.com>
710
711         * exp_ch9.adb: Minor reformatting
712
713         * tbuild.ads: Fix several occurrences of incorrectly referring to
714         Name_Find as Find_Name.
715
716 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
717
718         * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component
719         and the context is an object declaration with non-static bounds, treat
720         the aggregate as non-static.
721
722 2008-07-31  Vincent Celier  <celier@adacore.com>
723
724         * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb:
725         Move back spec of Parse_Single_Project to body, as it is not called
726         outside of package Prj.Part.
727         (Project_Data): Remove components Linker_Name, Linker_Path and
728         Minimum_Linker_Options as they are no longer set.
729         Remove function There_Are_Ada_Sources from package Prj and move code
730         in the only place it was used, in Prj.Env.Set_Ada_Paths.
731
732 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
733
734         * mlib-utl.ads: Fix typo.
735
736 2008-07-31  Robert Dewar  <dewar@adacore.com>
737
738         * sem_ch12.adb: Minor reformatting
739
740 2008-07-31  Sergey Rybin  <rybin@adacore.com>
741
742         * gnat_ugn.texi: Change the description of the
743         Overly_Nested_Control_Structures: now the rule always requires a
744         positive parameter for '+R' option
745
746 2008-07-31  Thomas Quinot  <quinot@adacore.com>
747
748         * g-pehage.adb: Minor reformatting
749
750 2008-07-31  Pascal Obry  <obry@adacore.com>
751
752         * s-finimp.ads: Minor reformatting.
753
754 2008-07-31  Vincent Celier  <celier@adacore.com>
755
756         * s-regexp.ads: Minor comment fix
757
758 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
759
760         * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off),
761         so that we can compile this file successfully with -gnatc.
762
763 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
764
765         * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead
766         of the type when looking for stream subprograms for type String,
767         Wide_String and Wide_Wide_String.
768         
769         * s-ststop.adb: Change the initialization expression of constant
770         Use_Block_IO.
771
772 2008-07-31  Geert Bosch  <bosch@adacore.com>
773
774         * arit64.c:
775         New file implementing __gnat_mulv64 signed integer multiplication with
776         overflow checking
777
778         * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi
779
780         * gcc-interface/gigi.h:
781         (standard_types): Add ADT_mulv64_decl
782         (mulv64_decl): Define subprogram declaration for __gnat_mulv64
783
784         * gcc-interface/utils.c:
785         (init_gigi_decls): Add initialization of mulv64_decl
786
787         * gcc-interface/trans.c:
788         (build_unary_op_trapv): New function
789         (build_binary_op_trapv): New function
790         (gnat_to_gnu): Use the above functions instead of
791         build_{unary,binary}_op
792
793         * gcc-interface/Makefile.in
794         (LIBGNAT_SRCS): Add arit64.c
795         (LIBGNAT_OBJS): Add arit64.o
796
797 2008-07-31  Vincent Celier  <celier@adacore.com>
798
799         * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or
800         Linker'Default_Switches are declared. Warn if they are declared.
801
802 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
803
804         * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
805         Insert_Actions to place the pointer declaration in the code, rather
806         than Insert_Before_And_Analyze, so that insertions of temporaries are
807         kept in the proper order when transient scopes are present.
808
809
810 2008-07-31  Robert Dewar  <dewar@adacore.com>
811
812         * einfo.adb (Spec_PPC): Now defined for generic subprograms
813         
814         * einfo.ads (Spec_PPC): Now defined for generic subprograms
815         
816         * sem_prag.adb (Check_Precondition_Postcondition): Handle generic
817         subprogram case
818
819 2008-07-31  Vincent Celier  <celier@adacore.com>
820
821         * s-os_lib.adb: Minor comment fix
822
823 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
824
825         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis,
826         transfer pre/postconditions from generic copy to original tree, so that
827         they will appear in each instance.
828         (Process_PPCs): Do not transform postconditions into a procedure in a
829         generic context, to prevent double expansion of check pragmas.
830         
831         * sem_attr.adb: In an instance, the prefix of the 'result attribute
832         can be the renaming of the
833         current instance, so check validity of the name accordingly.
834
835 2008-07-31  Robert Dewar  <dewar@adacore.com>
836
837         * mlib-utl.ads: Minor reformatting
838
839 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
840
841         sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved
842         from context. This attribute must be usable in Ada95 mode.
843         The attribute can appear in the body of a function marked
844         Inline_Always, but in this case the postocondition is not enforced.
845         
846         sem_prag.adb (Check_Precondition_Postcondition): within the expansion
847         of an inlined call pre- and postconditions are legal
848
849 2008-07-31  Vincent Celier  <celier@adacore.com>
850
851         * prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that
852         were for gprmake only
853
854 2008-07-31  Robert Dewar  <dewar@adacore.com>
855
856         * gnat_ugn.texi: Update -gnatN documentation.
857
858         * gnat_rm.texi: Add note about pre/postcondition
859         pragmas not checked in conjunction with front-end inlining.
860
861 2008-07-31  Robert Dewar  <dewar@adacore.com>
862
863         * g-pehage.adb, g-pehage.ads: Minor reformatting
864
865 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
866
867         * mlib-utl.ads, prj-makr.ads: Add comments.
868
869 2008-07-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
870
871         * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) 
872         [WINDOWS]: Add s-winext.o.
873
874 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
875
876         PR ada/36554
877         * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
878         * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
879         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
880         Set precision to 1 for subtype of BOOLEAN_TYPE.
881         (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
882         (make_type_from_size): Deal with BOOLEAN_TYPE.
883         * gcc-interface/misc.c (gnat_print_type): Likewise.
884         * gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
885         Set boolean_type_node as its translation in the table, as well
886         as boolean_false_node for False and boolean_true_node for True.
887         * gcc-interface/utils.c (gnat_init_decl_processing): Create custom
888         8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
889         (create_param_decl): Deal with BOOLEAN_TYPE.
890         (build_vms_descriptor): Likewise.
891         (build_vms_descriptor64): Likewise.
892         (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.
893
894 2008-07-30  Robert Dewar  <dewar@adacore.com>
895
896         * exp_ch9.adb: Minor reformatting
897
898         * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised
899         if no primitive operation is found.
900
901         * exp_util.adb: (Find_Prim_Op): Add comments for previous change
902
903         * sem_ch8.adb: Minor reformatting
904
905 2008-07-30  Laurent Pautet  <pautet@adacore.com>
906
907         * g-pehage.adb:
908         Remove a limitation on the length of the words handled by the minimal
909         perfect hash function generator.
910
911         * g-pehage.ads:
912         Detail the use of subprograms Insert, Initialize, Compute and Finalize.
913         Fix some typos.
914
915 2008-07-30  Robert Dewar  <dewar@adacore.com>
916
917         * gnatlink.adb: Minor reformatting
918
919 2008-07-30  Thomas Quinot  <quinot@adacore.com>
920
921         * rtsfind.adb (Check_RPC): Check version consistency even when not
922         generating RCI stubs. Provide more detailed error message in case of
923         mismatch.
924
925 2008-07-30  Ed Schonberg  <schonberg@adacore.com>
926
927         * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute
928         as a actual in an instance, check for a missing attribute to prevent
929         program_error on an illegal program.
930         
931         * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program
932         error if primitive is not found, so that exception can be handled
933         elsewhere on illegal programs.
934
935 2008-07-30  Robert Dewar  <dewar@adacore.com>
936
937         * uintp.adb (UI_GCD): Fix potential overflow
938
939 2008-07-30  Hristian Kirtchev  <kirtchev@adacore.com>
940
941         * einfo.adb: Flag245 is now used.
942         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion
943         check to include functions.
944         (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
945         (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to
946         include functions.
947         (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive
948         to the list of displayed flags.
949
950         * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and
951         Wrapped_Entity. These two flags are now present in functions.
952         New flag Is_Private_Primitive.
953         (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
954
955         * exp_ch9.adb:
956         (Build_Wrapper_Bodies): New subprogram.
957         (Build_Wrapper_Body): The spec and body have been moved to in
958         Build_Wrapper_ Bodies. Code cleanup.
959         (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup.
960         Wrappers are now generated for primitives declared between the private
961         and full view of a concurrent type that implements an interface.
962         (Build_Wrapper_Specs): New subprogram.
963         (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body
964         creation mechanism with a call to Build_Wrapper_Bodies.
965         (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the
966         wrapper spec creation mechanism with a call to Build_Wrapper_Specs.
967         (Expand_N_Task_Body): Replace the wrapper body creation
968         mechanism with a call to Build_Wrapper_Bodies.
969         (Expand_N_Task_Type_Declaration): Replace the wrapper spec
970         creation mechanism with a call to Build_Wrapper_Specs.
971         (Is_Private_Primitive_Subprogram): New subprogram.
972         (Overriding_Possible): Code cleanup.
973         (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup.
974
975         * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9.
976
977         * sem_ch3.adb: Add with and use clause for Exp_Ch9.
978         (Process_Full_View): Build wrapper specs for all primitives
979         that belong to a private view completed by a concurrent type
980         implementing an interface.
981         
982         * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram
983         is a primitive of a
984         concurrent type with a private view that implements an interface, try to
985         find the proper spec.
986         (Analyze_Subprogram_Declaration): Mark a subprogram as a private
987         primitive if the type of its first parameter is a non-generic tagged
988         private type.
989         (Analyze_Subprogram_Specification): Code reformatting.
990         (Disambiguate_Spec): New routine.
991         (Find_Corresponding_Spec): Add a flag to controll the output of errors.
992         (Is_Private_Concurrent_Primitive): New routine.
993
994         * sem_ch6.ads:
995         (Find_Corresponding_Spec): Add a formal to control the output of errors.
996
997 2008-07-30  Doug Rupp  <rupp@adacore.com>
998
999         * gigi.h (build_vms_descriptor64): New function prototype.
1000         (fill_vms_descriptor): Modified function prototype.
1001
1002         * utils.c (build_vms_descriptor64): New function.
1003
1004         * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.
1005
1006         * trans.c (call_to_gnu): Call fill_vms_descriptor with new third
1007         argument.
1008
1009         * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
1010         64bit and 32bit descriptor and save the 64bit version as an alternate
1011         TREE_TYPE in the parameter.
1012         (make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
1013         thin pointer.
1014
1015         * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.
1016
1017 2008-07-30  Robert Dewar  <dewar@adacore.com>
1018
1019         * make.adb: Minor reformatting
1020
1021         * mlib-utl.adb: Minor reformatting
1022
1023         * osint.ads: Minor reformatting
1024
1025 2008-07-30  Jose Ruiz  <ruiz@adacore.com>
1026
1027         * adaint.c
1028         (__gnat_file_exists): Do not use __gnat_stat for RTX.
1029         (__main for RTX in RTSS mode): Create this dummy procedure symbol to
1030         avoid the use of this symbol from libgcc.a in RTX kernel mode.
1031
1032         * cio.c
1033         (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call
1034         the function RtPrintf for console output.
1035         
1036         * argv.c Do not use the environ variable for RTX.
1037         
1038         * gnatlink.adb (gnatlink): The part that handles the --RTS option has
1039         been moved before the call to Osint.Add_Default_Search_Dirs in order
1040         to take into account the flags in system.ads (RTX_RTSS_Kernel_Module)
1041         from the appropriate run time.
1042         
1043         * targparm.ads
1044         (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if
1045         target is a RTSS module for RTX.
1046         
1047         * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for
1048         RTX_RTSS_Kernel_Module
1049         (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag.
1050
1051         * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc
1052         exception handling mechanism for Windows and RTX in Win32 mode, but
1053         not for RTX in kernel mode (RTSS).
1054         (LIBGNAT_SRCS): Remove ada.h
1055
1056 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
1057
1058         * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and
1059         T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS.
1060         (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS.
1061         * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS,
1062         X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS,
1063         ALL_ADA_CFLAGS): Remove.
1064         (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS,
1065         replace ALL_ADA_CFLAGS with ADA_CFLAGS.
1066         (GCC_CFLAGS): Remove X_CFLAGS.
1067         (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS.
1068         (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS.
1069         (ADA_CFLAGS): Substitute.
1070
1071 2008-07-30  Laurent Guerby  <laurent@guerby.net>
1072
1073         PR ada/5911
1074         * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables.
1075         Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts.
1076         Replace stamp-gnatlib* by stamp-gnatlib*-rts.
1077         * gcc-interface/Make-lang.in: Replace stamp-gnatlib2
1078         by stamp-gnatlib2-rts.
1079         
1080 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1081
1082         PR documentation/15479
1083         * gnat-style.texi: Remove AdaCore copyright statement and GPL
1084         statement for GNAT.  Add @copying stanza, use it.  Update to
1085         GFDL 1.2.  Do not list GFDL as Invariant Section, do not list
1086         title as Front-Cover Text.
1087         * gnat_rm.texi: Likewise.
1088         * gnat_ugn.texi: Likewise.
1089
1090 2008-07-29  Jan Hubicka  <jh@suse.cz>
1091
1092         * trans.c (process_inlined_subprograms): Remove tree_really_inline
1093         check.
1094
1095 2008-07-29  Arnaud Charlet  <charlet@adacore.com>
1096
1097         * gcc-interface: New directory.
1098
1099         * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h,
1100         utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c,
1101         config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
1102         to gcc-interface subdirectory.
1103
1104 2008-07-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1105
1106         * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o.
1107
1108 2008-07-28  Jan Hubicka  <jh@suse.cz>
1109
1110         * misc.c (gnat_post_options): Do not set flag_no_inline.
1111
1112 2008-07-28  Richard Guenther  <rguenther@suse.de>
1113
1114         Merge from gimple-tuples-branch.
1115
1116         2008-07-22  Olivier Hainque  <hainque@adacore.com>
1117
1118         * gigi.h (end_subprog_body): New ELAB_P argument, saying if
1119         this is called for an elab proc to be discarded if empty.
1120         * utils.c (end_subprog_body): Honor ELAB_P.
1121         (build_function_stub): Adjust call to end_subprog_body.
1122         * trans.c (Subprogram_Body_to_gnu): Likewise.
1123         (gigi): Reorganize processing of elab procs to prevent
1124         gimplifying twice, using the new end_subprog_body argument.
1125
1126         2008-07-19  Richard Guenther  <rguenther@suse.de>
1127
1128         * Make-lang.in (trans.o): Add tree-iterator.h dependency.
1129         (utils.o): Likewise.
1130         * trans.c: Include tree-iterator.h.
1131         (gnat_gimplify_expr): Adjust prototype.  Fix typo.
1132         (gnat_gimplify_stmt): Use SET_EXPR_LOCATION.
1133         (set_expr_location_from_node): Likewise.
1134         (gigi): Tuplify.
1135         * ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead
1136         of GENERIC_NEXT.
1137         * utils.c: Include tree-iterator.h.
1138         * gigi.h (gnat_gimplify_expr): Adjust prototype.
1139
1140         2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
1141
1142         * trans.c: Include gimple.h instead of tree-gimple.h.
1143         * utils.c: Same.
1144
1145         2008-07-14  Aldy Hernandez  <aldyh@redhat.com>
1146
1147         * trans.c (gnat_gimplify_expr): Use gimplify_assign.
1148
1149 2008-07-25  Jan Hubicka  <jh@suse.cz>
1150
1151         * utils.c (end_subprog_body): Remove inline trees check.
1152         * misc.c (gnat_post_options): Do not set flag_inline_trees.
1153
1154 2008-07-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1155
1156         * raise-gcc.c: Move tsystem.h before tm.h.
1157
1158 2008-07-20  Arnaud Charlet  <charlet@adacore.com>
1159
1160         * gnathtml.pl: New file.
1161
1162 2008-07-19  Olivier Hainque  <hainque@adacore.com>
1163
1164         * targtyps.c (get_target_default_allocator_alignment): Use
1165         MALLOC_ABI_ALIGNMENT.
1166
1167 2008-07-17  Olivier Hainque  <hainque@adacore.com>
1168
1169         * adaint.c (__MINGW32__ section): Include ctype.h and define
1170         a fallback ISALPHA if IN_RTS.
1171         (__gnat_is_absolute_path): Use ISALPHA instead of isalpha. 
1172
1173 2008-07-17  Olivier Hainque  <hainque@adacore.com>
1174
1175         * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG
1176         argument, to apply to references in addition to definitions.  Prevent
1177         setting TREE_STATIC on externals.
1178         (gnat_pushdecl): Always clear DECL_CONTEXT on public externals.
1179
1180 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1181
1182         PR documentation/15479
1183         * gnat_ugn.texi (@ovar): New macro, from autoconf.texi.
1184         Replace backets around optional parameters with @ovar
1185         where possible, use @r{[}, @r{]} otherwise.
1186         Replace some @r, @i, and @emph with @var where appropriate.
1187
1188 2008-07-02  Eric Botcazou  <ebotcazou@adacore.com>
1189
1190         * decl.c (make_type_from_size) <INTEGER_TYPE>: Fix typo and tidy up.
1191
1192 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1193
1194         * ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix
1195         -Wc++-compat warnings.
1196         * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec,
1197         __gnat_locate_exec_on_path): Likewise.
1198         * decl.c (annotate_value): Likewise.
1199         * misc.c (gnat_handle_option): Likewise.
1200         * trans.c (gnat_to_gnu, extract_encoding, decode_name,
1201         post_error_ne_tree): Likewise.
1202
1203 2008-06-27  Eric Botcazou  <ebotcazou@adacore.com>
1204
1205         * utils.c (convert) <CONSTRUCTOR>: When converting it to a packable
1206         version of its type, attempt to first convert its elements.
1207
1208 2008-06-26  Chris Proctor  <chrisp_42@bigpond.com>
1209
1210         * Makefile.in: Fix *86 kfreebsd target specific pairs.
1211
1212 2008-06-25  Samuel Tardieu  <sam@rfc1149.net>
1213
1214         * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well.
1215
1216 2008-06-24  Eric Botcazou  <ebotcazou@adacore.com>
1217
1218         * utils2.c (known_alignment): Derive the alignment from pointed-to
1219         types only if it is otherwise unknown.
1220         <INTEGER_CST>: Tidy.
1221         <MULT_EXPR>: Likewise.
1222         <POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use
1223         that of the base.
1224
1225 2008-06-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1226
1227         PR ada/36573
1228         * s-osinte-hpux-dce.ads (SA_ONSTACK): Define.
1229
1230 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1231
1232         * gnat_rm.texi (Implementation Defined Characteristics)
1233         (Standard Library Routines): Use @smallexample for indented
1234         text.  Drop Indentation outside examples.
1235         * gnat_ugn.texi: Likewise.
1236
1237 2008-06-13  Olivier Hainque  <hainque@adacore.com>
1238
1239         * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
1240         if undefined.
1241         (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
1242         realignment with force_align_arg_pointer attribute on foreign
1243         convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
1244         
1245 2008-06-13  Olivier Hainque  <hainque@adacore.com>
1246
1247         * utils.c (rest_of_record_type_compilation): When computing
1248         encodings for the components of a variable size type, early
1249         strip conversions on the current position expression to make
1250         sure it's shape is visible.  Use remove_conversions for this
1251         purpose.
1252
1253 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1254
1255         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
1256         constrained subtype of a discriminated type, discard the fields that
1257         are beyond its limits according to its size.
1258
1259 2008-06-10  Olivier Hainque  <hainque@adacore.com>
1260
1261         * utils.c (create_subprog_decl): If this is for the 'main' entry
1262         point according to the asm name, redirect main_identifier_node.
1263
1264 2008-06-09  Eric Botcazou  <ebotcazou@adacore.com>
1265
1266         * decl.c (components_to_record): Adjust the packedness for the
1267         qualified union as well.
1268
1269 2008-06-09  Arnaud Charlet  <charlet@adacore.com>
1270
1271         * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
1272         checks non fatal.
1273
1274 2008-06-07  Samuel Tardieu  <sam@rfc1149.net>
1275
1276         * sem_res.adb (Large_Storage_Type): A type is large if it
1277         requires as many bits as Positive to store its values and its
1278         bounds are known at compile time.
1279         * sem_ch13.adb (Minimum_Size): Note that this function returns
1280         0 if the size is not known at compile time.
1281
1282 2008-06-06  Nicolas Setton  <setton@adacore.com>
1283             Olivier Hainque  <hainque@adacore.com>
1284
1285         * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
1286         attribute, parallel descriptive type attached to another
1287         type for debug info generation purposes.
1288         * utils.c (add_parallel_type): New function, register
1289         parallel type to be attached to a type.
1290         (get_parallel_type): New function, fetch a registered
1291         parallel type, if any.
1292         (rest_of_record_type_compilation): Register the parallel
1293         type we make for variable size records.
1294         * gigi.h (add_parallel_type, get_parallel_type): Declare.
1295         * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
1296         parallel debug types we make.
1297         * trans.c (extract_encoding, decode_name): New functions.
1298         (gigi): If the DWARF attribute extensions are available, setup
1299         to use them.
1300         * lang.opt: Register language specific processing request
1301         for -gdwarf+.
1302         * misc.c (gnat_dwarf_extensions): New global variable. How much
1303         do we want of our DWARF extensions. 0 by default.
1304         (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
1305         (gnat_post_options): Map gnat_dwarf_extensions to the
1306         commonuse_gnu_debug_info_extensions for later processing.
1307         
1308 2008-06-04  Samuel Tardieu  <sam@rfc1149.net>
1309
1310         * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
1311
1312 2008-06-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1313
1314         * Makefile.in (common_tools): Fix typos in $(exeext) extension.
1315         * gnat_ugn.texi (Style Checking)
1316         (Adding the Results of Compiler Checks to gnatcheck Output)
1317         (Example of Binder Output File): Fix typos.
1318         * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
1319         exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
1320         s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
1321         s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
1322         sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
1323         sinfo.ads, utils.c: Fix typos in comments.
1324         * sem_ch6.adb, vms_data.ads: Fix typos in strings.
1325
1326 2008-05-29  Thomas Quinot  <quinot@adacore.com>
1327
1328         * sem_eval.adb: Minor reformatting
1329
1330 2008-05-29  Ed Schonberg  <schonberg@adacore.com>
1331
1332         * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
1333         is abstract, do not apply abstractness check on subprogram if this is
1334         a renaming declaration.
1335
1336 2008-05-29  Arnaud Charlet  <charlet@adacore.com>
1337
1338         PR ada/864
1339         * osint.ads, osint.adb (Program_Name): New parameter "Prog" to
1340         allow recognition of program suffix in addition to prefix.
1341         
1342         * gnatchop.adb (Locate_Executable): Add support for prefix.
1343         
1344         * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
1345         mlib-utl.adb: Adjust calls to Program_Name.
1346
1347 2008-05-29  Robert Dewar  <dewar@adacore.com>
1348
1349         * sem_ch3.adb: Minor reformatting
1350         * sem_prag.adb: Minor reformatting
1351         * sem_res.adb: Minor reformatting
1352         * sinput-p.ads: Minor reformatting
1353
1354 2008-05-29  Javier Miranda  <miranda@adacore.com>
1355
1356         * sem_util.adb:
1357         (Abstract_Interface_List): Add missing support for full type-declaration
1358         associated with synchronized types.
1359
1360 2008-05-29  Robert Dewar  <dewar@adacore.com>
1361
1362         * sem_eval.adb (Is_Same_Value): Take care of several more cases
1363
1364 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
1365
1366         * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
1367         access type, wrap the expression in a conversion to force an
1368         accessibility check.
1369
1370         * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
1371         accessibility checks even when expansion is disabled in order to
1372         generate messages in the presence of previous errors or in
1373         semantics-only mode.
1374
1375 2008-05-28  Eric Botcazou  <ebotcazou@adacore.com>
1376
1377         * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
1378         * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.
1379
1380 2008-05-28  Vincent Celier  <celier@adacore.com>
1381
1382         PR ada/34446
1383         * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
1384         preprocessing expressions
1385
1386 2008-05-28  Vincent Celier  <celier@adacore.com>
1387
1388         * sinput-p.adb (Source_File_Is_Subunit): Allow special character used
1389         for preprocessing
1390         
1391         * sinput-p.ads: Minor comment update and reformatting
1392
1393 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
1394
1395         * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
1396         type has a deeper level than any master only when it is the type of an
1397         access parameter.
1398
1399 2008-05-28  Javier Miranda  <miranda@adacore.com>
1400
1401         * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
1402
1403 2008-05-28  Javier Miranda  <miranda@adacore.com>
1404
1405         * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
1406         * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
1407         * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
1408         Add code that was previously located in
1409         Find_Overridden_Synchronized_Primitive because it is only used here.
1410
1411 2008-05-28  Sergey Rybin  <rybin@adacore.com>
1412
1413         * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
1414         Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
1415
1416 2008-05-28  Robert Dewar  <dewar@adacore.com>
1417
1418         * restrict.ads:
1419         Add missing restrictions, and properly label all GNAT defined ones
1420         
1421         * rtsfind.ads:
1422         Add entry for Ada_Real_Time.Timing_Events.Timing_Event
1423         Add entry for Ada.Task_Termination.Set_Specific_Handler
1424         Add entry for Ada.Task_Termination.Specific_Handler
1425         
1426         * s-rident.ads:
1427         Add missing restrictions and properly mark all gnat defined ones
1428         
1429         * sem_ch3.adb:
1430         (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
1431         
1432         * sem_res.adb:
1433         (Resolve_Call): Check violation of No_Specific_Termination_Handlers
1434
1435         * gnat_rm.texi: Add missing restrictions, and properly label all
1436         GNAT defined ones
1437
1438 2008-05-28  Robert Dewar  <dewar@adacore.com>
1439
1440         * restrict.adb:
1441         (Check_Restriction): violation of restriction No_Finalization is
1442         treated as a serious error to stop expansion
1443
1444 2008-05-28  Robert Dewar  <dewar@adacore.com>
1445
1446         * exp_util.adb: Minor reformatting
1447         * exp_util.ads: Minor reformatting.
1448
1449 2008-05-28  Arnaud Charlet  <charlet@adacore.com>
1450
1451         * Make-lang.in: Remove gprmake.
1452
1453         * gprmake.adb, makegpr.ads, makegpr.adb: Removed.
1454
1455 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
1456
1457         * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
1458         improper progenitor names, and avoid cascaded errors.
1459
1460 2008-05-28  Robert Dewar  <dewar@adacore.com>
1461
1462         * gnat_rm.texi: Add note on Old giving warning when applied to constant
1463
1464         * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
1465         a constant
1466
1467 2008-05-28  Robert Dewar  <dewar@adacore.com>
1468
1469         * exp_fixd.adb (Build_Multiply): Correct one-off error in computing
1470         size
1471
1472 2008-05-28  Robert Dewar  <dewar@adacore.com>
1473
1474         * exp_ch5.adb:
1475         (Expand_Simple_Function_Return): Copy unaligned result into temporary
1476
1477 2008-05-28  Javier Miranda  <miranda@adacore.com>
1478
1479         * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
1480         for user-defined predefined primitives.
1481         
1482         * sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
1483         (Find_Overridden_Synchronized_Primitive): Ditto.
1484
1485         * sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
1486
1487 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
1488
1489         * a-ststio.adb, s-direio.adb:
1490         Further code clean up of previous change.
1491         Update comments.
1492
1493 2008-05-27  Vincent Celier  <celier@adacore.com>
1494
1495         * prj-nmsc.adb: Minor reformatting
1496
1497 2008-05-27  Bob Duff  <duff@adacore.com>
1498
1499         * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
1500         untagged private type with a tagged full type, where the full type has
1501         a self reference, create the corresponding class-wide type early, in
1502         case the self reference is "access T'Class".
1503
1504 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
1505
1506         * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
1507         tasks and context is an object declaration. create master entity before
1508         expansion.
1509
1510 2008-05-27  Robert Dewar  <dewar@adacore.com>
1511
1512         * mlib-prj.adb: Minor reformatting
1513
1514         * prj-part.adb: Minor reformatting
1515
1516         * prj.ads: Minor reformatting
1517
1518         * exp_ch3.adb: Minor reformatting.
1519
1520         * sem_ch3.ads: Minor reformatting
1521
1522         * sem_eval.adb: Minor reformatting
1523
1524 2008-05-27  Vincent Celier  <celier@adacore.com>
1525
1526         * gnatcmd.adb:
1527         <prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack
1528
1529 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
1530
1531         * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
1532         tasks, create an activation chain now, before the expansion into
1533         assignments and build-in-place calls that require the presence of an
1534         activation chain.
1535         (Backend_Processing_Possible): If the component type is inherently
1536         limited, the aggregate must be expanded into individual built-in-place
1537         assignments.
1538
1539         * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
1540         determine whether an allocation extra parameter must be built, to
1541         handle case of a private type whose full type is a discriminated type
1542         with defaults.
1543
1544 2008-05-27  Bob Duff  <duff@adacore.com>
1545
1546         * gnat_rm.texi:
1547         Document the new behavior regarding trampolines.
1548
1549 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
1550
1551         * a-direio.adb, a-sequio.adb: Replace address clause by
1552         unrestricted_access, simpler and compatible with .NET.
1553
1554 2008-05-27  Vincent Celier  <celier@adacore.com>
1555
1556         * prj-part.adb:
1557         (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
1558         a project file, so that symbolic links are not resolved.
1559
1560 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
1561
1562         * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
1563         Replace heavy address clause by 'Unrestricted_Access, cleaner and more
1564         portable across GNAT targets, since this kind of address clause is not
1565         supported by VM back-ends (.NET/JGNAT).
1566
1567 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
1568
1569         * bindgen.adb: Update comments.
1570         
1571         * s-tasinf-mingw.adb: Add "with" of System.OS_Interface
1572
1573 2008-05-27  Vincent Celier  <celier@adacore.com>
1574
1575         * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
1576         prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
1577         mlib-tgt.adb, prj-env.adb, prj-env.ads:
1578         (Path_Information): New record type
1579         Use component of type Path_Information when there are two paths, one in
1580         canonical format and one in display format.
1581         Update the project manager to these new components.
1582
1583 2008-05-27  Robert Dewar  <dewar@adacore.com>
1584
1585         * makeutl.adb: Minor reformatting
1586         * prj-nmsc.adb: Minor reformatting
1587         * s-stausa.adb: Minor reformatting
1588         * s-stausa.ads: Minor reformatting
1589         * sem_ch6.adb: Minor reformatting
1590
1591 2008-05-27  Thomas Quinot  <quinot@adacore.com>
1592
1593         * sem_res.adb: Minor comment fixes
1594
1595 2008-05-27  Thomas Quinot  <quinot@adacore.com>
1596
1597         * makeutl.adb: Minor code reorganization
1598
1599         * exp_aggr.adb: Add ??? comment
1600         Fix typo
1601
1602         * exp_ch6.adb: Minor reformatting
1603
1604 2008-05-27  Quentin Ochem  <ochem@adacore.com>
1605
1606         * s-stausa.adb (Initialize): Updated result initialization, and
1607         initialization of environment stack.
1608         (Fill_Stack): Improved computation of the pattern zone, taking into
1609         account already filled at the calling point.
1610         (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
1611         Measure and Overflow_Guard.
1612         (Report_Result): Fixed computation of the result using new fields of
1613         Stack_Analyzer.
1614         
1615         * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
1616         params by more explicit Stack_Size / Max_Pattern_Size params.
1617         (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
1618         Added Stack_Used_When_Filling field.
1619         (Task_Result): Replaced Measure / Overflow_Guard by more explicit
1620         Min_Measure and Max_Measure fields.
1621         
1622         * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
1623
1624 2008-05-27  Vincent Celier  <celier@adacore.com>
1625
1626         * prj-nmsc.adb:
1627         (Check_File): Make sure that a unit that replaces the same unit in a
1628          project being extended is properly processed.
1629
1630 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
1631
1632         * sem_ch3.adb:
1633         (Get_Discr_Value): Remove obsolete code that failed to find the value
1634         of a discriminant for an inherited task component appearing in a type
1635         extension.
1636
1637 2008-05-27  Thomas Quinot  <quinot@adacore.com>
1638
1639         (System.File_IO.{Close, Delete, Reset}):
1640         Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
1641         
1642         (Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
1643         Pass File parameter by reference.
1644
1645 2008-05-27  Vincent Celier  <celier@adacore.com>
1646
1647         * prj-nmsc.adb:
1648         (Process_Sources_In_Multi_Language_Mode): Check that there are not two
1649         sources of the same project that have the same object file name.
1650         (Find_Explicit_Sources): Always remove a source exception that was not
1651         found.
1652
1653 2008-05-27  Thomas Quinot  <quinot@adacore.com>
1654
1655         * sem_ch3.adb: Minor reformatting
1656
1657 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
1658
1659         * sem_ch6.adb:
1660         (Is_Interface_Conformant): Handle properly a primitive operation that
1661         overrides an interface function with a controlling access result.
1662         (Type_Conformance): If Skip_Controlling_Formals is true, when matching
1663         inherited and overriding operations, omit as well the conformance check
1664         on result types, to prevent spurious errors.
1665
1666 2008-05-27  Vincent Celier  <celier@adacore.com>
1667
1668         * makeutl.ads, makeutl.adb:
1669         (Set_Location): New procedure
1670         (Get_Location): New function
1671         (Update_Main): New procedure
1672
1673 2008-05-27  Vincent Celier  <celier@adacore.com>
1674
1675         * prj-nmsc.adb:
1676         (Check_Library): Allow standard project to be extended as a static
1677         library project.
1678         (Get_Mains): Do not inherit attribute Main in an extending library
1679         project.
1680
1681 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
1682
1683         * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
1684         * system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
1685         * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
1686         * system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
1687         * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
1688         * system-linux-x86.ads (Always_Compatible_Rep): Likewise.
1689         * system-mingw.ads (Always_Compatible_Rep): Likewise.
1690         * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
1691         * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
1692         * system-solaris-x86.ads (Always_Compatible_Rep): Likewise.
1693         
1694 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
1695
1696         * sem_attr.adb: add guard to previous patch.
1697
1698 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
1699
1700         * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
1701         a synchronized tagged type, do not attempt to build dispatch table for
1702         full view. The table is built for the corresponding record type, which
1703         has its own declaration.
1704
1705 2008-05-27  Gary Dismukes  <dismukes@adacore.com>
1706
1707         * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
1708         to the known type entity E, rather than setting it to Any_Type. Fixes
1709         possible blowup in function Base_Init_Proc, as called from Freeze_Entity
1710         for objects whose type had an illegal constraint.
1711
1712 2008-05-27  Vincent Celier  <celier@adacore.com>
1713
1714         * gnat_ugn.texi:
1715         Add succinct documentation for attribute Excluded_Source_List_File
1716
1717 2008-05-27  Vincent Celier  <celier@adacore.com>
1718
1719         * prj-attr.adb: Add new project level attribute Map_File_Option
1720         
1721         * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
1722         
1723         * prj.ads: Minor reformatting and comment update
1724         (Project_Configuration): New component Map_File_Option
1725         
1726         * snames.adb: New standard name Map_File_Option
1727         
1728         * snames.ads: New standard name Map_File_Option
1729
1730 2008-05-27  Vincent Celier  <celier@adacore.com>
1731
1732         * xsnames.adb: Remove unused variable Oname
1733
1734 2008-05-27  Doug Rupp  <rupp@adacore.com>
1735
1736         * exp_ch6.adb:
1737         (Expand_N_Function_Call): Fix comments. Minor reformatting.
1738
1739         * exp_vfpt.ads:
1740         (Expand_Vax_Foreign_Return): Fix comments.
1741
1742 2008-05-27  Thomas Quinot  <quinot@adacore.com>
1743
1744         * exp_dist.adb: Minor reformating
1745
1746 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
1747
1748         * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
1749         No_Default_Initialization, which is now delayed until the freeze point
1750         of the object. Add a comment about deferral of the check.
1751         
1752         * freeze.adb (Freeze_Entity): The check for No_Default_Initialization
1753         on objects is moved here.
1754
1755 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
1756
1757         * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
1758         (Compare_Array_S16): Adjust for above change.
1759         * s-casi32.adb (Uword): Likewise.
1760         (Compare_Array_S32): Likewise.
1761         * s-casi64.adb (Uword): Likewise.
1762         (Compare_Array_S64): Likewise.
1763         * s-caun16.adb (Uhalf): Likewise.
1764         (Compare_Array_U16): Likewise.
1765         * s-caun32.adb (Uword): Likewise.
1766         (Compare_Array_U32): Likewise.
1767         * s-caun64.adb (Uword): Likewise.
1768         (Compare_Array_U64): Likewise.
1769         
1770 2008-05-26  Robert Dewar  <dewar@adacore.com>
1771
1772         * exp_ch6.adb: Add ??? comment for previous change
1773
1774         * exp_vfpt.adb: Minor reformatting
1775
1776         * exp_vfpt.ads: Add ??? comment for last change
1777
1778         * sem_attr.adb: Add some ??? comments for previous change
1779
1780         * s-vaflop.ads: Add comments for previous change
1781
1782 2008-05-26  Doug Rupp  <rupp@adacore.com>
1783
1784         * s-vaflop-vms-alpha.adb:
1785         Remove System.IO use clause, to prevent spurious ambiguities when
1786         package is access through rtsfind.
1787
1788 2008-05-26  Sergey Rybin  <rybin@adacore.com>
1789
1790         * tree_io.ads (ASIS_Version_Number): Update because of the changes
1791         made in front-end
1792
1793 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
1794
1795         * sem_attr.adb:
1796         (Resolve_Attribute, case 'address):  S (A .. B)' address can be safely
1797         converted to S (A)'address only if A .. B is known to be a non-null
1798         range.
1799
1800 2008-05-26  Doug Rupp  <rupp@adacore.com>
1801
1802         * s-vaflop.adb:
1803         (Return_D, Return_F, Return_G): New functions.
1804
1805         * s-vaflop.ads:
1806         (Return_D, Return_F, Return_G): New functions.
1807
1808         * exp_vfpt.adb:
1809         (Expand_Vax_Foreign_Return): New procedure
1810
1811         * exp_vfpt.ads:
1812         (Expand_Vax_Foreign_Return): New procedure
1813
1814         * rtsfind.ads:
1815         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
1816         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
1817
1818         * exp_ch6.adb:
1819         Import Exp_Vfpt
1820         (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
1821
1822         * s-vaflop-vms-alpha.adb:
1823         (Return_D, Return_F, Return_G): New functions.
1824
1825 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
1826
1827         * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
1828         init proc entity when there is actual default initialization associated
1829         with the component type, to avoid spurious errors on objects of scalar
1830         array types that are marked Is_Public when No_Default_Initialization
1831         applies.
1832
1833 2008-05-26  Thomas Quinot  <quinot@adacore.com>
1834
1835         * rtsfind.ads, rtsfind.adb:
1836         (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
1837         (Check_RPC): Support per-PCS-kind API versioning.
1838         
1839         exp_dist.ads, exp_dist.adb:
1840         (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
1841         (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
1842          library function Get_RACW.
1843         (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
1844         library function Get_Reference.
1845         (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
1846         through an intermediate Any.
1847         (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
1848         going through an intermediate Any.
1849         
1850         * sem_dist.adb: Minor reformatting.
1851
1852 2008-05-26  Javier Miranda  <miranda@adacore.com>
1853
1854         * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
1855         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
1856         (Is_Internal): Adding documentation on internal entities that have
1857         attribute Interface_Alias (old attribute Abstract_Interface_Alias)
1858
1859         * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
1860         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
1861         Added assertion to force entities with this attribute to have
1862         attribute Is_Internal set to True.
1863         (Next_Tag_Component): Simplify assertion using attribute Is_Tag.
1864
1865         * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
1866         renamed as Derive_Progenitor_Subprograms. In addition, its code is
1867         a new implementation.
1868         (Add_Interface_Tag_Components): Remove special management of
1869         synchronized interfaces.
1870         (Analyze_Interface_Declaration): Minor reformating
1871         (Build_Derived_Record_Type): Minor reformating
1872         (Check_Abstract_Overriding): Avoid reporting error in case of abstract
1873         predefined primitive inherited from interface type because the body of
1874         internally generated predefined primitives of tagged types are generated
1875         later by Freeze_Type
1876         (Derive_Subprogram): Avoid generating an internal name if the parent
1877         subprogram overrides an interface primitive.
1878         (Derive_Subprograms): New implementation that keeps separate the
1879         management of tagged types not implementing interfaces, from tagged
1880         types that implement interfaces.
1881         (Is_Progenitor): New implementation.
1882         (Process_Full_View): Add documentation
1883         (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
1884         by call to Derive_Progenitor_Subprograms.
1885
1886         * sem_ch6.ads (Is_Interface_Conformant): New subprogram.
1887         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
1888         Skip_Controlling_Formals.
1889
1890         * sem_ch6.adb (Is_Interface_Conformant): New subprogram.
1891         (Check_Conventions): New implementation. Remove local subprogram
1892         Skip_Check. Remove formal Search_From of routine Check_Convention.
1893         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
1894         Skip_Controlling_Formals.
1895         (New_Overloaded_Entity): Enable addition of predefined dispatching
1896         operations.
1897
1898         * sem_disp.ads
1899         (Find_Primitive_Covering_Interface): New subprogram.
1900
1901         * sem_disp.adb (Check_Dispatching_Operation): Disable registering
1902         the task body procedure as a primitive of the corresponding tagged
1903         type.
1904         (Check_Operation_From_Private_Type): Avoid adding twice an entity
1905         to the list of primitives.
1906         (Find_Primitive_Covering_Interface): New subprogram.
1907         (Override_Dispatching_Operation): Add documentation.
1908
1909         * sem_type.adb (Covers): Minor reformatings
1910
1911         * sem_util.ads (Collect_Abstract_Interfaces): Renamed as
1912         Collect_Interfaces.
1913         Rename formal.
1914         (Has_Abstract_Interfaces): Renamed as Has_Interfaces.
1915         (Implements_Interface): New subprogram.
1916         (Is_Parent): Removed.
1917         (Primitive_Names_Match): New subprogram.
1918         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
1919         (Ultimate_Alias): New subprogram.
1920
1921         * sem_util.adb (Collect_Abstract_Interfaces): Renamed as
1922         Collect_Interfaces.
1923         Remove special management for synchronized types. Rename formal. Remove
1924         internal subprograms Interface_Present_In_Parent and Add_Interface.
1925         (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
1926         on non-record types by code to return false in such case.
1927         (Implements_Interface): New subprogram.
1928         (Is_Parent): Removed. No special management is now required for
1929         synchronized types covering interfaces.
1930         (Primitive_Names_Match): New subprogram.
1931         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
1932         (Ultimate_Alias): New subprogram.
1933
1934         * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
1935         Add internal entities associated with secondary dispatch tables to
1936         the list of tagged type primitives that are not interfaces.
1937         (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
1938         (Make_Predefined_Primitive_Specs): Code reorganization to improve
1939         the management of predefined equality operator. In addition, if
1940         the type has an equality function corresponding with a primitive
1941         defined in an interface type, the inherited equality is abstract
1942         as well, and no body can be created for it.
1943
1944         * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
1945         exp_util to exp_disp.
1946         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if
1947         an entity corresponds with one of the predefined primitives required
1948         to implement interfaces.
1949         Update copyright notice.
1950
1951         * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
1952         final check on abstract subprograms all the primitives associated with
1953         interface primitives because they must be visible in the public and
1954         private part.
1955         (Write_DT): Use Find_Dispatching_Type to locate the name of the
1956         interface type. This allows the use of this routine, for debugging
1957         purposes, when the tagged type is not fully decorated.
1958         (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
1959         Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
1960         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
1961         entity corresponds with one of the predefined primitives required to
1962         implement interfaces.
1963
1964         * exp_util.adb (Find_Interface_ADT): New implementation
1965         (Find_Interface): Removed.
1966
1967         * sprint.adb (Sprint_Node_Actual): Generate missing output for the
1968         list of interfaces associated with nodes
1969         N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
1970
1971 2008-05-26  Thomas Quinot  <quinot@adacore.com>
1972
1973         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
1974         condition for assignment to temporary.
1975
1976 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
1977
1978         * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
1979         checks on the upper bound if the index type is a modular type, to
1980         prevent wrap-around computations when size is close to upper bound of
1981         type.
1982
1983 2008-05-26  Robert Dewar  <dewar@adacore.com>
1984
1985         * sem_ch3.adb: Minor reformatting
1986
1987 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
1988
1989         * sem_ch12.adb (Remove_Parent): Use specification of instance
1990         to retrieve generic parent,
1991         to handle properly the case where the instance is a child unit.
1992         Add guard to handle properly wrapper packages.
1993         Minor reformatting
1994
1995 2008-05-26  Thomas Quinot  <quinot@adacore.com>
1996
1997         * sinfo.ads: Minor reformatting
1998
1999 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
2000
2001         * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
2002         Generate a tag check when the result subtype of a function, defined by
2003         an access definition, designates a specific tagged type.
2004         (Make_Tag_Check): New routine.
2005
2006 2008-05-26  Arnaud Charlet  <charlet@adacore.com>
2007
2008         * ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
2009
2010 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2011
2012         * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
2013         (builtin_decl_for): Likewise.
2014         * trans.c (gigi): Likewise.
2015         * utils.c (def_builtin_1): Fix formatting.
2016
2017 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
2018
2019         * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
2020         Create the statements which map a string name to protected or task
2021         entry indix.
2022
2023         * exp_ch9.adb: Add with and use clause for Stringt.
2024         Minor code reformatting.
2025         (Build_Entry_Names): New routine.
2026         (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
2027         for flag Build_Entry_Names which controls the allocation of the data
2028         structure for the string names of entries.
2029
2030         * exp_ch9.ads (Build_Entry_Names): New subprogram.
2031
2032         * exp_util.adb (Entry_Names_OK): New function.
2033
2034         * exp_util.ads (Entry_Names_OK): New function.
2035
2036         * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
2037         enumerations RE_Id and RE_Unit_Table.
2038
2039         * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
2040         (Free_Entry_Names_Array): New routine.
2041
2042         * s-taskin.ads: Comment reformatting.
2043         Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
2044         Add component Entry_Names to record Ada_Task_Control_Block.
2045         (Free_Entry_Names_Array): New routine.
2046
2047         * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
2048         dynamically allocate an array
2049         of string pointers. This structure holds string entry names.
2050         (Free_Entry_Names): New routine.
2051         (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
2052         (Set_Entry_Names): New routine.
2053
2054         * s-tassta.ads:
2055         (Create_Task): Add formal Build_Entry_Names. The flag is used to
2056         control the allocation of the data structure which stores entry names.
2057         (Set_Entry_Name): New routine.
2058
2059         * s-tpoben.adb:
2060         Add with and use clause for Ada.Unchecked_Conversion.
2061         (Finalize): Deallocate the entry names array.
2062         (Free_Entry_Names): New routine.
2063         (Initialize_Protection_Entries): When flag Build_Entry_Names is set,
2064         create an array of string pointers to hold the entry names.
2065         (Set_Entry_Name): New routine.
2066
2067         * s-tpoben.ads:
2068         Add field Entry_Names to record Protection_Entries.
2069         (Initialize_Protection_Entries): Add formal Build_Entry_Names.
2070         (Set_Entry_Name): New routine.
2071
2072 2008-05-26  Vincent Celier  <celier@adacore.com>
2073
2074         * prj-nmsc.adb:
2075         (Process_Project_Level_Simple_Attributes): process attribute Library_GCC
2076
2077         * prj.ads:
2078         (Project_Configuration): New component Shared_Lib_Driver
2079
2080 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
2081
2082         * inline.adb:
2083         (Cleanup_Scopes): For a protected operation, transfer finalization list
2084         to protected body subprogram, to force cleanup actions when needed.
2085
2086 2008-05-26  Robert Dewar  <dewar@adacore.com>
2087
2088         * sem_cat.adb: Minor reformatting
2089
2090         * gnatname.adb: Minor reformatting
2091
2092         * osint.ads: Minor reformatting
2093
2094         * s-carun8.ads: Minor reformatting
2095
2096         * g-heasor.ads: Minor comment fix (unit is now pure)
2097
2098 2008-05-26  Robert Dewar  <dewar@adacore.com>
2099
2100         * exp_ch2.adb:
2101         (Expand_Current_Value): Properly type generated integer literal
2102
2103 2008-05-26  Sergey Rybin  <rybin@adacore.com>
2104
2105         * gnat_ugn.texi: Add description for the new gnatcheck rule -
2106         Separate_Numeric_Error_Handlers.
2107
2108 2008-05-26  Pascal Obry  <obry@adacore.com>
2109
2110         * sem_aggr.adb: Minor reformatting.
2111
2112 2008-05-26  Jose Ruiz  <ruiz@adacore.com>
2113
2114         * s-osinte-aix.adb:
2115         (To_Target_Priority): Setting the time slice value to 0 or greater sets
2116         the scheduling policy to FIFO within priorities or round-robin
2117         respectively.
2118         Hence, the priority must be set in this case to the one selected by the
2119         user.
2120         
2121 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
2122
2123         * sem_ch12.adb:
2124         (Remove_Parent): If the enclosing scope is an instance whose generic
2125         parent is declared within some parent scope of the just completed
2126         instance, make full views of the entities in that parent visible, when
2127         applicable.
2128         
2129 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
2130
2131         * mingw32.h (STD_MINGW): Set to true for target w64.
2132
2133 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2134
2135         * trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
2136         instead of TREE_STATIC on the ADDR_EXPR.
2137
2138 2008-05-24  Eric Botcazou  <ebotcazou@adacore.com>
2139
2140         * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
2141         (Sloc_to_locus): Do not overwrite known GCC locations when translating
2142         GNAT standard locations.
2143
2144 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
2145
2146         * gigi.h (mark_visited): Declare.
2147         * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
2148         only the topmost node of expressions.
2149         (elaborate_expression_1): Look deeper for read-only variables.
2150         * trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
2151         (mark_visited): Move logic to mark_visited_r.  Invoke walk_tree.
2152         (mark_visited_r): New function.
2153
2154 2008-05-23  Vincent Celier  <celier@adacore.com>
2155
2156         * snames.adb: New standard name Excluded_Source_List_File.
2157
2158         * snames.ads: New standard name Excluded_Source_List_File.
2159
2160         * prj-attr.adb: New project level attribute Excluded_Source_List_File.
2161
2162         * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
2163         Get excluded sources from
2164         file indicated by attribute Excluded_Source_List_File, when present and
2165         neither Excluded_Source_Files nor Locally_Removed_Files are declared.
2166
2167 2008-05-23  Robert Dewar  <dewar@adacore.com>
2168
2169         * exp_dist.adb: Minor reformatting
2170
2171 2008-05-23  Ed Schonberg  <schonberg@adacore.com>
2172
2173         * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
2174         slice, convert it to an indexed component, which is equivalent, more
2175         efficient, and usable even if the slice itself is not addressable.
2176
2177 2008-05-23  Olivier Hainque  <hainque@adacore.com>
2178
2179         * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
2180         convention also allows access to named compiler built-in subprograms
2181         such as the GCC __builtin family.
2182
2183 2008-05-23  Vincent Celier  <celier@adacore.com>
2184
2185         * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
2186         sep. If there are several possibilities, choose the one with the
2187         longer prefix.
2188
2189 2008-05-23  Vincent Celier  <celier@adacore.com>
2190
2191         * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
2192         back end switches when executable specified with --GCC= is same as
2193         default, even if there are additional options.
2194
2195         * gnat_ugn.texi:
2196         Document when the back end switches from the ALI file are taken into
2197         account when gnatlink is invoked with --GCC=
2198
2199 2008-05-23  Thomas Quinot  <quinot@adacore.com>
2200
2201         * s-os_lib.adb:
2202         (copy_File): Do not open destination file if source file is unreadable.
2203
2204 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
2205
2206         * utils.c (handle_type_generic_attribute): Adjust to accept
2207         fixed arguments before an elipsis.
2208
2209 2008-05-21  Thomas Quinot  <quinot@adacore.com>
2210
2211         * g-sothco.ads, g-sothco.adb: New files.
2212
2213 2008-05-20  Thomas Quinot  <quinot@adacore.com>
2214
2215         * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
2216
2217         * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
2218         Add missing "with" of Ada.Unchecked_Conversion
2219
2220         * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads, 
2221         g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads, 
2222         g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads, 
2223         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads, 
2224         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads, 
2225         g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads: 
2226         Move common code out of GNAT.Sockets.Thin implementations and into
2227         Thin_Common.
2228         New constant SIZEOF_fd_set
2229         New flag Has_Sockaddr_Len
2230         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
2231
2232         * g-stsifd-sockets.adb
2233         (Create): Remove call to Set_Length; use Set_Family to set the family
2234         and (on appropriate platforms) length fields in struct sockaddr.
2235
2236         * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb, 
2237         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb, 
2238         g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
2239         Move common code out of GNAT.Sockets.Thin implementations and into
2240         Thin_Common.
2241
2242         * g-socket.ads, g-socket.adb: 
2243         Move common code out of GNAT.Sockets.Thin implementations and into
2244         Thin_Common.
2245         (Connect_Socket, Accept_Socket): Provide new versions of these two
2246         routines that operate with a user specified timeout.
2247         (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
2248         this is now handled automatically by Set_Family on platforms that
2249         require it.
2250
2251         * gen-soccon.c: 
2252         Move common code out of GNAT.Sockets.Thin implementations and into
2253         Thin_Common.
2254         (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
2255         this constant to 0 (not -1) because we use it to initialize an
2256         unsigned_char value.
2257         Align values for numeric constants only.
2258         Handle the case of systems that do not support AF_INET6.
2259         New constant SIZEOF_fd_set
2260         New flag Has_Sockaddr_Len
2261         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
2262
2263         * gsocket.h: New flag Has_Sockaddr_Len
2264         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
2265
2266 2008-05-20  Santiago Uruena  <uruena@adacore.com>
2267
2268         * i-cobol.ads: Interfaces.COBOL should be preelaborate.
2269
2270 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
2271
2272         * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
2273         the underlying issue with malloc/free has been fixed. Remove associated
2274         comments.
2275         Minor reformatting.
2276         Related to PR ada/24533
2277
2278 2008-05-20  Robert Dewar  <dewar@adacore.com>
2279
2280         * ali.adb: Correct casing of ASCII.NUL
2281
2282         * styleg-c.adb (Check_Identifier): Handle case of names in ASCII
2283         properly.
2284
2285 2008-05-20  Robert Dewar  <dewar@adacore.com>
2286             Gary Dismukes  <dismukes@adacore.com>
2287
2288         * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
2289         overflow if result converted to wider integer type.
2290         (Apply_Type_Conversion_Checks): Don't emit checks on conversions to
2291         discriminated types when discriminant checks are suppressed.
2292
2293 2008-05-20  Vincent Celier  <celier@adacore.com>
2294
2295         * cstand.adb (Print_Standard): Issue the correct Size clause for type
2296         Wide_Wide_Character.
2297
2298 2008-05-20  Tristan Gingold  <gingold@adacore.com>
2299
2300         * decl.c: Do not emit a variable for a object that has an address
2301         representation clause whose value is known at compile time.
2302         When a variable has an address clause whose value is known at compile
2303         time, refer to this variable by using directly the address instead of
2304         dereferencing a pointer.
2305
2306 2008-05-20  Robert Dewar  <dewar@adacore.com>
2307
2308         PR ada/30740
2309         * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
2310         subtypes, always False for non-modular types.
2311         Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
2312         entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
2313         for Shared_Storage package.
2314         (Is_RACW_Stub_Type): New entity flag.
2315
2316         * exp_ch4.adb
2317         (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
2318         case where we have a modular type with a non-binary modules.
2319         Comments reformattings.
2320
2321         * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
2322         all types.
2323
2324 2008-05-20  Javier Miranda  <miranda@adacore.com>
2325
2326         * exp_aggr.adb
2327         (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
2328         tests did not covered the case in which the type of the aggregate has
2329         no progenitors but some its parents has progenitors.
2330
2331 2008-05-20  Gary Dismukes  <dismukes@adacore.com>
2332             Hristian Kirtchev  <kirtchev@adacore.com>
2333
2334         * exp_ch3.adb
2335         (Expand_N_Object_Declaration): Correct the condition which triggers the
2336         generation of a call to Displace when initializing a class-wide object.
2337         (Build_Dcheck_Functions): Build discriminant-checking for null variants
2338         when Frontend_Layout_On_Target is true to ensure that they're available
2339         for calling when a record variant size function is built in Layout.
2340
2341 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
2342
2343         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
2344         procedure for a derived type retrieve the discriminant values from the
2345         parent using the corresponding discriminant.
2346         (Expand_N_Assignment_Statement): Skip generation of implicit
2347         if-statement associated with controlled types if we are
2348         compiling with restriction No_Finalization.
2349
2350 2008-05-20  Vincent Celier  <celier@adacore.com>
2351
2352         * prj.adb (Hash (Project_Id)): New function
2353         (Project_Empty): Add new component Interfaces_Defined
2354
2355         * prj.ads (Source_Data): New component Object_Linked
2356         (Language_Config): New components Object_Generated and Objects_Linked
2357         (Hash (Project_Id)): New function
2358         (Source_Data): New Boolean components In_Interfaces and
2359         Declared_In_Interfaces.
2360         (Project_Data): New Boolean component Interfaces_Defined
2361
2362         * prj-attr.adb: 
2363         New project level attribute Object_Generated and Objects_Linked
2364         Add new project level attribute Interfaces
2365
2366         * prj-dect.adb: Use functions Present and No throughout
2367         (Parse_Variable_Declaration): If a string type is specified as a simple
2368         name and is not found in the current project, look for it also in the
2369         ancestors of the project.
2370
2371         * prj-makr.adb: 
2372         Replace procedure Make with procedures Initialize, Process and Finalize
2373         to implement H414-023: process different directories with different
2374         patterns.
2375         Use functions Present and No throughout
2376
2377         * prj-makr.ads: 
2378         Replace procedure Make with procedures Initialize, Process and Finalize
2379
2380         * prj-nmsc.adb
2381         (Add_Source): Set component Object_Exists and Object_Linked accordnig to
2382         the language configuration.
2383         (Process_Project_Level_Array_Attributes): Process new attributes
2384         Object_Generated and Object_Linked.
2385         (Report_No_Sources): New Boolean parameter Continuation, defaulted to
2386         False, to indicate that the erreor/warning is a continuation.
2387         (Check): Call Report_No_Sources with Contnuation = True after the first
2388         call.
2389         (Error_Msg): Process successively contnuation character and warning
2390         character.
2391         (Find_Explicit_Sources): Check that all declared sources have been found
2392         (Check_File): Indicate in hash table Source_Names when a declared source
2393         is found.
2394         (Check_File): Set Other_Part when found
2395         (Find_Explicit_Sources): In multi language mode, check if all exceptions
2396         to the naming scheme have been found. For Ada, report an error if an
2397         exception has not been found. Otherwise, disregard the exception.
2398         (Check_Interfaces): New procedure
2399         (Add_Source): When Other_Part is defined, set mutual pointers in spec
2400         and body.
2401         (Check): In multi-language mode, call Check_Interfaces
2402         (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
2403         for an excluded source.
2404         (Remove_Source): A source replacing a source in the interfaces is also
2405         in the interfaces.
2406
2407         * prj-pars.adb: Use function Present
2408
2409         * prj-part.adb: Use functions Present and No throughout
2410         (Parse_Single_Project): Set the parent project for child projects
2411         (Create_Virtual_Extending_Project): Register project with no qualifier
2412         (Parse_Single_Project): Allow an abstract project to be extend several
2413         times. Do not allow an abstract project to extend a non abstract
2414         project.
2415
2416         * prj-pp.adb: Use functions Present and No throughout
2417         (Print): Take into account the full associative array attribute
2418         declarations.
2419
2420         * prj-proc.adb: Use functions Present and No throughout
2421         (Expression): Call itself with the same From_Project_Node for the
2422         default value of an external reference.
2423
2424         * prj-strt.adb: Use functions Present and No throughout
2425         (Parse_Variable_Reference): If a variable is specified as a simple name
2426         and is not found in the current project, look for it also in the
2427         ancestors of the project.
2428
2429         * prj-tree.ads, prj-tree.adb (Present): New function
2430         (No): New function
2431         Use functions Present and No throughout
2432         (Parent_Project_Of): New function
2433         (Set_Parent_Project_Of): New procedure
2434
2435         * snames.ads, snames.adb: 
2436         Add new standard names Object_Generated and Objects_Linked
2437
2438 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
2439
2440         * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
2441         and the derived type are of the same kind.
2442         (Expand_Call): Generate type conversions for actuals of
2443         record or array types when the parent and the derived types differ in
2444         size and/or packed status.
2445
2446 2008-05-20  Javier Miranda  <miranda@adacore.com>
2447             Ed Schonberg  <schonberg@adacore.com>
2448
2449         * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
2450         generating dispatch tables of locally defined tagged types statically.
2451         Remove implicit if-statement that is no longer required.
2452         (Expand_Dispatching_Call): If this is a call to an instance of the
2453         generic dispatching constructor, the type of the first argument may be
2454         a subtype of Tag, so always use the base type to recognize this case.
2455
2456 2008-05-20  Thomas Quinot  <quinot@adacore.com>
2457
2458         * exp_dist.adb
2459         (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
2460         and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
2461         assigning NULL into the result, to avoid a spurious warning.
2462         (Add_RACW_Features, case Same_Scope): Add assertion that designated type
2463         is not frozen.
2464         (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
2465         type.
2466         (Build_From_Any_Function, Build_To_Any_Function,
2467         Build_TypeCode_Function): For a type that has user-specified stream
2468         attributes, use an opaque sequence of octets as the representation.
2469
2470 2008-05-20  Kevin Pouget  <pouget@adacore.com>
2471
2472         * exp_smem.ads, exp_smem.adb: Construction of access and assign
2473         routines has been replaced by an instantiation of
2474         System.Shared_Storage.Shared_Var_Procs generic package, while expanding
2475         shared variable declaration.
2476         Calls to access and assign routines have been replaced by calls to
2477         Read/Write routines of System.Shared_Storage.Shared_Var_Procs
2478         instantiated package.
2479         
2480         * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
2481         It identifies the new generic package added in s-shasto.
2482
2483         * s-shasto.adb, s-shasto.ads: A new generic package has been added, it
2484         is instantiated for each shared passive variable. It provides
2485         supporting procedures called upon each read or write access by the
2486         expanded code.
2487
2488         * sem_attr.adb:
2489         For this runtime unit (always compiled in GNAT mode), we allow
2490         stream attributes references for limited types for the case where
2491         shared passive objects are implemented using stream attributes,
2492         which is the default in GNAT's persistent storage implementation.
2493
2494 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
2495
2496         * freeze.adb
2497         (Freeze_Enumeration_Type): For a subtype that inherits a foreign
2498         convention from its base type, do not set the type to that of integer,
2499         because it may inherit a size clause.
2500         Warn on a size clause with a size different
2501         from that of Integer, if the type has convention C.
2502
2503 2008-05-20  Vincent Celier  <celier@adacore.com>
2504
2505         * gnatname.adb
2506         (Scan_Args): Rewrite to take into account new switch --and to separate
2507         arguments into sections.
2508         (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
2509         section, then Finalize.
2510
2511 2008-05-20  Tristan Gingold  <gingold@adacore.com>
2512
2513         * init.c: Enable stack probing on ppc-linux.
2514
2515         * tracebak.c: Add symbolic traceback for ppc-linux.
2516
2517         * system-linux-ppc.ads: Enable stack probing on ppc-linux.
2518
2519 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
2520
2521         * Makefile.in
2522         (common-tools): New rule, to avoid parallel build failure on gnat tools.
2523         Reenable parallel builds on this Makefile.
2524
2525         * Make-lang.in: Update dependencies.
2526
2527 2008-05-20  Robert Dewar  <dewar@adacore.com>
2528
2529         * opt.ads (Treat_Restrictions_As_Warnings): New switch
2530
2531         * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
2532         Treat_Restrictions_As_Warnings.
2533
2534         * switch-c.adb: Recognize new switch -gnatr
2535
2536         * usage.adb: Add line for -gnatr
2537
2538 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
2539
2540         * par-ch3.adb
2541         (P_Access_Definition): Change the error message when parsing "access
2542         all" in Ada 95 mode. The message no longer forces the user to recompile
2543         in 05 mode only to discover that anonymous access types are not allowed
2544         to have "all".
2545
2546 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
2547
2548         * par-ch9.adb
2549         (P_Protected): Update the error message on missing "-gnat05" switch when
2550         using interfaces in conjunction with protected types. Remove the
2551         incorrect error message associated with the presence of "private" after
2552         a "with".
2553
2554 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
2555
2556         * sem_aggr.adb: Update comments.
2557         Improve previous change for PR ada/17985
2558
2559 2008-05-20  Thomas Quinot  <quinot@adacore.com>
2560
2561         * sem_cat.adb
2562         (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
2563         the visible part of the spec of a remote types unit.
2564         (Validate_Remote_Access_Object_Type_Declaration):
2565         New local subprogram Is_Valid_Remote_Object_Type, replaces
2566         Is_Recursively_Limited_Private.
2567         (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
2568         non-controlling formals (and the return type, even though this is not
2569         explicit in the standard) must support external streaming.
2570         (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
2571         as above for of RAS types and RCI subprograms. (The return type is not
2572         checked yet).
2573         Update comments related to RACWs designating limited interfaces per
2574         ARG ruling on AI05-060.
2575
2576         * sem_util.ads, sem_util.adb
2577         (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
2578         Is_Remote_Call_Interface to identify RACW types in a stable and
2579         consistent way. We used to rely in this predicate on the privateness of
2580         the designated type and its ancestors, but depending on the currently
2581         visible private parts, this caused false negatives. We now uniformly
2582         rely on checks made at the point where the RACW type is declared.
2583         (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
2584
2585 2008-05-20  Javier Miranda  <miranda@adacore.com>
2586             Ed Schonberg  <schonberg@adacore.com>
2587             Hristian Kirtchev  <kirtchev@adacore.com>
2588
2589         * sem_ch3.adb
2590         (Analyze_Object_Declaration): Fix over-conservative condition
2591         restricting use of predefined assignment with tagged types that have
2592         convention CPP.
2593         (Analyze_Object_Declaration): Relax the check regarding deferred
2594         constants declared in scopes other than packages since they can be
2595         completed with pragma Import.
2596         Add missing escaping of all-caps word 'CPP' in error messages.
2597         (Build_Discriminated_Subtype): Do not inherit representation clauses
2598         from parent type if subtype already carries them, because they are
2599         inherited earlier during derivation and already include those that may
2600         come from a partial view.
2601
2602         * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
2603         Check the declarations of a subprogram body for proper deferred
2604         constant completion.
2605
2606         * sem_ch7.ads, sem_ch7.adb
2607         (Inspect_Deferred_Constant_Completion): Moved to sem_util.
2608
2609 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
2610             Thomas Quinot  <quinot@adacore.com>
2611
2612         * sem_ch4.adb
2613         (Try_Indexed_Call): Handle properly a construct of the form F(S) where
2614         F is a parameterless function that returns an array, and S is a subtype
2615         mark.
2616         (Analyze_Call): Insert dereference when the prefix is a parameterless
2617         function that returns an access to subprogram and the call has
2618         parameters.
2619         Reject a non-overloaded call whose name resolves to denote
2620         a primitive operation of the stub type generated to support a remote
2621         access-to-class-wide type.
2622
2623 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
2624
2625         * sem_ch8.adb
2626         (Note_Redundant_Use): Diagnose a redundant use within a subprogram body
2627         when there is a use clause for the same entity in the context.
2628         (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
2629         created for a stream attribute of an abstract type or interface type.
2630
2631 2008-05-20  Thomas Quinot  <quinot@adacore.com>
2632
2633         * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
2634         subprogram.
2635
2636         * sem_type.adb
2637         (Add_One_Interp): Ignore any interpretation that is a primitive
2638         operation of an RACW stub type (these primitives are only executed
2639         through dispatching, never through static calls).
2640         (Collect_Interps): When only one interpretation has been found, set N's
2641         Entity and Etype to that interpretation, otherwise Entity and Etype may
2642         still refer to an interpretation that was ignored by Add_One_Interp,
2643         in which case would end up with being marked as not overloaded but with
2644         an Entity attribute not pointing to its (unique) correct interpretation.
2645
2646 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
2647
2648         * sem_eval.adb
2649         (Eval_Slice): Warn when a slice whose discrete range is a subtype name
2650         denotes the whole array of its prefix.
2651
2652 2008-05-20  Robert Dewar  <dewar@adacore.com>
2653
2654         * sem_res.adb (Resolve_Op_Not): Warn on double negation
2655
2656 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
2657
2658         * sprint.adb
2659         (Print_Itype): Do not modify the sloc of the component type of a
2660         (packed) array itype, because it is an unrelated type whose source
2661         location is independent of the point of creation of the itype itself.
2662
2663 2008-05-20  Thomas Quinot  <quinot@adacore.com>
2664
2665         * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with
2666         Append.
2667
2668 2008-05-20  Robert Dewar  <dewar@adacore.com>
2669             Vincent Celier  <celier@adacore.com>
2670
2671         * vms_data.ads: Add entry for -gnatr
2672         Put GNAT SYNC section in proper alpha order
2673         Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d
2674
2675         * gnat_ugn.texi: Add documentation for new gnatname switch --and
2676         Update the style checks section
2677         Add documentation of -gnatr
2678         Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
2679         subsection the explanation how compiler checks should be disabled for
2680         gnatcheck.
2681         Update the list of Ada 95 reserved words used by in the project language
2682         Add documentation for project qualifiers.
2683         Document that abstract projects may be extended by different projects in
2684         the same project tree.
2685         Add documentation for gnatmake switch -d
2686
2687         * ug_words: Add -gnatyy VMS equivalence string.
2688         Add entry for -gnatr
2689
2690 2008-05-20  Bob Duff  <duff@adacore.com>
2691
2692         * a-rttiev.adb
2693         (Set_Handler): Remove code from both of these that implements
2694         RM-D.15(15/2), because it causes a race condition and potential
2695         deadlock.
2696         (Process_Queued_Events): Add comment explaining "exception when others
2697         => null". Add clarifying ".all", even though implicit .all is legal
2698         here.
2699
2700 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
2701
2702         * s-winext.ads: Replace representation clause by pragma Pack. Gives
2703         equivalent representation, but has the advantage of allowing
2704         compilation of this file under 64 bits platforms.
2705
2706         * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.
2707
2708         * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration.
2709
2710         * adaint.c: 
2711         Don't define dummy implementation of convert_addresses on ppc-linux.
2712
2713 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
2714
2715         * exp_ch7.adb
2716         (Expand_Ctrl_Function_Call): Do not attach result to finalization list
2717         if expression is aggregate component.
2718
2719 2008-05-20  Robert Dewar  <dewar@adacore.com>
2720
2721         * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads,
2722         sem_ch12.adb: Update comments. Minor reformatting.
2723
2724         * exp_ch2.adb: Typo
2725
2726         * s-unstyp.ads: Fixed some typos in comments.
2727
2728 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
2729
2730         * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New
2731         type/constant.
2732
2733         * g-socthi-vxworks.ads: Update to latest socket changes.
2734
2735         * a-caldel-vms.adb: Resync with a-caldel spec.
2736
2737         * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting.
2738         Update comments.
2739
2740 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2741
2742         * trans.c (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Account
2743         for dummy types pointed to by the converted pointer types.
2744
2745 2008-05-15  Eric Botcazou  <ebotcazou@adacore.com>
2746
2747         * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field
2748         of records and unions.
2749         (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Fix formatting.
2750
2751 2008-05-14  Samuel Tardieu  <sam@rfc1149.net>
2752             Robert Dewar <dewar@adacore.com>
2753
2754         * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add
2755         restrictions to the prefix of 'Old.
2756         * sem_util.ads, sem_util.adb (In_Parameter_Specification): New.
2757         * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local
2758         variables.
2759
2760 2008-05-13  Eric Botcazou  <ebotcazou@adacore.com>
2761
2762         PR ada/24880
2763         PR ada/26635
2764         * utils.c (convert) <INTEGER_TYPE>: When converting an additive
2765         expression to an integral type with lower precision, use NOP_EXPR
2766         directly in a couple of special cases.
2767
2768 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
2769             Ed Schonberg <schonberg@adacore.com>
2770
2771         * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching
2772         constraint expressions.
2773
2774 2008-05-12  Tomas Bily  <tbily@suse.cz>
2775
2776         * utils2.c (known_alignment, contains_save_expr_p)
2777         (gnat_mark_addressable): Use CASE_CONVERT.
2778         * decl.c (annotate_value): Likewise.
2779         * trans.c (maybe_stabilize_reference): Likewise.
2780         * utils2.c (build_binary_op): Use CONVERT_EXPR_P.
2781         * utils.c (rest_of_record_type_compilation): Likewise.
2782         * trans.c (protect_multiple_eval, Attribute_to_gnu)
2783         (protect_multiple_eval): Likewise.
2784
2785 2008-05-08  Andreas Schwab  <schwab@suse.de>
2786
2787         * utils.c (handle_pure_attribute, init_gigi_decls): Rename
2788         DECL_IS_PURE to DECL_PURE_P.
2789
2790 2008-05-05  Eric Botcazou  <ebotcazou@adacore.com>
2791
2792         * decl.c (maybe_pad_type): Add ??? comment.
2793
2794 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
2795
2796         * decl.c (components_to_record): Zero the alignment of the qualified
2797         union built for the variant part upon creating it.
2798
2799 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
2800
2801         * decl.c (maybe_pad_type): Try to get a form of the type with integral
2802         mode even if the alignment is not a factor of the original size.  But
2803         make sure to create the inner field with the original size.  Reorder.
2804         * trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding
2805         record as always addressable.
2806         * utils.c (convert): Deal specially with conversions between original
2807         and packable versions of a record type.
2808         * utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when
2809         recognizing an assignment between padded objects.
2810
2811 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
2812
2813         * decl.c (make_packable_type): Resize the last component to its RM size
2814         only if it is of an aggregate type.
2815         * trans.c (call_to_gnu): Fix nit in comment.
2816         (gnat_to_gnu): Likewise.
2817
2818 2008-04-30  Samuel Tardieu  <sam@rfc1149.net>
2819
2820         * Makefile.in: Adapt sh4-linux target.
2821
2822 2008-04-29  Ed Schonberg  <schonberg@adacore.com>
2823
2824         PR ada/35792
2825         * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete
2826         tagged type by an untagged protected or task type.
2827
2828 2008-04-28  Eric Botcazou  <ebotcazou@adacore.com>
2829             Tristan Gingold  <gingold@adacore.com>
2830
2831         PR ada/36007
2832         * decl.c (gnat_to_gnu_entity) <object>: Do not promote alignment
2833         of aliased objects with an unconstrained nominal subtype.
2834         Cap the promotion to the effective alignment of the word mode.
2835
2836 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2837
2838         * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads)
2839         (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads):
2840         Use '&&' instead of ';'.
2841
2842 2008-04-24  Olivier Hainque  <hainque@adacore.com>
2843
2844         * trans.c (Attribute_to_gnu) <case Attr_Length>: Length computation
2845         doesn't require signed arithmetic anymore.
2846
2847 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
2848
2849         * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT.
2850         (call_to_gnu): Don't set TREE_INVARIANT.
2851         * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT.
2852
2853 2008-04-22  Joel Sherrill <joel.sherrill@oarcorp.com>
2854
2855         * s-osinte-rtems.adb: Add sigalstack function.
2856         * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack
2857         function. Add Alternate_Stack and Alternate_Stack_Size.
2858         Add missing process_shared field to pthread_condattr_t
2859         and change ss_low_priority to int from timespec.
2860
2861 2008-04-22  Samuel Tardieu  <sam@rfc1149.net>
2862
2863         * i-forbla.adb: Link against -llapack and -lblas by default
2864         instead of the private -lgnalasup.
2865
2866 2008-04-21  Olivier Hainque  <hainque@adacore.com>
2867
2868         Access to most C builtins from Ada
2869         * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE.
2870         (handle_pure_attribute, handle_novops_attribute,
2871         handle_nonnull_attribute, handle_sentinel_attribute,
2872         handle_noreturn_attribute, handle_malloc_attribute,
2873         handle_type_generic_attribute): New attribute handlers, from C fe.
2874         (gnat_internal_attribute_table): Map the new handlers.
2875         (gnat_init_decl_processing): Move call to gnat_install_builtins to ...
2876         (init_gigi_decls): ... here.
2877         (handle_const_attribute, handle_nothrow_attribute, builtin_decl_for):
2878         Move to a section dedicated to builtins processing.
2879         (build_void_list_node, builtin_type_for_size): New functions.
2880         (def_fn_type, get_nonnull_operand): Likewise.
2881         (install_builtin_elementary_type, install_builtin_function_types,
2882         install_builtin_attributes): Likewise.
2883         (fake_attribute_handler): Fake handler for attributes we don't
2884         support in Ada.
2885         (def_builtin_1): New function, worker for DEF_BUILTIN.
2886         (install_builtin_functions): New function.
2887         (gnat_install_builtins): Move to the builtins processing section.
2888         Now calling the newly introduced installers.
2889
2890 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
2891
2892         * decl.c (gnat_to_gnu_entity) <object>: Also promote the alignment of
2893         constant objects, but not exceptions.
2894         * trans.c (add_decl_expr): Use gnat_types_compatible_p for type
2895         compatibility test.
2896         * utils.c (create_var_decl_1): Likewise.
2897         * utils2.c (build_binary_op) <MODIFY_EXPR>: Also use the padded view of
2898         the type when copying to padded object and the source is a constructor.
2899
2900 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2901
2902         * decl.c (gnat_to_gnu_entity) <object>: When trying to promote the
2903         alignment, reset it to zero if it would end up not being greater
2904         than that of the type.
2905
2906 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2907
2908         * decl.c (maybe_pad_type): Only generate the XVS parallel type if
2909         the padded type has a variable size.
2910
2911 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2912
2913         * decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Use the return by
2914         target pointer mechanism as soon as the size is not constant.
2915
2916 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2917
2918         * gigi.h (create_var_decl_1): Declare.
2919         (create_var_decl): Turn into a macro invoking create_var_decl_1.
2920         (create_true_var_decl): Likewise.
2921         * utils.c (create_var_decl_1): Make global and reorder parameters.
2922         (create_var_decl): Delete.
2923         (create_true_var_decl): Likewise.
2924
2925 2008-04-17  Eric Botcazou  <ebotcazou@adacore.com>
2926
2927         * decl.c (gnat_to_gnu_entity) <object>: Promote the alignment of
2928         objects by default.
2929         * fe.h (Debug_Flag_Dot_A): Delete.
2930         * debug.adb (-gnatd.a): Update documentation.
2931
2932 2008-04-17  Samuel Tardieu  <sam@rfc1149.net>
2933
2934         * g-socket.ads, g-socket.adb (Get_Address): Make Stream a
2935         "not null" parameter.
2936
2937 2008-04-17  Samuel Tardieu  <sam@rfc1149.net>
2938
2939         * g-socket.adb: Add a message "IPv6 not supported" to the
2940         Socket_Error exception.
2941
2942 2008-04-16  Samuel Tardieu  <sam@rfc1149.net>
2943
2944         PR ada/29015
2945         * sem_ch12.adb (Instantiate_Type): Check whether the full view of
2946         the type is known instead of the underlying type.
2947
2948 2008-04-15  Ed Schonberg  <schonberg@adacore.com>
2949
2950         PR ada/22387
2951         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
2952         procedure for a derived type retrieve the discriminant values from
2953         the parent using the corresponding discriminant.
2954
2955 2008-04-15  Samuel Tardieu  <sam@rfc1149.net>
2956             Gary Dismukes  <dismukes@adacore.com>
2957
2958         PR ada/28733
2959         * sem_ch8.adb (Analyze_Use_Package): Do not allow "use" of something
2960         which is not an entity (and hence not a package).
2961         (End_Use_Package): Ditto.
2962
2963 2008-04-15  Ed Schonberg  <schonberg@adacore.com>
2964
2965         PR ada/16086
2966         * sem_ch12.adb (Analyze_Formal_Subprogram): The default can be any
2967         protected operation that matches the signature, not only an entry, a
2968         regular subprogram or a literal.
2969
2970 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
2971
2972         * ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3.
2973         * decl.c (gnat_to_gnu_entity) <object>: Call maybe_pad_type only
2974         if a size or alignment is specified.  Do not take into account
2975         alignment promotions for the computation of the object's size.
2976         <type>: Call maybe_pad_type only if a size or alignment is specified.
2977         (maybe_pad_type): Really reuse the RM_Size of the original type if
2978         requested.
2979         * trans.c (Attribute_to_gnu): Fix a couple of nits.
2980         * utils2.c (build_binary_op) <MODIFY_EXPR>: Merge related conditional
2981         statements.  Use the padded view of the type when copying between
2982         padded objects of the same underlying type.
2983
2984 2008-04-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2985
2986         * vms_data.ads: Fix typo in constant.
2987         * gen-soccon.c: Fix typo in error string.
2988         * gnat_rm.texi (Pragma Optimize_Alignment, Pragma Postcondition):
2989         Fix typos.
2990         * a-calcon.ads, a-calend-vms.adb, a-calend.adb, a-crdlli.ads,
2991         bcheck.adb, checks.adb, einfo.ads, errout.adb, erroutc.adb,
2992         erroutc.ads, exp_attr.adb, exp_ch11.adb, exp_ch2.adb,
2993         exp_ch5.adb, exp_ch9.adb, exp_ch9.ads, exp_pakd.adb,
2994         exp_util.adb, fmap.adb, g-soccon-linux-mips.ads,
2995         g-soccon-rtems.ads, g-timsta.adb, g-timsta.ads, lib-writ.ads,
2996         mlib-tgt-specific-linux.adb, mlib-tgt-specific-tru64.adb,
2997         s-interr-vxworks.adb, s-interr.adb, s-osinte-lynxos.ads,
2998         s-rident.ads, s-taprop-solaris.adb, s-tassta.adb, s-win32.ads,
2999         sem_aggr.adb, sem_attr.ads, sem_ch10.adb, sem_ch13.ads,
3000         sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
3001         sem_prag.ads, sem_res.adb, sem_util.adb, sem_util.ads,
3002         sinfo.ads: Fix typos in comments.
3003
3004 2008-04-14  Robert Dewar  <dewar@adacore.com>
3005
3006         * sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error
3007         to every non-object and change error message.
3008
3009 2008-04-14  Robert Dewar  <dewar@adacore.com>
3010
3011         * sem_util.ads, sem_util.adb (In_Subprogram): Remove.
3012         * sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram
3013         directly.
3014
3015 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
3016
3017         PR ada/18680
3018         * sem_prag.adb (Analyze_Pragma, Linker_Section case): Refuse to
3019         apply pragma Linker_Section on type.
3020
3021 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
3022
3023         PR ada/16098
3024         * sem_prag.adb (Error_Pragma_Ref): New.
3025         (Process_Convention): Specialized message for non-local
3026         subprogram renaming. Detect the problem in homonyms as well.
3027
3028 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
3029
3030         PR ada/15915
3031         * sem_util.ads, sem_util.adb (Denotes_Variable): New function.
3032         * sem_ch12.adb (Instantiate_Object): Use it.
3033         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that
3034         storage pool denotes a variable as per RM 13.11(15).
3035
3036 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
3037
3038         * sem_util.ads, sem_util.adb (In_Subprogram): New function.
3039         * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it.
3040
3041 2008-04-14  Rolf Ebert  <rolf.ebert.gcc@gmx.de>
3042
3043         PR ada/20822
3044         * xgnatugn.adb (Put_Line): New procedure, ensuring Unix
3045         line endings even on non-Unix platforms.
3046
3047 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
3048
3049         PR ada/35050
3050         * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the
3051         renaming information.
3052
3053 2008-04-13  Samuel Tardieu  <sam@rfc1149.net> 
3054
3055         PR ada/17985
3056         * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of
3057         itself.
3058
3059 2008-04-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3060
3061         * sfn_scan.adb, sfn_scan.ads, sinfo.ads,
3062         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads,
3063         snames.ads, sprint.adb, stand.ads, stringt.ads,
3064         styleg.adb, styleg.ads, stylesw.adb, stylesw.ads,
3065         switch.ads, sysdep.c, table.adb, table.ads,
3066         targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c,
3067         trans.c, tree_io.adb, treepr.adb, types.adb, types.ads,
3068         uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads,
3069         vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb,
3070         widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb,
3071         xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb:
3072         Fix comment typos.
3073
3074         * sem_ch10.adb, sem_ch10.ads,
3075         sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads,
3076         sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
3077         sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
3078         sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb,
3079         sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads,
3080         sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads,
3081         sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
3082         sem_warn.ads: Fix comment typos.
3083
3084         * s-secsta.adb, s-sequio.ads, s-shasto.ads,
3085         s-soflin.ads, s-stalib.ads, s-stausa.adb,
3086         s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads,
3087         s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
3088         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb,
3089         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
3090         s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb,
3091         s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads,
3092         s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads,
3093         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
3094         s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb,
3095         s-tposen.ads, s-traceb-hpux.adb, s-traces.ads,
3096         s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads,
3097         s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb,
3098         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads,
3099         scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb,
3100         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
3101         sem_cat.adb, sem_cat.ads: Fix comment typos.
3102
3103 2008-04-12  Joel Sherrill  <joel@oarcorp.com>
3104
3105         PR ada/35825
3106         * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported.
3107
3108 2008-04-12  Arnaud Charlet  <charlet@adacore.com>
3109
3110         * s-linux-hppa.ads: Fix syntax errors.
3111
3112 2008-04-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3113
3114         * gnat_ugn.texi: Fix typos.
3115         * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb,
3116         restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads,
3117         s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads,
3118         s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads,
3119         s-fatllf.ads, s-fatsfl.ads, s-filofl.ads,
3120         s-finimp.adb, s-finroo.ads, s-fishfl.ads,
3121         s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads,
3122         s-hibaen.ads, s-htable.ads, s-imgcha.adb,
3123         s-imgenu.ads, s-imgint.adb, s-imgrea.adb,
3124         s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb,
3125         s-interr-vxworks.adb, s-interr.adb, s-interr.ads,
3126         s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb,
3127         s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads,
3128         s-osinte-darwin.ads, s-osinte-freebsd.ads,
3129         s-osinte-hpux.ads, s-osinte-lynxos-3.adb,
3130         s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
3131         s-osinte-rtems.ads, s-osinte-solaris-posix.ads,
3132         s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads,
3133         s-parame-hpux.ads, s-parame-vms-alpha.ads,
3134         s-parame-vms-ia64.ads, s-parame-vms-restrict.ads,
3135         s-parame-vxworks.ads, s-parame.ads, s-parint.adb,
3136         s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads,
3137         s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads,
3138         s-rident.ads: Fix comment typos.
3139
3140 2008-04-09  Samuel Tardieu  <sam@rfc1149.net>
3141
3142         PR ada/28305
3143         * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore
3144         environment if generic instance is a top-level one.
3145
3146 2008-04-09  Doug Rupp  <rupp@adacore.com>
3147
3148         * decl.c (validate_size): Set minimum size for fat pointers same as
3149         access types. Code clean ups.
3150
3151         * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise
3152         (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS
3153
3154         * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant
3155
3156         * s-crtl.ads (malloc32) New function, alias for malloc
3157         (realloc32) New function, alias for realloc
3158
3159         * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS
3160
3161         * utils2.c (build_call_alloc_dealloc): Return call to short malloc if
3162         allocator size is 32 and default pointer size is 64.
3163         (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of
3164         lhs type if smaller, whatever the modes.
3165
3166         * gigi.h (malloc32_decl): New macro definition
3167
3168         * utils.c (init_gigi_decls): New malloc32_decl
3169         Various code clean ups.
3170
3171         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
3172         Task_Address vice System.Address.
3173
3174         * s-taspri-vms.ads: Import System.Aux_DEC
3175         (Task_Address): New subtype of System.Aux_DEC.Short_Address
3176         (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address
3177
3178         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
3179         Task_Address vice System.Address.
3180
3181         * s-inmaop-vms.adb: Import System.Task_Primitives
3182         (To_Address): Unchecked convert to Task_Address vice System.Address
3183
3184         * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay
3185         expires now.
3186         (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address
3187         (To_Address) Unchecked convert to Task_Address vice System.Address
3188
3189         * s-tpopde-vms.adb: Remove unnecessary warning pragmas
3190
3191         * g-socthi-vms.ads: Add 32bit size clauses on socket access types.
3192
3193 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
3194
3195         * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
3196         (fdesc_type_node): Define.
3197         (null_fdesc_node): Likewise.
3198         * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
3199         uses descriptors for vtables and the type comes from a dispatch table,
3200         return the descriptor type.
3201         * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
3202         uses descriptors for vtables and the type comes from a dispatch table,
3203         build a descriptor in the static case and copy the existing one in the
3204         non-static case.
3205         (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
3206         the type is a pointer-to-subprogram coming from a dispatch table,
3207         return the null descriptor.
3208         <N_Unchecked_Type_Conversion>: If the target uses descriptors for
3209         vtables, the source type is the descriptor type and the target type
3210         is a pointer type, first build the pointer.
3211         * utils.c (init_gigi_decls): If the target uses descriptors for vtables
3212         build the descriptor type and the null descriptor.
3213
3214 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
3215
3216         * decl.c (prepend_attributes): Fix typo.
3217         * trans.c (Pragma_to_gnu): Likewise.
3218         * utils.c (gnat_genericize): Likewise.
3219
3220 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
3221             Richard Kenner  <kenner@adacore.com>
3222
3223         * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
3224         * decl.c (gnat_to_gnu_entity): Adjust for above change.
3225         <E_Record_Type>: Try to get a better form of the component for
3226         packing, even if it has an integral mode.
3227         <E_Record_Subtype>: Likewise.
3228         * trans.c (gnat_to_gnu): Do not require BLKmode for the special
3229         exception suppressing the final conversion between record types.
3230
3231 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
3232
3233         * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing
3234         alignment for space, promote the alignment of non-scalar variables with
3235         no size and alignment.
3236         * gigi.h (gnat_types_compatible_p): Declare.
3237         * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
3238         * trans.c (gnat_to_gnu): Revert revision 129339 change.  Minor cleanup.
3239         * utils.c (gnat_types_compatible_p) : New predicate.
3240         (convert): Use it throughout to test for cases where a mere view
3241         conversion is sufficient.
3242         * utils2.c (build_binary_op): Minor tweaks.
3243         (build_unary_op): Likewise.
3244
3245 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
3246
3247         * decl.c (adjust_packed): Expand comment.
3248
3249 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
3250
3251         * s-tasuti.ads: Use Task_Address instead of System.Address.
3252
3253         * makeutl.adb (Path_Or_File_Name): New function
3254
3255         * nlists.ads, itypes.ads: Update comments.
3256
3257         * s-crtl.ads (malloc32, realloc32): New functions.
3258
3259         * s-auxdec.ads (Short_Address_Size): New constant.
3260
3261         * a-taside.adb, s-tasdeb.adb: Use Task_Address.
3262
3263         * s-ststop.ads, s-ststop.adb: New file.
3264
3265         * exp_tss.ads, s-taprop-lynxos.adb: Update comments.
3266         Minor reformatting.
3267
3268 2008-04-08  Pascal Obry  <obry@adacore.com>
3269
3270         * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
3271         (Stop_Bits_Number): New type.
3272         (Parity_Check): Likewise.
3273         (Set): Add parameter to set the number of stop bits and
3274         the parity. Parameter timeout is now a duration instead
3275         of a plain integer.
3276
3277         * g-sercom-linux.adb:
3278         Implement the stop bits and parity support for GNU/Linux.
3279         Fix handling of timeout, it must be given in tenth of seconds.
3280         
3281         * g-sercom-mingw.adb:
3282         Implement the stop bits and parity support for Windows.
3283         Use new s-win32.ads unit instead of declaring Win32 services
3284         directly into this body.
3285         Update handling of timeout as now a duration.
3286
3287         * s-win32.ads, s-winext.ads: New files.
3288
3289 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
3290             Arnaud Charlet  <charlet@adacore.com>
3291
3292         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.
3293
3294         s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
3295         s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.
3296
3297         * s-osinte-lynxos-3.ads,
3298         (Alternate_Stack): Remove when not needed. Simplify declaration
3299         otherwise.
3300         (Alternate_Stack_Size): New constant.
3301
3302         s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
3303         'Unrestricted_Access.
3304
3305         * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
3306         s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
3307         s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
3308         s-osinte-solaris.ads, s-osinte-vms.ads
3309         (SA_ONSTACK): New constant.
3310         (stack_t): New record type.
3311         (sigaltstack): New imported function.
3312         (Alternate_Stack): New imported variable.
3313         (Alternate_Stack_Size): New constant.
3314
3315         * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.
3316
3317         * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
3318         s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
3319         s-taspri-vms.ads (Task_Address): New subtype of System.Address
3320         (Task_Address_Size): New constant size of System.Address
3321         (Alternate_Stack_Size): New constant.
3322
3323         * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
3324         (Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
3325         Establish the alternate stack if the platform makes use of n alternate
3326         signal stack for stack overflows.
3327         (Create_Task): Take into account the alternate stack in the stack size.
3328         (Initialize): Save the address of the alternate stack into the ATCB for
3329         the environment task.
3330         (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).
3331
3332         * s-parame.adb (Minimum_Stack_Size): Increase value to 16K
3333
3334         * system-linux-x86.ads: (Stack_Check_Probes): Set to True.
3335
3336         * s-intman-posix.adb: 
3337         (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
3338         alternate signal stack for stack overflows.
3339
3340         * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
3341         x86-64, adjust the saved value of the stack pointer if the signal was
3342         raised by a stack checking probe.
3343         (HP-UX section): Use global __gnat_alternate_stack as signal handler
3344         stack and only for SIGSEGV.
3345         (Linux section): Likewise on x86 and x86-64.
3346         [VxWorks section]
3347         (__gnat_map_signal): Now static.
3348         (__gnat_error_handler): Not static any more.
3349         (__gnat_adjust_context_for_raise): New function. Signal context
3350         adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
3351         propagation circuitry.
3352         (__gnat_error_handler): Second argument of a sigaction handler is a
3353         pointer, not an int, and is unused.
3354         Adjust signal context before mapping to exception.
3355         Install signal handlers for LynxOS case.
3356
3357         * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
3358         (Task_Id): Set size to Task_Address_Size
3359         (To_Task_id): Unchecked convert from Task_Address vice System.Address
3360         (To_Address): Unchecked convert to Task_Address vice System.Address
3361
3362         * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
3363         address into the ATCB if the platform makes use of an alternate signal
3364         stack for stack overflows.
3365         (Free_Task): Add call to Finalize_Attributes_Link.
3366         Add argument Relative_Deadline to pass the value specified for
3367         the task. This is not yet used for any target.
3368
3369         * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
3370         the value specified for the task.
3371
3372 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
3373
3374         (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
3375         (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
3376         s-vxwext-rtp.adb): New files.
3377
3378         * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
3379         Minor updates to accomodate changes above.
3380
3381 2008-04-08  Pascal Obry  <obry@adacore.com>
3382
3383         * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
3384         s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
3385         Use new s-win32.ads unit instead of declaration
3386         from s-osinte-mingw.ads.
3387         
3388         * s-osinte-mingw.ads:
3389         Move all non tasking based interface to s-win32.ads.
3390         
3391         * s-osprim-mingw.adb:
3392         Remove duplicated declarations and use s-win32.ads
3393         unit instead.
3394
3395 2008-04-08  Vincent Celier  <celier@adacore.com>
3396             Arnaud Charlet  <charlet@adacore.com>
3397
3398         * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
3399         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
3400         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
3401         mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
3402         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...
3403
3404         * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
3405         mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
3406         mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
3407         mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
3408         mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
3409         mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
3410         mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
3411         mlib-tgt-specific-mingw.adb: New names.
3412
3413         * Makefile.in: 
3414         On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
3415         Get rid of gnatbl.
3416         (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
3417         Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
3418         Minor updates for VMS
3419
3420         * gnatbl.c: Removed.
3421
3422 2008-04-08  Thomas Quinot  <quinot@adacore.com>
3423
3424         * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
3425         g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
3426         gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
3427         a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
3428         s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
3429         ASCII.NUL throughout.
3430
3431 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
3432             Matthew Heaney  <heaney@adacore.com>
3433
3434         * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
3435         renaming.
3436
3437         * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,  
3438         a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
3439         to convention for non-RM specs.
3440         Add descriptive header, and documented each operation
3441         document each operation
3442
3443 2008-04-08  Robert Dewar  <dewar@adacore.com>
3444             Bob Duff  <duff@adacore.com>
3445             Gary Dismukes  <dismukes@adacore.com>
3446             Ed Schonberg  <schonberg@adacore.com>
3447
3448         * alloc.ads: Add entries for Obsolescent_Warnings table
3449
3450         * einfo.ads, einfo.adb: Minor reformatting.
3451         (Is_Discriminal): New subprogram.
3452         (Is_Prival): New subprogram.
3453         (Is_Protected_Component): New subprogram.
3454         (Is_Protected_Private): Removed.
3455         (Object_Ref, Set_Object_Ref): Removed.
3456         (Prival, Set_Prival): Change assertion.
3457         (Privals_Chain, Set_Privals_Chain): Removed.
3458         (Prival_Link, Set_Prival_Link): New subprogram.
3459         (Protected_Operation, Set_Protected_Operation): Removed.
3460         (Protection_Object, Set_Protection_Object): New subprogram.
3461         (Write_Field17_Name): Remove case for Object_Ref.
3462         (Write_Field20_Name): Add case for Prival_Link.
3463         (Write_Field22_Name): Remove case for Protected_Operation,
3464         Privals_Chain.
3465         Add case for Protection_Object.
3466         (Can_Use_Internal_Rep): Make this into a [base type only] attribute,
3467         so clients
3468         (Overlays_Constant): New flag
3469         (Is_Constant_Object): New predicate
3470         (Is_Standard_Character_Type): New predicate
3471         (Optimize_Alignment_Space): New flag
3472         (Optimize_Alignment_Time): New flag
3473         (Has_Postconditions): New flag
3474         (Obsolescent_Warrning): Field removed
3475         (Spec_PPC_List): New field
3476         (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
3477         subprograms to get and set the relative deadline associated to a task.
3478
3479         * exp_attr.adb (May_Be_External_Call): Account for the case where the
3480         Access attribute is part of a named parameter association.
3481         (Expand_Access_To_Protected_Op): Test for the attribute occurring
3482         within an init proc and use that directly as the scope rather than
3483         traversing up to the protected operation's enclosing scope. Only apply
3484         assertion on Is_Open_Scopes in the case the scope traversal is done.
3485         For the init proc case use the address of the first formal (_init) as
3486         the protected object reference.
3487         Implement Invalid_Value attribute
3488         (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
3489         contents of the dispatch table there is no need to duplicate the
3490         itypes associated with record types (i.e. the implicit full view
3491         of private types).
3492         Implement Enum_Val attribute
3493         (Expand_N_Attribute_Reference, case Old): Properly handle appearence
3494         within _Postconditions procedure
3495         (Expand_N_Attribute_Reference, case Result): Implement new attribute
3496
3497         * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
3498         a return statement calls a function that is not available in
3499         configurable runtime.
3500         (Analyze_If_Statement): don't optimize simple True/False cases in -O0
3501         (Expand_Non_Function_Return): Generate call to _Postconditions proc
3502         (Expand_Simple_Function_Return): Ditto
3503
3504         * frontend.adb: Add call to Sem_Aux.Initialize
3505
3506         * sem_aux.ads, sem_aux.adb: New file.
3507
3508         * par-prag.adb: Add entries for pragmas Precondition/Postcondition
3509         Add new Pragma_Relative_Deadline.
3510         Add support for pragmas Check and Check_Policy
3511
3512         * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
3513         (Check_Stream_Attribute): Add missing check (not allowed in CPP types)
3514         (Analyze_Attribute): In case of attributes 'Alignment and 'size add
3515         missing check because they are not allowed in CPP tagged types.
3516         Add Sure parameter to Note_Possible_Modification calls
3517         Add implementation of Invalid_Value attribute
3518         Implement new attribute Has_Tagged_Values
3519         Implement Enum_Val attribute
3520         (Analyze_Attribute, case Range): Set Name_Req True for prefix of
3521         generated attributes.
3522         (Analyze_Attribute, case Result): If prefix of the attribute is
3523         overloaded, it always resolves to the enclosing function.
3524         (Analyze_Attribute, case Result): Properly deal with analysis when
3525         Postconditions are not active.
3526         (Resolve_Attribute, case Result): Properly deal with appearence during
3527         preanalysis in spec.
3528         Add processing for attribute Result
3529
3530         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
3531         for operators.
3532         (Analyze_Subprogram_Body): Install private_with_clauses when the body
3533         acts as a spec.
3534         (Check_Inline_Pragma): recognize an inline pragma that appears within
3535         the subprogram body to which it applies.
3536         (Analyze_Function_Return): Check that type of the expression of a return
3537         statement in a function with a class-wide result is not declared at a
3538         deeper level than the function.
3539         (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
3540         (Verify_Overriding_Indicator): Handle properly subprogram bodies for
3541         user- defined operators.
3542         (Install_Formals): Moved to spec to allow use from Sem_Prag for
3543         analysis of precondition/postcondition pragmas.
3544         (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
3545         Last_Formal, along with lots of comments on what this is about
3546         (Analyze_Subprogram_Body): Fix case where we move entities from the
3547         spec to the body when there are no body entities (now possible with
3548         precondition and postcondition pragmas).
3549         (Process_PPCs): New procedure
3550         (Analyze_Subprogram_Body): Add call to Process_PPCs
3551
3552         * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
3553         clause.
3554         (Pop_Scope): Restore Check_Policy_List on scope exit
3555         (Push_Scope): Save Check_Policy_List on scope entry
3556         Change name In_Default_Expression      => In_Spec_Expression
3557         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
3558         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
3559         (Analyze_Object_Renaming): Allow 'Reference as object
3560         (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
3561         (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
3562         of restriction identifier.
3563         Add Sure parameter to Note_Possible_Modication calls
3564
3565         * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
3566         Don't check for primitive operations when calling Rep_Item_Too_Late.
3567         (Process_Import_Or_Interface): Do not place flag on formal
3568         subprograms.
3569         (Analyze_Pragma, case Export): If the entity is a deferred constant,
3570         propagate information to full view, which is the one elaborated by the
3571         back-end.
3572         (Make_Inline): the pragma is effective if it applies to an internally
3573         generated subprogram declaration for a body that carries the pragma.
3574         (Analyze_Pragma, case Optimize_Alignment): Set new flag
3575         Optimize_Alignment_Local.
3576         (Analyze_PPC_In_Decl_Part): New procedure
3577         (Get_Pragma_Arg): Moved to outer level
3578         (Check_Precondition_Postcondition): Change to allow new visibility
3579         rules for package spec
3580         (Analyze_Pragma, case Check_Policy): Change placement rules to be
3581         same as pragma Suppress/Unsuppress.
3582         Change name In_Default_Expression      => In_Spec_Expression
3583         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
3584         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
3585         (Check_Precondition_Postcondition): Do proper visibility preanalysis
3586         for the case of these pragmas appearing in the spec.
3587         (Check_Enabled): New function
3588         (Initialize): New procedure
3589         (Tree_Read): New procedure
3590         (Tree_Write): New procedure
3591         (Check_Precondition_Postcondition): New procedure
3592         Implement pragmas Check and Check_Policy
3593         Merge Assert processing with Check
3594
3595         * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
3596         New warning flag -gnatw.e
3597
3598         * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
3599         returning whether a task (or main procedure) has a pragma
3600         Relative_Deadline.
3601         (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
3602         (or main procedure) has a pragma Relative_Deadline.
3603         Add Next_Pragma field to N_Pragma node
3604         (PPC_Enabled): New flag
3605         (Next_Pragma): Now used for Pre/Postcondition processing
3606
3607         * snames.h, snames.ads, snames.adb: New standard name
3608         Inherit_Source_Path
3609         Add entry for 'Invalid_Value attribute
3610         Add entry for new attribute Has_Tagged_Values
3611         Add entry for Enum_Val attribute
3612         Add new standard names Aggregate, Configuration and Library.
3613         Add _Postconditions
3614         Add _Result
3615         Add Pragma_Precondition
3616         Add Pragma_Postcondition
3617         Add Attribute_Result
3618         New standard name Archive_Builder_Append_Option
3619         (Preset_Names): Add _relative_deadline and relative_deadline definitions
3620         There was also a missing non_preemptive_within_priorities.
3621         (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
3622         Relative_Deadline.
3623         Add support for pragmas Check and Check_Policy
3624
3625         * tree_gen.adb: Call Sem_Aux.Tree_Write
3626
3627         * tree_in.adb: Call Sem_Aux.Tree_Read
3628
3629         * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
3630         sequence
3631
3632         * exp_intr.adb (Expand_Source_Info): New Build_Location calling
3633         sequence
3634
3635         * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
3636         (Expand_N_Pragma): Call the appropriate procedure for expanding pragma
3637         Relative_Deadline.
3638         (Expand_Pragma_Check): New procedure
3639
3640         * sinput.ads, sinput.adb (Build_Location_String): Now appends to name
3641         buffer.
3642
3643         * sinfo.adb (PPC_Enabled): New flag
3644
3645 2008-04-08  Robert Dewar  <dewar@adacore.com>
3646             Gary Dismukes  <dismukes@adacore.com>
3647             Javier Miranda  <miranda@adacore.com>
3648             Ed Schonberg  <schonberg@adacore.com>
3649
3650         * fe.h: Remove global Optimize_Alignment flag, no longer used
3651
3652         * layout.adb: Test Optimize_Alignment flags rather than global switch
3653
3654         * lib.ads, lib.adb: New OA_Setting field in library record
3655
3656         * lib-load.adb: New OA_Setting field in library record
3657
3658         * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
3659         units mentioned in limited_with_ clauses in the ali file, with an
3660         'Y' marker.
3661         New Ox fields in U line
3662
3663         * opt.adb: New flag Optimize_Alignment_Local
3664         (Check_Policy_List[_Config]): New flags
3665
3666         * opt.ads (Invalid_Value_Used): New flag
3667         New switch Optimize_Alignment_Local
3668         (Warn_On_Parameter_Order): New flag
3669         (Check_Policy_List[_Config]): New flags
3670
3671         * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
3672         limited_with clauses.
3673         New data structures for Optimize_Alignment
3674
3675         * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
3676         New procedure
3677         (Check_Consistent_Optimize_Alignment): Rework for new structure
3678         (Check_Consistent_Restrictions): Fix incorrect error message
3679
3680         sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
3681         created class-wide type (to the Parent field of the specific type).
3682         (Install_Siblings): Handle properly private_with_clauses on subprogram
3683         bodies and on generic units.
3684         (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
3685         illegal limited_with_clause that names a non-existent package.
3686         (Check_Body_Required): Determine whether a unit named a limited_with
3687         clause needs a body.
3688         (Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
3689         Capture Optimize_Alignment settings to set new OA_Setting field in
3690         library record.
3691         (Build_Limited_Views): Include task and protected type declarations.
3692
3693         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
3694         case of a possible constant redeclaration where the current object is
3695         an entry index constant.
3696         (Analyze_Object_Declaration): Generate an error in case of CPP
3697         class-wide object initialization.
3698         (Analyze_Object_Declaration): Add extra information on warnings for
3699         declaration of unconstrained objects.
3700         (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
3701         conflicts with the setting of Stored_Constraint in the case where the
3702         access type entity has already been created as an E_Incomplete_Type due
3703         to a limited with clause.
3704         Use new Is_Standard_Character_Type predicate
3705         (Analyze_Object_Declaration): Apply access_constant check only after
3706         expression has been resolved, given that it may be overloaded with
3707         several access types.
3708         (Constant_Redeclaration): Additional legality checks for deferred
3709         constant declarations tha involve anonymous access types and/or null
3710         exclusion indicators.
3711         (Analyze_Type_Declaration): Set Optimize_Alignment flags
3712         (Analyze_Subtype_Declaration): Ditto
3713         (Analyze_Object_Declaration): Ditto
3714         (Analyze_Object_Declaration): Don't count tasks in generics
3715         Change name In_Default_Expression      => In_Spec_Expression
3716         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
3717         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
3718         (Process_Discriminants): Additional check for illegal use of default
3719         expressions in access discriminant specifications in a type that is not
3720         explicitly limited.
3721         (Check_Abstract_Overriding): If an inherited function dispaches on an
3722         access result, it must be overridden, even if the type is a null
3723         extension.
3724         (Derive_Subprogram): The formals of the derived subprogram have the
3725         names and defaults of the parent subprogram, even if the type is
3726         obtained from the actual subprogram.
3727         (Derive_Subprogram): In the presence of interfaces, a formal of an
3728         inherited operation has the derived type not only if it descends from
3729         the type of the formal of the parent operation, but also if it
3730         implements it. This is relevant for the renamings created for the
3731         primitive operations of the actual for a formal derived type.
3732         (Is_Progenitor): New predicate, to determine whether the type of a
3733         formal in the parent operation must be replaced by the derived type.
3734
3735         * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
3736         predicate recursive to handle components that have a user-defined
3737         Initialize procedure. Handle controlled derived types whose ancestor
3738         has a user-defined Initialize procedured.
3739         (Note_Possible_Modification): Add Sure parameter, generate warning if
3740         sure modification of constant
3741         Use new Is_Standard_Character_Type predicate
3742         (Find_Parameter_Type): when determining whether a protected operation
3743         implements an interface operation, retrieve the type of the formal from
3744         the entity when the formal is an access parameter or an
3745         anonymous-access-to-subprogram.
3746         Move Copy_Parameter_List to sem_util, for use when building stubbed
3747         subprogram bodies.
3748         (Has_Access_Values): Tagged types now return False
3749         (Within_HSS_Or_If): New procedure
3750         (Set_Optimize_Alignment_Flags): New procedure
3751         Change name In_Default_Expression      => In_Spec_Expression
3752         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
3753         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
3754
3755 2008-04-08  Tristan Gingold  <gingold@adacore.com>
3756
3757         * s-fileio.adb: Name_Error shouldn't be raised for a tempory file.
3758
3759 2008-04-08  Tristan Gingold  <gingold@adacore.com>
3760
3761 PR ada/10768
3762
3763         * cuintp.c: Fix 16 bits issue for AVR.
3764         On AVR, integer is 16 bits, so it can't be used to do math with
3765         Base (=32768).
3766         So use long_integer instead.
3767
3768 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
3769
3770         * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
3771         System.OS_Primitives.
3772         Change type of various constants, parameters and local variables from
3773         Time to representation type OS_Time.
3774         (To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
3775         Remove the declaration of constant Mili_F from several routines. New
3776         body for internal package Conversions_Operations.
3777         (Time_Of): Add default parameters for several formals.
3778
3779         * a-caldel.adb: Minor reformatting
3780
3781         * a-calend.ads, a-calend.adb: New body for internal package
3782         Conversions_Operations.
3783         (Time_Of): Add default parameters for several formals.
3784
3785         * Makefile.rtl: Add a-ststop
3786         Add Ada.Calendar.Conversions to the list of runtime files.
3787         Add g-timsta
3788
3789         * a-calcon.adb, a-calcon.ads: New files.
3790
3791 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
3792             Tristan Gingold  <gingold@adacore.com>
3793
3794         * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
3795         (Install_Restricted_Handlers): New procedure
3796         which is a simplified version of Install_Handlers that does not store
3797         previously installed.
3798
3799         * s-interr-vxworks.adb: Fix ACATS cxc3001
3800         On VxWorks interrupts can't be detached.
3801         (Install_Restricted_Handlers): New procedure.
3802
3803         * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
3804         procedure.
3805
3806 2008-04-08  Olivier Hainque  <hainque@adacore.com>
3807
3808         * s-intman-vxworks.ads, s-intman-vxworks.adb
3809         (Map_And_Raise_Exception): Remove. Was an import of only part of the
3810         required services already implemented elsewhere.
3811         (Notify_Exception): Delete body, import __gnat_error_handler instead.
3812         (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
3813         argument passed to the handler, which we need for ZCX propagation
3814         purposes.
3815
3816 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
3817
3818         * adaint.h, adaint.c (__gnat_current_time_string): New routine.
3819
3820         * g-timsta.adb, g-timsta.ads: New files.
3821
3822 2008-04-08  Robert Dewar  <dewar@adacore.com>
3823
3824         * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
3825         (Raise_Exception): In accordance with AI-446, raise CE for Null_Id
3826         (Raise_Exception_Always): Fix documentation accordingly
3827
3828 2008-04-08  Robert Dewar  <dewar@adacore.com>
3829
3830         * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
3831         Stream_Convert)
3832
3833         * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
3834         FOnly
3835
3836 2008-04-08  Javier Miranda  <miranda@adacore.com>
3837             Robert Dewar  <dewar@adacore.com>
3838             Ed Schonberg  <schonberg@adacore.com>
3839
3840         * a-tags.adb (Register_Interface_Offset): New subprogram.
3841         (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
3842         (To_Predef_Prims_Table_Ptr): Removed.
3843         (Acc_Size): Removed.
3844         (To_Acc_Size): Removed.
3845         (Parent_Size): Modified to the call the subprogram returning the size of
3846         the parent by means of the new TSD component Size_Func.
3847
3848         * a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
3849         (DT_Offset_To_Top_Offset): New constant value that is used to generate
3850         code referencing the Offset_To_Top component of the dispatch table's
3851         prologue.
3852         (Prim_Ptr): New declaration of access to procedure. Used to avoid the
3853         use of 'address to initialize dispatch table slots.
3854         (Size_Func): New component of the TSD. Used by the run-time to call the
3855         size primitive of the tagged type.
3856
3857         * checks.adb (Apply_Access_Check): Avoid check when accessing the
3858         Offset_To_Top component of a dispatch table.
3859         (Null_Exclusion_Static_Checks): If the non-null access type appears in a
3860         deferred constant declaration. do not add a null expression, to prevent
3861         spurious errors when full declaration is analyzed.
3862         (Apply_Discriminant_Check): If both discriminant constraints share a
3863         node which is not static but has no side effects, do not generate a
3864         check for that discriminant.
3865         (Generate_Index_Checks): Set Name_Req to true in call to duplicate
3866         subexpr, since the prefix of an attribute is a name.
3867
3868         * checks.ads: Fix nit in comment.
3869
3870         * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
3871         and body of predefined primitives in case of CPP tagged type
3872         derivations.
3873         (Freeze_Type): Deal properly with no storage pool case
3874         (Make_Predefined_Primitive_Specs): Generate specification of abstract
3875         primitive Deep_Adjust if a nonlimited interface is derived from a
3876         limited interface.
3877         (Build_Dcheck_Functions): Create discriminant-checking functions only
3878         for variants that have some component(s).
3879         (Build_Slice_Assignment): In expanded code for slice assignment, handle
3880         properly the case where the slice bounds extend to the last value of the
3881         underlying representation.
3882         (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
3883         (Is_Variable_Size_Record): An array component has a static size if
3884         index bounds are enumeration literals.
3885
3886         * exp_disp.adb (Make_DT): Use the first subtype to determine whether
3887         an external tag has been specified for the type.
3888         (Building_Static_DT): Add missing support for private types.
3889         (Make_DT): Add declaration of Parent_Typ to ensure consistent access
3890         to the entity associated with the parent of Typ. This is done to
3891         avoid wrong access when the parent is a private type.
3892         (Expand_Interface_Conversion): Improve error message when the
3893         configurable runtime has no support for dynamic interface conversion.
3894         (Expand_Interface_Thunk): Add missing support to interface types in
3895         configurable runtime.
3896         (Expand_Dispatching_Call): remove obsolete code.
3897         (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
3898         ensure that all subtypes and aggregates associated with dispatch
3899         tables have the attribute Is_Dispatch_Table_Entity set to true.
3900         (Register_Primitive): Rename one variable to improve code reading.
3901         Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
3902         of the pointer to the 'size primitive in the TSD.
3903
3904         * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
3905         (RE_Offset_To_Top_Ptr): New entity.
3906         (RE_Register_Interface_Offset): New entity.
3907         (RE_Set_Dynamic_Offset_To_Top): New entity.
3908         (RE_Set_Offset_To_Top): Removed entity.
3909         (RE_Prim_Ptr): New entity
3910         (RE_Size_Func): New entity
3911         (RE_Size_Ptr): New entity
3912         (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
3913         (Ada_Dispatching_Child): Define this new subrange.
3914         (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
3915          RE_Time_Span, and RE_Time_Span_Zero).
3916         (RE_Unit_Table): Add new required run-time calls
3917
3918         * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
3919         children.
3920
3921         * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
3922         (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
3923          initializes the Offset_To_Top component of a dispatch table.
3924         (Build_Predef_Prims): Removed.
3925         (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
3926          its actual code.
3927         (Build_Set_Size_Function): New subprogram.
3928
3929         * exp_ch13.adb: Do not generate storage variable for storage_size zero
3930         (Expand): Handle setting/restoring flag Inside_Freezing_Actions
3931
3932 2008-04-08  Robert Dewar  <dewar@adacore.com>
3933
3934         * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
3935         computing Fore when Exp > 0
3936
3937 2008-04-08  Robert Dewar  <dewar@adacore.com>
3938
3939         * back_end.adb: Remove Big_String_Ptr declarations (now in Types)
3940
3941         * errout.adb: Remove Big_String_Ptr declarations (now in Types)
3942         Change name Is_Style_Msg to Is_Style_Or_Info_Msg
3943
3944         * fmap.adb: Remove Big_String declarations (now in Types)
3945         (No_Mapping_File): New Boolean global variable
3946         (Initialize): When mapping file cannot be read, set No_Mapping_File to
3947         False.
3948         (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
3949         tables were empty before adding entries, open the mapping file
3950         with Truncate = True, instead of delete/re-create.
3951
3952         * fname-sf.adb: Remove Big_String declarations (now in Types)
3953
3954         * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
3955         s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
3956         big pointer types
3957
3958         * table.ads: Add for Table_Ptr'Storage_Size use 0
3959
3960         * types.ads: Add Big_String declarations
3961         Add Size_Clause of zero for big pointer types
3962
3963 2008-04-08  Vincent Celier  <celier@adacore.com>
3964
3965         * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
3966         (Usage): Add line for switch --subdirs=
3967         Add new switch -eL, to follow symbolic links when processing project
3968         files.
3969
3970         * gnatcmd.adb: Process switches -eL and --subdirs=
3971         (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
3972         Program_Name to get proper tool names when AAMP_On_Target is set.
3973         (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
3974         AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
3975         Osint.Program_Name).
3976
3977         * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
3978         (Usage): Add lines for switches -eL and --subdirs=
3979
3980         * makeusg.adb: Add line for switch --subdirs=
3981
3982         * prj.ads: 
3983         (Source_Data): New Boolean component Compiled, defaulted to True
3984         (Empty_File_Name: New global variable in private part, initialized in
3985         procedure Initialize.
3986         (Subdirs_Option): New constant string
3987         (Subdirs): New String_Ptr global variable
3988         (Language_Config): New component Include_Compatible_Languages
3989         (Project_Qualifier): New type for project qualifiers
3990         (Project_Data): New component Qualifier
3991         (Project_Configuration): New component Archive_Builder_Append_Option
3992
3993         * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
3994         another imported project indicate the name of this imported project.
3995         (Check_File): When a unit is in two project files, indicate the project
3996         names and the paths of the source files for each project.
3997         (Add_Source): Set Compiled to False if compiler driver is empty. Only
3998         set object, dependency and switches file names if Compiled is True.
3999         (Process_Compiler): Allow the empty string for value of attribute Driver
4000         (Get_Directories): When Subdirs is not null and Object_Dir is not
4001          specified, locate and create if necessary the actual object dir.
4002         (Locate_Directory): When Subdirs is not empty and Create is not the
4003         empty string, locate and create if necessary the actual directory
4004         as a subdirectory of directory Name.
4005         (Check_Library_Attributes.Check_Library): Allow a project where the only
4006         "sources" are header files of file based languages to be imported by
4007         library projects, in multi-language mode (gprbuild).
4008         (Check_Library_Attributes.Check_Library): In multi-language mode
4009         (gprbuild), allow a library project to import a project with no
4010         sources, even when this is not declared explicitly.
4011         (Check_If_Externally_Built): A virtual project extending an externally
4012         built project is also externally built.
4013         (Check_Library_Attributes): For a virtual project extending a library
4014         project, inherit the library directory.
4015         (Process_Project_Level_Array_Attributes): Process new attribute
4016         Inherit_Source_Path.
4017         For projects with specified qualifiers "standard", "library" or
4018         "abstract", check that the project conforms to the qualifier.
4019         (Process_Project_Level_Simple_Attributes): Process new attribute
4020          Archive_Builder_Append_Option.
4021
4022         * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
4023         (Normalize_Compiler_Switches): Only keep compiler switches that are
4024         passed to gnat1 by the gcc driver and that are stored in the ALI file
4025         by gnat1.
4026         Do not take into account switc -save-temps
4027
4028         * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
4029         gprmake is called with -eL.
4030         (Scan_Arg): Recognize switch -eL
4031         (Usage): Add line for switch -eL
4032
4033         * prj.adb (Initialize): Initialize Empty_File_Name
4034         (Project_Empty): New component Qualifier
4035
4036         * prj-attr.ads, prj-attr.adb: New project level attribute
4037         Inherit_Source_Path.
4038         New project level attribute Archive_Builder_Append_Option
4039
4040         * prj-dect.adb: Replace System.Strings by GNAT.Strings.
4041
4042         * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
4043         <prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for
4044         upward compatibility.
4045
4046         * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
4047         each Trying ..." on different lines.
4048         (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
4049         is "configuration" when not in configuration. Fail when in configuration
4050         when a specified qualifier is other than "configuration".
4051
4052         * prj-proc.adb (Process_Declarative_Items): Link new elements of copied
4053         full associative array together.
4054         (Recursive_Process): Put the project qualifier in the project data
4055         
4056         * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
4057         (Set_Project_Qualifier_Of): New procedure
4058
4059 2008-04-08  Robert Dewar  <dewar@adacore.com>
4060
4061         * errout.ads: Update comments for new handling of info: messages
4062
4063         * erroutc.adb (Matches): New procedure
4064         (Warning_Specifically_Suppressed): Modified to handle multiple * chars
4065         (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
4066          info messages as well as style messages.
4067
4068         * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry
4069
4070         * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
4071         subprograms.
4072         (Check_A_Call): Special "info: " warnings now have ? in the text
4073         (Elab_Warning): Use info message in static case
4074
4075 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
4076
4077         * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
4078         whether an array aggregate with static bounds and scalar components
4079         should be expanded into a static constant.
4080
4081 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
4082             Ed Schonberg  <schonberg@adacore.com>
4083             Robert Dewar  <dewar@adacore.com>
4084
4085         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
4086         Has_Stream_Attribute_ Definition when checking for available stream
4087         attributes on parameters of a limited type in Ada 2005. Necessary for
4088         proper recognition of visible stream attribute clauses.
4089         (Has_Stream_Attribute_Definition): If the type is derived from a
4090         private type, then use the derived type's underlying type for checking
4091         whether it has stream attributes.
4092         (Validate_Object_Declaration): The check for a user-defined Initialize
4093         procedure applies also to types with controlled components or a
4094         controlled ancestor.
4095         Reject an object declaration in a preelaborated unit if the type is a
4096         controlled type with an overriding Initialize procedure.
4097         (Validate_Remote_Access_To_Class_Wide_Type): Return without further
4098         checking when the parent of a dereference is a selected component and
4099         the name has not been analyzed.
4100
4101         * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
4102         prefixes that are invalid explicit dereferences of remote
4103         access-to-class-wide values, first checking whether the selected
4104         component is a prefixed form of call to a tagged operation.
4105         (Analyze_Call): Remove code that issues an error for limited function
4106         calls in illegal contexts, as we now support all of the contexts that
4107         were forbidden here.
4108         Allow a function call that returns a task.and appears as the
4109         prefix of a selected component.
4110         (Analyze_Reference): Give error message if we try to make a 'Reference
4111         for an object that is atomic/aliased without its type having the
4112         corresponding attribute.
4113         (Analyze_Call): Remove condition checking for attributes to allow
4114         calls to functions with inherently limited results as prefixes of
4115         attributes. Remove related comment about Class attributes.
4116         (Analyze_Selected_Component): If the prefix is a remote type, check
4117         whether this is a prefixed call before reporting an error.
4118         (Complete_Object_Operation): If the controlling formal is an access to
4119         variable reject an actual that is a constant or an access to one.
4120         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
4121         primitive operations from base type.
4122
4123         * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
4124         build-in-place
4125         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
4126         (Expand_N_Selected_Component): Test for prefix that is a build-in-place
4127         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
4128         (Expand_N_Slice): Test for prefix that is a build-in-place function call
4129         and call Make_Build_In_Place_Call_In_Anonymous_Context.
4130         (Analyze_Call): Remove code that issues an error for limited function
4131         calls in illegal contexts, as we now support all of the contexts that
4132         were forbidden here.
4133         New calling sequence for Get_Simple_Init_Val
4134         (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
4135         (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test
4136
4137 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
4138             Ed Schonberg  <schonberg@adacore.com>
4139             Robert Dewar  <dewar@adacore.com>
4140
4141         * exp_ch2.adb: Minor reformatting.
4142         (Expand_Entry_Index_Parameter): Set the type of the identifier.
4143         (Expand_Entry_Reference): Add call to Expand_Protected_Component.
4144         (Expand_Protected_Component): New routine.
4145         (Expand_Protected_Private): Removed.
4146         Add Sure parameter to Note_Possible_Modification calls
4147
4148         * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
4149         generated subprogram declaration must inherit the overriding indicator
4150         from the instantiation node.
4151         (Validate_Access_Type_Instance): If the designated type of the actual is
4152         a limited view, use the available view in all cases, not only if the
4153         type is an incomplete type.
4154         (Instantiate_Object):  Actual is illegal if the formal is null-excluding
4155         and the actual subtype does not exclude null.
4156         (Process_Default): Handle properly abstract formal subprograms.
4157         (Check_Formal_Package_Instance): Handle properly defaulted formal
4158         subprograms in a partially parameterized formal package.
4159         Add Sure parameter to Note_Possible_Modification calls
4160         (Validate_Derived_Type_Instance): if the formal is non-limited, the
4161         actual cannot be limited.
4162         (Collect_Previous_Instances): Generate instance bodies for subprograms
4163         as well.
4164
4165         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
4166         try to set RM_Size.
4167         Add Sure parameter to Note_Possible_Modification calls
4168         (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
4169         (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
4170         constant overlaid by variable and issue warning.
4171         Use new Is_Standard_Character_Type predicate
4172         (Analyze_Record_Representation_Clause): Check that the specified
4173         Last_Bit is not less than First_Bit - 1.
4174         (Analyze_Attribute_Definition_Clause, case Address): Check for
4175         self-referential address clause
4176
4177         * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
4178         detection mechanism when the lhs is a prival.
4179         (Analyze_Assignment): Call Check_Unprotected_Access to detect
4180         assignment of a pointer to protected data, to an object declared
4181         outside of the protected object.
4182         (Analyze_Loop_Statement): Check for unreachable code after loop
4183         Add Sure parameter to Note_Possible_Modication calls
4184         Protect analysis from previous syntax error such as a scope mismatch
4185         or a missing begin.
4186         (Analyze_Assignment_Statement): The assignment is illegal if the
4187         left-hand is an interface.
4188
4189         * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
4190         violation of restriction No_Implicit_Conditionals
4191         Add Sure parameter to Note_Possible_Modication calls
4192         Use new Is_Standard_Character_Type predicate
4193         (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
4194         call as operator. Fixes problems (e.g. validity checking) which
4195         come from the result looking as though it does not come from source).
4196         (Resolve_Call): Check case of name in named parameter if style checks
4197         are enabled.
4198         (Resolve_Call): Exclude calls to Current_Task as entry formal defaults
4199         from the checking that such calls should not occur from an entry body.
4200         (Resolve_Call): If the return type of an Inline_Always function
4201         requires the secondary stack, create a transient scope for the call
4202         if the body of the function is not available for inlining.
4203         (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
4204         that are actuals for in-out formals.
4205         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
4206         primitive operations from base type.
4207         (Analyze_Selected_Component): If the context is a call to a protected
4208         operation the parent may be an indexed component prior to expansion.
4209         (Resolve_Actuals): If an actual is of a protected subtype, use its
4210         base type to determine whether a conversion to the corresponding record
4211         is needed.
4212         (Resolve_Short_Circuit): Handle pragma Check
4213
4214         * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
4215         Use new Is_Standard_Character_Type predicate
4216         (Eval_Relational_Op): Catch more cases of string comparison
4217
4218 2008-04-08  Robert Dewar  <dewar@adacore.com>
4219             Gary Dismukes  <dismukes@adacore.com>
4220
4221         * s-rident.ads: Add No_Default_Initialization restriction
4222
4223         * exp_tss.adb: 
4224         (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
4225         (Set_TSS): Handle No_Default_Initialization case
4226
4227         * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
4228         No_Default_Initialization
4229         (Expand_N_Subprogram_Body): Remove redundant initialization of out
4230         parameters when Normalize_Scalars is active.
4231         (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
4232         Fix casing error in formal parameter name in call
4233         (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
4234         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
4235         dispatching call on VM targets.
4236
4237 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
4238             Thomas Quinot  <quinot@adacore.com>
4239
4240         * exp_ch7.adb (Find_Final_List): Change the test for generating a
4241         selected component from an access type's Associated_Final_Chain to
4242         check for the presence of that field, rather than assuming it exists
4243         for all named access types.
4244         (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
4245         procedure to call at the end of the generated cleanup procedure.
4246         (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
4247         and an At_End_Proc already exists in the handled sequence of statements
4248         for which cleanup actions are being expanded, the original cleanup
4249         action must be preserved.
4250
4251 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
4252             Ed Schonberg  <schonberg@adacore.com>
4253             Robert Dewar  <dewar@adacore.com>
4254             Gary Dismukes  <dismukes@adacore.com>
4255
4256         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
4257         Build_Unprotected_Subprogram_Body): Generate debug info for
4258         declarations related to the handling of private data in task and
4259         protected types.
4260         (Debug_Private_Data_Declarations): New subprogram.
4261         (Install_Private_Data_Declarations): Remove all debug info flagging.
4262         This is now done by Debug_Private_Data_Declarations at the correct
4263         stage of expansion.
4264         (Build_Simple_Entry_Call): If the task name is a function call, expand
4265         the prefix into an object declaration, and make the surrounding block a
4266         task master.
4267         (Build_Master_Entity): An internal block is a master if it wraps a call.
4268         Code reformatting, update comments. Code clean up.
4269         (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
4270         (Replicate_Entry_Formals): If the formal is an access parameter or
4271         anonymous access to subprogram, copy the original tree to create new
4272         entities for the formals of the subprogram.
4273         (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
4274         for tasks to store the value passed using pragma Relative_Deadline.
4275         (Make_Task_Create_Call): Add the Relative_Deadline argument to the
4276         run-time call to create a task.
4277         (Build_Wrapper_Spec): If the controlling argument of the interface
4278         operation is an access parameter with a non-null indicator, use the
4279         non-null indicator on the wrapper.
4280
4281         * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
4282         present, which it may not be in the case where the type entity is an
4283         incomplete view brought in by a limited with.
4284         (Analyze_Task_Type): Only retrieve the full view when present, which it
4285         may not be in the case where the type entity is an incomplete view brought
4286         in by a limited with.
4287         (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
4288         private components of a protected type, to prevent the generation of freeze
4289         nodes for which there is no proper scope of elaboration.
4290
4291         * exp_util.ads, exp_util.adb
4292         (Remove_Side_Effects): If the expression is a function call that returns a
4293         task, expand into a declaration to invoke the build_in_place machinery.
4294         (Find_Protection_Object): New routine.
4295         (Remove_Side_Effects): Also make a copy of the value
4296         for attributes whose result is of an elementary type.
4297         (Silly_Boolean_Array_Not_Test): New procedure
4298         (Silly_Boolean_Array_Xor_Test): New procedure
4299         (Is_Volatile_Reference): New function
4300         (Remove_Side_Effects): Use Is_Volatile_Reference
4301         (Possible_Bit_Aligned_Component): Handle slice case properly
4302
4303         * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
4304         case test to Exp_Util
4305         (Expand_Packed_Xor): Move silly true/true case test to Exp_Util
4306
4307 2008-04-08  Thomas Quinot  <quinot@adacore.com>
4308
4309         * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
4310         in call
4311         (Add_RACW_Features): When processing an RACW in another unit than the
4312         main unit, set Body_Decls to No_List to indicate that the bodies of
4313         the type's TSS must not be generated.
4314         (GARLIC_Support.Add_RACW_Read_Attribute,
4315         GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
4316         Body_Decls is No_List.
4317         (PolyORB_Support.Add_RACW_Read_Attribute,
4318         PolyORB_Support.Add_RACW_Write_Attribute,
4319         PolyORB_Support.Add_RACW_From_Any,
4320         PolyORB_Support.Add_RACW_To_Any,
4321         PolyORB_Support.Add_RACW_TypeCode): Same.
4322         (Transmit_As_Unconstrained): New function.
4323         (Build_Ordered_Parameters_List): Use the above to order parameters.
4324         (GARLIC_Support.Build_General_Calling_Stubs):
4325         Use the above to determine which parameters to unmarshall using 'Input
4326         at the point where their temporary is declared (as opposed to later on
4327         with a 'Read call).
4328         (PolyORB_Support.Build_General_Calling_Stubs):
4329         Use the above to determine which parameters to unmarshall using From_Any
4330         at the point where their temporary is declared (as opposed to later on
4331         with an assignment).
4332
4333 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
4334
4335         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
4336         an Input function for an access type, do not perform default
4337         initialization on the local variable that receives the value, to
4338         prevent spurious warnings when the type is null-excluding.
4339
4340 2008-04-08  Robert Dewar  <dewar@adacore.com>
4341             Ed Schonberg  <schonberg@adacore.com>
4342
4343         * freeze.adb (Freeze_Entity): Improve warnings on access types in pure
4344         units.
4345         (Size_Known): Generic formal scalar types have known at compile
4346         time size, so remove check.
4347         Fix casing error in formal parameter name in call
4348         (Freeze_Subprogram): If the subprogram is a user-defined operator,
4349         recheck its overriding indication.
4350
4351 2008-04-08  Vincent Celier  <celier@adacore.com>
4352
4353         * gnat1drv.adb: Send all messages indicating an error to standard error
4354
4355 2008-04-08  Robert Dewar  <dewar@adacore.com>
4356
4357         * gnatbind.adb (Restriction_Could_Be_Set): New procedure
4358         (List_Applicable_Restrictions): Do not list existing restrictions
4359
4360 2008-04-08  Thomas Quinot  <quinot@adacore.com>
4361
4362         * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
4363         add a pointer to generic sockets literature
4364         do not mention that the given example is "typical" usage.
4365         Remove obsolete comment about multicast not being supported on Windows.
4366         (Connect_Socket): Make Server mode IN rather than IN OUT
4367         since this formal is never modified.
4368
4369 2008-04-08  Robert Dewar  <dewar@adacore.com>
4370
4371         * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
4372         the declaration for some different entity.
4373         (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
4374         list is precent (following the parent subtype indication), display
4375         appropriate "and" keyword.
4376
4377         * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
4378         Remove unnecessary calls to Init_Size_Align and Init_Esize.
4379         Add notes on use of Parent field of an Itype
4380
4381 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
4382             Robert Dewar  <dewar@adacore.com>
4383             Gary Dismukes  <dismukes@adacore.com>
4384
4385         * lib-xref.adb (Is_On_LHS): Remove dead code
4386         (Output_Overriden_Op): If the overridden operation is itself inherited,
4387         list the ancestor operation, which is the one whose body or absstract
4388         specification is actually being overridden. For source navigation
4389         purposes.
4390
4391         * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
4392         operation is primitive for the type.
4393         (Declare_Inherited_Private_Subprograms): If the new operation overrides
4394         an inherited private subprogram, set properly the Overridden_Operation
4395         attribute, for better cross-reference information.
4396         (Analyze_Package_Specification): Do late analysis of spec PPCs
4397         (Install_Private_Declaration, Uninstall_Declarations): Save/restore
4398         properly the full view and underlying full views of a private type in a
4399         child unit, whose full view is derived from a private type in a parent
4400         unit, and whose own full view becomes visible in the child body.
4401
4402         * sem_disp.adb (Check_Dispatching_Operation): When a body declares a
4403         primitive operation after the type has been frozen, add an explicit
4404         reference to the type and the operation, because other primitive
4405         references have been emitted already.
4406         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
4407         dispatching call on VM targets.
4408
4409 2008-04-08  Vincent Celier  <celier@adacore.com>
4410             Thomas Quinot  <quinot@adacore.com>
4411
4412         * make.adb: (Gnatmake_Called): Remove, no longer necessary
4413         (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
4414         is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
4415         (Insert_Project_Sources): Take into account index in multi-unit source
4416         files.
4417         After building a library project, delete all temporary files.
4418         (Initialize): Reset current output after parsing project file.
4419         (Collect_Arguments_And_Compile): Never insert in the queue the sources
4420         of library projects that are externally built.
4421         Put file name in error and inform messages if -df is used
4422         (Display): If invoked with -d7, do not display path names, but only
4423         file names.
4424
4425         * makeutl.ads (Path_Or_File_Name): New function
4426         (Path_Or_File_Name): New function
4427
4428 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
4429
4430         * Make-lang.in: Disable warnings during first stage of bootstrap
4431         Get rid of gnatbl.
4432         Update dependencies.
4433
4434 2008-04-08  Vincent Celier  <celier@adacore.com>
4435
4436         * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
4437         case to decide if ALI object file is included in library.
4438         (Build_Library): Never attempt to build a library if the project is
4439         externally built.
4440
4441 2008-04-08  Thomas Quinot  <quinot@adacore.com>
4442
4443         * nlists.adb (Is_Non_Empty_List): Remove redundant test. First
4444         (No_List) is defined to return Empty.
4445
4446 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
4447
4448         * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
4449         documentation.
4450         Update comments.
4451         (Read_Default_Search_Dirs): Do not consider spaces as path separators
4452         because spaces may be part of legal paths.
4453
4454 2008-04-08  Robert Dewar  <dewar@adacore.com>
4455
4456         * par-ch11.adb (P_Exception_Handler): Check indentation level for
4457         handler
4458
4459 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
4460
4461         * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
4462         in a type declaration, if this is not an interface declaration or
4463         private type extension.
4464
4465 2008-04-08  Vincent Celier  <celier@adacore.com>
4466
4467         * prj-util.adb (Executable_Of): New String parameter Language. When
4468         Ada_Main is False and Language is not empty, attempt to remove the body
4469         suffix or the spec suffix of the language to get the base of the
4470         executable file name.
4471         (Put): New Boolean parameter Lower_Case, defauilted to False. When
4472         Lower_Case is True, put the value in lower case in the name list.
4473         (Executable_Of): If there is no executable suffix in the configuration,
4474         then do not modify Executable_Extension_On_Target.
4475
4476         * prj-util.ads (Executable_Of): New String parameter Language,
4477         defaulted to the empty string.
4478         (Put): New Boolean parameter Lower_Case, defauilted to False
4479
4480 2008-04-08  Robert Dewar  <dewar@adacore.com>
4481
4482         * scng.adb (Scan_Identifier): Handle case of identifier starting with
4483         wide character using UTF-8 encoding.
4484
4485 2008-04-08  Javier Miranda  <miranda@adacore.com>
4486
4487         * sem.adb (Analyze): Consider case in which we analyze an empty node
4488         that was generated by a call to a runtime function that is not
4489         available under the configurable runtime.
4490
4491         * sem.ads (Inside_Freezing_Actions): New flag.
4492         (Save_Check_Policy_List): New field in scope stack entry
4493
4494 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
4495             Robert Dewar  <dewar@adacore.com>
4496
4497         * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
4498         the ancestor part of an extension aggregate for a limited type.
4499         (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
4500         enumeration index bounds.
4501         (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
4502         when array is too short.
4503         (Check_Expr_OK_In_Limited_Aggregate): Move function
4504         Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
4505         change name).
4506         (Resolve_Array_Aggregate.Resolve_Aggr_Expr):
4507         Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
4508         component associations.
4509         (Check_Non_Limited_Type): Moved to outer level and renamed.
4510         (Resolve_Record_Aggregate): In an extension aggregate, an association
4511         with a box initialization can only designate a component of the
4512         extension, not a component inherited from the given ancestor
4513
4514         * sem_case.adb: Use new Is_Standard_Character_Type predicate
4515
4516 2008-04-08  Robert Dewar  <dewar@adacore.com>
4517
4518         * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
4519         negative scale
4520         (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
4521         Properly handle case where Aft > Scale and input number is less than
4522         one.
4523
4524 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
4525
4526         * s-stoele.ads, s-soflin.ads: Move the location of
4527         Dummy_Communication_Block from System.Storage_Elements to
4528         System.Soft_Links.
4529
4530         * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
4531         emulate Communication_Block in certain scenarios.
4532
4533 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
4534
4535         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
4536         subprogram.
4537         Add new subtype S_WWC, unchecked conversion routines From_WWC and
4538         To_WWC.
4539         (I_WWC, O_WWC): New routines for input and output of
4540         Wide_Wide_Character.
4541
4542 2008-04-08  Robert Dewar  <dewar@adacore.com>
4543
4544         * stringt.adb (Write_String_Table_Entry): Handle wide characters
4545         properly
4546
4547 2008-04-08  Robert Dewar  <dewar@adacore.com>
4548
4549         * styleg.adb (Check_Comment): Allow special char after -- in
4550         non-end-of-line case
4551
4552 2008-04-08  Robert Dewar  <dewar@adacore.com>
4553
4554         * stylesw.adb: Implement -gnaty + - y options
4555         (Set_GNAT_Style_Check_Options): Includ I in style check string
4556
4557         * stylesw.ads: Add comments for new style switch options
4558
4559 2008-04-08  Sergey Rybin  <rybin@adacore.com>
4560
4561         * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
4562         to the set of the GNAT components needed by ASIS.
4563
4564 2008-04-08  Bob Duff  <duff@adacore.com>
4565
4566         * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
4567
4568 2008-04-08  Tristan Gingold  <gingold@adacore.com>
4569
4570         * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
4571         Improve error message generation.
4572
4573 2008-04-08  Vincent Celier  <celier@adacore.com>
4574
4575         * a-direct.adb (Start_Search): Check for Name_Error before checking for
4576         Use_Error, as specified in the RM. Check if directory is open and raise
4577         Use_Error if it is not.
4578
4579 2008-04-08  Vincent Celier  <celier@adacore.com>
4580             Robert Dewar  <dewar@adacore.com>
4581
4582         * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
4583         AAMP_On_Target is set.
4584
4585         * vms_data.ads: Add NOxxx to style check switch list
4586         Add entry COMPONENTS for -gnatVe
4587         Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
4588         (/SUBDIRS=).
4589         (GCC_Switches): Add /ALL_BACK_END_WARNINGS.
4590         Add qualifiers for gnatmetric coupling options
4591         Add note that -gnata enables all checks
4592         Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
4593         Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
4594         New warning flag -gnatw.e
4595
4596         * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
4597         Add entry for -gnatyN (forgotten before)
4598         Line for new warning switch -gnatw.p
4599         New warning flag -gnatw.e
4600
4601         * gnat_ugn.texi: Add documentation fpr project file switch -aP
4602         Document -gnaty - + y
4603         Replace occurences of "package specification" with "package spec"
4604         Define preprocessing symbols in documentation of gnatprep
4605         Clarify reason for distinguishing overflow checking
4606         Add documentation for project-aware tool switches -eL and --subdirs=
4607         Complete list of configuration pragmas
4608         Specify that, even when gnatmake switch -x is used, mains on the command
4609         line need to be sources of project files.
4610         Editing of gnatcheck/gnatmetric doc.
4611         Add documentation for -gnatw.p/-gnatw.P
4612         Add missing documentation for -fno-inline-functions.
4613         Add documentation for -gnatw.e
4614
4615         * gnat_rm.texi: Add documentation for No_Default_Initialization
4616         Replace occurences of "package specification" with "package spec"
4617         Document use of * in Warnings Off string
4618         Update documentation of alignment/component clauses.
4619         Add documentation for Invalid_Value
4620         Document new consistency rule for Optimize_Alignment
4621         Add documentation for Precondition and Postcondition pragmas
4622         Add documentation for Check and Check_Policy pragmas
4623         Document new Enum_Val attribute
4624         Remove requirement for static string in pragma Assert
4625         Add documentation on GNAT.Time_Stamp
4626
4627         * ug_words: add entry for -gnatVe
4628         Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
4629         Add entry for -gnatw.e
4630
4631         * debug.adb: Add missing documentation for d.a flag
4632         Document new -gnatd.a switch.
4633         Add documentation for new gnatmake debug switch -df
4634
4635 2008-04-08  Thomas Quinot  <quinot@adacore.com>
4636
4637         * gen-soccon.c: Bump year in copyright notices.
4638
4639         * g-soccon-vxworks.ads: Add new constant IP_PKTINFO
4640
4641 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
4642
4643         * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
4644         Minor reformatting.
4645
4646 2008-04-08  Robert Dewar  <dewar@adacore.com>
4647             Bob Duff  <duff@adacore.com>
4648
4649         * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
4650         Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
4651
4652         * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
4653
4654         * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
4655
4656         * g-trasym.ads: Minor comment improvements
4657
4658         * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
4659
4660         * a-sequio.ads, a-direio.ads: improve message for tagged type
4661
4662         * a-strunb.ads: Minor reformatting
4663
4664         * a-tifiio.adb: Minor reformatting
4665
4666         * atree.adb (Fix_Parents): Use clearer names for formals
4667         Cleanup and simplify code
4668         Use named notation in calls
4669
4670         * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
4671         confusing calls
4672
4673         * uintp.adb: Used named notation for some confusing calls
4674
4675         * bindusg.adb: Minor change in one line of output
4676
4677         * cstand.adb: Minor reformatting of src representation of Standard
4678
4679         * a-assert.ads: Add comment.
4680
4681         * g-decstr.adb: Fix bad indentation
4682
4683         * expander.ads, expander.adb: Code clean up.
4684
4685         * sem_dist.ads: Minor comment improvement
4686
4687         * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
4688         s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
4689
4690         * i-cstrin.adb: Fix casing error in formal parameter name in call
4691
4692 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
4693
4694         * binde.adb (Gather_All_Links, Gather_Dependencies): units that are
4695         mentioned in limited_with_clauses to do create semantic dependencies
4696         even though they appear in the ali file.
4697
4698 2008-04-08  Emmanuel Briot  <briot@adacore.com>
4699
4700         * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
4701         statement.
4702         (Get_Configuration): New subprogram.
4703
4704         * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
4705         These optional parameters help preserve the casing of the project's name
4706         when pretty-printing.
4707
4708 2008-04-08  Jerome Lambourg  <lambourg@adacore.com>
4709             Arnaud Charlet  <charlet@adacore.com>
4710
4711         * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
4712         then use __gnat_set_exit_status to report the returned status code.
4713
4714         * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
4715         messages on .NET, since some constructs of the language are not
4716         properly supported.
4717
4718         * gnatlink.adb (Gnatlink): In case the command line is too long for the
4719         .NET linker, gnatlink now concatenate all .il files and pass this to
4720         ilasm.
4721
4722 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
4723             Xavier Grave  <grave@ipno.in2p3.fr>
4724
4725         * Makefile.in: Add make ifeq define for mips/mipsel support.
4726         * g-soccon-linux-mips.ads, system-linux-mipsel.ads, 
4727         system-linux-mips.ads: New files.
4728
4729 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
4730
4731         * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
4732         detect systems using GNU libc.
4733         * gsocket.h: ditto.
4734         * socket.c: ditto.
4735         * adaint.c: ditto.
4736         * link.c: ditto.
4737
4738 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
4739
4740         * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New 
4741         constant constant for sysconf call.
4742         (bit_field): New packed boolean type used by cpu_set_t.
4743         (cpu_set_t): New type corresponding to the C type with
4744         the same name. Note that on the Ada side we use a bit
4745         field array for the affinity mask. There is not need
4746         for the C macro for setting individual bit.
4747         (pthread_setaffinity_np): New imported routine.
4748         * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
4749         on GNU/kFreeBSD.
4750
4751 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4752
4753         * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
4754
4755 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4756
4757         * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
4758         * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
4759         * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
4760         * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
4761         Return by Depressed Stack Pointer.
4762
4763 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
4764
4765         * decl.c (is_variable_size): Do not unconditionally return false
4766         on non-strict alignment platforms.
4767
4768 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
4769
4770         * decl.c (rest_of_type_decl_compilation_no_defer): New local function
4771         used to process all the variants of the specified type.
4772         (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
4773         types too.  Call rest_of_type_decl_compilation_no_defer if undeferring.
4774         (rest_of_type_decl_compilation): Likewise.
4775         * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
4776
4777 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
4778
4779         * gigi.h (insert_block): Kill.
4780         * utils.c (insert_block): Kill.
4781
4782 2008-04-02  Eric Botcazou  <ebotcazou@adacore.com>
4783
4784         * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
4785         type has self-referential size, get the size from the initializing
4786         expression directly if it is also a constant whose nominal type
4787         has self-referential size.
4788
4789 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4790
4791         PR ada/33688
4792         * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
4793
4794         PR ada/33857
4795         * env.c: Always include crt_externs.h if __APPLE__ is defined.
4796         (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
4797
4798 2008-04-01  Andreas Jaeger  <aj@suse.de>
4799
4800         * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
4801         IP_PKTINFO.
4802
4803 2008-03-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4804
4805         * g-table.adb, g-tasloc.adb, g-traceb.ads,
4806         g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
4807         gnatbind.adb, gnatchop.adb, gnatcmd.adb,
4808         gnatcmd.ads, gnatdll.adb, gnatfind.adb,
4809         gnatlink.adb, gnatmem.adb, gprep.adb,
4810         i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
4811         i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
4812         layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
4813         lib-xref.ads, lib.adb, link.c, live.ads,
4814         make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
4815         mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
4816         misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
4817         mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
4818         namet.adb, namet.h, nlists.adb, nlists.ads,
4819         nlists.h, opt.ads, osint-b.ads, osint-c.adb,
4820         osint-c.ads, osint.adb, osint.ads, output.ads,
4821         par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
4822         par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
4823         par-endh.adb, par-labl.adb, par-prag.adb,
4824         par-sync.adb, par-tchk.adb, par-util.adb,
4825         par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
4826         prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
4827         prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
4828         prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
4829
4830 2008-03-31  Eric Botcazou  <ebotcazou@adacore.com>
4831
4832         * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
4833         size if it has overflowed.
4834
4835 2008-03-31  Olivier Hainque  <hainque@adacore.com>
4836             Eric Botcazou  <ebotcazou@adacore.com>
4837
4838         * utils2.c (find_common_type): Document assumption on t1/t2 vs
4839         lhs/rhs. Force use of lhs type if smaller, whatever the modes.
4840
4841 2008-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4842
4843         * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
4844         einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
4845         exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
4846         exp_pakd.ads, exp_prag.adb, exp_smem.adb,
4847         exp_tss.ads, exp_util.adb, exp_util.ads,
4848         exp_vfpt.adb, freeze.adb, freeze.ads,
4849         frontend.adb, g-alleve.adb, g-altcon.adb,
4850         g-altive.ads, g-alveop.ads, g-alvevi.ads,
4851         g-arrspl.adb, g-busorg.ads, g-calend.adb,
4852         g-calend.ads, g-casuti.ads, g-cgideb.adb,
4853         g-comlin.adb, g-comlin.ads, g-curexc.ads,
4854         g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
4855         g-dirope.adb, g-dirope.ads, g-dynhta.ads,
4856         g-dyntab.adb, g-encstr.ads, g-excact.ads,
4857         g-except.ads, g-expect.ads, g-heasor.adb,
4858         g-hesora.adb, g-hesorg.adb, g-htable.ads,
4859         g-locfil.ads, g-md5.adb, g-md5.ads,
4860         g-memdum.ads, g-moreex.ads, g-os_lib.adb,
4861         g-pehage.adb, g-pehage.ads, g-regexp.adb,
4862         g-regexp.ads, g-regpat.adb, g-regpat.ads,
4863         g-soccon-aix.ads, g-soccon-darwin.ads,
4864         g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
4865         g-soccon-hpux.ads, g-soccon-irix.ads,
4866         g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
4867         g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
4868         g-soccon-mingw.ads, g-soccon-solaris-64.ads,
4869         g-soccon-solaris.ads, g-soccon-tru64.ads,
4870         g-soccon-vms.ads, g-soccon-vxworks.ads,
4871         g-soccon.ads, g-socket.adb, g-socket.ads,
4872         g-socthi-mingw.adb, g-socthi-vms.adb,
4873         g-socthi-vxworks.adb, g-soliop-mingw.ads,
4874         g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
4875         g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
4876         typos.
4877
4878 2008-03-27  Eric Botcazou  <ebotcazou@adacore.com>
4879
4880         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
4881         if the procedure is imported.
4882
4883 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
4884
4885         * adaint.c: Fix warnings.
4886
4887 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
4888
4889         * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
4890
4891 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
4892
4893         * a-witeio.adb: Fix problem with Current_Output (introduce Self).
4894         Fix problem of status check for null file
4895
4896 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
4897
4898         * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
4899         s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
4900         s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
4901         i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
4902         s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
4903         comments.
4904
4905 2008-03-26  Thomas Quinot  <quinot@adacore.com>
4906
4907         PR ada/33688
4908         * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
4909         Get_Socket_Option): Add support for Receive_Packet_Info.
4910
4911         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
4912         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
4913         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
4914         g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
4915         g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
4916         new constants SO_REUSEPORT and IP_PKTINFO
4917
4918 2008-03-26  Robert Dewar  <dewar@adacore.com>
4919
4920         * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
4921         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
4922         a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
4923         a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
4924         a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
4925         a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
4926         s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
4927         s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
4928         a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
4929         s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
4930         s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
4931         s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
4932         s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
4933         s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
4934         s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
4935         s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
4936         s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
4937         s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
4938         s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
4939         s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
4940         a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
4941         a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
4942         s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
4943         s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
4944         s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
4945         s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
4946         s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
4947         a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
4948         a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
4949         s-tasloc.adb: Minor reformatting.
4950         Update comments.
4951         Remove "used for" sections from comments.
4952
4953 2008-03-26  Robert Dewar  <dewar@adacore.com>
4954
4955         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
4956         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
4957         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
4958         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
4959         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
4960         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
4961         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
4962         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
4963         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
4964         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
4965         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
4966         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
4967         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
4968         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
4969         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
4970         double spaced if it fits on one line and otherwise single spaced.
4971
4972 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
4973
4974         * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb, 
4975         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb, 
4976         s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
4977         or task info if the thread could not be created.
4978
4979 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
4980
4981         * gnatvsn.ads (Library_Version): Bump to 4.4.
4982         (Current_Year): Bump to 2008.
4983
4984 2008-03-26  Robert Dewar  <dewar@adacore.com>
4985
4986         * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
4987
4988         * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
4989
4990         * debug.adb: Add debug flags d.r and d.v
4991         Add debug flag .T (Optimize_Alignment (Time))
4992         Add debug flag .S (Optimize_Alignment (Space))
4993
4994         * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
4995         depending on setting of relevant debug flags.
4996         Replace use of Warnings_Off by Has_Warnings_Off
4997         (Freeze_Entity): In circuit for warning on suspicious convention
4998         actuals, do not give warning if subprogram has same entity as formal
4999         type, or if subprogram does not come from source.
5000         (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
5001         if Optimize_Alignment set to Space.
5002
5003         * frontend.adb: Add call to Sem_Warn.Initialize
5004         Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
5005         Reset Optimize_Alignment mode from debug switches .S and .T
5006
5007         * layout.adb (Layout_Composite_Object): Rewritten for
5008         Optimize_Aligment pragma.
5009
5010         * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
5011         mode.
5012
5013         * opt.ads, opt.adb: (Optimize_Alignment): New global switch
5014
5015         * par-prag.adb (N_Pragma): Chars field removed, use Chars
5016         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
5017         this change. Add entry for pragma Optimize_Alignment
5018
5019         * sem_prag.adb (N_Pragma): Chars field removed, use Chars
5020         (Pragma_Identifier (..
5021         instead, adjustments throughout to accomodate this change.
5022         (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
5023         (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
5024         Add implementation of pragma Optimize_Alignment
5025
5026 2008-03-26  Vincent Celier  <celier@adacore.com>
5027
5028         * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
5029         Improve memory usage to avoid use of stack.
5030
5031 2008-03-26  Robert Dewar  <dewar@adacore.com>
5032
5033         * a-teioed.ads: Correct value of Default_Fill
5034
5035         * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
5036
5037 2008-03-26  Robert Dewar  <dewar@adacore.com>
5038
5039         * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
5040         with Current_Output (introduce Self).
5041
5042 2008-03-26  Robert Dewar  <dewar@adacore.com>
5043
5044         * checks.adb (Ensure_Valid): Capture valid status if possible
5045         (eliminate checks)
5046
5047 2008-03-26  Robert Dewar  <dewar@adacore.com>
5048
5049         * stand.ads: Deal with reordering of package standard declarations
5050
5051         * cstand.adb: Put package Standard declarations in proper order
5052
5053 2008-03-26  Robert Dewar  <dewar@adacore.com>
5054
5055         * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
5056         (Pragma_Identifier (.. instead.
5057         (OK_To_Reorder_Components): New flag
5058         (Has_Entries): Code cleanup.
5059         (Warnings_Off_Used): New flag
5060         (Warnings_Off_Used_Unmodified): New flag
5061         (Warnings_Off_Used_Unreferenced): New flag
5062         (Has_Warnings_Off): New function
5063         (Has_Unmodified): New function
5064         (Has_Unreferenced): New function
5065         (Is_Trivial_Subprogram): New flag
5066         (Is_Static_Dispatch_Table_Entity): New attribute.
5067         Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
5068         (more consistent with other similar names)
5069         (Access_Subprogram_Type): New classification function
5070
5071 2008-03-26  Robert Dewar  <dewar@adacore.com>
5072
5073         * errout.ads: Document new !! insertion sequence
5074
5075         * errout.adb (N_Pragma): Chars field removed, use Chars
5076         (Pragma_Identifier (..  instead.
5077         Replace use of Warnings_Off by Has_Warnings_Off
5078         (Error_Msg_Internal): Don't delete warning ending in !!
5079
5080 2008-03-26  Robert Dewar  <dewar@adacore.com>
5081
5082         * par.adb (Check_No_Right_Paren): Removed no longer used
5083
5084         * par-ch10.adb (N_Pragma): Chars field removed, use Chars
5085         (Pragma_Identifier (..  instead.
5086
5087         * par-ch10.adb (P_Subunit): Improvement in error recovery and message
5088
5089         * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
5090         par-ch4.adb: Minor improvements in error recovery and messages.
5091
5092         * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
5093         non-serious
5094
5095         * par-ch9.adb: Minor improvements in error recovery and messages
5096         (P_Protected): Better error recovery for "protected type x;"
5097
5098         * par-util.adb: Minor improvements in error recovery and messages
5099         (Check_No_Right_Paren): Removed no longer used
5100
5101 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
5102
5103         * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
5104         that the prefix of an attribute is the type of the aggregate being
5105         expanded.
5106
5107 2008-03-26  Javier Miranda  <miranda@adacore.com>
5108             Robert Dewar  <dewar@adacore.com>
5109
5110         * exp_attr.adb (N_Pragma): Chars field removed.
5111         (Expand_N_Attribute_Reference): If the designated type associated with
5112         attribute 'Unrestricted_Access is a subprogram entity then replace it
5113         by an E_Subprogram_Type itype.
5114         Implement attribute Old
5115
5116         * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
5117
5118         * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
5119         Replace call to
5120         New_Internal_Entity by call to Create_Itype to centralize calls
5121         building itypes, ad propagate the convention of the designated
5122         subprogram. In addition, disable the machinery cleaning constant
5123         indications from all entities in current scope when 'Unrestricted_Access
5124         corresponds with a node initializing a dispatch table slot.
5125         (Analyze_Attribute): Parameterless attributes returning a string or a
5126         type will not be called with improper arguments, so we can remove junk
5127         code that was dealing with this case.
5128         Implement attribute Old
5129
5130         * snames.ads, snames.h, snames.adb: Add entries for attribute Old
5131         Add entry for pragma Optimize_Alignment
5132         New standard names Sync and Synchronize
5133
5134 2008-03-26  Robert Dewar  <dewar@adacore.com>
5135             Arnaud Charlet  <charlet@adacore.com>
5136
5137         * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
5138         stmt.
5139         (No_Exception_Propagation_Active): New function.
5140         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
5141         Update comments, and review all uses of No_Exception_Propagation, which
5142         are now correct and in sync with what gigi expects.
5143
5144         * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
5145         function.
5146         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
5147         Update comments, and review all uses of No_Exception_Propagation, which
5148         are now correct and in sync with what gigi expects.
5149
5150 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
5151
5152         * sem_ch3.adb (Access_Definition): If the access type is the return
5153         result of a protected function, create an itype reference for it
5154         because usage will be in an inner scope from the point of declaration.
5155         (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
5156         OK_To_Reorder_Components.
5157         (Make_Index): If an overloaded range includes a universal integer
5158         interpretation, resolve to Standard.Integer.
5159         (Analyze_Subtype_Indication): Copy Convention to subtype
5160         (Check_Abstract_Interfaces): Complete semantic checks on the legality of
5161         limited an synchronized progenitors in type declaration and private
5162         extension declarations.
5163
5164         * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
5165         protected subprogram body, determine proper scope from subprogram
5166         declaration.
5167
5168 2008-03-26  Robert Dewar  <dewar@adacore.com>
5169
5170         * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
5171         No_Run_Time_Mode
5172
5173 2008-03-26  Gary Dismukes  <dismukes@adacore.com>
5174
5175         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
5176         of a heap allocator for a limited unconstrained function return when
5177         resstriction No_Allocators is active.
5178         (Analyze_Allocator): The restriction No_Allocators is now only checked
5179         on allocators that have Comes_From_Source set, as per RM-H.4(7).
5180
5181         * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
5182         of a heap allocator for a limited unconstrained function return when
5183         resstriction No_Allocators is active.
5184         (Analyze_Allocator): The restriction No_Allocators is now only checked
5185         on allocators that have Comes_From_Source set, as per RM-H.4(7).
5186         (Has_Fixed_Op):  If the name in a function call is Standard."*" and the
5187         operands are fixed-point types, the universal_fixed predefined operation
5188         is used, regardless of whether the operand type (s) have a primitive
5189         operation of the same name.
5190
5191 2008-03-26  Javier Miranda  <miranda@adacore.com>
5192
5193         * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
5194         Is_Static_Dispatch_Table
5195         (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
5196         to Exchange_Declarations to exchange the private and full-view. Bug
5197         found working in this issue.
5198         (Expand_Dispatching_Call): Propagate the convention of the subprogram
5199         to the subprogram pointer type.
5200         (Make_Secondary_DT): Replace generation of Prim'Address by
5201         Address (Prim'Unrestricted_Access)
5202         (Make_DT): Replace generation of Prim'Address by
5203         Address (Prim'Unrestricted_Access)
5204         (Make_Disp_*_Bodies): When compiling for a restricted profile, use
5205         simple call form for single entry.
5206         (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
5207         tables of predefined primitives).
5208         (Make_Secondary_DT): Add support to handle access to dispatch tables of
5209         predefined primitives.
5210         (Make_Tags): Add entities to Access_Dispatch_Table associated with
5211         access to dispatch tables containing predefined primitives.
5212
5213         * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
5214         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
5215         this change.
5216         (Register_Predefined_DT_Entry): Updated to handle the new contents
5217         of attribute Access_Disp_Table (pointers to dispatch tables containing
5218         predefined primitives).
5219
5220         * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
5221         subprogram.
5222         (Find_Interface_ADT): Updated to skip the new contents of attribute
5223         Access_Dispatch_Table (pointers to dispatch tables containing predefined
5224         primitives).
5225
5226         * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
5227         concurrent types.
5228         (Set_Convention): Use new function Is_Access_Subprogram_Type
5229         (Collect_Interfaces_Info): Updated to skip the new contents of attribute
5230         Access_Dispatch_Table (pointers to dispatch tables containing predefined
5231         primitives).
5232
5233         * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
5234         expanded code avoiding calls to Build_Predef_Prims.
5235         (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
5236         call to Build_Get_Predefined_Prim_Op_Address.
5237
5238 2008-03-26  Javier Miranda  <miranda@adacore.com>
5239
5240         * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
5241         subprogram Corresponding_Runtime_Package to know the runtime package
5242         that will provide support to a given protected type.
5243
5244         * exp_ch9.adb (Add_Private_Declarations,
5245         Build_Protected_Subprogram_Call,
5246         Build_Protected_Entry, Build_Simple_Entry_Call,
5247         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
5248         Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
5249         cleanup using the new centralized subprogram Corresponding_Runtime
5250         Package to know the runtime package that provides support to
5251         a given protected type.
5252
5253 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
5254
5255         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
5256         assignment is within the initialization procedure for a packed array,
5257         and Initialize_Scalars is enabled, compile right-hand side with checks
5258         off, because the value is purposely out of range.
5259
5260 2008-03-26  Vincent Celier  <celier@adacore.com>
5261
5262         * gnatcmd.adb: Add processing for GNAT SYNC
5263
5264         * vms_conv.ads: (Command_Type): Add command Sync
5265
5266         * vms_conv.adb (Initialize): Add Command_List data for new command Sync
5267
5268         * vms_data.ads: Add entries for -gnatw.w
5269         Add qualifier for gnatstub --header-file option
5270         Add switches for GNAT SYNC
5271
5272         * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
5273         (Add_Package_Name): New procedure
5274         (Package_Name_List): New function
5275         (Initialize): Add known package names to the list
5276         (Register_New_Package): Add the new package name to the list
5277
5278 2008-03-26  Robert Dewar  <dewar@adacore.com>
5279
5280         * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
5281         s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
5282         Raise_Exception by "raise with" construct.
5283
5284 2008-03-26  Pascal Obry  <obry@adacore.com>
5285
5286         * Makefile.in: Add proper GNAT.Serial_Communications implementation on
5287         supported platforms.
5288         
5289         * Makefile.rtl: Add g-sercom.o.
5290         
5291         * impunit.adb: Add g-sercom.adb.
5292         
5293         * s-crtl.ads (open): New routine.
5294         (close): Likewise.
5295         (write): Likewise.
5296         
5297         * s-osinte-mingw.ads (BYTE): New type.
5298         (CHAR): Likewise.
5299         (OVERLAPPED): Likewise.
5300         (GENERIC_READ): New constant.
5301         (GENERIC_WRITE): Likewise.
5302         (OPEN_EXISTING): Likewise.
5303         (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
5304         type instead.
5305         (CreateFile): New routine.
5306         (WriteFile): Likewise.
5307         (ReadFile): Likewise.
5308         (CloseHandle): Move next to the other file oriented routines.
5309
5310         * g-sercom.ads: New unit.
5311
5312         * g-sercom.adb: Default implementation, calls to this unit will raise
5313         a program error exception.
5314         
5315         * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
5316         GNU/Linux implementations.
5317
5318 2008-03-26  Robert Dewar  <dewar@adacore.com>
5319
5320         * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
5321
5322         * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
5323         unchecked conversion for different conventions only for subprogram
5324         pointers or on VMS.
5325
5326 2008-03-26  Vincent Celier  <celier@adacore.com>
5327
5328         * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
5329         to check if the specified object file is correct.
5330
5331 2008-03-26  Thomas Quinot  <quinot@adacore.com>
5332
5333         * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
5334         Comes_From_Source to exclude primitives from being checked. We want to
5335         exclude predefined primitives only, so use the appropriate specific
5336         predicate. Also, flag a formal parameter of an anonymous
5337         access-to-subprogram type as illegal for a primitive operation of a
5338         remote access to class-wide type.
5339
5340 2008-03-26  Vincent Celier  <celier@adacore.com>
5341
5342         * prj-dect.adb (Parse_Package_Declaration): When a package name is not
5343         known, check if it may be a missspelling of a known package name. In
5344         not verbose, not mode, issue warnings only if the package name is a
5345         possible misspelling.
5346         In verbose mode, always issue a warning for a not known package name,
5347         plus a warning if the name is a misspelling of a known package name.
5348
5349         * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
5350         limited withs or limited withs are parse during one call.
5351         (Parse_Single_Project): Post parse context clause in two passes: non
5352         limited withs before current project and limited withs after current
5353         project.
5354
5355         * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
5356         project with the name With_Name, even if it is only extended indirectly.
5357         (Recursive_Process): Process projects in order: first single withs, then
5358         current project, then limited withs.
5359
5360         * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
5361         project with the name With_Name, even if it is only extended indirectly.
5362
5363 2008-03-26  Robert Dewar  <dewar@adacore.com>
5364
5365         * scn.adb (Initialize_Scanner): Format messages belong on standard error
5366
5367 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
5368
5369         * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
5370         a generic subprogram that is imported, do not attempt to compile
5371         non-existent body.
5372
5373         * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
5374         imported, do not generate a raise_program_error for the non-existent
5375         body.
5376         (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
5377         perform minimal name resolution on the generic to avoid spurious
5378         warnings.
5379         (Find_Actual_Type): the designated type of the actual in a child unit
5380         may be declared in a parent unit without being an actual.
5381
5382 2008-03-26  Robert Dewar  <dewar@adacore.com>
5383
5384         * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
5385         * sinfo.ads, sinfo.adb (From_At_End): New flag
5386
5387 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
5388
5389         * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
5390         operations that have an interface parameter.
5391         (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
5392         Don't treat No_Return call as raise.
5393
5394         * sem_disp.adb (Check_Dispatching_Operations): apply check for
5395         non-primitive interface primitives to access parameters, not to all
5396         parameters of an access type.
5397
5398 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
5399
5400         * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
5401         declarations of a parent unit are made visible when compiling a child
5402         instance, the parent is not a hidden open scope, even though it may
5403         contain other pending instance.
5404         
5405         * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
5406         hidden open scope for some child instance, it does affect the
5407         visibility status of other stach entries.
5408         (Analyze_Object_Renaming): Check that a class-wide object cannot be
5409         renamed as an object of a specific type.
5410
5411 2008-03-26  Robert Dewar  <dewar@adacore.com>
5412
5413         * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
5414         recursion and raise SE directly.
5415         (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
5416         set for formal type for IN mode parameter.
5417
5418 2008-03-26  Robert Dewar  <dewar@adacore.com>
5419
5420         * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
5421         (Initialize): New procedure
5422         (Output_Warnings_Off_Warnings): New procedure
5423         (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
5424         (Output_Non_Modifed_In_Out_Warnings): Ditto
5425         (Warn_On_Unreferenced_Entity): Ditto
5426
5427 2008-03-26  Vincent Celier  <celier@adacore.com>
5428
5429         * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
5430         readable.
5431
5432 2008-03-26  Matthew Heaney  <heaney@adacore.com>
5433
5434         * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads, 
5435         a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
5436         Marked with clauses as private, and controlled operations as overriding
5437
5438 2008-03-26  Robert Dewar  <dewar@adacore.com>
5439
5440         * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
5441
5442 2008-03-26  Robert Dewar  <dewar@adacore.com>
5443
5444         * back_end.adb, back_end.ads: Minor reformatting
5445
5446         * bindgen.adb: Minor clarification of comments
5447
5448         * fname.ads: Minor comment fixes
5449
5450         * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
5451         prj-nmsc.adb, sem_aggr.adb: Minor reformatting
5452
5453         * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
5454         xsnames.adb: Remove warnings off pragma no longer needed
5455
5456         * a-catizo.ads, a-calari.ads, a-calfor.adb,
5457         a-calfor.ads: Fix header.
5458
5459 2008-03-26  Tristan Gingold  <gingold@adacore.com>
5460
5461         * init.c: Do not adjust pc for HPARITH on alpha/vms.
5462
5463 2008-03-26  Robert Dewar  <dewar@adacore.com>
5464
5465         * lib-xref.adb: (OK_To_Set_Reference): New function
5466         (Generate_Reference): Don't set referenced from occurrence in Warnings,
5467         Unmodified, or Unreferenced pragma
5468
5469 2008-03-26  Robert Dewar  <dewar@adacore.com>
5470
5471         * alloc.ads: Add entries for Warnings_Off_Pragmas table
5472
5473 2008-03-26  GNAT Script  <nobody@adacore.com>
5474
5475         * Make-lang.in: Makefile automatically updated
5476
5477 2008-03-26  Robert Dewar  <dewar@adacore.com>
5478
5479         * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
5480         par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
5481         removed, use Chars (Pragma_Identifier (..  instead, adjustments
5482         throughout to accomodate this change.
5483
5484         * s-pooglo.ads, s-pooloc.ads: Minor comment updates
5485
5486         * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
5487         Einfo.Set_Needs_Debug_Info)
5488
5489 2008-03-26  Robert Dewar  <dewar@adacore.com>
5490
5491         * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
5492         Add description for the new gnatstub option '--header-file'
5493         clarification of -gnatwz/-gnatwZ
5494         Add a "Irix-Specific Considerations" section to document the need to
5495         set LD_LIBRARY_PATH when using the default shared runtime library.
5496         Added documentation for both gcov and gprof.
5497
5498         * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
5499         messages that are not suppressed when clients are compiled.
5500         Add documentation of s-pooglo s-pooloc
5501         Document the new GNAT.Serial_Communications API.
5502         Add documentation for 'Old attribute
5503         Add description of pragma Optimize_Alignment
5504
5505         * ug_words: Add entries for -gnatw.w -gnatw.W
5506
5507         * usage.adb: Add line for -gnatw.w (warn on warnings off)
5508
5509 2008-03-25  Eric Botcazou  <ebotcazou@adacore.com>
5510
5511         Revert
5512         2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
5513         PR ada/35186
5514         * decl.c (maybe_pad_type): Avoid padding an integral type when
5515         bumping its alignment is sufficient.
5516
5517 2008-03-25  Arnaud Charlet  <charlet@adacore.com>
5518
5519         * exp_ch6.adb, exp_disp.adb: Update copyright notice.
5520         Fix wrong formatting (lines too long)
5521
5522 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5523
5524         * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
5525         a-calend-vms.adb, a-calend.adb, a-calend.ads,
5526         a-calfor.adb, a-chahan.ads, a-chtgke.adb,
5527         a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
5528         a-cohama.ads, a-comlin.ads, a-coorse.adb,
5529         a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
5530         a-except-2005.ads, a-except.adb, a-except.ads,
5531         a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
5532         a-exextr.adb, a-filico.ads, a-finali.ads,
5533         a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
5534         a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
5535         a-sequio.ads, a-strbou.ads, a-strfix.adb,
5536         checks.adb, exp_ch3.adb, exp_ch4.adb,
5537         exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
5538         exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
5539         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
5540         exp_dbug.ads, exp_disp.adb, exp_dist.adb,
5541         exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
5542
5543 2008-03-24  Robert Dewar  <dewar@adacore.com>
5544
5545         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
5546         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
5547         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
5548         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
5549         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
5550         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
5551         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
5552         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
5553         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
5554         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
5555         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
5556         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
5557         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
5558         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
5559         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
5560         double spaced if it fits on one line and otherwise single spaced.
5561
5562 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5563
5564         PR documentation/15479
5565         * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
5566         (doc/gnat_ugn_unw.texi): ... this, and adjusted.
5567         (doc/gnat_ugn.info): Renamed from ...
5568         (doc/gnat_ugn_unw.info): ... this.
5569         (doc/gnat_ugn.dvi): Renamed from ...
5570         (doc/gnat_ugn_unw.dvi): ... this.
5571         (doc/gnat_ugn.pdf): Renamed from ...
5572         (doc/gnat_ugn_unw.pdf): ... this.
5573         (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
5574         Adjusted.
5575         * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
5576         unconditionally to gnat_ugn.info.  Fix cross references to the
5577         GNAT Reference Manual.  Convert links to the GCC, GDB, Emacs,
5578         and GNU make manuals to be proper texinfo links.
5579         * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
5580
5581 2008-03-21  Olivier Hainque  <hainque@adacore.com>
5582
5583         * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
5584         ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
5585
5586 2008-03-21  Eric Botcazou  <ebotcazou@adacore.com>
5587
5588         * trans.c (addressable_p): Add notes on addressability issues.
5589
5590 2008-03-21  Olivier Hainque  <hainque@adacore.com>
5591             Ed Schonberg  <schonberg@adacore.com>
5592
5593         * trans.c (addressable_p): Accept COND_EXPR when both arms
5594         are addressable.
5595         (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
5596         (call_to_gnu): Do not use name reference in the error message
5597         for a misaligned by_reference_parameter. The actual may be a
5598         general expression.
5599
5600 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
5601
5602         * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
5603
5604 2008-03-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5605
5606         * gnat_rm.texi (Implementation Defined Characteristics)
5607         (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
5608         appropriate.
5609         * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
5610         (Switches for gnatchop, Installing a library): Likewise.
5611
5612 2008-03-10  Eric Botcazou  <ebotcazou@adacore.com>
5613
5614         * trans.c (emit_range_check): Do not emit the check if the base type
5615         of the expression is the type against which its range must be checked.
5616
5617 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
5618
5619         * decl.c (maybe_pad_type): Use value_factor_p.
5620
5621 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
5622
5623         * lang.opt (nostdlib): Move around.
5624         * misc.c (gnat_handle_option): Fix formatting.
5625         (gnat_dwarf_name): Move around.
5626         * trans.c (Case_Statement_to_gnu): Fix formatting.
5627         (gnat_to_gnu): Likewise.
5628         * utils.c (aggregate_type_contains_array_p): Likewise.
5629         (create_subprog_decl): Likewise.
5630
5631 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
5632
5633         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
5634         bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
5635
5636 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
5637
5638         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
5639         BIGGEST_ALIGNMENT when capping the alignment of records with
5640         strict alignment and size clause.
5641
5642 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
5643
5644         * lang-specs.h: Pass -gnatwa if -Wall is passed.
5645         * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
5646         and -Wuninitialized.
5647         (gnat_post_options): Clear warn_unused_parameter.
5648
5649 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
5650
5651         * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
5652         aligned bit-fields, bumping the alignment of the record type if deemed
5653         profitable.
5654         (value_factor_p): Return false instead of 0.
5655
5656 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
5657
5658         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
5659         for scalar types with small alignment.
5660
5661 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
5662
5663         * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
5664         from that of the front-end's end label.
5665         (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
5666         from that of the loop label.
5667
5668 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
5669
5670         * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
5671         comment for the packed array type case.
5672         * utils.c (build_template): Use a loop to strip padding or
5673         containing records for justified modular types.
5674
5675 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
5676
5677         * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
5678         large alignments specified for types.
5679         (validate_alignment): Minor cleanup.
5680
5681 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
5682
5683         * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
5684         (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
5685         the component for packing, if possible, as well as if a component
5686         size clause is specified.
5687         <E_Record_Subtype>: For an array type used to implement a packed
5688         array, get the component type from the original array type.
5689         Try to get a smaller form of the component for packing, if possible,
5690         as well as if a component size clause is specified.
5691         (round_up_to_align): New function.
5692         (make_packable_type): Add in_record parameter.
5693         For a padding record, preserve the size.  If not in_record and the
5694         size is too large for an integral mode, attempt to shrink the size
5695         by lowering the alignment.
5696         Ditch the padding bits of the last component.
5697         Compute sizes and mode manually, and propagate the RM size.
5698         Return a BLKmode record type if its size has shrunk.
5699         (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
5700         Use Original_Array_Type to retrieve the type in case of an error.
5701         Adjust call to make_packable_type.
5702         (gnat_to_gnu_field): Likewise.
5703         (concat_id_with_name): Minor tweak.
5704         * trans.c (larger_record_type_p): New predicate.
5705         (call_to_gnu): Compute the nominal type of the object only if the
5706         parameter is by-reference.  Do the conversion actual type -> nominal
5707         type if the nominal type is a larger record.
5708         (gnat_to_gnu): Do not require integral modes on the source type to
5709         avoid the conversion for types with identical names.
5710         (addressable_p): Add gnu_type parameter.  If it is specified, do not
5711         return true if the expression is not addressable in gnu_type.
5712         Adjust recursive calls.
5713         * utils.c (finish_record_type): Remove dead code.
5714
5715 2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
5716
5717         PR ada/35186
5718         * decl.c (maybe_pad_type): Avoid padding an integral type when
5719         bumping its alignment is sufficient.
5720
5721 2008-03-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5722
5723         * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
5724         * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
5725         statement.
5726         * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
5727         gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
5728         sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
5729         code output strings.
5730         * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
5731         system-vms_64.ads: Fix typos in ada source code comments.
5732         * sinfo-cn.adb: Remove incomplete sentence.
5733
5734         PR documentation/15479
5735         * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
5736
5737 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
5738
5739         PR ada/22255
5740         * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
5741
5742 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
5743
5744         PR ada/34799
5745         * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
5746         that underlying type is present.
5747
5748 2008-02-26  Tom Tromey  <tromey@redhat.com>
5749
5750         * misc.c (internal_error_function): Remove test of
5751         USE_MAPPED_LOCATION.
5752         * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
5753         (Sloc_to_locus): Remove old location code.
5754
5755 2008-02-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5756
5757         * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
5758         `i.e.' by adding comma or `@:' as appropriate.
5759         * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
5760         plain characters `C', use `@samp{C}'.
5761         * gnat_ugn.texi (File Naming Rules, About gnatkr)
5762         (Krunching Method): Likewise.
5763
5764         * gnat_ugn.texi (Conventions): List environment variables and
5765         metasyntactic variables.
5766         (Compiling Programs): Fix notation of metasyntactic variables.
5767         Add @file where appropriate.  Use @file for file extensions,
5768         @samp for strings.
5769         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
5770         instead of @file, @env instead of @code.
5771
5772 2008-02-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5773
5774         PR documentation/15479
5775         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
5776         and `...' with `@dots{}' or `@enddots{}'.
5777
5778         PR documentation/15479
5779         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
5780         use @command instead of @code, @option instead of @samp or @code,
5781         @code instead of @var, @samp instead of @file.
5782
5783         PR documentation/15479
5784         * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
5785         in Makefile rules, by using `&&' rather than `;'.
5786
5787 2008-02-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5788
5789         PR documentation/15479
5790         * gnat_ugn.texi: In non-code, avoid space before colon.
5791         (Regular Expressions in gnatfind and gnatxref): Fix indentation.
5792         (Examples of gnatxref Usage): Use @command{vi} instead of
5793         @file{vi}.
5794         (Character Set Control): Do not use @code for UTF-8.
5795         (Validity Checking): Fix typo "NaNs" instead of "NaN's".  Do not
5796         use @code for IEEE.
5797         * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
5798         sample.
5799         * gnat_rm.texi, gnat_ugn.texi: Fix typos.  Bump copyright years.
5800
5801 2008-02-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
5802
5803         PR ada/35143
5804         * env.c: Add __rtems__ to if defined.
5805         * s-osinte-rtems.adb: Add To_Target_Priority.  Fix formatting.
5806         * s-osinte-rtems.ads: Add To_Target_Priority prototype and
5807         PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants.  Add
5808         pragma Convention as required.
5809         * gsocket.h: Make compile in and out of RTS.
5810         * Makefile.in: Add system-rtems.ads.  Build DEC extensions.
5811         Use g-soccon-rtems.ads.
5812         * g-soccon-rtems.ads, system-rtems.ads: New files.
5813
5814 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5815
5816         PR other/35107
5817         * Make-lang.in (gnat1): Add $(GMPLIBS).
5818
5819 2008-01-26  Eric Botcazou  <ebotcazou@adacore.com>
5820
5821         * decl.c (components_to_record): Improve comment.
5822
5823 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
5824
5825         * decl.c (components_to_record): Do not reuse the empty union type
5826         if there is a representation clause on the record.
5827         * trans.c (addressable_p): Return true for INTEGER_CST.
5828
5829 2008-01-21  Eric Botcazou  <ebotcazou@adacore.com>
5830
5831         * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
5832         in pointer arithmetics.
5833         * utils2.c (build_allocator): Likewise.
5834
5835 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
5836
5837         * utils.c (build_function_stub): Properly build the call expression.
5838
5839 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
5840
5841         * decl.c (gnat_to_gnu_entity) <object>: Process renamings
5842         before converting the expression to the type of the object.
5843         * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
5844         Stabilize constructors for special wrapping types.
5845
5846 2008-01-13  Eric Botcazou  <ebotcazou@adacore.com>
5847
5848         * trans.c (call_to_gnu): Invoke the addressable_p predicate only
5849         when necessary.  Merge some conditional statements.  Update comments.
5850         Rename unchecked_convert_p local variable to suppress_type_conversion.
5851         Do not suppress conversions in the In case.
5852         (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
5853         into account on non strict-alignment platforms.
5854
5855 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
5856
5857         * utils.c (aggregate_type_contains_array_p): New predicate.
5858         (create_field_decl): In a packed record, force byte alignment
5859         for fields without specified position that contain an array.
5860
5861 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
5862
5863         * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
5864
5865 2008-01-10  John David Anglin  <dave.anglin.@nrc-cnrc.gc.ca>
5866
5867         PR ada/34466
5868         * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
5869         sysconf call.
5870         (bit_field): New packed boolean type used by cpu_set_t.
5871         (cpu_set_t): New type corresponding to the C type with
5872         the same name. Note that on the Ada side we use a bit
5873         field array for the affinity mask. There is not need
5874         for the C macro for setting individual bit.
5875         (pthread_setaffinity_np): New imported routine.
5876
5877 2008-01-03  Tero Koskinen  <tero.koskinen@iki.fi>
5878
5879         PR ada/34647
5880         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
5881         on OpenBSD as is done on other BSD systems.
5882
5883         PR ada/34645
5884         * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
5885         getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
5886         I/O.
5887
5888         PR ada/34644
5889         * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
5890         clearenv().
5891
5892         PR ada/34646
5893         * init.c (__gnat_error_handler, __gnat_install_handler,
5894         __gnat_init_float): Define for OpenBSD.
5895
5896         * initialize.c (__gnat_initialize): Define for OpenBSD.
5897
5898 2007-12-27  Samuel Tardieu  <sam@rfc1149.net>
5899
5900         PR ada/34553
5901         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
5902         instead of mktemp() or tmpnam() on NetBSD.
5903
5904 2007-12-23  Eric Botcazou  <ebotcazou@adacore.com>
5905
5906         * trans.c (call_to_gnu): Make the temporary for non-addressable
5907         In parameters passed by reference.
5908         (addressable_p): Return true for STRING_CST and CALL_EXPR.
5909
5910 2007-12-19  Robert Dewar  <dewar@adacore.com>
5911
5912         * g-expect-vms.adb, g-expect.adb, s-poosiz.adb: 
5913         Add pragma Warnings (Off) for unassigned IN OUT arguments
5914
5915         * sem_warn.adb (Output_Reference): Suppress messages for internal names
5916         (Check_References): Extensive changes to tune up warnings
5917         (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
5918         (Has_Pragma_Unmodifed_Check_Spec): New function
5919         (Check_References): Implement pragma Unmodified
5920         (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
5921
5922         * par-prag.adb: Dummy entry for pragma Unmodified
5923
5924         * sem_prag.adb: Implement pragma Unmodified
5925
5926         * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
5927         (Proc_Next_Component_Or_Discriminant): Fix typo.
5928         Update comments.
5929
5930         * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
5931         Unmodified.
5932         (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
5933         because the former already takes care of discarding the result.
5934         (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
5935         Add comment.
5936
5937         * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
5938
5939 2007-12-19  Eric Botcazou  <ebotcazou@adacore.com>
5940
5941         * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
5942         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
5943         system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
5944         system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
5945         system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
5946         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
5947         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
5948         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
5949         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
5950         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
5951         (Dynamic_Trampolines_Used): Delete.
5952
5953         * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
5954         Turn on stack probing mechanism on LynxOS.
5955
5956 2007-12-19  Bob Duff  <duff@adacore.com>
5957
5958         * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
5959         the resulting tail recursion by hand. This prevents running out of
5960         memory on deeply nested concatenations, since Field2 is where the left
5961         operand of concatenations is stored.
5962         Fix bug (was returning OK_Orig in some cases). Fix return subtype to
5963         clarify that it can only return OK or Abandon.
5964
5965         * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
5966         operand by iteration, in order to avoid running out of memory on
5967         deeply-nested concatenations. Use the Parent pointer to get back up the
5968         tree.
5969         (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
5970          Resolve_Op_Concat_Rest): New procedures split out of
5971         Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
5972         clearer.
5973
5974         * checks.adb (Remove_Checks): Use Traverse_Proc instead of
5975         Traverse_Func, because the former already takes care of discarding the
5976         result.
5977
5978         * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
5979         because the former already takes care of discarding the result.
5980         (Remove_Warning_Messages): Use appropriate subtype for Status and
5981         Discard 
5982
5983 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
5984
5985         * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
5986         discriminants forces expansion of the aggregate into assignments.
5987         (Init_Record_Controller):  If the type of the aggregate is untagged and
5988         is not inherently limited, the record controller is not limited either.
5989
5990 2007-12-19  Robert Dewar  <dewar@adacore.com>
5991
5992         * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
5993         handling compile time known size of record or array (case of front end
5994         layout active, e.g. in GNAAMP).
5995
5996 2007-12-19  Javier Miranda  <miranda@adacore.com>
5997
5998         * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
5999         that forces the construction of static dispatch tables in case of
6000         record subtypes.
6001
6002 2007-12-19  Robert Dewar  <dewar@adacore.com>
6003
6004         * exp_ch9.adb (Null_Statements): Moved to library level
6005         (Trivial_Accept_OK): New function
6006         (Expand_Accept_Declaration): Use Trivial_Accept_OK
6007         (Expand_N_Accept_Statement): Use Trivial_Accept_OK
6008
6009 2007-12-19  Robert Dewar  <dewar@adacore.com>
6010
6011         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
6012         in complex case where array is Volatile.
6013
6014 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
6015
6016         * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
6017         properly the Ada2005 rules concerning when the current instance of a
6018         record type is aliased.
6019
6020 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
6021
6022         * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
6023         mangled declaration
6024         (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
6025         declarations.
6026         (P_Variant_Part): Cleaner patch for parenthesized discriminant
6027
6028 2007-12-19  Vincent Celier  <celier@adacore.com>
6029
6030         * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
6031         package is not known
6032
6033         * prj-attr.ads (Unknown_Package): New constant
6034         Do not crash when an unknown package is in several projects
6035
6036         * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
6037         ignored
6038
6039         * prj-nmsc.adb (Check): Remove obsolete code related to no longer
6040         existing package Language_Processing.
6041
6042 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
6043             Gary Dismukes  <dismukes@adacore.com>
6044             Samuel Tardieu  <sam@rfc1149.net>
6045
6046         PR ada/15803, ada/15805
6047         * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
6048         illegal access subtypes when there is a constrained partial view.
6049         (Check_For_Premature_Usage): New procedure inside
6050         Access_Subprogram_Declaration for checking that an access-to-subprogram
6051         type doesn't reference its own name within any formal parameters or
6052         result type (including within nested anonymous access types).
6053         (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
6054         (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
6055         context is an access_to_variable, the expression cannot be an
6056         access_to_constant.
6057
6058 2007-12-19  Bob Duff  <duff@adacore.com>
6059
6060         * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
6061         (Analyze_Concatenation): Use iteration instead of recursion in order
6062         to avoid running out of stack space for deeply nested concatenations.
6063
6064 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
6065             Gary Dismukes  <dismukes@adacore.com>
6066
6067         * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
6068         whose renamed entity is a subprogram that requires overriding.
6069         (Premature_Usage): Test for the case of N_Full_Type_Declaration when
6070         issuing an error for premature usage and issue a message that says
6071         'type' rather than 'object'.
6072
6073 2007-12-19  Gary Dismukes  <dismukes@adacore.com>
6074
6075         PR ada/34149
6076         * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
6077         presence of a statically tagged operand (Present (Static_Tag)) with
6078         test for Indeterm_Ancestor_Call when determining whether to propagate
6079         the static tag to tag-indeterminate operands (which forces dispatching
6080         on such calls).
6081         (Check_Controlling_Formals): Ada2005, access parameters can have
6082         defaults.
6083         (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
6084         not insert subprogram in list of primitive operations if already there.
6085
6086 2007-12-19  Tristan Gingold  <gingold@adacore.com>
6087
6088         * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
6089         global variable.
6090
6091 2007-12-19  Thomas Quinot  <quinot@adacore.com>
6092
6093         Part of PR ada/33688
6094         * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
6095         datagram info on Linux.
6096
6097 2007-12-19  Vincent Celier  <celier@adacore.com>
6098
6099         * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
6100         that the source path name is always found in the dependencies.
6101
6102 2007-12-19  Robert Dewar  <dewar@adacore.com>
6103
6104         * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
6105         Fix name of Wide_Wide_Latin_1/9 file names
6106         Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
6107         Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
6108         Add missing documentation for Ada.Command_Line.Response_File
6109         Update list of warning letters for Warnings pragma
6110         Add documentation for pragma Unmodified
6111
6112 2007-12-19  Samuel Tardieu  <sam@rfc1149.net>
6113
6114         * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
6115
6116 2007-12-17  Arnaud Charlet  <charlet@adacore.com>
6117
6118         * s-vxwork-alpha.ads: Removed, no longer used.
6119
6120 2007-12-15  Jakub Jelinek  <jakub@redhat.com>
6121
6122         * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
6123
6124 2007-12-13  Samuel Tardieu  <sam@rfc1149.net>
6125
6126         PR ada/34360
6127         * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
6128         mlib-tgt-specific.adb.
6129
6130 2007-12-13  Bob Duff  <duff@adacore.com>
6131
6132         * trans.c (Attribute_to_gnu): Check for violations of the
6133         No_Implicit_Dynamic_Code restriction. This checking used to be done in
6134         the front end, but is moved here so we can make it more accurate.
6135
6136 2007-12-13  Pascal Obry  <obry@adacore.com>
6137
6138         * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
6139          version is provided for older GNU/Linux distribution not
6140          supporting thread affinity sets.
6141         
6142         * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
6143         call.
6144         (bit_field): New packed boolean type used by cpu_set_t.
6145         (cpu_set_t): New type corresponding to the C type with
6146         the same name. Note that on the Ada side we use a bit
6147         field array for the affinity mask. There is not need
6148         for the C macro for setting individual bit.
6149         (pthread_setaffinity_np): New imported routine.
6150         
6151         * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
6152         no null.
6153         (Create_Task): Set the processor affinity mask if information
6154         is present.
6155         
6156         * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
6157         
6158 2007-12-13  Robert Dewar  <dewar@adacore.com>
6159
6160         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, 
6161         s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads, 
6162         s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads, 
6163         s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
6164         s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
6165         s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads, 
6166         s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads, 
6167         i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
6168         for subprogram pointers.
6169
6170         * g-ctrl_c.adb: New file.
6171
6172         * g-ctrl_c.ads (Install_Handler): New body.
6173
6174         * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
6175         instead of obsolete function Is_Always_Inlined.
6176         (Freeze_Entity): check for tagged type in imported C subprogram
6177         (Freeze_Entity): check for 8-bit boolean in imported C subprogram
6178         (Freeze_Entity): check for convention Ada subprogram pointer in
6179         imported C subprogram.
6180         (Freeze_Fixed_Point_Type): In the case of a base type where the low
6181         bound would be chopped off and go from negative to zero, force
6182         Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
6183         bound) so that the size computation for the base type will take
6184         negative values into account.
6185
6186 2007-12-13  Eric Botcazou  <ebotcazou@adacore.com>
6187             Bob Duff  <duff@adacore.com>
6188             Tristan Gingold  <gingold@adacore.com>
6189
6190         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
6191         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads, 
6192         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
6193         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
6194         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads, 
6195         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
6196         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
6197         system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
6198         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
6199         system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
6200         system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
6201         (Always_Compatible_Rep): New flag to control trampolines globally.
6202         (Dynamic_Trampolines_Used): New flag for implementing the
6203         No_Implicit_Dynamic_Code restriction more correctly (not yet used,
6204         and not yet set correctly for some targets).
6205
6206         * s-taprop-vxworks.adb: Use stack limit method of stack checking.
6207         Simply indirectly call s-stchop when a task is created.
6208
6209         * ali.ads: 
6210         New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
6211         appears as an argument (entries A) in an ALI file.
6212
6213         * fe.h (Stack_Check_Limits): Declare new target parameter.
6214         (Check_Implicit_Dynamic_Code_Allowed): New procedure.
6215
6216         * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
6217         This variable is declared in C to be sure not subject to elaboration
6218         code.
6219         (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
6220         Storage_Error.
6221
6222         * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
6223         (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
6224
6225         * s-stchop.ads: Add comments.
6226
6227         * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
6228         limit method of stack checking.
6229
6230         * s-stchop-limit.ads: New file.
6231
6232 2007-12-13  Robert Dewar  <dewar@adacore.com>
6233
6234         * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb, 
6235         a-cihama.adb, g-awk.adb, 
6236         s-inmaop-posix.adb: Update handling of assigned value/unreferenced
6237         warnings
6238
6239         * exp_smem.adb: Update handling of assigned value/unreferenced warnings
6240
6241         * sem.adb: Update handling of assigned value/unreferenced warnings
6242
6243         * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
6244
6245         * lib-xref.ads: Improve documentation for k xref type
6246
6247         * lib-xref.adb: 
6248         Update handling of assigned value/unreferenced warnings
6249         (Generate_Reference): Warning for reference to entity for which a
6250         pragma Unreferenced has been given should be unconditional.
6251         If the entity is a discriminal, mark the original
6252         discriminant as referenced.
6253
6254         * sem_warn.ads, sem_warn.adb
6255         (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
6256         no entities referenced in package
6257         (Check_One_Unit): Don't give message about no entities referenced in
6258         a package if a pragma Unreferenced has appeared.
6259         Handle new warning flag -gnatw.a/-gnatw.A
6260         Update handling of assigned value/unreferenced warnings
6261
6262         * atree.h: Add flags up to Flag247
6263         (Flag231): New macro.
6264
6265 2007-12-13  Jose Ruiz  <ruiz@adacore.com>
6266
6267         * adaint.h: (__gnat_plist_init): Not defined for RTX.
6268
6269         * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
6270         RTX systems.
6271
6272         * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
6273         (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
6274         EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
6275         GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
6276
6277         * mingw32.h: 
6278         Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
6279
6280         * sysdep.c (winflush_function for RTX): Procedure that does nothing
6281         since we only have problems with Windows 95/98, which are not
6282         supported by RTX.
6283         (__gnat_ttyname): Return the empty string on Nucleus, just as
6284         done on vxworks.
6285
6286 2007-12-13  Robert Dewar  <dewar@adacore.com>
6287
6288         * a-textio.adb, a-textio.ads: 
6289         Extensive changes to private part for wide character encoding
6290
6291         * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
6292         (Look_Ahead): Fix mishandling of encoded sequences
6293         Move declaration of Wch_Con to private part (should not be visible)
6294
6295         * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
6296         UTF-8. Probably this is never used, but if it is, brackets is
6297         clearly correct.
6298
6299         * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
6300         setting wide character encoding for no main program case and when
6301         encoding is specified using -W?
6302         Initialize stack limit of environment task if stack limit method of
6303         stack checking is enabled.
6304         (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
6305         (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
6306         (Get_Main_Unit_Name): New function.
6307         (Gen_Adainit_Ada): Add call to main program for .NET when needed.
6308         (Gen_Output_File): Set Bind_Main_Program to True for .NET
6309
6310         * bindusg.adb: Add line for -Wx switch
6311
6312         * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
6313         Add comments
6314         Add new useful constant WC_Longest_Sequences
6315
6316         * switch-b.adb: Clean up handling of -Wx switch
6317         For -gnatWx, set Wide_Character_Encoding_Method_Specified
6318
6319         * switch-c.adb: -gnatg activates warning on assertion errors
6320         For -gnatWx, set Wide_Character_Encoding_Method_Specified
6321
6322         * s-wchcon.adb: (Is_Start_Of_Encoding): New function
6323
6324 2007-12-13  Robert Dewar  <dewar@adacore.com>
6325             Ed Schonberg  <schonberg@adacore.com>
6326
6327         * a-ngcoty.adb: New pragma Fast_Math
6328
6329         * opt.adb: New pragma Fast_Math
6330
6331         * par-prag.adb: 
6332         Add Implemented_By_Entry to the list of pragmas which do not require any
6333         special processing.
6334         (Favor_Top_Level): New pragma.
6335         New pragma Fast_Math
6336
6337         * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
6338         (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
6339         Expand_Allocator_Expression): Take into account VM_Target
6340         (Expand_Attribute, case 'Identity):  Handle properly the case where
6341         the prefix is a task interface.
6342         New pragma Fast_Math
6343
6344         * par.adb (Next_Token_Is): New function
6345         (P_Pragma): Add Skipping parameter
6346         (U_Left_Paren): New procedure
6347         (U_Right_Paren): New procedure
6348         New pragma Fast_Math
6349
6350         * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
6351         subunit
6352         New pragma Fast_Math
6353
6354         * sem_prag.adb: Add significance value to table Sig_Flag for pragma
6355         Implemented_By_Entry.
6356         (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
6357         (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
6358         items, since it can apply to more than one overloadable entity. Set
6359         new flag Has_Pragma_Inline_Always for Inline_Always case.
6360         (Analyze_Pragma, case Complex_Representation): Improve error message.
6361         (Analyze_Pragma, case Assert): When assertions are disabled build the
6362         rewritten code with Sloc of expression rather than pragma, so new
6363         warning about failing is not deleted.
6364         (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
6365         protected types and update error message to reflect that. Test whether
6366         the protected type is allowed for the pragma (an error is issued if the
6367         type has any entries, or components that do not have preelaborable
6368         initialization).
6369         New pragma Fast_Math
6370         (Analyze_Pragma, case No_Return): Handle generic instance
6371
6372         * snames.h, snames.ads, snames.adb: 
6373         Add new predefined name for interface primitive _Disp_Requeue.
6374         New pragma Fast_Math
6375
6376         * a-tags.ads, a-tags.adb: New calling sequence for
6377         String_To_Wide_[Wide_]String
6378         (Secondary_Tag): New subprogram.
6379
6380         * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
6381         from Exp_Attr
6382         New calling sequence for String_To_Wide_[Wide_]String
6383         (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
6384         the use of the secondary stack for image routines.
6385
6386         * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
6387         calling sequence for String_To_Wide_[Wide_]String
6388
6389         * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
6390         Ada 95 mode
6391         (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
6392         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
6393
6394         * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
6395         (P_Formal_Part): Use Skipping parameter in P_Pragma call
6396         to improve error recovery
6397
6398         * par-util.adb (Next_Token_Is): New function
6399         (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
6400
6401         * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
6402         semicolon if missing
6403         (P_Pragma): Implement new Skipping parameter
6404         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
6405         Fix location of flag for unrecognized pragma message
6406
6407         * par-tchk.adb (U_Left_Paren): New procedure
6408         (U_Right_Paren): New procedure
6409
6410 2007-12-13  Geert Bosch  <bosch@adacore.com>
6411
6412         * a-tifiio.adb: 
6413         (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
6414         the second or later Scaled_Divide would omit leading zeroes,
6415         resulting in too few digits produced and a Layout_Error as result.
6416         (Put): Initialize Pos.
6417
6418 2007-12-13  Robert Dewar  <dewar@adacore.com>
6419
6420         atree.ads, atree.adb (Flag231..Flag247): New functions
6421         (Set_Flag231..Set_Flag247): New procedures
6422         (Basic_Set_Convention): Rename Set_Convention to be
6423         Basic_Set_Convention
6424         (Nkind_In): New functions
6425         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
6426
6427         * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
6428         instead
6429          of obsolete function Is_Always_Inlined
6430         (Register_Predefined_DT_Entry): Initialize slots of the second
6431         secondary dispatch table.
6432         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
6433         (Expand_N_Function_Call): Remove special provision for stack checking.
6434
6435         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
6436         Include _Disp_Requeue in the list of predefined operations.
6437         (Find_Interface_ADT): Modified to fulfill the new specification.
6438         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
6439
6440         * par-ch4.adb, nlists.ads, nlists.adb: 
6441         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
6442
6443         * sinfo.ads, sinfo.adb: (Nkind_In): New functions
6444         Fix location of flag for unrecognized pragma message
6445
6446         * sem_ch7.adb: Use Nkind_In
6447
6448 2007-12-13  Vincent Celier  <celier@adacore.com>
6449
6450         * opt.ads: 
6451         Indicate what flags are used by the Project Manager, gprbuild and
6452         gprclean.
6453         (Opt.Follow_Links_For_Dirs): New flag
6454         (Warn_On_Assertion_Failure): New flag
6455         (Wide_Character_Encoding_Method_Specified): New flag
6456         (Suppress_All_Inlining): New switch set by -fno-inline
6457         (Real_VMS_Target): New flag
6458         New pragma Fast_Math
6459
6460 2007-12-13  Robert Dewar  <dewar@adacore.com>
6461
6462         * back_end.adb: Recognize -fno-inline
6463
6464 2007-12-13  Robert Dewar  <dewar@adacore.com>
6465
6466         * checks.adb: Fix optimization problem with short-circuited form
6467
6468 2007-12-13  Bob Duff  <duff@adacore.com>
6469
6470         * clean.adb (Usage): Add line for -aP
6471         (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
6472         with a parameter "procedure Usage", instead of passing a pointer to a
6473         procedure. This is to eliminate trampolines (since the Usage procedure
6474         is often nested in a main procedure, and it would be inconvenient to
6475         unnest it).
6476
6477         * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
6478         to be generic, with a parameter "procedure Callback (...)", instead of
6479         passing a pointer to a procedure. This is to eliminate trampolines
6480         (since the Callback procedure is usually nested).
6481
6482         * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb, 
6483         gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
6484         (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
6485
6486         * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
6487         Use the generic Heap_Sort_G instead of Heap_Sort_A.
6488
6489 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
6490
6491         * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
6492         (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
6493         (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
6494         (Renamed_In_Spec): New flag
6495         (Has_Pragma_Inline_Always): New flag
6496         Add missing doc for pragma Obsolescent_Warning
6497         Add missing doc for 17 additional unused flags (230-247)
6498         (Is_Derived_Type): Remove condition "not Is_Generic_Type".
6499         Alphabetize with clauses.
6500         Separate Is_Thunk and Has_Thunks flags
6501         (Write_Entity_Flags): Add forgotten entry for Has_Thunks
6502         (Related_Interface): Renamed to Related_Type.
6503         (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
6504         (Set_Is_Flag): Restrict the assertion.
6505
6506 2007-12-13  Vincent Celier  <celier@adacore.com>
6507
6508         * errout.adb (Output_Source_Line): Do not keep a trailing space after
6509         the source line number if the source line is empty.
6510
6511 2007-12-13  Geert Bosch  <bosch@adacore.com>
6512
6513         * eval_fat.adb (Decompose_Int): Handle argument of zero.
6514         (Compose): Remove special casing of zero.
6515         (Exponent): Likewise.
6516         (Fraction): Likewise.
6517         (Machine): Likewise.
6518         (Decompose): Update comment.
6519
6520 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
6521
6522         * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
6523         limited ancestor part, initialize controllers of enclosing record
6524         before expanding ancestor aggregate.
6525         (Gen_Assign): If a component of the aggregate is box-initialized, add
6526         code to call Initialize if the component is controlled, and explicit
6527         assignment of null if the component is an access type.
6528
6529         Handle properly aggregates for limited types that appear in object
6530         declarations when the aggregate contains controlled values such as
6531         protected types.
6532         When expanding limited aggregates into individual components, do not
6533         call Adjust on controlled components that are limited.
6534
6535 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
6536
6537         * expander.adb: Take into account N_Subprogram_Renaming_Declaration
6538
6539 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
6540
6541         * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
6542         predefined primitive _Disp_Requeue.
6543         (Make_Predefined_Primitive_Specs): Create the spec for predefined
6544         primitive _Disp_Requeue.
6545         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
6546         type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
6547         (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
6548         an interface type. In case of limited interfaces we now declare all the
6549         predefined primitives associated with synchronized interfaces as
6550         abstract.
6551         (Predef_Spec_Or_Body): For interface types generate abstract subprogram
6552         declarations.
6553         (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
6554         tagged type is an interface type and there is no user-defined equality
6555         function.
6556         Add also bodies of predefined primitives associated with synchronized
6557         interfaces.
6558         (Freeze_Record_Type): Do not build bodies of predefined primitives of
6559         interface types because they are now defined abstract.
6560         Add missing documentation.
6561         (Expand_Record_Controller): Update occurrence of Related_Interface
6562         to Related_Type.
6563         (Build_Offset_To_Top_Functions): Do nothing in case of VM.
6564         (Expand_N_Object_Declaration): Take into account VM_Target when handling
6565         class wide interface object declaration.
6566         (Expand_Previous_Access_Type): Do not create a duplicate master entity
6567         if the access type already has one.
6568         (Expand_N_Object_Declaration): Defend against attempt to validity check
6569         generic types. Noticed for -gnatVcf specified with previous errors.
6570
6571 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
6572
6573         * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
6574         Expand_Allocator_Expression): Take into account VM_Target
6575
6576         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
6577         secondary stack when VM_Target /= No_VM
6578
6579 2007-12-13  Javier Miranda  <miranda@adacore.com>
6580             Ed Schonberg  <schonberg@adacore.com>
6581
6582         * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
6583         Is_Complation_Unit by Is_Library_Level_Entity in the code
6584         that decides if the static dispatch tables need to be built.
6585         (Wrap_Transient_Declaration): Do not generate a finalization call if
6586         this is a renaming declaration and the renamed object is a component
6587         of a controlled type.
6588
6589 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
6590
6591         * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
6592         In the case where the renamed subprogram is a dereference, call
6593         Force_Evaluation on the prefix.
6594
6595 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
6596             Ed Schonberg  <schonberg@adacore.com>
6597
6598         * exp_ch9.adb (Expand_N_Asynchronous_Select,
6599         Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
6600         comment reformatting.
6601         (Set_Privals): Inherit aliased flag from formal. From code reading.
6602         (Build_Simple_Entry_Call): Out parameters of an access type are passed
6603         by copy and initialized from the actual. This includes entry parameters.
6604         (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
6605         and Ada 2005 models of requeue.
6606         (Null_Statements): Still connsider do-end block null if it contains
6607         Unreferenced and Warnings pragmas.
6608         (Expand_N_Accept_Statement): Do not optimize away null do end if
6609         dispatching policy is other than defaulted.
6610         (Expand_N_Timed_Entry_Call): When the triggering statement is a
6611         dispatching call, manually analyze the delay statement.
6612         (Find_Parameter_Type): Move subprogram to Sem_Util.
6613
6614 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
6615             Javier Miranda  <miranda@adacore.com>
6616
6617         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
6618         _Disp_Requeue occupies dispatch table slot number 15. Move
6619         _Disp_Timed_Select to slot 16.
6620         (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
6621         generate the spec and body of _Disp_Reqeueue.
6622         (Make_DT): Build and initialize the second dispatch table.
6623         Handle initialization of RC_Offset when the parent
6624         is a private type with variable size components.
6625         (Make_Secondary_DT): Complete documentation. Add support to
6626         initialize the second dispatch table.
6627         (Make_Tags): Generate the tag of the second dispatch table.
6628         (Register_Primitive): Add support to register primitives in the
6629         second dispatch table.
6630
6631 2007-12-13  Pascal Obry  <obry@adacore.com>
6632
6633         * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
6634         Windows. This signal is used by gnatmake to kill child processes for
6635         example.
6636
6637 2007-12-13  Javier Miranda  <miranda@adacore.com>
6638
6639         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
6640         support for generic dispatching constructor calls in which we need to
6641         locate the tag of a secondary dispatch table associated with an
6642         interface type to properly dispatch the call.
6643         (Expand_N_Attribute_Reference [case Address],
6644         Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
6645         handling of VM targets.
6646
6647 2007-12-13  Robert Dewar  <dewar@adacore.com>
6648             Ed Schonberg  <schonberg@adacore.com>
6649
6650         * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
6651         assert fail
6652
6653         * ug_words: Add entries for -gnatw.a -gnatw.A
6654
6655         * sem_res.adb (Set_String_Literal_Subtype): If the context of the
6656         literal is a subtype with non-static constraints, use the base type of
6657         the context as the base of the string subtype, to prevent type
6658         mismatches in gigi.
6659         (Resolve_Actuals): If the actual is an entity name, generate a
6660         reference before the actual is resolved and expanded, to prevent
6661         spurious warnings on formals of enclosing protected operations.
6662         (Analyze_Overloaded_Selected_Component): If type of prefix if
6663         class-wide, use visible components of base type.
6664         (Resolve_Selected_Component): Ditto.
6665         (Resolve_Short_Circuit): Detect case of pragma Assert argument
6666         evaluating to False, and issue warning message.
6667
6668         * usage.adb: Add lines for -gnatw.a and -gnatw.A
6669
6670 2007-12-13  Emmanuel Briot  <briot@adacore.com>
6671
6672         * g-calend.ads (No_Time): New constant, to represent an uninitialized
6673         time value
6674
6675         * g-catiio.ads, g-catiio.adb (Value): Added support for more date
6676         formats.
6677         (Month_Name_To_Number): New subprogram
6678
6679         * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
6680         letter to upper-case.
6681
6682 2007-12-13  Robert Dewar  <dewar@adacore.com>
6683             Ed Schonberg  <schonberg@adacore.com>
6684
6685         * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
6686
6687         * layout.adb (Resolve_Attribute, case 'Access): If designated type of
6688         context is a limited view, use non-limited view when available. If the
6689         non-limited view is an unconstrained array, this enforces consistency
6690         requirements in 3.10.2 (27).
6691         (Layout_Type): For an access type whose designated type is a limited
6692         view, examine its declaration to determine if it is an unconstrained
6693         array, and size the access type accordingly.
6694         (Layout_Type): Do not force 32-bits for convention c subprogram
6695         pointers in -gnatdm mode, only if real vms target.
6696
6697         * sem_attr.adb (Analyze_Access_Attribute): Use new flag
6698         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
6699         (Analyze_Access_Attribute,Attribute_Address): Remove checks for
6700         violations of the No_Implicit_Dynamic_Code restriction.
6701         (Resolve_Attribute, case 'Access): If designated type of context is a
6702         limited view, use non-limited view when available. If the non-limited
6703         view is an unconstrained array, this enforces consistency requirements
6704         in 3.10.2 (27).
6705         (Layout_Type): For an access type whose designated type is a limited
6706         view, examine its declaration to determine if it is an unconstrained
6707         array, and size the access type accordingly.
6708
6709 2007-12-13  Vincent Celier  <celier@adacore.com>
6710
6711         * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
6712         object directory of main project does not exist.
6713         On VMS, correctly set then environment variable for the source
6714         directories.
6715
6716 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
6717
6718         * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
6719         set to True this procedure will create the value of type REG_EXPAND_SZ.
6720         It was only possible to create REG_SZ values before.
6721
6722 2007-12-13  Robert Dewar  <dewar@adacore.com>
6723
6724         * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
6725         g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
6726         namet-sp.adb, namet-sp.ads: New files.
6727
6728         * g-speche.adb: Use generic routine in g-spchge
6729
6730         * s-wchcnv.ads, s-wchcnv.adb: 
6731         Minor code cleanup (make formal type consistent with spec)
6732
6733         * namet.adb: Update comments.
6734
6735         * par-endh.adb (Evaluate_End_Entry): Use new
6736         Namet.Sp.Is_Bad_Spelling_Of function
6737
6738         * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
6739
6740         * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
6741         ancestor is an access type initialized with a box, set its type
6742         explicitly, for use in subsequent expansion.
6743         (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
6744         function
6745
6746 2007-12-13  Robert Dewar  <dewar@adacore.com>
6747
6748         * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
6749         access Vstring)
6750
6751 2007-12-13  Robert Dewar  <dewar@adacore.com>
6752
6753         * inline.adb (Back_End_Cannot_Inline): Use new flag
6754         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
6755
6756         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
6757         Has_Pragma_Inline_Always instead.
6758         of obsolete function Is_Always_Inlined
6759         (Build_Body_To_Inline): Same change
6760         (Cannot_Inline): Same change
6761         Do not give warning on exception raise in No_Return function
6762
6763         * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
6764         component has two inconsistent component clauses in the same record
6765         representation clause, favor the message that complains about
6766         duplication rather than inconsistency.
6767         Update comments.
6768         (Record_Representation_Clause): Do not warn on missing component
6769         clauses for inherited components of a type extension.
6770         (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
6771         an overloadable item if it is a pragma that can apply to multiple
6772         overloadable entities (e.g. Inline) because a pragma cannot be on
6773         more than one chain at a time.
6774         (Validate_Unchecked_Conversion): Add code to warn on unchecked
6775         conversion where one of the operands is Ada.Calendar.Time.
6776         (Analyze_Attribute_Definition_Clause): Fix typo in error message.
6777         For now, ignore Component_Size clause on VM targets, as done for
6778         pragma Pack.
6779
6780 2007-12-13  Emmanuel Briot  <briot@adacore.com>
6781             Vincent Celier  <celier@adacore.com>
6782
6783         * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
6784         string
6785         (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
6786         prj.ads
6787         (Hash): Move instantiation of System.HTable.Hash from spec to body
6788         (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
6789         systems, since we do not need to recompute the Name_Id for the canonical
6790         file name.
6791         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
6792         as a parameter. This parameter is in fact always "ada" in all calls, and
6793         we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
6794         while loading a project with 40000 files
6795
6796         * prj-attr.adb: Fix name of attribute Dependency_Driver
6797         Change the kind of indexing for attribute Root
6798
6799         * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
6800         variables already declared, in case constructions.
6801
6802         * prj-env.adb (Initialize): Reset Current_Source_Path_File and
6803         Current_Object_Path_File to No_Path.
6804
6805         * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
6806         ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
6807
6808         * prj-makr.adb: new parameter Current_Dir
6809
6810         * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
6811         Ada sources when language is not Ada.
6812         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
6813         (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
6814         (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
6815         (Locate_Directory): Always resolve links when computing Canonical_Path
6816         (Look_For_Sources): Make sure that Name_Buffer contains the file name
6817         in Source_Files before checking for the presence of a directory
6818         separator.
6819         Optimize calls to Name_Find when on case sensitive systems.
6820         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
6821         as a parameter.
6822         (Prj.Nmsc.Check): new parameter Current_Dir
6823         (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
6824         cannot be empty and the spec suffix cannot be the same as the body or
6825         separate suffix.
6826         (Get_Unit): When a file name can be of several unit kinds (spec, body or
6827         subunit), always consider the longest suffix.
6828         (Check_Configuration): Do not issue an error if there is no compiler
6829         for a language. Just issue a warning and ignore the sources for the
6830         language.
6831         (Check_Library_Attributes): Only check Library_Dir if Library_Name is
6832         not empty.
6833         (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
6834         (Unit_Exceptions): New hash table
6835         (Check_Naming_Schemes): Check if a file that could be a unit because of
6836         the naming scheme is not in fact a source because there is an exception
6837         for the unit.
6838         (Look_For_Sources): Put the unit exceptions in hash table
6839         Unit_Exceptions
6840         (Get_Unit_Exceptions): Give initial value No_Source to local variable
6841         Other_Part to avoid exception when code is compiled with validity
6842         checking.
6843         (Get_Sources_From_File): Check that there is no directory information
6844         in the file names.
6845         (Look_For_Sources): Check that there is no directory information in the
6846         list of file names in Source_Files.
6847         (Look_For_Sources): In multi-language mode, do not allow exception file
6848         names that are excluded.
6849         (Excluded_Sources_Htable): New hash table
6850         (Search_Directories.Check_File): New procedure to simplify
6851         Search_Directories.
6852         (Search_Directories): Do not consider excluded sources
6853         (Look_For_Sources): Populate Excluded_Sources_Htable before calling
6854         Search_Directories.
6855         (Get_Exceptions): Set component Lang_Kind of Source_Data
6856         (Get_Unit_Exceptions): Ditto
6857         (Search_Directories): Ditto
6858
6859         * prj-pars.adb: new parameter Current_Dir
6860
6861         * prj-part.ads, prj-part.adb: 
6862         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
6863         (Opt.Follow_Links_For_Dirs): New flag
6864         (Project_Path_Name_Of): Cache information returned by this routine as
6865         Locate_Regular_File is a costly routine. The code to output a log
6866         information and the effective call to Locate_Regular_File is now
6867         factorized into a routine (code clean-up).
6868         (Parse, Parse_Single_Project): new parameter Current_Dir
6869         When main project file cannot be found, indicate in the error
6870         message the project path that was used to do the search.
6871
6872         * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
6873         (Prj.Proc.Process*): new parameter Current_Dir
6874
6875         * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
6876
6877 2007-12-13  Bob Duff  <duff@adacore.com>
6878
6879         * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
6880         procedure to be called from the back end to check the
6881         No_Implicit_Dynamic_Code restriction.
6882
6883 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
6884
6885         * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
6886         Fixes another case where RTE_Available_Call was ignored instead of being
6887         taken into account.
6888         (Load_Fail): Ditto.
6889
6890         * rtsfind.ads: Add new entries.
6891
6892 2007-12-13  Robert Dewar  <dewar@adacore.com>
6893
6894         * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
6895         g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
6896
6897         * scn.adb: Implement BOM recognition
6898
6899 2007-12-13  Thomas Quinot  <quinot@adacore.com>
6900             Ed Schonberg  <schonberg@adacore.com>
6901
6902         * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
6903         subprogram body that acts as its own spec may not have a non-private
6904         WITH clause on a private sibling.
6905         (Build_Unit_Name): If the parent unit in the name in a with_clause on a
6906         child unit is a renaming, create an implicit with_clause on that
6907         parent, and not on the unit it renames, to prevent visibility errors
6908         in the current unit.
6909
6910 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
6911
6912         * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
6913         renaming declaration, use the Slocs of the formal parameters from the
6914         declaration of the formal subprogram when creating the formal parameter
6915         entities in the renaming declaration.
6916         (Analyze_Formal_Type_Declaration): Change the placement of the error
6917         message concerning illegal known discriminants. It is now posted on the
6918         type rather than on the first discriminant. This change ensures early
6919         error report.
6920         (Freeze_Subprogram_Body): If the generic subprogram is nested within
6921         the package body that contains the instance, do not generate an
6922         out-of-place freeze node for the enclosing package.
6923         (Collect_Previous_Instantiations): Ignore internal instantiations
6924         generated for formal packages.
6925         (Validate_Derived_Type_Instance): Add a check that when a formal
6926         derived type is Known_To_Have_Preelab_Init then the actual type must
6927         have preelaborable initialization, and issue an error when this
6928         condition is violated.
6929
6930 2007-12-13  Robert Dewar  <dewar@adacore.com>
6931
6932         * s-imenne.adb, s-imenne.ads: New files.
6933
6934         * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb, 
6935         s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb, 
6936         s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads, 
6937         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb, 
6938         s-imgwch.ads: New calling sequence for Image routines to avoid sec
6939         stack usage.
6940
6941 2007-12-13  Javier Miranda  <miranda@adacore.com>
6942             Ed Schonberg  <schonberg@adacore.com>
6943
6944         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
6945         generation of spurious error if parent is an interface type; caused
6946         because predefined primitive bodies will be generated later by
6947         Freeze_Record_Type.
6948         (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
6949         flag.
6950         (Derive_Subprograms): Handle derivations of predefined primitives
6951         after all the user-defined primitives to ensure that they are
6952         found in proper order in instantiations.
6953         (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
6954         of Related_Interface to Related_Type.
6955         (Record_Type_Declaration): Minor reordering of calls to decorate the
6956         Tag component because the entity must have set its Ekind attribute
6957         before setting its Is_Tag attribute.
6958         (Analyze_Subtype_Declaration): In the case of subtypes with
6959         Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
6960
6961 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
6962             Ed Schonberg  <schonberg@adacore.com>
6963
6964         * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
6965         statement to the list of contexts where a selected component with a
6966         concurrent tagged type prefix should yield a primitive operation.
6967         (Find_Primitive_Operation): Handle case of class-wide types.
6968         (Analyze_Overloaded_Selected_Component): If type of prefix is
6969         class-wide, use visible components of base type.
6970         (Resolve_Selected_Component): Ditto.
6971         (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
6972         formal of a generic subprogram. find candidate interpretations by
6973         scanning the list of generic formal declarations.:
6974         (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
6975         type from a limited_with_clause, and the full view is available, use it
6976         for subsequent semantic checks.
6977         (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
6978         (Find_Primitive_Operation): New function.
6979         (Analyze_Overloaded_Selected_Component): insert explicit dereference
6980         only once if several interpretations of the prefix yield an access type.
6981         (Try_Object_Operation): Code and comment cleanup.
6982         (Analyze_Selected_Component): Reorder local variables. Minot comment and
6983         code reformatting. When the type of the prefix is tagged concurrent, a
6984         correct interpretation might be available in the primitive and
6985         class-wide operations of the type.
6986
6987 2007-12-13  Robert Dewar  <dewar@adacore.com>
6988             Ed Schonberg  <schonberg@adacore.com>
6989
6990         * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
6991         renaming entry as subprogram using rename-as-body if subprogram spec
6992         frozen.
6993         (Use_One_Type): The clause is legal on an access type whose designated
6994         type has a limited view.
6995         (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
6996         (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
6997         (Analyze_Renamed_Primitive_Operation): new procedure to determine the
6998         operation denoted by a selected component.
6999         (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
7000         it can be an expression, possibly overloaded, that returns a task or
7001         an access to one.
7002
7003 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
7004             Gary Dismukes  <dismukes@adacore.com>
7005
7006         * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
7007         requeue statement is dispatching. Do not emit an error when the name is
7008         not an entry and the context is a dispatching select. Add code to
7009         perform subtype conformance between the formals of the current entry
7010         and those of the target interface primitive.
7011         (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
7012         Timed_Entry_Call): Analyze the triggering statement as the first step of
7013         the processing. If this is a dispatching select, postpone the analysis
7014         of all select statements until the Expander transforms the select. This
7015         approach avoids generating duplicate identifiers after the Expander has
7016         replicated some of the select statements. In case the Expander is
7017         disabled, perform regular analysis.
7018         (Check_Triggering_Statement): New routine.
7019         (Analyze_Requeue): Exclude any interpretations that are not entries when
7020         checking overloaded names in a requeue. Also test type conformance for
7021         matching interpretations rather than requiring subtype conformance at
7022         that point to conform with the RM's resolution rule for requeues.
7023
7024 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
7025
7026         * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
7027         inherited operation is a defaulted tag-indeterminate call, and there is
7028         a statically tagged actual, use the static tag as a controlling actual
7029         for the defaulted actual.
7030
7031 2007-12-13  Geert Bosch  <bosch@adacore.com>
7032
7033         * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
7034         context, so do not call Check_Non_Static_Context.
7035
7036 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
7037
7038         * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
7039         whether formal E is an entity which may have parameters.
7040
7041 2007-12-13  Bob Duff  <duff@adacore.com>
7042             Javier Miranda  <miranda@adacore.com>
7043             Robert Dewar  <dewar@adacore.com>
7044
7045         * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
7046         (Set_Convention): New procedure to set the Convention flag, and in
7047         addition make sure the Favor_Top_Level flag is kept in sync (all
7048         foreign-language conventions require Favor_Top_Level = True).
7049         (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
7050         to Related_Type.
7051         (Collect_Interfaces_Info): Minor update to handle the two secondary
7052         dispatch tables. Update occurrence of Related_Interface to Related_Type.
7053         (Generate_Parent_Ref): Add parameter to specify entity to check
7054         (Is_Preelaborable_Expression): Allow the name of a discriminant to
7055         initialize a component of a type with preelaborable initialization.
7056         This includes the case of a discriminal used in such a context.
7057         (Is_Dependent_Component_Of_Mutable_Object): Take into account the
7058         latest Ada 2005 rules about renaming and 'Access of
7059         discriminant-dependent components.
7060         (Check_Nested_Access): Add handling when there are no enclosing
7061         subprograms (e.g. case of a package body).
7062         (Find_Parameter_Type): Factor routine from several other compiler files.
7063         Remove routine from Find_Overridden_Synchronized_Primitive.
7064
7065 2007-12-13  Thomas Quinot  <quinot@adacore.com>
7066
7067         * sinput.adb (Get_Source_File_Index): Add assertion to guard against
7068         an invalid access to an uninitialized slot in the
7069         Source_File_Index_Table.
7070
7071 2007-12-13  Thomas Quinot  <quinot@adacore.com>
7072
7073         * sinput-l.adb (Load_File): Disable style checks when preprocessing.
7074
7075 2007-12-13  Bob Duff  <duff@adacore.com>
7076
7077         * s-soflin.ads: Apply new pragma Favor_Top_Level to all
7078         access-to-subprogram types in this package.
7079
7080 2007-12-13  Olivier Hainque  <hainque@adacore.com>
7081
7082         * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
7083         with Stack_Grows_Down in System.Parameters. Rename Array_Address into
7084         Stack_Overlay_Address and document that we are using an internal
7085         abstraction.
7086         (Byte_Size, Unsigned_32_Size): Remove, now useless.
7087         (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
7088         consistently throughout the various implementation pieces.
7089
7090         * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
7091         overlay we are using to fill the stack area with patterns.
7092         (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
7093         (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
7094         (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
7095
7096 2007-12-13  Robert Dewar  <dewar@adacore.com>
7097
7098         * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
7099
7100 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
7101
7102         * s-tassta.adb: 
7103         (Create_Task): Take into account tasks created by foreign threads.
7104         Code clean up: use constants instead of hard coded values.
7105
7106 2007-12-13  Robert Dewar  <dewar@adacore.com>
7107
7108         * styleg.adb (Check_Comment): More liberal rules for comment placement
7109
7110 2007-12-13  Olivier Hainque  <hainque@adacore.com>
7111
7112         * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
7113         of Procedure Value instead of Frame Pointer as the invocation
7114         identifier associated with the instruction pointer in each traceback
7115         entry.
7116
7117         * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
7118         TB_Entry_For): Revert back to use of Procedure Value instead of Frame
7119         Pointer as the invocation identifier passed to tbk$symbolize.
7120
7121         * s-traent-vms.ads, s-traent-vms.adb
7122         (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
7123         Procedure Value instead of Frame Pointer as the invocation identifier
7124         passed to tbk$symbolize.
7125
7126 2007-12-13  Robert Dewar  <dewar@adacore.com>
7127
7128         * tbuild.ads, tbuild.adb: 
7129         Fix location of flag for unrecognized pragma message
7130
7131 2007-12-13  Robert Dewar  <dewar@adacore.com>
7132
7133         * treepr.ads, treepr.adb: (pl): implement use of positive value
7134         shorthands
7135
7136 2007-12-13  Robert Dewar  <dewar@adacore.com>
7137
7138         * xeinfo.adb: Remove warnings
7139         * xnmake.adb: Remove warnings
7140         * xsinfo.adb: Remove warnings
7141         * xtreeprs.adb: Remove warnings
7142         * xsnames.adb: Remove warnings
7143
7144         * a-ngcoar.adb: Fix typo.
7145         * s-interr.adb: Minor reformatting
7146         * env.c: Minor reformatting.
7147         * g-bytswa.adb: Minor reformatting.
7148         * g-rannum.ads: Minor documentation improvements
7149         * s-tasinf-mingw.adb: Minor header fix
7150         * a-clrefi.adb: Minor reformatting
7151         * g-sttsne.ads: Minor documentation improvement
7152         * g-sttsne-locking.ads: Minor documentation improvement
7153         * g-soliop-solaris.ads: Minor documentation improvement
7154         * g-soliop-mingw.ads: Minor documentation improvement
7155         * g-soliop.ads: Minor documentation improvement
7156         * exp_aggr.ads: Minor reformatting
7157         * debug.adb: Add documentation for the gprbuild debug flags
7158         * exp_ch2.adb: Use Nkind_In to simplify code throughout
7159         * exp_pakd.adb: Minor reformatting
7160
7161         * g-altive.ads, g-alleve.adb: Remove assertions.
7162         Add comment about minor differences between targets regarding
7163         floating-point operations.
7164
7165         * g-thread.adb: Remove pragma unreferenced.
7166         * lib.ads: Minor reformatting
7167         * par-ch9.adb: Minor reformatting of error messages
7168         * sem_case.adb: Minor reformatting
7169         * s-fileio.adb: Minor reformattinng
7170         * s-vmexta.ads: Minor typo
7171         * vxaddr2line.adb: 
7172         Take into account 'Success' value as per new GNAT warning.
7173
7174 2007-12-13  Vincent Celier  <celier@adacore.com>
7175
7176         * a-direct.adb (Create_Path): Always take '/' as a directory separator,
7177         even on Windows
7178
7179 2007-12-13  Robert Dewar  <dewar@adacore.com>
7180             Bob Duff  <duff@adacore.com>
7181
7182         * gnat_ugn.texi: Dcoument new rules for style check comment alignment
7183         Document that suffixes may be terminations of each others
7184         Add doc for -gnatw.a and -gnatw.A
7185         Document gnatbind -Wx switch
7186         Document BOM recognition
7187         Document pragma Implemented_By_Entry.
7188         Document new units.
7189
7190         * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
7191         Add doc for pragma Unreferenced suppressing no entities referenced msg
7192         Add documentation of GNAT.Directory_Operations.Iteration
7193         Add documentation of GNAT.Random_Numbers
7194         Add documentation for pragma Shared.
7195         Correct documentation for Bit_Order
7196         Add documentation for the Pool_Address attribute.
7197         Fix and improve documentation of pragma machine_attribute.
7198         New pragma Fast_Math
7199         Document BOM recognition
7200
7201         * vms_data.ads: Add entries for -gnatw.a -gnatw.A
7202         Add /Wide_Character_Encoding for binder
7203         Add qualifier for the new gnatpp option --no-separate-loop-then
7204
7205 2007-12-13  Matthew Heaney  <heaney@adacore.com>
7206
7207         * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
7208         which generic formal operations are called for each operation.
7209
7210 2007-12-13  Olivier Hainque  <hainque@adacore.com>
7211
7212         * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
7213         (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
7214
7215 2007-12-13  Emmanuel Briot  <briot@adacore.com>
7216
7217         * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
7218         Reference_Dir unless we actually need it.
7219
7220 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
7221             Tristan Gingold  <gingold@adacore.com>
7222
7223         * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
7224
7225         * s-osprim-vms.adb,
7226         a-calend-vms.adb: Remove pragma warning off and add pragma
7227         unreferenced.
7228
7229 2007-12-13  Robert Dewar  <dewar@adacore.com>
7230
7231         * impunit.adb: Add entries for missing units
7232
7233         * Makefile.rtl: Add new run-time units.
7234
7235         * Make-lang.in:  Update dependencies.
7236
7237 2007-12-13  Bob Duff  <duff@adacore.com>
7238
7239         * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
7240         types, set Can_Use_Internal_Rep appropriately, based on
7241         Always_Compatible_Rep_On_Target.
7242
7243 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
7244             Arnaud Charlet  <charlet@adacore.com>
7245
7246         * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
7247         it to the front end and setting the aamp_target environment variable
7248         to the switch's argument to ensure that gnaampbind and gnaamplink will
7249         take the specified library into account.
7250         (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
7251         target, since the CIL compiler supports an "object" file (.il files).
7252
7253 2007-12-13  Vincent Celier  <celier@adacore.com>
7254
7255         * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
7256         (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
7257
7258 2007-12-13  Geert Bosch  <bosch@adacore.com>
7259
7260         * s-parame-vxworks.adb: 
7261         Update comments to reflect usage of this package by Nucleus.
7262
7263 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
7264
7265         * i-vxwork.ads: Kill new warning on Convention C, since changing the
7266         spec would break code.
7267
7268         * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
7269
7270         * system-vxworks-alpha.ads: Removed.
7271
7272 2007-12-10  Eric Botcazou  <ebotcazou@adacore.com>
7273
7274         * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
7275
7276 2007-12-09  Samuel Tardieu  <sam@rfc1149.net>
7277
7278         PR ada/34366
7279         * sem_ch3.adb (Designates_T): New function.
7280         (Mentions_T): Factor reusable part of the logic into Designates_T.
7281         Consider non-access parameters and access and non-access result.
7282         (Check_Anonymous_Access_Components): Set ekind of anonymous access to
7283         E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
7284
7285         * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
7286
7287 2007-12-07  Ludovic Brenta  <ludovic@ludovic-brenta.org>
7288
7289         PR ada/34361
7290         * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
7291         the new implementation of target-specific calls.
7292
7293 2007-12-07  Olivier Hainque  <hainque@adacore.com>
7294
7295         * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
7296         the designated full view, only follow a second level Full_View link
7297         for Non_Limited_Views of from_limited_with references.
7298         
7299 2007-12-07  Samuel Tardieu  <sam@rfc1149.net>
7300
7301         PR ada/15805
7302         * sem_ch6.adb (Process_Formals): Prevent an access type formal
7303         to be initialized with an access to constant object.
7304
7305         * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
7306         when an access to constant is used to initialize an access
7307         value.
7308
7309         PR ada/21346
7310         * a-direct.adb (Compose): Containing_Directory can be an empty string.
7311
7312 2007-12-07  Olivier Hainque  <hainque@adacore.com>
7313
7314         PR ada/34173
7315         * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
7316         the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
7317         this is from an alignment clause on the GNAT entity.
7318         * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
7319         to distinguish the case where we set it from the type's alignment.
7320         When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
7321         whether this alignment was set from an explicit alignment clause.
7322
7323 2007-12-06  Eric Botcazou  <ebotcazou@adacore.com>
7324
7325         * decl.c (make_packable_type): Revert last change.
7326         (gnat_to_gnu_field): Avoid setting size and position multiple times.
7327         * utils.c (finish_record_type): Retrieve the real name of the type.
7328
7329 2007-12-05  Eric Botcazou  <ebotcazou@adacore.com>
7330
7331         * trans.c (lvalue_required_p): Take base node directly instead
7332         of its parent.  Rename second parameter to 'gnu_type'.
7333         <N_Indexed_Component>: Return 0 if the node isn't the prefix.
7334         <N_Slice>: Likewise.
7335         (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
7336         Adjust calls to lvalue_required_p.
7337
7338 2007-12-05  Samuel Tardieu  <sam@rfc1149.net>
7339
7340         PR ada/21489
7341         * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
7342         parameters of an entry call.
7343
7344 2007-12-03  Robert Dewar  <dewar@adacore.com>
7345             Samuel Tardieu  <sam@rfc1149.net>
7346
7347         PR ada/34287
7348         * sem_util.adb (Safe_To_Capture_Value): Do not capture values
7349         of variables declared in a library-level package.
7350     
7351 2007-12-02  Samuel Tardieu  <sam@rfc1149.net>
7352
7353         * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
7354         of Empty_String'Unchecked_Access.
7355
7356         * Makefile.in: Add support for sh4-linux.
7357
7358         * system-linux-sh4.ads: New file.
7359
7360 2007-12-01  Kostik Belousov  <kostikbel@ukr.net>
7361
7362         PR ada/33722
7363         * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
7364         and its argument must not be free()ed.
7365
7366 2007-11-29  Eric Botcazou  <ebotcazou@adacore.com>
7367
7368         * decl.c (make_packable_type): Retrieve the real name of the type.
7369         (maybe_pad_type): Simplify similar code.
7370
7371 2007-11-28  Samuel Tardieu  <sam@rfc1149.net>
7372
7373         PR ada/15804
7374         * par-ch3.adb (P_Variant_Part): Signal an error when anything other
7375         than an identifier is used after "case" in a variant_part.
7376
7377         PR ada/17318
7378         * par-ch4.adb (Is_Parameterless_Attribute): New map.
7379         (P_Name, Scan_Apostrophe block): Parse left parenthesis following
7380         attribute name or not depending on the new map.
7381
7382         * sem-attr.adb (Analyze_Attribute): Parameterless attributes
7383         returning a string or a type will not be called with improper
7384         arguments.
7385
7386         * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
7387
7388         * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
7389
7390         PR ada/32792
7391         * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
7392         Signal an error when attribute argument is a fixed-point value of
7393         an unknown type.
7394
7395         PR ada/22559
7396         * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
7397         a derived ordinary fixed point type.
7398
7399         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
7400         RM_Size when a Small clause is found.
7401
7402 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
7403
7404         PR 34081/C++
7405         * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
7406         Pass 'false' for the new allocate_struct_function parameter.
7407         * utils.c (build_function_stub): Likewise.
7408
7409 2007-11-25  Richard Guenther  <rguenther@suse.de>
7410
7411         * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
7412         (gnat_poplevel): Likewise.
7413
7414 2007-11-25  Eric Botcazou  <ebotcazou@adacore.com>
7415
7416         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
7417         strict alignment, no alignment clause and a known static size, cap
7418         the type alignment to the greatest power of 2 factor of the size.
7419         (gnat_to_gnu_field): If the field has a component clause, is aliased
7420         or of a type with strict alignment, require that its size be equal to
7421         that of the type.
7422         (validate_size): Use the type size as the minimum size for a type with
7423         strict alignment.
7424
7425 2007-11-23  Samuel Tardieu  <sam@rfc1149.net>
7426
7427         * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
7428         s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
7429         s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
7430         Use 'Access instead of 'Unchecked_Access in second and third
7431         arguments of pthread_sigmask.
7432
7433 2007-11-23  Eric Botcazou  <ebotcazou@adacore.com>
7434
7435         * decl.c (ceil_alignment): New function.
7436         (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
7437         (make_packable_type): Likewise.
7438
7439 2007-11-22  Olivier Hainque  <hainque@adacore.com>
7440
7441         * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
7442         to fit in 80 columns.
7443
7444 2007-11-21  Aurelien Jarno  <aurelien@aurel32.net>
7445
7446         * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
7447         * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
7448
7449 2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
7450
7451         PR ada/34098
7452         * misc.c (gnat_adjust_rli): Delete.
7453         (gnat_init): Do not initialize the translation code here.
7454         Do not call set_lang_adjust_rli.
7455         * trans.c (init_code_table): Make static.
7456         (gnat_init_stmt_group): Delete.
7457         (gigi): Initialize the translation code entirely here.
7458         Emit debug info for the common types here instead of...
7459         * utils.c (gnat_init_decl_processing): ...here.
7460         * gigi.h (init_code_table): Delete.
7461         (gnat_init_stmt_group): Likewise.
7462
7463 2007-11-16  Olivier Hainque  <hainque@adacore.com>
7464
7465         * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
7466         retrieving an allocator return value from a super-aligned address from
7467         here to ...
7468         * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
7469         expect a super-aligned address for a fat or thin pointer.
7470         
7471 2007-11-14  Eric Botcazou  <ebotcazou@adacore.com>
7472
7473         * trans.c (call_to_gnu): Always set the source location on the call
7474         expression.  If the function returns-by-target, also set it on the
7475         address expression.
7476
7477 2007-11-14  Samuel Tardieu  <sam@rfc1149.net>
7478
7479         * adaint.c, init.c, initialize.c, link.c: Remove system-specific
7480         sections of non-supported Interix target.
7481
7482         * s-osinte-interix.ads: Removed.
7483
7484         * i-cstrin.ads (chars_ptr): Make it a C convention type.
7485
7486 2007-11-13  Samuel Tardieu  <sam@rfc1149.net>
7487
7488         * a-tasatt.adb: Add a comment at the beginning of the package
7489         explaining why in general 'Unchecked_Access must be used instead
7490         of 'Access.
7491
7492         * sem_prag.adb (Process_Convention): Move the test for the
7493         entity on which the Convention pragma applies down to also
7494         forbid pragma Convention on enumeration literals reached
7495         through renamings.
7496
7497 2007-11-10  Samuel Tardieu  <sam@rfc1149.net>
7498
7499         * a-tasatt.adb: Revert previous change for this file as it will
7500         generate an error when this package is instantiated from a
7501         local context.
7502
7503 2007-11-07  Samuel Tardieu  <sam@rfc1149.net>
7504
7505         * a-tasatt.adb: Type Wrapper should be declared in comment instead
7506         of already declared type Node_Access.
7507         Use 'Access instead of 'Unchecked_Access when applicable. Local
7508         lifetime is the one of the package.
7509         (Set_Value): W is allocated on the heap.
7510
7511         * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
7512         applicable.
7513         (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
7514         access type.
7515         (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
7516         access type.
7517
7518         * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
7519         applicable.
7520         (elaboration code): Timer_Queue lifetime is the one of the
7521         package.
7522
7523         * tracebak.c (i386 alternative): Remove useless comparaison
7524         which is always false; LOWEST_ADDRESS is 0 and is never greater
7525         than an unsigned integer.
7526
7527         * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
7528         embedded check for "Ada_Version >= Ada_05".
7529
7530 2007-11-07  Olivier Hainque  <hainque@adacore.com>
7531
7532         * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
7533         craft and expand comment.
7534
7535 2007-11-01  Eric Botcazou  <ebotcazou@adacore.com>
7536
7537         * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
7538
7539 2007-10-23  Eric Botcazou  <ebotcazou@adacore.com>
7540
7541         * misc.c (gnat_handle_option): Replace call to abort with
7542         call to gcc_unreachable.
7543         (gnat_init): Likewise.
7544         (gnat_expand_expr): Likewise.
7545         (fp_prec_to_size): Likewise.
7546         (fp_size_to_prec): Likewise.
7547
7548 2007-10-23  Richard Guenther  <rguenther@suse.de>
7549
7550         PR bootstrap/33608
7551         * tracebak.c: #undef abort after including system.h.
7552
7553 2007-10-20  Danny Smith  <dannysmith@users.sourceforge.net>
7554
7555         * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
7556         s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
7557         for win32 targets.
7558         (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
7559
7560 2007-10-15  Eric Botcazou  <ebotcazou@adacore.com>
7561
7562         * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
7563         Set the protection status of the guard page based on the value of On.
7564
7565         * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
7566
7567         * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
7568         (Exit_Task): Pass False to Hide_Yellow_Zone.
7569
7570 2007-10-15  Robert Dewar  <dewar@adacore.com>
7571
7572         * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
7573         s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
7574         a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb, 
7575         checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb, 
7576         freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb, 
7577         gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb, 
7578         mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb, 
7579         prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb, 
7580         sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb, 
7581         s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
7582         uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb, 
7583         a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb, 
7584         a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb, 
7585         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb, 
7586         a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb, 
7587         a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
7588         Minor reformatting.
7589         Add Unreferenced and Warnings (Off) pragmas for cases of
7590         variables modified calls where they are IN OUT or OUT parameters and
7591         the resulting values are not subsequently referenced. In a few cases,
7592         we also remove redundant code found by the new warnings.
7593
7594         * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads, 
7595         sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
7596         sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
7597         sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
7598         warning controlled by -gnatw.o that warns on cases of out parameter
7599         values being ignored.
7600
7601 2007-10-15  Geert Bosch  <bosch@adacore.com>
7602
7603         * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
7604
7605         * expect.c: Initial port to arm-mentor-nucleus.
7606         Use kill for __gnat_kill() on VMS.
7607
7608 2007-10-15  Emmanuel Briot  <briot@adacore.com>
7609
7610         * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
7611         value.
7612         (Xref_Record): Change type for Line, since in the case of a reference to
7613         a predefined entity (as happens for array index types), the line is set
7614         to 0.
7615         Add support for parsing multiple array index types info, or
7616         multiple inherited interfaces info. This information cannot be stored
7617         in Xref_Entity_Record, which only supports a single instance of Tref_*,
7618         and is therefore stored in the list of references instead. It has a
7619         special treatement later on in tools that use this information.
7620
7621 2007-10-15  Tristan Gingold  <gingold@adacore.com>
7622
7623         * debug.adb: Document use of -gnatd.a and -gnatd.I
7624
7625         * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
7626
7627 2007-10-15  Javier Miranda  <miranda@adacore.com>
7628
7629         * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
7630         Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
7631         care of access to class-wide interface types plus removal of bizarre
7632         conversion of tagged object to access type (reported by Gary
7633         Dismukes). After this patch there is no need to perform any
7634         additional management on these nodes in Expand_Interface_Actuals.
7635
7636         * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
7637         that handles use of 'Access and 'Unchecked_Access applied to
7638         actuals covering interface types. Such code is now
7639         centralized in Expand_N_Attribute_Reference.
7640
7641 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
7642
7643         * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
7644         of tagged types whose ultimate ancestor is a CPP type.
7645         (Freeze_Array_Type): For a packed array type, generate an initialization
7646         procedure if the type is public, to handle properly a client that
7647         specifies Normalize_Scalars.
7648
7649 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
7650
7651         * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
7652         inside a generic body, retrieve the full view of the entry family
7653         discrete subtype if available.
7654
7655 2007-10-15  Thomas Quinot  <quinot@adacore.com>
7656
7657         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
7658         attempt to generate stubs for hidden primitive operations.
7659
7660 2007-10-15  Vincent Celier  <celier@adacore.com>
7661
7662         * mlib-tgt-specific.adb (Support_For_Libraries): New function,
7663         returning None, used when there is no platform specific body for
7664         MLib.Tgt.Specific.
7665
7666 2007-10-15  Bob Duff  <duff@adacore.com>
7667
7668         * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
7669         (passing'Unrestricted_Access of nested subprograms to Sort) with use of
7670         the generic Heap_Sort_G, in order to avoid trampolines.
7671
7672 2007-10-15  Vasiliy Fofanov  <fofanov@adacore.com>
7673             Jose Ruiz  <ruiz@adacore.com>
7674
7675         * vx_stack_info.c: New file.
7676
7677         * i-forbla-unimplemented.ads: New file.
7678
7679         * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
7680         for unsupported configurations; use it on VMS targets instead of the
7681         real one.
7682         (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
7683         vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
7684         used by VxWorks targets to have access to task-specific data and be
7685         able to extract the stack boundaries for stack checking.
7686         Use system-vms-ia64.ads on ivms.
7687
7688         * Make-lang.in: Update dependencies.
7689
7690         * sysdep.c (__gnat_get_stack_info): Move to a standalone file
7691         (vx_stack_info.c).
7692
7693 2007-10-15  Vincent Celier  <celier@adacore.com>
7694
7695         * snames.adb, snames.ads: Add new standard name runtime_library_dir
7696
7697         * prj.ads (Language_Config): Add new component Runtime_Library_Dir
7698
7699         * prj-attr.adb: Add project level attribute Runtime_Library_Dir
7700
7701         * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
7702         the source is unknown.
7703
7704         * prj-ext.adb: Spelling error fix
7705
7706         * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
7707         95 reserved word in its name.
7708         (Process_Project_Level_Array_Attributes): Process new attribute
7709         Runtime_Library_Dir.
7710
7711         * prj-part.adb (Parse_Single_Project): Do not check the name of the
7712         config project against the user project names.
7713
7714         * prj-proc.adb (Expression): In multi-language mode, indexes that do
7715         not include a dot are always case insensitive.
7716         (Process_Declarative_Items): Ditto
7717         (Process_Project_Tree_Phase_1): Set Success to False in case an error is
7718         detected.
7719
7720         * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
7721         True, compare both indexes in lower case.
7722
7723 2007-10-15  Robert Dewar  <dewar@adacore.com>
7724
7725         * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
7726
7727 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
7728
7729         * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
7730         association for an access component, add an association with null as
7731         the expression. Remove testing for array subtypes and the setting in
7732         that case of Ctyp to the array component type, which prevented proper
7733         inclusion of an association for null-initialized arrays. Collapse
7734         condition that tests for array subtypes into just a test of
7735         Is_Partially_Initialized_Type (which already covers arrays anyway).
7736
7737 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
7738
7739         * sem_ch12.adb: Minor code reformatting.
7740         (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
7741         find the parent package which may have been hidden by local
7742         declarations.
7743
7744 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
7745
7746         * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
7747         flag of derived concurrent types, taking into account the flag setting
7748         on the parent subtype and any new set of discriminants.
7749
7750 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
7751
7752         * sem_ch4.adb: Minor code and comment reformatting.
7753         (Analyze_Allocator): When the designated type of an unconstrained
7754         allocator is a record with unknown discriminants or an array with
7755         unknown range bounds, emit a detailed error message depending on the
7756         compilation mode and whether the designated type is limited.
7757
7758 2007-10-15  Tristan Gingold  <gingold@adacore.com>
7759
7760         * system-vms-ia64.ads: New file.
7761
7762         * system-vms_64.ads: Minor comment fix.
7763
7764 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
7765
7766         * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
7767         body generated for a function with a controlling result that is a null
7768         extension, discard the generated body in favor of the current explicit
7769         one.
7770
7771 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
7772
7773         * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
7774         examining its original form, to handle properly operator calls that
7775         have been rewritten.
7776
7777 2007-10-15  Olivier Hainque  <hainque@adacore.com>
7778
7779         * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
7780         instead of a procedure value in each traceback entry.
7781
7782         * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
7783         instead of procedure value to TBK$SYMBOLIZE.
7784
7785         * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
7786         field.
7787         (TB_Entry_For): Account for the PV/FP renaming.
7788
7789         * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
7790         add comment.
7791         (Null_TB_Entry): Account for change of component name.
7792         (PV_For): Rename as FP_For.
7793
7794 2007-10-15  Tristan Gingold  <gingold@adacore.com>
7795
7796         * trans.c (gnat_to_gnu): Remove the padding structure more often.
7797         This optimize assignment to over-aligned record.
7798
7799 2007-10-15  Emmanuel Briot  <briot@adacore.com>
7800
7801         * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
7802         interfaces.
7803
7804         * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
7805         type, for dispatching calls.
7806
7807 2007-10-15  Vincent Celier  <celier@adacore.com>
7808             Robert Dewar  <dewar@adacore.com>
7809
7810         * gnat_ugn.texi: Add documentation for switches --version and --help
7811         for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
7812         gnatxref, gnatfind, gnatls, and gnatclean.
7813         Document -gnatw.o.
7814         Mention attribute Excluded_Source_Dirs
7815         Replace obsolescent attribute Locally_Removed_Files with attribute
7816         Excluded_Source_Files.
7817         Improve documentation of -u (gnatbind)
7818         Document how to do reliable stack checking for the environmental task
7819         on iVMS.
7820
7821         * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
7822         Document attribute Excluded_Source_Files and indicate that attribute
7823         Locally_Removed_Files is obsolescent.
7824
7825 2007-10-15  Thomas Quinot  <quinot@adacore.com>
7826
7827         * g-soccon-vms.ads: Fix value of MSG_WAITALL.
7828
7829         * gen-soccon.c: 
7830         Update documentation to note that OpenVMS 8.3 or later must be used
7831         to generate g-soccon-vms.ads.
7832
7833         * atree.adb: Add ??? comment
7834
7835         * exp_util.adb: Minor reformatting.
7836         Add ??? comment in Kill_Dead_Code.
7837
7838 2007-10-15  Robert Dewar  <dewar@adacore.com>
7839
7840         * errout.ads: Comment clarification
7841
7842         * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
7843         (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
7844
7845         * lib.ads: Comment update
7846
7847         * init.c: Minor reformatting.
7848
7849         * sem_attr.adb: Minor formatting
7850
7851         * osint-b.ads: Minor reformatting
7852
7853         * sem_ch9.adb: Implement -gnatd.I switch
7854
7855         * g-comlin.adb: (Start): Fix handling of empty command line.
7856
7857         * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
7858         even when -rules follows the -cargs section.
7859
7860 2007-10-08  Ollie Wild  <aaw@google.com>
7861
7862         * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
7863         gnat_return_tree.
7864         (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
7865         gnat_return_tree.
7866         (gnat_eh_runtime_type): Removed.
7867         (gnat_return_tree): New function.
7868
7869 2007-10-08  Ben Elliston  <bje@au.ibm.com>
7870
7871         PR ada/33454
7872         Revert:
7873         2007-08-31  Ben Elliston  <bje@au.ibm.com>
7874
7875         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
7876         when compiling for powerpc64-*-linux.
7877         * system-linux-ppc64.ads: New file.
7878
7879 2007-09-27  Eric Botcazou  <ebotcazou@adacore.com>
7880
7881         Mapped location support
7882         * back_end.adb (Call_Back_End): Pass information about source
7883         files instead of units to gigi.
7884         * gigi.h (struct File_Info_Type): New.
7885         (gigi): Rename and change type of number_units parameter, change
7886         type of file_info_ptr parameter.
7887         * trans.c (number_files): New global variable.
7888         (gigi): Rename and change type of number_units parameter, change
7889         type of file_info_ptr parameter.
7890         If mapped location support is enabled, create the isomorphic mapping
7891         between source files and line maps.
7892         (Sloc_to_locus): If mapped location support is enabled, translate
7893         source location into mapped location.
7894         (annotate_with_node): Rename into set_expr_location_from_node.
7895         Call set_expr_location instead of annotate_with_locus.
7896         (Pragma_to_gnu): Adjust for above change.
7897         (Loop_Statement_to_gnu): Likewise.
7898         (call_to_gnu): Likewise.
7899         (Handled_Sequence_Of_Statements_to_gnu): Likewise.
7900         (gnat_to_gnu): Likewise.
7901         (add_stmt_with_node): Likewise.
7902         (add_cleanup): Likewise.
7903         * utils.c (gnat_init_decl_processing): Do not set input_line.
7904
7905 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
7906
7907         * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
7908         (Applicable_Use): Emit a warning when a package tries to use itself.
7909         (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
7910         is already in use or the package where it is declared is in use or is
7911         declared in the current package.
7912         (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
7913
7914         * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
7915         s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
7916         s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
7917
7918 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
7919
7920         * a-calend-vms.adb, a-calend.adb: 
7921         Add a section on leap seconds control along with two entities used to
7922         enable and disable leap seconds support. The array Leap_Second_Times is
7923         now constant and contains hard time values pre-generated. Remove
7924         all elaboration code used to populate the table of leap seconds.
7925
7926         * bindgen.adb: 
7927         Add entity Leap_Seconds_Support to the list of global run-time variables
7928         along with a comment on its usage and values.
7929         (Gen_Adainit_Ada): Add code to generate the declaration and import of
7930         Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
7931         or one (enabled) depending on the presence of binder switch "-y".
7932         (Gen_Adainit_C): Add code to generate the declaration of external int
7933         __gl_leap_seconds_support. Set is value to zero (disabled) or one
7934         (enabled) depending on the presence of binder switch "-y".
7935
7936         * init.c: Add __gl_leap_seconds_support to the list of global values
7937         computed by the binder.
7938
7939 2007-09-26  Jerome Guitton  <guitton@adacore.com>
7940
7941         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
7942         s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
7943          s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
7944         s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
7945
7946         * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
7947
7948         * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
7949         function which can be called by the debugger to interrupt the tasks of
7950         an Ada application asynchronously, as needed on VxWorks.
7951         (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
7952
7953         * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
7954         renamed from Stop_All_Tasks. Update comments.
7955         (Stop_All_tasks): New function declaration.
7956
7957 2007-09-26  Olivier Hainque  <hainque@adacore.com>
7958
7959         * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
7960         #include <utime.h> and #define GCC_RESOURCE_H before
7961         #include <sys/wait.h>.
7962         Add more protections in __gnat_translate_vms.
7963
7964         * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
7965         #include <sys/wait.h>.
7966
7967 2007-09-26  Thomas Quinot  <quinot@adacore.com>
7968             Sergey Rybin  <rybin@adacore.com>
7969
7970         * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
7971
7972         * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
7973         where it belongs.
7974
7975         * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
7976
7977         * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
7978         where it belongs.
7979
7980         * sem_dist.ads: Minor comment fix
7981
7982         * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
7983
7984 2007-09-26  Javier Miranda  <miranda@adacore.com>
7985             Eric Botcazou  <ebotcazou@adacore.com>
7986
7987         * a-tags.adb: 
7988         (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
7989          indirection added to the HT_Link component of the TSD. This is required
7990          to statically allocate the TSD.
7991
7992         * a-tags.ads: 
7993         Minor reordering of the declarations in the private part. Required to
7994         add a level of indirection to the contents of the TSD component HT_Link.
7995         This is required to statically allocate the TSD.
7996
7997         * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
7998         Is_Statically_Allocated set from constant objects.
7999         Do not make exported constants created by the compiler volatile.
8000         (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
8001         as read-only.
8002
8003         * trans.c (Identifier_to_gnu): For constants, unshare initializers
8004         before returning them.
8005
8006         * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
8007         public part of the package.
8008         (Make_DT): Move HT_Link component out of the TSD record. For this
8009         purpose Make_DT now declares a separate object that stores the
8010         HT_Link value, and initializes the TSD component with the address
8011         of this new object. The addition of this level of indirection is
8012         required to statically allocate the TSD because the TSD cannot
8013         have variable components.
8014         (Expand_Interface_Conversion): Improve the expanded code.
8015         (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
8016
8017         * sem_disp.adb (Check_Dispatching_Operation): In case of a body
8018         declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
8019         if we are building static dispatch tables then we must not generate
8020         extra code to register the primitive because the dispatch table will
8021         be built at the end of the library package; otherwise we notify that
8022         we cannot build the static dispatch table.
8023
8024 2007-09-26  Robert Dewar  <dewar@adacore.com>
8025
8026         * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
8027         overlays.
8028
8029         * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
8030         (Analyze_Record_Representation_Clause): Suppress junk warning for
8031         missing component clause.
8032         (Analyze_Attribute_Definition_Clause, case Address): Apply the special
8033         tests for controlled type overlay to composites with controlled
8034         components.
8035         (Analyze_Record_Representation_Clause): Add reference for component name
8036
8037 2007-09-26  Javier Miranda  <miranda@adacore.com>
8038             Gary Dismukes  <dismukes@adacore.com>
8039
8040         * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
8041         for thunks associated with interface types.
8042
8043         * einfo.ads: Improve documentatation of Is_Internal
8044         (Is_Thunk): New attribute applicable to subprograms. True for thunks
8045         associated with interface types.
8046         Extensive comment fixes regarding flags that appear in all entities. The
8047         documentation is now consistent for all such flags (there were a number
8048         of errors in the documentation in this regard).
8049
8050         * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
8051
8052         * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
8053         of these procedures are passed a function call that already has
8054         build-in-place actuals (testing new flag
8055         Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
8056         the case where processing continues.
8057         (Expand_Call): If the call is generated from a thunk body then we
8058         propagate the extra actuals associated with the accessibility
8059         level of the access type actuals.
8060
8061         * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
8062         of each extra formal of a protected operation to reference the
8063         corresponding extra formal of the subprogram denoted by the
8064         operation's Protected_Body_Subprogram.
8065         
8066         * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
8067         N_Function_Call nodes.
8068
8069 2007-09-26  Robert Dewar  <dewar@adacore.com>
8070
8071         * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
8072
8073         * debug.adb: Add d.s flag.
8074
8075 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
8076
8077         * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
8078         debug variable so that it won't be initialized when pragma
8079         Initialize_Scalars is in effect.
8080
8081 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
8082
8083         * freeze.adb (Freeze_Entity): Remove check for preelaborable
8084         initialization of a full view. This is moved to
8085         Analyze_Package_Specification.
8086
8087         * sem_ch7.adb (Analyze_Package_Specification): Add check for
8088         preelaborable initialization of a full view in entity loop.
8089         (Uninstall_Declarations): If entity is a use-visible compilation unit,
8090         its child units are use-visible only if they are visible child units.
8091
8092         * sem_util.adb (Is_Preelaborable_Expression): New function to determine
8093         whether an expression can be used within a type declaration that
8094         requires preelaborable init.
8095         (Check_Components): Replace inline code that does partial checking for
8096         preelaborable default expressions with call to
8097         Is_Preelaborable_Expression.
8098         (Has_Preelaborable_Initialization): In the case of a generic actual
8099         subtype, (that is, Is_Generic_Actual is True), return the result of
8100         applying Has_Preelaborable_Initialization to the generic actual's base
8101         type.
8102
8103 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
8104
8105         * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
8106         call to Jan_1_Day _Of_Week to optimize its performance.
8107         (Is_Leap): Move the routine to the scope of Week_In_Year.
8108         (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
8109         weekday on which January 1 falls of Year - 1 and Year + 1. This function
8110         avoids calling Time_Of and Split, thus making it more efficent.
8111         (Week_In_Year): Reimplemented in oder to follow ISO 8601.
8112
8113         * g-calend.ads (Week_In_Year): Change comment to reflect new
8114         implementation.
8115
8116 2007-09-26  Emmanuel Briot  <briot@adacore.com>
8117
8118         * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
8119         Command_Line): New types
8120         (Define_Alias, Define_Prefix, Free): New subprograms. These provide
8121         support for defining how switches can be grouped on a command line (as
8122         is the case for -gnatw... for GNAT), and how simple switches can be
8123         used as aliases for more complex switches (-gnatwa is same as
8124         -gnatwbcef...)
8125         (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
8126         (Start, Current_*): New subprograms
8127         Added support for parsing an array of strings in addition to the real
8128         command line.
8129         (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
8130          be moved from the body to the private part of the spec.
8131         (*): All subprograms now have an extra parameter with default value to
8132         specify which parser should be used. For backward compatibility, it
8133         defaults to parsing the command line of the application. They were also
8134         modified to properly handle cases where each of the argument does not
8135         start at index 1 (which is always true for Ada.Command_Line, but not
8136         when processing any Argument_List).
8137         (Free): New subprogram
8138         (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
8139         Argument): New subprograms
8140         (Switch_Parameter_Type): New enum, which clarifies the code. The extra
8141         special characters like ':', '=',... are now handled in a single place,
8142         which makes the code more extensible eventually.
8143         (Getopt, Full_Switch): When the switch was returned as part of the
8144         special character '*', make sure it is prepended by the switch character
8145         ('-' in general), so that the application knows whether "foo" or "-foo"
8146         was specified on the command line.
8147
8148 2007-09-26  Florian Villoing  <villoing@adacore.com>
8149
8150         * g-dirope.adb (Remove_Dir): In case we are removing directories
8151         recursively, make sure that if an exception is raised during the
8152         processing, the current working directory is reset to its initial
8153         value before propagating the exception.
8154
8155 2007-09-26  Vincent Celier  <celier@adacore.com>
8156
8157         * gnatbind.adb: If there are several ALI files specified and there is
8158         a main program to bind, the first ALI is expected to contain the main
8159         subprogram and the names of the binder generated files will be derived
8160         from the first ALI file name.
8161         (Gnatbind): Fix insertion character in invocation of Error_Msg
8162
8163 2007-09-26  Vincent Celier  <celier@adacore.com>
8164
8165         * gnatcmd.adb (Check_Files): Do not include sources that have been
8166         removed by attributes Exclude_Source_Files or Locally_Removed_Files.
8167
8168 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
8169
8170         * lib-xref.ads, lib-xref.adb: The entry for array types now carries
8171         information about each of its index types, following the type
8172         reference for its component type.
8173
8174 2007-09-26  Vincent Celier  <celier@adacore.com>
8175
8176         * make.adb: (Kill): New procedure (__gnat_kill imported)
8177         (Running_Compile, Outstanding_Compiles): Global variables that
8178         were previously local to procedure Compile_Sources.
8179         (Sigint_Intercepted): Send signal SIGINT to all outstanding
8180         compilation processes.
8181
8182         (Gnatmake): If project files are used, create the mapping of all the
8183         sources, so that the correct paths will be found.
8184
8185         * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
8186
8187 2007-09-26  Vincent Celier  <celier@adacore.com>
8188
8189         * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
8190
8191         * prj.ads, prj.adb (Default_Language): Remove function, no longer used
8192         Replace components Compiler_Min_Options and Binder_Min_Options with
8193         Compiler_Required_Switches and Binder_Required_Switches in record
8194         Language_Config.
8195         Remove components Default_Language and Config in Project_Tree_Data,
8196         no longer used.
8197
8198         * prj-attr.adb: New attributes Required_Switches (<language>) in
8199         packages Compiler and Binder.
8200
8201         * prj-nmsc.adb: Major rewrite of the processing of configuration
8202         attributes for gprbuild. No impact on GNAT tools.
8203
8204         * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
8205         process configuration attributes: this is done in Prj.Nmsc.Check.
8206         (Recursive_Process): Make a full copy of packages inherited from project
8207         being extended, instead of a shallow copy.
8208         (Process_Project_Tree_Phase_1): New procedure
8209         (Process_Project_Tree_Phase_1): New procedure
8210         (Process): Implementation now uses the two new procedures
8211
8212         * prj-util.adb (Executable_Of): Get the suffix and the default suffix
8213         from the project config, not the tree config that no longer exists.
8214
8215 2007-09-26  Vincent Celier  <celier@adacore.com>
8216
8217         * Make-lang.in: Update dependencies..
8218
8219 2007-09-26  Vincent Celier  <celier@adacore.com>
8220
8221         * osint.adb, osint.ads: Minor reformatting
8222
8223         * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
8224
8225 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
8226
8227         * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
8228         message to cite use of <> in aggregate component associations rather
8229         than wrongly indicating use of limited aggregates.
8230
8231 2007-09-26  Robert Dewar  <dewar@adacore.com>
8232
8233         * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
8234         Address_Taken.
8235
8236 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
8237
8238         * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
8239         ancestor of the derived type, the operations are inherited from the
8240         primary dispatch table of the parent.
8241         (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
8242         when the context is an explicit type conversion.
8243
8244 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
8245
8246         * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
8247         rule for qualified expressions properly, to detect improper conversions
8248         and resolve some cases of overloading.
8249
8250 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
8251
8252         * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
8253         proper kind of reference to the primitive operation, for better source
8254         navigation.
8255         (Valid_Conversion): A tagged conversion is legal if both operands are
8256         tagged.
8257
8258 2007-09-26  Robert Dewar  <dewar@adacore.com>
8259
8260         * sem_warn.adb (Check_References): Catch more cases of unreferenced
8261         packages.
8262
8263 2007-09-26  Vincent Celier  <celier@adacore.com>
8264
8265         * snames.adb, snames.ads: Change Include_Option to Include_Switches
8266
8267 2007-09-26  Robert Dewar  <dewar@adacore.com>
8268
8269         * s-wchstw.adb: provide messages for run time unit exceptions
8270
8271         * a-witeio.adb: Minor reformatting
8272
8273         * exp_ch13.adb: Minor reformatting
8274
8275 2007-09-26  Sergey Rybin  <rybin@adacore.com>
8276
8277         * vms_data.ads: Revise gnatmetric qualifiers.
8278         Add qualified for the new gnatbind option '-y'
8279
8280         * gnat_ugn.texi: Revise the gnatmetric section.
8281         Add entry for new gnatbind option '-y'.
8282
8283         * gnat_rm.texi: Minor spelling correction.
8284         Document restriction on overlaying controlled types
8285
8286 2007-09-26  Vincent Celier  <celier@adacore.com>
8287
8288         * makegpr.adb (Link_Executables): Do not fail when the root project has
8289         no sources, but is an extending project.
8290
8291 2007-09-25  Eric Botcazou  <ebotcazou@adacore.com>
8292
8293         * trans.c: Fix misplaced #define.
8294
8295 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
8296
8297         * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
8298         the TYPE_REF_CAN_ALIAS_ALL flag to the result.
8299
8300 2007-09-21  Olivier Hainque  <hainque@adacore.com>
8301
8302         * utils.c (type_for_nonaliased_component_p): Return false for
8303         all AGGREGATE_TYPEs.
8304
8305 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
8306
8307         * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
8308         object covered by 13.3(19) volatile.
8309
8310 2007-09-12  Eric Botcazou  <ebotcazou@adacore.com>
8311
8312         PR ada/26797
8313         PR ada/32407
8314         * utils.c (unchecked_convert): Use a subtype as the intermediate type
8315         in the special VIEW_CONVERT_EXPR case.
8316
8317 2007-09-12  Robert Dewar  <dewar@adacore.com>
8318
8319         * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
8320
8321         * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
8322         lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
8323         s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
8324         s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
8325         s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
8326         s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
8327         s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
8328         s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
8329         a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads, 
8330         g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads, 
8331         s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb, 
8332         s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb, 
8333         snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads, 
8334         s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads, 
8335         s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads, 
8336         s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads, 
8337         s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
8338         pragma Compiler_Unit and adds it to relevant library units.
8339
8340 2007-09-12  Ed Schonberg  <schonberg@adacore.com>
8341
8342         * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
8343         a box need not correspond to any component.
8344
8345 2007-09-12  Robert Dewar  <dewar@adacore.com>
8346
8347         * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
8348         the tasking version of the Ada run time when foreign threads are
8349         present and there are no explicit Ada tasks or tasking constructs.
8350
8351         * gnat_rm.texi: Clarify documentation of GNAT.Threads.
8352
8353 2007-09-12  Hristian Kirtchev  <kirtchev@adacore.com>
8354
8355         * bindusg.adb (Display): Correct comment for switch -X. Add a line for
8356         the usage of switch -y.
8357
8358         * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
8359         when switch -y is present.
8360
8361         * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
8362         leap seconds in Ada.Calendar and its children.
8363
8364 2007-09-12  Jose Ruiz  <ruiz@adacore.com>
8365
8366         * a-extiti.ads (Timer): The discriminant is a "not null access
8367         constant" in the Reference Manual.
8368         (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
8369
8370 2007-09-12  Robert Dewar  <dewar@adacore.com>
8371
8372         * a-swuwha.adb: Remove junk RM header
8373
8374 2007-09-12  Vincent Celier  <celier@adacore.com>
8375
8376         * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
8377         indicator
8378
8379         * g-bytswa.ads: Minor reformatting
8380
8381 2007-09-12  Thomas Quinot  <quinot@adacore.com>
8382
8383         * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads: 
8384         Add new constant Thread_Blocking_IO, always True by default, set False
8385         on a per-runtime basis.
8386         (Need_Netdb_Buffer): New constant.
8387
8388 2007-09-12  Arnaud Charlet  <charlet@adacore.com>
8389
8390         * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
8391         Added renames for corresponding functions in System.Partition_Interface.
8392
8393 2007-09-12  Doug Rupp  <rupp@adacore.com>
8394
8395         * Makefile.in: Remove VMS specific System.CRTL packages which are no
8396         longer needed.
8397
8398         * s-crtl-vms64.ads: Removed.
8399
8400 2007-09-12  Olivier Hainque  <hainque@adacore.com>
8401
8402         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
8403         with discriminant constraints, generalize the code for BIT_FIELDs
8404         to PACKED fields of constant size and propagate DECL_PACKED.
8405
8406 2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
8407
8408         * decl.c (array_type_has_nonaliased_component): New predicate.
8409         (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
8410         set the TYPE_NONALIASED_COMPONENT flag on the type.
8411         <E_Array_Subtype>: Likewise.
8412         * gigi.h (type_for_nonaliased_component_p): Declare.
8413         * utils.c (type_for_nonaliased_component_p): New predicate.
8414         (create_field_decl): Invoke the above predicate to set the
8415         DECL_NONADDRESSABLE_P flag on the field.
8416
8417 2007-09-11  Javier Miranda  <miranda@adacore.com>
8418
8419         * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
8420         in library level record type entities if we are generating statically
8421         allocated dispatch tables.
8422
8423         * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
8424         importing/exporting the _tag declaration by new code
8425         importing/exporting the dispatch table wrapper. This change allows us
8426         to statically allocate of the TSD.
8427         (Make_DT.Export_DT): New procedure.
8428         (Build_Static_DT): New function.
8429         (Has_DT): New function.
8430
8431         * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
8432         True_Constant and Current_Value. Required to statically
8433         allocate the dispatch tables.
8434         (Check_Allocator): Make function iterative instead of recursive.
8435         Also return inner allocator node, when present, so that we do not have
8436         to look for that node again in the caller.
8437
8438 2007-09-11  Jan Hubicka  <jh@suse.cz>
8439
8440         * misc.c (gnat_expand_body): Kill.
8441         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
8442
8443 2007-09-10  Robert Dewar  <dewar@adacore.com>
8444
8445         * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
8446         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
8447         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
8448         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
8449         ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
8450         bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
8451         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
8452         butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
8453         comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
8454         elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
8455         err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
8456         exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
8457         exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
8458         exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
8459         exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
8460         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
8461         exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
8462         exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
8463         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
8464         exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
8465         exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
8466         exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
8467         fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
8468         get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
8469         gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
8470         gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
8471         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
8472         gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
8473         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
8474         gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
8475         inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
8476         lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
8477         lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
8478         make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
8479         mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
8480         mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
8481         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
8482         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
8483         osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
8484         osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
8485         par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
8486         par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
8487         par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
8488         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
8489         par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
8490         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
8491         prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
8492         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
8493         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
8494         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
8495         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
8496         prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
8497         rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
8498         scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
8499         sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
8500         sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
8501         sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
8502         sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
8503         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
8504         sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
8505         sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
8506         sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
8507         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
8508         sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
8509         sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
8510         sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
8511         sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
8512         sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
8513         stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
8514         styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
8515         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
8516         switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
8517         tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
8518         treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
8519         types.h, uintp.h, urealp.h, usage.adb, usage.ads,
8520         validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
8521         xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
8522         xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
8523         gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
8524         mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
8525         symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
8526         mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
8527         mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
8528
8529 2007-09-10  Emmanuel Briot  <briot@adacore.com>
8530
8531         * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
8532         classes ("[]").
8533
8534 2007-09-10  Vasiliy Fofanov  <fofanov@adacore.com>
8535
8536         * adaint.c (__gnat_translate_vms): new function.
8537
8538 2007-09-10  Gary Dismukes  <dismukes@adacore.com>
8539             Thomas Quinot  <quinot@adacore.com>
8540
8541         * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
8542         create an abstract subprogram in the case of 'Input. For 'Output we now
8543         create a real spec/body when the type is abstract, since it can
8544         potentially be called.
8545         (Predefined_Primitive_Bodies): Now allow the creation of a predefined
8546         body for 'Output when the type is abstract (only the creation of the
8547         body for 'Input is excluded when the type is abstract).
8548         (Stream_Operation_OK): Add an additional condition in the return
8549         statement, so that False will be returned for TTS_Stream_Input if the
8550         associated tagged type is an abstract extension. Add comments for
8551         return statement.
8552         (Expand_N_Object_Declaration): For the case of a shared passive
8553         variable, insert init proc call only after the shared variable
8554         procedures have been processed, because the IP call needs to undergo
8555         shared passive variable reference expansion, which requires these
8556         procedures to be available (and elaborated).
8557
8558 2007-09-10  Vincent Celier  <celier@adacore.com>
8559
8560         * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
8561         parameter Runtime_Project.
8562
8563 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
8564
8565         * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
8566         given a box association, the type of the component is discriminated,
8567         and the value of the discriminant is the discriminant of the enclosing
8568         type, retrieve its value from the aggregate itself, where it must have
8569         been supplied.
8570
8571         * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
8572         to remove other spurious ambiguities on arithmetic operations involving
8573         literals and addresses, on systems where Address is a visible integer
8574         type, when the operator is called in functional notation.
8575         (Try_Primitive_Operation): Within an instance, a call in prefixed form
8576         is legal when the types match, even if the operation is currently
8577         hidden.
8578
8579 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
8580
8581         * sem_ch12.adb (Build_Local_Package): A formal package with no
8582         associations is legal if all formals have defaults. It is not
8583         equivalent to a formal declared with a box.
8584
8585 2007-09-10  Sergey Rybin  <rybin@adacore.com>
8586
8587         * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
8588
8589 2007-09-10  Sergey Rybin  <rybin@adacore.com>
8590
8591         * gnat_ugn.texi: Add description of the new '-lratio' option
8592         Update 7.3.1 section about availability of the feature.
8593
8594 2007-09-10  Thomas Quinot  <quinot@adacore.com>
8595
8596         * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
8597         inserted node.
8598
8599 2007-09-10  Olivier Hainque  <hainque@adacore.com>
8600
8601         * Makefile.in: (mips-irix section): Activate build of libgmem.
8602
8603 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
8604
8605         * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
8606         x87 registers.
8607
8608 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
8609
8610         * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
8611         a debug renaming declaration specially.
8612
8613 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
8614
8615         * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
8616         which a constant renaming is treated as a normal object declaration.
8617         * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
8618         the N_Indexed_Component case.
8619         <N_Indexed_Component>: Fall through to above case.
8620         <N_Object_Renaming_Declaration>: Return true for all composite types.
8621
8622 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
8623
8624         * decl.c (make_packable_type): If the new type has been given BLKmode,
8625         try again to get an integral mode for it.
8626
8627 2007-09-07  Eric Botcazou  <ebotcazou@adacore.com>
8628
8629         Re-apply accidentally reverted change:
8630
8631         2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
8632
8633         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
8634         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
8635         and _Unwind_SWord with _sleb128_t.
8636
8637 2007-09-06  Eric Botcazou  <ebotcazou@adacore.com>
8638
8639         * trans.c (convert_with_check): Update call to real_2expN.
8640
8641 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
8642
8643         * trans.c (Compilation_unit_to_gnu): Use set_cfun.
8644         * utils.c (end_subprog_body): Likewise.
8645
8646 2007-09-03  Nick Clifton  <nickc@redhat.com>
8647
8648         * Make-lang.in: Change copyright header to refer to version 3 of
8649         the GNU General Public License and to point readers at the
8650         COPYING3 file and the FSF's license web page.
8651         * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
8652         Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
8653         namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
8654         treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
8655         Likewise.
8656
8657 2007-08-31  Vincent Celier  <celier@adacore.com>
8658
8659         PR ada/4720
8660
8661         * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb, 
8662         gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
8663         (Check_Version_And_Help): New procedure in package Switch to process
8664         switches --version and --help.
8665         Use Check_Version_And_Help in GNAT tools
8666
8667         * make.adb:  Ditto.
8668         (Compile_Sources): Make sure that sources that are "excluded" are not
8669         compiled.
8670         (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
8671         project file is used.
8672         (Version_Switch): Remove, moved to Switch
8673         (Help_Switch): Remove, moved to Switch
8674         (Display_Version): Remove, moved to Switch
8675
8676         * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
8677         package Switch to process switches --version and --help.
8678         (Display_Version): New procedure
8679
8680         * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
8681
8682 2007-08-31  Javier Miranda  <miranda@adacore.com>
8683
8684         * a-tags.adb (Internal_Tag): Protect the run-time against wrong
8685         internal tags.
8686
8687 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
8688
8689         * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
8690         (Mark_Non_Null): If the node for which we just generated an access check
8691         is a reference to an *in* parameter and the reference appears in the
8692         declarative part of a subprogram body, mark the node as known non null.
8693
8694 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
8695
8696         * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
8697         structure of E_Exception to reflect the new flag.
8698         (Is_Raised, Set_Is_Raised): New inlined routines.
8699         Update the usage of available flag to reflect the addition of Is_Raised.
8700         (Is_Raised, Set_Is_Raised): Bodies of new routines.
8701         (Write_Entity_Flags): Write the status of flag Is_Raised.
8702         (Is_Descendent_Of_Address): New entity flag, to simplify handling of
8703         spurious ambiguities when integer literals appear in the context of an
8704         address type that is a visible integer type.
8705
8706         * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
8707         exceptions never being raised.
8708         (Analyze_Raise_Statement): When analyzing an exception, mark it as being
8709         explicitly raised.
8710
8711 2007-08-31  Javier Miranda  <miranda@adacore.com>
8712
8713         * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
8714         statement when compiling under restriction No_Exceptions_Proparation.
8715
8716 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
8717
8718         * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
8719         initialization aggregate for the type, generate itype references for
8720         thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
8721
8722 2007-08-31  Gary Dismukes  <dismukes@adacore.com>
8723
8724         * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
8725         library-level package renaming, pass the declaration associated with
8726         the renaming's special debug variable to Qualify_Entity_Names to ensure
8727         that its encoded name is properly qualified.
8728
8729         * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
8730         occurring in the list of entities to qualify, and do not attempt to
8731         traverse an entity list in that case. Variables associated with
8732 `       library-level package renamings can now occur in the table.
8733
8734         * exp_dbug.ads: Revise documentation of the encoding for renaming
8735         declarations.
8736
8737 2007-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8738
8739         * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
8740         access type points to an unconstrained array.
8741
8742 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
8743
8744         * restrict.adb, namet.adb, par-util.adb: Remove redundant type
8745         conversion.
8746
8747         * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
8748         simple redundant qualifications. The check is performed whenever the
8749         expression is a non-overloaded identifier.
8750         (Resolve_Type_Conversion): Enchance the redundant type conversion check
8751         to include loop parameters.
8752         (Valid_Conversion): Avoid generation of spurious error message.
8753
8754 2007-08-31  Bob Duff  <duff@adacore.com>
8755
8756         * par-ch4.adb (P_Simple_Expression): Fold long sequences of
8757         concatenations of string literals into a single literal, in order to
8758         avoid very deep recursion in the front end, which was causing stack
8759         overflow.
8760
8761         * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
8762         string, and the right operand is a string literal (the case of "" &
8763         "..."), optimize by avoiding copying the right operand -- just use the
8764         value of the right operand directly.
8765
8766         * stringt.adb (Store_String_Chars): Optimize by growing the
8767         String_Chars table all at once, rather than appending characters one by
8768         one.
8769         (Write_String_Table_Entry): If the string to be printed is very long,
8770         just print the first few characters, followed by the length. Otherwise,
8771         doing "pn(n)" in the debugger can take an extremely long time.
8772
8773         * sem_prag.adb (Process_Interface_Name): Replace loop doing
8774         Store_String_Char with Store_String_Chars.
8775
8776 2007-08-31  Vincent Celier  <celier@adacore.com>
8777
8778         * prj-attr.adb: Add new attribute Excluded_Source_Files
8779
8780         * prj-nmsc.adb: Use attribute Excluded_Source_Files before
8781         Locally_Removed_Files.
8782
8783         * snames.ads, snames.adb: New standard name Excluded_Source_Files
8784
8785 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
8786
8787         * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
8788         clauses of subunits, ignore limited_with_clauses that are illegal and
8789         have not been fully analyzed.
8790
8791 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
8792
8793         * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
8794         flag, for effiency. It is called when analyzing arithmetic operators
8795         and also for actuals in calls that are universal_integers. The flag is
8796         set for the predefined type address, and for any type or subtype
8797         derived from it.
8798
8799         * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
8800         Universal_Integer, when the formal is a descendent of address and the
8801         call appears in user code.
8802         (Analyze_Selected_Component): if the prefix is a private extension, the
8803         tag component is visible.
8804
8805         * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
8806         entity flag.
8807
8808 2007-08-31  Robert Dewar  <dewar@adacore.com>
8809
8810         * s-fileio.adb (Open): Normalize file name to lower case in non-case
8811         sensitive file name systems to avoid unexpected mismatch in Vista.
8812
8813 2007-08-31  Vincent Celier  <celier@adacore.com>
8814
8815         * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
8816
8817 2007-08-31  Vincent Celier  <celier@adacore.com>
8818
8819         * symbols-vms.adb (Initialize): Read symbol files with continuation
8820         lines
8821         (Finalize): If symbol is long, split the line
8822
8823 2007-08-31  Vincent Celier  <celier@adacore.com>
8824
8825         * fmap.ads: Minor comment updates
8826
8827 2007-08-31  GNAT Script  <nobody@adacore.com>
8828
8829         * Make-lang.in: Makefile automatically updated
8830
8831 2007-08-31  Bob Duff  <duff@adacore.com>
8832
8833         * sinfo.ads: Minor comment fix.
8834
8835 2007-08-31  Thomas Quinot  <quinot@adacore.com>
8836
8837         * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
8838         with implementation.
8839         Documentation cleanup only.
8840
8841 2007-08-31  Sergey Rybin  <rybin@adacore.com>
8842
8843         * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
8844         gnatpp '--separate-stmt-name' option.
8845         Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
8846         option.
8847
8848         * gnat_ugn.texi: Add description for the new gnatpp
8849         '--separate-stmt-name' and '--use-on-new-line' options.
8850
8851 2007-08-31  Ben Elliston  <bje@au.ibm.com>
8852
8853         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
8854         when compiling for powerpc64-*-linux.
8855         * system-linux-ppc64.ads: New file.
8856
8857 2007-08-22  Krister Walfridsson  <cato@df.lth.se>
8858
8859         * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
8860         NetBSD.
8861
8862 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8863
8864         * misc.c (gnat_type_max_size): Constify.
8865
8866 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
8867
8868         * cstand.adb (Create_Standard): Create an entity for a zero-sized type
8869         associated with Standard_Debug_Renaming_Type, to be used as the type of
8870         the special variables whose names provide debugger encodings for
8871         renaming declarations.
8872
8873         * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
8874         (Set_Debug_Renaming_Link): Change to set Node25.
8875         (Write_Field13_Name): Remove case for E_Enumeration_Literal.
8876         (Write_Field25_Name): Add case for E_Variable to output
8877         "Debug_Renaming_Link".
8878         (Write_Field23_Name): Correct the output string for "Limited_View".
8879
8880         * exp_dbug.adb: Add with and use of Tbuild.
8881         (Debug_Renaming_Declaration): Replace creation of an enumeration type
8882         and literal with creation of a variable of type
8883         Standard_Debug_Renaming_Type whose name encodes both the renamed object
8884         and the entity of the renaming declaration.
8885         (Qualify_Entity_Name): Add the delayed qualification of the entity name
8886         part of the name of a variable that has a Debug_Renaming_Link.
8887
8888         * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
8889         special type to be associated with variables that provide debugger
8890         encodings for renaming declarations.
8891
8892 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
8893             Ed Schonberg  <schonberg@adacore.com>
8894             Javier Miranda  <miranda@adacore.com>
8895
8896         * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
8897         ancestor part given by an aggregate to test for an unchecked conversion,
8898         since this can occur in some cases when the ancestor part is a function
8899         call, and we don't want to fall into the recursive call to this
8900         procedure in that case.
8901
8902         * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
8903         stream attributes on limited types to account for user-specified
8904         attributes as well as whether Input (resp. Output) becomes available
8905         due to Read (resp. Write) being available for the type. Change Boolean
8906         variable to the more accurate name
8907         Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
8908         double-"not" predicate at beginning of return statement to more
8909         understandable form.
8910
8911         * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
8912         return has an associated N_Handled_Sequence_Of_Statements, then wrap it
8913         in a block statement and use that as the first statement of the
8914         expanded return rather than incorrectly using the handled sequence as
8915         the first statement.
8916
8917         * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
8918         operation, generate an explicit freeze node for it rather than
8919         generating extra formals, to ensure that gigi has the proper order of
8920         elaboration for anonymous subtypes in the signature of the subprograms.
8921         (Build_In_Place_Formal): Move assertion to beginning of loop.
8922         (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
8923         applied to a function call (occurs for some cases of 'Input).
8924         (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
8925         applied to a function call (occurs for some cases of 'Input).
8926
8927         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
8928         2005, generate an extended return statement enclosing the result object
8929         and 'Read call.
8930
8931         * freeze.adb (Freeze_Record_Type): Extend the current management of
8932         components that are access type with an allocator as default value: add
8933         missing support to the use of qualified expressions of the
8934         allocator (which also cause freezing of the designated type!)
8935         (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
8936         dispatching operation, since extra formals may be needed by calls to
8937         build-in-place functions (such as stream 'Input).
8938
8939         * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
8940         formals for 'Constrained and accessibility level in the case of a
8941         predefined dispatching operation.
8942
8943         * exp_util.adb (Insert_Actions): A protected body is a valid insertion
8944         point, no need to find the parent node.
8945
8946 2007-08-16  Javier Miranda  <miranda@adacore.com>
8947
8948         * exp_attr.adb (Attribute_Priority): Add missing support for entries
8949         and entry barriers.
8950
8951 2007-08-16  Javier Miranda  <miranda@adacore.com>
8952
8953         * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
8954         is not really required and can introduce regression with the debugger.
8955         The original problem is fixed with the patch written for checks.adb.
8956
8957 2007-08-16  Thomas Quinot  <quinot@adacore.com>
8958
8959         * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
8960         Range_Check on Allocated_Table.
8961
8962 2007-08-16  Vincent Celier  <celier@adacore.com>
8963
8964         * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
8965         Including_Non_Switch set to False.
8966         (Gnatmake): For the compiler, call Test_If_Relative_Path with
8967         Including_Non_Switch set to False.
8968
8969         * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
8970         parameter Including_Non_Switch, defaulted to True. When
8971         Including_Non_Switch is False, options that are not switches and
8972         appear as relative path are not converted to absolute paths.
8973
8974 2007-08-16  Nicolas Roche  <roche@adacore.com>
8975
8976         * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
8977         makefiles
8978
8979         * Make-lang.in: Update dependencies
8980
8981 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
8982
8983         * sem_ch10.adb (Has_With_Clause): If the name of the with clause
8984         currently inspected is a selected component, retrieve the entity of
8985         its selector.
8986         (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
8987         from the immediate ancestor of Main_Unit_Entity.
8988         (Install_Limited_Withed_Unit): Do not install the limited view of
8989         package P if P is reachable through an ancestor chain from package C
8990         and C also has a with clause for P in its body.
8991         (Has_Limited_With_Clause): New routine.
8992         (Has_With_Clause): New routine.
8993
8994 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
8995
8996         * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
8997         generic for an enclosing instance is a global reference, even though
8998         its scope is the enclosing instance.
8999
9000 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
9001             Javier Miranda  <miranda@adacore.com>
9002
9003         * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
9004         initialize a limited object.
9005         (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
9006         13/2 and 14/2.
9007         Make sure Has_Complex_Representation is inherited by derived type.
9008
9009 2007-08-16  Robert Dewar  <dewar@adacore.com>
9010
9011         * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
9012         exception case
9013
9014 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
9015
9016         * sem_disp.adb (Check_Dispatching_Operation): If the operation
9017         implements an operation inherited from a progenitor interface, verify
9018         that they are subtype-conformant.
9019
9020 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
9021             Bob Duff  <duff@adacore.com>
9022             Nicolas Setton  <setton@adacore.com>
9023
9024         * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
9025         (Resolve): Alphabetize local variables. Add new variable From_Lib. When
9026         the statement which is being resolved comes from a predefined library
9027         unit, all non-predefined library interpretations are skipped.
9028         (Resolve_Op_Concat): If string concatenation was folded in the parser,
9029         but the "&" is user defined, give an error, because the folding would
9030         be wrong.
9031
9032         * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
9033         the parser has folded a long sequence of concatenations of string
9034         literals.
9035
9036         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
9037         and "JMP_BUF" variables as artificial.
9038         (N_String_Literal): Do not use alloca for very long string literals. Use
9039         xmalloc/free instead. Otherwise the stack might overflow.
9040
9041         * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
9042         compiler.
9043
9044 2007-08-16  Vincent Celier  <celier@adacore.com>
9045
9046         * vms_conv.adb (Process_Argument): Ensure that project related options
9047         are not put in the -cargs section when using GNAT COMPILE.
9048
9049 2007-08-16  Robert Dewar  <dewar@adacore.com>
9050
9051         * gnat_ugn.texi: Add note on preprocessing (output file not written)
9052
9053 2007-08-16  Thomas Quinot  <quinot@adacore.com>
9054
9055         * a-tags.adb: Minor reformatting.
9056
9057 2007-08-16  Bob Duff  <duff@adacore.com>
9058
9059         * sem_type.ads, sem_ch4.adb: Minor reformatting.
9060
9061 2007-08-14  Thomas Quinot  <quinot@adacore.com>
9062
9063         * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads, 
9064         s-osinte-interix.ads, system-interix.ads: Removed.
9065
9066 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
9067
9068         * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
9069         calls to Check_Within_Time_Bounds.
9070         ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
9071         (Difference): Account for possible rounding of the resulting difference
9072
9073 2007-08-14  Robert Dewar  <dewar@adacore.com>
9074
9075         * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
9076         par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
9077         s-osinte-solaris.adb, s-osinte-solaris.ads,
9078         s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
9079
9080         * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
9081         switch -gnatyS. Enable -gnatyS in GNAT style check mode
9082
9083 2007-08-14  Robert Dewar  <dewar@adacore.com>
9084             Ed Schonberg  <schonberg@adacore.com>
9085
9086         * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads: 
9087         Suppress unmodified in-out parameter warning in some cases
9088         This patch is a also fairly significant change to the way suppressible
9089         checks are handled.
9090
9091         * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
9092         needed for access to concurrent record types generated by the expander.
9093         (Generate_Range_Check): When generating a temporary to capture the
9094         value of a conversion that requires a range check, set the type of the
9095         temporary before rewriting the node, so that the type is always
9096         properly placed for back-end use.
9097         (Apply_Float_Conversion_Check): Handle case where the conversion is
9098         truncating.
9099         (Get_Discriminal): Code reformatting. Climb the scope stack looking
9100         for a protected type in order to examine its discriminants.
9101
9102 2007-08-14  Robert Dewar  <dewar@adacore.com>
9103             Gary Dismukes  <dismukes@adacore.com>
9104             Ed Schonberg  <schonberg@adacore.com>
9105             Thomas Quinot  <quinot@adacore.com>
9106
9107         * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb, 
9108         a-stwisu.adb, a-strsup.adb: Fix warnings for range
9109         tests optimized out.
9110
9111         * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
9112         (Get_Allocator_Final_List): For the case of an anonymous access type
9113         that has a specified Associated_Final_Chain, do not go up to the
9114         enclosing scope.
9115         (Expand_N_Type_Conversion): Test for the case of renamings of access
9116         parameters when deciding whether to apply a run-time accessibility
9117         check.
9118         (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
9119         aggregate code before allocator, and ahead of declaration for
9120         temporary, to prevent access before elaboration when the allocator is
9121         an actual for an access parameter.
9122         (Expand_N_Type_Conversion): On an access type conversion involving an
9123         access parameter, do not apply an accessibility check when the
9124         operand's original node was an attribute other than 'Access. We now
9125         create access conversions for the expansion of 'Unchecked_Access and
9126         'Unrestricted_Access in certain cases and clearly accessibility should
9127         not be checked for those.
9128
9129         * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
9130         includes a type conversion of a packed component that has been expanded,
9131         recover the original expression for the object, and use this expression
9132         in the post-call assignment statement, so that the assignment is made
9133         to the object and not to a back-end temporary.
9134         (Freeze_Subprogram): In case of primitives of tagged types not defined
9135         at the library level force generation of code to register the primitive
9136         in the dispatch table. In addition some code reorganization has been
9137         done to leave the implementation clear.
9138         (Expand_Call): When expanding an inherited implicit conversion,
9139         preserve the type of the inherited function after the intrinsic
9140         operation has been expanded.
9141
9142         * exp_ch2.ads, exp_ch2.adb
9143         (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
9144         of an entry formal appearing in an assignment statement does not assign
9145         to the formal.
9146         (Expand_Current_Value): Instead of calling a routine to determine
9147         whether the prefix of an attribute reference should be optimized or
9148         not, prevent the optimization of such prefixes all together.
9149
9150         * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
9151         component whose prefix is known to be of an access type is an implicit
9152         dereference and does not assign to the prefix.
9153
9154 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
9155             Robert Dewar  <dewar@adacore.com>
9156
9157         * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
9158         itype is visited, make an entry into table to link associated node and
9159         new itype.
9160         Add comments and correct harmless error in Build_NCT_Hash_Tables
9161         (Array_Aggr_Subtype): Associate each itype created for an index type to
9162         the corresponding range construct, and not to the aggregate itself. to
9163         maintain a one-to-one correspondence between itype and its associated
9164         node, to prevent errors when complex expression is copied.
9165         Fix mishandling of multiple levels of parens
9166
9167         * sem_aggr.adb: Create a limited view of an incomplete type, to make
9168         treatment of limited views uniform for all visible declarations in a
9169         limited_withed package.
9170         (New_Copy_Tree): If hash table is being used and itype is visited,
9171         make an entry into table to link associated node and new itype.
9172         (Resolve_Record_Aggregate): Do not add an others box association for a
9173         discriminated record component that has only discriminants, when there
9174         is a box association for the component itself.
9175
9176         * par-ch4.adb: Fix mishandling of multiple levels of parens
9177
9178 2007-08-14  Robert Dewar  <dewar@adacore.com>
9179
9180         * comperr.adb: Fix problem with suppressing warning messages from gigi
9181
9182         * erroutc.ads, erroutc.adb, errout.ads, 
9183         errout.adb (Write_Eol): Remove trailing spaces before writing the line
9184         (Write_Eol_Keep_Blanks): New procedure to write a line, including
9185         possible trailing spaces.
9186         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
9187         Fix problem with suppressing warning messages from back end
9188         Improve handling of deleted warnings
9189
9190         * gnat1drv.adb: 
9191         Fix problem with suppressing warning messages from back end
9192         Handle setting of Static_Dispatch_Tables flag.
9193
9194         * prepcomp.adb: 
9195         Fix problem with suppressing warning messages from back end
9196
9197         * exp_intr.adb: Improve handling of deleted warnings
9198
9199 2007-08-14  Robert Dewar  <dewar@adacore.com>
9200
9201         * debug.adb: Improve -gnatdI to cover all cases of serialization
9202         Add documentation of dZ, d.t
9203
9204         * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
9205         serialization.
9206         (Sprint_Node_Actual): Generate new output associated with implicit
9207         importation and implicit exportation of object declarations.
9208
9209 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
9210             Robert Dewar  <dewar@adacore.com>
9211             Javier Miranda  <miranda@adacore.com>
9212             Gary Dismukes  <dismukes@adacore.com>
9213
9214         * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
9215         to make treatment of limited views uniform for all visible declarations
9216         in a limited_withed package.
9217         Improve warnings for in out parameters
9218         (Set_Related_Interaface/Related_Interface): Allow the use of this
9219         attribute with constants.
9220         (Write_Field26_Name): Handle attribute Related_Interface in constants.
9221         Warn on duplicate pragma Preelaborable_Initialialization
9222
9223         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
9224         generation of a freezing node to ensure proper management of null
9225         excluding access types in the backend.
9226         (Create_Extra_Formals): Test base type of the formal when checking for
9227         the need to add an extra accessibility-level formal. Pass the entity E
9228         on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
9229         originally being done in a couple of cases), to ensure that the
9230         Extra_Formals list gets set on the entity E when the first entity is
9231         added.
9232         (Conforming_Types): Add missing calls to Base_Type to the code that
9233         handles anonymous access types. This is required to handle the
9234         general case because Process_Formals builds internal subtype entities
9235         to handle null-excluding access types.
9236         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
9237         functions that need it, even when not marked Requires_Overriding.
9238         Improve warnings for in out parameters
9239         (Analyze_Function_Return): Warn for disallowed null return
9240         Warn on return from procedure with unset out parameter
9241         Ensure consistent use of # in error messages
9242         (Check_Overriding_Indicator): Add in parameter Is_Primitive.
9243         (Analyze_Function_Return): Move call to Apply_Constraint_Check before
9244         the implicit conversion of the expression done for anonymous access
9245         types. This is required to generate the code of the null excluding
9246         check (if required).
9247
9248         * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
9249         A formal parameter is never publicly referenceable outside of its body.
9250         (Check_References): For an unreferenced formal parameter in an accept
9251         statement, use the same warning circuitry as for subprogram formal
9252         parameters.
9253         (Warn_On_Unreferenced_Entity): New subprogram, taken from
9254         Output_Unreferenced_Messages, containing the part of that routine that
9255         is now reused for entry formals as described above.
9256         (Goto_Spec_Entity): New function
9257         (Check_References): Do not give IN OUT warning for dispatching operation
9258         Improve warnings for in out parameters
9259         (Test_Ref): Check that the entity is not undefinite before calling
9260         Scope_Within, in order to avoid infinite loops.
9261         Warn on return from procedure with unset out parameter
9262         Improved warnings for unused variables
9263
9264 2007-08-14  Robert Dewar  <dewar@adacore.com>
9265             Javier Miranda  <miranda@adacore.com>
9266             Gary Dismukes  <dismukes@adacore.com>
9267
9268         * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
9269         (Expand_N_Attribute_Reference): Further unify the handling of the
9270         three forms of access attributes, using common code now for all three
9271         cases. Add a test for the case of applying an access attribute to
9272         an explicit dereference when the context is an access-to-interface
9273         type. In that case we need to apply the conversion to the prefix
9274         of the explicit dereference rather than the prefix of the attribute.
9275         (Attribute_Version, UET_Address): Set entity as internal to ensure
9276         proper dg output of implicit importation.
9277         (Expand_Access_To_Type): Removed.
9278         (Expand_N_Attribute_Reference): Merge the code from the three cases
9279         of access attributes, since the processing is largely identical for
9280         these cases. The substantive fix here is to process the case of a
9281         type name prefix (current instance case) before handling the case
9282         of interface prefixes.
9283
9284 2007-08-14  Thomas Quinot  <quinot@adacore.com>
9285             Ed Schonberg  <schonberg@adacore.com>
9286             Javier Miranda  <miranda@adacore.com>
9287             Robert Dewar  <dewar@adacore.com>
9288
9289         * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
9290         (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
9291         type that is an anonymous access to controlled object, establish
9292         an associated finalization chain to avoid corrupting the global
9293         finalization list when a dynamically allocated object designated
9294         by such a component is deallocated.
9295         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
9296         functions that need it, even when not marked Requires_Overriding.
9297         (Initialize_Tag): Replace call to has_discriminants by call to
9298         Is_Variable_Size_Record in the circuitry that handles the
9299         initialization of secondary tags.
9300         (Is_Variable_Size_Record): New implementation.
9301         (Expand_N_Object_Declaration): Suppress call to init proc if there is a
9302         Suppress_Initialization pragma for a derived type.
9303         (Is_Variable_Size_Record): New subprogram.
9304         (Build_Offset_To_Top_Functions): New implementation that simplifies the
9305         initial version of this routine and also fixes problems causing
9306         incomplete initialization of the table of interfaces.
9307         (Build_Init_Procedure): Improve the generation of code to initialize the
9308         the tag components of secondary dispatch tables.
9309         (Init_Secondary_Tags): New implementation that simplifies the previous
9310         version of this routine.
9311         (Make_DT): Add parameter to indicate when type has been frozen by an
9312         object declaration, for diagnostic purposes.
9313         (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
9314         diagnose attemps to freeze a subprogram when some untagged type of its
9315         profile is a private type whose full view has not been analyzed yet.
9316         (Freeze_Array_Type): Generate init proc for packed array if either
9317         Initialize or Normalize_Scalars is set.
9318         (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
9319         constructing the new profile, copy the null_exclusion indicator for each
9320         parameter, to ensure full conformance of the new body with the spec.
9321
9322         * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
9323         Create wrappers for constructor functions that need it, even when not
9324         marked Requires_Overriding.
9325         (Covers): Handle properly designated types of anonymous access types,
9326         whose non-limited views are themselves incomplete types.
9327         (Add_Entry): Use an entity to store the abstract operation which hides
9328         an interpretation.
9329         (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
9330         (Collect_Interps): Use Empty as an actual for Abstract_Op in the
9331         initialization aggregate.
9332         (Function_Interp_May_Be_Hidden): Rename to
9333         Function_Interp_Has_Abstract_Op.
9334         (Has_Compatible_Type): Remove machinery that skips interpretations if
9335         they are labeled as potentially hidden by an abstract operator.
9336         (Has_Hidden_Interp): Rename to Has_Abstract_Op.
9337         (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
9338         (Write_Overloads): Output the abstract operator if present.
9339         (Add_Entry): Before inserting a new entry into the interpretation table
9340         for a node, determine whether the entry will be disabled by an abstract
9341         operator.
9342         (Binary_Op_Interp_May_Be_Hidden): New routine.
9343         (Collect_Interps): Add value for flag May_Be_Hidden in initialization
9344         aggregate.
9345         (Function_Interp_May_Be_Hidden): New routine.
9346         (Has_Compatible_Type): Do not consider interpretations hidden by
9347         abstract operators when trying to determine whether two types are
9348         compatible.
9349         (Has_Hidden_Interp): New routine.
9350         (Set_May_Be_Hidden_Interp): New routine.
9351         (Write_Overloads): Write the status of flag May_Be_Hidden.
9352
9353 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
9354             Javier Miranda  <miranda@adacore.com>
9355
9356         * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
9357         types declared in the declarative part of a nested package body or in
9358         the proper body of a stub.
9359         (Set_All_DT_Position): Add missing check to avoid wrong assignation
9360         of the same dispatch table slot to renamed primitives.
9361         (Make_Select_Specific_Data_Table): Handle private types.
9362         (Tagged_Kind): Handle private types.
9363         (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
9364         output of implicit importation and exportation.
9365         (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
9366         first formal of the thunk is always associated with the controlling
9367         type. In addition perform the following code cleanup: remove formal
9368         Thunk_Alias which is no longer required, cleanup evaluation of the
9369         the controlling type, and update the documentation.
9370         Replace occurrence of Default_Prim_Op_Count by
9371         Max_Predef_Prims. Addition of compile-time check to verify
9372         that the value of Max_Predef_Prims is correct.
9373         (Check_Premature_Freezing): Apply check in Ada95 mode as well.
9374         (Make_DT): Add parameter to indicate when type has been frozen by an
9375         object declaration, for diagnostic purposes.
9376         (Build_Static_Dispatch_Tables): New subprogram that takes care of the
9377         construction of statically allocated dispatch tables.
9378         (Make_DT): In case of library-level tagged types export the declaration
9379         of the primary tag. Remove generation of tags (now done by Make_Tags).
9380         Additional modifications to handle non-static generation of dispatch
9381         tables. Take care of building tables for asynchronous interface types
9382         (Make_Tags): New subprogram that generates the entities associated with
9383         the primary and secondary tags of Typ and fills the contents of Access_
9384         Disp_Table. In case of library-level tagged types imports the forward
9385         declaration of the primary tag that will be declared later by Make_DT.
9386         (Expand_Interface_Conversion): In case of access types to interfaces
9387         replace an itype declaration by an explicit type declaration to avoid
9388         problems associated with the scope of such itype in transient blocks.
9389
9390 2007-08-14  Robert Dewar  <dewar@adacore.com>
9391             Ed Schonberg  <schonberg@adacore.com>
9392             Javier Miranda  <miranda@adacore.com>
9393
9394         * exp_util.ads, exp_util.adb: 
9395         This patch replaces a number of occurrences of explicit tests for N_Null
9396         with calls to Known_Null. This improves tracking of null values, since
9397         Known_Null also catches null constants, and variables currently known to
9398         be null, so we get better tracking.
9399         (Ensure_Defined): create an itype reference only in the scope of the
9400         itype.
9401         (Side_Effect_Free): A selected component of an access type that
9402         denotes a component with a rep clause must be treated as not
9403         side-effect free, because if it is part of a linked structure its
9404         value may be affected by a renaming.
9405         (Expand_Subtype_From_Expr): For limited objects initialized with build
9406         in place function calls, do nothing; otherwise we prematurely introduce
9407         an N_Reference node in the expression initializing the object, which
9408         breaks the circuitry that detects and adds the additional arguments to
9409         the called function. Bug found working in the new patch for statically
9410         allocated dispatch tables.
9411         (Is_Library_Level_Tagged_Type): New subprogram.
9412         (Remove_Side_Effects): If the expression of an elementary type is an
9413         operator treat as a function call.
9414         (Make_Literal_Range): If the index type of the array is not integer, use
9415         attributes properly to compute the constraint on the resulting aggregate
9416         which is a string.
9417
9418         * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
9419         class-wide type whose base type is an incomplete private type, leave
9420         class-wide type unfrozen so that freeze nodes can be generated
9421         properly at a later point.
9422         (Freeze_Entity, array case): Handle case of pragma Pack and component
9423         size attributre clause for same array.
9424
9425 2007-08-14  Vincent Celier  <celier@adacore.com>
9426
9427         * prj.ads, prj.adb: Update Project Manager to new attribute names for
9428         gprbuild.
9429         Allow all valid declarations in configuration project files
9430         (Reset): Initialize all tables and hash tables in the project tree data
9431         Major update of the Project Manager and of the project aware tools,
9432         including gprmake, so that the same sources in the GNAT repository
9433         can be used by gprbuild.
9434         (Slash_Id): Change type to be Path_Name_Type
9435         (Slash): Return a Path_Name_Type instead of a File_Name_Type
9436
9437         * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
9438         gprbuild.
9439         Update Project Manager to new attribute names for ghprbuild
9440         Allow all valid declarations in configuration project files
9441         Major update of the Project Manager and of the project aware tools,
9442         including gprmake, so that the same sources in the GNAT repository
9443         can be used by gprbuild.
9444
9445         * prj-com.ads: 
9446         Major update of the Project Manager and of the project aware tools,
9447         including gprmake, so that the same sources in the GNAT repository
9448         can be used by gprbuild.
9449
9450         * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
9451         insensitive flag for attributes with optional index.
9452         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
9453         array attribute, put the index in lower case.
9454         Update Project Manager to new attribute names for ghprbuild
9455         Allow all valid declarations in configuration project files
9456         Major update of the Project Manager and of the project aware tools,
9457         including gprmake, so that the same sources in the GNAT repository
9458         can be used by gprbuild.
9459
9460         * prj-env.ads, prj-env.adb: 
9461         Major update of the Project Manager and of the project aware tools,
9462         including gprmake, so that the same sources in the GNAT repository
9463         can be used by gprbuild.
9464         (Get_Reference): Change type of parameter Path to Path_Name_Type
9465
9466         * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
9467         removing '-' from the path to start with the first character of the
9468         next directory.
9469         Major update of the Project Manager and of the project aware tools,
9470         including gprmake, so that the same sources in the GNAT repository
9471         can be used by gprbuild.
9472         Major update of the Project Manager and of the project aware tools,
9473         including gprmake, so that the same sources in the GNAT repository
9474         can be used by gprbuild.
9475
9476         * prj-nmsc.ads, prj-nmsc.adb: 
9477         Update Project Manager to new attribute names for ghprbuild
9478         Allow all valid declarations in configuration project files
9479         (Search_Directories): Detect subunits that are specified with an
9480         attribute Body in package Naming. Do not replace a source/unit in the
9481         same project when the order of the source dirs are known. Detect
9482         duplicate sources/units in the same project when the order of the
9483         source dirs are not known.
9484         (Check_Ada_Name): Allow all identifiers that are not reserved words
9485         in Ada 95.
9486         Major update of the Project Manager and of the project aware tools,
9487         including gprmake, so that the same sources in the GNAT repository
9488         can be used by gprbuild.
9489         (Look_For_Sources): If the list of sources is empty, set the object
9490         directory of non extending project to nil.
9491         Change type of path name variables to be Path_Name_Type
9492         (Locate_Directory): Make sure that on Windows '/' is converted to '\',
9493         otherwise creating missing directories will fail.
9494
9495         * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb, 
9496         prj-part.ads, prj-part.adb:
9497         Major update of the Project Manager and of the project aware tools,
9498         including gprmake, so that the same sources in the GNAT repository
9499         can be used by gprbuild.
9500
9501         * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
9502         insensitive flag for attributes with optional index.
9503         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
9504         array attribute, put the index in lower case.
9505         (Parse_Variable_Reference): Allow the current project name to be used in
9506         the prefix of an attribute reference.
9507
9508         * prj-util.ads, prj-util.adb
9509         (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
9510         defaulted to False. When True, always check against indexes in lower
9511         case.
9512
9513         * snames.ads, snames.h, snames.adb: 
9514         Update Project Manager to new attribute names for gprbuild
9515         Allow all valid declarations in configuration project files
9516
9517 2007-08-14  Robert Dewar  <dewar@adacore.com>
9518             Ed Schonberg  <schonberg@adacore.com>
9519
9520         * opt.ads: Warning for non-local exception propagation now off by
9521         default
9522         New switch -gnatI to disable representation clauses
9523         Implement new pragma Implicit_Packing
9524
9525         * usage.adb: 
9526         Warning for non-local exception propagation now off by default
9527         Add warning for unchecked conversion of pointers wi different
9528         conventions.
9529         New switch -gnatI to disable representation clauses
9530
9531         * usage.adb: new switch -gnatyS
9532
9533         * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
9534         note that aggregates of anonymous array types are not flagged.
9535         -gnatwc now includes membership tests optimized away
9536         -gnatw.x warnings are now off by default
9537         Added conditional compilation Appendix
9538         Add documentation of -gnatI
9539         Add documentation for new -gnatyS style check
9540         Update documentation about SAL and auto-init on Windows.
9541
9542         * gnat_rm.texi: 
9543         Add documentation for pragma Check_Name and 'Enabled attribute
9544         Document that Eliminate on dispatching operation is ignored
9545         Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
9546         Document pragma Main
9547         Document pragma Implicit_Packing
9548
9549         * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
9550         different conventions
9551         New switch -gnatI to disable representation clauses
9552
9553         * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
9554         recognized, report the invalid characters including "-gnat" instead of
9555         just the first character in the switch.
9556         New switch -gnatI to disable representation clauses
9557         Set Warn_On_Object_Renames_Function true for -gnatg
9558
9559         * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
9560         Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
9561         Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
9562         to switch -aP (add directory to project search dir).
9563
9564         * par-prag.adb: Implement new pragma Implicit_Packing
9565
9566         * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
9567         type as having a non-standard representation, to force expansion on
9568         conversion to related types.
9569         (Analyze_Pragma): Warn on misspelled pragma
9570         (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
9571         Ensure consistent use of # in error messages
9572         Implement pragma Implicit_Packing
9573
9574 2007-08-14  Olivier Hainque  <hainque@adacore.com>
9575             Eric Botcazou  <ebotcazou@adacore.com>
9576
9577         * targtyps.c (get_target_maximum_default_alignment): New function.
9578         Maximum alignment
9579         that the compiler might choose by default for a type or object.
9580         (get_target_default_allocator_alignment): New function. Alignment known
9581         to be honored by the target default allocator.
9582         (get_target_maximum_allowed_alignment): New function. Maximum alignment
9583         we might accept for any type or object on the target.
9584         (get_target_maximum_alignment): Now synonym of maximum_default_alignment
9585
9586         * gigi.h (get_target_maximum_default_alignment): Declare new function.
9587         (get_target_default_allocator_alignment): Likewise.
9588         (get_target_maximum_allowed_alignment): Likewise.
9589
9590         PR ada/19037
9591         * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
9592         result of a function call, first try to use a stabilized reference for
9593         a constant renaming too.
9594         (validate_alignment): Use target_maximum_allowed_alignment instead of
9595         MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
9596         (gnat_to_gnu_entity): Use common nodes directly.
9597         (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
9598         alignment and size for the object.
9599         (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
9600         and N_Procedure_Call_Statement.
9601         (takes_address): Rename to lvalue_required_p, add third parameter
9602         'aliased' and adjust recursive calls.
9603         <N_Indexed_Component>: Update 'aliased' from the array type.
9604         <N_Selected_Component>: New case.
9605         <N_Object_Renaming_Declaration>: New Likewise.
9606         (Identifier_to_gnu): Adjust for above changes.
9607         (maybe_stabilize_reference) <CONST_DECL>: New case.
9608
9609         * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
9610         between type variants.
9611         (build_simple_component_ref): Likewise.
9612         (build_call_alloc_dealloc): Use target_default_allocator_alignment
9613         instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
9614         aligning type circuitry for allocations from the default storage pool.
9615         (build_allocator): Likewise.
9616         (build_simple_component_ref): Manually fold the reference for a
9617         constructor if the record type contains a template.
9618
9619         * utils.c (value_zerop): Delete.
9620         (gnat_init_decl_processing): Emit debug info for common types.
9621         (rest_of_record_type_compilation): If a union contains a field
9622         with a non-constant qualifier, treat it as variable-sized.
9623         (finish_record_type): Give the stub TYPE_DECL a name.
9624         (rest_of_record_type_compilation): Likewise.
9625         (convert) <CONSTRUCTOR>: New case.  Build a new constructor if
9626         types are equivalent array types.
9627         (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
9628         even if the type is not passed by reference.
9629         (static_ctors, static_dtors): Delete.
9630         (end_subprog_body): Do not record constructors and destructors.
9631         (build_global_cdtor): Delete.
9632         (gnat_write_global_declarations): Do not call build_global_cdtor.
9633
9634         * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
9635         -fRTS=rtp is specified.
9636         If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
9637         specified.
9638
9639         * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
9640         of the personality function with SJLJ exceptions.
9641
9642         * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
9643         the name of the personality function with SJLJ exceptions.
9644
9645 2007-08-14  Robert Dewar  <dewar@adacore.com>
9646             Ed Schonberg  <schonberg@adacore.com>
9647
9648         * par.ads, par.adb: Improve handling of extra right parens.
9649         (Par): Remove flag From_Limited_With_Clause.
9650
9651         * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
9652         Improve handling of extra right parens.
9653
9654 2007-08-14  Robert Dewar  <dewar@adacore.com>
9655
9656         * par-tchk.adb (TF_Semicolon): Improve error recovery
9657
9658 2007-08-14  Robert Dewar  <dewar@adacore.com>
9659             Ed Schonberg  <schonberg@adacore.com>
9660
9661         * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
9662         enumeration type, mark all literals as referenced.
9663         (Eval_Attribute, case 'Image): If the argument is an enumeration
9664         literal and names are available, constant-fold but mark nevertheless as
9665         non-static.
9666         Clean up function names.
9667         (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
9668         comment.
9669         (Requires_Simple_Name_Prefix): Removed.
9670
9671 2007-08-14  Robert Dewar  <dewar@adacore.com>
9672             Ed Schonberg  <schonberg@adacore.com>
9673
9674         * sem_ch11.adb: Improved warnings for unused variables
9675
9676         * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
9677         is a synchronized interface, the derived type is limited.
9678         (Analyze_Object_Declaration): Mark the potential coextensions in the
9679         definition and expression of an object declaration node.
9680         (Build_Derived_Type): For the completion of a private type declaration
9681         with a derived type declaration, chain the parent type's representation
9682         items to the last representation item of the derived type (not the
9683         first one) if they are not present already.
9684         (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
9685         object declaration of forward references to tags.
9686         (Access_Subprogram_Declaration): In Ada2005, anonymous access to
9687         subprogram types can appear as access discriminants of synchronized
9688         types.
9689         (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
9690         given in prefixed form as a selected component.
9691         (Process_Discriminants): If not all discriminants have defaults, place
9692         error message on a default that is present.
9693         (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
9694         extend a synchronized tagged type.
9695         Improved warnings for unused variables
9696         (Is_Visible_Component): Fix a visibility hole on a component inherited
9697         by a private extension when parent is itself declared as a private
9698         extension, and the derivation is in a child unit.
9699         (Find_Hidden_Interface): Move spec from the package body.
9700
9701 2007-08-14  Robert Dewar  <dewar@adacore.com>
9702             Ed Schonberg  <schonberg@adacore.com>
9703
9704         * sem_ch5.adb: Improve warnings on redundant assignments
9705
9706         * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
9707         parameter
9708         (Is_Synchronized_Tagged_Type): New subprogram that returns true
9709         in case of synchronized tagged types (AARM 3.9.4 (6/2)).
9710         (Safe_To_Capture_Value): Can now return True for constants, even if Cond
9711         is set to False. Improves handling of Known_[Not_]Null.
9712         (Wrong_Type): Special case address arithmetic attempt
9713         (Collect_Abstract_Interfaces): Add new formal to allow collecting
9714         abstract interfaces just using the partial view of private types.
9715         (Has_Abstract_Interfaces): Add new formal to allow checking types
9716         covering interfaces using the partial view of private types.
9717         (Is_Fully_Initialized_Type): Special VM case for uTag component. This
9718         component still needs to be defined in this case, but is never
9719         initialized as VMs are using other dispatching mechanisms.
9720         (Abstract_Interface_List): For a protected type, use base type to get
9721         proper declaration.
9722         Improve warnings on redundant assignments
9723         (Is_Variable): Handle properly an implicit dereference of a prefixed
9724         function call.
9725         (Build_Actual_Subtype): If this is an actual subtype for an
9726         unconstrained formal parameter, use the sloc of the body for the new
9727         declaration, to prevent anomalises in the debugger.
9728
9729 2007-08-14  Robert Dewar  <dewar@adacore.com>
9730
9731         * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
9732         dispatching operation
9733
9734 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
9735             Gary Dismukes  <dismukes@adacore.com>
9736
9737         * exp_aggr.ads, 
9738         exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
9739         expanded aggregate code before allocator, and ahead of declaration for
9740         temporary, to prevent access before elaboration when the allocator is
9741         an actual for an access parameter.
9742         (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
9743         the TSD and the table of interfaces.
9744         (Convert_To_Assignments): Augment the test for delaying aggregate
9745         expansion for limited return statements to include the case of extended
9746         returns, to prevent creation of an unwanted transient scope.
9747         (Is_Static_Dispatch_Table_Aggregate): New subprogram.
9748         (Expand_Array_Aggregate): Handle aggregates associated with
9749         statically allocated dispatch tables.
9750         (Expand_Record_Aggregate): Handle aggregates associated with
9751         statically allocated dispatch tables.
9752         (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
9753         of anonymous access type.
9754
9755 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
9756
9757         * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
9758         is a variable that renames a slice, use the variable itself in the
9759         expannsion when the renamed expression itself may be modified between
9760         the declaration of the renaming and the array assignment.
9761
9762 2007-08-14  Jerome Guitton  <guitton@adacore.com>
9763
9764         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, 
9765         s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, 
9766         s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
9767         New functions; dummy implementations.
9768
9769         * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
9770         functions, used to implement the multi-tasks mode routines on VxWorks.
9771
9772         * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
9773         New functions, thin
9774         binding to the VxWorks routines which have changed between VxWorks 5
9775         and 6.
9776         (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
9777         which are not callable from a RTP.
9778
9779         * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
9780         implemented for the multi-tasks mode on VxWorks 5 and 6.
9781
9782         * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
9783
9784         * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
9785         functions.
9786
9787 2007-08-14  Vincent Celier  <celier@adacore.com>
9788
9789         * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb, 
9790         gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
9791         mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb, 
9792         mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb, 
9793         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, 
9794         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
9795         mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
9796         procedure.
9797         (Major_Id_Name): New function.
9798         mlib-tgt.ads/mlib.tgt.adb:
9799         (Library_Major_Minor_Id_Supported): New function, default returns True
9800         Most mlib-tgt-*.adb that support shared libraries and symbolic links:
9801         (Build_Dynamic_Library): Add support for major/minor ids for shared libs
9802         Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
9803         Implementation of Library_Major_Minor_Id_Supported returns False
9804         clean.adb:
9805         (Clean_Library_Directory): If major/minor ids are supported, clean all
9806         library files.
9807         Major update of the Project Manager and of the project aware tools,
9808         including gprmake, so that the same sources in the GNAT repository
9809         can be used by gprbuild.
9810
9811 2007-08-14  Olivier Hainque  <hainque@adacore.com>
9812
9813         * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
9814         (GCC_ZCX_Support): Switch to True.
9815         
9816         * s-intman-solaris.adb (Notify_Exception): Call
9817         Adjust_Context_For_Raise before raising, as expected for signal
9818         handlers in general.
9819         
9820         * s-intman-posix.adb (Notify_Exception): Remove declaration of
9821         Adjust_Context_For_Raise, moved to the spec of this unit to be visible
9822         to other implementation bodies.
9823         
9824         * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
9825         be visible by multiple implementation bodies.
9826         
9827         * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
9828         only for conditions coming from hardware.
9829         [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
9830         adjustments to signal context prior to exception raise from signal
9831         handler.
9832         (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
9833         mode.
9834         Solaris section: (__gnat_adjust_context_for_raise): New function.
9835         Implementation of the machine context adjustments to perform prior to
9836         raise from a signal handler. Version for both sparc and x86.
9837         (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
9838         (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
9839         prior to raising as expected for any handler, before possible nested
9840         faults to make sure all the contexts in a chain have been adjusted by
9841         the time we propagate.
9842
9843 2007-08-14  Pascal Obry  <obry@adacore.com>
9844
9845         * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
9846         (SYSTEM_INFO): New record.
9847         (SetThreadIdealProcessor): New imported routine needed for supporting
9848         task_info pragma on Windows.
9849
9850         * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
9851         info can be applied to the current host.
9852         (Create_Task): Set the ideal processor if information is present.
9853
9854         * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
9855         a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
9856
9857 2007-08-14  Olivier Hainque  <hainque@adacore.com>
9858
9859         * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
9860         stack size and initial stack pointer value for a given task.
9861         (Enter_Task): Get the stack attributes of the task we are entering and
9862         let the stack checking engine know about them.
9863
9864         * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
9865         Let the stack-checking engine know about the initial sp value and stack
9866         size associated with the current task.
9867         (Set_Stack_Info): If a stack base has been notified for the current
9868         task, honor it. Fallback to the previous less accurate method otherwise.
9869
9870         * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
9871
9872 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
9873
9874         * sem_ch10.adb: Create a limited view of an incomplete type, to make
9875         treatment of limited views uniform for all visible declarations in a
9876         limited_withed package.
9877         Set flag indicating that a subprogram body for a child unit has a
9878         generated spec.
9879         (Analyze_Compilation_Unit): If unit is a subprogram body that has no
9880         separate declaration, remove the unit name from visibility after
9881         compilation, so that environment is clean for subsequent compilations.
9882         (Install_Limited_Context_Clauses): Do not install a
9883         limited_private_with_clause unless the current unit is a body or a
9884         private child unit.
9885         (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
9886         in the same fashion.
9887         (Install_Limited_Withed_Unit): Do not install a limited with clause if
9888         it applies to the declaration of the current package body.
9889         (Remove_Private_With_Clauses): If there is a regular with_clause for
9890         the unit, delete Private_With_Clause from context, to prevent improper
9891         hiding when processing subsequent nested packages and instantiations.
9892
9893 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
9894
9895         * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
9896         dir/file, device:/dir/file, and device:drive_letter:/dir/file as
9897         representing absolute path names.
9898         __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
9899
9900         * cstreams.c (__gnat_full_name for VxWorks): Use
9901         __gnat_is_absolute_path to detect whether we need to add the current
9902         directory to normalize the path.
9903
9904 2007-08-14  Javier Miranda  <miranda@adacore.com>
9905
9906         * a-tags.ads, 
9907         a-tags.adb (Displace): Associate a message with the raised CE
9908         exception.
9909         (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
9910         To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
9911         To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
9912         spec.
9913         (Default_Prim_Op_Count): Removed.
9914         (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
9915         Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
9916         Remove pragma Inline_Always.
9917
9918         * rtsfind.ads (Default_Prim_Op_Count): Removed
9919         (Max_Predef_Prims): New entity
9920         (RE_Expanded_Name): Removed
9921         (RE_HT_Link): Removed
9922         (RE_Iface_Tag): Remmoved
9923         (RE_Ifaces_Table): Removed
9924         (RE_Interfaces_Array): Removed
9925         (RE_Interface_Data_Element): Removed
9926         (RE_Nb_Ifaces): Removed
9927         (RE_RC_Offset): Removed
9928         (RE_Static_Offset_To_Top): Removed
9929
9930         * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
9931         formal.
9932         (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
9933         Prim_Op_Count by Max_Predef_Prims.
9934
9935 2007-08-14  Thomas Quinot  <quinot@adacore.com>
9936             Vincent Celier  <celier@adacore.com>
9937
9938         * binde.adb (Elab_All_Links): Remove unnecessary call to
9939         Generic_Separately_Compiled (if a unit satisfies this predicate, there
9940         won't be an associated Afile).
9941         (Elab_All_Links): Fail if a referenced unit cannot be found
9942
9943         * bindgen.adb: 
9944         Fix comments in bindgen regarding consistency checks done in Bcheck:
9945         the checks are made across units within a partition, not across several
9946         partitions.
9947         Fix generation of C binder file for VxWorks.
9948
9949         * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
9950         Generic_May_Lack_ALI, more descriptive of the current use of the
9951         predicate, and update documentation.
9952
9953         * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
9954         reorganization and documentation update for the case of predefined
9955         library generics (for which we do not reference an Afile).
9956
9957 2007-08-14  Robert Dewar  <dewar@adacore.com>
9958
9959         * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
9960         s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
9961         s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
9962         s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
9963         s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
9964         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
9965         s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
9966         s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
9967         exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
9968         s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
9969         s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
9970         a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
9971         s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
9972         g-altcon.adb: Minor reformatting
9973
9974         ada-tree.h: Delete empty line.
9975
9976         ali.ads: Minor reformatting
9977         Clarification of comments.
9978         Minor spelling correction
9979
9980         * exp_dbug.adb: Add Warnings Off to suppress new warning
9981
9982         * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
9983         formal
9984
9985         * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
9986         value
9987
9988         * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
9989
9990         * a-textio.ads: Reorder the standard input/output/error declarations
9991         for consistency.
9992
9993         * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
9994
9995         * par-ch2.adb: Recognize RM specially in errout
9996         Change 'R'M to RM in all error messages
9997
9998         * scng.adb: Recognize RM specially in errout
9999
10000         * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
10001         N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
10002
10003         * s-direio.adb: Add missing routine header box.
10004
10005         * sem_attr.ads: Add ??? comments
10006
10007         * sem_eval.adb: Recognize RM specially in errout
10008         Change 'R'M to RM in all error messages
10009
10010         * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
10011
10012         * s-tasinf.ads: Fix minor comment typo.
10013
10014         * a-cihama.adb: Minor comment addition
10015
10016         * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
10017         formal
10018
10019         * s-tasinf-tru64.ads: Fix minor comment typo.
10020
10021         * itypes.ads: Comment update.
10022
10023         * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
10024         anymore.
10025
10026         * argv.c: Added protection against null gnat_argv and gnat_envp.
10027
10028         * bcheck.adb (Check_Consistency): Use correct markup character ({) in
10029         warning message when Tolerate_Consistency_Errors is True.
10030
10031         * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
10032         Any_Id, as this subprogram is only applicable to *type* entities (it
10033         sets RM_Size). Instead initialize just Esize and Alignment.
10034
10035 2007-08-14  Bob Duff  <duff@adacore.com>
10036
10037         * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, 
10038         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
10039         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads, 
10040         a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
10041         a-coorse.ads (Next): Applied pragma Inline.
10042         Make all Containers packages Remote_Types (unless they are already
10043         Pure).
10044         (Previous): applied pragma Inline
10045         (Elements_Type): is now a record instead of an array
10046
10047 2007-08-14  Thomas Quinot  <quinot@adacore.com>
10048
10049         * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
10050         of Set_Item.
10051         (Set_Item): When the new item is an element of the currently allocated
10052         table passed by reference, save a copy on the stack if we're going
10053         to reallocate. Also, in Table.Set_Item, make sure we test the proper
10054         variable to determine whether to call Set_Last.
10055
10056         * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
10057         symbols-vms.adb, symbols-processing-vms-alpha.adb,
10058         symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
10059         some occurrences of the pattern
10060            T.Increment_Last;
10061            T.Table (T.Last) := Value;
10062         with a cleaner call to
10063            T.Append (Value);
10064
10065 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
10066             Gary Dismukes  <dismukes@adacore.com>
10067             Thomas Quinot  <quinot@adacore.com>
10068
10069         * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
10070         derived type with interface progenitors use the analyzed formal as the
10071         parent of the actual, to create renamings for all the inherited
10072         operations in Derive_Subprograms.
10073         (Collect_Previous_Instances): new procedure within of
10074         Load_Parent_Of_Generic, to instantiate all bodies in the compilation
10075         unit being loaded, to ensure that the generation of global symbols is
10076         consistent in different compilation modes.
10077         (Is_Tagged_Ancestor): New function testing the ancestor relation that
10078         takes progenitor types into account.
10079         (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
10080         traversing over the primitives of the formal and actual types to locate
10081         any abstract subprograms of the actual type that correspond to a
10082         nonabstract subprogram of the formal type's ancestor type(s), and issue
10083         an error if such is found.
10084         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
10085         Instantiate_Package_Body, Instantiate_Subprogram_Body):
10086         Remove bogus guard around calls to Inherit_Context.
10087         (Reset_Entity): If the entity is the selector of a selected component
10088         that denotes a named number, propagate constant-folding to the generic
10089         template only if the named number is global to the generic unit.
10090         (Set_Instance_Env): Only reset the compilation switches when compiling
10091         a predefined or internal unit.
10092
10093 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
10094
10095         * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
10096         parameter to determine whether operation applies to the prefix.
10097         (Complete_Object_Operation): If actual has an access type and
10098         controlling formal is not an in_parameter, reject the actual if it is
10099         an access_to_constant type.
10100         (Try_Primitive_Operation): If the type of the prefix is a formal tagged
10101         type, the candidate operations are found in the scope of declaration of
10102         the type, because the type has no primitive subprograms.
10103         (Analyze_Selected_Component): If prefix is class-wide, and root type is
10104         a private extension, only examine visible components before trying to
10105         analyze as a prefixed call.
10106         Change Entity_List to Type_To_Use, for better readability.
10107         (Has_Fixed_Op): Use base type when checking whether the type of an
10108         operator has a user-defined multiplication/division
10109         (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
10110         user-defined operators are available for fixed-point types.
10111
10112 2007-08-14  Thomas Quinot  <quinot@adacore.com>
10113             Ed Schonberg  <schonberg@adacore.com>
10114
10115         * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
10116         formal At_Any_Place indicating, when True, that we want to test for
10117         availability of the stream attribute at any place (as opposed to the
10118         current visibility context only).
10119         (Missing_Read_Write_Attributes): A stream attribute is missing for the
10120         purpose of enforcing E.2.2(8) only if it is not available at any place.
10121         Take into account the Ada2005 pragma Has_Preelaborable_Initialization
10122         when checking the legality of an extension aggregate in a preelaborable
10123         package. Treat the literal null as a valid default expression in a
10124         component declaration for a type with preelaborable initialization.
10125         A limited interface is a legal progenitor for the designated type of a
10126         remote access to class-wide type.
10127
10128 2007-08-14  Thomas Quinot  <quinot@adacore.com>
10129             Ed Schonberg  <schonberg@adacore.com>
10130
10131         * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
10132         reference): Use correct entity as denoted entity for the selector of
10133         the rewritten node.
10134         (Find_Direct_Name): Add comment about Generate_Reference incorrectly
10135         setting the Referenced_As_LHS flag for entities that are implicitly
10136         dereferenced.
10137         (Find_Type): If the type is an internally generated incomplete type,
10138         mark the full view as referenced, to prevent spurious warnings.
10139         (Find_Selected_Component, Has_Components): Handle properly non-limited
10140         views that are themselves incomplete types.
10141         Handle interfaces visible through limited-with clauses.
10142         (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
10143         subprogram generic actual for which we have generated a renaming.
10144         Warn when the renaming introduces a homonym of
10145         the renamed entity, and the renamed entity is directly visible.
10146
10147 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
10148             Hristian Kirtchev  <kirtchev@adacore.com>
10149
10150         * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
10151         appear in the subtree to the current allocator if it is not a static
10152         coextension.
10153         (Resolve_Allocator): Perform cleanup if resolution has determined that
10154         the allocator is not a coextension.
10155         (Resolve): Skip an interpretation hidden by an abstract operator only
10156         when the type of the interpretation matches that of the context.
10157         (Resolve): When looping through all possible interpretations of a node,
10158         do not consider those that are hidden by abstract operators.
10159         (Resolve_Actuals): When verifying that an access to class-wide object
10160         is an actual  for a controlling formal, ignore anonymous access to
10161         subprograms whose return type is an access to class_wide type.
10162         (Resolve_Slice): If the prefix of the slice is a selected component
10163         whose type depends on discriminants, build its actual subtype before
10164         applying range checks on the bounds of the slice.
10165         (Valid_Conversion): In an instance or inlined body, compare root types,
10166         to prevent anomalies between private and public views.
10167         (Resolve): Improve error message for ambiguous fixed multiplication
10168         expressions that involve universal_fixed multiplying operations.
10169
10170 2007-08-14  Javier Miranda  <miranda@adacore.com>
10171             Hristian Kirtchev  <kirtchev@adacore.com>
10172
10173         * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
10174         location to allow the correct generation of errors in case of
10175         restrictions applied to the expanded code.
10176         (Expand_Entry_Barrier): Remove all generated renamings for a barrier
10177         function if the condition does not reference them.
10178         (Expand_Entry_Body_Declarations): Mark the index constant as having a
10179         valid value.
10180
10181 2007-08-14  Thomas Quinot  <quinot@adacore.com>
10182             Pablo Oliveira  <oliveira@adacore.com>
10183
10184         * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
10185         typecode parameters for a union (in a variant record), remove
10186         extraneous layer of Any wrapping for member label.
10187         (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
10188         elabration statements, register the package with the name server
10189         at the beginning, not at the end, of the elaboration statements so
10190         that they can create remote access to subprogram values that designate
10191         remote subprograms from the package.
10192
10193 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
10194
10195         * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
10196         values to compute the number of seconds since the Unix Epoc in order to
10197         account for Daylight Savings Time. Perform special processing for dates
10198         that are earlier than the Unix Epoc to obtain a negative number.
10199
10200 2007-08-14  Emmanuel Briot  <briot@adacore.com>
10201
10202         * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
10203         switches.
10204
10205 2007-08-14  Eric Botcazou  <ebotcazou@adacore.com>
10206
10207         * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
10208         binder-generated file is not in Ada.
10209         Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
10210         recorded in the ALI file.
10211         Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
10212
10213 2007-08-14  Vincent Celier  <celier@adacore.com>
10214
10215         * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
10216         (Output_Source): Do nothing if parameter is No_Sdep_Id
10217
10218         * make.adb (Gnatmake): Do not rebuild an archive simply because a
10219         shared library it imports has a later time stamp.
10220         (Check): Resolve the symbolic links in the path name of the object
10221         directory.
10222         Check that the ALI file is in the correct object directory
10223         Check if a file name does not correspond to the mapping of units
10224         to file names.
10225         (Display_Version): New procedure
10226         (Initialize): Process switches --version and --help
10227         Use type Path_Name_Type for path name
10228
10229 2007-08-14  Paul Hilfinger  <hilfinger@adacore.com>
10230
10231         * impunit.adb: Re-organize System.Random_Numbers and
10232         GNAT.Random_Numbers and add to builds.
10233
10234         * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
10235
10236         * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
10237
10238         * a-assert.ads, a-assert.adb: New files.
10239
10240 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
10241
10242         * layout.adb (Layout_Type): In the case of access-to-subprogram types,
10243         if AAMP_On_Target is True, then the size of the type encompasses two
10244         addresses (a static link and a subprogram address), except in the case
10245         of library-level access types.
10246
10247 2007-08-14  Vincent Celier  <celier@adacore.com>
10248
10249         * output.ads, output.adb (Write_Eol): Remove trailing spaces before
10250         writing the line.
10251         (Write_Eol_Keep_Blanks): New procedure to write a line, including
10252         possible trailing spaces.
10253         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
10254
10255 2007-08-14  Javier Miranda  <miranda@adacore.com>
10256
10257         * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
10258         null-excluding access types.
10259
10260 2007-08-14  Javier Miranda  <miranda@adacore.com>
10261
10262         * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
10263         that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
10264         of private types add missing check on matching interfaces in the
10265         partial and full declarations.
10266         (Analyze_Protected_Type): Code cleanup.
10267         (Analyze_Task_Type): Code cleanup.
10268
10269 2007-08-14  Javier Miranda  <miranda@adacore.com>
10270
10271         * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
10272         generated interface thunk.
10273
10274 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
10275
10276         * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
10277         obsolescent warning on application of 'Class to an incomplete type.
10278
10279         * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
10280         prevent obsolescent warning on application of 'Class to an incomplete
10281         type.
10282
10283 2007-08-14  Pascal Obry  <obry@adacore.com>
10284
10285         * s-fileio.adb (Is_Open): Add check for usability of the underlying
10286         file stream.
10287
10288 2007-08-14  Cyrille Comar  <comar@adacore.com>
10289
10290         * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
10291         since it is potentially used in cases implying double finalization of
10292         the same object.
10293
10294 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
10295
10296         * s-tasini.adb (Get_Stack_Info): Move this function to
10297         System.Soft_Links.Tasking because it is common to the full and the
10298         restricted run times.
10299         (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
10300         in SSL.Tasking.Init_Tasking_Soft_Links.
10301
10302         * s-solita.adb (Get_Stack_Info): Function moved from
10303         System.Tasking.Initialization because it is common to the full and the
10304         restricted run times.
10305         (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
10306
10307 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
10308
10309         * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
10310         s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
10311         (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
10312         parameter.
10313
10314         * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
10315         guard to 12K.
10316
10317 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
10318
10319         * s-veboop.adb (SU): New named number initialized to
10320         System.Storage_Unit.
10321         (True_Val): The initialization expression is revised to use SU (=
10322         Storage_Unit) rather than assuming 8 for the component size of an
10323         unpacked Boolean array.
10324
10325 2007-08-14  Tristan Gingold  <gingold@adacore.com>
10326
10327         * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
10328
10329         * tb-ivms.c: New file.
10330
10331         * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
10332
10333 2007-08-14  Geert Bosch  <bosch@adacore.com>
10334
10335         * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
10336         s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
10337         Add required linker pragmas for automatically linking with the gnalasup
10338         linear algebra support library, and the systems math library.
10339         Rename cdot to cdotu and zdot to zdotu.
10340         Update header comment to describe purpose of package.
10341
10342 2007-08-14  Thomas Quinot  <quinot@adacore.com>
10343
10344         * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
10345         an explicitly specified Associated_Final_Chain, use that list.
10346         (Expand_N_Package_Body): Build dispatch tables of library level tagged
10347         types.
10348         (Expand_N_Package_Declaration): Build dispatch tables of library level
10349         tagged types. Minor code cleanup.
10350
10351 2007-08-14  Vincent Celier  <celier@adacore.com>
10352
10353         * gnatchop.adb (Terminate_Program): Remove exception and use
10354         Types.Terminate_Program instead.
10355
10356         * osint.ads, osint.adb (Current_Exit_Status): New global variable
10357         (Find_Program_Name): Added protection against empty name.
10358         (OS_Exit_Through_Exception): New procedure
10359
10360         * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
10361         (OS_Exit_Default): New procedure that contains the previous
10362         implementation of procedure OS_Exit.
10363         (Final_Value): Remove obsolete Interix stuff.
10364
10365 2007-08-14  Thomas Quinot  <quinot@adacore.com>
10366
10367         * g-socket.ads: Reorganize example code so that it also works on
10368         Windows XP.
10369
10370 2007-08-14  Tristan Gingold  <gingold@adacore.com>
10371
10372         * g-trasym.ads: AIX now supports symbolic backtraces.
10373
10374 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
10375
10376         * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
10377         units being loaded to detect circularities. A circularity may be
10378         present even if the current chain of pending units to load starts from
10379         a limited_with_clause.
10380
10381         * lib-load.ads: Change profile of Load_Unit to use a with_clause
10382         rather than a boolean flag, in order to detect circularities in
10383         with_clauses.
10384
10385         * par-load.adb: Use current with_clause in calls to Load_Unit, rather
10386         than propagating the From_Limited_With flag, in order to handle
10387         properly circularities involving with_clauses.
10388
10389 2007-08-14  Nicolas Setton  <setton@adacore.com>
10390
10391         * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
10392         warnings.
10393
10394 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
10395
10396         * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
10397         to build for libgnala.
10398         libgnat: Add rules to build libgnala.a
10399         (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
10400         target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
10401         Add s-osinte-vxworks-kernel.adb to the target pairs of the
10402         kernel run-time lib for VxWorks 6, which would provide a different
10403         implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
10404         x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
10405         running ZCX by default.
10406         Add g-sttsne-locking to LynxOS version.
10407         Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
10408         On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
10409
10410         * system-darwin-x86.ads: New file.
10411
10412         * Make-lang.in: Delete files before copying onto them, so if they are
10413         read-only, the copy won't fail.
10414         Update dependencies
10415
10416 2007-08-14  Pascal Obry  <obry@adacore.com>
10417
10418         * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
10419         naming scheme.
10420
10421 2007-08-14  Vincent Celier  <celier@adacore.com>
10422
10423         * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
10424         (Gcc): Initialize Gcc_Name at the first call
10425
10426 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
10427
10428         * sem_ch7.adb (Analyze_Package_Specification): Do not install private
10429         with_clauses of the enclosing unit when analyzing the package
10430         specification of a nested instance.
10431
10432 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
10433
10434         * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
10435         (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
10436         Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
10437         layout of N_Allocator.
10438
10439 2007-08-14  Thomas Quinot  <quinot@adacore.com>
10440
10441         * rtsfind.adb (Check_RPC): Add PCS version check.
10442
10443         * gnatvsn.ads, gnatvsn.adb: Add PCS version.
10444         (Gnat_Free_Software): New function.
10445
10446         * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
10447         the PCS_Version value from s-parint, used to check that it is consistent
10448         with what exp_dist expects.
10449
10450         * s-parint.ads (PCS_Version): New entity for checking consistency
10451         between exp_dist and PCS.
10452
10453         * gen-soccon.c: (SO_REUSEPORT): New constant.
10454
10455 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
10456
10457         * a-calfor.adb (Image (Duration; Boolean)): Change type of local
10458         variable Sub_Second to Duration in order to accomodate a larger range
10459         of arithmetic operations.
10460
10461 2007-08-14  Bob Duff  <duff@adacore.com>
10462
10463         * g-sttsne-locking.ads: Move comments from spec to body.
10464         * g-sttsne-locking.adb: Move comments from spec to body.
10465         * g-sttsne-vxworks.ads: Removed.
10466         * g-sttsne-vxworks.adb: Removed.
10467
10468 2007-08-11  Ian Lance Taylor  <iant@google.com>
10469
10470         * misc.c (gnat_get_alias_set): Change return type to
10471         alias_set_type.
10472
10473 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10474
10475         * decl.c, utils2.c: Fix whitespace in last change.
10476
10477 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10478
10479         * decl.c (compare_field_bitpos): Constify.
10480         * utils2.c (compare_elmt_bitpos): Likewise.
10481
10482 2007-07-27  Aurelien Jarno  <aurelien@aurel32.net>
10483
10484         * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by 
10485         anonymous access type.
10486         (pthread_sigmask): Now take an access sigset_t.
10487
10488 2007-07-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
10489
10490         * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
10491         
10492 2007-06-21  Eric Botcazou  <ebotcazou@adacore.com>
10493
10494         PR tree-optimization/25737
10495         * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
10496
10497 2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10498
10499         * trans.c (Attribute_to_gnu): When subtracting an
10500         offset from a pointer, use POINTER_PLUS_EXPR with
10501         NEGATE_EXPR instead of MINUS_EXPR.
10502         (gnat_to_gnu): Likewise.
10503         * utils.c (convert): When converting between
10504         thin pointers, use POINTER_PLUS_EXPR and sizetype
10505         for the offset.
10506         * utils2.c (known_alignment): POINTER_PLUS_EXPR
10507         have the same semantics as PLUS_EXPR for alignment.
10508         (build_binary_op): Add support for the semantics of
10509         POINTER_PLUS_EXPR's operands.
10510         When adding an offset to a pointer, use POINTER_PLUS_EXPR.
10511
10512 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
10513
10514         * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
10515         of get_signed_or_unsigned_type.
10516         * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
10517
10518 2007-06-11  Bob Duff  <duff@adacore.com>
10519             Thomas Quinot  <quinot@adacore.com>
10520
10521         * g-stsifd-sockets.adb (Create): Work around strange behavior of
10522         'bind' on windows that causes 'connect' to fail intermittently, by
10523         retrying the 'bind'.
10524         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
10525
10526 2007-06-10  Duncan Sands  <baldrick@free.fr>
10527
10528         * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
10529         than to void, for the fields when making a new fat pointer type.
10530         (gnat_substitute_in_type): Now substitute_in_type.
10531         * gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
10532         * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
10533         * utils.c (update_pointer_to): Update fat pointers by updating the
10534         dummy node pointers used for the fields.
10535
10536 2007-06-06  Thomas Quinot  <quinot@adacore.com>
10537             Bob Duff  <duff@adacore.com>
10538
10539         * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
10540         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads, 
10541         g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
10542         constant Thread_Blocking_IO, always True by default, set False
10543         on a per-runtime basis.
10544         (Need_Netdb_Buffer): New constant.
10545
10546         * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
10547         g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
10548         files.
10549
10550         * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
10551         g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
10552         Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
10553         child package Task_Safe_NetDB
10554         (Host_Error_Messages): Add stub body.
10555         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
10556
10557         * g-soccon-mingw.ads: Add Windows-specific constants.
10558         (Need_Netdb_Buffer): New constant.
10559         (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
10560         wrapper and import inet_addr(3) from the standard sockets library
10561         directly instead.
10562         (In_Addr): Add alignment clause.
10563         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
10564
10565 2007-06-06  Robert Dewar  <dewar@adacore.com>
10566
10567         * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
10568         s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
10569         s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
10570         s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
10571         s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
10572         s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
10573         a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
10574         a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
10575         a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
10576         g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
10577         g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
10578         i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
10579         s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
10580         s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
10581         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
10582         s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
10583         s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
10584         s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
10585         s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
10586         s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
10587         s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
10588         s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
10589         s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
10590         s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
10591         s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
10592         s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
10593         s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
10594         s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
10595         s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
10596         s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
10597         s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
10598         a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
10599         Unchecked_* by Ada.Unchecked_*
10600
10601 2007-06-06  Robert Dewar  <dewar@adacore.com>
10602
10603         * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
10604         s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
10605         g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
10606         output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
10607         g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
10608         a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
10609
10610         * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
10611         s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
10612         s-tasloc.adb, s-tasloc.ads: New files.
10613
10614 2007-06-06  Bob Duff  <duff@adacore.com>
10615
10616         * g-expect-vms.adb: 
10617         (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
10618         * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
10619         (Send_Signal, Close): Raise Invalid_Process if the process id is
10620         invalid.
10621         (Pattern_Matcher_Access): Is now a general access type to be able to
10622         use aliased string.
10623
10624 2007-06-06  Thomas Quinot  <quinot@adacore.com>
10625             Arnaud Charlet  <charlet@adacore.com>
10626
10627         * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
10628         (SIGEMT is now used instead of SIGTERM on AIX).
10629
10630         * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
10631         (Time_Slice_Supported): Set to True.
10632         Use SIGEMT instead of SIGTERM as SIGADAABORT.
10633
10634 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
10635
10636         * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
10637         (Time, Time)): Use To_Relative_Time rather than manual calculation to
10638         express the bounds of Duration as Time. Raise Time_Error when the
10639         result is greater or equal to the higher bound of Duration (on the
10640         margin case).
10641         ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
10642         Ada_High_And_Leaps.
10643         ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
10644         Ada_High_And_Leaps.
10645         ("-" (Time, Time)): Reorder code.
10646         (All_Leap_Seconds): Removed.
10647         (Arithmetic_Operations.Add): Remove sign related kludge.
10648         (Arithmetic_Operations.Difference): Control the leaps seconds processing
10649         with flag Leap_Support.
10650         (Arithmetic_Operations.Subtract): Remove sign related kludge.
10651         (Check_Within_Time_Bounds): New procedure.
10652         (Clock): Control the leap seconds processing with flag Leap_Support.
10653         (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
10654         (Formatting_Operations.Split): Control the leap seconds processing with
10655         flag Leap_Support.
10656         (Formatting_Operations.Time_Of): Control the leaps seconds processing
10657         with flag Leap_Support. Adjust the year, month and day (if applicable)
10658         when the value of day seconds designates a new day.
10659         (Split): Use parameter associations for better readability. Integrate
10660         flag Is_Ada_05.
10661         (Time_Of): Use parameter associations for better readability. Integrate
10662         flag Is_Ada_05.
10663
10664         * a-calfor.adb (Split): Use parameter associations for better
10665         readability. Integrate flag Is_Ada_05.
10666         (Time_Of): Remove flag Leap_Checks. Use parameter associations for
10667         better readability. Integrate flag Is_Ada_05.
10668
10669 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
10670
10671         * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb, 
10672         s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb, 
10673         s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb, 
10674         s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads, 
10675         s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb, 
10676         s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb, 
10677         s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads, 
10678         s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads, 
10679         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads, 
10680         s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
10681         s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
10682         time when entering this routine to detect a backward clock setting
10683         (manual setting or DST adjustment), to avoid waiting for a longer delay
10684         than needed.
10685         (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
10686         Remove handling of deferred priority change, and replace by setting the
10687         task priority directly, as required by AI-188.
10688         Update comments.
10689         (Max_Task_Image_Length): New constant.
10690         Replace Warnings (Off) by Unreferenced pragma, cleaner.
10691         (Dynamic_Priority_Support): Removed, no longer needed.
10692         (Poll_Base_Priority_Change): Ditto.
10693         (Set_Ceiling): Add this procedure to change the ceiling priority
10694         associated to a lock. This is a dummy implementation because dynamic
10695         priority ceilings are not supported by the underlying system.
10696
10697         * a-dynpri.adb (Set_Priority): Take into account case where Target is
10698         accepting a RV with its priority boosted.
10699         Remove handling of deferred priority change, and replace by setting the
10700         task priority directly, as required by AI-188.
10701
10702         * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
10703         Succeeded = True.
10704         Remove handling of deferred priority change, and replace by setting the
10705         task priority directly, as required by AI-188.
10706         (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
10707         of Self_Id earlier.
10708
10709         * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
10710         (Poll_Base_Priority_Change): Removed.
10711         Code clean up: use SSL.Current_Target_Exception.
10712
10713         * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
10714         to run as this is a potentially dispatching point.
10715         (Call_Synchronous): Use Local_Defer_Abort.
10716         (Callable): Relax assertion.
10717         (Selective_Wait): Relax assertion in case abort is not allowed.
10718         Remove handling of deferred priority change, and replace by setting the
10719         task priority directly, as required by AI-188.
10720
10721         * s-tasuti.adb (Make_Passive): Adjust assertions.
10722         Remove handling of deferred priority change, and replace by setting the
10723         task priority directly, as required by AI-188.
10724
10725 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
10726
10727         * system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
10728         system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
10729         system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads, 
10730         system-vxworks-mips.ads, system-vxworks-alpha.ads, 
10731         system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads, 
10732         system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads, 
10733         system-interix.ads, system-linux-hppa.ads, system-tru64.ads, 
10734         system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads, 
10735         system-solaris-sparcv9.ads, system-vms.ads, system.ads,
10736         system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
10737         system-linux-ia64.ads: Document mapping between Ada and OS priorities.
10738         This patch changes the largest non-binary modulus from 2**31-1 to
10739         2**32-1.
10740         (Compiler_System_Version): Removed, no longer used.
10741         Clean up system files by removing flags only used on a single target.
10742         Also remove obsolete flags, only used during bootstrap from system.ads
10743         (Address): Add a pragma Preelaborable_Initialization.
10744
10745         * system-aix.ads:  Ditto.
10746         (GCC_ZCX_Support): Set to true.
10747         Update priority range on AIX and map Ada priorities to target
10748         priorities appropriately for different scheduling policies.
10749
10750         * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
10751
10752 2007-06-06  Vincent Celier  <celier@adacore.com>
10753
10754         * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
10755         mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
10756
10757         * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb, 
10758         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb, 
10759         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, 
10760         mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, 
10761         mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
10762         MLib.Tgt, containing the default versions of the exported subprograms.
10763         For each platform, create a specific version of the body of new child
10764         package MLib.Tgt.Specific that contains only the body of subprograms
10765         that are different from the default.
10766         (Archive_Builder_Append_Options): New function.
10767
10768 2007-06-06  Matthew Gingell  <gingell@adacore.com>
10769
10770         * s-osinte-aix.adb: Map Ada priorities to target priorities
10771         appropriately for different scheduling policies.
10772
10773 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
10774
10775         * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
10776         its C counterpart.
10777         Remove references to Unchecked_Conversion, and use Ada.xxx instead.
10778         Replace Unchecked_Conversion by Ada.Unchecked_Conversion. 
10779
10780 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
10781
10782         * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
10783         Noop on VMS, added for interface commonality.
10784
10785 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
10786             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10787             Olivier Hainque  <hainque@adacore.com>
10788
10789         * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
10790         renamed expression of a full renaming at toplevel.
10791         (gnat_to_gnu_entity, case object): If not defining, do not look inside
10792         the values the constant is initialized to if it is an N_Allocator.
10793         (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
10794         TYPE_SIZE_UNIT of inner types after the stride is elaborated.
10795         (make_aligning_type): Accept an extra ROOM argument for storage to be
10796         made available before the aligned field, and an extra BASE_ALIGN
10797         argument for callers to pass the alignment guaranteed to be honored for
10798         the whole aligning object. Avoid call to finish_record_type, which only
10799         interferes with the sizes we want to set.
10800         (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
10801         make_aligning_type for super-aligned objects on stack.
10802         (components_to_record): Pass the adjusted size of the type when creating
10803         fields in the qualified union for the variant part.
10804         (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
10805         (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
10806         packed array type.
10807         (maybe_pad_type): Set TYPE_USER_ALIGN.
10808         (make_aligning_type): Likewise.
10809         ALIGN argument is unsigned int.
10810         (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
10811         (gnat_to_gnu_param): Likewise, for parameters.
10812         (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
10813         if it is constant and stems from a function call.
10814         (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
10815         of the record is specified.  Adjust accordingly.
10816         (adjust_packed): New static function.
10817         (gnat_to_gnu_field): Use it to adjust the packedness setting.
10818         (components_to_record): Likewise.
10819         (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
10820         side-effects if the object is deemed constant.
10821         (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
10822         type instead of merely finalizing it.  Tidy.
10823         <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
10824         <E_Access_Type>: Likewise.
10825         (defer_debug_incomplete_list): Rename to defer_finalize_list.
10826         (defer_debug_level): Delete.
10827         (gnat_to_gnu_entity) <debug_deferred>: Likewise
10828         <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
10829         type.
10830         <E_Record_Type>: Do not explicitly defer finalizing the type.
10831         Adjust for write_record_type_debug_info renaming.
10832         <E_Subprogram_Type>: Likewise.
10833         Finalize deferred types right after deferred incomplete types are
10834         expanded.
10835         (rest_of_type_decl_compilation): New global function.
10836         (components_to_record): Rename defer_debug parameter to do_not_finalize.
10837         (components_to_record): Propagate the packedness to the fields of the
10838         qualified union type if there is a variant part.
10839         (gnat_to_gnu_entity) <E_Array_Type>: Use new function
10840         instead of inline code to adjust the XUT field offsets.
10841         (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
10842         <E_Record_Subtype>: Do not let finish_record_type compute the sizes
10843         and write the debug info if the type derives from a discriminated one.
10844         (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
10845         <E_Array_Subtype>: Likewise.
10846         <E_String_Literal_Subtype>: Likewise.
10847         (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
10848         an alignment clause.
10849         (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
10850         before giving warning.
10851         (prepend_one_attribute_to): New function, helper to prepend an attribute
10852         to an attribute list.
10853         (gnat_to_gnu_entity) <E_Procedure>: Use it.
10854         (prepend_attributes): Likewise.
10855         (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
10856         <E_Array_Type>: Declare the padding type for the element type, if any.
10857         <E_Array_Subtype>: Likewise.
10858         (defer_limited_with): New variable.
10859         (Gigi_Equivalent_Type): New function.
10860         (gnat_to_gnu_entity): Use it at start and use result throughout.
10861         (gnat_to_gnu_entity, case E_Access_Type): Rework to use
10862         Gigi_Equivalent_Type, support Limited_With, allow two levels of
10863         indirection, precompute if unconstrained array to simplify logic, and
10864         use defer_limited_with to defer elaboration of some types from limited
10865         with.
10866         (finalize_from_with_types): New function.
10867
10868 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
10869             Eric Botcazou  <ebotcazou@adacore.com>
10870             Tristan Gingold  <gingold@adacore.com>
10871             Olivier Hainque  <hainque@adacore.com>
10872
10873         * trans.c (Identifier_to_gnu): Change test for deferred constant by
10874         adding guard that the entity is an E_Constant before testing presence
10875         of Full_view (and remove unnecessary test that entity is not a type).
10876         For a CONST_DECL used by reference, manually retrieve
10877         the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
10878         (struct language_function): Move from utils.c to here.
10879         (struct parm_attr): New structure.
10880         (parm_attr, parm_attr vector, parm_attr GC vector): New types.
10881         (f_parm_attr_cache): New macro.
10882         (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
10883         expressions for the 'First, 'Last and 'Length attributes of the
10884         unconstrained array IN parameters.
10885         (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
10886         Allocate the information structure for the function earlier, as well
10887         as the language-specific part.
10888         If the parameter attributes cache has been populated, evaluate the
10889         cached expressions on entry.
10890         (takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
10891         N_Procedure_Call_Statement and N_Indexed_Component.
10892         (Pragma_to_gnu): Translate inspection_point to an asm statement
10893         containaing a comment and a reference to the object (either its address
10894         for BLKmode or its value).
10895         (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
10896         to go to DECL_INITIAL. Together with the size constraint relaxation
10897         in create_var_decl, enlarges the set of situations in which an
10898         identifier may be used as an initializer without implying elaboration
10899         code.
10900         (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
10901         DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
10902         node.
10903         (maybe_stabilize_reference): Remove lvalues_only parameter.
10904         (gnat_stabilize_reference): Adjust for above change.
10905         (gnat_to_gnu): Do not set location information on the result
10906         if it is a reference.
10907         (add_cleanup): Add gnat_node parameter and set the location of the
10908         cleanup to it.
10909         (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
10910         (Exception_Handler_to_gnu_zcx): Likewise.
10911         (gigi): Remove the cgraph node if the elaboration procedure is empty.
10912         (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
10913         the former right after the latter.
10914         (start_stmt_group): Make global.
10915         (end_stmt_group): Likewise.
10916         (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
10917         vars.
10918         (gnu_program_error_label_stack): Likewise.
10919         (gigi): Initialize them.
10920         (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
10921         (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
10922         New cases.
10923         (push_exception_label_stack): New function.
10924         (takes_address): New function.
10925
10926         * utils.c (struct language_function): Move to trans.c from here.
10927         (unchecked_convert): Do not wrap up integer constants in
10928         VIEW_CONVERT_EXPRs.
10929         (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
10930         the latter for aggregate types, unexpected by later passes, and relax an
10931         arbitrary size constraint on the former.
10932         (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
10933         to compare the sizes.
10934         (convert_vms_descriptor): When converting to a fat pointer type, be
10935         prepared for a S descriptor at runtime in spite of a SB specification.
10936         (shift_unc_components_for_thin_pointers): New function.
10937         (write_record_type_debug_info): For variable-sized fields, cap the
10938         alignment of the pointer to the computed alignment.
10939         (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
10940         If REP_LEVEL is 2, do not compute the sizes.
10941         (build_vms_descriptor): Adjust for new prototype of finish_record_type.
10942         (build_unc_object_type): Likewise.
10943         (declare_debug_type): New function.
10944
10945         * ada-tree.def: USE_STMT: removed (not emitted anymore).
10946
10947         * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
10948         no statement is expandable anymore.
10949         (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
10950         (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
10951         when the user requested it explicitely.
10952         (gnat_post_options): By default, set flag_eliminate_unused_debug_types
10953         to 0 for Ada.
10954         (get_alias_set): Return alias set 0 for a type if
10955         TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
10956
10957         * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
10958         (DECL_FUNCTION_STUB): New accessor macro.
10959         (SET_DECL_FUNCTION_STUB): New setter macro.
10960
10961         * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
10962
10963         * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
10964         declarations.
10965
10966 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
10967
10968         * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
10969         Rename to Abort_Task_Interrupt to be able to keep the same interface
10970         as the rest of the targets.
10971
10972         * s-osinte-vxworks.ads s-osinte-vxworks.adb
10973         (To_VxWorks_Priority): Remove explicit "in" mode indicator
10974
10975         * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
10976         New files.
10977
10978 2007-06-06  Robert Dewar  <dewar@adacore.com>
10979
10980         * a-chahan.ads: Remove obsolescent pragmas
10981
10982         * a-chlat1.ads: Minor reformatting
10983
10984 2007-06-06  Robert Dewar  <dewar@adacore.com>
10985
10986         * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
10987         for Errout
10988
10989         * errout.adb: New Finalize/Compilation_Errors/Output_Messages
10990         implementation
10991
10992         * errout.ads (Finalize): Changed interface
10993         (Output_Messages): New procedure
10994         (Compilation_Errors): New Interface
10995
10996         * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
10997         Finalize/Output_Messages interface for Errout
10998         (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
10999         Errout.
11000
11001 2007-06-06  Thomas Quinot  <quinot@adacore.com>
11002             Olivier Hainque  <hainque@adacore.com>
11003             Robert Dewar  <dewar@adacore.com>
11004
11005         * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
11006         check.
11007         (Raise_Current_Excep): Call Debug_Raise_Exception just before
11008         propagation starts, to let debuggers know about the event in a reliable
11009         fashion.
11010         (Local_Raise): Moved to System.Exceptions
11011         More convenient to have this as a separate unit
11012
11013         * s-except.adb, s-except.ads: New files.
11014
11015         * a-exextr.adb (Unhandled_Exception): Delete - replaced by
11016         Debug_Unhandled_Exception in System.Exceptions where it belongs
11017         together with a couple of other debug helpers.
11018         (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
11019         the former Unhandled_Exception.
11020
11021         * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
11022         (Warn_No_Exception_Propagation): New procedure
11023         (Warn_If_No_Propagation): Rewritten for new warning generation
11024         (Expand_Exception_Handlers): New warning generation
11025         (Expand_N_Raise_xxx_Error): Rewritten for new warnings
11026         (Add_Exception_Label): Use Special_Exception_Package_Used for test
11027         instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
11028         (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
11029         even if restriction is set (makes life easier in Check_Returns)
11030         (Expand_Local_Exception_Handlers): Follow renamed entity chain when
11031         checking exception identities.
11032         (Expand_Local_Exception_Handlers): Do not optimize when all others case
11033         (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
11034         block for handler (used by Check_Returns)
11035         (Expand_Local_Exception_Handlers): Local_Raise now takes an address
11036         (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
11037         remove all exception handlers when optimizing local raise statements.
11038         (Find_Local_Handler): Use Get_Renamed_Entity
11039         (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
11040         marked analyzed after expanding exception handlers, do not generate
11041         redundant cleanup actions, because they have been constructed already.
11042
11043 2007-06-06  Thomas Quinot  <quinot@adacore.com>
11044
11045         * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
11046         presence of this categorization pragma is mandated by the language.
11047         (Limited_Controlled): Add missing pragma Preelaborable_Initialization
11048         for this type.
11049
11050 2007-06-06  Vincent Celier  <celier@adacore.com>
11051             Robert Dewar  <dewar@adacore.com>
11052
11053         * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb, 
11054         butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, 
11055         err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads, 
11056         fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads, 
11057         lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads, 
11058         makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb, 
11059         par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb, 
11060         prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads, 
11061         prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb, 
11062         sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb, 
11063         uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
11064         ali.ads, ali.adb: 
11065         Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
11066         package Namet. Make File_Name_Type and Unit_Name_Type types derived from
11067         Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
11068         Use variables of types File_Name_Type and Unit_Name_Type in error
11069         messages.
11070         (Get_Name): Add parameter Ignore_Special, and set it reading file name
11071         (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
11072         here.
11073         Define flags Flag217-Flag230 with associated subprograms
11074         (Flag_Word5): New record type.
11075         (Flag_Word5_Ptr): New access type.
11076         (To_Flag_Word5): New unchecked conversion.
11077         (To_Flag_Word5_Ptr): Likewise.
11078         (Flag216): New function.
11079         (Set_Flag216): New procedure.
11080
11081 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
11082
11083         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
11084         instead of 'Size.
11085
11086         * a-stwifi.ads, a-stzfix.ads: Minor reformatting
11087
11088 2007-06-06  Javier Miranda  <miranda@adacore.com>
11089
11090         * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
11091         the package.
11092         (Object_Specific_Data_Array): This is now internal to the package.
11093         (Object_Specific_Data): This is now internal to the package.
11094         (Select_Specific_Data_Element): This is now internal to the package.
11095         (Select_Specific_Data_Array): This is now internal to the package.
11096         (Select_Specific_Data): This is now internal to the package.
11097         (Offset_To_Top_Function_Ptr): This is now public.
11098         (To_Offset_To_Top_Function_Ptr): Removed.
11099         (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
11100          local to subprogram Offset_To_Top.
11101         (Predefined_DT): Removed.
11102         (Typeinfo_Ptr): Removed.
11103         (OSD): This function is now internal to this package.
11104         (SSD): This function is now internal to this package.
11105         (DT): New function that displaces the pointer to the table of primitives
11106          to get access to the enclosing wrapper record.
11107         (IW_Membership): Code cleanup.
11108         (Offset_To_Top): Code cleanup.
11109         (Predefined_DT): Removed.
11110         (Register_Interface_Tag): Removed.
11111         (Set_Interface_Table): Removed.
11112         (Set_Offset_Index): Removed.
11113         (Set_Offset_To_Top): Code cleanup.
11114         (Set_OSD): Removed.
11115         (Set_Signature): Removed.
11116         (Set_SSD): Removed.
11117         (Set_Tagged_Kind): Removed.
11118         (Typeinfo_Ptr): Removed.
11119         (TSD): Removed.
11120         (Displace): Add missing check on null actual.
11121
11122         * exp_disp.ads, exp_disp.adb
11123         (Select_Expansion_Utilities): Removed.
11124         (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
11125         (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
11126         the interface requires a new parameter.
11127         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
11128         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
11129         calls to subprograms Build_T, Build_S, etc. by the corresponding code.
11130         Done to remove package Select_Expansion_Utilities.
11131         (Make_DT): New implementation for statically allocated dispatch tables.
11132         (Make_Secondary_DT): Moved to the scope of Make_DT.
11133         (Register_Primitive): Code cleanup plus incoporate the use of the new
11134         function DT_Address_Attribute.
11135         (Expand_Interface_Thunk): The profile of this subprogram has been
11136         changed to return the Thunk_Id and the corresponding code.
11137         (Fill_DT_Entry): Removed. Its functionality is now provided by
11138         subprogram Register_Primitive.
11139         (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
11140         subprogram Register_Primitive.
11141         (Register_Primitive): New subprogram that incorporates the previous
11142         functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
11143         (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
11144         was only required to call Make_DT_Access_Action, which is now removed.
11145         (Ada_Actions): Removed
11146         (Action_Is_Proc): Removed
11147         (Action_Nb_Arg): Removed
11148         Replace all the calls to Make_DT_Access_Action by direct calls to
11149         Make_Procedure_Call_Statement or Make_Function_Call.
11150         (Set_DTC_Entity_Value): New subprogram.
11151         (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
11152         (Expand_Interface_Thunk): Add missing support for primitives that are
11153         functions with a controlling result (case in which there is no need
11154         to generate the thunk).
11155
11156         * exp_atag.ads, exp_atag.adb
11157         (Build_DT): New subprogram that displaces the pointer to reference the
11158         base of the wrapper record.
11159         (Build_Typeinfo_Offset): Removed.
11160         (RTE_Tag_Node): Removed.
11161         (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
11162         (Build_Get_RC_Offset): Removed.
11163         (Build_Inherit_Predefined_Prims): Removed.
11164         (Build_Inherit_TSD: Removed.
11165         (Build_New_TSD): Removed.
11166         (Build_Set_External_Tag): Removed.
11167         (Build_Set_Predefined_Prim_Op_Address): Add documentation.
11168         (Build_Set_Prim_Op_Address): Add documentation.
11169         (Build_Set_TSD): Removed.
11170
11171         * rtsfind.ads, rtsfind.adb
11172         (Load_Fail): If load fails and we are not in configurable run-time
11173         mode, then raise Unrecoverable_Error.
11174         (Text_IO_Kludge): Generate an error message if a run-time library is
11175         not available in a given run-time (ie. zfp run-time).
11176         (RTE_Record_Component): Add code to check that the component we search
11177         for is not found in two records in the given run-time package.
11178         (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
11179         (RE_DT_Predef_Prims_Offset): New entity
11180         (RE_Static_Offset_To_Top): New entity
11181         (RE_HT_Link): New entity.
11182         (System_Address_Image): Addition of this run-time package.
11183         (RE_Address_Image): New entity.
11184         (RE_Abstract_Interface): Removed.
11185         (RE_Default_Prim_Op_Count): Removed.
11186         (RE_DT_Entry_Size): Removed.
11187         (RE_DT_Min_Prologue_Size): Removed.
11188         (RE_DT_Prologue_Size): Removed.
11189         (RE_Ifaces_Table_Ptr): Removed.
11190         (RE_Interface_Data_Ptr): Removed.
11191         (RE_Type_Specific_Data): Removed.
11192         (RE_Primary_DT): Removed.
11193         (RE_Register_Interface_Tag): Removed.
11194         (RE_Set_Offset_Index): Removed.
11195         (RE_Set_OSD): Removed.
11196         (RE_Set_SSD): Removed.
11197         (RE_Set_Signature): Removed.
11198         (RE_Set_Tagged_Kind): Removed.
11199         (RE_Address_Array): New entity.
11200         (RE_DT): New entity.
11201         (RE_Iface_Tag): New entity.
11202         (RE_Interfaces_Table): New entity.
11203         (RE_No_Dispatch_Table): New entity.
11204         (RE_NDT_Prims_Ptr): New entity.
11205         (RE_NDT_TSD): New entity.
11206         (RE_Num_Prims): New entity.
11207         (RE_Offset_To_Top_Function_Ptr): New entity.
11208         (RE_OSD_Table): New entity.
11209         (RE_OSD_Num_Prims): New entity.
11210         (RE_Predef_Prims): New entity
11211         (RE_Predef_Prims_Table_Ptr): New entity.
11212         (RE_Primary_DT): New entity.
11213         (RE_Signature): New entity.
11214         (RE_SSD): New entity.
11215         (RE_TSD): New entity.
11216         (RE_Type_Specific_Data): New entity.
11217         (RE_Tag_Kind): New entity.
11218
11219 2007-06-06  Thomas Quinot  <quinot@adacore.com>
11220
11221         * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
11222         C imported variable.
11223         (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
11224         on entry.
11225
11226 2007-06-06  Robert Dewar  <dewar@adacore.com>
11227
11228         * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
11229         character
11230
11231 2007-06-06  Vincent Celier  <celier@adacore.com>
11232
11233         * a-tifiio.adb (Put, internal): For negative numbers, check that there
11234         is room for at least one digit and the minus sign.
11235         (Put.Put_Character): Never put a character outside of the range of
11236         string To.
11237
11238 2007-06-06  Olivier Hainque  <hainque@adacore.com>
11239             Eric Botcazou  <ebotcazou@adacore.com>
11240
11241         * utils2.c (build_allocator): Provide the extra arguments to
11242         make_aligning_type for super-aligned objects allocated from the default
11243         pool. Leave enough room for a pointer before the aligning field, and
11244         store the system's allocator return value there.
11245         (build_call_alloc_dealloc): When releasing a super-aligned object,
11246         retrieve the system's allocator return value from where build_allocator
11247         has stored it, just ahead of the adjusted address we are passed.
11248         (build_call_raise): Handle properly the generation of line numbers when
11249         the node is marked No_Location.
11250         (compare_elmt_bitpos): Use tree_int_cst_compare.  Stabilize the sort
11251         by using DECL_UID on ties.
11252         (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
11253         main variant.
11254         (build_call_raise): Handle converting exception into goto; support new
11255         argument KIND.
11256         (build_component_ref): Add new arg to build_call_raise.
11257
11258 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
11259
11260         * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
11261         "." in the case of nnn.xxx when nnn terminates with an underscore.
11262         Parse the remaining "#" or ":" in the case of nnn#.xxx#
11263
11264 2007-06-06  Robert Dewar  <dewar@adacore.com>
11265
11266         * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
11267
11268 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
11269             Vincent Celier  <celier@adacore.com>
11270             Robert Dewar  <dewar@adacore.com>
11271
11272         * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
11273         needed.
11274         (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
11275         ((destructor)) for adafinal, even when switch -a is used.
11276         Do not issue pragma Linker_Destructor for adafinal when switch -a is
11277         used.
11278         (Gen_Object_Files_Options): Add formatting of Linker Options, when
11279         Output_Linker_Option_List is set. Suppress this formatting when
11280         Zero_Formatting is set.
11281         Add case for CLI_Target.
11282         (System_Restrictions_Used): New flag, used to avoid generating with of
11283         System_Restrictions and initialization of the data unless there is
11284         some use of System.Restrictions in the partition.
11285         (Check_System_Restrictions_Used): New procedure
11286
11287         * s-stalib.adb: Remove with of System.Restrictions. No longer needed
11288         since we only with this unit in the binder file if it is used elsewhere
11289         in the partition.
11290
11291 2007-06-06  Vincent Celier  <celier@adacore.com>
11292
11293         * bindusg.adb: Add line for @<response file>
11294         Add lines for new switches -R and -Z
11295
11296         * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
11297         hierarchy in the list of files of the closure when -R is used
11298         (Gnatbind): Accept arguments starting with '@' to indicate response
11299         files and take the arguments from the response files.
11300         If List_Closure is set, display the referenced files
11301
11302 2007-06-06  Javier Miranda  <miranda@adacore.com>
11303             Robert Dewar  <dewar@adacore.com>
11304             Ed Schonberg  <schonberg@adacore.com>
11305
11306         * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
11307         which the address-clause is applied to in-mode actuals (allowed by
11308         13.1(22)).
11309         (Apply_Discriminant_Check): Do not generate a check if the type is
11310         constrained by a current instance.
11311         (Activate_Division_Check): New procedure
11312         (Activate_Overflow_Check): New procedure
11313         (Activate_Range_Check): New procedure
11314         Call these new Activate procedures instead of setting flags directly
11315         (Apply_Array_Size_Check): Removed, no longer needed.
11316         Code clean up: remove obsolete code related to GCC 2.
11317         (Get_E_Length): Protect against bomb in case scope is standard
11318         (Selected_Range_Checks): If the node to be checked is a conversion to
11319         an unconstrained array type, and the expression is a slice, use the
11320         bounds of the slice to construct the required constraint checks.
11321         Improve NOT NULL error messages
11322         (Apply_Constraint_Check): If the context is a null-excluding access
11323         type, diagnose properly the literal null.
11324
11325 2007-06-06  Pascal Obry  <obry@adacore.com>
11326
11327         * clean.adb (Clean_Archive): Use untouched casing for the archive name
11328         and the corresponding .deps file.
11329         (Clean_Interface_Copy_Directory): Use untouched casing for the library
11330         src directory. Minor code-clean-up. Use untouched casing for files
11331         read into the library src dir.
11332         (Clean_Library_Directory): Idem.
11333         (Parse_Cmd_Line): Accept new switch -aP
11334
11335 2007-06-06  Javier Miranda  <miranda@adacore.com>
11336             Ed Schonberg  <schonberg@adacore.com>
11337             Robert Dewar  <dewar@adacore.com>
11338             Eric Botcazou  <ebotcazou@adacore.com>
11339             Arnaud Charlet  <charlet@adacore.com>
11340
11341         * einfo.ads, einfo.adb (Available_View): New synthesized attribute
11342         applicable to types that have the With_Type flag set. Returns the
11343         non-limited view of the type, if available, otherwise the type itself.
11344         For class-wide types, there is no direct link in the tree, so we have
11345         to retrieve the class-wide type of the non-limited view of the Etype.
11346         New attributes Static_Initialization and Static_Elaboration_Desired.
11347         Remove the pragma Thread_Body, and the associated flag
11348         Is_Thread_Body in entities, and all related code.
11349         (Suppress_Value_Tracking_On_Call): New flag
11350         E_Exception has Esize and Alignment fields
11351         (Universal_Aliasing): New function.
11352         (Set_Universal_Aliasing): New procedure.
11353         (Write_Entity_Flags): Deal with Universal_Aliasing flag.
11354         (Check_Nested_Access): New procedure.
11355         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
11356         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
11357         (Related_Interface): New attribute. Present in dispatch table pointer
11358         components of records. Set to point to the entity of the corresponding
11359         interface type.
11360         (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
11361         (Original_Access_Type): Remove, not needed.
11362         (Root_Type): Handle properly subtypes of class-wide-types.
11363         Update comments.
11364
11365         * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
11366         class-wide types visible through limited-with clauses.
11367         (Try_Primitive_Operation): When examining all primitive operations of a
11368         tagged type, do not consider subprograms labeled as hidden unless they
11369         belong to a private generic type with a tagged parent.
11370         (Try_Object_Operation): Extensive rewriting, to handle properly various
11371         overloading cases, when several ancestors may have class-wide operations
11372         that are possible candidates, and when the overloaded functions return
11373         array types and have defaulted parameters so that the call may be
11374         interpreted as an indexing.
11375         (Analyze_Allocator): Remove Mark_Allocator and its invocation.
11376         (Process_Function_Call): use Next, rather than Next_Actual, to analyze
11377         successive actuals before analyzing the call itself.
11378         (Try_Primitive_Operation): A primitive operation is compatible with the
11379         prefix if the prefix has a synchronized type and the type of the formal
11380         is its corresponding record, as can be the case when the primitive
11381         operation is declared outside of the body of the type.
11382         (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
11383         perform homonym traversal, looking for class-wide operation matches
11384         (formerly done in statements of Try_Class_Wide_Operation). Matches on
11385         access parameters are now restricted to anonymous access types.
11386         (Mark_Allocator): An allocator with a discriminant association parent is
11387         a coextension.
11388         (Try_One_Prefix_Interpretation): If the type of the object is
11389         incomplete, as can be happen when it is a limited view obtained through
11390         a limited_with_clause, the selected component is not part of a prefixed
11391         call.
11392         (Complete_Object_Operation): Diagnose properly an object that is not
11393         aliased when the corresponding controlling formal is an access
11394         parameter.
11395         (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
11396         ambiguous calls in prefixed notation, where two primitives differ only
11397         in that the controlling argument of one is an access parameter.
11398
11399         * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
11400         whether a function that returns an unconstrained type can be inlined.
11401         (Process_Formals): Diagnose properly the illegal use of an incomplete
11402         type in the profile of an access_to_subprogram declaration.
11403         (Check_Synchronized_Overriding): Nothing check for concurrent types, the
11404         operations are attached to the corresponding record.
11405         (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
11406         When processing a primitive of a concurrent type which implements an
11407         interface change the type of all controlling formals to that of the
11408         corresponding record type.
11409         (Check_Synchronized_Overriding): Relax the conditional logic when trying
11410         to determine the tagged type to which a primitive belongs.
11411         (Check_Conventions): Capture condition to ignore a primitive operation
11412         (which is shared between the loop in Check_Conventions and the one in
11413         Check_Convention) in a new local function Skip_Check.
11414         (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
11415         confusion with Check_Conventions' own Prim_Op local variable.
11416         (Create_Extra_Formals): Test for a tagged result type rather than a
11417         controlling result when determining whether to add a BIP_Alloc_Form
11418         formal and a BIP_Final_List formal to the function.
11419         (Check_Conformance); For parameters that are anonymous access types,
11420         subtype conformance requires that the not null and the constant
11421         indicators must match
11422         (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
11423         to retrieve the appropriate type when processing a concurrent type
11424         declared within a generic. Minor comment reformatting. Change invocation
11425         of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
11426         mitive.
11427         (Analyze_Subprogram_Body): If the return type of a function is an
11428         anonymous access to the limited view of a class-wide type, and the
11429         non-limited view of the type is available, update the type of the
11430         function so that code can be generated.
11431         (Process_Formals): In case of access-subtype itype whose designated
11432         type is also an itype (situation that happens now with access to
11433         subprograms) we mark the access-type itype with the Has_Delayed_Freeze
11434         attribute to avoid backend problems.
11435         (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
11436         init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
11437         anonymous types' designated types are same before testing
11438         Subtypes_Statically_Match.
11439         (Create_Extra_Formals): Test for a named access parameter that is a
11440         controlling formal as an additional condition for adding an
11441         accessibility level formal. This can occur in the subp type created for
11442         dispatching calls in Expand_Dispatching_Call, and allows calling
11443         Create_Extra_Formals from that procedure rather than special-casing the
11444         extra formals there.
11445         (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
11446         when the function has a controlling result.
11447         (Check_Returns): Add much more knowledge of the optimization of local
11448         raise statements to gotos, to retain proper warnings in this case.
11449         (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
11450         nodes when looking for last statement.
11451
11452         * sem_type.ads, sem_type.adb (Specific_Type): Add support for
11453         class-wide types visible through limited with clauses.
11454         (Add_One_Interp): If the operands are anonymous access types, the
11455         predefined operator on universal_access is immediately visibles
11456         (Find_Unique_Type): Handle anonymous access to subprogram types just as
11457         other anonymous access types.
11458         (Disambiguate): Take into account CIL convention.
11459         (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
11460
11461 2007-06-06  Robert Dewar  <dewar@adacore.com>
11462
11463         * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
11464         sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
11465         elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
11466         Fix lower bound of tables.
11467         Add rep clauses.
11468
11469         * nlists.adb: Ditto.
11470         (Prev_Node, Next_Node): Change index type to Int so that it properly
11471         covers the range First_Node_Id - 1 up.
11472
11473 2007-06-06  Javier Miranda  <miranda@adacore.com>
11474             Ed Schonberg  <schonberg@adacore.com>
11475             Bob Duff  <duff@adacore.com>
11476             Hristian Kirtchev  <kirtchev@adacore.com>
11477
11478         * exp_aggr.ads, exp_aggr.adb: 
11479         (Build_Record_Aggr_Code): Add missing initialization of secondary tags
11480         in extension aggregates.
11481         (Flatten): Other conditions being met, an aggregate is static if the
11482         low bound given by component associations is different from the low
11483         bound of the base index type.
11484         (Packed_Array_Aggregate_Handled): If the component type is itself a
11485         packed array or record, the front-end must expand into assignments.
11486         (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
11487         Init_Pr, instead of Ancestor_Is_Expression.
11488         (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
11489         coextension chain root, either generate a list controller or use the
11490         already existing one.
11491         (Static_Array_Aggregate): New procedure to construct a positional
11492         aggregate that can be handled by the backend, when all bounds and
11493         components are compile-time known constants.
11494         (Expand_Record_Aggregate): Force conversion of aggregates of tagged
11495         types covering interface types into assignments.
11496         (Replace_Type): move to Build_Record_Aggr_Code.
11497         (Expand_Record_Aggr_Code): if the target of the aggregate is an
11498         interface type, convert to the definite type of the aggregate itself,
11499         so that needed components are visible.
11500         (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
11501         components and the context is an extended return statement do not
11502         create a transient block for it, to prevent premature finalization
11503         before the return is executed.
11504         (Gen_Assign): Do not generate a call to deep adjust routine if the
11505         component type is itself an array of controlled (sub)-components
11506         initialized with an inner aggregate.
11507         (Component_Check): New name for Static_Check. This name is now more
11508         appropriate, and documentation is added which was missing.
11509         (Component_Check): Add test for bit aligned component value
11510         (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
11511         Tagged_Comps, name is more appropriate given added function below.
11512         (Component_Not_OK_For_Backend): Check for bit aligned component ref.
11513
11514 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
11515             Javier Miranda  <miranda@adacore.com>
11516             Robert Dewar  <dewar@adacore.com>
11517
11518         * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
11519         Terminated: Add unchecked type conversion from System.Address to
11520         System.Tasking.Task_Id when calling the predefined primitive
11521         _disp_get_task_id.
11522         Disable new Ada 05 accessibility check for JVM.NET targets, which
11523         cannot be implemented in a practical way.
11524         (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
11525         the sources always references the tag of the actual object. Therefore,
11526         if 'Tag is applied in the sources to class-wide interface objects we
11527         generate code that displaces "this" to reference the base of the object.
11528         (Expand_N_Attribute_Reference, case Size): Return specified size if
11529         known to front end.
11530         (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
11531         has code that displaces the pointer of the object to manage interface
11532         types. However this code must not be executed when the prefix is a
11533         subprogram. This bug caused the wrong expansion of the internally
11534         generated assignment that fills the dispatch table when the primitive
11535         is a function returning a class-wide interface type.
11536         (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
11537         Set_Attribute_Name for Name_Unaligned_Valid.
11538
11539 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
11540             Gary Dismukes  <dismukes@adacore.com>
11541
11542         * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
11543         If the initialization is the equivalent aggregate of the initialization
11544         procedure of the type, do not remove it.
11545         (Expand_N_Attribute_Definition_Clause): Exclude access variables
11546         initialized to null from having their expression reset to empty and
11547         note this exception in the comment.
11548
11549 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
11550             Robert Dewar  <dewar@adacore.com>
11551             Ed Schonberg  <schonberg@adacore.com>
11552             Gary Dismukes  <dismukes@adacore.com>
11553
11554         * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
11555         Add "with" and "use" clauses for Sem_Attr.
11556         (Expand_Current_Value): Do not replace occurences of attribute
11557         references where the prefix must be a simple name.
11558
11559         * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
11560         Namet. Add new arrays Attribute_Name_Modifies_Prefix and
11561         Attribute_Requires_Simple_Name_Prefix.
11562         (Name_Modifies_Prefix): Body of new function.
11563         (Requires_Simple_Name_Prefix): Body of new function.
11564         (Resolve_Attribute, case Access): Improve error message for case of
11565         mismatched conventions.
11566         (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
11567         incomplete type.
11568         (Analyze_Attribute, case 'Access): If the type of the prefix is a
11569         constrained subtype for a nominal unconstrained type, use its base type
11570         to check for conformance with the context.
11571         (Resolve_Attribute): Remove test of the access type being associated
11572         with a return statement from condition for performing accessibility
11573         checks on access attributes, since this case is now captured by
11574         Is_Local_Anonymous_Access.
11575         (Analyze_Access_Attribute): Set Address_Taken on entity
11576         (Analyze_Attribute, case Address): Set Address_Taken on entity
11577         (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
11578         validating an access attribute whose prefix is a current instance.
11579         (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
11580         applied to dispatching operations, if freezing is required then we set
11581         the attribute Has_Delayed_Freeze in the prefix's entity.
11582         (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
11583         current scope if access of local subprogram taken
11584         (Analyze_Access_Attribute): Check legality of self-reference even if the
11585         expression comes from source, as when a single component association in
11586         an aggregate has a box association.
11587         (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
11588         the prefix if it is a protected operation and the attribute is
11589         Unrestricted_Access.
11590         (Resolve_Attribute, case 'Access): Set the Etype of the attribute
11591         reference to the base type of the context, to force a constraint check
11592         when the context is an access subtype with an explicit constraint.
11593         (Analyze_Attribute, case 'Class): If the prefix is an interface and the
11594         node is rewritten as an interface conversion. leave unanalyzed after
11595         resolution, to ensure that type checking against the context will take
11596         place.
11597
11598 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
11599             Javier Miranda  <miranda@adacore.com>
11600             Robert Dewar  <dewar@adacore.com>
11601
11602         * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
11603         wrapper when the full view of the controlling type of an inherited
11604         function that dispatches on result implements interfaces.
11605         (Expand_N_Object_Declaration): In cases where the type of the
11606         declaration is anonymous access, create finalization list for it.
11607         (Expand_N_Object_Declaration): Generate a persistent_bss directive only
11608         if the object has no explicit initialization, to match description of
11609         functionality of pragam Persistent_BSS.
11610         (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
11611         new function to build static aggregates, to replace initialization call
11612         when static initialization is desired.
11613         (Freeze_Type): Generate a list controller for an access type whenever
11614         its designated type has controlled anonymous access discriminants.
11615         (Build_Equivalent_Aggregate): New procedure to compute a static
11616         aggregate to be used as default initialization for composite types,
11617         instead of a generating a call to the initialization procedure for the
11618         type.
11619         (Build_Initialization_Call): When available, replace a call to the
11620         initialization procedure with a copy of the equivalent static aggregate
11621         for the type.
11622         (Expand_N_Object_Declaration):  Use New_Occurrence_Of in generated
11623         declarations for objects of a class-wide interface type, rather than
11624         just identifiers, to prevent visibility problems.
11625         (Expand_N_Object_Declaration): When expanding the declaration for an
11626         object of a class-wide interface type, preserve the homonym chain of
11627         the original entity before exchanging it with that of the generated
11628         renaming declaration.
11629         (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
11630         active, because there is no way to handle the exception.
11631         (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
11632         to do a minimum decoration of the Access_Disp_Table list.
11633         (Expand_Record_Controller): Avoid the addition of the controller between
11634         the component containing the tag of a secondary dispatch table and its
11635         adjacent component that stores the offset to the base of the object.
11636         This latter component is only generated when the parent type has
11637         discriminants ---documented in Add_Interface_Tag_Components).
11638         (Apply_Array_Size_Check): Removed, no longer needed.
11639         (Expand_N_Full_Type_Declaration): If the type has anonymous access
11640         components, create a Master_Entity for it only if it contains tasks.
11641         (Build_Init_Procedure): Suppress the tag assignment compiling under
11642         no run-time mode.
11643         (Freeze_Record_Type): Remove code associated with creation of dispatch
11644         table.
11645         (Init_Secondary_Tags): Update type of actuals when generating calls to
11646         Ada.Tags.Set_Offset_To_Top
11647         (Stream_Operation_OK): Disable use of streams compiling under no
11648         run-time mode
11649         (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
11650         if Has_Init_Expression set.
11651         (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
11652         Register_Primitive, which provides the same functionality.
11653         (Requires_Init_Proc): Return false in case of interface types.
11654         (Add_Secondary_Tables): Use the new attribute Related_Interface to
11655         cleanup the code.
11656         (Predefined_Primitive_Freeze): Do not assume that an internal entity
11657         is always associated with a predefined primitive because the internal
11658         entities associated with interface types are not predefined primitives.
11659         Therefore, the call to Is_Internal is replaced by a call to the
11660         function Is_Predefined_Dispatching_Operation.
11661         (Make_Eq_If): When generating the list of comparisons for the
11662         components of a given variant, omit the controller component that is
11663         present if the variant has controlled components.
11664
11665 2007-06-06  Javier Miranda  <miranda@adacore.com>
11666             Hristian Kirtchev  <kirtchev@adacore.com>
11667             Bob Duff  <duff@adacore.com>
11668
11669         * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
11670         handle the creation of finalization lists and calls for nested
11671         coextensions when the root of the chains is part of a return statement.
11672         (Inside_A_Return_Statement): New function inside Complete_Coextension_
11673         Finalization.
11674         (Expand_Record_Equality): Skip components that are interface types.
11675         (Displace_Allocator_Pointer): Add missing support for interface subtypes
11676         (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
11677         with Rewrite_Coextension. Change the condition for detecting coextension
11678         root nodes.
11679         (Is_Local_Access_Discriminant): Removed.
11680         (Rewrite_Coextension): New routine which rewrites a static coextension
11681         as a temporary and uses its unrestricted access in the construction of
11682         the outer object.
11683         (Complete_Coextension_Finalization): New routine. Generate finalization
11684         attachment calls to all delayed coextensions.
11685         (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
11686         the allocator is not a coextension itself and has delayed coextensions.
11687         If the current allocator is controlled, but also a coextension, delay
11688         the generation of the finalization attachment call.
11689         Rename local variable "Node" to "Nod" in order to avoid confusion with
11690         "Elists.Node".
11691         (Expand_Allocator_Expression): Call Adjust for initialized allocators of
11692         limited types that are not inherently limited. Such an allocator is
11693         illegal, but is generated by the expander for a return statement, to
11694         copy the result onto the secondary stack. This is the only case where a
11695         limited object can be copied. Generate code to displace the pointer
11696         to the object if the qualified expression is a class-wide interface
11697         object. Such displacement was missing and hence the copy of the object
11698         was wrong.
11699         (Apply_Accessibility_Check): Handle allocated objects initialized in
11700         place.
11701         (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
11702         and Expand_Allocator_Expression. Allocating class-wide interface objects
11703         this routine displaces the pointer to the allocated object to reference
11704         the component referencing the corresponding secondary dispatch table.
11705         Expand_Allocator_Expression): Add missing support to allocate class-wide
11706         interface objects initialized with a qualified expression.
11707         (Get_Allocator_Final_List): Test for an anonymous access type that is a
11708         function result type, and use the finalization list associated with the
11709         function scope in that case (such an anonymous type should not be
11710         treated like an access parameter's type).
11711
11712 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
11713             Gary Dismukes  <dismukes@adacore.com>
11714             Javier Miranda  <miranda@adacore.com>
11715
11716         * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
11717         controlled type, use Make_Handler_For_Ctrl_Operation to construct the
11718         required exception handler.
11719         (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
11720         properly the case of a function whose return type is a limited
11721         class-wide interface type. Modify the code of the accessibility
11722         check to handle class-wide interface objects. In this case we need to
11723         displace "this" to reference the primary dispatch table to get access
11724         to the TSD of the object (to evaluate its accessibility level).
11725         (Expand_N_Extended_Return_Statement): Test for a tagged result type
11726         rather than a controlling result as one of the conditions for
11727         generating tests of the implicit BIP_Alloc_Form formal. The
11728         initialization assignment is also handled according to whether the
11729         result is tagged instead of controlling.
11730         In the case where the init assignment is inserted in the "then" part of
11731         the allocation conditional, rewrite the target to be a dereference of
11732         the implicit BIP_Object_Access formal.
11733         If the returned value is unconstrained and created on the secondary
11734         stack, mark the enclosing block and function so that the secondary
11735         stack is not reclaimed on return.
11736         Treat returns from functions with controlling results similarly to
11737         returns from functions with unconstrained result subtypes.
11738         If the object returned is unconstrained, and an allocator must be
11739         created for it, analyze the allocator once the block for the extended
11740         return is installed, to ensure that finalizable components
11741         of the expression use the proper finalization list. Guard the call to
11742         Move_Final_List with a check that there is something to finalize.
11743         (Make_Tag_Ctrl_Assignment): Use "old" handling
11744         of controlled type assignment for virtual machines, since new code uses
11745         unsupported features (such as direct access to bytes in memory).
11746
11747 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
11748             Ed Schonberg  <schonberg@adacore.com>
11749
11750         * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
11751         accessibility actual, check for the case of an aliased object that has
11752         been rewritten as an Access attribute, and assign Prev to Prev_Orig so
11753         we fall into processing for the attribute rather than the name of the
11754         object.
11755         (Expand_Inline_Call): If an actual is a literal, and the corresponding
11756         formal has its address taken in the body, create a temporary to capture
11757         value.  If the return type is a limited interface, do not treat the
11758         return value as Controlled.
11759         (Is_In_Place_Function):  If the return type is a limited interface,
11760         treat as returning in place. The actual returned object may not always
11761         be limited, but the caller has to assume that it is returned in place.
11762         (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
11763         context of an allocator, use the correct finalization chain (that is,
11764         the chain belonging to the access type, rather than the chain belonging
11765         to the current scope).
11766         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
11767         result type rather than a controlling result as a precondition for
11768         adding an allocation form actual to a build-in-place call.
11769         (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
11770         (Freeze_Subprogram): Code cleanup. Remove all the code that register the
11771         primitive in the dispatch tables. This work is now done by Make_DT when
11772         the type is frozen.
11773         (Register_Predefined_DT_Entry): Removed.
11774         (Add_Return): If end label is not present, use sloc of last statement
11775         for generated return statement in procedure, for better gdb behavior
11776         on expanded code.
11777         (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
11778         object address nodes to ensure proper processing by routines like
11779         Insert_After*.
11780         (Expand_Call): Fix generation of validity check for parameter
11781         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
11782         the allocation form parameter if the result subtype is constrained,
11783         except when the function has a controlling result.
11784         (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
11785         rather than Is_Controlled and Has_Controlled_Component, since we want to
11786         include class-wide result types in this treatment. Also test for a
11787         controlling result, since that also requires passing a finalization
11788         list.
11789         (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
11790         even when the result subtype is constrained, to handle calls involving
11791         controlling results.
11792         (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
11793         is now called even when the result subtype is constrained, to handle
11794         calls involving controlling results.
11795         (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
11796         on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
11797         now performs the test).
11798         (Make_Build_In_Place_Call_In_Object_Declaration):
11799         Add_Alloc_Form_Actual_* is now called even when the result subtype is
11800         constrained, to handle calls involving controlling results.
11801         (Add_Return): Accomodate rewritten pattern from local raise to goto
11802         transformation, so that we still recognize an transfer statement
11803         and do the right thing here in that case.
11804         (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
11805         and end of subprogram code.
11806         (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
11807         support for primitives that are functions (without formals) with a
11808         controlling result.
11809         (Inherited_From_Formal): If the actual subtype has not generic parent
11810         type, it is not an actual for a formal derived type, and there is no
11811         operation to inherit from the formal.
11812
11813 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
11814             Thomas Quinot  <quinot@adacore.com>
11815
11816         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
11817         inserted cleanup code appropriately for GDB use.
11818         (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
11819         exception handler for Deep_Adjust or Deep_Finalize.
11820         (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
11821         Raise_From_Controlled_Operation is available, use a call to that
11822         subprogram instead of a plain "raise Program_Error" node to raise
11823         Program_Error if an exception is propagated from an Adjust or Finalize
11824         operation.
11825         (Insert_Actions_In_Scope_Around): If the statement to be wrapped
11826         appears in the optional statement list of a triggering alternative, the
11827         scope actions can be inserted directly there, and not in the list that
11828         includes the asynchronous select itself.
11829
11830 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
11831             Robert Dewar  <dewar@adacore.com>
11832             Hristian Kirtchev  <kirtchev@adacore.com>
11833
11834         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
11835         generated exception handler appropriately when debugging generated code.
11836         Deal properly with No_Exception_Propagation restriction mode.
11837         (Expand_N_Abort_Statement): Add an unchecked type conversion from
11838         System.Address to System.Tasking.Task_Id when processing the result of
11839         the predefined primitive _disp_get_task_id.
11840         (Expand_N_Asynchronous_Select): Clarify comment.
11841         (Expand_N_Protected_Type_Declaration): Minor code cleanup.
11842         (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
11843         (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
11844         (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
11845         privals and for generated call to Complete_Entry_Body, for better gdb
11846         behavior.
11847         (Copy_Result_Type): Utility to construct a parameter and result profile
11848         for protected functions whose return type is an anonymous access to
11849         subprogram.
11850         (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
11851         call the above.
11852         (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
11853         point when the local-raise-to-goto transformation has taken place.
11854
11855 2007-06-06  Javier Miranda  <miranda@adacore.com>
11856             Nicolas Setton  <setton@adacore.com>
11857
11858         * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
11859         functionality when the backend is generating code.
11860         Otherwise any serious error
11861         reported by the backend calling the frontend routine Error_Msg
11862         changes the Compilation_Mode to Check_Semantics, disables the
11863         functionality of this routine and causes the generation of
11864         spureous additional errors.
11865
11866         * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
11867         debugging information now generated by the compiler for fat-pointer
11868         types.
11869         Document the contents of DW_AT_producer in the GNAT Vendor extensions to
11870         DWARF2/3.
11871         Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
11872
11873 2007-06-06  Thomas Quinot  <quinot@adacore.com>
11874
11875         * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
11876         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
11877         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
11878         For a remote call to a function with a classwide return type, apply an
11879         E.4(18) check to the returned value.
11880         (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
11881         stream attributes of the designated type of an RACW, as they are not
11882         dispatching primitive operations.
11883
11884 2007-06-06  Geert Bosch  <bosch@adacore.com>
11885
11886         * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
11887         negative literal
11888         (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
11889         positive
11890         (Do_Divide_Fixed_Universal): Handle case of negative Frac.
11891         (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
11892         positive
11893         (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
11894
11895 2007-06-06  Javier Miranda  <miranda@adacore.com>
11896
11897         * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
11898         attribute compiling package Ada.Tags under No_Run_Time_Mode.
11899
11900 2007-06-06  Javier Miranda  <miranda@adacore.com>
11901
11902         * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
11903         deallocation of class-wide interface objects.
11904         (Expand_Dispatching_Constructor_Call): Take into account that if the
11905         result of the dispatching constructor is an interface type, the
11906         function returns a class-wide interface type; otherwise the returned
11907         object would be actual. The frontend previously accepted returning
11908         interface types because Expand_Interface_Actuals silently performed
11909         the management of the returned type "as if" it were a class-wide
11910         interface type.
11911         (Expand_Dispatching_Constructor_Call): Replace call to
11912         Make_DT_Access_Action by direct call to Make_Function_Call.
11913
11914 2007-06-06  Robert Dewar  <dewar@adacore.com>
11915             Ed Schonberg  <schonberg@adacore.com>
11916
11917         * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
11918         compute masking constant, since we now set Esize properly to the
11919         underlying size.
11920         (Create_Packed_Array_Type): Set proper Esize value adjusted as required
11921         to match the alignment.
11922         (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
11923         packed arrays of 8 bits or less.
11924
11925         * freeze.adb (Freeze_Entity): When freezing the formals of a
11926         subprogram, freeze the designated type of a parameter of an access type
11927         only if it is an access parameter.
11928         Increase size of C convention enumeration object
11929         (Freeze_Entity, array type case): Make sure Esize value is properly
11930         adjusted for the alignment if it is known.
11931         (Freeze_Entity, array type case): When checking bit packed arrays for
11932         the size being incorrect, check RM_Size, not Esize.
11933         (Freeze_Record_Type): Check for bad discriminated record convention
11934         (In_Exp_Body): Return true if the body is generated for a subprogram
11935         renaming, either an attribute renaming or a renaming as body.
11936         (Check_Itype): If the designated type of an anonymous access component
11937         is a non-protected subprogram type, indicate that it is frozen, to
11938         prevent out-of-scope freeze node at some subsequent call.
11939         (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
11940         only if the subprogram is neither imported nor exported, as well as the
11941         NCA descriptor class if the subprogram is exported.
11942
11943 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
11944             Arnaud Charlet  <charlet@adacore.com>
11945             Robert Dewar  <dewar@adacore.com>
11946             Gary Dismukes  <dismukes@adacore.com>
11947
11948         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
11949         default initialization on an imported object, when there is no
11950         initialization call generated for it.
11951         (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
11952         restriction
11953
11954         * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
11955         Static_Elaboration_Desired.
11956         Remove pragma Thread_Body.
11957         Implement a new pragma No_Body
11958         Removes the Explicit_Overriding pragma
11959         Remove Optional_Overriding pragma
11960         (Prag): Deal with Universal_Aliasing.
11961         (Name_CIL, Name_CIL_Constructor, Convention_CIL,
11962         Pragma_CIL_Constructor): New names.
11963
11964         * sem_cat.adb (Validate_Object_Declaration): An initialization that
11965         uses the equivalent aggregate of a type must be treated as an implicit
11966         initialization.
11967         (Get_Categorization): Check a unit for pragma Preelaborate only if it
11968         has none of the other categories.
11969         (Process_Import_Or_Interface_Pragma): Report an error for an attempt
11970         to apply Import to an object renaming declaration.
11971
11972         * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
11973         from a C++ class should be declared as limited and that it will be
11974         considererd limited.
11975         (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
11976         should be declared as limited and that it will be considererd limited.
11977         (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
11978         (Analyze_Pragma, case Export): Diagnose export of enumeration literal
11979         (Analyze_Pragma): Deal with Universal_Aliasing.
11980         (Sig_Flags): Likewise.
11981         (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
11982         (Overflow_Checks_Unsuppressed): New flag.
11983         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
11984         (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
11985         case of JVM or .NET targets, and compiling user code.
11986         Add debugging convenience routine rv
11987
11988 2007-06-06  Robert Dewar  <dewar@adacore.com>
11989
11990         * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
11991         are interface type.
11992         (Build_Elementary_Input_Call): For floating-point use right type in the
11993         absence of strange size or stream size clauses.
11994         (Build_Elementary_Write_Call): Same fix
11995         (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
11996         set to value that does not match base type size.
11997
11998 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
11999
12000         * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
12001         object of a limited type can be initialized with a call to a function
12002         that returns in place. If the limited type has unknown discriminants,
12003         and the underlying type is a constrained composite type, build an actual
12004         subtype from the function call, as is done for private types.
12005         (Side_Effect_Free): An expression that is the renaming of an object or
12006         whose prefix is the renaming of a object, is not side-effect free
12007         because it may be assigned through the renaming and its value must be
12008         captured in a temporary.
12009         (Has_Controlled_Coextensions): New routine.
12010         (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
12011         as is done for other limited types.
12012         (Non_Limited_Designated_Type): new predicate.
12013         (Make_CW_Equivalent_Type): Modified to handle class-wide interface
12014         objects.
12015         Remove all handling of with_type clauses.
12016
12017         * par-ch10.adb: Remove all handling of with_type clauses.
12018
12019         * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
12020         checksum if the main source could not be parsed.
12021         (Loat_Unit): When processing a child unit, determine properly whether
12022         the parent unit is a renaming when the parent is itself a child unit.
12023         Remove handling of with_type clauses.
12024
12025         * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
12026         (Set_Is_Static_Coextension): New procedure.
12027         (Has_Local_Raise): New function
12028         (Set_Has_Local_Raise): New procedure
12029         (Renaming_Exception): New field
12030         (Has_Init_Expression): New flag
12031         (Delay_Finalize_Attach): Remove because flag is obsolete.
12032         (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
12033         Remove all handling of with_type clauses.
12034         (Exception_Junk): Can now be set in N_Block_Statement
12035
12036 2007-06-06  Vincent Celier  <celier@adacore.com>
12037             Robert Dewar  <dewar@adacore.com>
12038
12039         * frontend.adb (Frontend): Return immediately if the main source could
12040         not be parsed, because of preprocessing errors.
12041
12042         * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
12043         (Gnat1drv): Exit with errors if the main source could not be parsed,
12044         because of preprocessing errors.
12045         (Check_Rep_Info): New procedure
12046
12047 2007-06-06  Robert Dewar  <dewar@adacore.com>
12048
12049         * g-hesorg.ads, g-heasor.ads,
12050         g-busorg.ads, g-bubsor.ads: Update documentation
12051         GNAT.Heap/Bubble_Sort_G is now pure
12052
12053 2007-06-06  Robert Dewar  <dewar@adacore.com>
12054
12055         * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
12056
12057 2007-06-06  Robert Dewar  <dewar@adacore.com>
12058             Ed Schonberg  <schonberg@adacore.com>
12059
12060         * g-comlin.ads, g-comlin.adb: 
12061         Add new warning for renaming of function return objects
12062
12063         * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
12064         (Tree_Read): Use size of object instead of type'object_size, since the
12065         latter is incorrect for packed array types.
12066         (Tree_Write): Same fix
12067
12068         * opt.ads: Add new warning for renaming of function return objects
12069         (Generating_Code): New boolean variable used to indicate that the
12070         frontend as finished its work and has called the backend to process
12071         the tree and generate the object file.
12072         (GCC_Version): Is now private
12073         (Static_Dispatch_Tables): New constant declaration.
12074         (Overflow_Checks_Unsuppressed): New flag.
12075         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
12076         (List_Closure): New flag for gnatbind (-R)
12077         Zero_Formatting: New flag for gnatbind (-Z)
12078         (Special_Exception_Package_Used): New flag.
12079         (Warn_On_Unrepped_Components): New flag.
12080
12081         * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
12082         unit is a compilation unit, rather than relying on its scope, so that
12083         Standard can be renamed.
12084         (Analyze_Object_Renaming): Add new warning for renaming of function
12085         return objects.
12086         Also reject attempt to rename function return object in Ada 83 mode.
12087         (Attribute_Renaming): In case of tagged types, add the body of the
12088         generated function to the freezing actions of the type.
12089         (Find_Type): A protected type is visible right after the reserved word
12090         "is" is encountered in its type declaration. Set the entity and type
12091         rather than emitting an error message.
12092         (New_Scope): Properly propagate Discard_Names to inner scopes
12093         (Check_Nested_Access): New procedure.
12094         (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
12095         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
12096
12097         * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
12098         Add new warning for renaming of function return objects
12099         (Check_References): Suppress warnings for objects whose type or
12100         base type has Warnings suppressed.
12101         (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
12102         (Set_Warning_Switch): Include new -gnatwc in -gnatwa
12103
12104 2007-06-06  Vincent Celier  <celier@adacore.com>
12105             Emmanuel Briot  <briot@adacore.com>
12106             Olivier Hainque  <hainque@adacore.com>
12107
12108         * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
12109         absolute value of Header.Block_Size when displaying the freed physical
12110         memory in traces.
12111         (Allocate): Compute Storage_Address using Integer_Address, not
12112         Storage_Offset, because the range of Storage_Offset may not be large
12113         enough.
12114         (Configure): New parameter Low_Level_Traces
12115         (Allocate, Deallocation, Free_Physically): Added low-level traces
12116         (Configure): new parameter Errors_To_Stdout.
12117         (Output_File): new subprogram
12118         (Deallocate, Dereference): Send error messages to the proper stream
12119         (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
12120         documented. Previous code would send it to the current output file
12121         defined in GNAT.IO, which might not be stdout
12122         (Is_Valid): Adjust comment to mention that a positive reply means that
12123         Header_Of may be used to retrieve the allocation header associated with
12124         the subprogram Storage address argument. Return False early if this
12125         address argument is misaligned.
12126
12127 2007-06-06  Vincent Celier  <celier@adacore.com>
12128
12129         * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
12130         switch -P
12131         (ASIS_Main): New global variable
12132         (Get_Closure): New procedure
12133         (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
12134         check, metric or pretty. Call Get_Closure in this case.
12135         (Check_Files): For GNAT LIST, check all sources of all projects when
12136         All_Projects is True.
12137         (GNATCmd): Accept -U for GNAT LIST
12138
12139 2007-06-06  Vincent Celier  <celier@adacore.com>
12140
12141         * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
12142         has been specified
12143         Correct error message when invocation of the linker fails
12144         Add explicit size clause for the C imported variables
12145         Object_List_File_Supported and Using_GNU_Linker to emphasize that
12146         we expect char size.
12147         Read target parameters earlier, since this is needed to set
12148         Target_VM properly. Also do not use -static/shared-libgcc for non GCC
12149         targets.
12150
12151 2007-06-06  Vincent Celier  <celier@adacore.com>
12152
12153         * gnatls.adb: 
12154         Add 3 spaces before the default project directory when displaying
12155         the project search path.
12156         Add new command line switch '-l' to display license information.
12157
12158 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
12159
12160         * gmem.c: Add support for timestamps on memory operations.
12161
12162         * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
12163         operations (not used currently, just foundation for future
12164         enhancements). Add possibility to perform full dump of gmem.out file.
12165         (Print_Back_Traces): Declare accesses to root arrays constants since
12166         they aren't modified.
12167         (Print_Back_Traces): allocate root arrays on the heap rather than stack.
12168
12169 2007-06-06  Vincent Celier  <celier@adacore.com>
12170
12171         * gnatsym.adb: Update Copyright notice
12172         (Parse_Cmd_Line): Accept new switch -D
12173         (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
12174          file.
12175
12176         * prj.ads (Policy): New policy Direct
12177         (Yes_No_Unknown): New enumeration type
12178         (Project_Data): New component Libgnarl_Needed
12179
12180         * prj-nmsc.adb (Check_For_Source): When recording a source file make
12181         use the untouched pathname casing.
12182         (Get_Directories): Ensure that the Display_Exec_Directory is using the
12183         proper casing on non case-sensitive platforms like Windows.
12184         (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
12185         on all platforms, as it is not possible to know which one is allowed
12186         before processing the project files.
12187         (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
12188         specified when symbol policy is Direct. Check that when there is a
12189         symbol file defined (either by default or with attribute
12190         Library_Symbol_File) it is not the same as the reference symbol file.
12191         (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
12192         (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
12193         extending projects.
12194         (Record_Ada_Source): Record a source that has been locally removed in an
12195         imported project.
12196
12197         * symbols.ads (Policy): New policy Direct
12198
12199         * symbols-vms.adb (Initialize): Take new policy Direct in case
12200         statement
12201
12202 2007-06-06  Vincent Celier  <celier@adacore.com>
12203
12204         * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
12205         Correct obvious bug (return Dir; instead of return Directory;).
12206         (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
12207
12208 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12209
12210         * g-pehage.adb (Produce): Open output files in Binary mode, so that
12211         they have UNIX line endings (LF only) even on Windows, and thus pass
12212         all GNAT style checks.
12213
12214 2007-06-06  Emmanuel Briot  <briot@adacore.com>
12215
12216         * g-regpat.adb (Quote): Fix improper quoting of '.'
12217
12218 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12219
12220         * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
12221         default, set False on a per-runtime basis.
12222         (Need_Netdb_Buffer): New constant.
12223
12224         * g-socket.ads, g-socket.adb: Import new package
12225         GNAT.Sockets.Thin.Task_Safe_NetDB.
12226         (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
12227         binding to obtain proper message.
12228         (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
12229         Replace various occurrences of Arry (Arry'First)'Address with the
12230         equivalent Arry'Address (GNAT always follows implementation advice from
12231         13.3(14)).
12232         (Get_Host_By_Address, Get_Host_By_Name,
12233         Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
12234         instead, rely on platform-specific task safe netdb operations provided
12235         by g-socthi.
12236
12237         * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
12238         parameter Process_Blocking_IO.
12239         (Host_Error_Messages): Add stub body.
12240         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12241         (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
12242         Safe_Getservbyport): Move functions into new child package
12243         Task_Safe_NetDB.
12244         (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
12245         Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
12246         (In_Addr): Add alignment clause.
12247
12248 2007-06-06  Robert Dewar  <dewar@adacore.com>
12249
12250         * g-trasym.ads, g-traceb.ads: Update list of supported targets
12251         Add note about symbolic traceback
12252
12253 2007-06-06  Pascal Obry  <obry@adacore.com>
12254
12255         * hostparm.ads (Normalized_CWD): Use the host directory separator
12256         instead of the hardcoded forward slash which is not the proper
12257         character on Windows for example.
12258         (Java_VM): Removed.
12259
12260 2007-06-06  Vincent Celier  <celier@adacore.com>
12261             Arnaud Charlet  <charlet@adacore.com>
12262
12263         * a-clrefi.adb, a-clrefi.ads: New files
12264
12265         * impunit.adb: Add s-os_lib in the list of user visible units.
12266         (Non_Imp_File_Names_95): Add a-clrefi to this list
12267         Remove obsolete run-time entries.
12268         (Non_Imp_File_Names_05): Add Ada 2005 entries for:
12269          "a-exetim" -- Ada.Execution_Time
12270          "a-extiti" -- Ada.Execution_Time.Timers
12271
12272         * mlib-prj.ads, mlib-prj.adb
12273         (Build_Library): Use untouched object dir and library dir. At the
12274         same time makes sure that the checks are done using the canonical
12275         form. Removes hard-coded directory separator and use the proper host
12276         one instead.
12277         (Process_Project): Do not look in object directory to check if libgnarl
12278         is needed for a library, if there is no object directory.
12279         (Build_Library): Scan the ALI files to decide if libgnarl is needed for
12280         linking.
12281         (Build_Library): When invoking gnatbind, use a response file if the
12282         total size of the arguments is too large.
12283
12284         * Makefile.rtl: (g-sttsne): New object file.
12285         Add entry for a-clrefi, s-utf_32, System.Exceptions
12286
12287         * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
12288         (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
12289         (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
12290         Change g-string to s-string, g-os_lib to s-os_lib
12291         Change all g-utf_32 references to s-utf_32
12292
12293 2007-06-06  Tristan Gingold  <gingold@adacore.com>
12294             Olivier Hainque  <hainque@adacore.com>
12295
12296         * init.c: Do not adjust IP of an imported VMS exception of ia64.
12297         LIB$STOP is called to raise an exception and the IP of the exception
12298         is the instruction right after the call.
12299         (__gnat_adjust_context_for_raise, AIX): Implement.
12300         (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
12301          adjust_context_for_raise before Raise_From_Signal_Hanler.
12302         (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
12303         siginfo is passed to the handler, necessary to let the zcx propagation
12304         engine unwind past it.
12305
12306 2007-06-06  Olivier Hainque  <hainque@adacore.com>
12307
12308         * initialize.c (__gnat_initialize for vxworks):  Update documentation
12309         on the ZCX support, using different sets of crtstuff objects than with
12310         GCC 3.4.
12311
12312 2007-06-06  Robert Dewar  <dewar@adacore.com>
12313
12314         * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
12315         spec from body
12316         (Layout_Type): Fix recomputation of size from alignment.
12317
12318 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
12319             Javier Miranda  <miranda@adacore.com>
12320
12321         * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
12322         association in an instance.
12323         (Copy_Generic_Node): If the node is a string literal, no need to copy
12324         its descendants.
12325         (Is_Generic_Formal): For a formal subprogram, the declaration is the
12326         grandparent of the entity.
12327         (Analyze_Formal_Interface_Type): Transform into a full type declaration,
12328         to simplify handling of formal interfaces that derive from other formal
12329         interfaces.
12330         (Instantiate_Subprogram_Body): The defining unit name of the body of
12331         the instance should be a defining identifier.
12332         (Install_Formal_Packages): make global to the package, for use in
12333         instantiations of child units.
12334         (Analyze_Package_Instantiation): Do not attempt to set information on an
12335         enclosing master of an entry when expansion is disabled.
12336         (Instantiate_Type): If the actual is a tagged synchronized type and the
12337         generic ancestor is an interface, create a generic actual for the
12338         corresponding record.
12339         (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
12340         declaration, to ensure that the interface list is processed correctly.
12341         (Inline_Instance_Body): If enclosing scope is an instance body, remove
12342         its entities from visibiility as well.
12343         (Pre_Analyze_Actuals): if the actual is an allocator with  constraints
12344         given with a named association, analyze the expression only, not the
12345         discriminant association itself.
12346         (Reset_Entity): If the analysis of a selected component is transformed
12347         into an expanded name in the prefix of a call with parameters, do not
12348         transform the original node into an expanded name, to prevent visibility
12349         errors in the case of nested generics.
12350         (Check_Private_View): For an array type, check whether the index types
12351         may need exchanging.
12352
12353 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
12354             Vincent Celier  <celier@adacore.com>
12355
12356         * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
12357         since both are separated.
12358         Add support for imported CIL packages.
12359         Add further special handling of "value_type" for CIL.
12360         Add special handling of pragma Import for CIL.
12361
12362         * make.ads, make.adb: When switch -eS is used, direct all outputs to
12363         standard output instead of standard error, except errors.
12364         (Absolute_Path): Use untouched casing for the parent directory.
12365         (Add_Library_Search_Dir): Use the untouched directory name.
12366         (Add_Source_Search_Dir): Idem.
12367         (Change_To_Object_Directory): Update output to use proper casing.
12368         (Create_Binder_Mapping_File): Use the untouched filename to set
12369         ALI_Name.
12370         (Gnatmake): Use untouched library and executable directory names.
12371         (Insert_Project_Sources): Use untouched filename for spec and body.
12372         (Is_In_Object_Directory): Use untouched object directory.
12373         (Mark_Directory): Idem.
12374         (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
12375         contains the non-canonical filename in all cases.
12376         (Change_To_Object_Directory): In verbose mode, display the name of the
12377         object directory we're changing to.
12378         (Compile_Sources): Make sure, when a project file is used, to compile
12379         the body of the unit, when there is one, even when only the spec is
12380         recorded in an ALI file.
12381         (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
12382         spec to the body.
12383         (Report_Compilation_Failed): New procedure
12384         (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
12385         procedures moved from the spec to the body.
12386         (Extract_Failure): Removed, not used
12387         Replace explicit raises of exception Bind_Failed and Link_Failed with
12388         calls to Make_Failed with the proper message.
12389         Replace explicit raises of exception Compilation_Failed with calls to
12390         procedure Report_Compilation_Failed.
12391         (Initialize): Create mapping files unconditionally when using project
12392         files.
12393
12394         * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
12395         Pragma_CIL_Constructor): New names.
12396
12397         * targparm.ads, targparm.adb
12398         (Compiler_System_Version): Removed, no longer used.
12399         (Get_Target_Parameters): Relax checks on system.ads validity. Add
12400         handling of two new system flags: JVM and CLI.
12401
12402 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
12403             Arnaud Charlet  <charlet@adacore.com>
12404
12405         * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
12406         time, use the default s-interr body that provides interrupt support
12407         based on signals.
12408         (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
12409         a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
12410         g-soccon.ads, and s-taprop.adb for the marte run time.
12411         (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
12412         timers are supported on marte.
12413         (EH_MECHANISM for marte): Do not use ZCX.
12414         (THREADSLIB for marte): Use -lmarte.
12415         Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
12416         Add mlib-tgt-specific.o to gnatmake objects
12417         mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
12418         longer of MLib.Tgt.
12419         (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
12420         6, either kernel or rtp, use a specialized version of s-osinte.ads.
12421
12422 2007-06-06  Pascal Obry  <obry@adacore.com>
12423
12424         * mkdir.c (__gnat_mkdir): Add support for UTF-8.
12425
12426 2007-06-06  Vincent Celier  <celier@adacore.com>
12427
12428         * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
12429         separator, use instead the proper host directory separator.
12430         (Copy_ALI_Files): Make sure that an already existing ALI file in the
12431         ALI copy dir is writable, before doing the copy.
12432
12433         * mlib-utl.ads, mlib-utl.adb: 
12434         (Gcc): If length of command line is too long, put the list of object
12435         files in a response file, if this is supported by the platform.
12436         (Ar): If invocation of the archive builder is allowed to be done in
12437         chunks and building it in one shot would go above an OS dependent
12438         limit on the number of characters on the command line, build the archive
12439         in chunks.
12440
12441 2007-06-06  Vincent Celier  <celier@adacore.com>
12442
12443         * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
12444         of specified object file is not equal to base name of source.
12445
12446 2007-06-06  Javier Miranda  <miranda@adacore.com>
12447             Hristian Kirtchev  <kirtchev@adacore.com>
12448             Ed Schonberg  <schonberg@adacore.com>
12449
12450         * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
12451         the full type declaration.
12452         (Analyze_Component_Declaration): Add local variable E to capture the
12453         initialization expression of the declaration. Replace the occurences of
12454         Expression (N) with E.
12455         (OK_For_Limited_Init_In_05): Allow initialization of class-wide
12456         limited interface object with a function call.
12457         (Array_Type_Declaration): If the declaration lacks subtype marks for
12458         indices, create a simple index list to prevent cascaded errors.
12459         (Is_Null_Extension): Ignore internal components created for secondary
12460         tags when checking whether a record extension is a null extension.
12461         (Check_Abstract_Interfaces): Add missing support for interface subtypes
12462         and generic formals.
12463         (Derived_Type_Declaration): Add missing support for interface subtypes
12464         and generic formals.
12465         (Analyze_Object_Declaration): If an initialization expression is
12466         present, traverse its subtree and mark all allocators as static
12467         coextensions.
12468         (Add_Interface_Tag_Component): When looking for components that may be
12469         secondary tags, ignore pragmas that can appear within a record
12470         declaration.
12471         (Check_Abstract_Overriding): an inherited function that dispatches on
12472         result does not need to be overriden if the controlling type is a null
12473         extension.
12474         (Mentions_T): Handle properly a 'class attribute in an anonymous access
12475         component declaration, when the prefix is an expanded name.
12476         (Inherit_Component): If the derivation is for a private extension,
12477         inherited components remain visible and their ekind should not be set
12478         to Void.
12479         (Find_Type_Of_Object): In the case of an access definition, always set
12480         Is_Local_Anonymous_Access. We were previously not marking the anonymous
12481         access type of a return object as a local anonymous type.
12482         (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
12483         range with character literal bounds.
12484         (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
12485         (Access_Subprogram_Declaration): Indicate that the type declaration
12486         depends on an incomplete type only if the incomplete type is declared
12487         in an open scope.
12488         (Analyze_Subtype_Declaration): Handle properly subtypes of
12489         synchronized types that are tagged, and that may appear as generic
12490         actuals.
12491         (Access_Subprogram_Declaration): An anonymous access to subprogram can
12492         appear as an access discriminant in a private type declaration.
12493         (Add_Interface_Tag_Components): Complete decoration of the component
12494         containing the tag of a secondary dispatch table and the component
12495         containing the offset to the base of the object (this latter component
12496         is only generated when the parent type has discriminants --as documented
12497         in this routine).
12498         (Inherit_Components): Use the new decoration of the tag components to
12499         improve the condition that avoids inheriting the components associated
12500         with secondary tags of the parent.
12501         (Build_Discriminanted_Subtype): Indicate to the backend that the
12502         size of record types associated with dispatch tables is known at
12503         compile time.
12504         (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
12505         (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
12506         to include task, protected, and synchronized interfaces as limited
12507         interfaces.
12508         (Process_Discriminants): Remove the setting of
12509         Is_Local_Anonymous_Access on the type of (anonymous) access
12510         discriminants of nonlimited types.
12511         (Analyze_Interface_Type_Declaration): Complete the decoration of the
12512         class-wide entity it is is already present. This situation occurs if
12513         the limited-view has been previously built.
12514         (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
12515         field.
12516         (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
12517         Related_Interface.
12518
12519 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
12520
12521         * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
12522         of the type that specify the position of interface tags when the type
12523         inherits discriminated array components from the parent type.
12524         If a component is initialized with a box, check for the presence of a
12525         default expression in its declaration before using its default
12526         initialization procedure.
12527         (Resolve_Record_Aggregate): If a component is box-initialized, and the
12528         component type has a discriminants, create a partial aggregate for it
12529         by copying the discriminants of the component subtype.
12530         Reject attempt to initialize a discriminant with a box.
12531         (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
12532         associated with dispatch tables is known at compile time.
12533         (Get_Value): If an association in a record aggregate has a box
12534         association, and the corresponding record component has a default
12535         expression, always copy the default expression, even when the
12536         association has a single choice, in order to create a proper
12537         association for the expanded aggregate.
12538
12539 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
12540             Robert Dewar  <dewar@adacore.com>
12541
12542         * par-ch12.adb (P_Generic_Associations): The source position of an
12543         Others association is that of the others keyword, not that of the token
12544         that follows the box.
12545         (P_Formal_Type_Definition): Handle formal access types that carry a
12546         not null indicator.
12547
12548         * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
12549         multiple identifier are present, save Scan_State before scanning the
12550         colon, to ensure that separate trees are constructed for each
12551         declaration.
12552         (P_Identifier_Declarations): For object declaration, set new flag
12553         Has_Init_Expression if initialization expression present.
12554         (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
12555         Improve NOT NULL error messages
12556
12557 2007-06-06  Robert Dewar  <dewar@adacore.com>
12558
12559         * par-ch4.adb: (P_Name): Recover from literal used as name
12560
12561 2007-06-06  Vincent Celier  <celier@adacore.com>
12562
12563         * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
12564         defaulted to False.
12565         In the "not" case, recursive call with Complemented set to True.
12566         Do not allow "or" or "and" operators when Complemented is True.
12567
12568 2007-06-06  Vincent Celier  <celier@adacore.com>
12569
12570         * prj.adb (Project_Empty): Gives default value for new component
12571         Libgnarl_Needed
12572
12573         * prj-attr.ads: Minor reformatting
12574
12575         * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
12576         directory using the untouched casing.
12577         (For_All_Source_Dirs): Idem.
12578
12579         * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
12580         directories specified with switches -aP.
12581         (Add_Search_Project_Directory): New procedure
12582         (Initialize_Project_Path): Put the directories in table
12583         Search_Directories in the project search path.
12584         (Initialize_Project_Path): For VMS, transform into canonical form the
12585         project path.
12586
12587 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
12588
12589         * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
12590         true if configurable run-time or No_Run_Time is set.
12591         (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
12592         processing an unit which is not the one being compiled.
12593
12594 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
12595
12596         * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
12597         Replace UC by Ada.UC
12598
12599         * s-bitops.adb: Get rid of System.Pure_Exceptions.
12600         Replace UC by Ada.UC
12601
12602 2007-06-06  Robert Dewar  <dewar@adacore.com>
12603
12604         * scng.adb: (Check_End_Of_Line): Deal with very long lines
12605
12606 2007-06-06  Robert Dewar  <dewar@adacore.com>
12607
12608         * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
12609         Remove no longer used nodes.
12610
12611 2007-06-06  Javier Miranda  <miranda@adacore.com>
12612             Ed Schonberg  <schonberg@adacore.com>
12613             Robert Dewar  <dewar@adacore.com>
12614
12615         * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
12616         on obsolescent withed unit in case of limited-withed units.
12617         (Analyze_Compilation_Unit): Add guard to code that removed an
12618         instantiation from visibility, to prevent compiler aborts when
12619         instantiation is abandoned early on.
12620         (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
12621         current unit being analyzed, and Distinguish local incomplete types
12622         from limited views of types declared elsewhere.
12623         (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
12624         to state that the class-wide entity is shared by the limited-view
12625         and the full-view.
12626         (Analyze_With_Clause): Improve placement of flag for case of
12627         unimplemented unit.
12628         (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
12629         manner similar to GNAT.Current_Exception. This is a violation of
12630         restriction (No_Exception_Propagation), and also inhibits the
12631         optimization of local raise to goto.
12632         (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
12633         and if so set Most_Recent_Exception_Used flag in Opt, and also check
12634         for violation of restriction No_Exception_Propagation.
12635
12636 2007-06-06  Javier Miranda  <miranda@adacore.com>
12637             Hristian Kirtchev  <kirtchev@adacore.com>
12638             Gary Dismukes  <dismukes@adacore.com>
12639
12640         * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
12641         use of entity Exception_Occurrence if it is not available in the
12642         target run-time.
12643
12644         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
12645         concurrent types are declared within an Ada 2005 generic, build their
12646         corresponding record types since they are needed for overriding-related
12647         semantic checks.
12648         (Analyze_Protected_Type): Rearrange and simplify code for testing that a
12649         protected type does not implement a task interface or a nonlimited
12650         interface.
12651         (Analyze_Task_Type): Rearrange and simplify code for testing that a task
12652         type does not implement a protected interface or a nonlimited interface.
12653         (Single_Task_Declaration, Single_Protected_Declaration): use original
12654         entity for variable declaration, to ensure that debugging information
12655         is correcty generated.
12656         (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
12657         routines if the expander is not active.
12658         (Analyze_Task_Body): Mark all handlers to stop optimization of local
12659         raise, since special things happen for task exception handlers.
12660
12661         * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
12662         concurrent types declared within a generic.
12663         (Check_Dispatching_Operation): Do not emit warning about late interface
12664         operations in the context of an instance.
12665         (Check_Dispatching_Call): Remove restriction against calling a
12666         dispatching operation with a limited controlling result.
12667         (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
12668         Register_Interface_DT_Entry by calls to Register_Primitive.
12669         (Check_Dispatching_Formals): Handle properly a function with a
12670         controlling access result.
12671
12672 2007-06-06  Robert Dewar  <dewar@adacore.com>
12673             Arnaud Charlet  <charlet@adacore.com>
12674
12675         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
12676         Check for restriction No_Implementation_Attributes if in Ada 95 mode.
12677         (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
12678         (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
12679         message when using a VM, since this attribute is not supported.
12680         (Analyze_Record_Representation_Clause): Give unrepped component warnings
12681
12682         * usage.adb: Add new warning for renaming of function return objects
12683         Indicate that -gnatwp and -gnatwP concern front-end inlining
12684         Add line for -gnatyg
12685         Add usage information for -gnatw.c/C
12686
12687 2007-06-06  Robert Dewar  <dewar@adacore.com>
12688             Ed Schonberg  <schonberg@adacore.com>
12689
12690         * sem_ch5.adb
12691         (Find_Var): Do not consider function call in test for infinite loop
12692         warning if warnings set off for function entity.
12693         (One_Bound): Do not create a temporary for a loop bound if it is a
12694         character literal.
12695         (Analyze_Assignment): Traverse the right hand side of an assignment and
12696         mark all allocators as static coextensions.
12697         (Analyze_Assignment): Exempt assignments involving a dispatching call
12698         to a function with a controlling access result from the check requiring
12699         the target to be class-wide.
12700
12701 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
12702             Ed Schonberg  <schonberg@adacore.com>
12703             Robert Dewar  <dewar@adacore.com>
12704             Javier Miranda  <miranda@adacore.com>
12705
12706         * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
12707         chain of coextensions when an allocator serves as the root of such a
12708         chain.
12709         (Propagate_Coextensions): Remove the test for the root being an
12710         allocator.
12711         (Resolve_Allocator): Add condition to ensure that all future decoration
12712         occurs on an allocator node. Add processing and cleanup for static
12713         coextensions.
12714         (Valid_Conversion): If the operand type is the limited view of a
12715         class-wide type, use the non-limited view is available to determine
12716         legality of operation.
12717         (Ambiguous_Character): move to spec, for use elsewhere.
12718         (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
12719         (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
12720         character literals.
12721         (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
12722         Do_Division_Check flag explicitly.
12723         (Resolve_Actuals): If the actual is of a synchronized type, and the
12724         formal is of the corresponding record type, this is a call to a
12725         primitive operation of the type, that is declared outside of the type;
12726         the actual must be unchecked-converted to the type of the actual
12727         (Resolve_Call): Kill all current values for any subprogram call if
12728         flag Suppress_Value_Tracking_On_Call is set.
12729         (Resolve_Type_Conversion): Generate error message the the operand
12730         or target of interface conversions come from a limited view.
12731         (Check_Infinite_Recursion): Ignore generated calls
12732         (Check_Allocator_Discrim_Accessibility): New procedure for checking
12733         that an expression that constrains an access discriminant in an
12734         allocator does not denote an object with a deeper level than the
12735         allocator's access type.
12736         (Resolve_Allocator): In the case of an allocator initialized by an
12737         aggregate of a discriminated type, check that associations for any
12738         access discriminants satisfy accessibility requirements by calling
12739         Check_Allocator_Discrim_Accessibility.
12740         (Resolve_Equality_Op): Handle comparisons of anonymous access to
12741         subprogram types in the same fashion as other anonymous access types.
12742         (Resolve_Concatenation_Arg): Remove initial character '\' in an error
12743         message that is not a continuation message.
12744         (Resolve_Type_Conversion): Add missing support for conversion to
12745         interface type.
12746         (Resolve_Actuals): Introduce a transient scope around the call if an
12747         actual is a call to a function returning a limited type, because the
12748         resulting value must be finalized after the call.
12749         (Resolve_Actuals): If the call was given in prefix notations, check
12750         whether an implicit 'Access reference or implicit dereference must be
12751         added to make the actual conform to the controlling formal.
12752
12753 2007-06-06  Robert Dewar  <dewar@adacore.com>
12754             Javier Miranda  <miranda@adacore.com>
12755
12756         * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
12757         (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
12758         overriding of an inherited private subprogram now there is no need to
12759         inherit its dispatching slot and reduce the size of the dispatch table.
12760         Set_All_DT_Position now ensures that the same slot is now assigned to
12761         both entities. This is required to statically build the dispatch table.
12762         (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
12763         of calling Set_All_DT_Position to re-evaluate the position of the
12764         entries in the dispatch table. Such reevaluation is not desired if
12765         the tagged type is already frozen.
12766
12767 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
12768             Gary Dismukes  <dismukes@adacore.com>
12769             Robert Dewar  <dewar@adacore.com>
12770             Javier Miranda  <miranda@adacore.com>
12771
12772         * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
12773         reference acts as an lvalue when the attribute name modifies the prefix
12774         (Is_Coextension_Root): New routine.
12775         (Mark_Static_Coextensions): New routine.
12776         (Type_Access_Level): Revise code for checking the level of the
12777         anonymous access type of a return object.
12778         (Safe_To_Capture_Value): Not safe to capture if Address_Taken
12779         (Matches_Prefixed_View_Profile): Remove the no longer necessary
12780         retrieval of the corresponding controlling record type.
12781         (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
12782         concurrent types declared within a generic as well as class wide types.
12783         Emit a mode incompatibility error whenever a protected entry or routine
12784         override an interface routine whose first parameter is not of mode
12785         "out", "in out" or access to variable.
12786         (Overrides_Synchronized_Primitive): Rename to
12787         Find_Overridden_Synchronized_Primitive.
12788         (Collect_Interface_Components): New subprogram that collects all the
12789         components of a tagged record containing tags of secondary dispatch
12790         tables.
12791         (Add_Global_Declaration): New procedure
12792         (Abstract_Interface_List): Handle properly the case of a subtype of a
12793         private extension.
12794         (Type_Access_Level): In the case of a type whose parent scope is a
12795         return statement, call Type_Access_Level recursively on the enclosing
12796         function's result type to determine the level of the return object's
12797         type.
12798         (Build_Elaboration_Entity): Build name of elaboration entity from the
12799         scope chain of the entity, rather than the unit name of the file name.
12800         (Check_Nested_Access): New procedure.
12801         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
12802         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
12803         (Get_Renamed_Entity): Utility routine for performing common operation
12804         of chasing the Renamed_Entity field of an entity.
12805
12806 2007-06-06  Robert Dewar  <dewar@adacore.com>
12807
12808         * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
12809         elaboration model
12810         (Check_A_Call): Add check for entry call which was causing blowup
12811
12812 2007-06-06  Olivier Hainque  <hainque@adacore.com>
12813
12814         * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
12815         special code on ia64-vms to handle major incompatibilities between the
12816         GCC unwinding ABI and the VMS Condition Handling Facility, both calling
12817         this routine with a very different set of arguments and expectations on
12818         the return value.
12819
12820 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12821
12822         * socket.c (__gnat_close_signalling_fd): New function.
12823         (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
12824         __gnat_safe_getservbyname, __gnat_safe_getservbyport):
12825         New supporting functions for task safe Netdb operations.
12826
12827 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12828             Olivier Hainque  <hainque@adacore.com>
12829
12830         * a-except-2005.ads, a-except-2005.adb
12831         (Raise_From_Controlled_Operation): New procedure in
12832         (private part of) Ada.Exceptions (standard runtime version). Used to
12833         provide informational exception message when Program_Error is raised as
12834         a result of an Adjust or Finalize operation propagating an exception.
12835         (Rmsg_28): Fix description for E.4(18) check.
12836         (Raise_Current_Excep): Call Debug_Raise_Exception just before
12837         propagation starts, to let debuggers know about the event in a reliable
12838         fashion.
12839         Take the address of E and dereference to make sure it is homed on stack
12840         and prevent the stores from being deleted, necessary for proper
12841         debugger behavior on "break exception" hits.
12842         (Local_Raise): Moved to System.Exceptions
12843
12844         * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
12845         exception message from the current occurrence and raise Program_Error
12846         has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
12847
12848 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
12849             Arnaud Charlet  <charlet@adacore.com>
12850
12851         * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
12852         lock, if needed.
12853
12854         * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
12855         priority associated to a lock.
12856
12857         * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
12858         assertion to take into account case of no abort restriction.
12859         (Initialize_Protection_Entries): Add initialization for the field
12860         New_Ceiling associated to the protected object.
12861         (Unlock_Entries): Change the ceiling priority of the underlying lock, if
12862         needed.
12863
12864         * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
12865         since this function needs to be set consistently with Update_Exception.
12866
12867         * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
12868         since this function needs to be set consistently with Update_Exception.
12869
12870         * s-taskin.ads: Update comments on
12871         Interrupt_Server_Blocked_On_Event_Flag.
12872         (Unbind_Handler): Fix handling of server_task wakeup
12873         (Server_Task): Set self's state so that Unbind_Handler can take
12874         appropriate actions.
12875         (Common_ATCB): Now use a constant from System.Parameters to determine
12876         the max size of the Task_Image field.
12877
12878         * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
12879         Initialize_Analyzer function.
12880         ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
12881         take into account case of no abort restriction.
12882         ([Vulnerable_]Complete_Master): Modify assertion.
12883
12884         * s-tataat.adb (Finalize): Use the nestable versions of
12885         Defer/Undefer_Abort.
12886
12887         * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
12888
12889         * s-tpobop.ads: Update comments.
12890
12891         * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
12892         of locking the object manually, to avoid inconsistencies between
12893         Lock/Unlock_Entry assertions.
12894
12895         * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
12896         terminating
12897         application and System.Parameters.No_Abort is True.
12898         Update comments on Interrupt_Server_Blocked_On_Event_Flag.
12899         (Unbind_Handler): Fix handling of server_task wakeup
12900         (Server_Task): Set self's state so that Unbind_Handler can take
12901         appropriate actions.
12902
12903 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12904
12905         * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
12906         declarations instead of an explicit null body, for conciseness.
12907
12908 2007-06-06  Robert Dewar  <dewar@adacore.com>
12909
12910         * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
12911         illegal aggregate and the type is still Any_Composite.
12912         (Subtypes_Statically_Match): Fix problem of empty discriminant list
12913
12914 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
12915
12916         * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
12917         to prevent subsequent expansion.
12918
12919 2007-06-06  Robert Dewar  <dewar@adacore.com>
12920
12921         * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
12922
12923 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
12924             Robert Dewar  <dewar@adacore.com>
12925
12926         * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
12927         exceptions.
12928         (Write_Itype): Handle case of string literal subtype, which
12929         comes up in this context.
12930         (Update_Itype): when debugging expanded code, update sloc of itypes
12931         associated with defining_identifiers and ranges, for gdb use.
12932         (Sprint_Node_Actual): Add static keyword to object or exception
12933         declaration output if Is_Statically_Allocated is True.
12934         (Sprint_End_Label): Set entity of end marker for a subprogram, package,
12935         or task body, so that the tree carries the proper Sloc information for
12936         debugging use.
12937         (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
12938
12939 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
12940
12941         * s-secsta.adb (Chunk): Ensure this object has a static size known at
12942         compile time, to avoid dynamic memory allocation
12943         (Elaboration code): Only use dynamic memory allocation when needed.
12944
12945 2007-06-06  Quentin Ochem  <ochem@adacore.com>
12946
12947         * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
12948         "Overflow_Guard".
12949         (Stack_Analyzer): Added field "Overflow_Guard"
12950         (Task_Result): Added field "Overflow_Guard".
12951         (Index_Str): New constant.
12952         (Task_Name_Str): New constant.
12953         (Actual_Size_Str): New constant.
12954         (Pattern_Array_Element_Size): New constant.
12955         (Get_Usage_Range): New subprogram.
12956         (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
12957         Now align the output.
12958         Added comments.
12959         (Initialize): Added value for Overflow_Guard.
12960         (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
12961         Update the value of the overflow guard according to the actual
12962         beginning of the pattern array.
12963         (Initialize_Analyzer): Added parameter Overflow_Guard.
12964         Take this parameter into accound when computing the max size.
12965         (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
12966         (Report_Result): Removed extra useless procedure.
12967         Updated call to Output_Result.
12968         Moved full computation of the Task_Result here.
12969
12970 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12971
12972         * g-soccon-darwin.ads, gen-soccon.c: Add new constant
12973         Thread_Blocking_IO, always True by default, set False on a per-runtime
12974         basis.
12975         Add Windows-specific constants
12976         Add new constant Need_Netdb_Buffer.
12977         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
12978         not, whether to use getXXXbyYYY_r.
12979
12980         * gsocket.h: Add new constant Need_Netdb_Buffer.
12981         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
12982         not, whether to use getXXXbyYYY_r.
12983
12984 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
12985
12986         * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
12987         than their first call.
12988         Add type Dummy_Communication_Block used in the generation of the pre-
12989         defined dispatching primitive _disp_asynchronous_select.
12990         (Storage_Element): Put Pragma Universal_Aliasing on it.
12991
12992 2007-06-06  Vincent Celier  <celier@adacore.com>
12993
12994         * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
12995         function.
12996
12997         * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
12998         letter if it is not followed by a '/' or a '\'.
12999         (Windows): New Boolean function
13000
13001         * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
13002         Ada 2005.
13003         (Containing_Directory): On Windows, keep at least one '/' or '\' after a
13004         drive letter.
13005         (Containing_Directory): Raise Use_Error when the directory is a root
13006         directory.
13007         (Extension): When returning the result, use a conversion to Result_Type,
13008         not a qualification.
13009
13010 2007-06-06  Robert Dewar  <dewar@adacore.com>
13011
13012         * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
13013         (Set_Style_Check_Options): Recognize new -gnatyg style switch
13014
13015         * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
13016         Warn_On_Non_Local_Exception to False, to turn off warnings for
13017         No_Exception_Propagation in ZFP runtime.
13018         (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
13019         back-ends.
13020         (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
13021
13022 2007-06-06  Vincent Celier  <celier@adacore.com>
13023
13024         * switch-b.adb (Scan_Binder_Switches): Add processing for new
13025         switches -R and -Z
13026
13027         * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
13028         (Scan_Make_Switches): Recognize new switch -aP
13029
13030 2007-06-06  Matthew Gingell  <gingell@adacore.com>
13031             Jose Ruiz  <ruiz@adacore.com>
13032
13033         * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
13034         VxWorks task descriptor in the Ada run time, call a C subprogram
13035         (__gnat_get_stack_info) that extracts the required information.
13036
13037         * sysdep.c: Back out temporary lynxos workaround.
13038         (__gnat_get_stack_info): Add this procedure that passes to the Ada run
13039         time the stack information associated to the currently executing task.
13040         Only VxWorks systems require this function.
13041
13042 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
13043
13044         * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
13045         add the stack bias if the offset is computed from a frame address.
13046         (__gnat_backtrace): Adjust for above change.
13047
13048 2007-06-06  Thomas Quinot  <quinot@adacore.com>
13049
13050         * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
13051         PE_Non_Transportable_Actual.
13052         (By_Descriptor_Last): New constant.
13053         (By_Copy_Return): Likewise.
13054
13055 2007-06-06  Vincent Celier  <celier@adacore.com>
13056
13057         * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
13058         is.
13059
13060         * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
13061         /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
13062         /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
13063         Add missing comment for /OPTIMIZE=SPACE
13064         Add entry for OPTIMIZE=SPACE
13065         Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
13066         Add documentation for new qualifiers corresponding to -gnatw.c/.C
13067
13068 2007-06-06  Vincent Celier  <celier@adacore.com>
13069             Robert Dewar  <dewar@adacore.com>
13070
13071         * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
13072         -gnatw.C)
13073
13074         * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
13075         Document gnatbind switch -a
13076         (case Constructions): Document that variables declarations are allowed
13077         for previously declared variables.
13078         Fix external lib project example
13079         -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
13080         Indicate that "#if not X or Y then" is not allowed in input files to
13081         gnatprep.
13082         Document gnatw.x and gnatw.X warning flags
13083         Mention -Winline switch to activate warnings when back-end inlining is
13084         ineffective.
13085         Add gnatcheck rule descriptions
13086         Describe how to use the GNAT driver to call a tool on a closure.
13087         Describe how to run project-wide checks or metrics.
13088         Document gnatbind's -R option
13089         Updated to account for Ada 2005 support
13090
13091         * gnat_rm.texi (Case Construction): Allow variable declarations for
13092         previously declared variables.
13093         (Representation Clauses and Pragmas): Lift restriction on alignment
13094         clauses for record types.
13095         (Ada.Characters.*): Fix typo in reference to A.3.3(27).
13096         Document No_Exception_Propagation restriction
13097         Document No_Body pragma
13098         Updated to account for Ada 2005 support; corrected some typos
13099         (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
13100
13101         * gnat-style.texi: Make it clear that we never use mode IN for
13102         procedures or functions
13103
13104         * ug_words: Add entries for -gnatw.x and -gnatw.X
13105         Add entries for -gnatw.c/.C
13106
13107 2007-06-06  Pascal Obry  <obry@adacore.com>
13108             Vincent Celier  <celier@adacore.com>
13109
13110         * makegpr.adb (Add_Archive_Path): Use untouched object and library
13111         dirs and library name.
13112         (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
13113         comments.
13114         (Build_Library): Idem.
13115         (Compile_Individual_Sources): Idem.
13116         (Compile_Link_With_Gnatmake): Idem.
13117         (Compile_Sources): Idem.
13118         (Get_Imported_Directories): Idem.
13119         (Link_Executables): Idem. Same change for the executable dir.
13120         (Check_Compilation_Needed): C_Source_Path new variable containing
13121         the canonical form of Source_Path to check against the source names
13122         in the dependency file.
13123         (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
13124         verbose mode, display the name of the object directory we're changing
13125         to.
13126         (Saved_Switches): New name of table X_Switches
13127         (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
13128         (Usage): New line for switch -aP
13129         (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
13130         testing if a directory should be added to the search path.
13131
13132 2007-06-06  Javier Miranda  <miranda@adacore.com>
13133
13134         * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads, 
13135         a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
13136         declaration after freezing point of all its associated tagged types;
13137         otherwise such types are frozen too early.
13138
13139 2007-06-06  Robert Dewar  <dewar@adacore.com>
13140
13141         * a-reatim.adb: Documentation addition
13142
13143         * g-cgideb.adb: Minor code reorganization
13144
13145         * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
13146         mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
13147         s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
13148
13149         * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
13150         function.  Change name New_Scope to Push_Scope
13151         (Get_Debug_Flag_K): Remove unused obsolete function.
13152
13153         * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
13154         Push_Scope.
13155
13156         * makeusg.adb: Update Copyright notice
13157         Add line for switch -aP
13158
13159         * makeusg.adb: Fix wording of some usage messages
13160
13161         * s-assert.adb (Raise_Assert_Failure): Add call to
13162         Debug_Raise_Assert_Failure.
13163
13164         * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
13165         (2, Standard'Alignment) for compatibility with AAMP (where alignment
13166         is restricted to 1).
13167
13168         * s-wchjis.adb: Remove use of System.Pure_Exceptions
13169
13170         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
13171         node location to No_Location when we're not debugging the expanded
13172         code.
13173
13174 2007-05-22  Alexandre Oliva  <aoliva@redhat.com>
13175
13176         * misc.c (enumerate_modes): Consider log2_b to always be one.
13177
13178 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
13179
13180         * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
13181
13182 2007-05-02  Pascal Obry  <obry@adacore.com>
13183
13184         * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
13185         to use Stream_IO.File_Type. This is needed to make use of the UTF-8
13186         encoding support of Stream_IO.
13187         (Write_Unit): Idem.
13188
13189         * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
13190         filename and corresponding encoding to match the OS requirement.
13191         (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
13192         routine will fail on specific devices like CON: AUX: ...
13193
13194         PR ada/29856: Add missing braces
13195
13196 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13197
13198         PR ada/31660
13199         * ada-tree.h (lang_tree_node): Fix typo in chain_next.
13200
13201 2007-04-21  Jan Hubicka  <jh@suse.cz>
13202
13203         * misc.c (gnat_expand_body): Don't call target for destructors,
13204         avoid redundant check on syntax errors.
13205
13206 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13207
13208         * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
13209         instead of checking GIMPLE_STMT_P in chain_next.
13210
13211 2007-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
13212
13213         PR ada/31576
13214         * system-linux-alpha.ads: Disable constant condition warning for the
13215         Default_Bit_Order variable.
13216         * system-linux-s390.ads: Likewise.
13217         * system-linux-s390x.ads: Likewise.
13218         * system-linux-sparc.ads: Likewise.
13219
13220 2007-04-06  Javier Miranda  <miranda@adacore.com>
13221             Matt Heaney  <heaney@adacore.com>
13222             Robert Dewar  <dewar@adacore.com>
13223
13224         a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
13225         a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
13226         a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
13227         a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
13228         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
13229         a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
13230         a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
13231         a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
13232         a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
13233         a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
13234         a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
13235         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
13236         a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
13237         a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
13238         a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
13239         a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
13240         a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
13241         i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
13242         unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
13243         a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
13244         a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
13245         a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
13246         expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
13247         s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
13248         s-taprop-tru64.adb, s-taprop-irix.adb,
13249         s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
13250         s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
13251         s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
13252         s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb, 
13253         s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads, 
13254         a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb, 
13255         a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads, 
13256         g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads, 
13257         s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb, 
13258         s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads, 
13259         s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb, 
13260         s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, 
13261         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb, 
13262         s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb, 
13263         a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads, 
13264         a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads, 
13265         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb, 
13266         a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
13267         a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads, 
13268         a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
13269         access types.
13270         Update documentation.
13271         Minor rewording.
13272
13273 2007-04-06  Robert Dewar  <dewar@adacore.com>
13274
13275         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
13276         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
13277         system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
13278         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
13279         system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
13280         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
13281         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
13282         system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
13283         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
13284         system-hpux-ia64.ads, targparm.adb,
13285         targparm.ads (Functions_Return_By_DSP_On_Target): Removed
13286
13287         * system.ads: Move Functions_Return_By_DSP to obsolete section,
13288         kept for bootstrap purposes only.
13289
13290 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
13291
13292         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
13293         s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
13294         s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
13295         (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
13296
13297 2007-04-06  Robert Dewar  <dewar@adacore.com>
13298
13299         * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
13300         (Local_Raise): New dummy procedure called when a raise is converted
13301         to a local goto. Used for debugger to detect that the exception
13302         is raised.
13303
13304         * debug.adb: Document new d.g flag (expand local raise statements to
13305         gotos even if pragma Restriction (No_Exception_Propagation) is not set)
13306
13307         * exp_sel.adb: Use Make_Implicit_Exception_Handler
13308
13309         * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
13310         suppress warnings for unused handlers.
13311         (Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
13312         warnings for raise statements not handled locally.
13313         (Get_RT_Exception_Entity): New function
13314         (Get_Local_Call_Entity): New function
13315         (Find_Local_Handler): New function
13316         (Warn_If_No_Propagation): New procedure
13317         (Expand_At_End_Handler): Call Make_Implicit_Handler
13318         (Expand_Exception_Handlers): Major additions to deal with local handlers
13319         (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
13320         Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
13321         for local raise
13322
13323         * exp_ch11.ads (Get_RT_Exception_Entity): New function
13324         (Get_Local_Call_Entity): New function
13325
13326         * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
13327         of restrictions that the binder will never suggest adding.
13328
13329         * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
13330         to No_Elist.
13331
13332         * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
13333         be with'ed in the presence of pragma Restriction
13334         (No_Exception_Propagation).
13335
13336         * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
13337
13338         * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
13339         parameter, then the handler is not a suitable target for a local raise,
13340         and this is a violation of restriction No_Exception_Propagation.
13341         (Analyze_Handled_Statements): Analyze choice parameters in exception
13342         handlers before analyzing statement sequence (needed for proper
13343         detection of local raise statements).
13344         (Analyze_Raise_Statement): Reraise statement is a violation of the
13345         No_Exception_Propagation restriction.
13346
13347         * s-rident.ads: Add new restriction No_Exception_Propagation
13348
13349         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
13350         function, like Make_Exception_Handler but sets Local_Raise_Statements
13351         to No_List.
13352         (Add_Unique_Serial_Number): Deal with case where this is called during
13353         processing of configuration pragmas.
13354
13355 2007-04-06  Thomas Quinot  <quinot@adacore.com>
13356             Pat Rogers  <rogers@adacore.com>
13357             Pascal Obry  <obry@adacore.com>
13358
13359         * g-stsifd-sockets.adb: New file.
13360
13361         * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
13362         g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
13363         g-socthi-vms.adb: Move signalling
13364         fd management to a nested package, so that they can conveniently be
13365         moved to a subunit that is shared across Windows, VMS, and VxWorks
13366         (Ada implementation) or completed with imported bodies from socket.c
13367         (UNIX case).
13368         (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
13369         subprograms.
13370         (Check_Selector): Use Read_Signalling_Fd to read and discard data from
13371         the signalling file descriptor.
13372         (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
13373         signalling file descriptor.
13374         (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
13375         instead of creating a pair of sockets for signalling here.
13376
13377         * g-socthi.adb: Ditto.
13378         Set the runtime process to ignore SIGPIPEs on platforms that support
13379         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
13380
13381         * g-socthi-mingw.adb: Ditto.
13382         (WS_Version): Use Windows 2.2.
13383         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
13384
13385         * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
13386         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
13387
13388         * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
13389         added GNAT byte swapping facility
13390         Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
13391
13392         * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
13393
13394         * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
13395         New subprograms.
13396         (__gnat_create_signalling_fds): New subprogram.
13397         Set the runtime process to ignore SIGPIPEs on platforms that support
13398         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
13399
13400 2007-04-06  Hristian Kirtchev  <kirtchev@adacore.com>
13401             Vincent Celier  <celier@adacore.com>
13402
13403         * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
13404         New version of Ada.Calendar which supports the new upper bound of Ada
13405         time (2399-12-31 86_399.999999999).
13406         The following modifications have been made to the package:
13407          - New representation of time as count of nanoseconds since the start of
13408            Ada time (1901-1-1 0.0).
13409          - Target independent Split and Time_Of routines which service both
13410            Ada 95 and Ada 2005 code.
13411          - Target independent interface to the Ada 2005 children of Calendar.
13412          - Integrated leap seconds into Ada 95 and Ada 2005 mode.
13413          - Handling of non-leap centenial years.
13414          - Updated clock function.
13415          - Updated arithmetic and comparison operators.
13416
13417         * a-caldel.adb (To_Duration): Add call to target independent routine in
13418         Ada.Calendar to handle the conversion of time to duration.
13419
13420         * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
13421         (UTC Offset).
13422         If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
13423         set off to 0.
13424         (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
13425         targets do not have a natural time zone, GMT is used as a default.
13426         (__gnat_get_task_options): New.
13427
13428         * a-direct.adb (Modification_Time): Add with and use clauses for
13429         Ada.Calendar and Ada.
13430         Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
13431         since it is no longer needed.
13432         (Duration_To_Time): Removed.
13433         (OS_Time_To_Long_Integer): Removed.
13434         (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
13435         Formatting Time_Of routines which automatically handle time zones,
13436         buffer periods and leap seconds.
13437
13438         * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
13439         target independent routines in Ada.Calendar.
13440
13441         * a-calfor.ads, a-calfor.adb: 
13442         Code cleanup and addition of validity checks in various routines.
13443         (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
13444         Ada.Calendar.
13445
13446         * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
13447         independent routine in Ada.Calendar.
13448
13449 2007-04-06  Olivier Hainque  <hainque@adacore.com>
13450
13451         * adaint.c: 
13452         (convert_addresses): Adjust prototype and dummy definition to expect an
13453          extra file_name argument.
13454
13455         * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
13456         filling the now expected file_name argument with the appropriate
13457         argv[0] expansion.
13458         (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
13459         (tracebk): Array of void * instead of char *, corresponding to what
13460          convert_addresses expects.
13461         (exename): New static global, to hold the executable file name to be
13462         used in all convert_addresses invocations.
13463         (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
13464         change.
13465         (__gnat_gmem_a2l_initialize): Resolve exename.
13466         (__gnat_convert_addresses): Use exename as the convert_addresses
13467         file_name argument.
13468
13469         * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
13470         "convert_addresses", now expecting a filename argument. Import the
13471         necessary entities to compute the filename to use and pass it to
13472         convert_addresses.
13473
13474 2007-04-06  Matt Gingell  <gingell@adacore.com>
13475
13476         * system-aix.ads: Back out previous change.
13477         (Functions_Return_By_DSP): Removed
13478
13479 2007-04-06  Pascal Obry  <obry@adacore.com>
13480
13481         * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
13482         or the monotonic used by Ada.Real_Time) to compute the sleep duration
13483         on Windows.
13484
13485 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
13486
13487         * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
13488         function. Its value changes in different VxWorks versions, and it is
13489         now handled by the function __gnat_get_task_options.
13490
13491         * s-taprop-vxworks.adb (Create_Task): Call the function
13492         __gnat_get_task_options to get the required options for creating a task.
13493
13494 2007-04-06  Pascal Obry  <obry@adacore.com>
13495             Thomas Quinot  <quinot@adacore.com>
13496
13497         * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
13498         dealing with filename.
13499         (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
13500         filename from a standard string to a wide-string depending on the
13501         encoding value.
13502         (__gnat_freopen): Idem.
13503         (__gnat_current_time): New function (wrapper for time(3) standard C
13504         function).
13505
13506         * g-os_lib.ads (Current_Time): New function. Returns the current
13507         system time as an OS_Time value.
13508
13509         * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
13510         (Monotonic_Clock): Same.
13511
13512 2007-04-06  Quentin Ochem  <ochem@adacore.com>
13513
13514         * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
13515         not on a natural.
13516         (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
13517
13518 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
13519
13520         * a-retide.adb: Add elaboration code to ensure that the tasking run
13521         time is initialized when using delay operations even when no task is
13522         created.
13523
13524 2007-04-06  Javier Miranda  <miranda@adacore.com>
13525
13526         * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
13527         component Num_Prim_Ops.
13528         (Set_Num_Prim_Ops): Removed.
13529         Remove all the assertions because all the routines of this
13530         package are inline always.
13531         (Get_Offset_Index): Add support to primary dispatch tables.
13532         Move the documentation about the dispatch table to a-tags.ads
13533         (Set_External_Tag): Removed
13534         (Inherit_TSD): Removed.
13535         (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
13536         moved to a-tags.ads
13537         (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
13538         Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
13539         of the TSD field "Table" because this field has been renamed to
13540         "Ifaces_Table".
13541         (Inherit_CPP_DT): Removed.
13542         (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
13543         Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
13544         declarations have been moved to a-tags.ads
13545         (Check_Size): Removed.
13546         (Expanded_Name): Updated to get access to the new field of TSD
13547         containing the address of the expanded name.
13548         (Get_Access_Level/Set_Access_Level): Removed.
13549         (Get_Predefined_Prim_Op_Address): Removed.
13550         (Set_Predefined_Prim_Op_Address): Removed.
13551         (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
13552         (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
13553         (Set_Expanded_Name): Removed.
13554         (Inherit_DT): Removed.
13555         (Inherit_CPP_DT): Removed.
13556         (Set_RC_Offset): Removed.
13557         (Set_TSD): Removed.
13558         (Base_Address): New function that displaces "this" to point to the base
13559         of the object (that is, to point to the primary tag of the object).
13560
13561 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13562             Javier Miranda  <miranda@adacore.com>
13563
13564         * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
13565         anonymous access component, do not create a master_id if type already
13566         has one, as may happen if the type is a subcomponent of a packed array
13567         type.
13568         (Build_Init_Procedure, Component_Needs_Simple_Initialization,
13569         Initialize_Tag): Remove code associated with the old CPP pragmas.
13570         CPP_Virtual and CPP_Vtable are no longer supported.
13571         (Build_Offset_To_Top_Internal): Add support for concurrent record types
13572         (Build_Offset_To_Top_Functions): Add support for concurrent record types
13573         (Freeze_Record_Type): Remove call to
13574         Init_Predefined_Interface_Primitives.
13575         (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
13576         code required to initialize the tags of the secondary dispatch tables.
13577         This leaves the algoritm more clear.
13578         (Init_Secondary_Tags): Add support for concurrent record types
13579         (Make_Predefined_Primitive_Specs): Code cleanup.
13580         (Predefined_Primitive_Bodies): Code cleanup.
13581         (Build_Master_Renaming): New local subprogram.
13582         (Expand_N_Full_Type_Declaration): Build the master_id associated with
13583         anonymous access to task type components.
13584         (Expand_N_Subtype_Indication): The bounds of a range constraint in a
13585         subtype indication are resolved during analysis, and must not be done
13586         here.
13587         (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
13588
13589 2007-04-06  Geert Bosch  <bosch@adacore.com>
13590             Ed Schonberg  <schonberg@adacore.com>
13591             Javier Miranda  <miranda@adacore.com>
13592             Bob Duff  <duff@adacore.com>
13593
13594         * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
13595         for conversion of a Float_Type'Truncation to integer.
13596
13597         * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
13598         check if a node is an attribute that can be handled directly by the
13599         back end.
13600         (Expand_N_Attribute_Reference): Suppress expansion of floating-point
13601         attributes that can be handled directly by the back end.
13602         (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
13603         use new predicate Is_Access_Protected_Subprogram_Type.
13604         (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
13605         and Unchecked_Union if it is generated as part of the default  Output
13606         procedure for a type with default discriminants.
13607         (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
13608         if we are compiling under restriction No_Dispatching_Calls.
13609         (Constrained): Use Underlying_Type, in case the type is private without
13610         discriminants, but the full type has discriminants.
13611         (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
13612         call to Build_Get_Access_Level.
13613         (Expand_N_Attribute_Reference): The use of 'Address with class-wide
13614         interface objects requires a call to the run-time subprogram that
13615         returns the base address of the object.
13616         (Valid_Conversion): Improve error message on illegal attempt to store
13617         an anonymous access to subprogram value into a record component.
13618
13619         * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
13620         null".
13621         (Simplify_Type_Conversion): New procedure that performs simplification
13622         of Int_Type (Float_Type'Truncation (X)).
13623         (Resolve_Type_Conversion): Call above procedure after resolving operand
13624         and before performing checks. This replaces the existing ineffective
13625         code in Exp_Ch4.
13626         (Set_String_Literal_Subtype): When creating the internal static lower
13627         bound subtype for a string literal, use a newly created copy of the
13628         subtree representing the lower bound.
13629         (Resolve_Call): Exclude build-in-place function calls from transient
13630         scope treatment. Update comments to describe this exception.
13631         (Resolve_Equality_Op): In case of dispatching call check violation of
13632         restriction No_Dispatching_Calls.
13633         (Resolve_Call): If the call returns an array, the context imposes the
13634         component type of the array, and the function has one non-defaulted
13635         parameter, rewrite the call as the indexing of a call with a single
13636         parameter, to handle an Ada 2005 syntactic ambiguity for calls written
13637         in prefix form.
13638         (Resolve_Actuals): If an actual is an allocator for an access parameter,
13639         the master of the created object is the innermost enclosing statement.
13640         (Remove_Conversions): For a binary operator, check if type of second
13641         formal is numeric, to check if an abstract interpretation is present
13642         in the case of exponentiation as well.
13643
13644 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13645             Bob Duff  <duff@adacore.com>
13646
13647         * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
13648         copying a parameter list in a call, set properly the First_Named_Formal
13649         and Next_Named_Formal fields in the new list and in the enclosing call.
13650         (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
13651         names, to ease typing in the debugger. Improve comments.
13652         (Watch_Node): New variable, intended to be set in the debugger.
13653         (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
13654         called when the watched node is created.
13655         (New_Node_Debugging_Output): Combined version of local procedures
13656         New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
13657         with a parameter so that conditional breakpoints like "if Node = 12345"
13658         work.
13659         (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
13660         Add Elist1 function
13661
13662 2007-04-06  Thomas Quinot  <quinot@adacore.com>
13663             Ed Schonberg  <schonberg@adacore.com>
13664             Gary Dismukes  <dismukes@adacore.com>
13665
13666         * checks.ads, checks.adb (Selected_Range_Checks): No range check is
13667         required for a conversion between two access-to-unconstrained-array
13668         types.
13669         (Expr_Known_Valid): Validity checks do not apply to discriminants, but
13670         to discriminant constraints on discriminant objects. This rule must
13671         apply as well to discriminants of protected types in private components.
13672         (Null_Exclusion_Static_Checks): If No_Initialization is set on an
13673         object of a null-excluding access type then don't require the
13674         the object declaration to have an expression and don't emit a
13675         run-time check.
13676
13677 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
13678             Eric Botcazou  <botcazou@adacore.com>
13679
13680         * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
13681         and made constant.
13682
13683         * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
13684         Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
13685         carry any.
13686
13687         * fe.h (Compiler_Abort): Add third parameter.
13688
13689         * misc.c (internal_error_function): Build third argument from current
13690         input location and pass it to Compiler_Abort.
13691
13692 2007-04-06  Gary Dismukes  <dismukes@adacore.com>
13693
13694         * cstand.adb (Create_Standard): When the target's storage unit size is
13695         greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
13696         Standard_String.
13697
13698 2007-04-06  Nicolas Roche  <roche@adacore.com>
13699
13700         * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
13701         absolute path can have the following form: device:/a/b. In this case
13702         '/' should be inserted between the path and the filename.
13703
13704 2007-04-06  Olivier Hainque  <hainque@adacore.com>
13705             Eric Botcazou  <botcazou@adacore.com>
13706
13707         * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
13708         VAR_DECL to a CONST_DECL we make for a public constant when we know the
13709         corresponding definition has created the so made visible variable.
13710         Handle anonymous access to protected subprogram.
13711         (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
13712         object with an address clause volatile.  Re-enable original fix.
13713         <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
13714         too.
13715         (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
13716         associated with either the Equivalent or Root type, instead of the
13717         naked type node.
13718         (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
13719         subtree for every field of a global record type.
13720         (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
13721         discriminants, invoke again variable_size on its newly computed sizes.
13722
13723 2007-04-06  Robert Dewar  <dewar@adacore.com>
13724             Thomas Quinot  <quinot@adacore.com>
13725             Ed Schonberg  <schonberg@adacore.com>
13726             Bob Duff  <duff@adacore.com>
13727
13728         * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
13729         (Next_Component_Or_Discriminant): New function and procedure
13730         (First_Index, First_Literal, Master_Id,
13731         Set_First_Index, Set_First_Literal, Set_Master_Id):
13732         Add missing Ekind assertions.
13733         (Is_Access_Protected_Subprogram_Type): New predicate.
13734         (Has_RACW): New entity flag, set on package entities to indicate that
13735         the package contains the declaration of a remote accecss-to-classwide
13736         type.
13737         (E_Return_Statement): This node type has the Finalization_Chain_Entity
13738         attribute, in case the result type has controlled parts.
13739         (Requires_Overriding): Add this new flag, because "requires
13740         overriding" is subtly different from "is abstract" (see AI-228).
13741         (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
13742         Is_Abstract_Type. Make sure these are called only when appropriate.
13743         (Has_Pragma_Unreferenced_Objects): New flag
13744
13745         * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
13746         class-wide, the tag of the right-hand side must be an exact match, not
13747         an ancestor of that of the object on left-hand side.
13748         (Move_Activation_Chain): New procedure to create the call to
13749         System.Tasking.Stages.Move_Activation_Chain.
13750         (Expand_N_Extended_Return_Statement): Generate code to call
13751         System.Finalization_Implementation.Move_Final_List at the end of a
13752         return statement if the function's result type has controlled parts.
13753         Move asserts to Build_In_Place_Formal.
13754         (Move_Final_List): New function to create the call statement.
13755         (Expand_N_Assignment_Statement): In case of assignment to a class-wide
13756         tagged type, replace generation of call to the run-time subprogram
13757         CW_Membership by call to Build_CW_Membership.
13758         (Expand_N_Return_Statement): Replace generation of call to the run-time
13759         subprogram Get_Access_Level by call to Build_Get_Access_Level.
13760         (Expand_N_Simple_Function_Return): Replace generation of call to the
13761         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
13762
13763         * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
13764         Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
13765         access to protected operations.
13766         (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
13767         master and chain actual parameters to a build-in-place function call
13768         involving tasks.
13769         (BIP_Formal_Suffix): Add new enumeration literals to complete the case
13770         statement.
13771         (Make_Build_In_Place_Call_In_Allocator,
13772         Make_Build_In_Place_Call_In_Anonymous_Context,
13773         Make_Build_In_Place_Call_In_Assignment,
13774         Make_Build_In_Place_Call_In_Object_Declaration): Call
13775         Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
13776         (Expand_Inlined_Call): If the subprogram is a null procedure, or a
13777         stubbed procedure with a null body, replace the call with a null
13778         statement without using the full inlining machinery, for efficiency
13779         and to avoid invalid values in source file table entries.
13780
13781         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
13782         renamings of calls to build-in-place functions.
13783
13784         * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
13785         provides the functionality of RTE_Available to record components.
13786         (RTU_Entity): The function Entity has been renamed to RTU_Entity
13787         to avoid undesired overloading.
13788         (Entity): New subprogram that returns the entity for the referened
13789         unit. If this unit has not been loaded, it returns Empty.
13790         (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
13791         Remove no longer used entities.
13792         (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
13793         (RE_Type_Specific_Data): New entity.
13794         (RE_Move_Any_Value): New entity.
13795         (RE_TA_A, RE_Get_Any_Type): New entities.
13796         (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
13797          RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
13798          RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
13799         (Entity): New subprogram that returns the entity for the referened
13800         unit. If this unit has not been loaded, it returns Empty.
13801         (RTE): Addition of a new formal that extends the search to the scopes
13802         of the record types found in the chain of the package.
13803
13804         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
13805         "abstract subprograms must be visible" message, whether or not the type
13806         is an interface; that is, remove the special case for interface types.
13807         (Analyze_Function_Return): Remove error message "return of task objects
13808         is not yet implemented" because this is now implemented.
13809         (Create_Extra_Formals): Add the extra master and activation chain
13810         formals in case the result type has tasks.
13811         Remove error message "return of limited controlled objects is not yet
13812         implemented".
13813         (Create_Extra_Formals): Add the extra caller's finalization list formal
13814         in case the result type has controlled parts.
13815         (Process_Formals): In case of access formal types there is no need
13816         to continue with the analysis of the formals if we already notified
13817         errors.
13818         (Check_Overriding_Indicator): Add code to check overriding of predefined
13819         operators.
13820         (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
13821         flags for formals that do not require them,.
13822         (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
13823         hidden entity is use visible or directly visible.
13824         (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
13825         Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
13826         Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
13827         New_Overloaded_Entity): Split Is_Abstract flag into
13828         Is_Abstract_Subprogram and Is_Abstract_Type.
13829
13830         * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
13831         a return statement's finalization list to the caller's list, used for
13832         build-in-place functions with result type with controlled parts.
13833         Remove no longer used entities.
13834
13835         * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
13836         longer needed, because the full type is now limited, and therefore a
13837         pass-by-reference type.
13838         (Foreign_Task_Level): New constant.
13839
13840         * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
13841         move tasks from the activation chain belonging to a return statement to
13842         the one passed in by the caller, and update the master to the one
13843         passed in by the caller.
13844         (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
13845         of unactivated tasks, so we don't kill the ones that are being returned
13846         by a build-in-place function.
13847         (Create_Task): Ignore AI-280 for foreign threads.
13848
13849 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13850             Robert Dewar  <dewar@adacore.com>
13851             Bob Duff  <duff@adacore.com>
13852             Gary Dismukes  <dismukes@adacore.com>
13853
13854         * errout.adb (Unwind_Internal_Type): Use predicate
13855         Is_Access__Protected_Subprogram_Type.
13856
13857         * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
13858         (Freeze_Entity, packed array case): Do not override explicitly set
13859         alignment and size clauses.
13860         (Freeze_Entity):  An entity declared in an outer scope can be frozen if
13861         the enclosing subprogram is a child unit body that acts as a spec.
13862         (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
13863         (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
13864         Remove all code for DSP option
13865
13866         * layout.adb (Layout_Record_Type): Use First/
13867         Next_Component_Or_Discriminant
13868         (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
13869         to handle properly the anonymous access case.
13870
13871         * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
13872         for all access attributes, because overload resolution should work the
13873         same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
13874         causes the error message for the ambiguous "X'Access = Y'Access" and
13875         "X'Unrestricted_Access = Y'Access" and so forth to match.
13876         (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
13877         now that anonymous access to protected operations have their own kind.
13878         (Resolve_Attribute): In case of dispatching call check the violation of
13879         restriction No_Dispatching_Calls.
13880         (Check_Array_Type): Check new -gnatyA array index style option
13881
13882         * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
13883         attempt to derive from a synchronized tagged type.
13884         (Analyze_Type_Declaration): If there is a incomplete tagged view of the
13885         type, inherit the class-wide type already created, because it may
13886         already have been used in a self-referential anonymous access component.
13887         (Mentions_T): Recognize self-referential anonymous access components
13888         that use (a subtype of) the class-wide type of the enclosing type.
13889         (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
13890         Derived_Type for Prev formal on call to
13891         Check_Anonymous_Access_Components rather than Empty.
13892         (Make_Incomplete_Type_Declaration): Add test for case where the type has
13893         a record extension in deciding whether to create a class-wide type,
13894         rather than just checking Tagged_Present.
13895         (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
13896         to stand-alone object declarations as well as component declarations.
13897         (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
13898         prevent accidental overwriting when enclosing package appears in
13899         a limited_with_clause.
13900         (Array_Type_Declaration): If the component type is an anonymous access,
13901         the associated_node for the itype is the type declaration itself.
13902         (Add_Interface_Tag_Components): Modified to support concurrent
13903         types with abstract interfaces.
13904         (Check_Abstract_Interfaces): New subprogram that verifies the ARM
13905         rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
13906         (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
13907         to complete the decoration of synchronized interface types. Add also
13908         a call to Check_Abstract_Interfaces to verify the ARM rules.
13909         (Derive_Interface_Subprograms): Modified to support concurrent types
13910         with abstract interfaces.
13911         (Analyze_Subtype_Indication): Resolve the range with the given subtype
13912         mark, rather than delaying the full resolution depending on context.
13913         (Analyze_Component_Declaration,Analyze_Interface_Declaration,
13914         Analyze_Object_Declaration,Analyze_Subtype_Declaration,
13915         Array_Type_Declaration,Build_Derived_Record_Type,
13916         Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
13917         Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
13918         Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
13919         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
13920         called only when appropriate.
13921         (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
13922         to private type.
13923         (Analyze_Subtype_Declaration): For an access subtype declaration, create
13924         an itype reference for the anonymous designated subtype, to prevent
13925         scope anonmalies in gigi.
13926         (Build_Itype_Reference): New utility, to simplify construction of such
13927         references.
13928
13929 2007-04-06  Vincent Celier  <celier@adacore.com>
13930
13931         * errutil.adb (Initialize): Initialize warnings table, if all warnings
13932         are suppressed, supply an initial dummy entry covering all possible
13933         source locations.
13934
13935         * make.adb (Scan_Make_Arg): Reject options that should start with "--"
13936         and start with only one, such as "-RTS=none".
13937         (Collect_Arguments): Do not check for sources outside of projects.
13938         Do not collect arguments if project is externally built.
13939         (Compile_Sources): Do nothing, not even check if the source is up to
13940         date, if its project is externally built.
13941         (Compile): When compiling a predefined source, add -gnatpg
13942         as the second switch, after -c.
13943         (Compile_Sources): Allow compilation of Annex J renames without -a
13944         (Is_In_Object_Directory): Check if the ALI file is in the object
13945         even if there is no project extension.
13946         (Create_Binder_Mapping_File): Only put a unit in the mapping file for
13947         gnatbind if the ALI file effectively exists.
13948         (Initialize): Add the directory where gnatmake is invoked in front of
13949         the path if it is invoked from a bin directory, even without directory
13950         information, so that the correct GNAT tools will be used when spawned
13951         without directory information.
13952
13953         * makeusg.adb: Change switch -S to -eS
13954         Add lines for new switches -we, -wn and -ws
13955         Add line for new switch -p
13956
13957         * prj-proc.adb (Process): Set Success to False when Warning_Mode is
13958         Treat_As_Error and there are warnings.
13959
13960         * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
13961         -gnatww Change gnatmake switch -S to -eS
13962         (Scan_Make_Switches): Code reorganisation. Process separately multi
13963         character switches and single character switches.
13964         (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
13965         False when switch is not recognized by gnatmake.
13966         (Scan_Make_Switches): Set Setup_Projects True when -p or
13967         --create-missing-dirs is specified.
13968
13969         * fname.adb (Is_Predefined_File_Name): Return True for annex J
13970         renamings Calendar, Machine_Code, Unchecked_Conversion and
13971         Unchecked_Deallocation only when Renamings_Included is True.
13972
13973         * par.adb: Allow library units Calendar, Machine_Code,
13974         Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
13975         when -gnatg is not specified.
13976         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
13977         there is no need to generate always a record_definition_node in case
13978         of synchronized interface types.
13979         (SIS_Entry_Active): Initialize global variable to False
13980         (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
13981         indicate cases where AI-447 says "not null" is legal.
13982
13983         * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
13984
13985         * makegpr.adb (Check_Compilation_Needed): Take into account dependency
13986         files with with several lines starting with the object fileb name.
13987         (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
13988         is specified.
13989         (Initialize): Add the directory where gprmake is invoked in front of the
13990         path, if it is invoked from a bin directory or with directory
13991         information, so that the correct GNAT tools will be used when invoked
13992         directly.
13993         (Check_Compilation_Needed): Process correctly backslashes on Windows.
13994
13995         * vms_data.ads: Update switches/qualifiers
13996
13997 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
13998             Thomas Quinot  <quinot@adacore.com>
13999
14000         * exp_aggr.adb:
14001         If the array component is a discriminated record, the array aggregate
14002         is non-static even if the component is given by an aggregate with
14003         static components.
14004         (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
14005         (Convert_Aggr_In_Allocator): If the allocator is for an access
14006         discriminant and the type is controlled. do not place on a finalization
14007         list at this point. The proper list will be determined from the
14008         enclosing object.
14009         (Build_Record_Aggr_Code): If aggregate has box-initialized components,
14010         initialize record controller if needed, before the components, to ensure
14011         that they are properly finalized.
14012         (Build_Record_Aggr_Code): For the case of an array component that has a
14013         corresponding array aggregate in the record aggregate, perform sliding
14014         if required.
14015
14016 2007-04-06  Javier Miranda  <miranda@adacore.com>
14017             Gary Dismukes  <dismukes@adacore.com>
14018             Ed Schonberg  <schonberg@adacore.com>
14019
14020         * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
14021         run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
14022
14023         * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
14024         accessibility on class-wide allocators if the allocator occurs at the
14025         same scope level as the allocator's type. The check is guaranteed to
14026         succeed in that case, even when the expression originates from a
14027         parameter of the containing subprogram.
14028         (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
14029         under No_Dispatching_Calls restriction. During the semantic analysis
14030         we already notified such violation.
14031         (Tagged_Membership): Constant folding. There is no need to check
14032         the tag at run-time if the type of the right operand is non
14033         class-wide abstract.
14034         Replace call to Is_Ancestor by call to Is_Parent
14035         to support concurrent types with interface types.
14036         (Expand_N_Allocator): Add an assertion associated with the generation
14037         of the master_id.
14038         (Expand_N_Slice): Do not enable range check to nodes associated
14039         with the frontend expansion of the dispatch table.
14040         (Is_Local_Access_Discriminant): Subsidiary function to
14041         Expand_N_Allocator.
14042         (Tagged_Membership): Replace generation of call to the run-time
14043         subprogram CW_Membership by call to Build_CW_Membership.
14044         (Expand_Allocator_Expression): Replace generation of call to the
14045         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
14046
14047         * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
14048         initialize most the TSD components by means of an aggregate.
14049         Modify the declaration of the object containing the TSD
14050         because we now expand code that has a higher level of abstraction.
14051         The TSD has a discriminant containing the Inheritance Depth Level,
14052         value that is used in the membership test but also to fix the size
14053         of the table of ancestors.
14054         (Expand_Interface_Conversion): Insert function body at the closest place
14055         to the conversion expression, to prevent access-before-elaboration
14056         errors in the backend.
14057         Code improved to reduce the size of the dispatch table if
14058         compiling under restriction No_Dispatching_Calls plus code cleanup.
14059         Code reorganization plus removal of calls to Set_Num_Prim_Ops
14060         (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
14061         (Expand_Dispatching_Call): Minor code reorganization plus addition of
14062         code to return immediately if compiling under No_Dispatching_Calls
14063         restriction.
14064         (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
14065         CPP_Virtual and CPP_Vtable are no longer supported.
14066         (Expand_Interface_Conversion): Add missing support for interface type
14067         derivations.
14068         (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
14069         Is_Parent to support concurrent types with interfaces.
14070         (Init_Predefined_Interface_Primitives): Removed.
14071         (Make_Secondary_DT): Modified to support concurrent record types.
14072         (Set_All_DT_Position): Modified to support concurrent record types.
14073         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
14074         with Get_External_Tag, Inherit_TSD, Set_External_Tag.
14075         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
14076         with CW_Membership.
14077         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
14078         with Get_Access_Level, Get_Predefined_Prim_Op_Address,
14079         Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
14080         Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
14081         Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
14082         (Expand_Dispatching_Call): Replace generation of call to the run-time
14083         subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
14084         calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
14085         Address.
14086         (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
14087         the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
14088         Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
14089         Build_Set_Prim_Op_Address.
14090         (Get_Remotely_Callable): Subprogram removed.
14091         (Init_Predefined_Interface_Primitives): Replace generation of call to
14092         the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
14093         Prims.
14094
14095         * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
14096         First (Parameter_Associations ()) with the call to First_Actual that
14097         returns an actual parameter expression for both named and positional
14098         associations.
14099
14100         * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
14101         check violation of restriction No_Dispatching_Calls.
14102         (Check_Controlling_Type): A formal of a tagged incomplete type is a
14103         controlling argument.
14104
14105         * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
14106         First/Next_Component_Or_Discriminant
14107         (Insert_Actions): Add entries for new N_Push and N_Pop nodes
14108         (Find_Implemented_Interface): Removed. All the calls to this subprogram
14109         specify Any_Limited_Interface, and this functionality is already
14110         provided by the function Has_Abstract_Interfaces.
14111         (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
14112         support concurrent types implementing interfaces.
14113         (Find_Implemented_Interface): Removed. All the calls to this subprogram
14114         specify kind Any_Limited_Interface, and this functionality is already
14115         provided by the function Has_Abstract_Interfaces.
14116         (Remove_Side_Effects): replace Controlled_Type by
14117         CW_Or_Controlled_Type whenever the issue is related to
14118         using or not the secondary stack.
14119
14120         * par-ch12.adb (P_Formal_Type_Definition): Update calls to
14121         P_Interface_Type_Definition to fulfill the new interface (the formal
14122         Is_Synchronized is no longer required).
14123
14124         * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
14125         Update dependencies.
14126
14127         * exp_atag.ads, exp_atag.adb: New file
14128
14129 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14130             Bob Duff  <duff@adacore.com>
14131             Cyrille Comar  <comar@adacore.com>
14132
14133         * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
14134         anonymous, use finalization list of enclosing dynamic scope.
14135         (Expand_N_Package_Declaration): For a library package declaration
14136         without a corresponding body, generate RACW subprogram bodies in the
14137         spec (just as we do for the task activation call).
14138         (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
14139         Is_Abstract_Type. Make sure these are called only when appropriate.
14140         Remove all code for DSP option
14141         (CW_Or_Controlled_Type): new subprogram.
14142
14143 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
14144             Ed Schonberg  <schonberg@adacore.com>
14145             Gary Dismukes  <dismukes@adacore.com>
14146
14147         * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
14148         parameter. If it is set to true, return a result capped according to
14149         the global upper bound for the index of an entry family.
14150         (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
14151         (Build_Find_Body_Index): Adjust for above change.
14152         (Entry_Index_Expression): Likewise.
14153         (Is_Potentially_Large_Family): New function extracted from...
14154         (Collect_Entry_Families): ...here. Call it to detect whether the family
14155         is potentially large.
14156         (Build_Entry_Count_Expression): If the family is potentially large, call
14157         Family_Size with 'Cap' set to true.
14158         (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
14159         a protected version of an operation declared in the private part of
14160         a protected object, because they may be invoked through a callback.
14161         (Set_Privals): If the type of a private component is an anonymous access
14162         type, do not create a new itype for each protected body.
14163         If the body of a protected operation creates
14164         controlled types (including allocators for class-widetypes), the
14165         body of the corresponding protected subprogram must include a
14166         finalization list.
14167         (Build_Activation_Chain_Entity): Build the chain entity for extended
14168         return statements.
14169         (Type_Conformant_Parameters): Use common predicate Conforming_Types
14170         to determine whether operation overrides an inherited primitive.
14171         (Build_Wrapper_Spec): Add code to examine the parents while looking
14172         for a possible overriding candidate.
14173         (Build_Simple_Entry_Call): Set No_Initialization on the object used to
14174         hold an actual parameter value since its initialization is separated
14175         from the the declaration. Prevents errors on null-excluding access
14176         formals.
14177
14178 2007-04-06  Thomas Quinot  <quinot@adacore.com>
14179             Pablo Oliveira  <oliveira@adacore.com>
14180
14181         * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
14182         Do an Unchecked_Conversion to handle the passage from the Underlying
14183         Type to the Base Type when calling Build_To_Any_Call and
14184         Build_From_Any_Call.
14185         (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
14186         E_Constant, depending upon Variable formal.
14187         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
14188         PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
14189         parameter that requires an extra constrained parameter, declare
14190         temporary for actual as a variable, not a constant.
14191         (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
14192         the unit being compiled is the one that contains the stub type.
14193         Change primitive operation name for the RACW associated with a RAS
14194         from Call to _Call so it cannot clash with any legal identifier.
14195         (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
14196         Is_RAS.
14197         (Append_RACW_Bodies): New subprogram.
14198         (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
14199         Add_Receiving_Stubs_To_Declarations functions.
14200         When expanding a package body, this list correspond to the
14201         statements in the HSS at the end of the pacakge.
14202         When expanding a package spec, this list correspond to the
14203         spec declarations.
14204         (Add_Receiving_Stubs_To_Declarations): Append the function
14205         registering the receiving stubs at the end of the 'Stmts' list.
14206         (RCI_Package_Locator): Pass the new Version generic formal when
14207         instantiating a RCI_Locator package.
14208         (Build_From_Any_Function): To compute the High bound for an
14209         unconstrained array actual, we add the Low bound with the length.
14210         Thus we must convert the low bound and the length to an appropriate
14211         type before doing the sum.
14212         (Build_Subprogram_Receiving_Stubs, PolyORB):
14213          * Retrieve the extra formals parameters at the
14214            end of the parameter stream.
14215          * Use Move_Any_Value to write back out parameters
14216            after executing the request as it is more efficient
14217            than Copy_Any_Value.
14218          * Build the any containing Extra Formals with the
14219            appropriate typecode.
14220         (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
14221         empty Component_List.
14222         (Build_Actual_Object_Declaration): New subprogram. Build and insert into
14223         the tree the declaration for an object that serves as actual parameter
14224         in server-side stubs.
14225         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
14226         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
14227         Use Build_Actual_Object_Declaration to prepare the actuals.
14228         (Add_Parameter_To_NVList): Set the parameter mode to In for
14229         Extra Constrained Parameters.
14230         (Build_General_Calling_Stubs): Set the parameter type to boolean for
14231         Extra Constrained parameters.
14232         (Build_To_Any_Function, Build_From_Any_Function,
14233         Built_TypeCode_Function): When Typ is implicit, call the correct
14234         function with the first not implicit parent type.
14235         (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
14236         (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
14237         typecode from the Etype. Therefore we retrieve the correct typecode
14238         with a call to Get_Any_Type.
14239         (Copy_Specification): Do controlling formal type substitution based on
14240         Is_Controlling_Formal flag, instead of caller-provided object type.
14241         (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
14242         a RACW primitive operation, we might get a subprogram declaration for an
14243         ancestor of the RACW designated type (not for the designated type
14244         itself), in the case where this operation is inherited. In this case we
14245         have no easy means of determining the original tagged type for which
14246         the primitive was declared, so instead we now rely on
14247         Copy_Specification to use the Is_Controlling_Formal flag to determine
14248         which formals require type substitution.
14249
14250 2007-04-06  Robert Dewar  <dewar@adacore.com>
14251             Ed Schonberg  <schonberg@adacore.com>
14252
14253         * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
14254         GNAT.Current_Exception are not allowed if pragma Restrictions
14255         (No_Exception_Propagation) is set and in any case make the associated
14256         handler unsuitable as a target for a local raise statement.
14257         (Expand_Dispatching_Constructor_Call): Replace generation of call to the
14258         run-time subprogram CW_Membership by call to Build_CW_Membership.
14259         (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
14260         by a function call, a temporary must be created before expanding the
14261         Constructor_Call itself, to prevent out-of-order elaboration in the
14262         back-end when stack checking is enabled..
14263
14264 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14265
14266         * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
14267         result are the bounds of the left operand, not the right.
14268
14269 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14270
14271         * exp_strm.adb
14272         (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
14273          discriminant defaults.
14274         (Build_Record_Or_Elementary_Output_Procedure): Ditto.
14275         (Make_Component_List_Attributes): Ditto.
14276
14277 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14278             Bob Duff  <duff@adacore.com>
14279
14280         * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
14281         an association with a box as providing a value even though the
14282         initialization procedure for the type is not available.
14283         (Resolve_Record_Aggregate): Check that a choice of an association with a
14284         box corresponds to a component of the type.
14285         (Resolve_Record_Aggregate): Split Is_Abstract flag into
14286         Is_Abstract_Subprogram and Is_Abstract_Type.
14287
14288         * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
14289         assert.
14290
14291         * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
14292         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
14293         called only when appropriate.
14294
14295 2007-04-06  Olivier Hainque  <hainque@adacore.com>
14296
14297         * g-alleve.ads (Low Level Vector type definitions): Map each to the
14298         associated vector view instead of all to the unsigned char view.
14299
14300         * g-altcon.adb (Generic_Conversions): New internal generic package,
14301         offering facilities for all the Vector/View conversion routines
14302         implemented by this unit.
14303         (To_View/To_Vector - all versions): Reimplemented in a systematic
14304         manner, using the internal Generic_Conversions facilities.
14305
14306 2007-04-06  Pascal Obry  <obry@adacore.com>
14307
14308         * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
14309         string.
14310         (Create): Free the source string before storing the new one.
14311
14312 2007-04-06  Vincent Celier  <celier@adacore.com>
14313
14314         * g-debpoo.adb (Validity): New package with a complete new
14315         implementation of subprograms Is_Valid and Set_Valid.
14316         (Is_Valid): Move to local package Validity
14317         (Set_Valid): Move to local package Validity
14318
14319 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
14320             Pablo Oliveira  <oliveira@adacore.com>
14321
14322         * g-expect.adb (Get_Command_Output): When expanding the output buffer
14323         we must ensure that there is enough place for the new data we are going
14324         to copy in.
14325
14326 2007-04-06  Thomas Quinot  <quinot@adacore.com>
14327
14328         * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
14329         computation.
14330
14331 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
14332             Vincent Celier  <celier@adacore.com>
14333
14334         * gnatcmd.adb (B_Start): Add prefix of binder generated file.
14335         (Stack_String): Add this String that contains the name of the Stack
14336         package in the project file.
14337         (Packages_To_Check_By_Stack): Add this list that contains the packages
14338         to be checked by gnatstack, which are the naming and the stack packages.
14339         (Check_Files): If no .ci files were specified for gnatstack we add all
14340         the .ci files belonging to the projects, including binder generated
14341         files.
14342         (Non_VMS_Usage): Document that gnatstack accept project file switches.
14343         (GNATCmd): Update the B_Start variable if we are in a VMS environment.
14344         Add gnatstack to the list of commands that use project file related
14345         switches, and get the single attribute Switches from the stack package
14346         in a project file when calling gnatstack. Parse the -U flag for
14347         processing files belonging to all projects in the project tree.
14348         Remove all processing for command Setup
14349
14350         * prj-attr.adb: Add new package Stack with single attribute Switches
14351
14352         * vms_conv.ads (Command_Type): Add command Stack.
14353         Move to body declarations that are only used in the body: types Item_Id,
14354         Translation_Type, Item_Ptr, Item and its subtypes.
14355
14356         * vms_conv.adb: (Initialize): Add data for new command Stack.
14357         Add declarations moved from the spec: types Item_Id, Translation_Type,
14358         Item_Ptr, Item and its subtypes.
14359         (Cargs_Buffer): New table
14360         (Cargs): New Boolean global variable
14361         (Process_Buffer): New procedure to create arguments
14362         (Place): Put character in table Buffer or Cargs_Buffer depending on the
14363          value of Cargs.
14364         (Process_Argument): Set Cargs when processing qualifiers for GNAT
14365         COMPILE
14366         (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
14367         empty, for table Cargs_Buffer.
14368         (Initialize): Remove component Setup in Command_List
14369
14370 2007-04-06  Vincent Celier  <celier@adacore.com>
14371
14372         * gprep.adb (Process_Files.Process_One_File): Use full file name when
14373         issuing pragma Source_Reference.
14374
14375 2007-04-06  Emmanuel Briot  <briot@adacore.com>
14376
14377         * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
14378         [[:xdigit:]] character class.
14379         Also raise an exception when an invalid character class is used.
14380
14381 2007-04-06  Pascal Obry  <obry@adacore.com>
14382
14383         * i-cstrea.ads: (fopen): Add encoding parameter.
14384         (freopen): Idem.
14385         Change reference from a-sysdep.c to sysdep.c in comment.
14386         Update copyright notice.
14387         This set of patch add support for the encoding form parameter.
14388
14389         * mingw32.h (S2WSU): New macro to convert from a string to a
14390         wide-string using the UTF-8 encoding. The S2WS macro supports now only
14391         standard 8bits encoding.
14392         (WS2SU): As above but converting from wide-sring to string.
14393         This is needed as it is necessary to have access to both versions in the
14394         runtime for the form parameter encoding support.
14395         This set of patch add support for the encoding form parameter.
14396         (S2WS): Improve implementation to handle cases where the filename is not
14397         UTF-8 encoded. In this case we default to using the current code page
14398         for the conversion.
14399
14400         * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
14401         type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
14402         the constants defined in adaint.h.
14403         (fopen): Add encoding parameter.
14404         (freopen): Idem.
14405
14406         * s-ficobl.ads (AFCB): Add Encoding field to record the filename
14407         encoding. This is needed for the Reset routine (freopen low level-call).
14408
14409         * s-fileio.adb (Open): Decode encoding form parameter and set the
14410         corresponding encoding value into AFCB structure.
14411         (Reset): Pass the encoding value to freopen.
14412         (Close): Move the call to Lock_Task to the beginning of the procedure.
14413
14414 2007-04-06  Geert Bosch  <bosch@adacore.com>
14415             Robert Dewar  <dewar@adacore.com>
14416
14417         * i-fortra.ads: Add Double_Complex type.
14418
14419         * impunit.adb: (Is_Known_Unit): New function
14420         Add Gnat.Byte_Swapping
14421         Add GNAT.SHA1
14422         Add new Ada 2005 units
14423         Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
14424         Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
14425         Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
14426         Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
14427
14428         * impunit.ads (Is_Known_Unit): New function
14429
14430         * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
14431         a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
14432         a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
14433         g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
14434         s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
14435         s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
14436         New files.
14437
14438         * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
14439
14440         * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
14441
14442 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
14443             Arnaud Charlet  <charlet@adacore.com>
14444
14445         * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
14446         __gnat_adjust_context_for_raise.
14447         (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
14448         implementation of floating point operations as native x86 targets.
14449         So the FPU should be initialized in the same way using finit. Fix
14450         floating point operations accuracy issues.
14451         (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
14452         member in struct sigaction, so as to avoid warning for incompatible
14453         pointer types.
14454
14455 2007-04-06 Serguei Rybin  <rybin@adacore.com>
14456
14457         * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
14458         switches from previously loaded tree
14459
14460 2007-04-06  Thomas Quinot  <quinot@adacore.com>
14461
14462         * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
14463         cases where a given dependency has a body or not.
14464         (Write_With_File_Names): New subprogram, common code for the two cases
14465         above.
14466
14467 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14468             Javier Miranda  <miranda@adacore.com>
14469
14470         * lib-xref.ads, lib-xref.adb: 
14471         Modify the loop that collects type references, to include interface
14472         types that the type implements. List each of these interfaces when
14473         building the entry for the type.
14474         (Generate_Definition): Initialize component Def and Typ of new entry
14475         in table Xrefs, to avoid to have these components unitialized.
14476         (Output_References): Split Is_Abstract flag into
14477         Is_Abstract_Subprogram and Is_Abstract_Type.
14478         (Generate_Reference): Add barrier to do not generate the warning
14479         associated with Ada 2005 entities with entities generated by the
14480         expander.
14481
14482 2007-04-06  Robert Dewar  <dewar@adacore.com>
14483             Arnaud Charlet  <charlet@adacore.com>
14484             Vincent Celier  <celier@adacore.com>
14485
14486         * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
14487         Update 'Exception Handling Control' chapter which was outdated.
14488         Minor fix to documentation of -gnatwq
14489         Remove section "Adapting the Run Time to a New C++ Compiler" because
14490         it is now obsolete.
14491         Add passage on need of -nostart-files in some non-ada-main cases.
14492         Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
14493         Update documentation about Interfacing with C++
14494         Add documentation for new gnatmake switch -p
14495         Add missing protocol part in URLs.
14496         Document -gnatyA
14497         Document pragma Compile_Time_Error
14498         Add documentation for Object_Size indicating that stand alone
14499         objects can have a larger size in some cases.
14500         Add node for GNAT.Byte_Swapping, GNAT.SHA1
14501         Update reference to the Ravenscar profile.
14502         Document pragma Unreferenced_Objects
14503
14504         * gnat-style.texi: Fix typo
14505
14506 2007-04-06  Vincent Celier  <celier@adacore.com>
14507
14508         * mlib.adb (Building_Library): Only output "building a library..." in
14509         verbose mode
14510
14511         * mlib-prj.adb (Build_Library): Only output lists of object and ALI
14512         files in verbose mode.
14513
14514         * mlib-utl.adb (Ar): Only output the first object files when not in
14515         verbose mode.
14516         (Gcc): Do not display all the object files if not in verbose mode, only
14517         the first one.
14518
14519 2007-04-06  Robert Dewar  <dewar@adacore.com>
14520
14521         * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
14522         it no longer destroys the contents of Name_Buffer or Name_Len and
14523         non-standard and invalid names are handled better.
14524         (Get_Decoded_Name_String): Improve performance by using
14525         Name_Has_No_Encodings flag in the name table.
14526         (Is_Valid_Name): New function to determine whether a Name_Id is valid.
14527         Used for debugging printouts.
14528
14529 2007-04-06  Robert Dewar  <dewar@adacore.com>
14530             Javier Miranda  <miranda@adacore.com>
14531             Bob Duff  <duff@adacore.com>
14532
14533         * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
14534         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
14535         there is no need to generate always a record_definition_node in case
14536         of synchronized interface types.
14537         (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
14538         (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
14539         illegal in Ada 95, in cases where it is legal. Change the warnings to
14540         errors in other cases. Don't give the error unless the "not null"
14541         parses properly. Correct the source position at which the error occurs.
14542         (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
14543         P_Null_Exclusion, to suppress "not null" warnings.
14544         (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
14545         associated goto statements.
14546
14547         * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
14548         of END RECORD
14549
14550         * scans.ads (Type_Token_Location): New flag
14551
14552         * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
14553         (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
14554         P_Null_Exclusion, to suppress "not null" warnings.
14555
14556 2007-04-06  Robert Dewar  <dewar@adacore.com>
14557             Javier Miranda  <miranda@adacore.com>
14558             Bob Duff  <duff@adacore.com>
14559             Vincent Celier  <celier@adacore.com>
14560
14561         * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
14562         (Extensions_Allowed): No longer sets Ada_Version
14563         Entry for pragma Unreferenced_Objects
14564
14565         * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
14566         system.tasking if pragma priority used in a procedure
14567         (Analyze_Pragma, case Warning): Handle dot warning switches
14568         (Process_Compile_Time_Warning_Or_Error): New procedure
14569         (Analyze_Pragma): Add processing for Compile_Time_Error
14570         Add support for extra arguments External_Name and Link_Name.
14571         Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
14572         (Process_Import_Or_Interface): Add support for the use of pragma Import
14573         with tagged types.
14574         (Extensions_Allowed): No longer affects Ada_Version
14575         (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
14576         Is_Abstract_Type. Make sure these are called only when appropriate.
14577         Add processing for pragma Unreferenced_Objects
14578
14579         * snames.h, snames.ads, snames.adb: Add entry for pragma
14580         Compile_Time_Error
14581         Add new standard name Minimum_Binder_Options for new gprmake
14582         Add new standard names for gprmake: Archive_Suffix,
14583         Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
14584         Library_Support, Library_Version_Options,
14585         Shared_Library_Minimum_Options,
14586         Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
14587         Change Name_Call to Name_uCall so that it cannot clash with a legal
14588         subprogram name.
14589         Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
14590         Append C_Plus_Plus to convention identifiers as synonym for CPP
14591         Add new standard names Stack and Builder_Switches
14592         Add new standard names: Compiler_Minimum_Options, Global_Config_File,
14593         Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
14594         Run_Path_Option, Toolchain_Version.
14595         Entry for pragma Unreferenced_Objects
14596
14597         * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
14598         switches, without repetition of "eD". Make sure that last character of
14599         -gnatep= switch is not taken as -gnat switch character.
14600         Complete rewrite of circuit for handling saving compilation options
14601         Occasioned by need to support dot switchs for -gnatw, but cleans up
14602         things in general.
14603         -gnatX does not affect Ada_Version
14604         Include -gnatyA in -gnatg style switches
14605
14606         * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
14607         warnings on return objects.
14608         (Warn_On_Useless_Assignment): Exclude warnings on return objects
14609         (Set_Dot_Warning_Switch): New procedure
14610         (Check_References): Add missing case of test for
14611         Has_Pragma_Unreferenced_Objects
14612         (Output_Unreferenced_Messages): Implement effect of new pragma
14613         Unreferenced_Objects, remove special casing of limited controlled
14614         variables.
14615
14616 2007-04-06  Vincent Celier  <celier@adacore.com>
14617
14618         * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
14619         the default project path, initially done during elaboration of the
14620         package.
14621         If the prefix returned by Sdefault is null, get the prefix from a call
14622         to Executable_Prefix_Path.
14623         (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
14624         null.
14625
14626         * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
14627         canonical directory name to open the directory from which files are
14628         retrieved.
14629         (Record_Other_Sources): Idem.
14630         (Locate_Directory): Add the possibility to create automatically missing
14631         directories when Setup_Projects is True.
14632         Call Locate_Directory so that the directory will be created when
14633         Setup_Projects is True, for object dir, library dir, library ALI dir,
14634         library source copy dir and exec dir.
14635
14636         * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
14637         versions of GNAT.
14638
14639 2007-04-06  Robert Dewar  <dewar@adacore.com>
14640
14641         * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
14642         Use First/Next_Component_Or_Discriminant
14643         (Analyze_Record_Representation_Clause):
14644         Use First/Next_Component_Or_Discriminant
14645         (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
14646         (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
14647         definition if type is unconstrained.
14648         (Adjust_Record_For_Reverse_Bit_Order): New procedure
14649         (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
14650         Is_Abstract_Subprogram and Is_Abstract_Type.
14651         (Adjust_Record_For_Reverse_Bit_Order): New procedure
14652
14653         * repinfo.adb (List_Record_Info): Use First/
14654         Next_Component_Or_Discriminant.
14655
14656         * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
14657         New procedure.
14658
14659         * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
14660         Include -gnatyA in default switches
14661
14662         * opt.ads: (Warn_On_Non_Local_Exception): New flag
14663         (Warn_On_Reverse_Bit_Order): New flag
14664         (Extensions_Allowed): Update the documentation.
14665         (Warn_On_Questionable_Missing_Parens): Now on by default
14666
14667         * usage.adb: Add documentation of -gnatw.x/X switches
14668         Document new -gnatyA style switch
14669         -gnatq warnings are on by default
14670
14671 2007-04-06  Ed Falis  <falis@adacore.com>
14672
14673         * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
14674         full word is no longer compared twice.
14675
14676 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14677
14678         * sem_ch10.adb (Install_Limited_Context_Clauses.
14679         Expand_Limited_With_Clause): Use a new copy of selector name in the
14680         call to Make_With_Clause. This fixes the tree structure for ASIS
14681         purposes. Nothing is changed in the compiler behaviour.
14682         (Process_Body_Clauses): Handle properly use clauses whose prefix is
14683         a package renaming.
14684         (Install_Limited_With_Clauses): Do not install non-limited view when it
14685         is still incomplete.
14686
14687 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14688             Gary Dismukes  <dismukes@adacore.com>
14689
14690         * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
14691         when capturing size information, instead of base type, which for a
14692         formal array type will be the unconstrained type.
14693         (Analyze_Formal_Object_Declaration): Add check for illegal default
14694         expressions for a formal in object of a limited type.
14695         (Instantiate_Object): Ditto.
14696         (Check_Formal_Package_Instance): Skip entities that are formal objects,
14697         because they were defaulted in the formal package and no check applies
14698         to them.
14699         (Check_Formal_Package_Instance): Extend conformance check to other
14700         discrete types beyond Integer.
14701         (Process_Default): Copy directly the unmatched formal. A generic copy
14702         has already been performed in Analyze_Formal_Package.
14703         (Analyze_Associations): If a formal subprogram has no match, check for
14704         partial parametrization before looking for a default, to prevent
14705         spurious errors.
14706         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
14707         not set the instantiation environment before analyzing the actuals.
14708         Fixes regression on 8515-003 with implementation of AI-133.
14709         Set_Instance_Env checks whether the generic unit is a predefined
14710         unit, in which case the instance must be analyzed with the latest Ada
14711         mode. This setting must take place after analysis of the actuals,
14712         because the actuals must be analyzed and frozen in the Ada mode extant
14713         outside of the current instantiation.
14714         (Save_Env, Restore_Env): Preserve and restore the configuration
14715         parameters so that predefined units can be compiled in the proper Ada
14716         mode.
14717         (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
14718         Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
14719         and Is_Abstract_Type.
14720         (Analyze_Formal_Package): For better error recovery, Add exception
14721         handler to catch Instantion_Error, which can be raised in
14722         Analyze_Associations
14723
14724 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14725             Bob Duff  <duff@adacore.com>
14726             Gary Dismukes  <dismukes@adacore.com>
14727
14728         * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
14729         prefix type is a discriminated subtype of the type of the formal.
14730         (Analyze_Allocator): Collect all coextensions regardless of the context.
14731         Whether they can be allocated statically is determined in exp_ch4.
14732         (Analyze_Selected_Component): If the prefix is a limited view and the
14733         non-limited view is available, use the non-limited one.
14734         (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
14735         therefore illegal), suggest a qualified expression rather than a type
14736         conversion, because a type conversion would be illegal in this context.
14737         (Anayze_Allocator): Trace recursively all nested allocators so that all
14738         coextensions are on the corresponding list for the root. Do no mark
14739         coextensions if the root allocator is within a declaration for a stack-
14740         allocated object, because the access discriminants will be allocated on
14741         the stack as well.
14742         (Analyze_Call): Remove restriction on calls to limited functions for the
14743         cases of generic actuals for formal objects, defaults for formal objects
14744         and defaults for record components.
14745         (Analyze_Allocator): Before analysis, chain coextensions on the proper
14746         element list. Their expansion is delayed until the enclosing allocator
14747         is processed and its finalization list constructed.
14748         (Try_Primitive_Operation): If the prefix is a concurrent type, looks
14749         for an operation with the given name among the primitive operations of
14750         the corresponding record type.
14751         (Analyze_Selected_Component): If the prefix is a task type that
14752         implements an interface, and there is no entry with the given name,
14753         check whether there is another primitive operation (e.g. a function)
14754         with that name.
14755         (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
14756         properly the indexing of a function call written in prefix form, where
14757         the function returns an array type, and all parameters of the function
14758         except the first have defaults.
14759         (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
14760         the original operands, rather than relocating them, for efficiency and
14761         to work properly when an operand is overloaded.
14762         (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
14763         Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
14764         (Analyze_Selected_Component): If the prefix is a private extension, only
14765         scan the visible components, not those of the full view.
14766         (Try_Primitive_Operation): If the operation is a procedure, collect all
14767         possible interpretations, as for a function, because in the presence of
14768         classwide parameters several primitive operations of the type can match
14769         the given arguments.
14770
14771 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14772             Robert Dewar  <dewar@adacore.com>
14773
14774         * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
14775         tag-indeterminate call to an abstract function, when the left-hand side
14776         is not classwide.
14777         (Analyze_Loop_Statement): Improve detection of infinite loops
14778
14779 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14780             Thomas Quinot  <quinot@adacore.com>
14781
14782         * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
14783         out of Analyze_Package_Declaration, because processing must be applied
14784         to package bodies as well, for deferred constants completed by pragmas.
14785         (Analyze_Package_Declaration): When the package declaration being
14786         analyzed does not require an explicit body, call Check_Completion.
14787         (May_Need_Implicit_Body): An implicit body is required when a package
14788         spec contains the declaration of a remote access-to-classwide type.
14789         (Analyze_Package_Body): If the package contains RACWs, append the
14790         pending subprogram bodies generated by exp_dist at the end of the body.
14791         (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
14792         Is_Abstract_Subprogram and Is_Abstract_Type.
14793         (Preserve_Full_Attributes): The full entity list is not an attribute
14794         that must be preserved from full to partial view.
14795
14796         * sem_dist.adb (Add_RAS_Dereference_TSS):
14797         Change primitive name to _Call so it cannot clash with any legal
14798         identifier, and be special-cased in Check_Completion.
14799         Mark the full view of the designated type for the RACW associated with
14800         a RAS as Comes_From_Source to get proper view switching when installing
14801         private declarations.
14802         Provite a placeholder nested package body along with the nested spec
14803         to have a place for Append_RACW_Bodies to generate the calling stubs
14804         and stream attributes.
14805
14806 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14807             Robert Dewar  <dewar@adacore.com>
14808
14809         * sem_ch8.adb (Has_Components): If the argument is an incomplete type
14810         that is a limited view, check the non-limited view if available.
14811         (Undefined): Refine error message for missing with of Text_IO
14812         (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
14813         to distinguish real missing with cases.
14814         Fix format of all missing with messages
14815         (Analyze_Subprogram_Renaming): Emit proper error message on illegal
14816         renaming as body when renamed entity is abstract.
14817
14818 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14819             Javier Miranda  <miranda@adacore.com>
14820
14821         * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
14822         predicate recursive, to handle complex expressions on literals whose
14823         spurious ambiguity comes from the abstract interpretation of some
14824         subexpression.
14825         (Interface_Present_In_Ancestor): Add support to concurrent record
14826         types.
14827         (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
14828         Is_Abstract_Subprogram and Is_Abstract_Type.
14829
14830 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14831             Javier Miranda  <miranda@adacore.com>
14832
14833         * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
14834         dereference of a local object R created as a reference to another
14835         object O, use the access level of O.
14836         (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
14837         rather than local Same_Formal_Type, to check whether protected operation
14838         overrides an inherited one.
14839         (Same_Formal_Type): New predicate, used when matching signatures of
14840         overriding synchronized operations, to handle the case when a formal
14841         has a type that is a generic actual.
14842         (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
14843         predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
14844         (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
14845         syntactic ambiguities involving indexing of function calls that return
14846         arrays.
14847         (Abstract_Interface_List): New subprogram that returns the list of
14848         abstract interfaces associated with a concurrent type or a
14849         concurrent record type.
14850         (Interface_Present_In_Parent): New subprogram used to check if a
14851         given type or some of its parents implement a given interface.
14852         (Collect_Abstract_Interfaces): Add support for concurrent types
14853         with interface types.
14854         (Has_Abstract_Interfaces): Add support for concurrent types with
14855         interface types.
14856         (Is_Parent): New subprogram that determines whether E1 is a parent
14857         of E2. For a concurrent type its parent is the first element of its
14858         list of interface types; for other types this function provides the
14859         same result than Is_Ancestor.
14860         (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
14861         (Collect_Synchronized_Interfaces): Removed because the subprogram
14862         Collect_Abstract_Interfaces provides this functionality.
14863         (Collect_Abstract_Interfaces): Minor update to give support to
14864         concurrent types and thus avoid undesired code duplication.
14865         (Get_Subprogram_Entity): Handle entry calls.
14866         (May_Be_Lvalue): Include actuals that appear as in-out parameters in
14867         entry calls.
14868         (Enter_Name): Do not give -gnatwh hiding warning for record component
14869         entities, they never result in hiding.
14870
14871 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
14872             Robert Dewar  <dewar@adacore.com>
14873
14874         * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
14875         to chain nested components that are allocators for access discriminants
14876         of the enclosing object.
14877         Add N_Push and N_Pop nodes
14878         New field Exception_Label added
14879         (Local_Raise_Statements): New field in N_Exception_Handler_Node
14880         (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
14881         (Is_Coextension): New flag for allocators, to mark allocators that
14882         correspond to access discriminants of dynamically allocated objects.
14883         (N_Block_Statement): Document the fact that the corresponding entity
14884         can be an E_Return_Statement.
14885         (Is_Coextension): New flag for allocators.
14886         Remove all code for DSP option
14887
14888         * sprint.ads, sprint.adb: Display basic information for class_wide
14889         subtypes. Add handling of N_Push and N_Pop nodes
14890
14891 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
14892
14893         * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
14894         before propagating exception.
14895
14896 2007-04-06  Olivier Hainque  <hainque@adacore.com>
14897
14898         * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
14899         an address always within the call instruction from a return address.
14900
14901 2007-04-06  Olivier Hainque  <hainque@adacore.com>
14902             Eric Botcazou  <botcazou@adacore.com>
14903
14904         * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
14905         expression with a COMPOUND_EXPR including the call instead of emitting
14906         the call directly here.
14907         (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
14908         high bound is constant and the slice is empty.  Tidy.
14909         (tree_transform, case N_Op_Not): Handle properly the case where the
14910         operation applies to a private type whose full view is a modular type.
14911         (Case_Statement_To_gnu): If an alternative is an E_Constant with an
14912         Address_Clause, use the associated Expression as the GNAT tree
14913         representing the choice value to ensure the corresponding GCC tree is
14914         of the proper kind.
14915         (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
14916         instead of just the operands, as the base GCC stabilize_reference does.
14917         <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
14918         requested; otherwise fail.
14919         (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
14920
14921 2007-04-06  Thomas Quinot  <quinot@adacore.com>
14922
14923         * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
14924         implementation of UI_Div.
14925         (UI_Div): Reimplement as a call to UI_Div_Rem.
14926         (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
14927         remainder, avoiding the cost of a multiplication and a subtraction.
14928         (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
14929         provides both quotient and remainder in a single computation.
14930         (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
14931         functions for uint.
14932         (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
14933         is undefined if the given n is not inversible.
14934
14935 2007-04-06  Olivier Hainque  <hainque@adacore.com>
14936
14937         * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
14938         BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
14939         opcodes.
14940
14941 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
14942             Olivier Hainque  <hainque@adacore.com>
14943
14944         * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
14945         when updating the contents of the old pointer to an unconstrained array.
14946         (end_subprog_body): Set error_gnat_node to Empty.
14947         (write_record_type_debug_info): Do not be unduly sparing with our bytes.
14948         (unchecked_convert): For subtype to base type conversions, require that
14949         the source be a subtype if it is an integer type.
14950         (builtin_decls): New global, vector of available builtin functions.
14951         (gnat_pushdecl): Add global builtin function declaration nodes to the
14952         builtin_decls list.
14953         (gnat_install_builtins): Adjust comments.
14954         (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
14955         calling gnat_pushdecl, so that it knows when it handed a builtin
14956         function declaration node.
14957         (builtin_decl_for): Search the builtin_decls list.
14958
14959 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
14960
14961         * s-stchop-vxworks.adb: 
14962         (Stack_Check): Raise Storage_Error if the argument has wrapped around.
14963
14964 2007-04-06  Robert Dewar  <dewar@adacore.com>
14965             Arnaud Charlet  <charlet@adacore.com>
14966
14967         * a-diroro.ads: Inserted the pragma Unimplemented_Unit
14968
14969         * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
14970         of files
14971         Add mention of -Sev (set initialize_scalars option from environment
14972         variable at run time) in gnatbind usage message.
14973
14974         * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
14975
14976         * fname-uf.ads: Minor comment fix
14977
14978         * osint.ads: Change pragma Elaborate to Elaborate_All
14979
14980         * par-load.adb: Add documentation.
14981
14982         * sem_cat.ads, sem_cat.adb: Minor code reorganization
14983
14984         * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
14985
14986         * s-secsta.ads: Extra comments
14987
14988         * s-soflin.ads: Minor comment fixes
14989
14990         * s-stratt.ads (Block_Stream_Ops_OK): Removed.
14991
14992         * s-wchcon.ads: Minor comment addition
14993
14994         * treepr.adb: Minor change in message
14995         (Print_Name,Print_Node): Make these debug printouts more robust: print
14996         "no such..." instead of crashing on bad input.
14997
14998 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
14999
15000         * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
15001         instead of gnat_signed_or_unsigned_type.
15002         * utils.c (gnat_signed_or_unsigned_type): Remove.
15003         * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
15004         * gigi.h (gnat_signed_or_unsigned_type): Remove
15005
15006 2007-03-09  Roger Sayle  <roger@eyesopen.com>
15007
15008         * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
15009         fold with the result of buildN.
15010         * decl.c (gnat_to_gnu_entity): Likewise.
15011         * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
15012         * utils.c (finish_record_type, merge_sizes, max_size, convert):
15013         Likewise.
15014         * utils2.c (gnat_truthvalue_conversion, compare_arrays,
15015         nonbinary_modular_operation, build_binary_op, build_unary_op,
15016         build_cond_expr): Likewise.
15017
15018         * utils.c (convert): Use fold_build1 when casting values to void.
15019         * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
15020         fold_convert instead of convert when appropriate.
15021
15022 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
15023
15024         * Make-lang.in: Add install-pdf target as copied from
15025         automake v1.10 rules.
15026
15027 2007-02-28  Andreas Schwab  <schwab@suse.de>
15028
15029         * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
15030         $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
15031         (doc/gnat-style.info): Likewise.
15032
15033 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
15034
15035         * gnat-style.texi: Standardize title page.
15036         * gnat_rm.texi: Likewise.
15037         * gnat_ugn.texi: Likewise.
15038
15039 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
15040
15041         * decl.c (annotate_value): Adjust for refactoring of tree_map
15042         hierarchy.
15043
15044 2007-02-24  Mark Mitchell  <mark@codesourcery.com>
15045
15046         * decl.c (annotate_value): Adjust for refactoring of tree_map
15047         hierarchy.
15048
15049 2007-02-21  Ed Schonberg  <schonberg@adacore.com>
15050
15051         PR ada/18819
15052         * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
15053         untagged derived type, add hidden components to keep discriminant
15054         layout consistent, when a given discriminant of the derived type
15055         constraints several discriminants of the parent type.
15056
15057 2007-02-16  Eric Botcazou  <ebotcazou@adacore.com>
15058             Sandra Loosemore  <sandra@codesourcery.com>
15059
15060         * trans.c (call_to_gnu):  Use build_call_list instead of build3 to
15061         build the call expression.
15062         (gnat_stabilize_reference_1): Handle tcc_vl_exp.
15063         * utils.c (max_size) <tcc_exceptional>: Delete.
15064         <tcc_vl_exp>: New case.
15065         <tcc_expression>: Delete CALL_EXPR subcase.
15066         (build_global_cdtor): Use build_call_nary instead of build3.
15067         * utils2.c (build_call_1_expr): Likewise.
15068         (build_call_2_expr): Likewise.
15069         (build_call_0_expr): Likewise.
15070         (build_call_alloc_dealloc): Likewise.
15071
15072 2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
15073
15074         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
15075         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
15076         and _Unwind_SWord with _sleb128_t.
15077
15078 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
15079
15080         * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
15081         * decl.c: Include gt-ada-decl.h.
15082         (annotate_value_cache): New.
15083         (annotate_value): Use it instead of TREE_COMPLEXITY.
15084
15085 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
15086
15087         * misc.c, utils2.c: Fix comment typos.
15088
15089 2007-01-24  Roger Sayle  <roger@eyesopen.com>
15090
15091         * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
15092         TREE_CONSTANT_OVERFLOW.
15093         (allocatable_size_p, annotate_value): Likewise.
15094         * trans.c (gnat_to_gnu): Likewise.
15095         * utils.c (unchecked_convert): Likewise.
15096         * utils2.c (build_simple_component_ref): Likewise.
15097
15098 2007-01-23  Richard Guenther  <rguenther@suse.de>
15099
15100         PR bootstrap/30541
15101         * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
15102         (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
15103         (gnatboot3): Likewise.
15104         (GNATBIND): Do not define.
15105         * Makefile.in (GNATBIND): Do not define.
15106
15107 2007-01-08  Richard Guenther  <rguenther@suse.de>
15108
15109         * cuintp.c (build_cst_from_int): Use built_int_cst_type.
15110         * trans.c (gnat_to_gnu): Likewise.
15111
15112 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
15113
15114         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
15115         * adaint.c: Likewise.
15116
15117 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
15118
15119         Merge from gimple-tuples-branch:
15120         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
15121
15122         * ada-tree.h (lang_tree_node): Handle gimple tuples.
15123         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
15124         GIMPLE_MODIFY_STMT.
15125
15126 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
15127
15128         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
15129         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
15130         Fix typos.
15131
15132 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
15133
15134         PR ada/27936
15135         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
15136         if the initializer takes into account the padding.
15137
15138 2006-11-11  Richard Guenther  <rguenther@suse.de>
15139
15140         * trans.c (maybe_stabilize_reference): Remove handling of
15141         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
15142
15143 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
15144
15145         PR ada/29707
15146         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
15147         (To_Target_Priority): New function.
15148
15149 2006-10-31  Robert Dewar  <dewar@adacore.com>
15150
15151         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
15152         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
15153         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
15154         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
15155         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
15156         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
15157         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
15158         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
15159         a-szbzha.adb: Minor reformatting. Fix header.
15160
15161         * a-numaux-x86.adb: Add parentheses for use of unary minus
15162         * a-ngcefu.adb: Supply missing parentheses for unary minus
15163         * a-ngcoty.adb: Add parens for use of unary minus
15164         * a-ngelfu.adb: Add missing parens for unary minus
15165         * a-tifiio.adb: Add parentheses for uses of unary minus
15166
15167 2006-10-31  Robert Dewar  <dewar@adacore.com>
15168             Bob Duff  <duff@adacore.com>
15169             Ed Schonberg  <schonberg@adacore.com>
15170
15171         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
15172         with multiplying operator.
15173         (Expected_Type_Is_Any_Real): New function to determine from the Parent
15174         pointer whether the context expects "any real type".
15175         (Resolve_Arithmetic_Op): Do not give an error on calls to the
15176         universal_fixed "*" and "/" operators when they are used in a context
15177         that expects any real type. Also set the type of the node to
15178         Universal_Real in this case, because downstream processing requires it
15179         (mainly static expression evaluation).
15180         Reword some continuation messages
15181         Add some \\ sequences to continuation messages
15182         (Resolve_Call): Refine infinite recursion case. The test has been
15183         sharpened to eliminate some false positives.
15184         Check for Current_Task usage now includes entry barrier, and is now a
15185         warning, not an error.
15186         (Resolve): If the call is ambiguous, indicate whether an interpretation
15187         is an inherited operation.
15188         (Check_Aggr): When resolving aggregates, skip associations with a box,
15189         which are priori correct, and will be replaced by an actual default
15190         expression in the course of expansion.
15191         (Resolve_Type_Conversion): Add missing support for conversion from
15192         a class-wide interface to a tagged type. Minor code cleanup.
15193         (Valid_Tagged_Converion): Add support for abstact interface type
15194         conversions.
15195         (Resolve_Selected_Component): Call Generate_Reference here rather than
15196         during analysis, and use May_Be_Lvalue to distinguish read/write.
15197         (Valid_Array_Conversion): New procedure, abstracted from
15198         Valid_Conversion, to incorporate accessibility checks for arrays of
15199         anonymous access types.
15200         (Valid_Conversion): For a conversion to a numeric type occurring in an
15201         instance or inlined body, no need to check that the operand type is
15202         numeric, since this has been checked during analysis of the template.
15203         Remove legacy test for scope name Unchecked_Conversion.
15204
15205         * sem_res.ads: Minor reformatting
15206
15207         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
15208         (PE_Current_Task_In_Entry_Body): New exception code
15209         (SE_Restriction_Violation): Removed, not used
15210
15211         * a-except.ads:  Update comments.
15212
15213         * types.h, types.ads: Add definition for Validity_Check
15214         (PE_Current_Task_In_Entry_Body): New exception code
15215         (SE_Restriction_Violation): Removed, not used
15216
15217 2006-10-31  Thomas Quinot  <quinot@adacore.com>
15218
15219         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
15220         error status.
15221
15222 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
15223             Jose Ruiz  <ruiz@adacore.com>
15224
15225         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
15226         part of Ada.Calendar: all subprogram raise Unimplemented.
15227         (Split_W_Offset): Temp function body, raising Unimplemented
15228
15229         * a-calend.ads, a-calend-vms.ads: 
15230         Add imported variable Invalid_TZ_Offset used to designate targets unable
15231         to support time zones.
15232         (Unimplemented): Temporary function raised by the body of new
15233         subprograms below.
15234         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
15235         unit provides handling of leap seconds and is used by the new Ada 2005
15236         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
15237         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
15238         version returns an extra value which is the offset to UTC.
15239
15240         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
15241         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
15242         (Split_W_Offset): New function body.
15243         (Time_Of): When a date is close to UNIX epoch, compute the time for
15244         that date plus one day (that amount is later substracted after
15245         executing mktime) so there are no problems with time zone adjustments.
15246
15247         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
15248
15249         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
15250         a-catizo.ads, a-catizo.adb: New files.
15251
15252         * impunit.adb: Add new Ada 2005 entries
15253
15254         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
15255         Rename all occurences of "__gnat_localtime_r" to
15256         "__gnat_localtime_tzoff".
15257         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
15258         zone data and calculate the GMT offset.
15259         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
15260         Use the field "tm_gmtoff" to extract the GMT offset.
15261         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
15262         the external variable "timezone" to calculate the GMT offset.
15263
15264 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
15265             Jose Ruiz  <ruiz@adacore.com>
15266
15267         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb, 
15268         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads, 
15269         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
15270         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
15271         System.Any_Priority to a POSIX priority on the target.
15272
15273         * system-linux-ia64.ads: 
15274         Extend range of Priority types on Linux to use the whole range made
15275         available by the system.
15276
15277         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
15278         function maps from System.Any_Priority to a POSIX priority on the
15279         target.
15280         (PTHREAD_PRIO_PROTECT): Set real value.
15281         (PTHREAD_PRIO_INHERIT): Now a function.
15282         (SIGCPUFAIL): New signal.
15283         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
15284         are documented as reserved by the OS.
15285
15286         * system-aix.ads: Use the full range of priorities provided by the
15287         system on AIX.
15288
15289         * s-taprop-posix.adb: Call new function To_Target_Priority.
15290         (Set_Priority): Take into account Task_Dispatching_Policy and
15291         Priority_Specific_Dispatching pragmas when determining if Round Robin
15292         must be used for scheduling the task.
15293
15294         * system-linux-x86_64.ads, system-linux-x86.ads, 
15295         system-linux-ppc.ads: Extend range of Priority types on Linux to use
15296         the whole range made available by the system.
15297
15298         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb, 
15299         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb, 
15300         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
15301         when deallocating the TCB in order to avoid potential references to
15302         deallocated data.
15303         (Set_Priority): Take into account Task_Dispatching_Policy and
15304         Priority_Specific_Dispatching pragmas when determining if Round Robin
15305         or FIFO within priorities must be used for scheduling the task.
15306
15307         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
15308         the Thread field (to be used internally by the run-time system) and the
15309         kernel-level task id in the LWP field (to be used by the debugger).
15310         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
15311         instance, and propagate the current task options to the spawned task.
15312         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
15313         (Initialize): Set Round Robin dispatching when the corresponding pragma
15314         is in effect.
15315
15316 2006-10-31  Robert Dewar  <dewar@adacore.com>
15317
15318         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
15319         system-linux-hppa.ads, system-hpux-ia64.ads, 
15320         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads, 
15321         system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
15322         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
15323         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads, 
15324         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
15325         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
15326         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
15327         Default_Bit_Order) to kill constant condition warnings for references
15328         to this switch.
15329
15330 2006-10-31  Vincent Celier  <celier@adacore.com>
15331             Eric Botcazou  <ebotcazou@adacore.com>
15332
15333         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
15334         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
15335         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
15336         Ext_To, when building the library file name
15337
15338         * mlib-tgt-vxworks.adb: ditto.
15339         (Get_Target_Suffix): Add support for x86 targets.
15340
15341         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
15342
15343         * mlib-tgt-darwin.adb: 
15344         Use Append_To, instead of Ext_To, when building the library file name
15345         (Flat_Namespace): New global variable.
15346         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
15347         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
15348         (Link_Shared_Libgcc): Delete.
15349         (Build_Dynamic_Library): Adjust for above changes.
15350         Use Opt package.
15351         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
15352
15353 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
15354
15355         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
15356         (Initialize): Add type conversions required by above change.
15357
15358 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
15359
15360         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
15361         (getpid): New body for this function that uses the underlying taskIdSelf
15362         function for VxWorks 5 and VxWorks 6 in kernel mode.
15363         (unsigned_int): New type, modular to allow logical bit operations.
15364         (taskOptionsGet): New imported function.
15365
15366         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
15367         field to be compliant with the type used by the corresponding operating
15368         system primitive.
15369
15370 2006-10-31  Pascal Obry  <obry@adacore.com>
15371             Eric Botcazou  <ebotcazou@adacore.com>
15372             Vincent Celier  <celier@adacore.com>
15373
15374         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
15375         ASCII version of the registry API. This is needed as the GNAT runtime
15376         is now UNICODE by default.
15377         Include version.h.
15378         (get_gcc_version): Do not hardcode the return value.
15379         (__gnat_file_time_name): On Windows properly set the default returned
15380         value to -1 which corresponds to Invalid_Time.
15381         (__gnat_fopen): New routine. A simple wrapper on all plateforms
15382          except on Windows where it does conversion for unicode support.
15383         (__gnat_freopen): Idem.
15384         (__gnat_locate_exec_on_path): If environment variable PATH does not
15385         exist, return a NULL pointer
15386
15387         * adaint.h: (__gnat_fopen): Declare.
15388         (__gnat_freopen): Likewise.
15389
15390         * mingw32.h (_tfreopen): Define this macro here for older MingW
15391         version.
15392         Activate the unicode support on platforms using a MingW runtime
15393         version 3.9 or newer.
15394
15395         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
15396         This is needed for proper unicode support on Windows.
15397         (freopen): Idem.
15398
15399 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
15400             Nicolas Setton  <setton@adacore.com>
15401             Olivier Hainque  <hainque@adacore.com>
15402             Gary Dismukes  <dismukes@adacore.com>
15403
15404         * gigi.h: (tree_code_for_record_type): Declare.
15405         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
15406         (get_global_renaming_pointers): Rename to
15407         invalidate_global_renaming_pointers.
15408         (static_ctors): Delete.
15409         (static_dtors): Likewise.
15410         (gnat_write_global_declarations): Declare.
15411         (create_var_decl): Adjust descriptive comment to indicate that the
15412         subprogram may return a CONST_DECL node.
15413         (create_true_var_decl): Declare new function, similar to
15414         create_var_decl but forcing the creation of a VAR_DECL node.
15415         (get_global_renaming_pointers): Declare.
15416         (add_global_renaming_pointer): Likewise.
15417
15418         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
15419
15420         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
15421         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
15422         processing.
15423         (gnat_to_gnu_entity): Remove From_With_Type from computation for
15424         imported_p.
15425         <E_Access_Type>: Use the Non_Limited_View as the full view of the
15426         designated type if the pointer comes from a limited_with clause.  Make
15427         incomplete designated type if it is in the main unit and has a freeze
15428         node.
15429         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
15430         Underlying_Full_View similarly.  Return earlier if the full view already
15431         has an associated tree.
15432         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
15433         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
15434         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
15435         reference type built for objects with an address clause.
15436         Use create_true_var_decl with const_flag set for
15437         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
15438         TREE_READONLY set.
15439         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
15440         for Character and Wide_Character types. This info is read by the
15441         dwarf-2 writer, and is needed to be able to use the command "ptype
15442         character" in the debugger.
15443         (gnat_to_gnu_entity): When generating a type representing
15444         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
15445         so that debug writers can distinguish it from ordinary integers.
15446         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
15447         addition to TREE_READONLY to assert the constantness of variables for
15448         elaboration purposes.
15449         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
15450         parameters to call new Einfo function First_Formal_With_Extras.
15451         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
15452         protected type with its corresponding discriminant, to obtain a usable
15453         declaration
15454         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
15455         for a multiple elaboration of the "equivalent" type.
15456         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
15457         into record_global_renaming_pointer.
15458         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
15459         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
15460         <E_Array_Subtype>: Likewise.
15461         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
15462         incomplete subtypes and incomplete subtypes of incomplete types visible
15463         through a limited with clause.
15464         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
15465         the base index type for the maximum size of the array only if they are
15466         constant.
15467         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
15468         expression into a SAVE_EXPR if stabilization failed.
15469
15470         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
15471         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
15472         by lower level compilation passes.
15473         (gnat_genericize): New function, lowering a function body to GENERIC.
15474         Turn the type of RESULT_DECL into a real reference type if the decl
15475         has been marked DECL_BY_REFERENCE, and adjust references to the latter
15476         accordingly.
15477         (gnat_genericize_r): New function. Tree walking callback for
15478         gnat_genericize.
15479         (convert_from_reference, is_byref_result): New functions. Helpers for
15480         gnat_genericize_r.
15481         (create_type_decl): Call gnat_pushdecl before calling
15482         rest_of_decl_compilation, to make sure that field TYPE_NAME of
15483         type_decl is properly set before calling the debug information writers.
15484         (write_record_type_debug_info): The heuristics which compute the
15485         alignment of a field in a variant record might not be accurate. Add a
15486         safety test to make sure no alignment is set to a smaller value than
15487         the alignment of the field type.
15488         (make_dummy_type): Use the Non_Limited_View as the underlying type if
15489         the type comes from a limited_with clause. Do not loop on the full view.
15490         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
15491         (dummy_node_table): New global variable, moved from decl.c.
15492         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
15493         (save_gnu_tree): Use above macros.
15494         (get_gnu_tree): Likewise.
15495         (present_gnu_tree): Likewise.
15496         (init_dummy_type): New function, moved from decl.c. Use above macros.
15497         (make_dummy_type): Likewise.
15498         (tree_code_for_record_type): New function extracted from make_dummy_type
15499         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
15500         (static_ctors): Change it to a vector, make static.
15501         (static_dtors): Likewise.
15502         (end_subprog_body): Adjust for above change.
15503         (build_global_cdtor): Moved from trans.c.
15504         (gnat_write_global_declarations): Emit global constructor and
15505         destructor, and call cgraph_optimize before emitting debug info for
15506         global declarations.
15507         (global_decls): New global variable.
15508         (gnat_pushdecl): Store the global declarations in global_decls, for
15509         later use.
15510         (gnat_write_global_declarations): Emit debug information for global
15511          declarations.
15512         (create_var_decl_1): Former create_var_decl, with an extra argument to
15513          state whether the creation of a CONST_DECL is allowed.
15514         (create_var_decl): Behavior unchanged. Now a wrapper around
15515         create_var_decl_1 allowing CONST_DECL creation.
15516         (create_true_var_decl): New function, similar to create_var_decl but
15517         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
15518         (create_field_decl): Do not always mark the field as addressable
15519         if its type is an aggregate.
15520         (global_renaming_pointers): New static variable.
15521         (add_global_renaming_pointer): New function.
15522         (get_global_renaming_pointers): Likewise.
15523
15524         * misc.c (gnat_dwarf_name): New function.
15525         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
15526         (gnat_post_options): Add comment about structural alias analysis.
15527         (gnat_parse_file): Do not call cgraph_optimize here.
15528         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
15529
15530         * trans.c (process_freeze_entity): Don't abort if we already have a
15531         non dummy GCC tree for a Concurrent_Record_Type, as it might
15532         legitimately have been elaborated while processing the associated
15533         Concurrent_Type prior to this explicit freeze node.
15534         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
15535         exception handler volatile if it is of variable size.
15536         (process_type): Remove bypass for types coming from a limited_with
15537         clause.
15538         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
15539         actual, convert the corresponding gnu_actual to the real destination
15540         type when necessary.
15541         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
15542         originally TREE_READONLY but whose elaboration cannot be performed
15543         statically.
15544         Part of fix for F504-021.
15545         (tree_transform, subprogram cases): Change loops on formal parameters to
15546         call new Einfo function First_Formal_With_Extras.
15547         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
15548         stemming from type conversion for the lhs.
15549         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
15550         number of bits per unit for components of records.
15551         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
15552         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
15553         with At_End_Proc after the SJLJ EH cleanup.
15554         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
15555         compilation unit.
15556         (elaborate_all_entities): Do not retest type_annotate_only.
15557         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
15558         result type of an abstract subprogram, which may be an itype associated
15559         with an anonymous access result (related to AI-318-02).
15560         (build_global_cdtor): Move to utils.c.
15561         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
15562         this choice is not a null tree nor an integer constant.
15563         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
15564         on the body of elaboration routines instead of mark_unvisited.
15565         (add_stmt): Do not mark the tree.
15566         (add_decl_expr): Tweak comment.
15567         (mark_unvisited): Delete.
15568         (unshare_save_expr): New static function.
15569         (call_to_gnu): Issue an error when making a temporary around a
15570         procedure call because of non-addressable actual parameter if the
15571         type of the formal is by_reference.
15572         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
15573         after building the elaboration routine.
15574
15575 2006-10-31  Bob Duff  <duff@adacore.com>
15576
15577         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
15578         as finalization-started, so we can raise Program_Error on 'new'.
15579
15580         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
15581         collection has already started.
15582
15583         * s-finimp.ads (Collection_Finalization_Started): Added new special
15584         flag value for indicating that a collection's finalization has started.
15585
15586         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
15587         create a task whose master has already waited for dependent tasks.
15588
15589 2006-10-31  Robert Dewar  <dewar@adacore.com>
15590
15591         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
15592
15593         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads, 
15594         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads, 
15595         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads, 
15596         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads, 
15597         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads, 
15598         a-except-2005.ads: Add pragma Preelaborable_Warning
15599
15600 2006-10-31  Robert Dewar  <dewar@adacore.com>
15601             Jose Ruiz  <ruiz@adacore.com>
15602
15603         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
15604
15605         * ali.adb (Get_Name): Properly handle scanning of wide character names
15606         encoded with brackets notation.
15607         (Known_ALI_Lines): Add S lines to this list.
15608         (Scan_ALI): Acquire S (priority specific dispatching) lines.
15609         New flag Elaborate_All_Desirable in unit table
15610
15611         * ali.ads (Priority_Specific_Dispatching): Add this range of
15612         identifiers to be used for Priority_Specific_Dispatching table entries.
15613         (ALIs_Record): Add First_Specific_Dispatching and
15614         Last_Specific_Dispatching that point to the first and last entries
15615         respectively in the priority specific dispatching table for this unit.
15616         (Specific_Dispatching): Add this table for storing each S (priority
15617         specific dispatching) line encountered in the input ALI file.
15618         New flag Elaborate_All_Desirable in unit table
15619
15620         * bcheck.adb: (Check_Configuration_Consistency): Add call to
15621         Check_Consistent_Dispatching_Policy.
15622         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
15623         verifying that the use of Priority_Specific_Dispatching,
15624         Task_Dispatching_Policy, and Locking_Policy is consistent across the
15625         partition.
15626
15627         * bindgen.adb: (Public_Version_Warning): function removed.
15628         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
15629         required information from ALI files in order to initialize the table
15630         containing the specific dispatching policy.
15631         (Gen_Adainit_Ada): Generate the variables required for priority specific
15632         dispatching entries (__gl_priority_specific_dispatching and
15633         __gl_num_specific_dispatching).
15634         (Gen_Adainit_C): Generate the variables required for priority specific
15635         dispatching entries (__gl_priority_specific_dispatching and
15636         __gl_num_specific_dispatching).
15637         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
15638         pragma entries.
15639         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
15640         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
15641         (Tab_To): Removed.
15642         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
15643         a call to gnat_set_globals.
15644         Generate a string containing settings from
15645         Priority_Specific_Dispatching pragma entries.
15646         (Gen_Object_Files_Options): Do not include the runtime libraries when
15647         pragma No_Run_Time is specified.
15648
15649         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
15650         consistency with s-intman-posix.adb.
15651         (__gnat_error_handler, case FreeBSD): Account for the fact that the
15652         handler is installed with SA_SIGINFO.
15653         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
15654         FreeBSD ZCX support, copied from Linux version.
15655         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
15656         sigfillset, and sigemptyset so the routines defined by MaRTE.
15657         (__gl_priority_specific_dispatching): Add this variable that stores the
15658         string containing priority specific dispatching policies in the
15659         partition.
15660         (__gl_num_specific_dispatching): Add this variable that indicates the
15661         highest priority for which a priority specific dispatching pragma
15662         applies.
15663         (__gnat_get_specific_dispatching): Add this routine that returns the
15664         priority specific dispatching policy, as set by a
15665         Priority_Specific_Dispatching pragma appearing anywhere in the current
15666         partition. The input argument is the priority number, and the result
15667         is the upper case first character of the policy name.
15668         (__gnat_set_globals): Now a dummy function.
15669         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
15670         mechargs instead of sigargs, as the latter can be retrieved from the
15671         former and sigargs is not what we want on ia64.
15672         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
15673         mechargs argument.
15674         (__gnat_adjust_context_for_raise, ia64-vms): New function.
15675         (tasking_error): Remove unused symbol.
15676         (_abort_signal): Move this symbol to the IRIX specific part since this
15677         is the only target that uses this definition.
15678         (Check_Abort_Status): Move this symbol to the IRIX specific part since
15679         this is the only target that uses this definition.
15680         (Lock_Task): Remove unused symbol.
15681         (Unlock_Task): Remove unused symbol.
15682
15683         * lib-writ.adb (Write_ALI): Output new S lines for
15684         Priority_Specific_Dispatching pragmas.
15685         Implement new flag BD for elaborate body desirable
15686
15687         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
15688         (Specific_Dispatching): Add this table for storing the entries
15689         corresponding to Priority_Specific_Dispatching pragmas.
15690         Document new BD flag for elaborate body desirable
15691
15692         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
15693         of known pragmas.
15694
15695 2006-10-31  Javier Miranda  <miranda@adacore.com>
15696
15697         * a-tags.ads, a-tags.adb: 
15698         (Predefined_DT): New function that improves readability of the code.
15699         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
15700         Inherit_DT): Use the new function Predefined_DT to improve code
15701         readability.
15702         (Register_Interface_Tag): Update assertion.
15703         (Set_Interface_Table): Update assertion.
15704         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
15705         determining progenitor interfaces in Tags.
15706         (Inherit_CPP_DT): New subprogram.
15707
15708         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
15709         analysis of the thunk code.
15710         (Expand_Interface_Conversion): Handle run-time conversion of
15711         access to class wide types.
15712         (Expand_Dispatching_Call): When generating the profile for the
15713         subprogram itype for a dispatching operation, properly terminate the
15714         formal parameters chaind list (set the Next_Entity of the last formal
15715         to Empty).
15716         (Collect_All_Interfaces): Removed. This routine has been moved to
15717         sem_util and renamed as Collect_All_Abstract_Interfaces.
15718         (Set_All_DT_Position): Hidden entities associated with abstract
15719         interface primitives are not taken into account in the check for
15720         3.9.3(10); this check is done with the aliased entity.
15721         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
15722         interfacing with CPP by default.
15723         (Expand_Interface_Conversion): Add missing support for static conversion
15724         from an interface to a tagged type.
15725         (Collect_All_Interfaces): Add new out formal containing the list of
15726         abstract interface types to cleanup the subprogram Make_DT.
15727         (Make_DT): Update the code to generate the table of interfaces in case
15728         of abstract interface types.
15729         (Is_Predefined_Dispatching_Alias): New function that returns true if
15730         a primitive is not a predefined dispatching primitive but it is an
15731         alias of a predefined dispatching primitive.
15732         (Make_DT): If the ancestor of the type is a CPP_Class and we are
15733         compiling under full ABI compatibility mode we avoid the generation of
15734         calls to run-time services that fill the dispatch tables because under
15735         this mode we currently inherit the dispatch tables in the IP subprogram.
15736         (Write_DT): Emit an "is null" indication for a null procedure primitive.
15737         (Expand_Interface_Conversion): Use an address as the type of the formal
15738         of the internally built function that handles the case in which the
15739         target type is an access type.
15740
15741 2006-10-31  Robert Dewar  <dewar@adacore.com>
15742
15743         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
15744
15745 2006-10-31  Robert Dewar  <dewar@adacore.com>
15746
15747         * bindusg.ads, bindusg.adb:
15748         Change to package and rename procedure as Display, which
15749         now ensures that it only outputs usage information once.
15750
15751 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
15752
15753         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
15754         using RTPs.
15755
15756         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
15757         when using RTPs.
15758
15759 2006-10-31  Robert Dewar  <dewar@adacore.com>
15760             Ed Schonberg  <schonberg@adacore.com>
15761
15762         * treepr.adb: Use new subtype N_Membership_Test
15763
15764         * checks.ads, checks.adb: Add definition for Validity_Check
15765         (Range_Or_Validity_Checks_Suppressed): New function
15766         (Ensure_Valid): Test Validity_Check suppressed
15767         (Insert_Valid_Check): Test Validity_Check suppressed
15768         (Insert_Valid_Check): Preserve Do_Range_Check flag
15769         (Validity_Check_Range): New procedure
15770         (Expr_Known_Valid): Result of membership test is always valid
15771         (Selected_Range_Checks): Range checks cannot be applied to discriminants
15772         by themselves. Disabling those checks must also be done for task types,
15773         where discriminants may be used for the bounds of entry families.
15774         (Apply_Address_Clause_Check): Remove side-effects if address expression
15775         is non-static and is not the name of a declared constant.
15776         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
15777         Code cleanup and new error messages.
15778         (Enable_Range_Check): Test for some cases of suppressed checks
15779         (Generate_Index_Checks): Suppress index checks if index checks are
15780         suppressed for array object or array type.
15781         (Apply_Selected_Length_Checks): Give warning for compile-time detected
15782         length check failure, even if checks are off.
15783         (Ensure_Valid): Do not generate a check on an indexed component whose
15784         prefix is a packed boolean array.
15785         * checks.adb: (Alignment_Checks_Suppressed): New function
15786         (Apply_Address_Clause_Check): New procedure, this is a completely
15787         rewritten replacement for Apply_Alignment_Check
15788         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
15789         we request a discriminal value only in case of discriminants.
15790         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
15791         assignments where the target subtype is unconstrained and the target
15792         object is a parameter or dereference (other aliased cases are known
15793         to be unconstrained).
15794
15795 2006-10-31  Robert Dewar  <dewar@adacore.com>
15796
15797         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
15798         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
15799         vms_conv.adb: Fix bad table increment values (much too small)
15800
15801         * table.adb (Realloc): Make sure we get at least some new elements
15802         Defends against silly small values for table increment
15803
15804 2006-10-31  Robert Dewar  <dewar@adacore.com>
15805             Ed Schonberg  <schonberg@adacore.com>
15806             Bob Duff  <duff@adacore.com>
15807
15808         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
15809         entities. Move other fields around to make this possible
15810         (Is_Derived_Type): Add missing call to Is_Type.
15811         (Extra_Formals): New function for subprograms, entries, subprogram
15812         types.
15813         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
15814         (First_Formal_With_Extras): New function for subprogs, entries, subp
15815         types.
15816         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
15817         Add node information for E_Return_Statement.
15818         (Elaborate_Body_Desirable): New flag
15819         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
15820         to be Is_Inherently_Limited_Type, because return-by-reference has
15821         no meaning in Ada 2005.
15822         (E_Return_Statement): New entity kind.
15823         (Return_Applies_To): Field of E_Return_Statement.
15824         (Is_Return_Object): New flag in object entities.
15825         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
15826         (Must_Have_Preelab_Init): New flag
15827         (Known_To_Have_Preelab_Init): New flag
15828         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
15829         (Is_Visible_Formal): New flag on entities in formal packages.
15830         (Low_Bound_Known): New flag
15831         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
15832         Incomplete_Kind.
15833         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
15834         output when Id is an incomplete subtype.
15835
15836 2006-10-31  Robert Dewar  <dewar@adacore.com>
15837
15838         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
15839         Avoid abbreviation Creat
15840         (Finalize): List all sources in extended mail source if -gnatl
15841         switch is active.
15842         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
15843         (Finalize): Implement new -gnatl=xxx switch to output listing to file
15844         (Set_Specific_Warning_On): New procedure
15845         (Set_Specific_Warning_Off): New procedure
15846         Add implementation of new insertion \\
15847         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
15848         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
15849         types.
15850         (Error_Msg_Internal): Make sure that we set Last_Killed to
15851         True when a message from another package is suppressed.
15852         Implement insertion character ~ (insert string)
15853         (First_Node): Minor adjustments to get better placement.
15854
15855         * frontend.adb: 
15856         Implement new -gnatl=xxx switch to output listing to file
15857
15858         * gnat1drv.adb: 
15859         Implement new -gnatl=xxx switch to output listing to file
15860
15861         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
15862         (Commands_To_Stdout): New flag
15863         Implement new -gnatl=xxx switch to output listing to file
15864         New switch Dump_Source_Text
15865         (Warn_On_Deleted_Code): New warning flag for -gnatwt
15866         Define Error_Msg_Line_Length
15867         (Warn_On_Assumed_Low_Bound): New switch
15868
15869         * osint.ads, osint.adb
15870         (Normalize_Directory_Name): Fix bug.
15871         Implement new -gnatl=xxx switch to output listing to file
15872         (Concat): Removed, replaced by real concatenation
15873         Make use of concatenation now allowed in compiler
15874         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
15875         we find the 'lib' or 'bin' directory even when the tool has been
15876         invoked with a relative path.
15877         (Executable_Name): New function taking string parameters.
15878
15879         * osint-c.ads, osint-c.adb: 
15880         Implement new -gnatl=xxx switch to output listing to file
15881
15882         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
15883
15884         * switch-c.adb: 
15885         Implement new -gnatl=xxx switch to output listing to file
15886         Recognize new -gnatL switch
15887         (no longer keep in old warning about old style usage)
15888         Use concatenation to simplify code
15889         Recognize -gnatjnn switch
15890         (Scan_Front_End_Switches): Clean up handling of -gnatW
15891         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
15892
15893 2006-10-31  Robert Dewar  <dewar@adacore.com>
15894
15895         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
15896         (Set_Specific_Warning_Off): New procedure
15897         (Warning_Specifically_Suppressed): New function
15898         (Validate_Specific_Warnings): New procedure
15899         (Output_Msg_Text): Complete rewrite to support -gnatjnn
15900
15901         * err_vars.ads: Implement insertion character ~ (insert string)
15902
15903 2006-10-31  Bob Duff  <duff@adacore.com>
15904             Ed Schonberg  <schonberg@adacore.com>
15905
15906         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
15907         the parent part is a build-in-place function call, generate assignments.
15908         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
15909         are build-in-place function calls.
15910         (Replace_Self_Reference): New subsidiary of
15911         Make_OK_Assignment_Statement, to replace an access attribute that is a
15912         self-reference into an access to the appropriate component of the
15913         target object. Generalizes previous mechanism to handle self-references
15914         nested at any level.
15915         (Is_Self_Referential_Init): Remove, not needed.
15916         (Is_Self_Referential_Init): New predicate to simplify handling of self
15917         referential components in record aggregates.
15918         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
15919         check for presence of entity before checking for self-reference.
15920         (Has_Default_Init_Comps): Return True if a component association is a
15921         self-reference to the enclosing type, which can only come from a
15922         default initialization.
15923         (Make_OK_Assignment_Statement): If the expression is of the form
15924         Typ'Acc, where Acc is an access attribute, the expression comes from a
15925         default initialized self-referential component.
15926         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
15927         that has been derived from several abstract interfaces we must also
15928         initialize the tags of the secondary dispatch tables.
15929
15930 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
15931             Thomas Quinot  <quinot@adacore.com>
15932             Javier Miranda  <miranda@adacore.com>
15933             Robert Dewar  <dewar@adacore.com>
15934
15935         * exp_attr.adb: 
15936         (Expand_Access_To_Protected_Op): If the context indicates that an access
15937         to a local operation may be transfered outside of the object, create an
15938         access to the wrapper operation that must be used in an external call.
15939         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
15940         target, pass the Valid attribute applied to a floating-point prefix on
15941         to the back end without expansion.
15942         (Storage_Size): Use the new run-time function Storage_Size to retrieve
15943         the allocated storage when it is specified by a per-object expression.
15944         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
15945         Nothing to do here, the attribute has been rewritten during semantic
15946         analysis.
15947         (Expand_Attribute_Reference): Handle expansion of the new Priority
15948         attribute
15949         (Find_Fat_Info): Handle case of universal real
15950         (Expand_Access_To_Protected_Op): Fix use of access to protected
15951         subprogram from inside the body of a protected entry.
15952         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
15953         'Access and 'Unrestricted_Access, to transform the attribute reference
15954         into a fat pointer.
15955         (Is_Constrained_Aliased_View): New predicate to help determine whether a
15956         subcomponent's enclosing variable is aliased with a constrained subtype.
15957         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
15958         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
15959         an aliased prefix must be known to be constrained in order to use True
15960         for the attribute value, and now it's possible for some aliased views
15961         to be unconstrained.
15962
15963 2006-10-31  Robert Dewar  <dewar@adacore.com>
15964
15965         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
15966         (Expand_Entity_Reference): Correct error of not handling subprogram
15967         formals in current_value processing.
15968
15969 2006-10-31  Javier Miranda  <miranda@adacore.com>
15970             Robert Dewar  <dewar@adacore.com>
15971             Ed Schonberg  <schonberg@adacore.com>
15972             Gary Dismukes  <dismukes@adacore.com>
15973
15974         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
15975         register in the final list objects containing class-wide interfaces;
15976         otherwise we incorrectly register the tag of the interface in the final
15977         list.
15978         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
15979         generate the wrapper if the parent primitive is abstract. This is
15980         required to report the correct error message.
15981         (Expand_N_Subtype_Indication): Do validity checks on range
15982         (Clean_Task_Names): If an initialization procedure includes a call to
15983         initialize a task (sub)component, indicate that the procedure will use
15984         the secondary stack.
15985         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
15986         compatibility for interfacing with CPP by default.
15987         (Expand_N_Object_Declaration): Only build an Adjust call when the
15988         object's type is a nonlimited controlled type.
15989         * exp_ch3.adb: Add with and use of Exp_Ch6.
15990         (Expand_N_Object_Declaration): Check for object initialization that is a
15991         call to build-in-place function and apply Make_Build_In_Place_Call_In_
15992         Object_Declaration to the call.
15993         (Freeze_Type): When the designated type of an RACW was not frozen at the
15994         point where the RACW was declared, validate the primitive operations
15995         with respect to E.2.2(14) when it finally is frozen.
15996         (Build_Initialization_Call,Expand_Record_Controller): Rename
15997         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
15998         return-by-reference has no meaning in Ada 2005.
15999         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
16000         to register tag of the immediate ancestor interfaces in the
16001         run-time structure.
16002         (Init_Secondary_Tags): Moved to the specification to allow the
16003         initialization of extension aggregates with abstract interfaces.
16004         (Build_Master_Renaming): Make public, for use by function declarations
16005         whose return type is an anonymous access type.
16006         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
16007         Insert_List_Before_And_Analyze after the generation of the specs
16008         associated with null procedures.
16009         (Expand_Tagged_Root): Update documentation in its specification.
16010         (Init_Secondary_Tags): Update documentation.
16011         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
16012         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
16013         then generate code to inherit the contents of the dispatch table
16014         directly from the ancestor.
16015         (Expand_Record_Controller): Insert controller component after tags of
16016         implemented interfaces.
16017         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
16018         create null procedure overridings when null procedures are inherited
16019         from interfaces.
16020         (Make_Null_Procedure_Specs): New procedure to generate null procedure
16021         declarations for overriding null primitives inherited from interfaces.
16022         (Is_Null_Interface_Procedure): New function in
16023         Make_Null_Procedure_Specs.
16024         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
16025         immediate ancestor of a tagged type is an abstract interface type we
16026         must generate the specification of the predefined primitives associated
16027         with controlled types (because the dispatch table of the ancestor is
16028         null and hence these entries cannot be inherited). This is required to
16029         elaborate well the dispatch table.
16030
16031 2006-10-31  Javier Miranda  <miranda@adacore.com>
16032             Ed Schonberg  <schonberg@adacore.com>
16033             Bob Duff  <duff@adacore.com>
16034             Gary Dismukes  <dismukes@adacore.com>
16035             Robert Dewar  <dewar@adacore.com>
16036
16037         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
16038         conversion.
16039         (Expand_N_In): Do validity checks on range
16040         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
16041         (Expand_N_Allocator): For "new T", if the object is constrained by
16042         discriminant defaults, allocate the right amount of memory, rather than
16043         the maximum for type T.
16044         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
16045         when the allocator is initialized by a build-in-place call, since the
16046         allocator is already rewritten as a reference to the function result,
16047         and this prevents an unwanted duplication of the function call.
16048         Add with and use of Exp_Ch6.
16049         (Expand_Allocator_Expresssion): Check for an allocator whose expression
16050         is a call to build-in-place function and apply
16051         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
16052         untagged designated types).
16053         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
16054         optimization if source or target is biased.
16055         (Expand_N_Allocator): Add comments for case of an allocator within a
16056         function that returns an anonymous access type designating tasks.
16057         (Expand_N_Allocator): apply discriminant checks for access
16058         discriminants of anonymous access types (AI-402, AI-416)
16059
16060 2006-10-31  Bob Duff  <duff@adacore.com>
16061             Robert Dewar  <dewar@adacore.com>
16062             Gary Dismukes  <dismukes@adacore.com>
16063             Ed Schonberg  <schonberg@adacore.com>
16064
16065         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
16066
16067         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
16068         (Expand_N_Assignment_Statement): Call
16069         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
16070         build-in-place function call. Currently, this can happen only for
16071         assignments that come from aggregates.
16072         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
16073         in order to alleviate the upward compatibility introduced by AI-318.
16074         (Expand_N_Extended_Return_Statement): Add support for handling the
16075         return object as a build-in-place result.
16076         (Expand_Non_Function_Return): Implement simple return statements nested
16077         within an extended return.
16078         (Enable_New_Return_Processing): Turn on the new processing of return
16079         statements.
16080         (Expand_Non_Function_Return): For a return within an extended return,
16081         don't raise Program_Error, because Sem_Ch6 now gives a warning.
16082         (Expand_N_Extended_Return_Statement): Implement AI-318
16083         (Expand_Simple_Function_Return): Ditto.
16084         (Expand_N_If_Statement): Handle new -gnatwt warning
16085         (Expand_N_Case_Statement): Handle new -gnatwt warning
16086         (Expand_N_Assignment): Handle assignment to the Priority attribute of
16087         a protected object.
16088         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
16089         validity checking of assignments to elementary record components.
16090         (Expand_N_Return_Statement): return Class Wide types on the secondary
16091         stack independantly of their controlled status since with HIE runtimes,
16092         class wide types are not potentially controlled anymore.
16093
16094         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
16095         node kind.
16096
16097         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
16098         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
16099         it expects a block, procedure, or task. The return statement will get
16100         turned into a block, and Expand_Cleanup_Actions will happen then.
16101
16102 2006-10-31  Robert Dewar  <dewar@adacore.com>
16103             Ed Schonberg  <schonberg@adacore.com>
16104             Bob Duff  <duff@adacore.com>
16105             Gary Dismukes  <dismukes@adacore.com>
16106
16107         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
16108         capability.
16109         (Expand_Inlined_Call): Tagged types are by-reference types, and
16110         therefore should be replaced by a renaming declaration in the expanded
16111         body, as is done for limited types.
16112         (Expand_Call): If this is a call to a function with dispatching access
16113         result, propagate tag from context.
16114         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
16115         CPP by default.
16116         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
16117         build-in-place when the right-hand side of an assignment is a
16118         build-in-place function call.
16119         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
16120         of the explicit dereference of the allocator to the result subtype of
16121         the build-in-place function. This is needed to satisfy type checking
16122         in cases where the caller's return object is created by an allocator for
16123         a class-wide access type and the type named in the allocator is a
16124         specific type.
16125         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
16126         conversion of the reference to the declared object to the result subtype
16127         of the build-in-place function. This is needed to satisfy type checking
16128         in cases where the declared object has a class-wide type. Also, in the
16129         class-wide case, change the type of the object entity to the specific
16130         result subtype of the function, to avoid passing a class-wide object
16131         without explicit initialization to the back end.
16132         (Register_Interface_DT_Entry): Moved outside the body of
16133         Freeze_Subprogram because this routine is now public; it is called from
16134         Check_Dispatching_Overriding to handle late overriding of abstract
16135         interface primitives.
16136         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
16137         adding an implicit access actual on a call to a build-in-place function.
16138         (Expand_Actuals): Test for an actual parameter that is a call to a
16139         build-in-place function and apply
16140         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
16141         (Is_Build_In_Place_Function): New function to determine whether an
16142         entity is a function whose calls should be handled as build-in-place.
16143         (Is_Build_In_Place_Function_Call): New function to determine whether an
16144         expression is a function call that should handled as build-in-place.
16145         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
16146         calls to build-in-place functions as the initialization of an allocator.
16147         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
16148         handling calls to build-in-place functions in contexts that do not
16149         involve init of a separate object (for example, actuals of subprogram
16150         calls).
16151         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
16152         handling calls to build-in-place functions as the initialization of an
16153         object declaration.
16154         (Detect_Infinite_Recursion): Add explicit parameter Process to
16155         instantiation of Traverse_Body to avoid unreferenced warning.
16156         (Check_Overriding_Inherited_Interfaces): Removed.
16157         (Register_Interface_DT_Entry): Code cleanup.
16158         (Register_Predefined_DT_Entry): Code cleanup.
16159         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
16160         inlined statements if within a transient scope.
16161         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
16162         formal parameters with occurrences of actuals in inlined body, establish
16163         visibility on the proper view of the actual's subtype for the body's
16164         context.
16165         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
16166         compatibility mode and we have an imported CPP subprogram because
16167         for now we assume that imported CPP primitives correspond with
16168         objects whose constructor is in the CPP side (and therefore we
16169         don't need to generate code to register them in the dispatch table).
16170         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
16171         aligned selected component.
16172         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
16173         the actual of an in-mode parameter is a type conversion.
16174         (Expand_Actuals): If the call does not come from source and the actual
16175         is potentially misaligned, let gigi handle it rather than rejecting the
16176         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
16177         Class Wide types as returning by reference independantly of their
16178         controlled status since with HIE runtimes class wide types are not
16179         potentially controlled anymore.
16180
16181 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
16182
16183         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
16184         references that are private components of the protected object.
16185         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
16186         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
16187         instantiation to deal with warnings.
16188         (Initialize_Protection): If expression for priority is non-static, use
16189         System_Priority as its expected type, in case the expression has not
16190         been analyzed yet.
16191
16192 2006-10-31  Robert Dewar  <dewar@adacore.com>
16193
16194         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
16195         initialization of Homonym_Len.
16196         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
16197         names from fully qualified name. Fixes problem of duplicate
16198         external names differing only in the presence of such a block name.
16199
16200 2006-10-31  Thomas Quinot  <quinot@adacore.com>
16201             Pablo Oliveira  <oliveira@adacore.com>
16202
16203         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
16204         subprogram Ids, even if they are not yet assigned.
16205         (Build_Subprogram_Id): It is now this function that will take care of
16206         calling Assign_Subprogram_Ids if necessary.
16207         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
16208         should be done only once they are assigned.
16209         (Build_From_Any_Function, case of tagged types): Add missing call to
16210         Allocate_Buffer.
16211         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
16212         type for an RACW type.
16213         (Add_RACW_Features): When processing an RACW declaration for which the
16214         designated type is already frozen, enforce E.2.2(14) rules immediately.
16215         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
16216         special reordering of controlling formals.
16217
16218         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
16219         associated stub type for an RACW type.
16220
16221 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
16222
16223         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
16224         fixed-point operations in an integer context, i.e. as operands of a
16225         conversion to an integer type, indicate that result must be rounded.
16226
16227 2006-10-31  Robert Dewar  <dewar@adacore.com>
16228
16229         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
16230         cases, pass the encoding method, since it is now required by the run
16231         time.
16232
16233         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
16234         assumption that Str'First = 1.
16235         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
16236         it on to the Value_Wide_Wide_Character call.
16237         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
16238         properly handles a string of the form quote-encoded_wide_char-quote.
16239
16240         * s-wchcnv.adb: Minor reformatting
16241
16242 2006-10-31  Javier Miranda  <miranda@adacore.com>
16243
16244         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
16245         run-time membership test to ensure that the constructed object
16246         implements the target abstract interface.
16247
16248 2006-10-31  Robert Dewar  <dewar@adacore.com>
16249
16250         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
16251         Machine_Attribute pragma internally to implement the user pragma.
16252         Add processing for pragma Interface so that it is now completely
16253         equivalent to pragma Import.
16254
16255         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
16256         so that it can be applied to all entities, including record components
16257         and enumeration literals.
16258         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
16259         priority ranges are correct, verify compatibility against task
16260         dispatching and locking policies, and if everything is correct an entry
16261         is added to the table containing priority specific dispatching entries
16262         for this compilation unit.
16263         (Delay_Config_Pragma_Analyze): Delay processing
16264         Priority_Specific_Dispatching pragmas because when processing the
16265         pragma we need to access run-time data, such as the range of
16266         System.Any_Priority.
16267         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
16268         Allow pragma Unreferenced as a context item
16269         Add pragma Preelaborable_Initialization
16270         (Analyze_Pragma, case Interface): Interface is extended so that it is
16271         now syntactically and semantically equivalent to Import.
16272         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
16273         insertion characters.
16274         Add handling for Pragma_Wide_Character_Encoding
16275         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
16276         never supercedes a real restriction, and that a real restriction
16277         always supercedes a warning.
16278         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
16279         appropriate form.
16280
16281 2006-10-31  Bob Duff  <duff@adacore.com>
16282             Ed Schonberg  <schonberg@adacore.com>
16283             Robert Dewar  <dewar@adacore.com>
16284
16285         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
16286         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
16287         Is_Inherently_Limited_Type, because return-by-reference has no meaning
16288         in Ada 2005.
16289         (Find_Node_To_Be_Wrapped): Use new method of determining the result
16290         type of the function containing a return statement, because the
16291         Return_Type field was removed. We now use the Return_Applies_To field.
16292
16293         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
16294         (Build_Task_Image_Decl): If procedure is not called from an
16295         initialization procedure, indicate that function that builds task name
16296         uses the sec. stack. Otherwise the enclosing initialization procedure
16297         will carry the indication.
16298         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
16299         N_Object_Declaration instead.
16300         (Kill_Dead_Code): New interface to implement -gnatwt warning for
16301         conditional dead code killed, and change implementation accordingly.
16302         (Insert_Actions): Add N_Return_Object_Declaration case.
16303         Correct comment to mention N_Extension_Aggregate node.
16304         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
16305         attempts to save information for global variables which cannot be
16306         safely tracked.
16307         (Get_Current_Value_Condition): Handle conditions the other way round
16308         (constant on left). Also handle right operand of AND and AND THEN
16309         (Set_Current_Value_Condition): Corresponding changes
16310         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
16311         (Get_Current_Value_Condition): Handle simple boolean operands
16312         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
16313         (Get_Current_Value_Condition): If the variable reference is within an
16314         if-statement, does not appear in the list of then_statments, and does
16315         not come from source, treat it as being at unknown location.
16316         (Get_Current_Value_Condition): Enhance to allow while statements to be
16317         processed as well as if statements.
16318         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
16319         come from source.
16320         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
16321         of loop. This is safe now that we fixed Kill_Current_Values.
16322         (OK_To_Do_Constant_Replacement): Check whether current scope is
16323         Standard, before examining outer scopes.
16324
16325 2006-10-31  Vincent Celier  <celier@adacore.com>
16326
16327         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
16328         When True, apply VMS treatment to children of packages A, G, I and S.
16329         For F320-016
16330
16331         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
16332
16333 2006-10-31  Robert Dewar  <dewar@adacore.com>
16334             Ed Schonberg  <schonberg@adacore.com>
16335
16336         * freeze.adb: Add handling of Last_Assignment field
16337         (Warn_Overlay): Supply missing continuation marks in error msgs
16338         (Freeze_Entity): Add check for Preelaborable_Initialization
16339
16340         * g-comlin.adb: Add Warnings (Off) to prevent new warning
16341
16342         * g-expect.adb: Add Warnings (Off) to prevent new warning
16343
16344         * lib-xref.adb: Add handling of Last_Assignment field
16345         (Generate_Reference): Centralize handling of pragma Obsolescent here
16346         (Generate_Reference): Accept an implicit reference generated for a
16347         default in an instance.
16348         (Generate_Reference): Accept a reference for a node that is not in the
16349         main unit, if it is the generic body corresponding to an subprogram
16350         instantiation.
16351
16352         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
16353
16354         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
16355         -gnatwq/Q.
16356         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
16357         exception handler.
16358         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
16359         use clauses, to avoid messages on packages used to qualify, and also
16360         to avoid messages from obsolescent units.
16361         (Warn_On_Useless_Assignments): Don't generate messages for imported
16362         and exported variables.
16363         (Warn_On_Useless_Assignments): New procedure
16364         (Output_Obsolescent_Entity_Warnings): New procedure
16365         (Check_Code_Statement): New procedure
16366
16367         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
16368         Change name Is_Ada_2005 to Is_Ada_2005_Only
16369         (Last_Assignment): New field for useless assignment warning
16370
16371 2006-10-31  Olivier Hainque  <hainque@adacore.com>
16372
16373         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
16374         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
16375
16376 2006-10-31  Bob Duff  <duff@adacore.com>
16377             Robert Dewar  <dewar@adacore.com>
16378             Ed Schonberg  <schonberg@adacore.com>
16379
16380         * g-awk.adb (Default_Session, Current_Session): Compile this file in
16381         Ada 95 mode, because it violates the new rules for AI-318.
16382
16383         * g-awk.ads: Use overloaded subprograms in every case where we used to
16384         have a default of Current_Session. This makes the code closer to be
16385         correct for both Ada 95 and 2005.
16386
16387         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
16388         code, relying on the fact that the compiler generates a warning
16389         instead of an error in -gnatg mode.
16390
16391         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
16392         E_Return_Statement entity kind.
16393         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
16394
16395         * par.adb (P_Interface_Type_Definition): Addition of one formal to
16396         report an error if the reserved word abstract has been previously found.
16397         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
16398
16399         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
16400         parenthesized range attribute usage
16401         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
16402
16403         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
16404         in the syntax for extended_return_statement. This is not in the latest
16405         RM, but the ARG is expected to issue an AI allowing this.
16406         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
16407         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
16408         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
16409         P_Return_Statement): Parse the new syntax for extended_return_statement.
16410
16411         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
16412         Output_End_Missing): Add error-recovery code for the new
16413         extended_return_statement syntax; that is, the new E_Return entry on
16414         the scope stack.
16415
16416         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
16417         limited to nonlimited, because otherwise we violate the new Ada 2005
16418         rules about returning limited types in function Create_AST_Handler in
16419         s-asthan.adb.
16420
16421         * sem.adb (Analyze): Add cases for new node kinds
16422         N_Extended_Return_Statement and N_Return_Object_Declaration.
16423
16424         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
16425         type is in the same category as type of context before applying check,
16426         to prevent anomalies in instantiations.
16427         (Resolve_Aggregate): Remove test for limited components in aggregates.
16428         It's unnecessary in Ada 95, because if it has limited components, then
16429         it must be limited. It's wrong in Ada 2005, because limited aggregates
16430         are now allowed.
16431         (Resolve_Record_Aggregate): Move check for limited types later, because
16432         OK_For_Limited_Init requires its argument to have been resolved.
16433         (Get_Value): When copying the component default expression for a
16434         defaulted association in an aggregate, use the sloc of the aggregate
16435         and not that of the original expression, to prevent spurious
16436         elaboration errors, when the expression includes function calls.
16437         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
16438         were missing. We also didn't handle qualified expressions. Now also
16439         allow function calls. Use new common routine OK_For_Limited_Init.
16440         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
16441         with space can upper case letter).
16442
16443         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
16444         Has_Static_Discriminants flag
16445         (Record_Type_Declaration): Diagnose an attempt to declare an interface
16446         type with discriminants.
16447         (Process_Range_Expr_In_Decl): Do validity checks on range
16448         (Build_Discriminant_Constraints): Use updated form of
16449         Denotes_Discriminant.
16450         (Process_Subtype): If the subtype is a private subtype whose full view
16451         is a concurrent subtype, introduce an itype reference to prevent scope
16452         anomalies in gigi.
16453         (Build_Derived_Record_Type, Collect_Interface_Primitives,
16454         Record_Type_Declaration):  The functionality of the subprograms
16455         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
16456         is now performed by a single routine.
16457         (Build_Derived_Record_Type): If the type definition includes an explicit
16458         indication of limitedness, then the type must be marked as limited here
16459         to ensure that any access discriminants will not be treated as having
16460         a local anonymous access type.
16461         (Check_Abstract_Overriding): Issue a detailed error message when an
16462         abstract subprogram was not overridden due to incorrect mode of its
16463         first parameter.
16464         (Analyze_Private_Extension_Declaration): Add support for the analysis of
16465         synchronized private extension declarations. Verify that the ancestor is
16466         a limited or synchronized interface or in the generic case, the ancestor
16467         is a tagged limited type or synchronized interface and all progenitors
16468         are either limited or synchronized interfaces.
16469         Derived_Type_Declaration): Check for presence of private extension when
16470         dealing with synchronized formal derived types.
16471         Process_Full_View): Enchance the check done on the usage of "limited" by
16472         testing whether the private view is synchronized.
16473         Verify that a synchronized private view is completed by a protected or
16474         task type.
16475         (OK_For_Limited_Init_In_05): New function.
16476         (Analyze_Object_Declaration): Move check for limited types later,
16477         because OK_For_Limited_Init requires its argument to have been resolved.
16478         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
16479         in order to alleviate the upward compatibility introduced by AI-318.
16480         (Constrain_Corresponding_Record): If the constraint is for a component
16481         subtype, mark the itype as frozen, to avoid out-of-scope references to
16482         discriminants in the back-end.
16483         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
16484         this subprogram against wrong sources.
16485         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
16486         discriminant of limited type completed with a protected type, when the
16487         discriminant is used to constrain a private component of the type, and
16488         expansion is disabled.
16489         (Find_Type_Of_Object): Do not treat a return subtype that is an
16490         anonymous subtype as a local_anonymous_type, because its accessibility
16491         level is the return type of the enclosing function.
16492         (Check_Initialization): In -gnatg mode, turn the error "cannot
16493         initialize entities of limited type" into a warning.
16494         (OK_For_Limited_Init): Return true for generated nodes, since it
16495         sometimes violates the legality rules.
16496         (Make_Incomplete_Declaration): If the type for which an incomplete
16497         declaration is created happens to be the currently visible entity,
16498         preserve the homonym chain when removing it from visibility.
16499         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
16500         inherited subprograms.
16501         (Access_Definition): If this is an access to function that is the return
16502         type of an access_to_function definition, context is a type declaration
16503         and the scope of the anonymous type is the current one.
16504         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
16505         incomplete subtype to the set of private dependents of the original
16506         incomplete type.
16507         (Constrain_Discriminated_Type): Emit an error message whenever an
16508         incomplete subtype is being constrained.
16509         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
16510         corresponding subtype of the full view of the original incomplete type.
16511         (Check_Incomplete): Properly detect invalid usage of incomplete types
16512         and subtypes.
16513
16514 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
16515
16516         * g-catiio.ads, g-catiio.adb (Value): New function.
16517         Given an input String, try and parse a valid Time value.
16518
16519 2006-10-31  Vincent Celier  <celier@adacore.com>
16520
16521         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
16522         Integer_Address arithmetic, as in Set_Valid.
16523
16524 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
16525             Robert Dewar  <dewar@adacore.com>
16526
16527         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
16528         handling executable extension manually and duplicating code.
16529
16530         * make.adb: Implement new -S switch
16531         (Gnatmake): Use new function Osint.Executable_Name instead
16532         of handling executable extension manually.
16533
16534         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
16535         is specified, the executable name ends with this suffix.
16536         Take advantage of Osint.Executable_Name instead of duplicating code.
16537
16538         * switch-m.adb: Recognize new gnatmake -S switch
16539
16540         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
16541         variable.
16542         (Get_Target_Parameters): Set Executable_Extension_On_Target if
16543         available.
16544
16545         * makeusg.adb: Add line for gnatmake -S switch
16546
16547 2006-10-31  Vincent Celier  <celier@adacore.com>
16548
16549         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
16550         call it with -static-libgcc, as there are some platforms, such as
16551         Darwin, where one of these two switches is compulsory to link.
16552
16553 2006-10-31  Vincent Celier  <celier@adacore.com>
16554
16555         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
16556         instead of ADA_PROJECT_PATH, for the project path.
16557         (Gnatls): When displaying the project path directories, use host dir
16558         specs.
16559
16560         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
16561         names in the project path, as absolute paths may correspond to
16562         multi-valued VMS logical names.
16563
16564 2006-10-31  Vincent Celier  <celier@adacore.com>
16565
16566         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
16567         absolute path name.
16568         (Locate_Regular_File): Ditto
16569         (Change_Dir): Remove, no longer used
16570         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
16571         on Windows. Get it calling Get_Current_Dir.
16572         (OpenVMS): Remove imported boolean, no longer needed.
16573         (Normalize_Pathname)[VMS]: Do not resolve directory names.
16574         (Pid_To_Integer): New function to convert a Process_Id to  Integer
16575
16576 2006-10-31  Thomas Quinot  <quinot@adacore.com>
16577
16578         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
16579         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
16580         to No_Socket.
16581         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
16582         W_Sig_Socket.
16583
16584 2006-10-31  Robert Dewar  <dewar@adacore.com>
16585
16586         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
16587         initial letter o as a zero.
16588
16589 2006-10-31  Robert Dewar  <dewar@adacore.com>
16590
16591         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
16592
16593 2006-10-31  Robert Dewar  <dewar@adacore.com>
16594
16595         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
16596         variant records
16597         (Layout_Variant_Record): Retrieve the discriminants from the entity
16598         rather than from the type definition, because in the case of a full
16599         type for a private type we need to take the discriminants from the
16600         partial view.
16601         (Layout_Component_List): When applying the Max operator to variants with
16602         a nonstatic size, check whether either operand is static and scale that
16603         operand from bits to storage units before applying Max.
16604         (Layout_Type): In VMS, if a C-convention access type has no explicit
16605         size clause (and does not inherit one in the case of a derived type),
16606         then the size is reset to 32 from 64.
16607
16608 2006-10-31  Vincent Celier  <celier@adacore.com>
16609
16610         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
16611         its file has already been loaded, according to the unit being loaded,
16612         not to the current value of Multiple_Unit_Index.
16613
16614 2006-10-31  Thomas Quinot  <quinot@adacore.com>
16615             Eric Botcazou  <ebotcazou@adacore.com>
16616             Arnaud Charlet  <charlet@adacore.com>
16617
16618         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
16619         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
16620         possible.
16621         (a-except.o): Pass it to the compiler.
16622         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
16623         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
16624         a-calend-mingw.adb version.
16625
16626         * Makefile.rtl: Added s-dsaser.
16627         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
16628         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
16629         Ada.Dispatching.Round_Robin.
16630         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
16631
16632         * Make-lang.in: Remove all references to gt-ada-decl.h.
16633         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
16634         sources.
16635         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
16636         Update dependencies.
16637
16638         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
16639
16640 2006-10-31  Vincent Celier  <celier@adacore.com>
16641
16642         * mlib-utl.adb (Initialized): Remove, no longer used
16643         (Initialize): Remove, no longer used
16644         (Ar): If Ar_Exec is null, get the location of the archive builder and,
16645         if there is one, the archive indexer. Fail if the archive builder cannot
16646         be found.
16647         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
16648         be found.
16649
16650 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
16651
16652         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
16653         Process_Body_Clauses): If the context of a body includes a use clause
16654         for P.Q then a with_clause for P in the same body is not redundant,
16655         even if the spec also has a with_clause on P.
16656         Add missing continuation mark to error msg
16657         (Build_Limited_Views): A limited view of a type is tagged if its
16658         declaration includes a record extension.
16659         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
16660         node, even if the subunit has errors. This avoids malfunction by
16661         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
16662         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
16663         generation of obsolescent messages for with statements (cannot do
16664         this too early, or we cannot implement avoiding the messages in the
16665         case of obsolescent units withing obsolescent units).
16666         (Install_Siblings): If the with_clause is on a remote descendant of
16667         an ancestor of the current compilation unit, find whether there is
16668         a sibling child unit that is immediately visible.
16669         (Remove_Private_With_Clauses): New procedure, invoked after completing
16670         the analysis of the private part of a nested package, to remove from
16671         visibility the private with_clauses of the enclosing package
16672         declaration.
16673         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
16674         now centralized in Generate_Reference.
16675         (Install_Limited_Context_Clauses): Remove superfluous error
16676         message associated with unlimited view visible through use
16677         and renamings. In addition, at the point in which the error
16678         is reported, we add the backslash to the text of the error
16679         to ensure that it is reported as a single error message.
16680         Use new // insertion for some continuation messages
16681         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
16682         to create implicit with_clause for parent unit mentioned in original
16683         limited_with_clause.
16684         (Install_Limited_With_Unit): Set entity of parent identifiers if the
16685         unit is a child unit. For ASIS queries.
16686         (Analyze_Subunit): If the subunit appears within a child unit, make all
16687         ancestor child units directly visible again.
16688
16689 2006-10-31  Robert Dewar  <dewar@adacore.com>
16690
16691         * par-ch10.adb (P_Context_Clause): Minor error message fix
16692
16693 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
16694             Javier Miranda  <miranda@adacore.com>
16695
16696         * par-ch12.adb: Grammar update and cleanup.
16697         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
16698         support for synchronized derived type definitions.
16699         Add the new actual Abstract_Present to every call to
16700         P_Interface_Type_Definition.
16701         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
16702         a formal object declaration with an access definition or a subtype mark
16703         with a null exclusion.
16704         (P_Generic_Association): Handle association with box, and others_choice
16705         with box, to support Ada 2005 partially parametrized formal packages.
16706
16707 2006-10-31  Robert Dewar  <dewar@adacore.com>
16708             Javier Miranda  <miranda@adacore.com>
16709
16710         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
16711         (P_Type_Declaration): Remove barrier against the reserved word "limited"
16712         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
16713         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
16714         private extensions.
16715         (P_Type_Declaration): Add the new actual Abstract_Present to every call
16716         to P_Interface_Type_Definition.
16717         (P_Interface_Type_Definition): Addition of one formal to report an error
16718         if the reserved word abstract has been previously found.
16719         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
16720         object renaming declaration with an access definition or subtype mark
16721         with a possible null exclusion.
16722
16723         * par-ch9.adb: Minor error msg fix
16724
16725         * par-load.adb: Add missing continuation mark to error msg
16726
16727         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
16728
16729 2006-10-31  Vincent Celier  <celier@adacore.com>
16730
16731         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
16732         unknown attribute in unknown package or in package that does not need
16733         to be checked.
16734         (Parse_Package_Declaration): Do not issue warning for unknown package in
16735         quiet output.
16736
16737 2006-10-31  Vincent Celier  <celier@adacore.com>
16738
16739         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
16740         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
16741         Packages_To_Check.
16742
16743 2006-10-31  Vincent Celier  <celier@adacore.com>
16744
16745         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
16746         on VMS, change "__" to '.' before checking the name.
16747         (Record_Ada_Source): Always add the source file name in the list of
16748         of sources, even if it is not the first time, as it is for another
16749         source index.
16750         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
16751         dot, instead of replacing only the first '_'.
16752
16753         * prj-part.adb (Parse): Convert project file path to canonical form
16754
16755         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
16756         extended, the project id of the project extending it is recorded in its
16757         data, even when it has already been processed as an imported project.
16758
16759 2006-10-31  Robert Dewar  <dewar@adacore.com>
16760
16761         * repinfo.adb (List_Entities): Don't list entities from renaming
16762         declarations.
16763
16764 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
16765             Robert Dewar  <dewar@adacore.com>
16766
16767         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
16768         only a restriction warning is active for the given restriction. This is
16769         desirable because we do not want to modify code in the case where only
16770         a warning is set.
16771         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
16772         causes overriding of real restrictions.
16773         Take advantage of new No_Restrictions constant.
16774
16775         * raise.h: (__gnat_set_globals): Change profile.
16776
16777 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
16778
16779         * rtsfind.adb: Remove s-polint from comment as it exists no more.
16780
16781         * rtsfind.ads: 
16782         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
16783         Move all the entities in obsolete package System.PolyORB_Interface to
16784         System.Partition_Interface.
16785         (RE_Storage_Size): New function in System.Tasking.
16786         (RE_Get_Ceiling): New entity.
16787         (RE_Set_Ceiling): New entity.
16788         (RO_PE_Get_Ceiling): New entity.
16789         (RO_RE_Set_Ceiling): New entity.
16790         (Inherit_CPP_DT): New entity
16791
16792 2006-10-31  Robert Dewar  <dewar@adacore.com>
16793
16794         * scng.adb (Scan, case of numeric literal): Better msg for identifier
16795         starting with a digit.
16796
16797 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
16798             Thomas Quinot  <quinot@adacore.com>
16799             Javier Miranda  <miranda@adacore.com>
16800             Gary Dismukes  <dismukes@adacore.com>
16801
16802         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
16803         properly an attempt to apply Unchecked_Access to a protected operation.
16804         (OK_Self_Reference): New subprogram to check the legality of an access
16805         attribute whose prefix is the type of an enclosing aggregate.
16806         Generalizes previous mechanism to handle attribute references nested
16807         arbitrarily deep within the aggregate.
16808         (Analyze_Access_Attribute): An access attribute whose prefix is a type
16809         can appear in an aggregate if this is a default-initialized aggregate
16810         for a self-referential type.
16811         (Resolve_Attribute, case Access): Ditto.
16812         Add support for new implementation defined attribute Stub_Type.
16813         (Eval_Attribute, case Attribute_Stub_Type): New case.
16814         (Analyze_Attribute, case Attribute_Stub_Type): New case.
16815         (Stream_Attribute_Available): Implement using new subprogram from
16816         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
16817         Has_Specified_Stream_Attribute flag.
16818         Disallow Storage_Size and Storage_Pool for access to subprogram
16819         (Resolve_Attribute, case 'Access et al): Take into account anonymous
16820         access types of return subtypes in extended return statements. Remove
16821         accessibility checks on anonymous access types when Unchecked_Access is
16822         used.
16823         (Analyze_Attribute): Add support for the use of 'Class to convert
16824         a class-wide interface to a tagged type.
16825         Add support for the attribute Priority.
16826         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
16827         whether the designated type is discriminated with a constrained partial
16828         view and require static matching in that case.
16829         Add local variable Des_Btyp. The Designated_Type
16830         of an access to incomplete subtype is either its non-limited view if
16831         coming from a limited with or its etype if regular incomplete subtype.
16832
16833         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
16834         Fix predicate to identify and allow cases of (expander-generated)
16835         references to tag of designated object of a RACW.
16836         (Validate_Static_Object_Name): In Ada 2005, a formal object is
16837         non-static, and therefore cannot appear as a primary in a preelaborable
16838         package.
16839         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
16840         Has_Read_Write_Attributes.
16841         (Has_Read_Write_Attributes): Reimplement in termes of
16842         Has_Stream_Attribute_Definition.
16843         (Missing_Read_Write_Attributes): When checking component types in a
16844         record, unconditionally call Missing_Read_Write_Attributes recursively
16845         (remove guard checking for Is_Record_Type / Is_Access_Type).
16846
16847 2006-10-31  Robert Dewar  <dewar@adacore.com>
16848
16849         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
16850         useless assignments here and conditionalize it on absence of exception
16851         handlers.
16852         (Analyze_Exception_Handlers): Small code reorganization of error
16853         detection code, for new handling of formal packages.
16854
16855 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
16856             Hristian Kirtchev  <kirtchev@adacore.com>
16857
16858         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
16859         that has been constant-folded, preserve information of original tree,
16860         for ASIS uses.
16861         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
16862         generated private extension declaration if the formal derived type is
16863         synchronized. Carry synchronized present over to the generated private
16864         extension.
16865         (Validate_Derived_Type_Instance): Ensure that the actual of a
16866         synchronized formal derived type is a synchronized tagged type.
16867         (Instantiate_Formal_Package): When creating the instantiation used to
16868         validate the actual package of a formal declared without a box, check
16869         whether the formal itself depends on a prior actual.
16870         (Instantiate_Formal_Subprogram): Create new entities for the defining
16871         identifiers of the formals in the renaming declaration, for ASIS use.
16872         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
16873         a renaming declaration or a subtype declaration for an actual in an
16874         instance, capture location information of declaration in generic, for
16875         ASIS use.
16876         (Instantiate_Formal_Package): Add comments on needed additional tests.
16877         AI-317 (partial parametrization) is fully implemented.
16878         (Validate_Private_Type_Instance): Add check for actual which
16879         must have preelaborable initialization
16880         Use new // insertion for some continuation messages
16881         (Analyze_Formal_Object_Declaration): Change usage of Expression to
16882         Default_Expression. Add type retrieval when the declaration has an
16883         access definition. Update premature usage of incomplete type check.
16884         (Check_Access_Definition): New subsidiary routine. Check whether the
16885         current compilation version is Ada 05 and the supplied node has an
16886         access definition.
16887         (Instantiate object): Alphabetize local variables. Handle the creation
16888         of new renaming declarations with respect to the kind of definition
16889         used - either an access definition or a subtype mark. Guard against
16890         unnecessary error message in the context of anonymous access types after
16891         they have been resolved. Add check for required null exclusion in a
16892         formal object declaration.
16893         (Switch_View): A private subtype of a non-private type needs to be
16894         switched (the base type can have been switched without its private
16895         dependents because of the last branch of Check_Private_View.
16896         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
16897         value from BT.
16898         (Instantiate_Type): Emit an error message whenever a class-wide type of
16899         a tagged incomplete type is used as a generic actual.
16900         (Find_Actual_Type): Extend routine to handle a component type in a child
16901         unit that is imported from a formal package in a parent.
16902         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
16903         agree on constrainedness, rather than checking against ultimate ancestor
16904         (Instantiate_Subprogram_Body): Create a cross-reference link to the
16905         generic body, for navigation purposes.
16906
16907 2006-10-31  Robert Dewar  <dewar@adacore.com>
16908             Thomas Quinot  <quinot@adacore.com>
16909
16910         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
16911         type.
16912         (New_Stream_Subprogram): When processing an attribute definition clause
16913         for a stream-oriented subprogram, record an entity node occurring at
16914         the point of clause to use for checking the visibility of the clause,
16915         as defined by 8.3(23) as amended by AI-195.
16916         (New_Stream_Subprogram): New procedure, factoring behaviour from both
16917          New_Stream_Function and New_Stream_Procedure.
16918         (New_Stream_Function, New_Stream_Procedure): Removed.
16919         (Analyze_Attribute_Definition_Clause, case Address): Check new
16920         Alignment_Check check
16921
16922 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
16923             Javier Miranda  <miranda@adacore.com>
16924             Robert Dewar  <dewar@adacore.com>
16925
16926         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
16927         generate the same errors compiling under -gnatc.
16928         (Try_Object_Operation): If no candidate interpretation succeeds, but
16929         there is at least one primitive operation with the right name, report
16930         error in call rather than on a malformed selected component.
16931         (Analyze_Selected_Component): If the prefix is an incomplete type from
16932         a limited view, and the full view is available, use the full view to
16933         determine whether this is a prefixed call to a primitive operation.
16934         (Operator_Check): Verify that a candidate interpretation is a binary
16935         operation before checking the type of its second formal.
16936         (Analyze_Call): Add additional warnings for function call contexts not
16937         yet supported.
16938         (Analyze_Allocator): Move the check for "initialization not allowed for
16939         limited types" after analyzing the expression. This is necessary,
16940         because OK_For_Limited_Init looks at the structure of the expression.
16941         Before analysis, we don't necessarily know what sort of expression it
16942         is. For example, we don't know whether F(X) is a function call or an
16943         indexed component; the former is legal in Ada 2005; the latter is not.
16944         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
16945         were missing. We also didn't handle qualified expressions. Now also
16946         allow function calls. Use new common routine OK_For_Limited_Init.
16947         (Analyze_Type_Conversion): Do not perform some legality checks in an
16948         instance, because the error message will be redundant or spurious.
16949         (Analyze_Overloaded_Selected_Component): Do not do style check when
16950         setting an entity, since we do not know it is the right entity yet.
16951         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
16952         (Analyze_Overloaded_Selected_Component): Same change
16953         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
16954         since regular incomplete subtypes are transformed into corresponding
16955         subtypes of their full views.
16956         (Complete_Object_Operation): Treat name of transformed subprogram call
16957         as coming from source, for browsing purposes.
16958         (Try_Primitive_Operation): If formal is an access parameter, compare
16959         with base type of object to determine whether it is a primitive
16960         operation.
16961         (Operator_Check): If no interpretation of the operator matches, check
16962         whether a use clause on any candidate might make the operation legal.
16963         (Try_Class_Wide_Operation): Check whether the first parameter is an
16964         access type whose designated type is class-wide.
16965
16966 2006-10-31  Robert Dewar  <dewar@adacore.com>
16967             Ed Schonberg  <schonberg@adacore.com>
16968             Gary Dismukes  <dismukes@adacore.com>
16969
16970         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
16971         warn on infinite loops.
16972         Add \\ to some continuation messages
16973         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
16974         (Process_Bounds): If the bounds are integer literals that result from
16975         constant-folding, and they carry a user-defined type, preserve that type
16976         rather than treating this as an integer range.
16977         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
16978         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
16979         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
16980         left hand side of assignment.
16981         (Analyze_Assignment): Add suport to manage assigments to the attribute
16982         priority of a protected object.
16983         (Check_Possible_Current_Value_Condition): Allow fully qualified names
16984         not just identifiers.
16985         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
16986         or AND THEN for possible tracking.
16987         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
16988         case of while loops so we can track values in the loop body.
16989
16990 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
16991             Hristian Kirtchev  <kirtchev@adacore.com>
16992             Bob Duff  <duff@adacore.com>
16993
16994         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
16995         procedure cannot be a protected operation (it is a basic_declaration,
16996         not a subprogram_declaration).
16997         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
16998         Subp. Add logic for entry processing.
16999         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
17000         Determine whether an entry or subprogram of a protected or task type
17001         override an inherited primitive of an implemented interface.
17002         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
17003         Update the actual used in calls to Check_Overriding_Indicator.
17004         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
17005         generate the proper reference to the parent unit, for cross-reference.
17006         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
17007         Is_Formal.
17008         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
17009         (Add_Extra_Formal): Revise procedure to allow passing in associated
17010         entity, scope, and name suffix, and handle setting of the new
17011         Extra_Formals field.
17012         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
17013         pass new parameters. Add support for adding the new extra access formal
17014         for functions whose calls are treated as build-in-place.
17015         (Analyze_A_Return_Statement): Correct casing in error message.
17016         Move Pop_Scope to after Analyze_Function_Return, because an extended
17017         return statement really is a full-fledged scope. Otherwise, visibility
17018         doesn't work right. Correct use of "\" for continuation messages.
17019         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
17020         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
17021         the node doesn't get properly marked as analyzed.
17022         (Analyze_Subprogram_Body): If subprogram is a function that returns
17023         an anonymous access type that denotes a task, build a Master Entity
17024         for it.
17025         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
17026         proper usage of null exclusion in a result definition.
17027         (Process_Formals): Code cleanup and new error message.
17028         (Process_Formals): Detect incorrect application of null exclusion to
17029         non-access types.
17030         (Conforming_Types): Handle conformance between [sub]types and itypes
17031          generated for entities that have null exclusions applied to them.
17032         (Maybe_Primitive_Operation): Add an additional type retrieval when the
17033          base type is an access subtype. This case arrises with null exclusions.
17034         (New_Overloaded_Entity): Do not remove the overriden entity from the
17035         homonym chain if it corresponds with an abstract interface primitive.
17036         (Process_Formals): Replace membership test agains Incomplete_Kind with a
17037         call to the synthesized predicate Is_Incomplete_Type.
17038         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
17039         primitives.
17040         (Analyze_Subprogram_Declaration): Check that abstract interface
17041         primitives are abstract or null.
17042         (Analyze_Subprogram_Specification): Remove previous check for abstract
17043         interfaces because it was not complete.
17044         (Has_Interface_Formals): Removed.
17045
17046 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
17047             Javier Miranda  <miranda@adacore.com>
17048
17049         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
17050         of Analyze_Package_Body, to create Itype references for anonymous
17051         access types created in the package declaration, whose designated types
17052         may have only a limited view.
17053         (Analyze_Package_Specification): For the private part of a nested
17054         package, install private_with_clauses of enclosing compilation unit if
17055         we are in its visible part.
17056         (Declare_Inherited_Private_Subprograms): Complete barrier
17057         to ensure that the primitive operation has an alias to some parent
17058         primitive. This is now required because, after the changes done for the
17059         implementation of abstract interfaces, the contents of the list of
17060         primitives has entities whose alias attribute references entities of
17061         such list of primitives.
17062         (Analyze_Package_Specification): Simplify code that handles parent units
17063         of instances and formal packages.
17064         (Uninstall_Declarations): Check the convention consistency among
17065         primitive overriding operations of a tagged record type.
17066
17067 2006-10-31  Robert Dewar  <dewar@adacore.com>
17068             Hristian Kirtchev  <kirtchev@adacore.com>
17069             Javier Miranda  <miranda@adacore.com>
17070             Ed Schonberg  <schonberg@adacore.com>
17071
17072         * sem_ch8.adb: Minor error msg rewording
17073         (Undefined): When checking for misspellings, invert arguments (to get
17074         expected and found set right)
17075         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
17076         (Analyze_Generic_Renaming): Same fix
17077         (Use_One_Package): Do not take into account the internal entities of
17078         abstract interfaces during the analysis of entities that are marked
17079         as potentially use-visible.
17080         (Find_Type): Handle the case of an attribute reference for
17081         implementation defined attribute Stub_Type (simply let the analysis of
17082         the attribute reference rewrite it).
17083         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
17084         type that appears in a Use_Type clause.
17085         (Analyze_Object_Renaming): Add support for renaming of the Priority
17086         attribute.
17087         (Find_Type): In Ada 2005, a task type can be used within its own body,
17088         when it appears in an access definition.
17089         (Analyze_Object_Renaming): Remove warning on null_exclusion.
17090         (Analyze_Object_Renaming): Introduce checks for required null exclusion
17091          in a formal object declaration or in a subtype declaration.
17092         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
17093         (Check_Null_Exclusion): New local routine to
17094         Analyze_Subprogram_Renaming. Check whether the formals and return
17095         profile of a renamed subprogram have required null exclusions when
17096         their counterparts of the renaming already impose them.
17097         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
17098         Determine whether an entity is inside a generic scope.
17099         (In_Open_Scope): First pass of documentation update.
17100         (Find_Expanded_Name): Add support for shadow entities associated with
17101         limited withed packages. This is required to handle nested packages.
17102         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
17103         that makes a renaming of a limited withed package illegal.
17104
17105 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
17106             Ed Schonberg  <schonberg@adacore.com>
17107
17108         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
17109         Check_Overriding_Indicator.
17110         (Analyze_Task_Definition): Ditto.
17111         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
17112         (Check_Overriding_Indicator): To find overridden interface operation,
17113         examine only homonyms that have an explicit subprogram declaration, not
17114         inherited operations created by an unrelated type derivation.
17115         (Check_Overriding_Indicator): When checking for the presence of "null"
17116         in a procedure, ensure that the queried node is a procedure
17117         specification.
17118         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
17119         type when the formal is an access to variable.
17120         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
17121         (Analyze_Task_Type): Same addition
17122         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
17123         provide navigation capabilities for entries.
17124
17125 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
17126             Ed Schonberg  <schonberg@adacore.com>
17127             Javier Miranda  <miranda@adacore.com>
17128             Gary Dismukes  <dismukes@adacore.com>
17129
17130         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
17131         inherited from an interface ancestor by another interface in the
17132         context of an instance as 'late'.
17133         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
17134         of a call to a function that dispatches on access result.
17135         (Check_Dispatching_Operation): In case of late overriding of a primitive
17136         that covers abstract interface subprograms we register it in all the
17137         secondary dispatch tables associated with abstract interfaces.
17138         (Check_Dispatching_Call): Add check that a dispatching call is not made
17139         to a function with a controlling result of a limited type. This is a
17140         current implementation restriction.
17141         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
17142         (Check_Dispatching_Operation): Do no emit a warning if the controlling
17143         argument is an interface type that is a generic formal.
17144         (Is_Interface_Subprogram): Removed.
17145         (Check_Dispatching_Operation): If the subprogram is not a dispatching
17146         operation, check the formals to handle the case in which it is
17147         associated with an abstract interface type.
17148
17149 2006-10-31  Robert Dewar  <dewar@adacore.com>
17150             Ed Schonberg  <schonberg@adacore.com>
17151
17152         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
17153         Add new calls to this procedure during traversal
17154         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
17155         another unit if expansion is disabled.
17156
17157 2006-10-31  Robert Dewar  <dewar@adacore.com>
17158
17159         * sem_eval.adb (Compile_Time_Compare): Make use of information from
17160         Current_Value in the conditional case, to evaluate additional
17161         comparisons at compile time.
17162
17163 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
17164             Hristian Kirtchev  <kirtchev@adacore.com>
17165             Javier Miranda  <miranda@adacore.com>
17166
17167         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
17168         subprogram type to provide better diagnostics in case of ambiguity.
17169         (Covers): Handle coverage of formal and actual anonymous access types in
17170         the context of generic instantiation.
17171         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
17172         abstract interface types; this is required to handle concurrent types
17173         with discriminants and abstract interface types.
17174         (Covers): Include type coverage of both regular incomplete subtypes and
17175         incomplete subtypes of incomplete type visibles through a limited with
17176         clause.
17177
17178 2006-10-31  Robert Dewar  <dewar@adacore.com>
17179             Hristian Kirtchev  <kirtchev@adacore.com>
17180             Ed Schonberg  <schonberg@adacore.com>
17181
17182         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
17183         messages for entities in packages which are not used.
17184         (Collect_Synchronized_Interfaces): New procedure.
17185         (Overrides_Synchronized_Primitive): New function.
17186         (Denotes_Discriminant): Extend predicate to apply to task types.
17187         Add missing continuation marks in error msgs
17188         (Unqualify): New function for removing zero or more levels of
17189         qualification from an expression. There are numerous places where this
17190         ought to be used, but we currently only deal properly with zero or one
17191         level.
17192         (In_Instance); The analysis of the actuals in the instantiation of a
17193         child unit is not within an instantiation, even though the parent
17194         instance is on the scope stack.
17195         (Safe_To_Capture_Value): Exclude the case of variables that are
17196         renamings.
17197         (Check_Obsolescent): Removed
17198         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
17199         is an aliased view, even when rewritten as a reference to the target
17200         object in an assignment.
17201         (Get_Subprogram_Entity): New function
17202         (Known_To_Be_Assigned): New function
17203         (Type_Access_Level): Compute properly the access level of a return
17204         subtype that is an anonymous access type.
17205         (Explain_Limited_Type): Correct use of "\" for continuation messages.
17206         (Is_Transfer): The new extended_return_statement causes a transfer of
17207         control.
17208         (Has_Preelaborable_Initialization): New function
17209         (Has_Null_Exclusion): New function. Given a node N, determine whether it
17210         has a null exclusion depending on its Nkind.
17211         Change Is_Lvalue to May_Be_Lvalue
17212         (May_Be_Lvalue): Extensive additional code to deal with subprogram
17213         arguments (IN parameters are not Lvalues, IN OUT parameters are).
17214         (Safe_To_Capture_Value): Extend functionality so it can be used for
17215         the current value condition case.
17216         (Has_Compatible_Alignment): New function
17217         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
17218         objects to handle the Ada 2005 case, where aliasedness no longer implies
17219         that the object is constrained. In particular, for dereferenced names,
17220         the designated object must be assumed to be unconstrained.
17221         (Kill_Current_Values): Properly deal with the case where we encounter
17222         a loop in the scope chain.
17223         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
17224         a value.
17225         (Compile_Time_Constraint_Error): Improve error message in error case
17226
17227         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
17228         associated with entities of abstract interface primitives.
17229         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
17230
17231 2006-10-31  Robert Dewar  <dewar@adacore.com>
17232
17233         * s-osinte-tru64.adb: 
17234         Mark Asm statements Volatile to prevent warnings (seems a
17235         reasonable change anyway)
17236         Fixes new warnings
17237
17238         * s-mastop-irix.adb: Add Volatile to Asm statements
17239         Suppresses warning, and seems appropriate in any case
17240
17241         * s-osinte-vms.adb: Add Volatile to Asm statement
17242
17243         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
17244
17245         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
17246         returned.
17247         Add call to Check_Code_Statement
17248
17249 2006-10-31  Robert Dewar  <dewar@adacore.com>
17250             Ed Schonberg  <schonberg@adacore.com>
17251             Bob Duff  <duff@adacore.com>
17252
17253         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
17254         Synchronized_Present): Add Formal_Derived_Type_Definition and
17255         Private_Extension_Declaration to the list of assertions.
17256         (Is_Entry_Barrier_Function): New flag
17257         (Has_Self_Reference): New flag on aggregates, to indicate that they
17258         contain a reference to the enclosing type, inserted through a default
17259         initialization.
17260         (Next_Rep_Item): Move from Node4 to Node5.
17261         (Entity): Add this field for N_Attribute_Definition_Clause.
17262         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
17263         (N_Return_Object_Declaration): Remove this node kind. We now use
17264         N_Object_Declaration instead.
17265         (Actual_Designated_Subtype): Move to a different place to make room in
17266         N_Extended_Return_Statement.
17267         (Procedure_To_Call): Move to a different place to make room in
17268         N_Extended_Return_Statement.
17269         (Return_Type): Removed this field to make room in return statements
17270         (both kinds).
17271         (Return_Statement_Entity): New field in return statements, in part to
17272         replace Return_Type, and in part to support the fact that return
17273         statements are now pushed on the scope stack during semantic analysis.
17274         (Return_Object_Declarations): New field to support extended return
17275         statements.
17276         (N_Extended_Return_Statement): New node for extended_return_statement
17277         nonterminal.
17278         (N_Return_Object_Declaration): New node for part of
17279         extended_return_statement nonterminal. Needed because all the necessary
17280         fields won't fit in N_Extended_Return_Statement.
17281         Generic_associations now carry the Box_Present flag, to indicate a
17282         default for an actual in a partially parametrized formal package.
17283
17284         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
17285         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
17286         and for the new predefined dispatching policies: EDF_Across_Priorities,
17287         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
17288         Introduce new name Stub_Type for implementation defined attribute.
17289         Add pragma Preelaborable_Initialization
17290         Add entry for Priority attribute.
17291         Add Pragma_Wide_Character_Encoding
17292         (Get_Convention_Name): Given a convention id, this function returns the
17293         corresponding name id from the names table.
17294
17295 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
17296             Robert Dewar  <dewar@adacore.com>
17297             Bob Duff  <duff@adacore.com>
17298
17299         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
17300         print null exclusion twice in the case of an access definition,
17301         Implement new -gnatL switch
17302         Remove N_Return_Object_Declaration. We now use
17303         N_Object_Declaration instead. Implement the case for
17304         N_Extended_Return_Statement. Alphabetize the cases.
17305         Add cases for new nodes N_Extended_Return_Statement and
17306         N_Return_Object_Declaration. The code is not yet written.
17307         Update the output for N_Formal_Object_Declaration
17308         and N_Object_Renaming_Declaration.
17309         (Write_Itype): Account for the case of a modular integer subtype whose
17310         base type is private.
17311
17312 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
17313
17314         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
17315         Remove elaboration code, now done in the binder.
17316
17317         * s-rident.ads: Make this unit Preelaborate.
17318         (No_Restrictions): New constant used to clean up code and follow
17319         preelaborate constraints.
17320
17321         * s-stalib.adb: 
17322         Add System.Restrictions dependence, referenced directly from the
17323         binder generated file.
17324
17325 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
17326
17327         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
17328         True when AAMP extended floating-point is in use (48-bit). Change type
17329         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
17330         the two byte array types on AFloat. Change type of IV_Ilf overlay
17331         variable from Byte8 to ByteLF. Add appropriate initializations of
17332         floating-point overlays for AAMP cases.
17333
17334 2006-10-31  Javier Miranda  <miranda@adacore.com>
17335
17336         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
17337         (Get_Ceiling): New subprogram that returns
17338         the ceiling priority of the protected object.
17339         (Set_Ceiling): New subprogram that sets the new ceiling priority of
17340         the protected object.
17341
17342         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
17343
17344         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
17345
17346 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
17347
17348         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
17349         requeuing to the same protected object to give higher priority tasks
17350         the opportunity to execute.
17351
17352 2006-10-31  Robert Dewar  <dewar@adacore.com>
17353
17354         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
17355         add more precise check for the character sequence that follows '[' to
17356         avoid possible confusion in case if '[' is the last character of a
17357         string literals.
17358         (Scan_Wide): Always allow brackets encoding
17359
17360 2006-10-31  Olivier Hainque  <hainque@adacore.com>
17361
17362         * s-stchop.ads: make this unit preelaborate. This is desirable in
17363         general and made mandatory by the use of this unit by s-taprop which
17364         is itself preelaborate.
17365
17366         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
17367         Td_Events component.
17368
17369 2006-10-31  Vincent Celier  <celier@adacore.com>
17370
17371         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
17372         in file names.
17373
17374 2006-10-31  Vincent Celier  <celier@adacore.com>
17375
17376         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
17377
17378 2006-10-31  Vincent Celier  <celier@adacore.com>
17379
17380         * makegpr.adb (Check_Compilation_Needed): Take into account path names
17381         with spaces.
17382         (Check_Compilation_Needed): When checking a C or C++ source, do not
17383         resolve symbolic links.
17384         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
17385         When not in verbose mode and Ellipse is True, display "..." for the
17386         first argument with Display set to False.
17387         (Build_Global_Archive): Always set Display True for the first object
17388         file. Call Display_Command with Ellipse set to True.
17389
17390 2006-10-31  Matt Heaney  <heaney@adacore.com>
17391
17392         * a-crbtgo.ads: Commented each subprogram
17393
17394         * a-crbtgo.adb: Added reference to book from which algorithms were
17395         adapted.
17396
17397         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
17398         indicate which child.
17399         (Generic_Conditional_Insert): changed parameter name from "Success" to
17400         "Inserted".
17401         (Generic_Unconditional_Insert_With_Hint): improved algorithm
17402
17403         * a-coorse.adb (Replace_Element): changed parameter name in call to
17404         conditional insert operation.
17405
17406         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
17407
17408         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
17409         Generic_Iteration
17410
17411         * a-ciorse.adb (Replace_Element): changed parameter name in call to
17412         conditional insert operation.
17413
17414         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
17415         Generic_Iteration.
17416
17417         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
17418         instead of mode inout.
17419
17420         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
17421         draft
17422         (Generic_Read): preserve existing buckets array if possible
17423         (Generic_Write): don't send buckets array length anymore
17424
17425         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
17426         instead of mode inout.
17427
17428         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
17429         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
17430
17431         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
17432         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
17433         (Replace_Element): local operation is now an instantiation
17434
17435         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
17436         check current length.
17437         (Generic_Replace_Element): new operation
17438
17439 2006-10-31  Doug Rupp  <rupp@adacore.com>
17440
17441         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
17442         Call TBK$SYMBOLIZE without omitting parameters.
17443
17444 2006-10-31  Vincent Celier  <celier@adacore.com>
17445
17446         * symbols-processing-vms-ia64.adb,
17447         symbols-processing-vms-alpha.adb (Process): Do not include symbols
17448         that come from generic instantiations in bodies.
17449
17450 2006-10-31  Pat Rogers  <rogers@adacore.com>
17451
17452         * a-rttiev.ads, a-rttiev.adb: 
17453         This is a significant redesign primarily for the sake of automatic
17454         timer task termination but also to fix a design flaw.
17455         Therefore we are now using an RTS lock, instead of a protected
17456         object, to provide mutual exclusion to the queue of pending events
17457         and the type Timing_Event is no longer a protected type.
17458
17459 2006-10-31  Robert Dewar  <dewar@adacore.com>
17460             Cyrille Comar  <comar@adacore.com>
17461             Ben Brosgol  <brosgol@adacore.com>
17462
17463         * debug.adb:  Update flags documentation
17464
17465         * gnat_ugn.texi: Add documentation for new -gnatwq switch
17466         Clean up documentation for several other warning switches
17467         Clarify how task stack size can be specified with various
17468         versions of Windows.
17469         Add note that -gnatVo includes ranges including loops
17470         Add documentation for -gnatL switch
17471         Add note on elaboration warning for initializing variables
17472         Add documentation for new -gnatwt warning switch
17473         Document new form of pragma Warnings (On|Off, string)
17474         Add comment on use of pragma Warnings to control warnings
17475         Add documentation for -gnatjnn switch
17476         Modify section on interfacing with C for VMS 64-bit.
17477         Add doc for -gnatVe/E
17478         Add documentation of new warning flags -gnatww/-gnatwW
17479         Add warnings about address clause overlays to list of warnings
17480         (Exception Handling Control): Document that the option --RTS must be
17481         used consistently for gcc and gnatbind.
17482         Clarify that inlining is not always possible
17483         Update documentation on pragma Unchecked_Union.
17484
17485         * gnat_rm.texi: 
17486         Add documentation for new extended version of pragma Obsolescent
17487         Add documentation for implementation defined attribute 'Stub_Type.
17488         Add note on use of Volatile in asm statements
17489         Add documentation on use of pragma Unreferenced in context clause
17490         Document new form of pragma Warnings (On|Off, pattern)
17491         Document pragma Wide_Character_Encoding
17492         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
17493         enforced if code generation is active.
17494         Add section on pragma Suppress to document GNAT specific check
17495         Alignment_Check
17496         Clarify difference between No_Dispatching_Calls & No_Dispatch.
17497         Add documentation for pragma Restrictions (No_Elaboration_Code)
17498
17499         * gnat-style.texi: 
17500         Add comments on layout of subprogram local variables in the
17501         presence of nested subprograms.
17502
17503         * ug_words: Resync.
17504
17505         * elists.ads: Minor reformatting
17506         Node returns Node_Or_Entity_Id (doc change only)
17507
17508         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
17509
17510         * g-arrspl.ads (Create): Update comments.
17511
17512         * sem.ads: Add details on the handling of the scope stack.
17513
17514         * usage.adb: Update documentation.
17515
17516         * validsw.ads, validsw.adb: 
17517         Add definition of Validity_Check_Components and implement -gnatVe/E
17518
17519         * vms_data.ads: Add missing VMS qualifiers.
17520
17521         * s-addope.ads: Add documentation on overflow and divide by zero
17522
17523 2006-10-31  Robert Dewar  <dewar@adacore.com>
17524             Thomas Quinot  <quinot@adacore.com>
17525             Arnaud Charlet  <charlet@adacore.com>
17526
17527         * fmap.adb: Put routines in alpha order
17528
17529         * g-boumai.ads: Remove redundant 'in' keywords
17530
17531         * g-cgi.adb: Minor reformatting
17532
17533         * g-cgi.ads: Remove redundant 'in' keywords
17534
17535         * get_targ.adb: Put routines in alpha order
17536
17537         * prj-attr.ads: Minor reformatting
17538
17539         * s-atacco.ads: Minor reformatting
17540
17541         * scn.adb: Put routines in alpha order
17542
17543         * sinput-l.adb: Minor comment fix
17544
17545         * sinput-p.adb: Minor comment fix
17546
17547         * s-maccod.ads: Minor reformatting
17548
17549         * s-memory.adb: Minor reformatting
17550
17551         * s-htable.adb: Fix typo in comment.
17552
17553         * s-secsta.adb: Minor comment update.
17554
17555         * s-soflin.adb: Minor reformatting
17556
17557         * s-stoele.ads: 
17558         Add comment about odd qualification in Storage_Offset declaration
17559
17560         * s-strxdr.adb: 
17561         Remove unnecessary 'in' keywords for formal parameters.
17562
17563         * treeprs.adt: Minor reformatting
17564
17565         * urealp.adb: Put routines in alpha order
17566
17567         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
17568         taking string.
17569
17570         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
17571
17572         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
17573
17574         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
17575         workaround as on other platforms.
17576
17577         * g-eacodu-vms.adb: Remove redundant 'in' keywords
17578         * g-expect-vms.adb: Remove redundant 'in' keywords
17579
17580         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
17581         clear error message if the list-of-files file cannot be opened.
17582
17583         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
17584         equality operator is always visible.
17585
17586         * lang.opt: Woverlength-strings: New option.
17587
17588         * nmake.adt: 
17589         Update copyright, since nmake.ads and nmake.adb have changed.
17590
17591         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
17592         (Binder_Output_Time_Stamps_Set): removed.
17593         (Old_Binder_Output_Time_Stamp): idem.
17594         (New_Binder_Output_Time_Stamp): idem.
17595         (Recording_Time_From_Last_Bind): idem.
17596         (Recording_Time_From_Last_Bind): Make constant.
17597
17598         * output.ads, output.adb (Write_Str): Allow LF characters
17599         (Write_Spaces): New procedure
17600
17601         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
17602
17603         * inline.adb: Minor reformatting
17604
17605         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
17606
17607         * s-mastop-vms.adb: Remove redundant 'in' keywords
17608
17609         * s-osprim-vms.adb: Remove redundant 'in' keywords
17610
17611         * s-trafor-default.adb: Remove redundant 'in' keywords
17612
17613         * 9drpc.adb: Remove redundant 'in' keywords
17614
17615         * s-osinte-mingw.ads: Minor reformatting
17616
17617         * s-inmaop-posix.adb: Minor reformatting
17618
17619         * a-direio.ads: Remove quotes from Compile_Time_Warning message
17620
17621         * a-exexda.adb: Minor code reorganization
17622
17623         * a-filico.adb: Minor reformatting
17624
17625         * a-finali.adb: Minor reformatting
17626
17627         * a-nudira.ads: Remove quote from Compile_Time_Warning message
17628
17629         * a-numeri.ads: Minor reformatting
17630
17631         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
17632
17633         * exp_pakd.ads: Fix obsolete comment
17634
17635         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
17636         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
17637         Probably not a bug, but certainly neater and more efficient.
17638
17639         * a-tienio.adb: Minor reformatting
17640
17641         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
17642         Avoid assuming low bound of string is 1.
17643
17644         * gnatbind.adb: Change Bindusg to package and rename procedure as
17645         Display, which now ensures that it only outputs usage information once.
17646         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
17647
17648         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
17649         Table'First.
17650
17651         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
17652         warning.
17653         (Match): Add pragma Assert to ensure that Matches'First is zero
17654
17655         * g-regpat.ads (Match): Document that Matches lower bound must be zero
17656
17657         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
17658         documented preconditions (also kills warnings about bad indexes).
17659
17660         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
17661         is 1.
17662         (Build_Import_Library): Ditto;
17663
17664         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
17665
17666         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
17667
17668         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
17669         lower bound of choice table is 1.
17670
17671         * sem_case.ads (Analyze_Choices): Document that lower bound of
17672         Choice_Table is 1.
17673
17674         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
17675         string is 1.
17676
17677         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
17678         and add appropriate Assert pragma to suppress warnings.
17679
17680         * atree.h, atree.ads, atree.adb
17681         Change Elist24 to Elist25
17682         Add definitions of Field28 and Node28
17683         (Traverse_Field): Use new syntactic parent table in sinfo.
17684
17685         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
17686
17687         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
17688
17689         * exp_tss.adb: Put routines in alpha order
17690
17691         * fe.h: Remove redundant declarations.
17692
17693 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
17694
17695         * utils.c (builtin_function): Rename to gnat_builtin_function.
17696         Move common code to add_builtin_function.
17697         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
17698         gnat_builtin_function.
17699         * gigi.h (builtin_function): Rename to gnat_builtin_function.
17700         Change the signature.
17701
17702 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
17703
17704         * Makefile.in: Add TEXI2PDF definition.
17705         * Make-lang.in: Add "ada.pdf" target.
17706
17707 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
17708
17709         * decl.c, utils.c: Fix comment typos.
17710         * utils.c: Fix a typo.
17711
17712 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
17713
17714         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
17715         on "pure" Ada subprograms if SJLJ exceptions are used.
17716         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
17717         on the declaration node of JMPBUF_SAVE.
17718         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
17719         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
17720         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
17721
17722 2006-08-20  Laurent Guerby  <laurent@guerby.net>
17723
17724         PR ada/28716
17725         g-socket.adb (Bind_Socket): Call Set_Address.
17726
17727 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
17728
17729         PR ada/15802
17730         * decl.c (same_discriminant_p): New static function.
17731         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
17732         subtype and we have discriminants, fix up the COMPONENT_REFs
17733         for the discriminants to make them reference the corresponding
17734         fields of the parent subtype after it has been built.
17735
17736 2006-09-15  Roger Sayle  <roger@eyesopen.com>
17737
17738         PR ada/18817
17739         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
17740         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
17741
17742 2006-09-13  Olivier Hainque  <hainque@adacore.com>
17743
17744         PR ada/29025
17745         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
17746         of a SAVE_EXPR, just make the operand addressable/not-readonly and
17747         let the common gimplifier code make and propagate a temporary copy.
17748         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
17749         out/in-out actuals and defer setting the addressable/readonly bits
17750         to the gimplifier.
17751
17752 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
17753
17754         PR ada/28591
17755         * decl.c (components_to_record): Defer emitting debug info for the
17756         record type associated with the variant until after we are sure to
17757         actually use it.
17758
17759 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
17760
17761         PR ada/21952
17762         * gigi.h (gnat_internal_attribute_table): Declare.
17763         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
17764         * utils.c (gnat_internal_attribute_table): New global variable.
17765         (builtin_function): Always call decl_attributes on the builtin.
17766         (handle_const_attribute): New static function.
17767         (handle_nothrow_attribute): Likewise.
17768
17769 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
17770
17771         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
17772
17773 2006-06-23  Olivier Hainque  <hainque@adacore.com>
17774
17775         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
17776         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
17777
17778 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
17779             Eric Botcazou  <ebotcazou@adacore.com>
17780
17781         PR ada/18692
17782         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
17783         check-gnat into check-acats.
17784
17785 2006-06-17  Karl Berry  <karl@gnu.org>
17786
17787         * gnat-style.texi (@dircategory): Use "Software development"
17788         instead of "Programming", following the Free Software Directory.
17789
17790 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17791
17792         PR ada/27944
17793         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
17794
17795 2006-06-06  Laurent Guerby  <laurent@guerby.net>
17796
17797         PR ada/27769
17798         mlib-utl.adb: Use Program_Name.
17799
17800 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
17801
17802         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
17803         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
17804         trans.c, utils.c: Fix comment typos.  Follow spelling
17805         conventions.
17806         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
17807         conventions.
17808
17809 2006-05-19  Nicolas Setton  <setton@adacore.com>
17810
17811         * misc.c (gnat_dwarf_name): New function.
17812         (LANG_HOOKS_DWARF_NAME): Define to it.
17813
17814 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
17815
17816         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
17817         (ada/misc.o): Likewise.
17818         (ada/utils.o): Likewise.
17819
17820 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
17821
17822         * Makefile.in: Add Ada support for GNU/kFreeBSD.
17823         * s-osinte-kfreebsd-gnu.ads: New file.
17824
17825 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
17826
17827         * Make-lang.in: Rename docdir to gcc_docdir.
17828
17829 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
17830
17831         * gigi.h (get_ada_base_type): Delete.
17832         * utils2.c (get_ada_base_type): Likewise.
17833         * trans.c (convert_with_check): Operate in the real base type.
17834
17835 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17836
17837         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
17838
17839 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
17840
17841         * utils.c (create_var_decl): Use have_global_bss_p when deciding
17842         whether to make the decl common.
17843
17844 2006-02-20  Rafael ï¿½vila de Esp�ndola  <rafael.espindola@gmail.com>
17845
17846         * Make-lang.in (Ada): Remove.
17847         (.PHONY): Remove Ada
17848
17849 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
17850
17851         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
17852         aggregate, check the interpretations of the other operand to find one
17853         that may be a boolean array.
17854
17855         (Analyze_Selected_Component): Fix flow-of-control typo in case where
17856         the prefix is a private extension.
17857
17858 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
17859
17860         PR ada/26315
17861         * utils2.c (find_common_type): If both input types are BLKmode and
17862         have the same constant size, keep using the first one.
17863
17864         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
17865
17866         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
17867
17868         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
17869
17870 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
17871
17872         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, 
17873         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
17874         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb, 
17875         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
17876         Abort_Defer/Undefer pairs to avoid the possibility of a task being
17877         aborted while owning a lock.
17878
17879 2006-02-17  Javier Miranda  <miranda@adacore.com>
17880             Robert Dewar  <dewar@adacore.com>
17881
17882         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
17883         through an access to class-wide interface we force the displacement of
17884         the pointer to the allocated object to reference the corresponding
17885         secondary dispatch table.
17886         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
17887         if Long_Shifts are supported on the target, even if 64 bit divides
17888         are not supported (configurable run time mode).
17889         (Expand_N_Type_Conversion): Do validity check if validity checks on
17890         operands are enabled.
17891         (Expand_N_Qualified_Expression): Do validity check if validity checks
17892         on operands are enabled.
17893
17894 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
17895
17896         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
17897         must be materialized when the renamed expression is an explicit
17898         dereference.
17899
17900 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
17901
17902         * freeze.adb (Statically_Discriminated_Components): Return false if
17903         the bounds of the type of the discriminant are not static expressions.
17904
17905         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
17906         the bounds of the discriminant type are not static.
17907
17908 2006-02-17  Robert Dewar  <dewar@adacore.com>
17909
17910         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
17911         then we close To if it is valid.
17912
17913 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
17914
17915         * init.c (facility_resignal_table): new array
17916         (__gnat_default_resignal_p): enhance default predicate to resignal if
17917         VMS condition has one of the predefined facility codes.
17918
17919 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
17920
17921         * Makefile.in: Use VMS64 specialized versions of several units in
17922         Interfaces.C hierarchy to be compatible with HP C default size choices.
17923         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
17924
17925 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
17926
17927         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
17928         instantiation, the corresponding entity is the related_instance of the
17929         wrapper package created for the instance.
17930
17931 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
17932
17933         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
17934         the current instance is nested within another instance in a child unit.
17935
17936 2006-02-17  Javier Miranda  <miranda@adacore.com>
17937             Ed Schonberg  <schonberg@adacore.com>
17938
17939         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
17940         type we cannot inherit the primitive operations; we inherit the
17941         Corresponding_Record_Type (which has the list of primitive operations).
17942         (Check_Anonymous_Access_Types): When creating anonymous access types for
17943         access components, use Rewrite in order to preserve the tree structure,
17944         for ASIS use.
17945         (Analyze_Object_Declaration): For limited types with access
17946         discriminants with defaults initialized by an aggregate, obtain
17947         subtype from aggregate as for other mutable types.
17948         (Derived_Type_Declaration): If the derived type is a limited interface,
17949         set the corresponding flag (Is_Limited_Record is not sufficient).
17950
17951 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
17952
17953         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
17954         to inline a function that returns an unconstrained type, the return
17955         expression must be the first variable declared in the body of the
17956         function.
17957
17958 2006-02-17  Javier Miranda  <miranda@adacore.com>
17959
17960         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
17961         abstract interface type, the static analysis is not enough to know if
17962         the interface is implemented or not by the source tagged type. Hence
17963         we must pass the work to the expander to generate the required code to
17964         evaluate the conversion at run-time.
17965         (Resolve_Equality_Op): Do not apply previous
17966         transformation if expansion is disasbled, to prevent anomalies when
17967         locating global references in a generic unit.
17968
17969 2006-02-17  Vincent Celier  <celier@adacore.com>
17970
17971         * snames.ads, snames.adb: New standard names for new project attributes:
17972         archive_builder, archive_indexer, compiler_pic_option,
17973         config_body_file_name, config_body_file_name_pattern,
17974         config_file_switches, config_file_unique, config_spec_file_name,
17975         config_spec_file_name_pattern, default_builder_switches,
17976         default_global_compiler_switches, default_language,
17977         dependency_file_kind, global_compiler_switches, include_path,
17978         include_path_file, language_kind, linker_executable_option,
17979         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
17980         roots, runtime_project.
17981
17982 2006-02-17  Matthew Heaney  <heaney@adacore.com>
17983
17984         * a-convec.ads, a-convec.adb: 
17985         (operator "&"): handle potential overflow for large index types
17986         (Insert): removed Contraint_Error when using large index types
17987         (Insert_Space): removed Constraint_Error for large index types
17988         (Length): moved constraint check from Length to Insert
17989
17990         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
17991         as not null access.
17992         Explicit raise statements now include an exception message.
17993         (operator "&"): handle potential overflow for large index types
17994         (Insert): removed Contraint_Error when using large index types
17995         (Insert_Space): removed Constraint_Error for large index types
17996         (Length): moved constraint check from Length to Insert
17997
17998 2006-02-17  Robert Dewar  <dewar@adacore.com>
17999
18000         * s-wchcnv.adb: Document handling of [ on output (we do not change
18001         this to ["5B"] and the new comments say why not.
18002
18003         * gnat_ugn.texi: 
18004         Add note for -gnatVo that this now includes the cases of type
18005         conversions and qualified expressions.
18006         Add comments on handling of brackets encoding for Text_IO
18007
18008 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
18009             Thomas Quinot  <quinot@adacore.com>
18010             Robert Dewar  <dewar@adacore.com>
18011             Javier Miranda  <miranda@adacore.com>
18012
18013         * expander.adb: Fix typo in comment
18014
18015         * exp_pakd.adb: Fix typo
18016         Minor comment reformatting.
18017
18018         * g-dyntab.adb: Minor reformatting
18019
18020         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
18021         aliased subprograms to look for the abstract interface subprogram.
18022
18023 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
18024
18025         * env.c (__gnat_setenv): Use size_t.
18026         (__gnat_unsetenv): Likewise.
18027         (__gnat_clearenv): Likewise.
18028
18029 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
18030
18031         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
18032
18033 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
18034
18035         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
18036         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
18037         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
18038         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
18039         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
18040         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
18041         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
18042         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
18043         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
18044         no longer used.
18045
18046 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
18047
18048         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
18049         protection against race conditions is not needed.
18050         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
18051         fallback handler.
18052         (Set_Specific_Handler): Add mutual exclusive access to the specific
18053         handler.
18054         (Specific_Handler): Add mutual exclusive access for retrieving the
18055         specific handler.
18056
18057         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
18058         back handler.
18059
18060         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
18061         Fall_Back_Handler and Specific_Handler.
18062
18063         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
18064         termination handlers.
18065         Set two different owerflow depending on the maximal stack size.
18066
18067         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
18068         protection against race conditions is not needed when executing the
18069         task termination handler.
18070
18071 2006-02-13  Robert Dewar  <dewar@adacore.com>
18072
18073         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
18074         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
18075         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
18076         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
18077         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
18078         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
18079         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
18080         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
18081         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
18082         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
18083         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
18084         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
18085         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
18086         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
18087         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
18088         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
18089         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
18090         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
18091         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
18092         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
18093         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
18094         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
18095         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
18096         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
18097         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
18098         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
18099         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
18100         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
18101         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
18102         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
18103         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
18104         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
18105         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
18106         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
18107         reformatting.
18108
18109 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
18110
18111         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
18112         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
18113         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
18114         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
18115         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
18116         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
18117         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
18118         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
18119         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
18120
18121 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
18122
18123         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 
18124         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 
18125         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 
18126         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 
18127         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 
18128         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
18129         replaced by anonymous access type.
18130         (pthread_sigmask): Now take an access sigset_t
18131
18132         * s-osinte-hpux.ads:  Ditto.
18133         (pthread_mutex_t, pthread_cond_t): Update definitions to support
18134         properly 32 and 64 bit ABIs.
18135
18136 2006-02-13  Pascal Obry  <obry@adacore.com>
18137
18138         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 
18139         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 
18140         s-taprop-linux.adb, s-taprop-solaris.adb,
18141         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
18142         adjustement is already done when calling this routine.
18143
18144 2006-02-13  Pascal Obry  <obry@adacore.com>
18145
18146         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
18147         table to take advantage of the 16 priority levels available on Windows
18148         2000 and XP. On NT4 there are only 7 priority levels, this is properly
18149         supported by this new mapping.
18150
18151 2006-02-13  Nicolas Setton  <setton@adacore.com>
18152
18153         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
18154         (get_encoding): New subprogram. Extracts the encodings from an encoded
18155         Ada name.
18156
18157 2006-02-13  Pascal Obry  <obry@adacore.com>
18158             Nicolas Roche  <roche@adacore.com>
18159             Arnaud Charlet  <charlet@adacore.com>
18160
18161         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
18162         support.
18163         (__gnat_try_lock): Add unicode support by using a specific section on
18164         Windows.
18165         (__gnat_get_current_dir): Idem.
18166         (__gnat_open_read): Idem.
18167         (__gnat_open_rw): Idem.
18168         (__gnat_open_create): Idem.
18169         (__gnat_create_output_file): Idem.
18170         (__gnat_open_append): Idem.
18171         (__gnat_open_new): Idem.
18172         (__gnat_file_time_name): Idem.
18173         (__gnat_set_file_time_name): Idem.
18174         (__gnat_stat): Idem.
18175         (win32_no_block_spawn): Idem.
18176         (__gnat_locate_exec_on_path): Idem.
18177         (__gnat_opendir): New routine.
18178         (__gnat_closedir): Idem.
18179         (__gnat_readdir): Add new parameter length (pointer to int). Update
18180         implementation to use it and add specific Win32 code for Unicode
18181         support.
18182         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
18183         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
18184         (convert_addresses): Do not define this dummy routine on VMS.
18185
18186         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
18187         runtime Unicode support will be activated.
18188         (S2WS): String to Wide-String conversion. This version just copy a
18189         string in non Unicode version.
18190         (WS2S): Wide-String to String conversion. This version just copy a
18191         string in non Unicode version.
18192
18193         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
18194         (Open): Now import __gnat_opendir from adaint.c.
18195         (Read): Change the implementation to support unicode characters. It is
18196         not possible to use strlen() on Windows as this version supports only
18197         standard ASCII characters. So the length of the directory entry is now
18198         returned from the imported __gnat_readdir routine.
18199         Update copyright notice.
18200
18201         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
18202         (opendir): Moved to adaint.c.
18203
18204         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
18205         (Get_Directory): Fix wrong indexing.
18206         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
18207         __gnat_getenv from env.c
18208         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
18209         from env.c
18210
18211         * env.h, env.c: New file.
18212
18213         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
18214         adaint.c by __gnat_getenv from env.c
18215
18216         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
18217         adaint.c by __gnat_getenv from env.c
18218
18219         * Make-lang.in: Add env.o in the list of C object needed by gnat1
18220         and gnatbind.
18221         Update dependencies.
18222
18223 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18224             Olivier Hainque  <hainque@adacore.com>
18225             Eric Botcazou  <ebotcazou@adacore.com>
18226
18227         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
18228         
18229         * gigi.h (value_factor_p): Add prototype and description, now public.
18230
18231         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
18232         promotion for field with rep clause if the associated size was proven
18233         to be in error.
18234         Expand comments describing attempts to use a packable type.
18235         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
18236         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
18237         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
18238         necessary since these are not different types and pointers may
18239         actually designate any subtype in this hierarchy.
18240         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
18241         discriminants but put them into record only if not Unchecked_Union;
18242         pass flag to components_to_record showing Unchecked_Union.
18243         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
18244         components before variants; don't set TYPE_UNCHECKED_UNION_P.
18245         (components_to_record): New argument UNCHECKED_UNION.
18246         Remove special case code for Unchecked_Union and instead use main code
18247         with small changes.
18248
18249         PR ada/26096
18250         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
18251         variable with the expression being built, only its inner field.
18252
18253         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
18254         emit_sequence_entry_statements.
18255         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
18256         (establish_gnat_vms_condition_handler): Move before
18257         Subprogram_Body_to_gnu.
18258         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
18259         for a subprogram if it has a foreign convention or is exported.
18260         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
18261         substituted for a CONST_DECL.
18262         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
18263         Etype to assoc_to_constructor.
18264         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
18265         discriminants of Unchecked_Union.
18266         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
18267         don't need cluttering preprocessor directives.
18268         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
18269         condition handler as current in the compiled function.
18270         (body_with_handlers_p): New function. Tell whether a given sequence of
18271         statements node is attached to a package or subprogram body and involves
18272         exception handlers possibly nested within inner block statements.
18273         (emit_sequence_entry_statements): New function, to emit special
18274         statements on entry of sequences when necessary. Establish GNAT
18275         condition handler in the proper cases for VMS.
18276         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
18277         emit_sequence_entry_statements.
18278
18279         * utils2.c (find_common_type): If both input types are BLKmode and
18280         have a constant size, use the smaller one.
18281         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
18282         the same.
18283
18284         * utils.c (value_factor_p): Make public, to allow uses from other gigi
18285         units.
18286         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
18287         (convert, case UNION_TYPE): Remove special treatment for unchecked
18288         unions.
18289
18290         PR ada/18659
18291         (update_pointer_to): Update variants of pointer types to unconstrained
18292         arrays by attaching the list of fields of the main variant.
18293
18294 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
18295             Robert Dewar  <dewar@adacore.com>
18296
18297         * a-exexpr.adb, a-exexpr-gcc.adb
18298         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
18299         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
18300         Remove code unused for exception propagation for the compiler itself
18301         from a-except.adb and update to still share separate packages.
18302
18303         * a-except.ads, a-except.adb: Ditto.
18304         Add comments that this version is now used only by the compiler and
18305         other basic tools. The full version that includes the Ada 2005 stuff
18306         is in separate files a-except-2005.ads/adb. The reason is that we do
18307         not want to cause bootstrap problems with compilers not recognizing
18308         Wide_Wide_String.
18309         Add exception reason code PE_Implicit_Return
18310         Add new exception reason code (Null Exception_Id)
18311
18312         * a-except-2005.adb, a-except-2005.ads: New files.
18313
18314         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
18315
18316         * s-wchcon.adb: New file.
18317
18318         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
18319         (traceback.o deps): Likewise.
18320         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
18321         Activate build of GMEM instrumentation library on VMS targets.
18322         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
18323         Use a-except-2005.ads/adb for all run-time library builds unless
18324         specified otherwise.
18325         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
18326         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
18327         Use s-parame.adb on all native platforms.
18328         Use s-parame-vxworks.adb on all vxworks platforms.
18329         Add env.c env.h in LIBGNAT_SRCS
18330         Add env.o in LIBGNAT_OBJS
18331         (GNATMAKE_OBJS): Remove ctrl_c.o object.
18332         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
18333         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
18334         supports VxWorks 6 RTPs.
18335         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
18336         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
18337
18338         * types.h, types.ads (Terminate_Program): New exception
18339         Add comment on modifying multiple versions of a-except.adb when the
18340         table of exception reasons is modified.
18341         Add exception reason code PE_Implicit_Return
18342         Add new exception reason code (Null Exception_Id)
18343
18344         * clean.adb (Initialize): Get the target parameters before checking
18345         if target is OpenVMS. Move the OpenVMS specific code here from package
18346         body elaboration code.
18347
18348 2006-02-13  Thomas Quinot  <quinot@adacore.com>
18349             Vincent Celier  <celier@adacore.com>
18350             Robert Dewar  <dewar@adacore.com>
18351
18352         * ali-util.adb (Get_File_Checksum): Update to account for change in
18353         profile of Initialize_Scanner.
18354
18355         * gprep.adb (Gnatprep): Update to account for change in profile of
18356         Initialize_Scanner.
18357         (Process_One_File): Same.
18358
18359         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
18360         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
18361         that behaviour using the new Unit information recorded in the source
18362         files table, rather than going through all units every time.
18363         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
18364         (Get_Source_Unit): Same.
18365
18366         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
18367         change in profile of Initialize_Scanner.
18368         (Prepare_To_Preprocess): Same.
18369
18370         * lib.ads: Fix typo in comment (templace -> template).
18371
18372         * prj-part.adb (Parse_Single_Project): Update to account for change in
18373         profile of Initialize_Scanner.
18374
18375         * scn.adb (Initialize_Scanner): Account for change in profile of
18376         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
18377         Also record the association of the given Source_File_Index to the
18378         corresponding Unit_Number_Type.
18379
18380         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
18381         procedure.
18382         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
18383         Remove Unit formal for generic scanner: this formal
18384         is only relevant to Scn (the scanner instance used to parse Ada source
18385         files), not to other instances. Update comment accordingly.
18386         (Scan): Use new function Snames.Is_Keyword_Name.
18387
18388         * sinfo-cn.adb: Fix typo in comment.
18389
18390         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
18391         Unit.
18392
18393         * sinput.ads (Source_File_Record): New component Unit, used to capture
18394         the unit identifier (if any) associated to a source file.
18395
18396         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
18397         Unit in Source_File_Record.
18398
18399         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
18400         in profile of Initialize_Scanner.
18401
18402         * scans.adb (Initialize_Ada_Keywords): New procedure
18403
18404         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
18405         Ada keywords in the Namet table, without the need to call
18406         Initialize_Scanner.
18407
18408         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
18409         (Is_Keyword_Name): New function
18410
18411         * snames.ads: Add subtype Configuration_Pragma_Names
18412         Add pragma Ada_2005 (synonym for Ada_05)
18413         (Is_Keyword_Name): New function
18414
18415         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
18416
18417 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
18418
18419         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
18420         index.
18421
18422         * a-stwima.adb (To_Set): Add extra check when N = 0.
18423
18424         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
18425
18426 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
18427
18428         * s-parame-mingw.adb, s-parame-linux.adb,
18429         s-parame-solaris.adb: Removed, replaced by s-parame.adb
18430
18431         * s-parame-vxworks.ads: Fix typo.
18432
18433         * s-parame-vxworks.adb: New file.
18434
18435         * s-parame.adb: Version now used by all native platforms.
18436         (Default_Stack_Size): Use 2 megs for default stack size and use
18437         __gl_default_stack_size when available.
18438         (Minimum_Stack_Size): Use 12K.
18439
18440         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
18441         (Create_Task): Refine implementation taking advantage of the XP stack
18442         size support. On XP, we now create the thread using the flag
18443         STACK_SIZE_PARAM_IS_A_RESERVATION.
18444
18445         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
18446
18447         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
18448         XP and 0 on older Windows versions.
18449
18450         * interfac-vms.ads: Removed, no longer used.
18451
18452 2006-02-13  Matthew Heaney  <heaney@adacore.com>
18453
18454         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, 
18455         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, 
18456         a-cohase.adb: All explicit raise statements now include an exception
18457         message.
18458
18459         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
18460         (Update_Element_Preserving_Key): renamed op to just Update_Element.
18461         Explicit raise statements now include an exception message
18462
18463         * a-cihase.ads, a-cohase.ads: Removed comment.
18464
18465         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
18466         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
18467         a-szbzha.adb, a-szfzha.ads: New files.
18468
18469 2006-02-13  Matthew Heaney  <heaney@adacore.com>
18470
18471         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
18472         quicksort.
18473
18474 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
18475
18476         * lang.opt: Wvariadic-macros: New option.
18477         Wold-style-definition: Likewise.
18478         Wmissing-format-attribute: Likewise.
18479
18480         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
18481         -Wold-style-definition and -Wmissing-format-attribute.
18482
18483 2006-02-13  Robert Dewar  <dewar@adacore.com>
18484
18485         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
18486
18487         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
18488
18489 2006-02-13  Nicolas Roche  <roche@adacore.com>
18490
18491         * a-envvar.adb, a-envvar.ads: New files.
18492
18493 2006-02-13  Douglas Rupp  <rupp@adacore.com>
18494
18495         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
18496
18497         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
18498
18499 2006-02-13  Pat Rogers  <rogers@adacore.com>
18500
18501         * a-rttiev.adb, a-rttiev.ads: New files.
18502
18503 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
18504
18505         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
18506         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
18507
18508         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
18509
18510 2006-02-13  Robert Dewar  <dewar@adacore.com>
18511
18512         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, 
18513         sem_case.adb: Minor code reorganization (not Present should be No)
18514
18515 2006-02-13  Geert Bosch  <bosch@adacore.com>
18516             Gary Dismukes  <dismukes@adacore.com>
18517
18518         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
18519         0, since the lower bound of the actual string may be greater than one.
18520
18521         PR ada/20753
18522         * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
18523         layout is requested.
18524
18525 2006-02-13  Vincent Celier  <celier@adacore.com>
18526
18527         * back_end.adb (Scan_Compiler_Arguments): Check if
18528         Search_Directory_Present is True and, if it is, add the argument in
18529         the source search directory path.
18530
18531         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
18532         Search_Directory_Present to True.
18533
18534 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
18535
18536         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
18537         volatile, to tell the compiler to preserve this variable at any level
18538         of optimization.
18539         (Gen_Versions_Ada): Temporarily work around codegen bug.
18540
18541 2006-02-13  Vincent Celier  <celier@adacore.com>
18542
18543         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
18544         gcc to link with option -shared-libgcc.
18545         (Gnatlink): Remove duplicate switches -shared-libgcc
18546
18547 2006-02-13  Robert Dewar  <dewar@adacore.com>
18548
18549         * gnatvsn.ads (Current_Year): New constant, used to easily update
18550         copyright on all GNAT tools.
18551
18552         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
18553         copyright notice.
18554
18555 2006-02-13  Robert Dewar  <dewar@adacore.com>
18556
18557         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
18558         after hyphen (small aesthetic change useful for a range of numbers
18559         using ^-^.
18560         Suppress range checks for a couple of assignments which otherwise
18561         cause validity checks with validity checking turned on.
18562
18563         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
18564         Improvement in error message for object.
18565         (Rep_Item_Too_Late): Remove '!' in warning message.
18566
18567 2006-02-13  Robert Dewar  <dewar@adacore.com>
18568             Eric Botcazou  <ebotcazou@adacore.com>
18569
18570         * err_vars.ads: Suppress range checks for a couple of assignments
18571         which otherwise cause validity checks with validity checking turned on.
18572         Update comments.
18573
18574         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
18575         Make message unconditional if it is a warning.
18576         (Error_Msg_NEL): Always output warning messages.
18577         Suppress range checks for a couple of assignments which otherwise
18578         cause validity checks with validity checking turned on.
18579
18580         * errout.ads (Message Insertion Characters): Document that '!' is
18581         implied by '?' in error messages.
18582
18583         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
18584         (Gnat1drv): Use a goto to end of main subprogram instead of
18585         Exit_Program (E_Success) so that finalization can occur normally.
18586
18587 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
18588
18589         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
18590         wrapped around.
18591
18592 2006-02-13  Vincent Celier  <celier@adacore.com>
18593
18594         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
18595         Unchecked_Conversion functions.
18596         (Modification_Time): Use direct conversion of OS_Time to Calendar time
18597         when OpenVMS returns False.
18598
18599         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
18600         a-dirval.adb (OpenVMS): New Boolean function
18601
18602 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
18603             Thomas Quinot  <quinot@adacore.com>
18604
18605         * checks.adb (Build_Discriminant_Checks): If the expression being
18606         checks is an aggregate retrieve the values of its discriminants to
18607         generate the check, rather than creating a temporary and a reference
18608         to it.
18609         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
18610         (Install_Null_Excluding_Check): Ditto
18611         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
18612         not for the renamed object, so that the actual itype is attached in the
18613         proper context.
18614
18615 2006-02-13  Robert Dewar  <dewar@adacore.com>
18616             Vincent Celier  <celier@adacore.com>
18617
18618         * debug.adb: Eliminate numeric switches for binder/gnatmake
18619
18620         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
18621         switches for the compiler.
18622         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
18623         (Scan_Make_Switches): When failing with an illegal switch, output an
18624         error message with the full switch.
18625         Eliminate numeric switches for binder/gnatmake
18626
18627         * switch.ads, switch.adb (Bad_Switch): New procedure
18628
18629         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
18630         Remove 0-9 as debug flag character possibilities
18631         -d is now controlling the primary stack size when its value is a
18632         positive. Also add checks against invalid values, and support for kb,
18633         mb. Ditto for -D switch.
18634
18635 2006-02-13  Robert Dewar  <dewar@adacore.com>
18636             Serguei Rybin  <rybin@adacore.com>
18637
18638         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
18639         save/restore routines.
18640         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
18641         were not always properly handled previously.
18642         Since we are changing the tree format anyway, also get rid of the
18643         junk obsolete Immediate_Errors flag.
18644         (Tree_Read): Change the way of reading Tree_Version_String - now we
18645         read the version string from the tree even if its length is not the
18646         same as the length of the version string computed from Gnatvsn.
18647         (Search_Directory_Present): New Boolean flag for the compiler.
18648         Define Tree_Version_String as a dynamic string.
18649         (Default_Stack_Size): new variable, used to handle switch -d.
18650
18651         * par-prag.adb: 
18652         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
18653         only for main unit.
18654         Add pragma Ada_2005 (synonym for Ada_05)
18655         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
18656         were not always properly handled previously.
18657
18658         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
18659         explicit Ada_95 to Ada_2005.
18660
18661 2006-02-13  Javier Miranda  <miranda@adacore.com>
18662             Robert Dewar  <dewar@adacore.com>
18663             Ed Schonberg  <schonberg@adacore.com>
18664
18665         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
18666         against errors in the source program: a private types for which the
18667         corresponding full type declaration is missing and pragma CPP_Virtual
18668         is used.
18669         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
18670         (Is_Known_Null): New flag
18671         (Has_Pragma_Pure): New flag
18672         (No_Return): Present in all entities, set only for procedures
18673         (Is_Limited_Type): A type whose ancestor is an interface is limited if
18674         explicitly declared limited.
18675         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
18676         entities. Only used for component marked Is_Tag. If present it stores
18677         the Offset_To_Top function used to provide this value in tagged types
18678         whose ancestor has discriminants.
18679
18680         * exp_ch2.adb: Update status of new Is_Known_Null flag
18681
18682         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
18683
18684         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
18685         the categorization sense if Is_Pure was set by pragma Pure_Function.
18686
18687 2006-02-13  Quentin Ochem  <ochem@adacore.com>
18688             Olivier Hainque  <hainque@adacore.com>
18689
18690         * bindusg.adb: Updated documentation for -d and -D switches.
18691
18692         * raise.h (__gnat_set_globals): added new parameter for
18693         Default_Stack_Size.
18694
18695         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
18696         (__gnat_handle_vms_condition): Adjust context before raise.
18697         (__gnat_install_handler): Restore the global vector setup for GCC
18698         versions before 3.4, as the frame based circtuitry is not available
18699         in this case.
18700         (__gnat_set_globals): added a parameter default_stack_size
18701         (__gl_default_stack_size): new variable.
18702
18703 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
18704
18705         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
18706         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
18707         does not exist in the Ada RM.
18708         (Compatible_Int_Bounds): Determine whether two integer range bounds
18709         are of equal length and have the same start and end values.
18710         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
18711         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
18712         aggregate when it is part of an object declaration.
18713         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
18714         constrains discriminants of its parent, add explicitly the discriminant
18715         constraints of the ancestor by retrieving them from the
18716         stored_constraint of the parent.
18717
18718 2006-02-13  Robert Dewar  <dewar@adacore.com>
18719
18720         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
18721         attribute Mechanism_Code is applied to renamed subprogram, modify
18722         prefix to point to base subprogram.
18723         Max/Min attributes now violate Restriction No_Implicit_Conditionals
18724
18725         * sinfo.ads: Document that Mechanism_Code cannot be applied to
18726         renamed subprograms so that the front-end must replace the prefix
18727         appropriately.
18728
18729 2006-02-13  Javier Miranda  <miranda@adacore.com>
18730             Gary Dismukes  <dismukes@adacore.com>
18731
18732         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
18733         availability of RE_Interface_Tag.
18734         (Build_Initialization_Call): Fix wrong access to the discriminant value.
18735         (Freeze_Record_Type): Do not generate the tables associated with
18736         timed and conditional dispatching calls through synchronized
18737         interfaces if compiling under No_Dispatching_Calls restriction.
18738         When compiling for Ada 2005, for a nonabstract
18739         type with a null extension, call Make_Controlling_Function_Wrappers
18740         and insert the wrapper function declarations and bodies (the latter
18741         being appended as freeze actions).
18742         (Predefined_Primitive_Bodies): Do not generate the bodies of the
18743         predefined primitives associated with timed and conditional
18744         dispatching calls through synchronized interfaces if we are
18745         compiling under No_Dispatching_Calls.
18746         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
18747         service is available before generating a call.
18748         (Make_Controlling_Function_Wrappers): New procedure.
18749         (Expand_N_Full_Type_Declaration): Create a class-wide master for
18750         access-to-limited-interfaces because they can be used to reference
18751         tasks that implement such limited interface.
18752         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
18753         procedure spec and body of the Offset_To_Top function that is generated
18754         when the parent of a type with discriminants has secondary dispatch
18755         tables.
18756         (Init_Secondary_Tags): Handle the case in which the parent of the type
18757         containing secondary dispatch tables has discriminants to generate the
18758         correct arguments to call Set_Offset_To_Top.
18759         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
18760
18761         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
18762         Add Wide_[Wide_]Expanded_Name.
18763         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
18764         the same functionality of Get_Prim_Op_Address but applied to predefined
18765         primitive operations because the pointers to the predefined primitives
18766         are now saved in a separate table.
18767         (Parent_Size): Modified to get access to the separate table of primitive
18768         operations or the parent type.
18769         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
18770         functionality of Set_Prim_Op_Address but applied to predefined primitive
18771         operations.
18772         (Set_Signature): New subprogram used to store the signature of a DT.
18773         (Displace): If the Offset_To_Top value is not static then call the
18774         function generated by the expander to get such value; otherwise use
18775         the value stored in the table of interfaces.
18776         (Offset_To_Top): The type of the actual has been changed to Address to
18777         give the correct support to tagged types with discriminants. In this
18778         case this value is stored just immediately after the tag field.
18779         (Set_Offset_To_Top): Two new formals have been added to indicate if the
18780         offset_to_top value is static and hence pass this value to the run-time
18781         to store it in the table of interfaces, or else if this value is dynamic
18782         and then pass to the run-time the address of a function that is
18783         generated by the expander to provide this value for each object of the
18784         type.
18785
18786         * rtsfind.ads (Default_Prin_Op_Count): Removed.
18787         (Default_Prim_Op_Count): New entity
18788         (Get_Predefined_Prim_Op_Address): New entity
18789         (Set_Predefined_Prim_Op_Address): New entity
18790         (RE_Set_Signature): New entity
18791
18792 2006-02-13  Thomas Quinot  <quinot@adacore.com>
18793             Ed Schonberg  <schonberg@adacore.com>
18794
18795         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
18796         Make_Adjust_Call done for a newly-allocated object.
18797
18798         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
18799         in a subprogram are wrapped in a cleanup block, indicate that the
18800         subprogram contains an inner block with an exception handler.
18801         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
18802         Adjust call is for a newly-allocated object. In that case we must not
18803         assume that the finalization list chain pointers are correct (since they
18804         come from a bit-for-bit copy of the original object's pointers) so if
18805         the attach level would otherwise be zero (no change), we set it to 4
18806         instead to cause the pointers to be reset to null.
18807
18808         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
18809         reset chain pointers to null.
18810
18811 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
18812
18813         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
18814         string, and the context requires a loop for the assignment (e.g.
18815         because the left-hand side is packed), generate a unique name for the
18816         temporary that holds the string, to prevent spurious name clashes.
18817
18818 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
18819             Javier Miranda  <miranda@adacore.com>
18820             Robert Dewar  <dewar@adacore.com>
18821             Gary Dismukes  <dismukes@adacore.com>
18822
18823         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
18824         return unconstrained arrays.
18825         Update comments.
18826         (Expand_Call):  An indirect call through an access parameter of a
18827         protected operation is not a protected call.
18828         Add circuit to raise CE in Ada 2005 mode following call
18829         to Raise_Exception.
18830         (Register_DT_Entry): Do nothing if
18831         the run-time does not give support to abstract interfaces.
18832         (Freeze_Subprogram): In case of dispatching operations, do not generate
18833         code to register the operation in the dispatch table if the source
18834         is compiled with No_Dispatching_Calls.
18835         (Register_Predefined_DT_Entry): Generate code that calls the new
18836         run-time subprogram Set_Predefined_Prim_Op_Address instead of
18837         Set_Prim_Op_Address.
18838
18839         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
18840         on array assignments if the right-hand side is a function call that has
18841         been inlined. Check is performed on the assignment in the block.
18842         (Process_Bounds): If bounds and range are overloaded, apply preference
18843         rule for root operations to disambiguate, and diagnose true ambiguity.
18844         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
18845         a tag-indeterminate right-hand side even when Expander_Active is True.
18846         Needed to ensure that dispatching calls to T'Input are allowed and
18847         get the tag of the target class-wide object.
18848
18849         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
18850         an inherited primitive operation that already overrides several
18851         abstract interface primitives. For transitivity, the new entity must
18852         also override all the abstract interface primitives covered by the
18853         inherited overriden primitive.
18854         Emit warning if new entity differs from homograph in same scope only in
18855         that one has an access parameter and the other one has a parameter of
18856         a general access type with the same designated type, at the same
18857         position in the signature.
18858         (Make_Inequality_Operator): Use source locations of parameters and
18859         subtype marks from corresponding equality operator when creating the
18860         tree structure for the implicit declaration of "/=". This does not
18861         change anything in behaviour except that the decoration of the
18862         components of the subtree created for "/=" allows ASIS to get the
18863         string images of the corresponding identifiers.
18864         (Analyze_Return_Statement): Remove '!' in warning message.
18865         (Check_Statement_Sequence): Likewise.
18866         (Analyze_Subprogram_Body): For an access parameter whose designated type
18867         is an incomplete type imported through a limited_with clause, use the
18868         type of the corresponding formal in the body.
18869         (Check_Returns): Implicit return in No_Return procedure now raises
18870         Program_Error with a compile time warning, instead of beging illegal.
18871         (Has_Single_Return):  Function returning unconstrained type cannot be
18872         inlined if expression in unique return statement is not an identifier.
18873         (Build_Body_To_Inline): It is possible to inline a function call that
18874         returns an unconstrained type if all return statements in the function
18875         return the same local variable. Subsidiary procedure Has_Single_Return
18876         verifies that the body conforms to this restriction.
18877
18878         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
18879         same type, and  one of them is of an anonymous access type, convert
18880         the other operand to it, so that this is a valid binary operation for
18881         gigi.
18882         (Resolve_Type_Conversion): Handle subtypes of protected types and
18883         task types when accessing to the corresponding record type.
18884         (Resolve_Allocator): Add '\' in 2-line warning message.
18885         Remove '!' in warning message.
18886         (Resolve_Call): Add '\' in 2-line warning message.
18887         (Valid_Conversion): Likewise.
18888         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
18889         resulting type may be an access type with an implicit dereference.
18890         Obtain the proper component from the designated type.
18891         (Make_Call_Into_Operator): Handle properly a call to predefined equality
18892         given by an expanded name with prefix Standard, when the operands are
18893         of an anonymous access type.
18894         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
18895         Explicit_Dereference and Resolve_Selected_Component, to verify that the
18896         prefix of the expression is not of an incomplete type. Allows full
18897         diagnoses of all semantic errors.
18898         (Resolve_Actuals): If the actual is an allocator whose directly
18899         designated type is a class-wide interface we build an anonymous
18900         access type to use it as the type of the allocator. Later, when
18901         the subprogram call is expanded, if the interface has a secondary
18902         dispatch table the expander will add a type conversion to force
18903         the displacement of the pointer.
18904         (Resolve_Call): If a function that returns an unconstrained type is
18905         marked Inlined_Always and inlined, the call will be inlined and does
18906         not require the creation of a transient scope.
18907         (Check_Direct_Boolean_Op): Removed
18908         (Resolve_Comparison_Op): Remove call to above
18909         (Resolve_Equality_Op): Remove call to above
18910         (Resolve_Logical_Op): Inline above, since this is only call.
18911         (Valid_Conversion): Handle properly conversions between arrays of
18912         convertible anonymous access types.
18913
18914         PR ada/25885
18915         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
18916         the literal in an unchecked conversion, because GCC 4.x needs a static
18917         value for a string bound.
18918
18919 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
18920             Hristian Kirtchev  <kirtchev@adacore.com>
18921
18922         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
18923         components of the corresponding record, take into account component
18924         definitions that are access definitions.
18925         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
18926         procedure is not considered a dispatching call and will be expanded
18927         properly.
18928
18929 2006-02-13  Javier Miranda  <miranda@adacore.com>
18930
18931         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
18932         controlling argument of the dispatching call is an abstract interface
18933         class-wide type then we use it directly.
18934         Check No_Dispatching_Calls restriction.
18935         (Default_Prim_Op_Position): Remove the code that looks for the last
18936         entity in the list of aliased subprograms. This code was wrong in
18937         case of renamings.
18938         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
18939         when the source is compiled with the No_Dispatching_Calls restriction.
18940         (Init_Predefined_Interface_Primitives): No need to inherit primitives
18941         if we are compiling with restriction No_Dispatching_Calls.
18942         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
18943         subprograms if we are compiling under No_Dispatching_Calls restriction.
18944         (Make_DT): Generate a dispatch table with a single dummy entry if
18945         we are compiling with the No_Dispatching_Calls restriction. In
18946         addition, in this case we don't generate code that calls to the
18947         following run-time subprograms: Set_Type_Kind, Inherit_DT.
18948         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
18949         of this subprogram if compiling with the No_Dispatching_Calls
18950         restriction.
18951         (Expand_Type_Conversion): Instead of using the actual parameter,
18952         the argument passed as parameter to the conversion function was
18953         erroneously referenced by the expander.
18954         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
18955         Set_Predefined_Primitive_Op_Address and Set_Signature.
18956         (Expand_Dispatching_Call): Generate call to
18957         Get_Predefined_Prim_Op_Address for predefined primitives.
18958         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
18959         predefined primitives.
18960         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
18961         primitives we reserve one dummy entry to ensure that the tag does not
18962         point to some memory that is associated with some other object. In
18963         addition, remove all the old code that generated the assignments
18964         associated with the signature of the dispatch table and replace them
18965         by a call to the new subprogram Set_Signature.
18966         (Set_All_DT_Position): Change the algorithm because now we have a
18967         separate dispatch table associated with predefined primitive operations.
18968         (Expand_Interface_Conversion): In case of non-static offset_to_top
18969         add explicit dereference to get access to the object after the call
18970         to displace the pointer to the object.
18971         (Expand_Interface_Thunk): Modify the generation of the actual used
18972         in the calls to the run-time function Offset_To_Top to fulfil its
18973         new interface.
18974         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
18975
18976 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
18977
18978         * exp_dist.adb (Copy_Specification): For access parameters, copy
18979         Null_Exclusion flag, which will have been set for stream subprograms
18980         in Ada2005 mode.
18981
18982 2006-02-13  Pascal Obry  <obry@adacore.com>
18983
18984         * expect.c (__gnat_expect_portable_execvp): New implementation. The
18985         previous implementation was using the C runtime spawnve routine but
18986         the corresponding wait was using directly the Win32 API. This was
18987         causing some times a lock when waiting for an event using
18988         WaitForSingleObject in __gnat_waitpid. This new implementation uses
18989         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
18990         API fixes this problem.
18991
18992 2006-02-13  Robert Dewar  <dewar@adacore.com>
18993
18994         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
18995         call.
18996
18997 2006-02-13  Thomas Quinot  <quinot@adacore.com>
18998
18999         * exp_pakd.ads: Fix typos in comments.
19000
19001         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
19002         array reference that is an explicit dereference, mark the converted
19003         (packed) array reference as analyzed to prevent a forthcoming
19004         reanalysis from resetting its type to the original (non-packed) array
19005         type.
19006
19007 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
19008             Javier Miranda  <miranda@adacore.com>
19009             Eric Botcazou  <ebotcazou@adacore.com>
19010
19011         * exp_util.ads, exp_util.adb (Find_Prim_Op,
19012         Is_Predefined_Primitive_Operation): When
19013         searching for the predefined equality operator, verify that operands
19014         have the same type.
19015         (Is_Predefined_Dispatching_Operation): Remove the code that looks
19016         for the last entity in the list of aliased subprograms. This code
19017         was wrong in case of renamings.
19018         (Set_Renamed_Subprogram): New procedure
19019         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
19020         Exp_Type constant computed when entering this subprogram.
19021         (Known_Null): New function
19022         (OK_To_Do_Constant_Replacement): New function
19023         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
19024         (Side_Effect_Free): An attribute reference 'Input is not free of
19025         side effect, unlike other attributes that are functions. (from code
19026         reading).
19027         (Remove_Side_Effects): Expressions that involve packed arrays or records
19028         are copied at the point of reference, and therefore must be marked as
19029         renamings of objects.
19030         (Is_Predefined_Dispatching_Operation): Return false if the operation is
19031         not a dispatching operation.
19032
19033         PR ada/18819
19034         (Remove_Side_Effects): Lift enclosing type conversion nodes for
19035         elementary types in all cases.
19036
19037 2006-02-13  Javier Miranda  <miranda@adacore.com>
19038
19039         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
19040         task types when accessing to the corresponding record type.
19041         Remove '!' in warning message.
19042
19043 2006-02-13  Olivier Hainque  <hainque@adacore.com>
19044
19045         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
19046         to avoid useless and space inefficient overalignments on targets where
19047         Max_Alignment is larger than 16.
19048
19049 2006-02-13  Pascal Obry  <obry@adacore.com>
19050
19051         * g-catiio.adb (Sec_Number): New type used to compute the number of
19052         seconds since 1-1-1970.
19053         (Image) [Natural]: The parameter was an Integer, as we can't deal with
19054         negative numbers (years, months...) it is better to have a Natural here.
19055         Code clean-up.
19056         (Image) [Number]: Change parameter from Long_Integer to Number.
19057         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
19058         overflow for dates past year 2038.
19059
19060 2006-02-13  Matthew Heaney  <heaney@adacore.com>
19061
19062         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
19063         Constraint_Error.
19064
19065 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
19066
19067         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
19068         native platforms.
19069         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
19070         finalization can occur normally.
19071
19072 2006-02-13  Vincent Celier  <celier@adacore.com>
19073
19074         * gnatcmd.adb (Rules_Switches): New table
19075         (Add_To_Rules_Switches): New procedure
19076         (GNATCmd): For command CHECK, put all options following "-rules" in the
19077         Rules_Switches table. Append these -rules switches after the -cargs
19078         switches.
19079
19080 2006-02-13  Robert Dewar  <dewar@adacore.com>
19081
19082         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
19083         These two cases were generating incorrect output, and if this unit
19084         was built with checks on, generated a discriminant mismatch constraint
19085         error.
19086
19087 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
19088             Robert Dewar  <dewar@adacore.com>
19089
19090         * lib-xref.adb (Get_Type_Reference): For a private type whose full
19091         view is an array type, indicate the component type as well, for
19092         navigation purposes.
19093         (Generate_Reference): Don't consider array ref on LHS to be a case
19094         of violating pragma Unreferenced.
19095         Do not give Ada 2005 warning except on real reference.
19096
19097 2006-02-13  Vincent Celier  <celier@adacore.com>
19098
19099         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
19100         main source, add switch -mdebug-main=_ada_ so that the executable can
19101         be debugged by the standard VMS debugger.
19102         (Gnatmake): Set No_Main_Subprogram to True when there is no main
19103         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
19104         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
19105         of the last source, as the binding and linking phases are never
19106         performed.
19107         Set all executable obsolete when rebuilding a library.
19108
19109         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
19110         options.
19111
19112 2006-02-13  Javier Miranda  <miranda@adacore.com>
19113
19114         PR ada/23973
19115         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
19116         code to improve the error message reported when the program has
19117         declarations of abstract interface types and it is not compiled with
19118         the -gnat05 switch.
19119         (P_Access_Definition): Reorganize the code to improve the error
19120         message reported when the new Ada 2005 syntax for anonymous
19121         access types is used and the program is not compiled with the
19122         -gnat05 switch.
19123
19124 2006-02-13  Robert Dewar  <dewar@adacore.com>
19125
19126         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
19127         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
19128         (MODE_IN)
19129
19130 2006-02-13  Javier Miranda  <miranda@adacore.com>
19131
19132         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
19133         against source containing syntax errors.
19134
19135 2006-02-13  Vincent Celier  <celier@adacore.com>
19136
19137         * prj.adb (Reset): Initialize the first element of table Namings with
19138         the standard naming data.
19139
19140 2006-02-13  Vincent Celier  <celier@adacore.com>
19141
19142         * prj.ads (Error_Warning): New enumeration type
19143
19144         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
19145         unknown, use the location of the project to report the error.
19146         (When_No_Sources): New global variable
19147         (Report_No_Ada_Sources): New procedure
19148         (Check): New parameter When_No_Sources. Set value of global variable
19149         When_No_Sources,
19150         (Find_Sources): Call Report_No_Ada_Sources when appropriate
19151         (Get_Sources_From_File): Ditto
19152         (Warn_If_Not_Sources): Better warning messages indicating the unit name
19153         and the file name.
19154
19155         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
19156         Call Prj.Proc.Process with parameter When_No_Sources.
19157
19158         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
19159         Call Recursive_Check with parameter When_No_Sources.
19160         (Recursive_Check): New parameter When_No_Sources. Call itself and
19161         Prj.Nmsc.Check with parameter When_No_Sources.
19162         (Process): New parameter When_No_Sources. Call Check with parameter
19163         When_No_Sources.
19164         (Copy_Package_Declarations): New procedure to copy renamed parameters
19165         and setting the location of the declared attributes to the location
19166         of the renamed package.
19167         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
19168         packages.
19169
19170 2006-02-13  Vincent Celier  <celier@adacore.com>
19171
19172         * prj-makr.adb (Make): Preserve the comments from the original project
19173         file.
19174         When removing nodes (attributes Source_Dirs, Source_Files,
19175         Source_List_File and package Naming), save the comments and attach the
19176         saved comments to the newly created nodes.
19177         Do not add a with clause for the naming package if one already exists.
19178
19179 2006-02-13  Javier Miranda  <miranda@adacore.com>
19180             Gary Dismukes  <dismukes@adacore.com>
19181             Robert Dewar  <dewar@adacore.com>
19182
19183         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
19184
19185         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
19186         aliased entities to look for the overriden abstract interface
19187         subprogram.
19188         (Is_Interface_Subprogram): Complete documentation.
19189         (Check_Dispatching_Operation): Do not generate code to register the
19190         operation in the dispatch table if the source is compiled with
19191         restriction No_Dispatching_Calls.
19192         (Override_Dispatching_Operation): Check for illegal attempt to override
19193         No_Return procedure with procedure that is not No_Return
19194         (Check_Dispatching_Call): Suppress the check for an abstract operation
19195         when the original node of an actual is a tag-indeterminate attribute
19196         call, since the attribute, which must be 'Input, can never be abstract.
19197         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
19198         call to the Input attribute (even when rewritten).
19199         (Propagate_Tag): Augment comment to indicate the possibility of a call
19200         to an Input attribute.
19201
19202         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
19203         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
19204
19205         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
19206         No_Wide_Characters is no longer partition-wide
19207         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
19208         rather than GNAT
19209
19210 2006-02-13  Douglas Rupp  <rupp@adacore.com>
19211
19212         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
19213
19214 2006-02-13  Javier Miranda  <miranda@adacore.com>
19215
19216         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
19217         handles default-initialized components to keep separate the management
19218         of this feature but also avoid the unrequired resolution and
19219         expansion of components that do not have partially initialized
19220         values.
19221         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
19222         (Check_Bounds): Likewise.
19223         (Check_Length): Likewise.
19224
19225 2006-02-13  Javier Miranda  <miranda@adacore.com>
19226             Ed Schonberg  <schonberg@adacore.com>
19227
19228         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
19229         abstract interface type call analyze_and_resolve to expand the type
19230         conversion into the corresponding displacement of the
19231         reference to the base of the object.
19232         (Eval_Attribute, case Width): For systems where IEEE extended precision
19233         is supported, the maximum exponent occupies 4 decimal digits.
19234         (Accessibility_Message): Add '\' in 2-line warning message.
19235         (Resolve_Attribute): Likewise.
19236         (case Attribute_Access): Significantly revise checks
19237         for illegal access-to-subprogram Access attributes to properly enforce
19238         the rules of 3.10.2(32/2).
19239         Diagnose use of current instance with an illegal attribute.
19240
19241         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
19242         to a Node_Id.
19243         (Enclosing_Generic_Unit): New function to return a node's innermost
19244         enclosing generic declaration node.
19245         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
19246         (Type_Access_Level): The accessibility level of anonymous acccess types
19247         associated with discriminants is that of the current instance of the
19248         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
19249         (Compile_Time_Constraint_Error): Handle case of conditional expression.
19250         (Kill_Current_Values_For_Entity): New function
19251         (Enter_Name): Change formal type to Entity_Id
19252
19253 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
19254             Ed Schonberg  <schonberg@adacore.com>
19255             Gary Dismukes  <dismukes@adacore.com>
19256
19257         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
19258         Analyze_Compilation_Unit.
19259         Detect and warn on redundant with clauses detected in a package spec
19260         and/or body when -gnatwr is used.
19261         (Analyze_Context): Analyze config pragmas before other items
19262         (Install_Context_Items): Don't analyze config pragmas here
19263         (Install_Limited_Withed_Unit): Set limited entity of package in
19264         with_clause so that cross-reference information or warning messages on
19265         unused packages can be properly generated
19266         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
19267         has Error_Posted set. Prevent infinite loops in illegal programs.
19268         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
19269         to the point of the error test requiring the current unit to be private.
19270         This ensures that private with clauses are not exempted from the basic
19271         checking for being a descendant of the same library unit parent as a
19272         withed private descendant unit.
19273         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
19274         handle private with clauses properly, as well as to account for cases
19275         where the withed unit is a public descendant of a private ancestor
19276         (in which case the current unit must be a descendant of the private
19277         ancestor's parent). The spec comments were updated accordingly. Also,
19278         the old error message in this subprogram was replaced with error
19279         messages that mirror the errors tested and reported by
19280         Check_Private_Child_Unit.
19281         Parameter and variable names improved for readability.
19282         (Install_Limited_Context_Clauses): Remove test for a withed unit being
19283         private as the precondition for calling
19284         Check_Private_Limited_Withed_Unit since that subprogram has been
19285         revised to test public units as well as private units.
19286
19287 2006-02-13  Thomas Quinot  <quinot@adacore.com>
19288             Robert Dewar  <dewar@adacore.com>
19289             Ed Schonberg  <schonberg@adacore.com>
19290             Javier Miranda  <miranda@adacore.com>
19291
19292         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
19293         that Scope_Stack.First = 1.
19294         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
19295         were not always properly handled previously.
19296         (Formal_Entity): Complete rewrite, to handle properly some complex case
19297         with multiple levels of parametrization by formal packages.
19298         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
19299         to the corresponding derived type declaration for proper semantics.
19300
19301         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
19302         (Check_Component): Enforce restriction on components of
19303         unchecked_unions: a component in a variant cannot contain tasks or
19304         controlled types.
19305         (Unchecked_Union): Allow nested variants and multiple discriminants, to
19306         conform to AI-216.
19307         Add pragma Ada_2005 (synonym for Ada_05)
19308         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
19309         were not always properly handled previously.
19310         Document that pragma Propagate_Exceptions has no effect
19311         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
19312         (Set_Convention_From_Pragma): Check that if a convention is
19313         specified for a dispatching operation, then it must be
19314         consistent with the existing convention for the operation.
19315         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
19316         longer required to specify an vtable-ptr component in the record. For
19317         compatibility reasons we leave the support for the previous definition.
19318         (Analyze_Pragma, case No_Return): Allow multiple arguments
19319
19320         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
19321         non-overrideen inherited operation with a controlling result as
19322         illegal only its implicit declaration comes from the derived type
19323         declaration of its result's type.
19324         (Check_Possible_Deferred_Completion): Relocate the object definition
19325         node of the subtype indication of a deferred constant completion rather
19326         than directly analyzing it. The analysis of the generated subtype will
19327         correctly decorate the GNAT tree.
19328         (Record_Type_Declaration): Check whether this is a declaration for a
19329         limited derived record before analyzing components.
19330         (Analyze_Component_Declaration): Diagnose record types  not explicitly
19331         declared limited when a component has a limited type.
19332         (Build_Derived_Record_Type): Code reorganization to check if some of
19333         the inherited subprograms of a tagged type cover interface primitives.
19334         This check was missing in case of a full-type associated with a private
19335         type declaration.
19336         (Constant_Redeclaration): Check that the subtypes of the partial and the
19337         full view of a constrained deferred constant statically match.
19338         (Mentions_T): A reference to the current type in an anonymous access
19339         component declaration  must be an entity name.
19340         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
19341         class_wide type to refer to full type, not to the incomplete one.
19342         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
19343         available. Required to give support to the certified run-time.
19344         (Analyze_Component_Declaration): In case of anonymous access components
19345         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
19346         (Process_Discriminants): For an access discriminant, use the
19347         discriminant specification as the associated_node_for_itype, to
19348         simplify accessibility checks.
19349
19350 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
19351             Javier Miranda  <miranda@adacore.com>
19352
19353         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
19354         abstract interpretations on an operator, remove interpretations that
19355         yield Address or a type derived from it, if one of the operands is an
19356         integer literal.
19357         (Try_Object_Operation.Try_Primitive_Operation,
19358         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
19359         location when creating the new reference to a primitive or class-wide
19360         operation as a part of rewriting a subprogram call.
19361         (Try_Primitive_Operations): If context requires a function, collect all
19362         interpretations after the first match, because there may be primitive
19363         operations of the same type with the same profile and different return
19364         types. From code reading.
19365         (Try_Primitive_Operation): Use the node kind to choose the proper
19366         operation when a function and a procedure have the same parameter
19367         profile.
19368         (Complete_Object_Operation): If formal is an access parameter and prefix
19369         is an object, rewrite as an Access reference, to match signature of
19370         primitive operation.
19371         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
19372         by an expanded name with prefix Standard, when the operands are of an
19373         anonymous access type.
19374         (Remove_Abstract_Operations): If the operation is abstract because it is
19375         inherited by a user-defined type derived from Address, remove it as
19376         well from the set of candidate interpretations of an overloaded node.
19377         (Analyze_Membership_Op): Membership test not applicable to cpp-class
19378         types.
19379
19380 2006-02-13  Bob Duff  <duff@adacore.com>
19381
19382         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
19383         redundant use clauses.
19384         In particular, if the scope of two use clauses overlaps, but one is not
19385         entirely included in the other, we should not warn.  This can happen
19386         with nested packages.
19387         (Analyze_Subprogram_Renaming): Protect the compiler against previously
19388         reported errors. The bug was reported when the compiler was built
19389         with assertions enabled.
19390         (Find_Type): If the node is a 'Class reference and the prefix is a
19391         synchronized type without a corresponding record, return the type
19392         itself.
19393
19394 2006-02-13  Javier Miranda  <miranda@adacore.com>
19395
19396         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
19397         if this is the full-declaration associated with a private declaration
19398         that implement interfaces, then the private type declaration must be
19399         limited.
19400         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
19401         as aliased. The use of the 'access attribute is not available for such
19402         object (for this purpose the object should be explicitly marked as
19403         aliased, but being an anonymous type this is not possible).
19404
19405 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
19406             Robert Dewar  <dewar@adacore.com>
19407
19408         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
19409         compilation unit is an elaboration scope.
19410         (Add_Task_Proc): Add '\' in 2-line warning message.
19411         (Activate_All_Desirable): Deal with case of unit with'ed by parent
19412
19413 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
19414             Javier Miranda  <miranda@adacore.com>
19415
19416         * sem_type.adb (Write_Overloads): Improve display of candidate
19417         interpretations.
19418         (Add_One_Interp): Do not add to the list of interpretations aliased
19419         entities corresponding with an abstract interface type that is an
19420         immediate ancestor of a tagged type; otherwise we have a dummy
19421         conflict between this entity and the aliased entity.
19422         (Disambiguate): The predefined equality on universal_access is not
19423         usable if there is a user-defined equality with the proper signature,
19424         declared in the same declarative part as the designated type.
19425         (Find_Unique_Type): The universal_access equality operator defined under
19426         AI-230 does not cover pool specific access types.
19427         (Covers): If one of the types is a generic actual subtype, check whether
19428         it matches the partial view of the other type.
19429
19430 2006-02-13  Thomas Quinot  <quinot@adacore.com>
19431
19432         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
19433         line. This is necessary to allow In_Extended_Main_Unit to provide
19434         correct results for itypes while writing out expanded source.
19435         (Close_File): No need to update the source_index_table here since it's
19436         now done for each line.
19437
19438 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
19439             Robert Dewar  <dewar@adacore.com>
19440
19441         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
19442         preserve the source unit where the itype is declared, and prevent a
19443         backend abort.
19444         (Note_Implicit_Run_Time_Call): New procedure
19445         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
19446         E_Subprogram_Type)
19447
19448         * sprint.ads: Document use of $ for implicit run time routine call
19449
19450 2006-02-13  Quentin Ochem  <ochem@adacore.com>
19451
19452         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
19453         task name.
19454
19455 2006-02-13  Bob Duff  <duff@adacore.com>
19456
19457         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
19458         Scan_Unsigned, so we do not scan leading blanks and sign twice.
19459         Integer'Value("- 5") and Integer'Value("-+5") now correctly
19460         raise Constraint_Error.
19461
19462         * s-vallli.adb (Scan_Long_Long_Integer): Call
19463         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
19464         do not scan leading blanks and sign twice.
19465         Integer'Value("- 5") and Integer'Value("-+5") now correctly
19466         raise Constraint_Error.
19467
19468         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
19469         Scan_Long_Long_Unsigned): Split out most of the processing from
19470         Scan_Long_Long_Unsigned out into
19471         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
19472         This prevents scanning leading blanks and sign twice.
19473         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
19474         See RM-3.5(44).
19475
19476         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
19477         out most of the processing from Scan_Unsigned out into
19478         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
19479         This prevents scanning leading blanks and sign twice.
19480
19481         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
19482         use with Modular'Value attribute.
19483         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
19484         attribute.
19485
19486 2006-02-13  Robert Dewar  <dewar@adacore.com>
19487
19488         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
19489
19490 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
19491
19492         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
19493         (PPC VxWorks): Likewise.
19494         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
19495         (forced_callee): Make non-inlinable and non-pure.
19496         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
19497
19498 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
19499             Ben Brosgol  <brosgol@adacore.com>
19500             Robert Dewar  <dewar@adacore.com>
19501
19502         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
19503         support.
19504         Document that gnatbind -M option is for cross environments only.
19505         Added description of using gnatmem to trace gnat rtl allocs and deallocs
19506         Add note on use of $ to label implicit run time calls
19507         Add documentation for -gnatyI (check mode IN)
19508         Updated chapter on compatibility with HP Ada
19509         VMS-oriented edits.
19510         Ran spell and corrected errors
19511         Add documentation for gnatbind -d and rework documentation of -D
19512         at the same time.
19513         Add subprogram/data elimination section.
19514         Minor editing of annex A.
19515         Add section for gnatcheck.
19516         Add documentation for restriction No_Dispatching_Calls
19517         Add documentation for pragma Ada_2005
19518         Remove mention of obsolete pragma Propagate_Exceptions
19519         Document that pragma Unreferenced can appear after DO in ACCEPT
19520         Clarify Pure_Function for library level units
19521         Mention Max/Min in connection with No_Implicit_Conditionals
19522         No_Wide_Characters restriction is no longer partition-wide
19523         Add a nice example for Universal_Literal_String attribute
19524         Document that pragma No_Return can take multiple arguments
19525
19526         * ug_words: Added entry for gnatcheck
19527
19528         * g-ctrl_c.ads (Install_Handler): Enhance comments
19529
19530         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
19531
19532         * g-trasym.ads: Add documentation on how to do off line symbolic
19533         traceback computation.
19534
19535         * s-fatgen.adb: Add comments for Unaligned_Valid
19536
19537         * stand.ads: Fix typo in comment
19538
19539 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
19540
19541         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
19542
19543 2006-02-06  Roger Sayle  <roger@eyesopen.com>
19544
19545         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
19546
19547 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19548
19549         PR target/25926
19550         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
19551         implementation that calls __main.
19552
19553 2006-01-25  Peter O'Gorman  <peter@pogma.com>
19554
19555         PR bootstrap/25859
19556         * Makefile.in (GCC_LINK): Remove quotes.
19557         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
19558         or $(GCC_LINK).
19559
19560         (powerpc-darwin): Pass -shared-libgcc when building shared library.
19561
19562 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19563
19564         PR ada/24533
19565         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
19566
19567 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19568
19569         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
19570
19571 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
19572
19573         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
19574         needed.
19575
19576 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
19577
19578         * Make-lang.in: Update dependencies
19579
19580 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
19581
19582         * Make-lang.in: Add rule for ada/exp_sel.o
19583
19584 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
19585
19586         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
19587
19588 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
19589
19590         * gnatvsn.ads (Library_Version): Bump to version 4.2
19591         (ASIS_Version_Number): Bumped.
19592
19593 2005-12-09  Doug Rupp  <rupp@adacore.com>
19594
19595         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
19596         Ada bind file prefix on VMS from b$ to b__.
19597         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
19598         __init.
19599
19600         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
19601         Targparm.OpenVMS_On_Target.
19602         (Object_Suffix): Initialize with target object suffix.
19603         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
19604
19605         * butil.adb: Change some Hostparm.OpenVMS checks to
19606         Targparm.OpenVMS_On_Target.
19607
19608         * clean.adb: Change some Hostparm.OpenVMS checks to
19609         Targparm.OpenVMS_On_Target.
19610         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
19611         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
19612         Ada bind file prefix on VMS from b$ to b__.
19613
19614         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
19615         --GCC so that Get_Target_Parameters can find system.ads.
19616         (Gnatlink): Call Get_Target_Parameters in mainline.
19617         Initialize standard packages for Targparm.
19618         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
19619         (Process_Args): Also Check for object files with target object
19620         extension.
19621         (Make_Binder_File_Names): Create with target object extension.
19622         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
19623         to b__.
19624
19625         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
19626         Targparm.OpenVMS_On_Target.
19627         ({declaration},Build_Library,Check_Library): Change Ada bind file
19628         prefix on VMS from b$ to b__.
19629
19630         * osint-b.adb: Change some Hostparm.OpenVMS checks to
19631         Targparm.OpenVMS_On_Target.
19632         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
19633         b__.
19634
19635         * targext.c: New file.
19636
19637         * Makefile.in: add support for vxworks653 builds
19638         (../../vxaddr2line): gnatlink with targext.o.
19639         (TOOLS_LIBS): Move targext.o to precede libgnat.
19640         (init.o, initialize.o): Minor clean up in dependencies.
19641         (GNATLINK_OBJS): Add targparm.o, snames.o
19642         Add rules fo building targext.o and linking it explicitly with all
19643         tools.
19644         Also add targext.o to gnatlib.
19645
19646         * Make-lang.in: Add rules for building targext.o and linking it in
19647         with gnat1 and gnatbind.
19648         Add entry for exp_sel.o.
19649
19650         * osint.adb Change some Hostparm.OpenVMS checks to
19651         Targparm.OpenVMS_On_Target.
19652         (Object_File_Name): Use target object suffix.
19653
19654         * osint.ads (Object_Suffix): Remove, no longer used.
19655         (Target_Object_Suffix): Initialize with target object suffix.
19656
19657         * rident.ads: Add special exception to license.
19658
19659         * targparm.adb (Get_Target_Parameters): Set the value of
19660         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
19661         value.
19662         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
19663         
19664         * targparm.ads: Add special exception to license.
19665
19666         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
19667         function.
19668         (Copy_File): Make sure from file is closed if error on to file
19669         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
19670
19671         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
19672         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
19673
19674         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
19675         target object suffix.
19676
19677 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
19678             Quentin Ochem  <ochem@adacore.com>
19679             Florian Villoing  <villoing@adacore.com>
19680
19681         * a-taster.ads, a-taster.adb: New files.
19682
19683         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
19684         link to the version that does nothing. This way the task termination
19685         routine is not executed twice for the environment task when finishing
19686         because of an unhandled exception.
19687
19688         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
19689         handler because of an unhandled exception.
19690
19691         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
19692         System.Tasking.Utilities instead of that in System.Tasking.Stages.
19693
19694         * s-finimp.adb (initialization code): Modify the soft link for the
19695         finalization of the global list instead of Adafinal.
19696
19697         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
19698         non-tasking version of the soft link for task termination. We do
19699         nothing since if we are using the non-tasking version it
19700         means that the task termination functionality is not used.
19701         (Null_Finalize_Global_List): Add this null version for the procedure
19702         in charge of finalizing the global list for controlled objects.
19703         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
19704         instead for handling run-time termination in a more flexible way.
19705         (Adafinal_NT): This new procedure will take care of finalizing the
19706         global list for controlled objects if needed, but no tasking
19707         finalization.
19708
19709         * s-tarest.adb (Task_Lock): Do not try to lock again the
19710         Global_Task_Lock if we already own it. Otherwise, we get blocked in
19711         some run-time operations.
19712         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
19713         until all nested locks have been released.
19714         (Task_Wrapper): Call the fall-back task termination handler. It
19715         applies to all tasks but the environment task.
19716         (Finalize_Global_Tasks): Add the call for the task termination
19717         procedure for the environment task.
19718         (Task_Wrapper): suppress warnings around declaration of
19719         Secondary_Stack_Address.
19720
19721         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
19722         moved to the Common_ATCB record.
19723         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
19724         Common_ATCB record.
19725         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
19726         Common_ATCB record.
19727
19728         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
19729         Fall_Back_Handler, and Specific_Handler.
19730
19731         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
19732         defined in Ada.Task_Termination, to avoid circular dependencies.
19733         (Termination_Handler): Redefine this type here, alredy defined in
19734         Ada.Task_Termination, for avoiding circular dependencies.
19735         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
19736         for storing task termination handlers. In addition,
19737         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
19738         Common_ATCB because it is used by both the regular and the restricted
19739         run times.
19740         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
19741         Common_ATCB because it is used by both the regular and the restricted
19742         run times.
19743         (Common_ATCB): Added a dynamic task analyzer field.
19744
19745         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
19746         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
19747         (Task_Wrapper): Call the task termination handler. It applies to all
19748         tasks but the environment task.
19749         (Finalize_Global_Tasks): Call the task termination procedure for the
19750         environment task. The call to Finalize_Global_List is now performed
19751         using the soft links mechanism.
19752         (Task_Wrapper): added dynamic stack analysis.
19753
19754         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
19755         potentially blocking operations has been moved from
19756         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
19757         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
19758         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
19759         this run-time check.
19760
19761         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
19762         of task termination procedure.
19763         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
19764         link for the task termination procedure.
19765
19766         * bindusg.adb: (Bindusg): Added documentation for -u option.
19767
19768         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
19769         (Get_Main_C): Add handling of dynamic stack analysis.
19770         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
19771
19772         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
19773         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
19774         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
19775
19776         * opt.ads: Added flags used by dynamic stack measurement.
19777         (Max_Line_Length): Remove (not used anymore)
19778
19779         * s-io.ads, s-io.adb (Standard_Error): new subprogram
19780         (Standart_Output): new subprogram
19781         (Set_Output): new subprogram
19782         (Put): now uses the value of Current_Out to know if the output has to be
19783         send to stderr or stdout.
19784         
19785         * s-stausa.ads: Complete implementation.
19786
19787         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
19788         
19789         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
19790         list of Ada 05 files.
19791         (GNAT Library Units): Add AltiVec files.
19792
19793         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
19794         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
19795         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
19796
19797 2005-12-09  Nicolas Setton  <setton@adacore.com>
19798
19799         * adaint.c (__gnat_locate_regular_file): Return immediately if
19800         file_name is empty.
19801
19802 2005-12-09  Javier Miranda  <miranda@adacore.com>
19803             Hristian Kirtchev  <kirtchev@adacore.com>
19804
19805         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
19806         to the specification because the frontend generates code that uses this
19807         subprogram.
19808         (Set_Interface_Table): Add missing assertion.
19809         Update documentation describing the run-time structure.
19810         (Displace): New subprogram that displaces the pointer to the object
19811         to reference one of its secondary dispatch tables.
19812         (IW_Membership): Modified to use the new table of interfaces.
19813         (Inherit_TSD): Modified to use the new table of interfaces.
19814         (Register_Interface_Tag): Use the additional formal to fill the
19815         contents of the new table of interfaces.
19816         (Set_Interface_Table): New subprogram that stores in the TSD the
19817         pointer to the table of interfaces.
19818         (Set_Offset_To_Top): Use the additional formal to save copy of
19819         the offset value in the table of interfaces.
19820         Update structure of GNAT Primary and Secondary dispatch table diagram.
19821         Add comment section on GNAT dispatch table prologue.
19822         (Offset_To_Signature): Update the constant value of the Signature field.
19823         (Dispatch_Table): Update comment on hidden fields in the prologue.
19824         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
19825         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
19826         the type of formal parameter T to Tag, introduce additional assertions.
19827         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
19828         conversion.
19829         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
19830
19831         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
19832         in all the calls to Expand_Interface_Thunk. Instead of referencing the
19833         record component containing the tag of the secondary dispatch table we
19834         have to use the Offset_To_Top run-time function to get this information;
19835         otherwise if the pointer to the base of the object has been displace
19836         we get a wrong value if we use the 'position attribute.
19837
19838         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
19839         all the calls to Expand_Interface_Thunk.
19840         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
19841         interfaces; hence the call to Set_Interface_Table was clearly wrong.
19842         (Collect_All_Interfaces): Modify the internal subprogram Collect to
19843         ensure that the interfaces implemented by the ancestors are placed
19844         at the header of the generated list.
19845         (Expand_Interface_Conversion): Handle the case in which the displacement
19846         associated with the interface conversion is not statically known. In
19847         this case we generate a call to the new run-time subprogram Displace.
19848         (Make_DT): Generate and fill the new table of interfaces.
19849         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
19850         Get_Tagged_Kind and Set_Tagged_Kind.
19851         (Tagged_Kind): New function that determines the tagged kind of a type
19852         with respect to limitedness and concurrency and returns a reference to
19853         RE_Tagged_Kind.
19854         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
19855         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
19856         primary dispatch table for a type.
19857         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
19858         secondary dispatch table respectively of a tagged type.
19859
19860         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
19861         (Expand_Interface_Conversion): New subprogram to indicate if the
19862         displacement of the type conversion is statically known.
19863         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
19864
19865         * rtsfind.ads (RE_Offset_To_Top): New entity
19866         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
19867         accessible to users.
19868         (Re_Displace): New entity
19869         (RE_Interface_Data): New entity
19870         (RE_Set_Interface_Data): New_Entity
19871         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
19872         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
19873         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
19874         RE_TK_Tagged, RE_TK_Task.
19875
19876         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
19877         Init_Secondary_Tags_Internal to allow its use with interface types and
19878         also to generate the code for the new additional actual required
19879         by Set_Offset_To_Top.
19880         (Build_Init_Statements): In case of components associated with abstract
19881         interface types there is no need to generate a call to its IP.
19882         (Freeze_Record_Type): Generate Select Specific Data tables only for
19883         concurrent types.
19884         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
19885         the bodies and specifications of the predefined primitive operations
19886         dealing with dispatching selects and abort, 'Callable, 'Terminated only
19887         for concurrent types.
19888
19889         * exp_sel.ads, exp_sel.adb: New files.
19890
19891         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
19892         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
19893         properly protected objects and attach handler in the case of the
19894         restricted profile.
19895         Move embeded package Select_Expansion_Utilities into a separate external
19896         package.
19897         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
19898         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
19899         (Build_K, Build_S_Assignment): New subprograms, part of the select
19900         expansion utilities.
19901         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
19902         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
19903         where the trigger is a dispatching procedure of a limited tagged type.
19904
19905 2005-12-09  Olivier Hainque  <hainque@adacore.com>
19906
19907         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
19908         pointer initialization values. Make a SAVE_EXPR instead. Add comments
19909         about the use and expansion of SAVE_EXPRs in the various possible
19910         renaming handling cases.
19911         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
19912         abusing DECL_FCONTEXT.
19913
19914 2005-12-09  Matthew Heaney  <heaney@adacore.com>
19915
19916         * a-convec.adb (Merge): Added assertions to check whether vector params
19917         are sorted.
19918
19919         * a-coinve.adb (Merge): Added assertions to check whether vector params
19920         are sorted.
19921
19922         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
19923         draft.
19924         (Cursor'Read): raises PE
19925
19926         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
19927         to its default value.
19928
19929         * a-cihama.adb: Manually check whether cursor's key and elem are
19930         non-null
19931
19932         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
19933         (Merge): Assert that target and source lists are in order
19934         (Swap): Declare non-const temporaries, to pass to Splice
19935
19936         * a-cdlili.ads: (Splice): Changed param name and param mode
19937
19938         * a-cdlili.adb: (Splice): Changed param name and param mode
19939         (Merge): Assert that target and source lists are in order
19940         (Swap): Declare non-const temporaries, to pass to Splice
19941
19942         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
19943         (Write): declare Stream param as not null
19944
19945         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
19946         an exception message.
19947
19948 2005-12-09  Thomas Quinot  <quinot@adacore.com>
19949             Robert Dewar  <dewar@adacore.com>
19950
19951         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
19952         which is the absolute maximum length we can support.
19953
19954         * frontend.adb: For the processing of configuration pragma files,
19955         remove references to Opt.Max_Line_Length, which is not checked anymore.
19956
19957         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
19958         length.
19959
19960         * scn.adb, scng.adb: 
19961         Always check line length against the absolute supported maximum,
19962         Hostparm.Max_Line_Length.
19963
19964         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
19965         value for the maximum line length is Max_Line_Length (not
19966         Column_Number'Last).
19967         Minor error msg update
19968         (Set_Style_Check_Options): New interface returning error msg
19969         Minor code reorganization (processing for 'M' was out of alpha order)
19970
19971         * switch-c.adb: New interface for Set_Style_Check_Options
19972
19973         * stylesw.ads (Set_Style_Check_Options): New interface returning error
19974         msg.
19975
19976 2005-12-09  Javier Miranda  <miranda@adacore.com>
19977
19978         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
19979         with IP subprogram were only supported if there were limited types.
19980
19981         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
19982         records with IP subprogram were only supported if there were limited
19983         types.
19984
19985 2005-12-09  Olivier Hainque  <hainque@adacore.com>
19986             Eric Botcazou  <ebotcazou@adacore.com>
19987
19988         * trans.c (tree_transform, emit_check): Adjust calls to
19989         build_call_raise, passing the now expected GNAT_NODE argument.
19990
19991         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
19992         source line information than what the current global locus indicates
19993         when appropriate.
19994
19995         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
19996         field has overflowed.
19997         (build_call_raise): Add a GNAT_NODE argument to convey better source
19998         line information than what the current global locus indicates when
19999         appropriate.
20000         (build_component_ref): Adjust call to build_call_raise.
20001
20002 2005-12-09  Pascal Obry  <obry@adacore.com>
20003
20004         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
20005         the iterator is quitting iteration on parent directory.
20006
20007 2005-12-09  Javier Miranda  <miranda@adacore.com>
20008
20009         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
20010         and the assignment to a class-wide object, before the assignment we
20011         generate a run-time check to ensure that the tag of the Target is
20012         covered by the tag of the source.
20013
20014 2005-12-09  Robert Dewar  <dewar@adacore.com>
20015
20016         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
20017         parameter in call to Image_Wide_Character.
20018
20019         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
20020         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
20021         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
20022         annoying FFFE/FFFF inconsistency.
20023
20024 2005-12-09  Robert Dewar  <dewar@adacore.com>
20025             Javier Miranda  <miranda@adacore.com>
20026             Ed Schonberg  <schonberg@adacore.com>
20027
20028         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
20029         of type conversion.
20030         (Find_Interface): New subprogram that given a tagged type and one of its
20031         component associated with the secondary table of an abstract interface
20032         type, return the entity associated with such abstract interface type.
20033         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
20034         base type to create anonymous subtype, because entity may be a locally
20035         declared subtype or generic actual.
20036         (Find_Interface): New subprogram that given a tagged type and one of its
20037         component associated with the secondary table of an abstract interface
20038         type, return the entity associated with such abstract interface type.
20039
20040         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
20041         conversion cannot be handled at compile time. In this case we pass this
20042         information to the expander to generate the appropriate code.
20043
20044 2005-12-09  Robert Dewar  <dewar@adacore.com>
20045             Ed Schonberg  <schonberg@adacore.com>
20046             Gary Dismukes  <dismukes@adacore.com>
20047             Javier Miranda  <miranda@adacore.com>
20048             Hristian Kirtchev  <kirtchev@adacore.com>
20049
20050         * einfo.adb (Itype_Printed): New flag
20051         (Is_Limited_Type): Derived types do not inherit limitedness from
20052         interface progenitors.
20053         (Is_Return_By_Reference_Type): Predicate does not apply to limited
20054         interfaces.
20055
20056         * einfo.ads (Itype_Printed): New flag
20057         Move Is_Wrapper_Package to proper section
20058         Add missing Inline for Is_Volatile
20059
20060         * output.ads, output.adb (Write_Erase_Char): New procedure
20061         (Save/Restore_Output_Buffer): New procedures
20062         (Save/Restore_Output_Buffer): New procedures
20063
20064         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
20065         Add missing support for anonymous access type
20066         (Write_Id): Insert calls to Write_Itype
20067         (Write_Itype): New procedure to output itypes
20068
20069         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
20070         use of "limited" in declaration.
20071
20072         * sinfo.ads, sinfo.adb: 
20073         Formal derived types can carry an explicit "limited" indication.
20074
20075         * sem_ch3.adb: Add with and use of Targparm.
20076         (Create_Component): If Frontend_Layout_On_Target is True and the
20077         copied component does not have a known static Esize, then reset
20078         the size and positional fields of the new component.
20079         (Analyze_Component_Declaration): A limited component is
20080         legal within a protected type that implements an interface.
20081         (Collect_Interfaces): Do not add to the list the interfaces that
20082         are implemented by the ancestors.
20083         (Derived_Type_Declaration): If the parent of the full-view is an
20084         interface perform a transformation of the tree to ensure that it has
20085         the same parent than the partial-view. This simplifies the job of the
20086         expander in order to generate the correct object layout, and it is
20087         needed because the list of interfaces of the full-view can be given in
20088         any order.
20089         (Process_Full_View): The parent of the full-view does not need to be
20090         a descendant of the parent of the partial view if both parents are
20091         interfaces.
20092         (Analyze_Private_Extension_Declaration): If declaration has an explicit
20093         "limited" the parent must be a limited type.
20094         (Build_Derived_Record_Type): A derived type that is explicitly limited
20095         must have limited ancestor and progenitors.
20096         (Build_Derived_Type): Ditto.
20097         (Process_Full_View): Verify that explicit uses of "limited" in partial
20098         and full declarations are consistent.
20099         (Find_Ancestor_Interface): Remove function.
20100         (Collect_Implemented_Interfaces): New procedure used to gather all
20101         implemented interfaces by a type.
20102         (Contain_Interface): New function used to check whether an interface is
20103         present in a list.
20104         (Find_Hidden_Interface): New function used to determine whether two
20105         lists of interfaces constitute a set equality. If not, the first
20106         differing interface is returned.
20107         (Process_Full_View): Improve the check for the "no hidden interface"
20108         rule as defined by AI-396.
20109
20110 2005-12-09  Robert Dewar  <dewar@adacore.com>
20111
20112         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
20113         types, not on record subtypes.
20114         (Freeze_Entity): Code cleanup. Add barrier to the loop
20115         that generates the references for primitive operations. This allows to
20116         remove an unnecessary exception handler.
20117         Code reformatting and comment clean ups.
20118
20119 2005-12-09  Vincent Celier  <celier@adacore.com>
20120
20121         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
20122         If GNAT CHECK is called with a project file, but with no
20123         source on the command line, call gnatcheck with all the compilable
20124         sources of the project.
20125         Take into account the new command Check, for gnatcheck. Treat as for
20126         other ASIS tools: take into account project, specific package Check and
20127         Compiler switches.
20128         For ASIS tools, add the switches in package Compiler for
20129         the invocation of the compiler.
20130
20131         * prj-attr.adb: Add package Check and its attributes
20132
20133         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
20134
20135         * vms_conv.adb (Initialize): Change Params of command Check to
20136         unlimited files.
20137         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
20138         Add data for new command Check
20139
20140         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
20141         ELIM.
20142         Add qualifiers for Check command options
20143         (Command_Type): New command Check
20144
20145 2005-12-09  Thomas Quinot  <quinot@adacore.com>
20146
20147         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
20148         command line switch overruns the output buffer.
20149
20150 2005-12-09  Robert Dewar  <dewar@adacore.com>
20151
20152         * sem_prag.adb: Processing for new pragma Complete_Representation
20153         (Analyze_Pragma, case Debug): Implement two argument form.
20154
20155         * par-prag.adb: Entry for new pragma Complete_Representation
20156         (Prag, case Debug): Recognize two argument form of pragma Debug
20157         New interface for Set_Style_Check_Options.
20158
20159         * sem_ch13.adb: Implement new pragma Complete_Representation.
20160
20161         * snames.adb, snames.ads, snames.h: Entry for new pragma
20162         Complete_Representation.
20163
20164 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
20165
20166         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
20167         available user-specified stream attributes on limited parameters to
20168         also test the type directly rather than only its underlying type (for
20169         Ada 95) and, in the case of Ada 2005, to check that the user-specified
20170         attributes are visible at the point of the subprogram declaration.
20171         For Ada 2005, the error message is modified to indicate that the
20172         type's stream attributes must be visible (again, only for -gnat05).
20173
20174 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
20175
20176         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
20177         anonymous access types.
20178
20179         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
20180         matching of anonymous access types and anonymous access to subprogram
20181         types. 'R'M 4.9.1 (2/2).
20182
20183 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
20184
20185         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
20186         rule prematurely when operands are universal, remaining ambiguities
20187         will be removed during resolution.
20188         Code cleanup.
20189
20190         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
20191         that are Ada 2005 functions.
20192         (Has_Abstract_Interpretation): Subsidiary to
20193         Remove_Conversions, to remove ambiguities caused by abstract operations
20194         on numeric types when operands are universal.
20195
20196 2005-12-09  Robert Dewar  <dewar@adacore.com>
20197
20198         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
20199         for case where spec is categorized.
20200
20201 2005-12-09  Javier Miranda  <miranda@adacore.com>
20202
20203         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
20204         types use the corresponding record type. This was not needed before
20205         the implementation of Ada 2005 synchronized types because
20206         concurrent types were never tagged types in Ada 95.
20207
20208 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
20209
20210         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
20211         first subtype of the type of the expression to verify that it is a
20212         legal Time type.
20213
20214 2005-12-09  Robert Dewar  <dewar@adacore.com>
20215
20216         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
20217         decoded names.
20218
20219 2005-12-09  Quentin Ochem  <ochem@adacore.com>
20220             Robert Dewar  <dewar@adacore.com>
20221             Ed Falis  <falis@adacore.com>
20222             Florian Villoing  <villoing@adacore.com>
20223             Thomas Quinot  <quinot@adacore.com>
20224             Arnaud Charlet  <charlet@adacore.com>
20225
20226         * gnat_ugn.texi: Created section "Stack Related Tools"
20227         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
20228         "Stack Related Tools"
20229         Added subsection "Static Stack Usage Analysis"
20230         Added subsection "Dynamic Stack Usage Analysis"
20231         Include documentation of itypes in sprint listing (-gnatG)
20232         Documented gnatbind -D switch (default sec stack size for fixed sec
20233         stacks).
20234         Added Interrupt_State and Persistent_BSS to list of configuration
20235         pragmas.
20236         Add missing doc for maximum value of nnn in -gnatyMnnn
20237
20238         * gnat_rm.texi: Document the AltiVec binding.
20239         Add documentation for pragma Complete_Representation
20240         Shortened an overly long line (> 79 chars)
20241         Clarify documentation of unchecked conversion in implementation
20242         defined cases.
20243         Document two argument form of pragma Debug
20244
20245         * types.ads (Column_Number): Update documentation.
20246
20247         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
20248         library level Finalize_Storage_Only objects (these are not attached to
20249         any finalization list).
20250
20251         * system-mingw.ads: (Underlying_Priorities): Update comment.
20252
20253 2005-12-09  Robert Dewar  <dewar@adacore.com>
20254
20255         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
20256         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
20257         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
20258         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
20259         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
20260         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
20261         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
20262         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
20263         reformatting.
20264
20265 2005-12-09  Robert Dewar  <dewar@adacore.com>
20266
20267         * s-vaflop-vms-alpha.adb: (Ne_F): New function
20268         (Ne_G): New function
20269
20270         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
20271         for tag assignment.
20272         (Rewrite_Comparison): Handle case where operation is not a comparison
20273         and ignore, and also handle type conversion case.
20274
20275 2005-12-09  Thomas Quinot  <quinot@adacore.com>
20276
20277         * exp_aggr.ads: Fix typo in comment.
20278         ???-mark Convert_Aggr_In_Assignment as needing documentation.
20279
20280 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
20281
20282         * layout.adb: Replace various uses of byte by storage unit throughout.
20283         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
20284         static size, convert to storage units before returning, to conform to
20285         spec.
20286
20287 2005-12-09  Matthew Gingell  <gingell@adacore.com>
20288
20289         * g-exctra.ads: Fix typo in comment.
20290
20291 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20292
20293         * utils.c: Minor reformatting.
20294
20295 2005-12-09  Robert Dewar  <dewar@adacore.com>
20296
20297         * g-soccon.ads: 
20298         Further comment fixes to make the status of the default file clear
20299
20300         * s-bitops.adb: Clarify comment for Bits_Array
20301
20302 2005-12-07  Rafael ï¿½vila de Esp�ndola  <rafael.espindola@gmail.com>
20303
20304         * Make-lang.in (ada.install-normal): Remove.
20305
20306 2005-12-07  Rafael ï¿½vila de Esp�ndola  <rafael.espindola@gmail.com>
20307
20308         * Make-lang.in: Remove all dependencies on s-gtype.
20309
20310 2005-12-05  Richard Guenther  <rguenther@suse.de>
20311
20312         * utils.c (convert): Use fold_convert where appropriate.
20313
20314 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
20315
20316         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
20317         a period is meant.
20318
20319 2005-12-02  Richard Guenther  <rguenther@suse.de>
20320
20321         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
20322
20323 2005-12-01  Roger Sayle  <roger@eyesopen.com>
20324
20325         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
20326         nodes.
20327
20328 2005-11-23  Laurent Guerby  <laurent@guerby.net>
20329
20330         * mlib-prj.adb (Build_Library): Initialize Delete.
20331
20332 2005-11-21  Joel Sherrill  <joel.sherrill@oarcorp.com>
20333
20334         * socket.c: Add extern int h_errno for rtems since networking header
20335         files are not available at this point in a tool bootstrap. Newlib
20336         only has basic C library header files.
20337
20338 2005-11-19  Richard Guenther  <rguenther@suse.de>
20339         Roger Sayle  <roger@eyesopen.com>
20340
20341         PR ada/23717
20342         * misc.c (internal_error_function): Don't use vsprintf to format
20343         the error message text, instead use pp_format_text and the new
20344         pretty printer APIs.  This allows handling of %qs, %w, etc.
20345
20346 2005-11-18  Laurent Guerby  <laurent@guerby.net>
20347
20348         PR ada/24857
20349         * Makefile.in: Use s-auxdec-empty for RTEMS.
20350
20351 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20352
20353         PR ada/22333
20354         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
20355         a temporary if taking the address of something that is neither
20356         reference, declaration, or constant, since the gimplifier
20357         can't handle that case.
20358
20359 2005-11-17  Laurent Guerby  <laurent@guerby.net>
20360
20361         PR ada/24857
20362         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
20363
20364 2005-11-16  Richard Guenther  <rguenther@suse.de>
20365
20366         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
20367
20368 2005-11-16  Joel Sherrill  <joel.sherrill@oarcorp.com>
20369
20370         PR ada/24855
20371         * raise-gcc.c: Add missing stdarg.h include.
20372  
20373 2005-11-16  Richard Guenther  <rguenther@suse.de>
20374
20375         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
20376         (ada/misc.o): Likewise.
20377
20378 2005-11-14  Thomas Quinot  <quinot@adacore.com>
20379
20380         * g-soccon.ads: Minor reformatting. Update comments.
20381
20382         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
20383         gain visibility on the declaration of struct timeval.
20384
20385         * g-soccon-freebsd.ads,
20386         g-soccon-darwin.ads,
20387         g-soccon-tru64.ads,
20388         g-soccon-aix.ads,
20389         g-soccon-irix.ads,
20390         g-soccon-hpux.ads,
20391         g-soccon-solaris.ads,
20392         g-soccon-vms.ads,
20393         g-soccon-mingw.ads,
20394         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
20395
20396         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
20397         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
20398         g-soccon-linux-x86.ads: New files.
20399
20400         * g-socthi-mingw.adb: 
20401         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
20402
20403         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
20404         (time_t, suseconds_t): New types constructed to match the tv_sec
20405         and tv_usec fields of C struct timeval.
20406         (Timeval): Construct structure in terms of the new types.
20407         (Host_Errno): New function (imported from socket.c), returns last hosts
20408         database error.
20409
20410         * g-socthi-vxworks.adb:  Add error handling circuitry.
20411
20412         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
20413         components of struct timeval.
20414         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
20415         (Check_Selector): In error conditions, clear internal socket sets to
20416         avoid a memory leak.
20417         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
20418         Send_Timeout, Receive_Timeout.
20419
20420         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
20421         the tv_sec and tv_usec fields of C struct timeval.
20422         (Timeval): Construct structure in terms of the new types.
20423         (Host_Errno): New function (imported from socket.c), returns last hosts
20424         database error.
20425
20426         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
20427         hosts database last error code.
20428
20429         * gen-soccon.c: Complete value expansion should not be performed on
20430         TARGET, as it has the form of a math expression, and some components
20431         may be platform-defined macros.
20432         For VxWorks, generate the OK and ERROR values.
20433         New constants giving the sizes of the components of C struct timeval.
20434
20435 2005-11-14  Robert Dewar  <dewar@adacore.com>
20436             Ed Schonberg  <schonberg@adacore.com>
20437
20438         PR ada/18434
20439         * types.ads: Include All_Checks in Suppress_Array
20440
20441         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
20442         not(a=b), since we no longer do this rewriting, and hence it is not
20443         needed.
20444         (Elaboration_Checks_Suppressed): Add special casing to
20445         deal with different cases of static and dynamic elaboration checks (all
20446         checks does not count in the first case, but does in the second).
20447         (Expr_Known_Valid): Do not assume that the result of any arbitrary
20448         function call is valid, since this is not the case.
20449         (Ensure_Valid): Do not apply validity check to a real literal
20450         in a universal or fixed context
20451
20452         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
20453         elementary types using the operator in standard. It is cleaner not to
20454         modify the programmers intent, especially in the case of floating-point.
20455         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
20456         it did not matter because we always rewrote a/=b to not(a=b).
20457         (Expand_Allocator_Expression): For an allocator expression whose nominal
20458         subtype is an unconstrained packed type, convert the expression to its
20459         actual constrained subtype.
20460         Implement warning for <= or >= where < or > not possible
20461         Fix to Vax_Float tests (too early in many routines, causing premature
20462         Vax_Float expansions.
20463
20464         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
20465         to be used with packages and generic packages as well as with
20466         subprograms.
20467         (Suppress): Set All_Checks, but not Elaboration_Check, for case
20468         of pragma Suppress (All_Checks)
20469         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
20470         a string literal for precise control over warnings.
20471         Avoid raise of pragma in case of unrecognized pragma and just return
20472         instead.
20473
20474         * sem_prag.ads: Minor reformatting
20475
20476         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
20477         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
20478         Switch. Do not handle any exception.
20479         Include -gnatwx as part of -gnatg (warn on redundant parens)
20480         Allow optional = after -gnatm
20481         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
20482         longer sets Elaboration_Checks.
20483         Code to set warning mode moved to Sem_Warn
20484         so that it can be shared by pragma processing.
20485
20486         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
20487         statement.
20488
20489         * s-taprop-solaris.adb: 
20490         Change some <= to =, to avoid new warning
20491
20492         * a-exexda.adb, prj-proc.adb: 
20493         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
20494         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
20495
20496 2005-11-14  Robert Dewar  <dewar@adacore.com>
20497
20498         * exp_vfpt.adb: Handle /= case
20499         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
20500         so that we do not get duplicate scaling for fixed point conversions.
20501
20502         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
20503
20504 2005-11-14  Matthew Gingell  <gingell@adacore.com>
20505
20506         * system-lynxos-ppc.ads, system-lynxos-x86.ads: 
20507         Increase default priority on Lynx from 15 to 17, and meet the Ada
20508         requirement that Default_Priority be ((Priority'First +
20509         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
20510
20511 2005-11-14  Vincent Celier  <celier@adacore.com>
20512
20513         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
20514         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
20515         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
20516         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
20517         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
20518         mlib-tgt-lynxos.adb (DLL_Prefix): New function
20519
20520 2005-11-14  Doug Rupp  <rupp@adacore.com>
20521
20522         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
20523         private part.
20524
20525 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
20526
20527         * s-traces-default.adb, s-trafor-default.ads,
20528         s-tratas-default.adb: Fix compilation errors.
20529
20530 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
20531
20532         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
20533         raising the exception so the memory used is freed.
20534
20535 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
20536
20537         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
20538         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
20539         (convert_address): Update comments and list of platforms using this.
20540
20541         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
20542         no longer used.
20543
20544 2005-11-14  Pascal Obry  <obry@adacore.com>
20545             Vincent Celier  <celier@adacore.com>
20546
20547         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
20548         GNAT.Command_Line.
20549
20550         * memroot.adb: Remove redundant with/use clause on
20551         System.Storage_Elements.
20552
20553 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
20554
20555         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
20556         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
20557         related code to a-exexpr.adb
20558         (Save_Occurrence_And_Private): Move GCC EH related code to
20559         a-exexpr-gcc.adb
20560         (Raise_Current_Excep): Add new variable Id with pragma
20561         volatile, to ensure that the variable lives on stack.
20562
20563         * a-exexpr-gcc.adb, raise-gcc.c: New file.
20564
20565         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
20566         from a-except.adb.
20567         Move GCC EH related code to a-exexpr-gcc.adb
20568
20569         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
20570         64-bit Solaris
20571         Split the Linux version of g-soccon into separate variants for 32 and 64
20572         bit platforms.
20573         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
20574         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
20575         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
20576         of host variable $(RANLIB_FLAGS).
20577         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
20578         Code clean up: remove unused/obsolete targets.
20579         (EH_MECHANISM): New variable introduced to differenciate between the
20580         two EH mechanisms statically.
20581         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
20582         (LIBGNAT_OBJS): Add raise-gcc.o
20583         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
20584         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
20585         supports VxWorks 6 RTPs.
20586         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
20587         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
20588
20589         * raise.c: Move all GCC EH-related routines to raise-gcc.c
20590
20591 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
20592
20593         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
20594         deferral level, when abort is not allowed, to a later stage (the
20595         Task_Wrapper).
20596         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
20597         it will not get changed by the generated code. It was previously done
20598         in Create_Task.
20599
20600 2005-11-14  Thomas Quinot  <quinot@adacore.com>
20601             Olivier Hainque  <hainque@adacore.com>
20602             Eric Botcazou  <ebotcazou@adacore.com>
20603
20604         * decl.c:
20605         Factor common code to build a storage type for an unconstrained object
20606         from a fat or thin pointer type and a constrained object type.
20607         (annotate_value): Handle BIT_AND_EXPR.
20608         (annotate_rep): Don't restrict the back annotation of inherited
20609         components to the type_annotate_only case.
20610         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
20611         we are not defining the type.
20612         <E_Record_Type>: Likewise.
20613         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
20614         to get advantage of the new maybe_stabilize_reference interface, to
20615         ensure that what we reference is indeed stabilized instead of relying
20616         on assumptions on what the stabilizer does.
20617         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
20618         type imported through a limited_with clause, use its non-limited view.
20619         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
20620         differentiation.
20621         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
20622         of #if sections + explicit comparisons of convention identifiers.
20623         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
20624         before early-returning for certain types when code generation is
20625         disabled.
20626         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
20627         nullification of gnu_expr we do for objects with address clause and
20628         that we are not defining.
20629         (elaborate_expression_1): Do not create constants when creating
20630         variables needed by the debug info: the dwarf2 writer considers that
20631         CONST_DECLs is used only to represent enumeration constants, and emits
20632         nothing for them.
20633         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
20634         object with an address clause into an indirect reference, drop the
20635         initializing expression.
20636         Include "expr.h".
20637         (STACK_CHECK_BUILTIN): Delete.
20638         (STACK_CHECK_PROBE_INTERVAL): Likewise.
20639         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
20640         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
20641         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
20642         corresponding to the renamed object as ignored for debugging purposes.
20643
20644         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
20645         related): For a prefix that is a dereference of a fat or thin pointer,
20646         if there is an actual subtype provided by the front-end, use that
20647         subtype to build an actual type with bounds template.
20648         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
20649         is provided by the front-end, use that subtype to compute the size of
20650         the deallocated object.
20651         (gnat_to_gnu): When adding a statement into an elaboration procedure,
20652         check for a potential violation of a No_Elaboration_Code restriction.
20653         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
20654         with extra arguments to control whether to recurse through non-values
20655         and to let the caller know if the stabilization has succeeded.
20656         (gnat_stabilize_reference): Now a simple wrapper around
20657         maybe_stabilize, for common uses without restriction on lvalues and
20658         without need to check for the success indication.
20659         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
20660         pass false instead of 0 as the FORCE argument which is a bool.
20661         (Identifier_to_gnu): Remove checks ensuring that an renamed object
20662         attached to a renaming pointer has been properly stabilized, as no such
20663         object is attached otherwise.
20664         (call_to_gnu): Invoke create_var_decl to create the temporary when the
20665         function uses the "target pointer" return mechanism.
20666         Reinstate conversion of the actual to the type of the formal
20667         parameter before any other specific treatment based on the passing
20668         mechanism. This turns out to be necessary in order for PLACEHOLDER
20669         substitution to work properly when the latter type is unconstrained.
20670
20671         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
20672         common pattern.
20673         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
20674         with extra arguments to control whether to recurse through non-values
20675         and to let the caller know if the stabilization has succeeded.
20676
20677         * utils2.c (gnat_build_constructor): Only sort the fields for possible
20678         static output of record constructor if all the components are constant.
20679         (gnat_build_constructor): For a record type, sort the list of field
20680         initializers in increasing bit position order.
20681         Factor common code to build a storage type for an unconstrained object
20682         from a fat or thin pointer type and a constrained object type.
20683         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
20684         types variants, and process special cases of VIEW_CONVERT expressions
20685         as their NOP_EXPR counterpart to ensure we get to the
20686         CORRESPONDING_VARs associated with CONST_DECls.
20687         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
20688         on the right-hand side.
20689
20690         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
20691         a common pattern.
20692         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
20693         are converting back to its original type.
20694         (convert) <JM input>: Fallthrough regular conversion code instead of
20695         extracting the object if converting to a type variant.
20696         (create_var_decl): When a variable has an initializer requiring code
20697         generation and we are at the top level, check for a potential violation
20698         of a No_Elaboration_Code restriction.
20699         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
20700         SIZE and SIZE_UNIT which we need for later back-annotations.
20701         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
20702         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
20703         is an unchecked union.
20704         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
20705         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
20706         main variant, just replace the VIEW_CONVERT_EXPR.
20707         <UNION_TYPE>: Revert 2005-03-02 change.
20708
20709         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
20710
20711         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
20712
20713 2005-11-14  Matthew Heaney  <heaney@adacore.com>
20714
20715         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
20716         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
20717         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
20718         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
20719         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
20720         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 
20721         Compiles against the spec for ordered maps described in sections
20722         A.18.6 of the most recent (August 2005) AI-302 draft.
20723
20724 2005-11-14  Olivier Hainque  <hainque@adacore.com>
20725
20726         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
20727         to ensure bias adjustments take place when need be and to prevent
20728         occurrences of intermediate overflows.
20729
20730 2005-11-14  Matthew Gingell  <gingell@adacore.com>
20731             Olivier Hainque  <hainque@adacore.com>
20732
20733         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
20734         ia64 HP-UX.
20735
20736         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
20737         tracebacks on ia64 HP-UX and provide explanatory comment.
20738         Enable backtraces on ia64 GNU/Linux.
20739         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
20740         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
20741
20742 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
20743             Javier Miranda  <miranda@adacore.com>
20744
20745         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
20746         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
20747         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
20748         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
20749
20750         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
20751         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
20752         assertions).
20753
20754         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
20755         subprogram that generates the external name associated with a
20756         secondary dispatch table.
20757         (Get_Secondary_DT_External_Name): New subprogram that generates the
20758         external name associated with a secondary dispatch table.
20759
20760 2005-11-14  Emmanuel Briot  <briot@adacore.com>
20761
20762         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
20763         line in the ALI file to include both an instantiation reference, and a
20764         returned value.
20765
20766 2005-11-14  Vincent Celier  <celier@adacore.com>
20767
20768         * clean.adb (Check_Project): Look for Ada code in extending project,
20769         even if Ada is not specified as a language.
20770         Use new function DLL_Prefix for DLL_Name
20771         (Clean_Interface_Copy_Directory): New procedure
20772         (Clean_Library_Directory): New procedure
20773         (Clean_Directory): Remove procedure, no longer used
20774         (Clean_Project): Do not delete any file in an externally built project
20775
20776         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
20777         directory of an extending project, even when there are no Ada source
20778         present.
20779         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
20780         (Set_Ada_Paths.Add.Recursive_Add): Ditto
20781
20782         * mlib-prj.adb (Check_Library): For all library projects, get the
20783         library file timestamp.
20784         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
20785         (Build_Library): Use new function DLL_Prefix for the DLL_Name
20786         (Clean): Remove procedure, no longer used
20787         (Ultimate_Extension_Of): New function
20788         (Build_Library): When cleaning the library directory, only remove an
20789         existing library file and any ALI file of a source of the project.
20790         When cleaning the interface copy directory, remove any source that
20791         could be a source of the project.
20792
20793         * prj.ads, prj.adb (Project_Empty): Add values of new components
20794         Library_TS and All_Imported_Projects.
20795         (Project_Empty): Add values for new components of Project_Data:
20796         Library_ALI_Dir and Display_Library_ALI_Dir
20797
20798         * prj-attr.adb: New project level attribute name Library_ALI_Dir
20799
20800         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
20801         attribute Library_ALI_Dir.
20802         (Check_Library_Attributes): The library directory cannot be the same as
20803         any source directory of the project tree.
20804         (Check_Stand_Alone_Library): The interface copy directory cannot be
20805         the same as any source directory of the project tree.
20806
20807         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
20808         all temporary files.
20809
20810 2005-11-14  Robert Dewar  <dewar@adacore.com>
20811             Ed Schonberg  <schonberg@adacore.com>
20812
20813         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
20814         (Check_Elab_Call): A call within a protected body is never an
20815         elaboration call, and does not require checking.
20816         (Same_Elaboration_Scope): Take into account protected types for both
20817         entities.
20818         (Activate_Elaborate_All_Desirable): New procedure
20819
20820         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
20821         desirable
20822
20823         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
20824         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
20825
20826         * lib-writ.ads, lib-writ.adb: 
20827         Implement new AD/ED for Elaborate_All/Elaborate desirable
20828         Use new Elaborate_All_Desirable flag in N_With_Clause node
20829
20830         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
20831         N_Free_Statement nodes.
20832         Define new class N_Subprogram_Instantiation
20833         Add Elaborate_Desirable flag to N_With_Clause node
20834         Add N_Delay_Statement (covering two kinds of delay)
20835
20836         * debug.adb: Introduce d.f flag for compiler
20837         Add -da switch for binder
20838
20839 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
20840             Cyrille Comar  <comar@adacore.com>
20841
20842         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
20843         for task component, in the case of a limited aggregate. The enclosed
20844         object declaration will create it earlier. Otherwise, in the case of a
20845         nested aggregate, the object may appear in the wrong scope.
20846         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
20847         (Gen_Assign): If the component being assigned is an array type and the
20848         expression is itself an aggregate, wrap the assignment in a block to
20849         force finalization actions on the temporary created for each row of the
20850         enclosing object.
20851         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
20852         structures are initialized after all discriminants are set so that
20853         they can be accessed even when their offset is dynamic.
20854
20855 2005-11-14  Robert Dewar  <dewar@adacore.com>
20856             Hristian Kirtchev  <kirtchev@adacore.com>
20857
20858         * sem_attr.adb: Implement Machine_Rounding attribute
20859         (Analyze_Access_Attribute): The access attribute may appear within an
20860         aggregate that has been expanded into a loop.
20861         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
20862         'Terminated whenever the prefix is of a task interface class-wide type.
20863         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
20864         the prefix is of a task interface class-wide type.
20865
20866         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
20867         to avoid warnings.
20868
20869         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
20870         Remove pragma Inline for [Unaligned_]Valid.
20871         Add comments that Valid routines do not work for Vax_Float
20872
20873         * exp_attr.adb: Implement Machine_Rounding attribute
20874
20875         * snames.h: Add entry for Machine_Rounding attribute
20876
20877 2005-11-14  Javier Miranda  <miranda@adacore.com>
20878             Robert Dewar  <dewar@adacore.com>
20879             Hristian Kirtchev  <kirtchev@adacore.com>
20880
20881         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
20882         and related): For a prefix that is an explicit dereference of an
20883         access to unconstrained packed array type, annotate the dereference
20884         with an actual subtype so GIGI can make a correct size computation.
20885         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
20886         'Unrestricted_Access, if the designated type is an interface we
20887         add a type conversion to force the displacement of the pointer
20888         to the secondary dispatch table.
20889         Use Universal_Real instead of Long_Long_Float when we need a high
20890         precision float type for the generated code (prevents gratuitous
20891         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
20892         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
20893         'Terminated for task interface class-wide objects. Generate a call to
20894         the predefined dispatching routine used to retrieve the _task_id from
20895         a task corresponding record.
20896         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
20897
20898         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
20899         (Check_Dispatching_Operation): Protect the frontend againts
20900         previously detected errors.
20901
20902         * Makefile.rtl: Add new instantiations of system.fat_gen
20903
20904         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
20905         Change name of instantiated package for better consistency
20906         with newly added system.fat_gen instantiations.
20907
20908         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
20909         s-fvagfl.ads: New files.
20910
20911 2005-11-14  Cyrille Comar  <comar@adacore.com>
20912             Thomas Quinot  <quinot@adacore.com>
20913
20914         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
20915         assignment of a value of a tagged type that has been rewritten to a
20916         block statement, it is known by construction that no checks are
20917         necessary for the statements within the block: analyze it with checks
20918         suppressed.
20919         (Expand_N_If_Statement): When killing a dead then-branch in an
20920         if-statement that has elsif_parts, recompute the Current_Value node
20921         for any entity whose value is known from the condition of the first
20922         elsif_part.
20923         (Expand_N_Return_Statement): When returning a mutable record, convert
20924         the return value into its actual subtype in order to help the backend
20925         to return the actual size instead of the maximum. This is another
20926         aftermath of not returning mutable records on the sec-stack anymore.
20927
20928         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
20929         handling of error msg for suspicious reverse range iteration.
20930         (Check_Possible_Current_Value_Condition): Move declaration from body to
20931         spec, to allow this subprogram to be called from exp_ch5.
20932
20933 2005-11-14  Thomas Quinot  <quinot@adacore.com>
20934
20935         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
20936         generate a set of nested array aggregates instead of a single flat
20937         aggregate for multi-dimensional arrays.
20938
20939 2005-11-14  Pascal Obry  <obry@adacore.com>
20940
20941         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
20942         by spawnve is a process handle, no need to convert. Add a parameter
20943         close to control wether the process handle must be closed.
20944         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
20945         a process handle, not need to convert.
20946         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
20947
20948         * g-expect.adb: (Kill): Document the new close parameter.
20949         (Close): Do not release the process handle in the kill there as
20950         waitpid() is using it.
20951         (Send_Signal): Release the process handle.
20952
20953 2005-11-14  Robert Dewar  <dewar@adacore.com>
20954
20955         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
20956         need a high precision float type for the generated code (prevents
20957         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
20958         used).
20959
20960         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
20961         need a high precision float type for the generated code (prevents
20962         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
20963         used).
20964         (Expand_Width_Attribute): In configurable run-time, the attribute is not
20965         allowed on non-static enumeration subtypes. Force a load error to emit
20966         the correct diagnostic.
20967
20968 2005-11-14  Thomas Quinot  <quinot@adacore.com>
20969             Robert Dewar  <dewar@adacore.com>
20970             Ed Schonberg  <schonberg@adacore.com>
20971
20972         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
20973         subtype to compute the size of the designated object at run-time,
20974         create such a subtype and store it in the Actual_Designated_Subtype
20975         attribute of the N_Free_Statement.
20976         Generate itype for classwide designated object in both cases of
20977         user-specified storage pool: specific and class-wide, not only in the
20978         specific case.
20979         Raise CE when trying to set a not null access type object to null.
20980         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
20981         an explicit loop, because freeze nodes make its position variable.
20982
20983         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
20984         null object.
20985
20986 2005-11-14  Javier Miranda  <miranda@adacore.com>
20987
20988         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
20989         Build_Stream_Procedure): Add the null-excluding attribute to the first
20990         formal.
20991         This has no semantic meaning under Ada95 mode but it is a
20992         requirement under Ada05 mode.
20993
20994         * par-ch3.adb (P_Access_Definition): Addition of warning message if
20995         the null exclusion is used under Ada95 mode
20996         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
20997         (P_Access_Definition): Remove assertion that forbids the use of
20998         the null-exclusion feature in Ada95.
20999
21000 2005-11-14  Robert Dewar  <dewar@adacore.com>
21001
21002         * impunit.adb: Exclude container helper units not intended for use by
21003         users.
21004
21005 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
21006
21007         * freeze.adb (Freeze_Entity): For an access formal that is an access
21008         to subprogram, freeze the anonymous subprogram type at the same time,
21009         to prevent later freezing in the wrong scope, such as the enclosing
21010         subprogram body.
21011         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
21012         subprogram whenever available.
21013
21014 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
21015
21016         PR ada/23732
21017         * gnatvsn.ads (Library_Version): Bump to 4.1
21018
21019 2005-11-14  Robert Dewar  <dewar@adacore.com>
21020
21021         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
21022         Storage_Offset to avoid wrap around causing invalid results.
21023
21024 2005-11-14  Pascal Obry  <obry@adacore.com>
21025
21026         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
21027         cross-compiler.
21028         (Scan_Bind_Arg): Fail with an error message if -M option is used
21029         on a native compiler.
21030
21031 2005-11-14  Robert Dewar  <dewar@adacore.com>
21032             Vincent Celier  <celier@adacore.com>
21033
21034         * gprep.adb: Implement -C switch to scan comments
21035
21036         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
21037
21038         * scans.ads: Comment updates (including new use of Tok_Comment in
21039         preprocessing)
21040
21041         * opt.ads: Add documentation for flags that are used by gprmake,
21042         currently and in the next version of gprmake.
21043         (Verbosity_Level): New variable
21044         Add Replace_In_Comments switch
21045
21046         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
21047         and -vm.
21048         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
21049
21050 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
21051
21052         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
21053         message, friendlier.
21054
21055 2005-11-14  Robert Dewar  <dewar@adacore.com>
21056
21057         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
21058
21059 2005-11-14  Doug Rupp  <rupp@adacore.com>
21060
21061         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
21062
21063 2005-11-14  Robert Dewar  <dewar@adacore.com>
21064
21065         * interfac.ads: Change declarations of IEEE float types so that we no
21066         longer need a separate version of this package for VMS.
21067
21068 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
21069
21070         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
21071         internal entity created for the declaration of a child subprogram body
21072         with no spec as coming from source, to generate proper cross-reference
21073         information.
21074
21075 2005-11-14  Vincent Celier  <celier@adacore.com>
21076
21077         * make.adb (Compile_Sources): Change verbose message to minimum
21078         verbosity level High for "is in an Ada library", "is a read-only
21079         library" and "is an internal library",
21080         (Create_Binder_Mapping_File): Path name of ALI file for library project
21081         must include the library directory, not the object directory.
21082         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
21083         for new switches -vl, -vm and -vh.
21084         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
21085         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
21086         (Compile_Sources): Do not attempt to compile if an ALI file is missing
21087         in a project that is externally built.
21088         (Compute_All_Imported_Projects): New procedure
21089         (Gnatmake): Check if importing libraries should be regenerated because
21090         at least an imported library is more recent.
21091         (Initialize): For each project compute the list of the projects it
21092         imports directly or indirectly.
21093         (Add_Library_Search_Dir): New procedure, used in place of
21094         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
21095         put in the search paths.
21096         (Add_Source_Search_Dir): New procedure, used in place of
21097         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
21098         put in the search paths.
21099         (Mark_Directory): Resolve the absolute path the directory before marking
21100         it.
21101
21102         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
21103         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
21104         Switch. Do not handle any exception.
21105         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
21106         so that the switch is recognized as valid.
21107         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
21108
21109 2005-11-14  GNAT Script  <nobody@adacore.com>
21110
21111         * Make-lang.in: Makefile automatically updated
21112
21113 2005-11-14  Pascal Obry  <obry@adacore.com>
21114
21115         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
21116         used.
21117         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
21118         In both cases the last argument was dropped.
21119
21120 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
21121
21122         * namet.h: (Column_Numbe): New type.
21123         (Get_Column_Number): Define to sinput__get_column_number.
21124         (Instantiation): Define to sinput__instantiation.
21125         (Get_Column_Number): Declare.
21126         (Instantiation): Likewise.
21127
21128 2005-11-14  Robert Dewar  <dewar@adacore.com>
21129
21130         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
21131         syntax, which could cause compiler hangs.
21132
21133 2005-11-14  Vincent Celier  <celier@adacore.com>
21134
21135         * prj-ext.adb: Take into account new environment variable
21136         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
21137         are defined.
21138         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
21139         normalize its path name, making it absolute and resolving symbolic
21140         links, and replace the original if resolved path is different.
21141
21142 2005-11-14  Vincent Celier  <celier@adacore.com>
21143
21144         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
21145         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
21146
21147 2005-11-14  Emmanuel Briot  <briot@adacore.com>
21148
21149         * prj-pp.adb (Print): Do not output the with statement if the
21150         associated name is empty, which happens for virtual extending projects.
21151         (Print): Preserve the "extends all" attribute when printing the project.
21152
21153         * prj-tree.ads (String_Value_Of): Add comment about returned value for
21154         a virtual extending project.
21155
21156 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
21157
21158         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
21159         rhs of an assignment even if the type is unconstrained, when the
21160         context is non-expanding.
21161         In an inlined body, if the context type is private,
21162         resolve with its full view, which must be a composite type.
21163
21164 2005-11-14  Robert Dewar  <dewar@adacore.com>
21165             Ed Schonberg  <schonberg@adacore.com>
21166
21167         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
21168         Do not give obsolescent warning on with of subprogram (since we
21169         diagnose calls)
21170         (Analyze_With_Clause): Add test for obsolescent package
21171         (Install_Context_Clauses): If the unit is the body of a child unit, do
21172         not install twice the private declarations of the parents, to prevent
21173         circular lists of Use_Clauses in a parent.
21174         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
21175         compiling body of child unit.
21176         Use new class N_Subprogram_Instantiation
21177         (Expand_With_Clause): If this is a private with_clause for a child unit,
21178         appearing in the context of a package declaration, then the implicit
21179         with_clauses generated for parent units are private as well.
21180         (License_Check): Do not generate message if with'ed unit is internal
21181
21182 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
21183             Ed Schonberg  <schonberg@adacore.com>
21184             Thomas Quinot  <quinot@adacore.com>
21185
21186         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
21187         names are internal, because they will not have a corresponding partner
21188         in the actual package.
21189         (Analyze_Formal_Package): Move the setting of the formal package spec's
21190         Generic_Parent field so that it occurs prior to analyzing the package,
21191         to allow proper operation of Install_Parent_Private_Declarations.
21192         (Analyze_Package_Instantiation): Set the instantiated package entity's
21193         Package_Instantiation field.
21194         (Get_Package_Instantiation_Node): Move declaration to package spec.
21195         Retrieve the N_Package_Instantiation node when the Package_Instantiation
21196         field is present.
21197         (Check_Generic_Child_Unit): Within an inlined call, the only possible
21198         instantiation is Unchecked_Conversion, for which no parents are needed.
21199         (Inline_Instance_Body): Deinstall and record the use_clauses for all
21200         parent scopes of a scope being removed prior to inlining an instance
21201         body.
21202         (Analyze_Package_Instantiation): Do not perform front-end inlining when
21203         the current context is itself an instance within a non-instance child
21204         unit, to prevent scope stack errors.
21205         (Save_References): If the node is an aggregate that is an actual in a
21206         call, rewrite as a qualified expression to preserve some type
21207         information, to resolve possible ambiguities in the instance.
21208         (Instance_Parent_Unit): New global variable to record the ultimate
21209         parent unit associated with a generic child unit instance (associated
21210         with the existing Parent_Unit_Visible flag).
21211         (type Instance_Env): New component Instance_Parent_Unit for stacking
21212         parents recorded in the global Instance_Parent_Unit.
21213         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
21214         stack.
21215         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
21216         it's not a top-level unit, and only do this if Instance_Parent_Unit is
21217         not already set. Replace test of Is_Child_Unit with test of parent's
21218         scope against package Standard. Add comments and a ??? comment.
21219         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
21220         on a child instance parent to test that the parent equals
21221         Instance_Parent rather than simply checking that the unit is not a
21222         child unit.
21223         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
21224         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
21225         a formal interface are ancestors of the corresponding actual.
21226         (Validate_Formal_Interface_Type): Additional legality checks.
21227         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
21228         interface types with ancestors.
21229         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
21230         to diagnose attempts to use generic within its own declaration.
21231
21232 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
21233             Javier Miranda  <miranda@adacore.com>
21234
21235         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
21236         discriminant.
21237         (Build_Private_Derived_Type): The entity of the created full view of the
21238         derived type does not come from source. If after installing the private
21239         declarations of the parent scope the parent is still private, use its
21240         full view to construct the full declaration of the derived type.
21241         (Build_Derived_Record_Type): Relax the condition that controls the
21242         execution of the check that verifies that the partial view and
21243         the full view agree in the set of implemented interfaces. In
21244         addition, this test now only takes into account the progenitors.
21245         (Derive_Interface_Subprograms): No need to derive subprograms
21246         of ancestors that are interfaces.
21247         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
21248         associated code.
21249         Change name Is_Package to Is_Package_Or_Generic_Package
21250         (Complete_Subprograms_Derivation): Handle the case in which the full
21251         view is a transitive derivation of the ancestor of the partial view.
21252         (Process_Full_View): Rename local subprogram Find_Interface_In_
21253         Descendant to Find_Ancestor_Interface to leave the code more clear.
21254         Remove wrong code that avoids the generation of an error message
21255         when the immediate ancestor of the partial view is an interface.
21256         In addition some minor reorganization of the code has been done to
21257         leave it more clear.
21258         (Analyze_Type_Declaration): If type has previous incomplete tagged
21259         partial view, inherit properly its primitive operations.
21260         (Collect_Interfaces): Make public, for analysis of formal
21261         interfaces.
21262         (Analyze_Interface_Declaration): New procedure for use for regular and
21263         formal interface declarations.
21264         (Build_Derived_Record_Type): Add support for private types to the code
21265         that checks if a tagged type implements abstract interfaces.
21266         (Check_Aliased_Component_Type): The test applies in the spec of an
21267         instance as well.
21268         (Access_Type_Declaration): Clean up declaration of malformed type
21269         declared as an access to its own classwide type, to prevent cascaded
21270         crash.
21271         (Collect_Interfaces): For private extensions and for derived task types
21272         and derived protected types, the parent may be an interface that must
21273         be included in the interface list.
21274         (Access_Definition): If the designated type is an interface that may
21275         contain tasks, create Master_Id for it before analyzing the expression
21276         of the declaration, which may be an allocator.
21277         (Record_Type_Declaration): Set properly the interface kind, for use
21278         in allocators, the creation of master id's for task interfaces, etc.
21279
21280 2005-11-14  Javier Miranda  <miranda@adacore.com>
21281             Ed Schonberg  <schonberg@adacore.com>
21282
21283         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
21284         omitted in case of stream attribute subprograms.
21285         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
21286         appear immediately after a subprogram body, when there is no previous
21287         subprogram declaration.
21288         Change name Is_Package to Is_Package_Or_Generic_Package
21289         (Process_Formals): A non null qualifier on a non null named access
21290         type is not an error, and is a warning only if Redundant_Constructs
21291         are flagged.
21292
21293 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
21294             Ed Schonberg  <schonberg@adacore.com>
21295
21296         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
21297         nested within Analyze_Package_Specification to install the private
21298         declarations and use clauses within each of the parent units of a
21299         package instance of a generic child package.
21300         (Analyze_Package_Specification): When entering a private part of a
21301         package associated with a generic instance or formal package, the
21302         private declarations of the parent must be installed (by calling new
21303         procedure Install_Parent_Private_Declarations).
21304         Change name Is_Package to Is_Package_Or_Generic_Package
21305         (Preserve_Full_Attributes): For a synchronized type, the corresponding
21306         record is absent in a generic context, which does not indicate a
21307         compiler error.
21308
21309 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
21310
21311         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
21312         not try to rewrite a renamed stream attribute, because the operations
21313         on the type may not have been generated.
21314         Handle properly a renaming_as_body generated for a stream operation
21315         whose default is abstract because the object type itself is abstract.
21316         (Find_Type): If the type is incomplete and appears as the prefix of a
21317         'Class reference, it is tagged, and its list of primitive operations
21318         must be initialized properly.
21319         (Chain_Use_Clauses): When chaining the use clauses that appear in the
21320         private declaration of a parent unit, prior to compiling the private
21321         part of a child unit, find on the scope stack the proper parent entity
21322         on which to link the use clause.
21323         (Note_Redundant_Use): Emit a warning when a redundant use clause is
21324         detected.
21325         (Analyze_Object_Renaming): An attribute reference is not a legal object
21326         if it is not a function call.
21327
21328 2005-11-14  Robert Dewar  <dewar@adacore.com>
21329             Ed Schonberg  <schonberg@adacore.com>
21330
21331         * sem_eval.adb: Implement d.f flag
21332         (Subtype_Statically_Match): A generic actual type has unknown
21333         discriminants when the corresponding actual has a similar partial view.
21334         If the routine is called to validate the signature of an inherited
21335         operation in a child instance, the generic actual matches the full view,
21336
21337 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
21338             Ed Schonberg  <schonberg@adacore.com>
21339             Robert Dewar  <dewar@adacore.com>
21340             Thomas Quinot  <quinot@adacore.com>
21341
21342         * sem_res.adb (Resolve_Call): Provide a better error message whenever
21343         a procedure call is used as a select statement trigger and is not an
21344         entry renaming or a primitive of a limited interface.
21345         (Valid_Conversion): If the operand has a single interpretation do not
21346         remove address operations.
21347         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
21348         statement to inhibit warning.
21349         (Resolve_Unary_Op): Do not produce a warning when
21350         processing an expression of the form -(A mod B)
21351         Use Universal_Real instead of Long_Long_Float when we need a high
21352         precision float type for the generated code (prevents gratuitous
21353         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
21354         (Resolve_Concatenation_Arg): Improve error message when argument is an
21355         ambiguous call to a function that returns an array.
21356         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
21357         there is an implicit operator in the given scope if we are within an
21358         instance: legality check has been performed on the generic.
21359         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
21360         after resolving operand, to avoid false warnings on overloaded calls.
21361
21362 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
21363             Javier Miranda  <miranda@adacore.com>
21364
21365         PR ada/15604
21366         * sem_type.adb (Covers): In an inlined body, a composite type matches
21367         a private type whose full view is a composite type.
21368         (Interface_Present_In_Ancestor): Protect the frontend against
21369         previously detected errors to ensure that its compilation
21370         with assertions enabled gives the same output that its
21371         compilation without assertions.
21372         (Interface_Present_In_Ancestor): Add support for private types.
21373         Change name In_Actual to In_Generic_Actual (clean up)
21374         (Disambiguate): New predicate In_Actual, to recognize expressions that
21375         appear in the renaming declaration generated for generic actuals, and
21376         which must be resolved in the outer context.
21377
21378 2005-11-14  Robert Dewar  <dewar@adacore.com>
21379             Thomas Quinot  <quinot@adacore.com>
21380             Hristian Kirtchev  <kirtchev@adacore.com>
21381             Ed Schonberg  <schonberg@adacore.com>
21382
21383         * sem_util.ads, sem_util.adb: Change name Is_Package to
21384         Is_Package_Or_Generic_Package.
21385         (Check_Obsolescent): New procedure.
21386         (Set_Is_Public): Remove obsolete junk test.
21387         (Set_Public_Status): Do not set Is_Public on an object whose declaration
21388         occurs within a handled_sequence_of_statemets.
21389         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
21390         for a parameterless procedure.
21391         (Enter_Name): Recognize renaming declarations created for private
21392         component of a protected type within protected operations, so that
21393         the source name of the component can be used in the debugger.
21394
21395 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
21396             Robert Dewar  <dewar@adacore.com>
21397
21398         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
21399         of a generic subprogram are not visible outside the body.
21400         (Set_Warning_Switch): New procedure (code to set warning mode moved
21401         here from Switch.C so that it can be shared by pragma processing.
21402         (Check_References): Special case warning for non-modified non-imported
21403         volatile objects.
21404         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
21405         form with a string literal argument
21406
21407 2005-11-14  Javier Miranda  <miranda@adacore.com>
21408
21409         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
21410         anonymous access.
21411         (Write): Addition of "not null" to the anonymous access.
21412         (Read): Addition of "not null" to the anonymous access.
21413         (Write): Addition of "not null" to the anonymous access.
21414
21415         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
21416         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
21417         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
21418         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
21419         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
21420         "not null" to the anonymous access.
21421
21422 2005-11-14  Robert Dewar  <dewar@adacore.com>
21423
21424         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
21425         offset values
21426
21427 2005-11-14  Vincent Celier  <celier@adacore.com>
21428
21429         * switch.adb (Bad_Switch): New procedure
21430         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
21431         message when in error.
21432
21433         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
21434         Too_Many_Output_Files): Remove declarations, no longer used.
21435         (Scan_Nat): New parameter Switch
21436         (Scan_Pos): Ditto
21437         (Bad_Switch): New procedure
21438
21439         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
21440         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
21441         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
21442         to Osint.Fail. Do not handle any exception.
21443
21444 2005-11-14  Vincent Celier  <celier@adacore.com>
21445
21446         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
21447         designates a non existent directory.
21448
21449 2005-11-14  Robert Dewar  <dewar@adacore.com>
21450
21451         * xgnatugn.adb: Replace invalid membership test by 'Valid
21452
21453 2005-11-14  Vincent Celier  <celier@adacore.com>
21454
21455         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
21456         there is no object directory.
21457
21458 2005-11-14  Robert Dewar  <dewar@adacore.com>
21459
21460         * usage.adb: Minor adjustment to output format, use nn instead of nnn
21461         (so that -gnateInnn does not run into next column)
21462
21463 2005-11-14  Ed Falis  <falis@adacore.com>
21464
21465         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
21466         "constrained"
21467
21468 2005-11-14  Cyrille Comar  <comar@adacore.com>
21469
21470         * s-chepoo.ads: Add comments on Dereference.
21471         Remove unnecessary inherited abstract primitives.
21472         Cosmetic cleanup.
21473
21474 2005-11-14  Robert Dewar  <dewar@adacore.com>
21475
21476         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
21477         node parameter, not needed, since it is available as Declaration_Node.
21478
21479 2005-11-14  Geert Bosch  <bosch@adacore.com>
21480
21481         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
21482         grammatically correct.
21483
21484 2005-11-14  Vincent Celier  <celier@adacore.com>
21485
21486         * s-fileio.ads: Correct spelling error in comment
21487
21488 2005-11-14  Cyrille Comar  <comar@adacore.com>
21489             Robert Dewar  <dewar@adacore.com>
21490             Vincent Celier  <celier@adacore.com>
21491             Ben Brosgol  <brosgol@adacore.com>
21492             Jose Ruiz  <ruiz@adacore.com>
21493             Pascal Obry  <obry@adacore.com>
21494
21495         * gnat_ugn.texi: 
21496         Document that -fstack-check is needed for strict compliance with the
21497         Ada 95 Reference Manual.
21498         Correct reference to VAX systems to meet HP guidelines
21499         Add documentation for new gnatmake switches -vl, -vm and -vh
21500         Replace DEC Ada by HP Ada
21501         Replace DIGITAL by HP
21502         Remove empty section on tools in compatibility section
21503         Clarify the Windows convention semantics.
21504         Document the Win32 calling convention.
21505         The Stdcall, Win32 and DLL convention are synonyms.
21506         Add a note in -gnatR description about zero size record components
21507         Note on new >= and <= warnings for -gnatwc
21508         Document that equal sign after -gnatm is optional.
21509         Note that strip is working fine on DLL built with a Library
21510         Project. The restriction apply only to DLL built with gnatdll.
21511         Update section about the way to debug a DLL.
21512         Update information about the DLL convention.
21513         Document -C switch for gnatprep
21514         Document new attribute Library_ALI_Dir
21515         Update elaboration doc to include implicit Elaborate pragmas now
21516         generated for subprogram instantiations.
21517         Document limitation on executable names that include spaces for --GCC,
21518         --GNATBIND, and --GNATLINK switches.
21519         Document that -w causes -gnatws to be added at start of gcc switches
21520
21521         * gnat_rm.texi: Document that -mieee is needed for generating infinite
21522         and NaN values in case of overflow on machines that are not fully
21523         compliant with the IEEE floating-point standard.
21524         Create a section describing the set of compiler options needed for
21525         strict compliance with the Ada 95 Reference Manual.
21526         Add documentation for pragma Obsolescent applied to a package
21527         Clarify potential issues of mixed language programs related to the
21528         I/O buffering enabling in the elaboration of the GNAT runtime.
21529         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
21530         This documentation only patch adds extra documentsion for pragma
21531         Restrictions (No_Elaboration_Code), explaining why it is not possible
21532         to document this restriction in terms of allowed source constructs.
21533         Document string literal form of pragma Warnings
21534         Document new attribute Library_ALI_Dir
21535         Add documentation on stable attributes in project files that was missing
21536
21537         * gnat-style.texi: Indicate that paragraphs within a single comment
21538         should be separated by empty comment lines
21539
21540         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
21541         /05 respectively)
21542
21543         * bindusg.adb: Minor cleanup, put -m before -M for consistency
21544
21545 2005-11-14  Robert Dewar  <dewar@adacore.com>
21546
21547         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
21548         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
21549         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
21550         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
21551         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
21552         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
21553         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
21554         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
21555         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
21556         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
21557         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
21558         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
21559         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
21560         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
21561         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
21562         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
21563         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
21564         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
21565         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
21566         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
21567         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
21568         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
21569         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
21570         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
21571         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
21572         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
21573         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
21574         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
21575         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
21576         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
21577         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
21578         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
21579         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
21580         system-interix.ads, system-solaris-sparc.ads,
21581         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
21582         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
21583         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
21584         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
21585         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
21586         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
21587         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
21588         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
21589         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
21590         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
21591         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
21592         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
21593         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
21594         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
21595         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
21596         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
21597         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
21598         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
21599         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
21600         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
21601         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
21602         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
21603         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
21604         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
21605         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
21606         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
21607         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
21608         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
21609         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
21610         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
21611         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
21612         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
21613         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
21614         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
21615         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
21616         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
21617         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
21618         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
21619         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
21620         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
21621         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
21622         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
21623         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
21624         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
21625         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
21626         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
21627         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
21628         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
21629         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
21630         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
21631         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
21632         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
21633         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
21634         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
21635         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
21636         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
21637         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
21638         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
21639         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
21640         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
21641         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
21642         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
21643         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
21644         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
21645         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
21646         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
21647         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
21648         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
21649         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
21650         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
21651         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
21652         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
21653         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
21654         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
21655         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
21656         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
21657         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
21658         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
21659         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
21660         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
21661         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
21662         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
21663         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
21664         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
21665         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
21666         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
21667         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
21668         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
21669         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
21670         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
21671         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
21672         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
21673         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
21674         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
21675         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
21676         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
21677         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
21678         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
21679         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
21680         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
21681         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
21682         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
21683         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
21684         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
21685         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
21686         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
21687         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
21688         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
21689         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
21690         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
21691         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
21692         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
21693         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
21694         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
21695         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
21696         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
21697         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
21698         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
21699         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
21700         a-numaux-darwin.ads, a-numaux-darwin.adb,
21701         a-swuwha.ads, a-stunha.ads: Minor reformatting
21702
21703 2005-11-14  Robert Dewar  <dewar@adacore.com>
21704
21705         PR ada/18434
21706         * osint-m.adb: Add pragma Elaborate_All for Osint
21707
21708 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
21709
21710         PR ada/23995
21711         * trans.c (call_to_gnu): Restore statement lost in translation.
21712
21713 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
21714
21715         * init.c: Use the Linux-specific section for the IA-64/Linux target.
21716         (__gnat_adjust_context_for_raise): Add conditional code so that the
21717         IA-64 is also supported.
21718
21719 2005-11-03  James E Wilson  <wilson@specifix.com>
21720
21721         PR ada/23427
21722         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
21723         TREE_OVERFLOW check.
21724
21725 2005-09-21  Olivier Hainque  <hainque@adacore.com>
21726
21727         PR ada/22418
21728         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
21729         as we create them to store a size in bits.
21730
21731 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
21732
21733         PR ada/21937
21734         PR ada/22328
21735         PR ada/22381
21736         PR ada/22383
21737         PR ada/22419
21738         PR ada/22420
21739         * utils2.c (build_return_expr): New helper function.
21740         * gigi.h (build_return_expr): Declare it.
21741         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
21742         of manually building the RETURN_EXPR tree.
21743         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
21744         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
21745         build_binary_op for the "target pointer" case.  Use build_return_expr
21746         instead of manually building the RETURN_EXPR tree.
21747
21748 2005-09-16  Laurent Guerby  <laurent@guerby.net>
21749
21750         PR ada/23788
21751         * s-tpinop.ads: Make this unit Preelaborate.
21752
21753 2005-09-16  Andreas Jaeger  <aj@suse.de>
21754
21755         * socket.c: Add string.h for memcpy.
21756
21757 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
21758
21759         * dec-io.ads, dec-io.adb: Removed, no longer used.
21760
21761 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
21762
21763         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
21764
21765         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
21766         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
21767         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
21768         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
21769         dependent units are Preelaborate.
21770         (Initialize): Call Interrupt_Managemeent.Initialize and
21771         OS_Primitives.Initialize to ensure proper initialization of this unit.
21772         Remove use of System.Soft_Links
21773         Make this unit Preelaborate.
21774
21775         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
21776         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
21777         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
21778         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
21779         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
21780         s-tratas.ads, s-tasinf.ads: Minor reformatting.
21781         Add pragma Preelaborate, since these packages are suitable for this
21782         categorization.
21783         Update comments.
21784
21785         * s-traent-vms.ads, s-intman-dummy.adb,
21786         s-taprop-dummy.adb: Make this unit Preelaborate.
21787
21788         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
21789         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
21790         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
21791         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
21792         s-intman-solaris.adb, s-intman-irix-athread.adb,
21793         s-intman-irix.adb: Mark this unit Preelaborate.
21794         (Initialize): New procedure.
21795         Update comments.
21796
21797         * s-taspri-linux.ads: Removed.
21798
21799         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
21800         as done by other implementations (e.g. posix).
21801
21802         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
21803         responsible for deferring abort.
21804         Mark this unit Preelaborate.
21805
21806         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
21807         proper initialization of the tasking run-time.
21808
21809         * s-tasdeb.ads: Mark this unit Preelaborate.
21810         (Known_Tasks): Add explicit default value to avoid elaboration code.
21811
21812         * s-inmaop-vms.adb (Elaboration code): Add call to
21813         Interrupt_Management.Initialize since the elaboration code depends on
21814         proper initialization of this package.
21815
21816         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
21817         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
21818         s-osprim-posix.adb: Make this unit Preelaborate.
21819
21820         * a-calend.adb: Add call to OS_Primitives.Initialize
21821
21822         * a-elchha.adb: Update use of Except.Id.Full_Name.
21823         Minor reformatting.
21824         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
21825
21826         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
21827         Move with clauses outside Warnings Off now that dependent units are
21828         Preelaborate.
21829         Use raise xxx with "..."; Ada 2005 form.
21830
21831         * a-taside.ads, a-taside.adb:
21832         Remove some dependencies, to make it easier to make this unit truly
21833         Preelaborate.
21834         Rewrite some code to be conformant with Preelaborate rules.
21835
21836         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
21837         marked Preelaborate in the future.
21838
21839         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
21840         these units Preelaborate.
21841
21842         * s-exctab.adb: Update use of Except.Id.Full_Name.
21843
21844         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
21845         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
21846         Set_Exc_Stack_Addr): Removed, no longer used.
21847         Remove reference to *Machine_State_Addr*, no longer needed.
21848
21849         * s-stalib.ads: Mark this unit as Preelaborate[_05].
21850         (Exception_Data): Full_Name is now a System.Address so that this unit
21851         can be made Preelaborate.
21852         Clean up/simplify code thanks to Full_Name being a System.Address.
21853         Remove obsolete pragma Suppress (All_Checks), no longer needed.
21854
21855         * s-taskin.ads, s-taskin.adb:
21856         Move with clauses outside Warnings Off now that dependent units are
21857         Preelaborate.
21858         Make this unit Preelaborate.
21859         (Initialize): New proceduure, replace elaboration code and makes the
21860         set up of the tasking run-time cleaner.
21861         (Detect_Blocking): Now a function instead of a deferred boolean, to
21862         obey Preelaborate rules.
21863
21864         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
21865         soft links, no longer used.
21866
21867         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
21868         packages are suitable for this categorization.
21869
21870         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
21871         since we compile run-time sources in Ada 2005 mode.
21872         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
21873         avoid having s-taprop*.adb depend on s-soflin and to avoid code
21874         duplication.
21875         Remove reference to *Machine_State_Addr*, no longer needed.
21876
21877 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
21878
21879         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
21880         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
21881         Remove reference to System.Exceptions.
21882
21883         * s-mastop-x86.adb: Removed, no longer used.
21884
21885         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
21886
21887         * a-excach.adb: Minor reformatting.
21888
21889         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
21890         instead fix new warnings that were hidden by this change.
21891         (AAA, ZZZ): Removed, replaced by...
21892         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
21893         are used instead of constants, to help make Ada.Exception truly
21894         preelaborate.
21895         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
21896         Raise_Storage_Error): File is now a System.Address, to simplify code.
21897         (Elab code): Removed, no longer used.
21898         (Null_Occurrence): Remove Warnings Off and make this construct
21899         preelaborate.
21900         Remove code related to front-end zero cost exception handling, since
21901         it is no longer used.
21902         Remove -gnatL/-gnatZ switches.
21903
21904         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
21905         Update use of Except.Msg.
21906
21907         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
21908         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
21909         to front-end zero cost exception handling, since it is no longer used.
21910         Remove -gnatL/-gnatZ switches.
21911
21912         * lib-writ.ads: Minor reformatting
21913         Remove doc of UX
21914
21915         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
21916
21917         * Make-lang.in: Remove references to s-except.ads
21918
21919         * s-except.ads: Removed, no longer used.
21920
21921         * s-mastop.ads, s-mastop.adb:
21922         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
21923         Remove reference to System.Exceptions.
21924
21925         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
21926         switch-b.adb: Remove code related to front-end zero cost exception
21927         handling, since it is no longer used.
21928         Remove -gnatL/-gnatZ switches.
21929
21930 2005-09-01  Robert Dewar  <dewar@adacore.com>
21931             Gary Dismukes  <dismukes@adacore.com>
21932             Javier Miranda  <miranda@adacore.com>
21933
21934         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
21935         type by valid test and generate warning.
21936         (Tagged_Membership): Generate call to the run-time
21937         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
21938         Change formal name Subtype_Mark to Result_Definition in several calls to
21939         Make_Function_Specification.
21940         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
21941         check for proper accessibility of the operand of a class-wide allocator.
21942         The check can be left out if checks are suppressed or if the expression
21943         has a specific tagged type whose level is known to be safe.
21944
21945         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
21946         generates the run-time check associated with null-excluding entities.
21947         (Expand_N_Return_Statement): Add tests to determine if the accessibility
21948         check on the level of the return expression of a class-wide function
21949         can be elided. The check usually isn't needed if the expression has a
21950         specific type (unless it's a conversion or a formal parameter). Also
21951         add a test for whether accessibility checks are suppressed. Augment
21952         the comments to describe the conditions for performing the check.
21953
21954 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
21955             Javier Miranda  <miranda@adacore.com>
21956             Gary Dismukes  <dismukes@adacore.com>
21957             Ed Schonberg  <schonberg@adacore.com>
21958
21959         * a-tags.adb (IW_Membership): Give support to
21960         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
21961         subprogram has been extended to look for the tag in the ancestors tag
21962         table.
21963         Update the structure of the GNAT Dispatch Table to reflect the
21964         additional two tables used in dispatching selects.
21965         Introduce appropriate array types and record components in
21966         Type_Specific_Data to reflect the two tables.
21967         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
21968         the TSD of a tag, indexed by position.
21969         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
21970         operation kind in the TSD of a tag, indexed by position.
21971
21972         * a-tags.ads: Introduce an enumeration type to capture different
21973         primitive operation kinds. Define a constant reflecting the number of
21974         predefined primitive operations.
21975         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
21976         of an entry wrapper.
21977         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
21978         callable entity of a primitive operation.
21979
21980         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
21981         primitive operations used in dispatching selects for limited
21982         interfaces, limited tagged, task and protected types what implement a
21983         limited interface.
21984         (Freeze_Type): Generate the bodies of the primitive operations used in
21985         dispatching selects for limited tagged, task and protected types that
21986         implement a limited interface. Generate statements to populate the two
21987         auxiliary tables used for dispatching in select statements.
21988         (Freeze_Record_Type): Add call to initialize the dispatch table entries
21989         associated with predefined interface primitive operations.
21990         (Build_Dcheck_Function): Change Set_Subtype_Mark to
21991         Set_Result_Definition.
21992         (Build_Variant_Record_Equality): Change Subtype_Mark to
21993         Result_Definition.
21994         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
21995         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
21996         (Build_Assignment): Simplify the code that adds the run-time-check.
21997         (Expand_N_Object_Declaration): Code cleanup.
21998
21999         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
22000         entries when there is a protected type that implements a limited
22001         interface.
22002
22003         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
22004         common routines used in expansion of dispatching selects.
22005         (Add_Private_Declarations): Select the appropriate protection type when
22006         there is a protected type that implements a limited interface.
22007         (Build_Parameter_Block): Generate a wrapped parameter block.
22008         (Build_Protected_Subprogram_Body): Select the appropriate type for
22009         locking entries when there is a protected type that implements a
22010         limited interface.
22011         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
22012         classified as entry wrappers.
22013         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
22014         asynchronous selects.
22015         (Expand_N_Conditional_Entry_Call): Add support for expansion of
22016         dispatching conditional selects.
22017         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
22018         protection when there is a protected type that implements limited
22019         interfaces.
22020         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
22021         timed selects.
22022         (Extract_Dispatching_Call): Extract the entity of the name of a
22023         dispatching call, the object parameter, actual parameters and
22024         corresponding formals.
22025         (Make_Initialize_Protection): Correct logic of protection initialization
22026         when there is a protected type that implements a limited interface.
22027         (Parameter_Block_Pack): Populate a wrapped parameter block with the
22028         values of actual parameters.
22029         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
22030         block and assign them to the original actual parameters.
22031
22032         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
22033         (Build_Protected_Sub_Specification): Change the type and name of the
22034         last formal to account for the increased variety of protection modes.
22035
22036         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
22037         entities. Used to save the value of the Is_Hidden attribute when the
22038         limited-view is installed.
22039         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
22040         the attribute of procedures classified as entry wrappers.
22041         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
22042         entity of a primitive wrapper.
22043         (Write_Entity_Flags): Output the name and value of the
22044         Is_Primitive_Wrapper attribute.
22045         (Write_Field27_Name): Output the name and entity of the field Wrapped_
22046         Entity.
22047         (Underlying_Type): If we have an incomplete entity that comes from
22048         the limited view then we return the Underlying_Type of its non-limited
22049         view if it is already available.
22050         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
22051         including operators.
22052         (Write_Field26_Name): Add entry for Overridden_Operation
22053         (Overridden_Operation): New attribute of functions and procedures.
22054
22055         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
22056         predefined position in the dispatch table for the primitive operations
22057         used in dispatching selects.
22058         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
22059         predefined primitive operations and replace it with
22060         Default_Prim_Op_Count.
22061         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
22062         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
22063         the names of the generated primitive operations used in dispatching
22064         selects.
22065         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
22066         case of abstract interface types. They will be inherit by the objects
22067         implementing the interface.
22068         (Make_DT): There is no need to inherit the dispatch table of the
22069         ancestor interface for the elaboration of abstract interface types.
22070         The dispatch table will be inherited by the object implementing the
22071         interface.
22072         (Copy_Secondary_DTs): Add documentation.
22073         (Validate_Position): Improve this static check in case of
22074         aliased subprograms because aliased subprograms must have
22075         the same position.
22076         (Init_Predefined_Interface_Primitives): New subprogram that initializes
22077         the entries associated with predefined primitives of all the secondary
22078         dispatch tables.
22079         (Build_Anonymous_Access_Type): Removed.
22080         (Expand_Interface_Actuals): With the previous cleanup there is no need
22081         to build an anonymous access type. This allows further cleanup in the
22082         code generated by the expander.
22083         (Expand_Interface_Conversion): If the actual is an access type then
22084         build an internal function to handle the displacement. If the actual
22085         is null this function returns null because no displacement is
22086         required; otherwise performs a type conversion that will be
22087         expanded in the code that returns the value of the displaced actual.
22088         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
22089         conversions that have no effect in the generated code because no
22090         displacement is required. Code cleanup; use local variables to
22091         avoid repeated calls to the subprogram directly_designated_type().
22092
22093         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
22094         Classify the primitive operations used in dispatching selects as
22095         predefined.
22096         (Implements_Limited_Interface): Determine whether some type either
22097         directly implements a limited interface or extends a type that
22098         implements a limited interface.
22099         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
22100         (Expand_Subtype_From_Expr): Do not build actual subtype if the
22101         expression is limited.
22102         (Find_Interface_Tag): Add code to handle class-wide types and
22103         entities from the limited-view.
22104
22105         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
22106         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
22107         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
22108         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
22109         Set_Prim_Op_Kind.
22110
22111         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
22112         of procedure name or prefix that appears as a trigger in a triggering
22113         alternative.
22114
22115         * uintp.ads: Introduce constants Uint_11 and Uint_13.
22116
22117 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
22118
22119         * s-tataat.adb, a-tasatt.adb:
22120         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
22121
22122         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
22123         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
22124         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
22125         longer used.
22126
22127 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
22128             Jose Ruiz  <ruiz@adacore.com>
22129
22130         * s-taprop-vxworks.adb:
22131         Move with clauses outside Warnings Off now that dependent units are
22132         Preelaborate.
22133         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
22134         initialization of this unit.
22135         (Specific): Add new procedures Initialize and Delete so that this
22136         package can be used for VxWorks 5.x and 6.x
22137         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
22138         differences between VxWorks 5.x and 6.x
22139         Minor reformatting.
22140         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
22141         caller.
22142         Use only Preelaborate-compatible constructs.
22143
22144         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
22145         Primitives.Operations.
22146         (Delete, Initialize): New procedures.
22147
22148         * s-osinte-vxworks.adb: Body used to handle differences between
22149         VxWorks 5.x and 6.x
22150         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
22151
22152         * s-osinte-vxworks.ads: Minor reformatting.
22153         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
22154         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
22155         and 6.
22156         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
22157         between Vxworks 5 and 6.
22158         (taskLock, taskUnlock): Removeed, no longer used.
22159
22160         * adaint.c: The wait.h header is not located in the sys directory on
22161         VxWorks when using RTPs.
22162         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
22163         using RTPs.
22164         (__gnat_dup): dup is available on Vxworks when using RTPs.
22165         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
22166
22167         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
22168
22169         * expect.c: The wait.h header is not located in the sys directory on
22170         VxWorks when using RTPs.
22171
22172 2005-09-01  Thomas Quinot  <quinot@adacore.com>
22173
22174         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
22175
22176         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
22177
22178         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
22179         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
22180         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
22181         g-soccon-freebsd.ads: Add new constants:
22182          IP_MULTICAST_IF
22183          SO_RCVTIMEO/SO_SNDTIMEO
22184          IOV_MAX
22185
22186         * gen-soccon.c:
22187         Move all target-specific file inclusions and macro definitions to
22188         gsocket.h, in order to ensure that any C code in socket.c will see a
22189         set of constants that is consistent with the contents of g-soccon.ads.
22190
22191         * gsocket.h: Code imported from gen-soccon.c:
22192         Move all target-specific file inclusions and macro definitions to
22193         gsocket.h, in order to ensure that any C code in socket.c will see a set
22194         of constants that is consistent with the contents of g-soccon.ads.
22195         This change also makes gen-soccon self-contained (removing dependencies
22196         upon GCC internal headers).
22197
22198         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
22199         iovecs at a time.
22200         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
22201
22202         * socket.c: Minor reformatting.
22203
22204 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
22205             Thomas Quinot  <quinot@adacore.com>
22206
22207         * fname-sf.adb, mlib-tgt.ads,
22208         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
22209         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
22210         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
22211         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
22212         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
22213         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
22214         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
22215         makegpr.adb: Remove redundant use_clauses.
22216
22217 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
22218
22219         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
22220         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
22221         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
22222         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
22223         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
22224         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
22225         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
22226         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
22227         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
22228         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
22229         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
22230         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
22231         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
22232         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
22233         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
22234         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
22235         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
22236         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
22237         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
22238         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
22239         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
22240         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
22241         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
22242         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
22243         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
22244         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
22245         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
22246         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
22247         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
22248         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
22249         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
22250         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
22251         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
22252         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
22253         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
22254         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
22255         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
22256         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
22257         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
22258         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
22259         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
22260         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
22261         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
22262         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
22263         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
22264         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
22265         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
22266         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
22267         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
22268         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
22269         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
22270         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
22271         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
22272         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
22273         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
22274         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
22275         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
22276         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
22277         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
22278         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
22279         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
22280         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
22281         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
22282         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
22283         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
22284         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
22285         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
22286         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
22287         and always use the no parameter form for consistency.
22288
22289         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
22290
22291 2005-09-01  Robert Dewar  <dewar@adacore.com>
22292
22293         * binde.adb: Minor reformatting
22294         (Find_Elab_Order): Output warning if -p used with static elab order
22295
22296 2005-09-01  Robert Dewar  <dewar@adacore.com>
22297
22298         * checks.adb (Check_Needed): New procedure, deals with removing checks
22299         based on analysis of short-circuited forms. Also generates warnings for
22300         improper use of non-short-circuited forms.
22301         Code clean ups.
22302
22303 2005-09-01  Robert Dewar  <dewar@adacore.com>
22304
22305         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
22306         with 'Valid tests.
22307
22308 2005-09-01  Robert Dewar  <dewar@adacore.com>
22309
22310         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
22311         spec.
22312         Implement new insertion char < (conditional warning)
22313         * errutil.adb, erroutc.adb: Implement new insertion char <
22314         (conditional warning).
22315         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
22316         (Error_Msg_Warn): New variable for < insertion char.
22317         * prj-nmsc.adb: Implement new errout insertion char < (conditional
22318         warning).
22319         (Check_For_Source): Change value of Source_Id only after the current
22320         source has been dealt with.
22321
22322 2005-09-01  Robert Dewar  <dewar@adacore.com>
22323             Doug Rupp  <rupp@adacore.com>
22324
22325         * exp_attr.adb: Handle vax fpt for 'Valid attribute
22326         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
22327         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
22328         (Valid_D, Valid_F, Valid_G): New functions
22329
22330 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
22331             Hristian Kirtchev  <kirtchev@adacore.com>
22332             Javier Miranda  <miranda@adacore.com>
22333
22334         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
22335         from object notation, the original node is unanalyzed and carries no
22336         semantic information, so that accessiblity checks must be performed on
22337         the type of the actual itself.
22338         (Expand_N_Subprogram_Declaration): Change last actual parameter for
22339         compatibility with Build_Protected_Sub_Specification.
22340         (Check_Overriding_Inherited_Interfaces): Add suport to handle
22341         overloaded primitives.
22342         (Register_Interface_DT_Entry): Use the new name of the formal
22343         the the calls to Expand_Interface_Thunk
22344
22345         * exp_dbug.ads: Augment comments on encoding of protected types to
22346         include the generation of dispatching subprograms when the type
22347         implements at least one interface.
22348
22349         * lib.ads: Extend information in Load_Stack to include whether a given
22350         load comes from a Limited_With_Clause.
22351
22352         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
22353         whether a potential circularity is harmless, because it includes units
22354         loaded through a limited_with clause. Extends previous treatment which
22355         did not handle properly arbitrary combinations of limited and
22356         non-limited clauses.
22357
22358 2005-09-01  Nicolas Setton  <setton@adacore.com>
22359
22360         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
22361         to be encoded as typ___XBLU_lowerbound__upperbound instead of
22362         typ___XB_lowerbound__upperbound.
22363
22364 2005-09-01  Thomas Quinot  <quinot@adacore.com>
22365
22366         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
22367         dummy access formal for RACW/RAS TypeCode TSS.
22368         (Build_TypeCode_Call): Do not generate dummy null access actual for
22369         calls to the TypeCode TSS.
22370
22371 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
22372
22373         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
22374         fully qualified name, to distinguish instances with the same local name.
22375
22376         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
22377         fully qualified.
22378
22379 2005-09-01  Robert Dewar  <dewar@adacore.com>
22380
22381         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
22382         packed arrays.
22383
22384 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
22385
22386         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
22387         (Free): New deallocation procedure for filter elements
22388         (Close): Deallocate any existing filter for the concerned connection
22389
22390 2005-09-01  Laurent Pautet  <pautet@adacore.com>
22391
22392         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
22393         position set is provided, we compute one in order to reduce the maximum
22394         length of the keys.  This computation first selects a character
22395         position between 1 and the minimum length of the keys in order to
22396         avoid reducing one of the keys to an empty string.
22397         (Initialize, Compute): When the ratio V to K is too low, the algorithm
22398         does not converge. The initialization procedure now comes with a
22399         maximum number of iterations such that when exceeded, an exception is
22400         raised in Compute. The user can initialize this ratio to another value
22401         and try again
22402         Reformating and updated headers.
22403
22404 2005-09-01  Javier Miranda  <miranda@adacore.com>
22405
22406         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
22407         that given an entity T creates and returns an Itype that duplicates the
22408         contents of T. The returned Itype has the null-exclusion
22409         attribute set to True, and its Etype attribute references T
22410         to keep the association between the two entities.
22411         Update copyright notice
22412
22413         * sem_aggr.adb (Check_Can_Never_Be_Null,
22414         Aggregate_Constraint_Checks, Resolve_Aggregate,
22415         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
22416
22417         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
22418
22419 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
22420             Robert Dewar  <dewar@adacore.com>
22421             Hristian Kirtchev  <kirtchev@adacore.com>
22422
22423         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
22424         Result_Definition.
22425
22426         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
22427         function specs.
22428         Call Set_Result_Definition instead of Set_Subtype_Mark.
22429         (P_Subprogram_Specification): Add parsing of anonymous access result
22430         plus null exclusions. Call Set_Result_Definition instead of
22431         Set_Subtype_Mark.
22432
22433         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
22434         (P_Access_Type_Definition): Add parsing for an anonymous access result
22435         subtype, plus parsing for null exclusions. Call Set_Result_Definition
22436         instead of Set_Subtype_Mark.
22437
22438         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
22439         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
22440         (Result_Definition): New function for N_Function_Specifications.
22441         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
22442         N_Function_Specification.
22443         (Set_Null_Exclusion_Present): Allow this flag for
22444         N_Function_Specification.
22445         (Set_Result_Definition): New procedure for N_Function_Specifications.
22446         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
22447         and N_Function_Specification.
22448
22449         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
22450         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
22451         Add support for LIMITED NEW for Ada 2005 AI-419
22452         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
22453         syntax for anonymous access results.
22454         Replace Subtype_Mark field by Result_Definition in
22455         N_Function_Specification and N_Access_Definition specs.
22456         Add Null_Exclusion_Present to spec of N_Function_Specification.
22457         (Result_Definition): New function for N_Function_Specification and
22458         N_Access_Function_Definition.
22459         (Set_Result_Definition): New procedure for N_Function_Specification and
22460         N_Access_Function_Definition.
22461
22462         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
22463         Result_Definition for cases of N_Access_Function_Definition and
22464         N_Function_Specification.
22465         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
22466
22467 2005-09-01  Vincent Celier  <celier@adacore.com>
22468
22469         * lib-writ.adb: Update Copyright notice
22470         (Write_With_Lines): On platforms where file names are case-insensitive,
22471         record the file names in lower case.
22472         (Write_ALI): For D lines, on platforms where file names are
22473         case-insensitive, record the file names in lower case.
22474
22475 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
22476             Emmanuel Briot  <briot@adacore.com>
22477
22478         * lib-xref.adb (Output_Overridden_Op): Display information on
22479         overridden operation.
22480
22481         * lib-xref.ads: Add documentation on overridden operations.
22482
22483         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
22484         information.
22485
22486         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
22487         overriding entity information.
22488
22489 2005-09-01  Vincent Celier  <celier@adacore.com>
22490
22491         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
22492         including those that are inherited.
22493
22494 2005-09-01  Robert Dewar  <dewar@adacore.com>
22495
22496         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
22497
22498         * par-prag.adb: Implement new pragma Debug_Policy
22499
22500         * sem_prag.adb Implement new pragma Debug_Policy
22501         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
22502         Component_Size attribute specification. Give warning for ignored pragma
22503         Pack.
22504
22505         * snames.h, snames.ads, snames.adb: Introduce entries in
22506         Preset_Names for Name_Disp_Asynchronous_Select,
22507         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
22508         Name_Disp_Timed_Select.
22509         New pragma Debug_Policy
22510
22511         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
22512         explicitly.
22513         Switch -gnata also sets Debug_Pragmas_Enabled
22514
22515         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
22516         handle an explicit -gnata when compiling predefined files.
22517
22518 2005-09-01  Vincent Celier  <celier@adacore.com>
22519
22520         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
22521         directories of projects that have no Ada sources.
22522
22523 2005-09-01  Robert Dewar  <dewar@adacore.com>
22524
22525         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
22526         (makes a difference for wide characters)
22527
22528         * widechar.adb, widechar.ads:
22529         Add Wide_Char_Byte_Count feature to count chars vs bytes
22530
22531 2005-09-01  Thomas Quinot  <quinot@adacore.com>
22532             Ed Schonberg  <schonberg@adacore.com>
22533             Robert Dewar  <dewar@adacore.com>
22534
22535         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
22536         'Address attribute reference with an overloaded prefix, use the
22537         location of the prefix (not the location of the attribute reference) as
22538         the error location.
22539         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
22540         a function renaming thereof, is a valid prefix for 'Size (where it is
22541         intepreted as a function call).
22542         (Statically_Denotes_Entity): New predicate to determine whether the
22543         prefix of an array attribute can be considered static.
22544
22545         PR ada/9087
22546         (Eval_Attr): Fix failure to evaluate Component_Size for
22547         unconstrained arrays (resulted in wrong value in packed case, since
22548         back end cannot handle this case)
22549
22550 2005-09-01  Robert Dewar  <dewar@adacore.com>
22551
22552         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
22553         error msgs for most common cases.
22554         Use new errout insertion char < (conditional warning)
22555
22556 2005-09-01  Javier Miranda  <miranda@adacore.com>
22557             Ed Schonberg  <schonberg@adacore.com>
22558
22559         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
22560         become local to the whole package.
22561         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
22562         the package was already analyzed the new algorithm "replaces" the
22563         real entities by the shadow ones. This is required to ensure that
22564         the order of these entities in the homonym chains does not change;
22565         otherwise we can have undefined references at linking time because
22566         in case of conflicts the external name of the entities will have
22567         a suffix that depends on the order of the entities in the chain.
22568         (Remove_Limited_With_Clause): Complementary code that completes the
22569         new algorithm and replaces the shadow entities by the real ones.
22570         (Install_Limited_Withed_Unit): When unchaining entities before the
22571         installation of the shadow entities, only regular entities of the
22572         public part must be taken into account. This is required to
22573         keep this routine in synch with the work done by Remove_Limited_
22574         With_Clause
22575         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
22576         even if unit is analyzed, because the analysis of the unit is
22577         idempotent in any case, and the limited view of the unit may have to
22578         be installed for proper visibility.
22579         (Expand_Limited_With_Clause): Even if the unit in the implicit
22580         with_clause has been analyzed already, a limited view of the package
22581         must be built for the current context, if it does not exist yet.
22582
22583 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
22584             Javier Miranda  <miranda@adacore.com>
22585             Gary Dismukes  <dismukes@adacore.com>
22586
22587         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
22588         defining entity for the instance body, make a new defining identifier
22589         rather than copying the entity of the spec, to prevent accidental
22590         sharing of the entity list.
22591         (Check_Private_View): When exchanging views of private types, build the
22592         list of exchanged views as a stack, to ensure that on exit the exchanges
22593         are undone in the proper order.
22594         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
22595         Restore the compilation environment in case of instantiation_error.
22596         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
22597         for an anonymous access result.
22598         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
22599         (Formal_Entity): Handle properly the case of a formal package that
22600         denotes a generic package renaming.
22601
22602 2005-09-01  Thomas Quinot  <quinot@adacore.com>
22603
22604         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
22605         clause if the array aggregate is surrounded by parentheses.
22606
22607 2005-09-01  Cyrille Comar  <comar@adacore.com>
22608             Gary Dismukes  <dismukes@adacore.com>
22609             Ed Schonberg  <schonberg@adacore.com>
22610             Javier Miranda  <miranda@adacore.com>
22611
22612         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
22613         underlying type
22614         to check if a type is Constrained in cases related to code generation
22615         (rather than semantic checking) since otherwise we do not generate
22616         similar code for mutable private types depending if their
22617         discriminants are visible or not.
22618         (Check_Abstract_Overriding): Do not complain about failure to override
22619         the primitive operations used in dispatching selects since they will
22620         always be overriden at the freeze point of the type.
22621         (Access_Definition): Separate out handling for resetting the scope
22622         of an anonymous access function result type. Retrieve the scope
22623         of the associated function rather than using Current_Scope, which
22624         does not have a consistent value (depends on whether we're in the
22625         middle of analyzing formal parameters). Add ??? comment about
22626         finding a cleaner way to handle the special cases of scope setting.
22627         (Process_Incomplete_Dependents): A protected operation is never a
22628         dispatching operation (only its wrapper may be).
22629         (Build_Derived_Record_Type): In case of tagged private types that
22630         implement interfaces add derivation of predefined primitive
22631         operations.
22632         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
22633         by two parameters that are used in case of derivation from abstract
22634         interface types: No_Predefined_Prims is used to avoid the derivation
22635         of predefined primitives from the interface, and Predefined
22636         Prims_Only is used to complete the derivation predefined primitives
22637         in case of private tagged types implementing interfaces.
22638         Fix typo in comments
22639         (Find_Interface_In_Descendant): Protect the frontend against
22640         wrong code with large circularity chains.
22641         (Is_Private_Overriding): Add support for entities overriding interface
22642         subprograms. The test failed because Entities associated with overriden
22643         interface subprograms are always marked as hidden (and used to build
22644         the secondary dispatch table); in this case the overriden entity is
22645         available through the field abstract_interface_alias (cf. override_
22646         dispatching_operation)
22647         (Access_Definition): Set the scope of the type to Current_Scope for the
22648         case of a function with an anonymous access result type.
22649         (Access_Subprogram_Declaration): Handle creation of the type entity for
22650         an access-to-function type with an anonymous access result.
22651         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
22652         in handling for N_Access_Function_Definition.
22653         (Analyze_Subtype_Declaration): Modify the text of error message.
22654         (Derived_Type_Declaration): Modify the text of error message.
22655         (Process_Subtype): Modify the text of error message plus cleanup
22656         of one redundant error message.
22657         (Analyze_Component_Declaration): Code cleanup.
22658         (Analyze_Object_Declaration): Code cleanup.
22659         (Analyze_Subtype_Declaration): Propagate the null-exclusion
22660         attribute in case of access types. Code cleanup.
22661         (Array_Type_Declaration): Code cleanup.
22662         (Process_Discriminants): Create the new null-excluding itype
22663         if required. Code cleanup.
22664         (Process_Subtype): Create the new null-excluding itype if
22665         required. Code cleanup.
22666         (Build_Derived_Record_Type): Code cleanup to avoid calling
22667         twice the subprogram derive_subprograms in case of private
22668         types that implement interfaces. In this particular case the
22669         subprogram Complete_Subprograms_Derivation already does the
22670         job associated with the second call.
22671
22672         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
22673         conversion to the full view when generating an operation for a
22674         discriminant whose type may currently be private.
22675
22676 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
22677             Javier Miranda  <miranda@adacore.com>
22678
22679         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
22680         V (Obj.F), the rewriting does not involve the indexed component, but
22681         only the selected component itself.
22682         Do not apply the transformation if the analyzed node is an actual of a
22683         call to another subprogram.
22684         (Complete_Object_Operation): Retain the entity of the
22685         dispatching operation in the selector of the rewritten node. The
22686         entity will be used in the expansion of dispatching selects.
22687         (Analyze_One_Call): Improve location of the error message associated
22688         with interface.
22689         (Analyze_Selected_Component): No need to resolve prefix when it is a
22690         function call, resolution is done when parent node is resolved, as
22691         usual.
22692         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
22693         when attempting to resolve a call transformed from its object notation.
22694         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
22695         of the argument list for each interpretation of the operation.
22696         (Try_Object_Operation): The designated type of an access parameter may
22697         be an incomplete type obtained through a limited_with clause, in which
22698         case the primitive operations of the type are retrieved from its full
22699         view.
22700         (Analyze_Call): If this is an indirect call, and the return type of the
22701         access_to_subprogram is incomplete, use its full view if available.
22702
22703 2005-09-01  Javier Miranda  <miranda@adacore.com>
22704             Gary Dismukes  <dismukes@adacore.com>
22705
22706         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
22707         access types the null-exclusion and access-to-constant attributes must
22708         also match.
22709         (Analyze_Return_Statement): When the result type is an anonymous access
22710         type, apply a conversion of the return expression to the access type
22711         to ensure that appropriate accessibility checks are performed.
22712         (Analyze_Return_Type): For the case of an anonymous access result type,
22713         generate the Itype and set Is_Local_Anonymous_Access on the type.
22714         Add ??? placeholder for check to disallow returning a limited object
22715         in Ada 2005 unless it's an aggregate or a result of a function call.
22716         Change calls from Subtype_Mark to Result_Definition.
22717         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
22718         Result_Definition in call to Make_Function_Specification.
22719         (Build_Body_To_Inline): Change Set_Subtype_Mark to
22720         Set_Result_Definition.
22721         (Make_Inequality_Operator): Change formal Subtype_Mark to
22722         Result_Definition in call to Make_Function_Specification.
22723         (Process_Formals): Create the new null-excluding itype if required.
22724         (New_Overloaded_Entity): For an entity overriding an interface primitive
22725         check if the entity also covers other abstract subprograms in the same
22726         scope. This is required to handle the general case, that is, overriding
22727         other interface primitives and overriding abstract subprograms inherited
22728         from some abstract ancestor type.
22729         (New_Overloaded_Entity): For an overriding entity that comes from
22730         source, note the operation that it overrides.
22731         (Check_Conformance, Type_Conformant): Addition of one new formal
22732         to skip controlling formals in the analysis. This is used to
22733         handle overloading of abstract interfaces.
22734         (Base_Types_Match): Add missing case for types imported from
22735         limited-with clauses
22736         (New_Overloaded_Entity): Add barrier to protect the use of
22737         the "alias" attribute.
22738
22739 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
22740
22741         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
22742         verify that the procedure and the entry are mode conformant.
22743         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
22744         as a different operator, which is often a cut-and-paste error.
22745
22746 2005-09-01  Javier Miranda  <miranda@adacore.com>
22747             Ed Schonberg  <schonberg@adacore.com>
22748
22749         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
22750         used in controlling parameters exclude null because it is necessary to
22751         read the tag to dispatch, and null has no tag.
22752         (Override_Dispatching_Operation): If the previous operation is inherited
22753         from an interface, it becomes hidden  and does not participate in later
22754         name resolution.
22755
22756 2005-09-01  Javier Miranda  <miranda@adacore.com>
22757             Ed Schonberg  <schonberg@adacore.com>
22758             Gary Dismukes  <dismukes@adacore.com>
22759
22760         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
22761         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
22762         the expander will generate the corresponding run-time check to evaluate
22763         the expression.
22764         (Resolve_Call): Check for legal type of procedure name or prefix that
22765         appears as a trigger in a triggering alternative.
22766         (Valid_Conversion): If expression is ambiguous and the context involves
22767         an extension of System, remove System.Address interpretations.
22768         (Resolve_Qualified_Expression): Reject the case of a specific-type
22769         qualification applied to a class-wide argument. Enhance comment
22770         to explain checking of Original_Node.
22771         (Resolve_Type_Conversion): The location of the error message was not
22772         general enough to handle the general case and hence it has been removed.
22773         In addition, this patch improves the text of the message.
22774         (Resolve_Type_Conversion): Add missing support for access to interface
22775         types.
22776         (Resolve_Type_Conversion): If the target is a class-wide interface type,
22777         do not expand if the expression is the actual in a call, because proper
22778         expansion will take place when the call itself is expanded.
22779         (Resolve_Allocator): If the context is an unchecked conversion, the
22780         allocator inherits its storage pool, if any, from the target type of
22781         the conversion.
22782
22783 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
22784             Javier Miranda  <miranda@adacore.com>
22785
22786         * sem_type.adb (Add_One_Interp): If a candidate operation is an
22787         inherited interface operation that has an implementation, use the
22788         implementation to avoid spurious ambiguities.
22789         (Interface_Present_In_Ancestor): In case of concurrent types we can't
22790         use the Corresponding_Record_Typ attribute to look for the interface
22791         because it is set by the expander (and hence it is not always
22792         available). For this reason we traverse the list of interfaces
22793         (available in the parent of the concurrent type).
22794         (Interface_Present_In_Ancestor): Handle entities from the limited view
22795
22796 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
22797
22798         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
22799         from the list of required components.
22800         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
22801         primitive procedure of a limited interface with a controlling first
22802         parameter.
22803         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
22804         of an entry.
22805         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
22806         capture if it is generated in the second operand of a short-circuit
22807         operation.
22808         Do not capture values for variables with address clauses.
22809         (Is_Object_Reference): Treat a function call as an object reference only
22810         if its type is not Standard_Void_Type.
22811
22812 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
22813
22814         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
22815         to a variable that is statically known to be constant.
22816
22817 2005-09-01  Geert Bosch  <bosch@adacore.com>
22818             Robert Dewar  <dewar@adacore.com>
22819
22820         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
22821         (VAXGF_Safe_First): Idem.
22822
22823 2005-09-01  Robert Dewar  <dewar@adacore.com>
22824             Arnaud Charlet  <charlet@adacore.com>
22825
22826         * g-dirope.ads: Minor reformatting
22827         Document that bounds of result of Base_Name match the input index
22828         positions.
22829         Add documentation on environment variable syntax for Expand_Path
22830
22831         * gnat_ugn.texi: Update documentation to include mention of -m switches
22832         Document new treatment of wide characters in max line length
22833         style check.
22834         Remove -gnatL/-gnatZ switches, no longer used.
22835         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
22836         of -gnata switch.
22837
22838         * gnat_rm.texi: Add doc for two argument form of pragma
22839         Float_Representation.
22840         Add documentation for pragma No_Strict_Aliasing
22841         Add note that explicit component clause overrides pragma Pack.
22842         Add documentation of pragma Debug_Policy
22843
22844 2005-09-01  Matthew Heaney  <heaney@adacore.com>
22845
22846         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
22847         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
22848         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
22849         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
22850         draft (Draft 13, August 2005) of Ada Amendment 1.
22851
22852 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
22853
22854         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
22855         Note that the platform-specific version of g-soccon.ads for VMS is now
22856         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
22857         really is a package spec).
22858         Replace s-taspri-linux.ads by s-taspri-posix.ads
22859         Remove references to s-mastop-x86.adb
22860
22861         * system-vxworks-xscale.ads: Removed, no longer used.
22862         * s-vxwork-xscale.ads: Removed, no longer used.
22863
22864 2005-09-01  Robert Dewar  <dewar@adacore.com>
22865
22866         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
22867         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
22868         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
22869         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
22870         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
22871         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
22872         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
22873         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
22874         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
22875         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
22876         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
22877         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
22878         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
22879         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
22880         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
22881         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
22882         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
22883         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
22884         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
22885         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
22886         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
22887
22888 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
22889
22890         PR ada/23187
22891         * adaint.c
22892         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
22893
22894 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
22895             Doug Rupp  <rupp@adacore.com>
22896
22897         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
22898         when needed.
22899         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
22900         this code in the GNAT run-time.
22901
22902         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
22903
22904         PR ada/21053
22905         * init.c (__gnat_error_handler [many]): Mark "msg" as const
22906         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
22907
22908         (__gnat_inside_elab_final_code): Moved here from
22909         Standard_Library and only defined for the compiler.
22910         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
22911         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
22912         using RTPs because directly vectored Interrupt routines are not
22913         supported on this configuration.
22914         (getpid): Do not redefine this function on VxWorks when using RTPs
22915         because this primitive is well supported by the RTP libraries.
22916         (copy_msg): Correct the code that checks for buffer overflow.
22917         Discovered during code reading.
22918
22919 2005-08-29  Olivier Hainque  <hainque@adacore.com>
22920
22921         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
22922         a library level mutable variable with an initializer, tell
22923         build_allocator to ignore the initializer's size. It may not be large
22924         enough for all the values that might be assigned to the variable later
22925         on.
22926
22927 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
22928             Eric Botcazou  <ebotcazou@adacore.com>
22929
22930         * trans.c: Protect < in error msg with quote
22931         Replace GCC_ZCX by Back_End_Exceptions.
22932         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
22933         has been sufficiently aligned in the record.
22934
22935 2005-08-15  James E. Wilson  <wilson@specifix.com>
22936
22937         * system-linux-alpha.ads: Change ia64 to alpha.
22938
22939 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
22940
22941         * decl.c, utils.c: Fix comment typos.
22942
22943 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
22944
22945         * decl.c, init.c, initialize.c: Fix comment typos.
22946
22947 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
22948
22949         Make CONSTRUCTOR use VEC to store initializers.
22950         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
22951         CONSTRUCTOR_ELTS.
22952         * trans.c (extract_values): Likewise.
22953         * utils.c (convert, remove_conversions): Likewise.
22954         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
22955         gnat_build_constructor): Likewise.
22956
22957 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
22958
22959         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
22960         DECL_SECTION_NAME.
22961         (compare_field_bitpos): Likewise.
22962
22963 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
22964
22965         * utils.c (create_var_decl): Only set DECL_COMMON on
22966         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
22967         VAR_OR_FUNCTION_DECL_P.
22968
22969 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
22970
22971         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
22972         removed.
22973
22974 2005-07-07  Pascal Obry  <obry@adacore.com>
22975
22976         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
22977         returned type on Windows.
22978
22979         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
22980         routine.
22981
22982         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
22983         exception in this case.
22984         Simplify the code as "Image (Image'Range)" = "Image".
22985
22986 2005-07-07  Vincent Celier  <celier@adacore.com>
22987
22988         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
22989         the destructor/constructor attributes for <lib>final/<lib>init.
22990
22991         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
22992
22993 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
22994
22995         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
22996         type if the parameter is not passed by copy but reference by default.
22997
22998 2005-07-07  Javier Miranda  <miranda@adacore.com>
22999
23000         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
23001         Reimplementation of the support for abstract interface types in order
23002         to leave the code more clear and easy to maintain.
23003
23004         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
23005         abstract interface types in order to leave the code clearer and easier
23006         to maintain.
23007
23008         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
23009         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
23010         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
23011         appropriate entry of the secondary dispatch table.
23012         (Make_DT): Add code to inherit the secondary dispatch tables of
23013         the ancestors.
23014
23015         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
23016         implementing both functionalities by means of a common routine, each
23017         routine has its own code.
23018
23019 2005-07-07  Javier Miranda  <miranda@adacore.com>
23020
23021         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
23022
23023         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
23024         types:
23025         --
23026           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
23027         --
23028
23029         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
23030         use of tag incomplete types.
23031
23032         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
23033         give support to tagged incomplete types.
23034
23035         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
23036         expression is a discriminant reference and its type is private, as can
23037         happen within a stream operation for a mutable record, use the full
23038         view of the type to resolve the case alternatives.
23039         (Analyze_Assignment): Check wrong dereference of incomplete types.
23040
23041         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
23042         types.
23043
23044         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
23045         incomplete types.
23046
23047         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
23048         N_Incomplete_Type_Declaration nodes.
23049
23050         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
23051         Tag_Present to give support to tagged incomplete types:
23052         --
23053           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
23054         --
23055
23056 2005-07-07  Olivier Hainque  <hainque@adacore.com>
23057
23058         PR ada/22301
23059         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
23060         definitions for the Unwind wrappers in the compiler case.
23061
23062 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
23063             Javier Miranda  <miranda@adacore.com>
23064
23065         * par-load.adb (Load): If a child unit is loaded through a limited_with
23066         clause, each parent must be loaded as a limited unit as well.
23067
23068         * sem_ch10.adb (Previous_Withed_Unit): Better name for
23069         Check_Withed_Unit. Return true if there is a previous with_clause for
23070         this unit, whether limited or not.
23071         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
23072         the current unit.
23073         (Is_Visible_Through_Renamings): New local subprogram of install_limited
23074         _withed_unit that checks if some package installed through normal with
23075         clauses has a renaming declaration of package whose limited-view is
23076         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
23077         of the current Draft document for Ada 2005.
23078         (Analyze_Context): Complete the list of compilation units that
23079         are allowed to contain limited-with clauses. It also contains
23080         checks that were previously done by Install_Limited_Context_Clauses.
23081         This makes the code more clear and easy to maintain.
23082         (Expand_Limited_With_Clause) It is now a local subprogram of
23083         Install_Limited_Context_Clauses, and contains the code that adds
23084         the implicit limited-with clauses for parents of child units.
23085         This functionality was prevously done by Analyze_Context.
23086
23087         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
23088         incomplete type.
23089
23090         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
23091         been erroneously named in a limited-with clause of its own context.
23092         In this case the error has been previously notified by Analyze_Context.
23093
23094 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
23095
23096         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
23097         generic package that contains local declarations with the same name.
23098         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
23099
23100 2005-07-07  Bernard Banner  <banner@adacore.com>
23101
23102         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
23103         ia64 platform only on platforms that you the GCC unwind library
23104         rather than the system unwind library.
23105
23106 2005-07-07  Thomas Quinot  <quinot@adacore.com>
23107
23108         * expect.c: Minor reformatting
23109
23110 2005-07-07  Sergey Rybin  <rybin@adacore.com>
23111
23112         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
23113         --no-separate-is
23114
23115         * gnat_ugn.texi: Add description for new gnatpp option
23116         (--no-separate-is)
23117
23118 2005-07-04  Thomas Quinot  <quinot@adacore.com>
23119
23120         * g-expect-vms.adb, g-expect.ads, g-expect.adb
23121         (Get_Command_Output): New subprogram to launch a process and get its
23122         standard output as a string.
23123
23124 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
23125             Olivier Hainque  <hainque@adacore.com>
23126
23127         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
23128         fetch a code-range descriptor associated with the machine state. On
23129         failure set the machine state's PC to 0; on success, pass the
23130         descriptor to exc_virtual_unwind.
23131
23132         * init.c (Tru64 section): New function __gnat_set_code_loc.
23133
23134 2005-07-04  Vincent Celier  <celier@adacore.com>
23135
23136         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
23137         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
23138         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
23139         Remove all auto-initialization code, as this is now done through the
23140         constructor mechanism.
23141
23142         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
23143         __gnat_sals_init_using_constructors): New functions.
23144
23145         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
23146         Linker_Constructor and Linker_Destructor when switch -a is used.
23147
23148         * bindusg.adb: Add line for new switch -a
23149
23150         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
23151         (Gnatbind): When switch -a is used, check if it is allowed
23152
23153         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
23154
23155 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
23156
23157         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
23158         This prevents us from hitting a limitation during the debug info
23159         generation when using stabs.
23160         (Prims_Ptr): Likewise.
23161
23162 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
23163             Ed Schonberg  <schonberg@adacore.com>
23164             Javier Miranda  <miranda@adacore.com>
23165
23166         * checks.adb (Null_Exclusion_Static_Checks): In the case of
23167         N_Object_Declaration, only perform the checks if the Object_Definition
23168         is not an Access_Definition.
23169
23170         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
23171         where the parent of an the access definition is an N_Object_Declaration
23172         when determining the Associated_Node_For_Itype and scope of an
23173         anonymous access-to-subprogram type.
23174
23175         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
23176         Corresponding_Spec on the body created for a null procedure. Add ???
23177         comment. Remove New_Copy_Tree call on body argument to
23178         Set_Body_To_Inline.
23179
23180         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
23181         discriminants, use the type of the actual as well, because the
23182         discriminants may be read by the called subprogram.
23183
23184         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
23185         access type we do not need to handle non-limited views.
23186         (Build_Derived_Record_Type): Additional check to check that in case of
23187         private types, interfaces are only allowed in private extensions.
23188
23189 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
23190
23191         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
23192         <Pragma_Linker_Destructor>: Likewise.
23193
23194         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
23195         Pragma_Linker_Destructor.
23196
23197         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
23198         ATTR_LINK_DESTRUCTOR.
23199         (static_ctors, static_dtors): New variables.
23200
23201         * misc.c (gnat_expand_body): Output current function as constructor
23202         and destructor if requested.
23203
23204         * par-prag.adb: Add processing for pragma Linker_Constructor and
23205         Linker_Destructor.
23206
23207         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
23208         extracted from Check_Interrupt_Or_Attach_Handler.
23209         (Check_Interrupt_Or_Attach_Handler): Invoke it.
23210         Implement pragma Linker_Constructor and Linker_Destructor with the
23211         help of Find_Unique_Parameterless_Procedure.
23212         Replace Name_Alias with Name_Target for pragma Linker_Alias.
23213
23214         * snames.h, snames.ads, snames.adb:
23215         Add Name_Linker_Constructor and Name_Linker_Destructor.
23216         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
23217         * snames.adb: Remove Name_Alias.
23218
23219         * trans.c: Include cgraph.h.
23220         (build_global_cdtor): New function.
23221         (Compilation_Unit_to_gnu): Build global constructor and destructor if
23222         needed.
23223         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
23224         of objects too.
23225         (addressable_p) <COMPONENT_REF>: Unconditionally test
23226         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
23227
23228         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
23229         variable if it is external.
23230
23231         (static_ctors, static_dtors): New global variables.
23232         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
23233         <ATTR_LINK_DESTRUCTOR>: Likewise.
23234         (end_subprog_body): Chain function as constructor and destructor
23235         if requested.
23236
23237         * exp_util.adb (Force_Evaluation): Unconditionally invoke
23238         Remove_Side_Effects with Variable_Ref set to true.
23239         (Remove_Side_Effects): Handle scalar types first. Use a renaming
23240         for non-scalar types even if Variable_Ref is true and for class-wide
23241         expressions.
23242
23243 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
23244
23245         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
23246         to prevent spurious warnings.
23247
23248 2005-07-04  Thomas Quinot  <quinot@adacore.com>
23249
23250         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
23251         Itypes. Itypes are really unexpected there.
23252         (Build_TypeCode_Function): Generalise special processing for Itypes to
23253         handle the case of numeric implicit base types as well as enumerated
23254         ones.
23255
23256 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
23257
23258         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
23259         controlled, indicate the expected type of the dereference that is
23260         created for the call to Deep_Finalize, to prevent spurious errors when
23261         the designated type is private and completed with a derivation from
23262         another private type.
23263
23264 2005-07-04  Vincent Celier  <celier@adacore.com>
23265
23266         * make.adb (Change_To_Object_Directory): When unable to change the
23267         current dir to the object directory, output the full path of the
23268         directory.
23269
23270 2005-07-04  Matthew Gingell  <gingell@adacore.com>
23271
23272         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
23273
23274         * indepsw-linux.adb: Replace by...
23275
23276         * indepsw-gnu.adb: ...this new file
23277
23278 2005-07-04  Vincent Celier  <celier@adacore.com>
23279
23280         * mlib-prj.adb (Auto_Initialize): New constant String
23281         (SALs_Use_Constructors): New Boolean function
23282         (Build_Library): Call gnatbind with Auto_Initialize switch when
23283         SALs_Use_Constructors returns True.
23284
23285         * mlib-tgt.ads: Minor reformatting
23286
23287         * mlib-utl.ads: Minor reformatting
23288
23289         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
23290
23291 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
23292
23293         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
23294         single protected declarations can have an interface list.
23295         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
23296         with seriously malformed entry declarations, and lead to compilation
23297         abandoned messages.
23298
23299 2005-07-04  Javier Miranda  <miranda@adacore.com>
23300
23301         * par-load.adb: Load the context items in two rounds.
23302
23303 2005-07-04  Robert Dewar  <dewar@adacore.com>
23304
23305         * scng.adb: Do not consider Mod used as an attribute to be a keyword
23306
23307 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
23308             Javier Miranda  <miranda@adacore.com>
23309
23310         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
23311         type extension needs a limited view.
23312         Remove previous restriction on private types available through the
23313         limited-view (only tagged private types were previously allowed).
23314         (Install_Withed_Unit): In the code that implements the
23315         legality rule given in AI-377, exclude a child unit with the name
23316         Standard, because it is a homonym of the Standard environment package.
23317
23318 2005-07-04  Thomas Quinot  <quinot@adacore.com>
23319
23320         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
23321         overloaded function call, carry interpretations from the original tree
23322         to the copy.
23323
23324 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
23325
23326         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
23327         types check whether some designated type is a limited view, and use
23328         the non-limited view if available.
23329
23330 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
23331
23332         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
23333         constraint of full view of a private view T1 if present, when T2 is a
23334         discriminated full view.
23335
23336 2005-07-04  Thomas Quinot  <quinot@adacore.com>
23337
23338         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
23339         actual that is a view conversion of a bit packed array reference.
23340
23341 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
23342
23343         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
23344         present before checking whether an interface type covers a synchronized
23345         type.
23346
23347 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
23348
23349         * sem_util.adb (Is_Object_Reference): An indexed or selected component
23350         whose prefix is an implicit dereference is an object reference. Removes
23351         spurious errors when compiling with -gnatc.
23352
23353 2005-07-04  Robert Dewar  <dewar@adacore.com>
23354
23355         PR ada/22039
23356         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
23357
23358 2005-07-04  Matthew Gingell  <gingell@adacore.com>
23359
23360         * tracebak.c: Enable tracebacks on ia64 platforms
23361
23362 2005-07-04  Vincent Celier  <celier@adacore.com>
23363
23364         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
23365         the GNAT BIND command, as gnatbind accepts multiples ALI files with
23366         the -L or -n switches.
23367
23368 2005-07-04  Vincent Celier  <celier@adacore.com>
23369
23370         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
23371         correctly computed and the main project data is not modified while
23372         doing so.
23373         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
23374         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
23375         c++linker as this does not work on some platforms.
23376
23377 2005-07-04  Matthew Heaney  <heaney@adacore.com>
23378
23379         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
23380         was changed.
23381         * a-coinve.adb: Perform constraint checks explicitly.
23382
23383 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23384             Thomas Quinot  <quinot@adacore.com>
23385
23386         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
23387         new target gen-soccon.
23388
23389 2005-07-04  Robert Dewar  <dewar@adacore.com>
23390
23391         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
23392
23393 2005-07-04  Thomas Quinot  <quinot@adacore.com>
23394
23395         * g-socket.ads (Check_Selector): Minor rewording of comment.
23396
23397 2005-07-04  Vincent Celier  <celier@adacore.com>
23398
23399         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
23400
23401 2005-07-04  Thomas Quinot  <quinot@adacore.com>
23402
23403         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
23404
23405 2005-07-04  Sergey Rybin  <rybin@adacore.com>
23406
23407         * gnat_ugn.texi: Add description of --eol gnatpp option
23408
23409 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
23410             Thomas Quinot  <quinot@adacore.com>
23411
23412         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
23413         if the user wants all calls of a subprogram to be flagged,
23414         independently of whether they are made from within the same unit or
23415         another unit.
23416         Mention restriction for pragma Linker_Alias on some platforms.
23417         Document pragma Linker_Constructor and Linker_Destructor.
23418         Rewrite documentation of Weak_External, Linker_Section and
23419         Linker_Alias pragmas.
23420
23421 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
23422
23423         * s-stausa.ads, s-stausa.adb: New files.
23424
23425 2005-06-30  Kelley Cook
23426
23427         * all files:  Update FSF address in copyright headers.
23428         * gen-soccon.co (main): Output new FSF address in generated files.
23429
23430 2005-06-28  Paul Brook  <paul@codesourcery.com>
23431
23432         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
23433
23434 2005-06-14  Olivier Hainque  <hainque@adacore.com>
23435             Eric Botcazou  <ebotcazou@adacore.com>
23436
23437         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
23438         exc_unwind, now that we are generating proper .debug_frame output for
23439         that target.
23440
23441         * tracebak.c: Remove the mips-irix section, as we are now using the
23442         s-mastop based unwinder again.
23443         Under SPARC/Solaris, take into account the stack bias to compute the
23444         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
23445         ABI.
23446
23447 2005-06-14  Doug Rupp  <rupp@adacore.com>
23448
23449         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
23450
23451         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
23452
23453 2005-06-14  Pascal Obry  <obry@adacore.com>
23454
23455         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
23456         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
23457         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
23458         package name).
23459
23460         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
23461         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
23462         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
23463         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
23464         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
23465         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
23466         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
23467         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
23468         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
23469         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
23470         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
23471         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
23472         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
23473         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
23474         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
23475         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
23476         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
23477         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
23478         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
23479         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
23480         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
23481         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
23482         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
23483         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
23484         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
23485         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
23486         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
23487         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
23488         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
23489         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
23490         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
23491         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
23492         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
23493         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
23494         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
23495         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
23496         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
23497         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
23498         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
23499         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
23500         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
23501         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
23502         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
23503         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
23504         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
23505         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
23506         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
23507         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
23508         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
23509         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
23510         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
23511         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
23512         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
23513         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
23514         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
23515         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
23516         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
23517         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
23518         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
23519         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
23520         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
23521         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
23522         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
23523         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
23524         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
23525         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
23526         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
23527         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
23528         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
23529         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
23530         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
23531         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
23532         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
23533         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
23534         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
23535         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
23536         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
23537         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
23538         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
23539         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
23540         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
23541         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
23542         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
23543         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
23544         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
23545         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
23546         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
23547         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
23548         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
23549         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
23550         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
23551         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
23552         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
23553         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
23554         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
23555         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
23556         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
23557         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
23558         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
23559         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
23560         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
23561         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
23562         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
23563         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
23564         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
23565         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
23566         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
23567         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
23568         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
23569         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
23570         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
23571         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
23572         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
23573         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
23574         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
23575         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
23576         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
23577         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
23578         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
23579         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
23580         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
23581         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
23582         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
23583         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
23584         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
23585         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
23586         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
23587         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
23588         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
23589         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
23590         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
23591         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
23592         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
23593
23594 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
23595             Arnaud Charlet  <charlet@adacore.com>
23596
23597         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
23598         longer protected objects. They have been replaced by lower-level
23599         suspension objects made up by a mutex and a condition variable (or
23600         their equivalent given a particular OS) plus some internal data to
23601         reflect the state of the suspension object.
23602         (Initialize, Finalize): Add this initialization procedure for
23603         Suspension_Object, which is a controlled type.
23604         (Finalize): Add the finalization procedure for Suspension_Object,
23605         which is a controlled type.
23606
23607         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
23608         Ada.Synchronous_Task_Control because there is no longer a need for a
23609         VxWorks specific version of this package. Target dependencies
23610         has been moved to System.Task_Primitives.Operations.
23611
23612         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
23613         longer needed.
23614         (InitializeCriticalSection, EnterCriticalSection,
23615         LeaveCriticalSection, DeleteCriticalSection): Replace the type
23616         pCriticalSection by an anonymous access type so that we avoid problems
23617         of accessibility to local objects.
23618
23619         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
23620         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
23621         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
23622         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
23623         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
23624         set the environment task mask here.
23625         (Current_State): Add this function that returns the state of the
23626         suspension object.
23627         (Set_False): Add this procedure that sets the state of the suspension
23628         object to False.
23629         (Set_True): Add this procedure that sets the state of the suspension
23630         object to True, releasing the task that was suspended, if any.
23631         (Suspend_Until_True): Add this procedure that blocks the calling task
23632         until the state of the object is True. Program_Error is raised if
23633         another task is already waiting on that suspension object.
23634         (Initialize): Add this procedure for initializing the suspension
23635         object. It initializes the mutex and the condition variable which are
23636         used for synchronization and queuing, and it sets the internal state
23637         to False.
23638         (Finalize): Add this procedure for finalizing the suspension object,
23639         destroying the mutex and the condition variable.
23640
23641         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
23642         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
23643         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
23644         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
23645         which provides a low-level abstraction (using operating system
23646         primitives) for Ada.Synchronous_Task_Control.
23647         This object is made up by a mutex (for ensuring mutual exclusion), a
23648         condition variable (for queuing threads until the condition is
23649         signaled), a Boolean (State) indicating whether the object is open,
23650         and a Boolean (Waiting) reflecting whether there is a task already
23651         suspended on this object.
23652
23653         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
23654         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
23655         s-intman-vms.ads, s-intman-mingw.adb,
23656         (Initialize_Interrupts): Removed, no longer used.
23657
23658         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
23659         (Setup_Interrupt_Mask): New procedure.
23660
23661         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
23662
23663         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
23664
23665         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
23666         this is no longer done in the body of s-taprop
23667         (Server_Task): Explicitely test for Pending_Action in case
23668         System.Parameters.No_Abort is True.
23669
23670         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
23671         is no longer done in the body of s-taprop
23672
23673 2005-06-14  Robert Dewar  <dewar@adacore.com>
23674
23675         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
23676         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
23677         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
23678         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
23679         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
23680         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
23681         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
23682         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
23683         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
23684         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
23685         system-linux-hppa.ads, system-vms_64.ads,
23686         system-vxworks-alpha.ads: Minor comment update for
23687         AI-362 (unit is Pure).
23688
23689         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
23690         Add pragma Pure_05 for AI-362
23691         Make remaining conversion functions obsolescent in Ada 95
23692
23693         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
23694         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
23695         Add entries for a-wichun and a-zchuni
23696         Add a-widcha a-zchara for AI-395
23697         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
23698
23699         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
23700         Add entries for a-wichun.o and a-zchuni.o
23701         Entries for a-widcha.o and a-zchara.o
23702         Add entry for a-chacon.o
23703
23704         * a-ztenau.adb: Add with of Ada.Characters.Conversions
23705
23706         * a-chacon.ads, a-chacon.adb: New files.
23707
23708         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
23709         categorization violations.
23710
23711         * a-strmap.ads: Add pragma Pure_05 for AI-362
23712         * a-strmap.ads: Add note on implicit categorization for AI-362
23713
23714         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
23715
23716         * par-prag.adb: Dummy entry for pragma Persistent_BSS
23717         Set Ada_Version_Explicit, for implementation of AI-362
23718         Add processing for pragma Pure_05 and Preelaborate_05
23719         Add entry for Assertion_Policy pragma
23720
23721         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
23722         when needed for proper processing of categorization stuff
23723
23724         * sem_cat.adb:
23725         For several cases, make errors in preealborate units warnings,
23726         instead of errors, if GNAT_Mode is set. For AI-362.
23727
23728         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
23729         preelaborate unit is now warning if in GNAT mode
23730
23731         * s-stoele.ads: Document AI-362 for pragma preelaborate
23732
23733 2005-06-14  Doug Rupp  <rupp@adacore.com>
23734
23735         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
23736         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
23737         Default_Exception_Msg_Max_Length: new parameter.
23738
23739         * a-except.ads: (Exception_Msg_Max_Length): Set to
23740         System.Parameters.Default_Exception_Msg_Max_Length
23741         Add pragma Preelaborate_05 for AI-362
23742         Add warnings off to allow categorization violations for AI-362
23743
23744 2005-06-14  Vincent Celier  <celier@adacore.com>
23745
23746         * gnatsym.adb: Adapt to modification of package Symbols: procedure
23747         Process is now in package Processing.
23748
23749         * symbols.ads, symbols.adb:
23750         (Processing): New package, containing procedure Process
23751
23752         * symbols-vms-alpha.adb:
23753         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
23754
23755         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
23756         symbols-processing-vms-ia64.adb: New files.
23757
23758 2005-06-14  Pascal Obry  <obry@adacore.com>
23759
23760         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
23761         implementation. This new version generates the proper DllMain routine
23762         to initialize the SAL. The DllMain is generated in Ada and compiled
23763         before being added as option to the library build command.
23764
23765 2005-06-14  Doug Rupp  <rupp@adacore.com>
23766             Pascal Obry  <obry@adacore.com>
23767
23768         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
23769         call to decc$translate_vms.
23770         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
23771         need to remove those quotes before catenating the filename.
23772         (__gnat_locate_exec_on_path): improvements to the Win32 section:
23773         * avoid allocating the memory twice for better efficiency;
23774         * allocate 32K buffer for environment expansion as suggested by MSDN;
23775         * prepend ".;" to the path so that current directory is searched too.
23776
23777 2005-06-14  Robert Dewar  <dewar@adacore.com>
23778
23779         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
23780         instead of raising CE (AI-241)
23781         Add warnings off to allow categorization violations for AI-362
23782
23783 2005-06-14  Robert Dewar  <dewar@adacore.com>
23784
23785         * ali-util.adb, gnatbind.adb: Remove references to
23786         Force_RM_Elaboration_Order.
23787
23788         * switch-b.adb: Remove recognition of -f switch
23789
23790 2005-06-14  Pascal Obry  <obry@adacore.com>
23791
23792         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
23793         implementation which is slightly more efficient.
23794
23795 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
23796             Javier Miranda  <miranda@adacore.com>
23797             Ed Schonberg  <schonberg@adacore.com>
23798             Hristian Kirtchev  <kirtchev@adacore.com>
23799
23800         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
23801         allocator's designated type is a class-wide type, and compiling for
23802         Ada 2005, emit a run-time check that the accessibility level of the
23803         type given in the allocator's expression is not deeper than the level
23804         of the allocator's access type.
23805
23806         (Tagged_Membership): Modified to gives support to abstract interface
23807         types.
23808
23809         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
23810         Access_Level.
23811         (Descendant_Tag): New predefined function
23812         (Is_Descendant_At_Same_Level): New predefined function
23813         (Get_Access_Level): New private function
23814         (Set_Access_Level): New private procedure
23815         (IW_Membership): New function. Given the tag of an object and the tag
23816         associated with an interface, evaluate if the object implements the
23817         interface.
23818         (Register_Interface_Tag): New procedure used to initialize the table of
23819         interfaces used by the IW_Membership function.
23820         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
23821         of the dispatch table.
23822         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
23823         table of interfaces of the parent.
23824         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
23825         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
23826         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
23827         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
23828         Ada 2005 semantics for the new predefined function.
23829
23830         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
23831         call to Descendant_Tag rather than Internal_Tag.
23832         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
23833         the accessibility level of the attribute's Item parameter is not deeper
23834         than the level of the attribute's prefix type. Tag_Error is raised if
23835         the check fails. The check is only emitted for Ada_05.
23836         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
23837         requested stream attribute, use it.
23838         (Expand_N_Attribute_Reference): If the designated type is an interface
23839         then rewrite the referenced object as a conversion to force the
23840         displacement of the pointer to the secondary dispatch table.
23841         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
23842         is a dereference of an object with a constrained partial view.
23843
23844         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
23845         type is a class-wide type, emit a run-time check that the accessibility
23846         level of the returned object is not deeper than the level of the
23847         function's master (only when compiling for Ada 2005).
23848
23849         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
23850         Action_Nb_Arg): Add entries for new Get_Access_Level and
23851         Set_Access_Level routines in these tables.
23852         (Make_DT): Generate a call to set the accessibility level of the
23853         tagged type in its TSD.
23854         (Make_DT): Code cleanup. The functionality of generating all the
23855         secondary dispatch tables has been moved to freeze_record_type.
23856         (Make_Abstract_Interface_DT): Minor code cleanup.
23857         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
23858         this subprogram implements a new algorithm that provides the
23859         same functionality and it is more clear in case of primitives
23860         associated with abstract interfaces.
23861         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
23862         clean up, the functionality of this subprogram is now provided
23863         by Set_All_DT_Position.
23864         (Write_DT): New subprogram: a debugging procedure designed to be called
23865         within gdb to display the dispatch tables associated with a tagged
23866         type.
23867         (Collect_All_Interfaces): New subprogram that collects the whole list
23868         of interfaces that are directly or indirectly implemented by a tagged
23869         type.
23870         (Default_Prim_Op_Position): New subprogram that returns the fixed
23871         position in the dispatch table of the default primitive operations.
23872         (Expand_Interface_Actuals): New subprogram to generate code that
23873         displaces all the actuals corresponding to class-wide interfaces to
23874         reference the interface tag of the actual object.
23875         (Expand_Interface_Conversion): New subprogram. Reference the base of
23876         the object to give access to the interface tag associated with the
23877         secondary dispatch table.
23878         (Expand_Interface_Thunk): New subprogram that generates the code of the
23879         thunk. This is required for compatibility with the C+ ABI.
23880         (Make_Abstract_Interface_DT): New subprogram that generate the
23881         declarations for the secondary dispatch tables associated with an
23882         abstract interface.
23883         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
23884         attribute for each primitive operation covering interface subprograms
23885         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
23886         These subprograms were upgraded to give support to abstract interfaces
23887
23888         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
23889         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
23890         RE_Set_Access_Level.
23891         (RE_Unit_Table): Add entries for new Ada.Tags operations.
23892         Add support to call the followig new run-time subprograms:
23893         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
23894
23895         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
23896         match its full declaration when both have an access definition with
23897         statically matching designated subtypes.
23898         (Analyze_Component_Declaration): Delete commented out code that was
23899         incorrectly setting the scope of an anonymous access component's type.
23900         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
23901         an access discriminant when the containing type is nonlimited.
23902         (Make_Incomplete_Type_Declaration): Create an incomplete type
23903         declaration for a record type that includes self-referential access
23904         components.
23905         (Check_Anonymous_Access_Types): Before full analysis of a record type
23906         declaration, create anonymous access types for each self-referential
23907         access component.
23908         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
23909         an access component in this context is a Local_Anonymous_Access, for
23910         proper accessibility checks.
23911         (Access_Definition): Set properly the scope of the anonymous access type
23912         created for a stand-alone access object.
23913         (Find_Type_Of_Object): An object declaration may be given with an access
23914         definition.
23915         (Complete_Subprograms_Derivation): New subprogram used to complete
23916         type derivation of private tagged types implementing interfaces.
23917         In this case some interface primitives may have been overriden
23918         with the partial-view and, instead of re-calculating them, they
23919         are included in the list of primitive operations of the full-view.
23920         (Build_Derived_Record_Type): Modified to give support to private
23921         types implemening interfaces.
23922         (Access_Definition): Reject ALL on anonymous access types.
23923         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
23924         type derivation to occur at a deeper accessibility level than the
23925         parent type.
23926         For the case of derivation within a generic body however, disallow the
23927         derivation if the derived type has an ancestor that is a formal type
23928         declared in the formal part of an enclosing generic.
23929         (Analyze_Object_Declaration): For protected objects, remove the check
23930         that they cannot contain interrupt handlers if not declared at library
23931         level.
23932         (Add_Interface_Tag_Components): New subprogram to add the tag components
23933         corresponding to all the abstract interface types implemented by a
23934         record type or a derived record type.
23935         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
23936         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
23937         Process_Full_View, Record_Type_Declaration): Modified to give
23938         support to abstract interface types
23939         (Collect_Interfaces): New subprogram that collects the list of
23940         interfaces that are not already implemented by the ancestors
23941         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
23942         when partial view has no discriminants and full view has defaults.
23943         (Constrain_Access): Reject a constraint on a general access type
23944         if the discriminants of the designated type have defaults.
23945         (Access_Subprogram_Declaration): Associate the Itype node with the inner
23946         full-type declaration or subprogram spec. This is required to handle
23947         nested anonymous declarations.
23948         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
23949         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
23950         Process_Full_View, Record_Type_Declaration): Modified to give
23951         support to abstract interface types
23952         (Derive_Subprograms): Addition of a new formal to indicate if
23953         we are in the case of an abstact-interface derivation
23954         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
23955         to the specification because it is requied to analyze all the
23956         identifiers found in a list of interfaces
23957
23958         * debug.adb: Complete documentation of flag "-gnatdZ"
23959
23960         * exp_ch3.adb: Implement config version of persistent_bss pragma
23961         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
23962         testing for TSS presence to properly enforce visibility rules.
23963         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
23964         Make_Abstract_Interfaces_DT to generate the secondary tables
23965         associated with abstract interfaces.
23966         (Build_Init_Procedure): Modified to initialize all the tags
23967         corresponding.
23968         (Component_Needs_Simple_Initialization): Similar to other tags,
23969         interface tags do not need initialization.
23970         (Freeze_Record_Type): Modified to give support to abstract interface
23971         types.
23972         (Expand_N_Object_Declaration): Do not generate an initialization for
23973         a scalar temporary marked as internal.
23974
23975         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
23976         in-out parameter that is a component in an initialization procedure,
23977         whose constraint might depend on discriminants, and that may be
23978         misaligned because of packing or representation clauses.
23979         (Is_Legal_Copy): New predicate to determine whether a possibly
23980         misaligned in-out actual can actually be passed by copy/return. This
23981         is an error in case the type is by_reference, and a warning if this is
23982         the consequence of a DEC import pragma on the subprogram.
23983         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
23984         interface types
23985         (Expand_Inlined_Call): Mark temporary generated for the return value as
23986         internal, so that no useless scalar normalization is generated for it.
23987         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
23988         null procedure can always be inlined.
23989         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
23990         procedure, generate an explicit empty body for it.
23991
23992         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
23993         Given a type implementing an interface, returns the corresponding
23994         access_disp_table value.
23995         (Find_Interface_Tag): New subprogram. Given a type implementing an
23996         interface, returns the record component containing the tag of the
23997         interface.
23998         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
23999         previous ones that return the corresponding tag and access_disp_table
24000         entities.
24001         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
24002         is a predefined primitive operation.
24003         (Expand_Subtype_From_Expr): If the expression is a selected component
24004         within an initialization procedure, compute its actual subtype, because
24005         the component may depend on the discriminants of the enclosing record.
24006
24007         * i-cpp.ads, i-cpp.adb:
24008         This package has been left available for compatibility with previous
24009         versions of the frontend. As part of the new layout this is now a
24010         dummy package that uses declarations available at a-tags.ads
24011
24012         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
24013         "constant access" and "aliased [constant] access" when not compiling
24014         with -gnat05.
24015         Suppress Ada 2005 keyword warning if -gnatwY used
24016         (P_Identifier_Declarations): Add support for object declarations with
24017         access definitions.
24018         (Private_Extension_Declaration): Complete the documentation
24019         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
24020         attribute in case of private extension declaration
24021         (P_Type_Declaration): Mark as "abstract" the type declarations
24022         corresponding with protected, synchronized and task interfaces
24023         (P_Declarative_Items): "not" and "overriding" are overriding indicators
24024         for a subprogram or instance declaration.
24025
24026         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
24027         instantiation that is a dispatching operation has controlling access
24028         parameters that are null excluding.
24029         Save and restore Ada_Version_Explicit, for implementation of AI-362
24030         (Validate_Derived_Type_Instance): Add check for abstract interface
24031         types.
24032         (Analyze_Formal_Package): Establish Instantiation source for the copy of
24033         the generic that is created to represent the formal package.
24034         (Analyze_Package_Instantiation): Instantiate body immediately if the
24035         package is a predefined unit that contains inlined subprograms, and
24036         we are compiling for a Configurable_Run_Time.
24037         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
24038         If the program has a null default, generate an empty body for it.
24039
24040         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
24041         error message condition, null procedures are correctly detected now.
24042         (New_Overloaded_Entity): Bypass trivial overriding indicator check
24043         for subprograms in the context of protected types. Instead, the
24044         indicator is examined in Sem_Ch9 while analysing the subprogram
24045         declaration.
24046         (Check_Overriding_Indicator): Check consistency of overriding indicator
24047         on subprogram stubs as well.
24048         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
24049         the library level.
24050         (Analize_Subprogram_Specification): When analyzing a subprogram in which
24051         the type of the first formal is a concurrent type, replace this type
24052         by the corresponding record type.
24053         (Analyze_Subprogram_Body): Undo the previous work.
24054         (Analyze_Procedure_Call): If the call has the form Object.Op, the
24055         analysis of the prefix ends up analyzing the call itself, after which
24056         we are done.
24057         (Has_Interface_Formals): New subprogram subsidiary to analyze
24058         subprogram_specification that returns true if some non
24059         class-wide interface subprogram is found
24060         (New_Overloaded_Entity): Modified to give support to abstract
24061         interface types
24062         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
24063         access to subprograms must be recursive.
24064         (Is_Unchecked_Conversion): Improve the test that recognizes
24065         instantiations of Unchecked_Conversion, and allows them in bodies that
24066         are to be inlined by the front-end. When the body comes from an
24067         instantiation, a reference to Unchecked_Conversion will be an
24068         Expanded_Name, even though the body has not been analyzed yet.
24069         Replace Is_Overriding and Not_Overriding in subprogram_indication with
24070         Must_Override and Must_Not_Override, to better express intent of AI.
24071         (Analyze_Subprogram_Body): If an overriding indicator is given, check
24072         that it is consistent with the overrinding status of the subprogram
24073         at this point.
24074         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
24075         always inlined.
24076         If the subprogram is a null procedure, indicate that it does not need
24077         a completion.
24078
24079         * sem_disp.adb (Check_Controlling_Type): Give support to entities
24080         available through limited-with clauses.
24081         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
24082         allowed as the last primitive of a tagged type if it has no previous
24083         spec.
24084         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
24085         to give support to abstract interface types
24086
24087         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
24088         in the case where the target type is an anonymous access type of an
24089         object or component (that is, when Is_Local_Anonymous_Access is true).
24090         Prevent the special checks for conversions of access discriminants in
24091         the case where the discriminant belongs to a nonlimited type, since
24092         such discriminants have their accessibility level defined in the same
24093         way as a normal component of an anonymous access type.
24094         (Resolve_Allocator): When an allocator's designated type is a class-wide
24095         type, check that the accessibility level of type given in the
24096         allocator's expression or subtype indication is not statically deeper
24097         than the level of the allocator's access type.
24098         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
24099         name in a discriminant constraint of a record component.
24100         (Resolve_Explicit_Dereference): Do not check whether the type is
24101         incomplete when the dereference is a use of an access discriminant in
24102         an initialization procedure.
24103         (Resolve_Type_Conversion): Handle conversions to abstract interface
24104         types.
24105         (Valid_Tagged_Conversion): The conversion of a tagged type to an
24106         abstract interface type is always valid.
24107         (Valid_Conversion): Modified to give support to abstract interface types
24108         (Resolve_Actuals): Enable full error reporting on view conversions
24109         between unrelated by_reference array types.
24110         The rule for view conversions of arrays with aliased components is
24111         weakened in Ada 2005.
24112         Call to obsolescent subprogram is now considered to be a violation of
24113         pragma Restrictions (No_Obsolescent_Features).
24114         (Check_Direct_Boolean_Operator): If the boolean operation has been
24115         constant-folded, there is nothing to check.
24116         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
24117         check on possible violation of restriction No_Direct_Boolean_Operators
24118         until after expansion of operands, to prevent spurious errors when
24119         operation is constant-folded.
24120
24121         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
24122         Has_Compatible_Type): Modified to give support to abstract interface
24123         types.
24124         (Interface_Present_In_Ancestor): New function to theck if some ancestor
24125         of a given type implements a given interface
24126
24127         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
24128         prefix is a parameterless function that returns an access_to_procedure.
24129         (Transform_Object_Operation): Handle properly function calls of the
24130         form Obj.Op (X), which prior to analysis appear as indexed components.
24131         (Analyze_One_Call): Complete the error notification to help new Ada
24132         2005 users.
24133         (Analyze_Allocator): For an allocator without an initial value, where
24134         the designated type has a constrained partial view, a discriminant
24135         constraint is illegal.
24136
24137 2005-06-14  Robert Dewar  <dewar@adacore.com>
24138
24139         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
24140         do with treatment of Set_Col when positioned at end of line character.
24141
24142 2005-06-14  Robert Dewar  <dewar@adacore.com>
24143
24144         * atree.adb: (Elist*): Protect against uninitialized field
24145
24146 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
24147
24148         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
24149         for an attribute reference that returns an access type.
24150         (Apply_Discriminant_Check): No need for check if (designated) type has
24151         constrained partial view.
24152
24153         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
24154         both bound checks, rather than a conjunction.
24155         (Insert_Valid_Check): If the expression is an actual that is an indexed
24156         component of a bit-packed array, force expansion of the packed element
24157         reference, because it is specifically inhibited elsewhere.
24158
24159 2005-06-14  Vincent Celier  <celier@adacore.com>
24160
24161         * clean.adb (Clean_Project): Correctly delete executable specified as
24162         absolute path names.
24163
24164         * make.adb (Gnatmake): Allow relative executable path names with
24165         directory information even when project files are used.
24166         (Change_To_Object_Directory): Fail gracefully when unable to change
24167         current working directory to object directory of a project.
24168         (Gnatmake): Remove exception handler that could no longer be exercized
24169         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
24170         may be deallocated by Normalize_Arguments.
24171         (Collect_Arguments): Eliminate empty arguments
24172
24173         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
24174         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
24175         (Check_Project): Return False when Project is No_Project. Return True
24176         when All_Projects is True.
24177         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
24178         All_Projects to True.
24179         Minor reformatting
24180
24181 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
24182             Javier Miranda  <miranda@adacore.com>
24183             Thomas Quinot  <quinot@adacore.com>
24184             Robert Dewar  <dewar@adacore.com>
24185             Hristian Kirtchev  <kirtchev@adacore.com>
24186             Gary Dismukes  <dismukes@adacore.com>
24187
24188         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
24189         anonymous access types, to indicate that the accessibility level of
24190         the type is determined by that of the enclosing declaration.
24191         (Has_Persistent_BSS): New flag
24192         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
24193         of this attribute with functions.
24194         (Is_Primitive_Wrapper): Remove the barrier.
24195         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
24196         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
24197         New subprograms.
24198         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
24199         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
24200         New subprograms.
24201         (Is_Pure_Unit_Access_Type): New flag
24202         (Abstract_Interfaces): Complete the assertion to cover all usages.
24203         (Set_Is_Interface): Complete the assertion to cover all usages.
24204         (Is_Primitive_Wrapper): New attribute.
24205         (Is_Obsolescent): Now applies to all entities (though it is only set
24206         for subprograms currently)
24207         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
24208         which solves various problems concerning access subtypes.
24209         (Has_Persistent_BSS): New flag
24210         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
24211         Remove these subprograms because this attribute is currently
24212         not used.
24213         New entity flags:
24214         Has_Specified_Stream_Input (Flag190)
24215         Has_Specified_Stream_Output (Flag191)
24216         Has_Specified_Stream_Read (Flag192)
24217         Has_Specified_Stream_Write (Flag193)
24218         Present in all type and subtype entities. Set for a given view if the
24219         corresponding stream-oriented attribute has been defined by an
24220         attribute definition clause. When such a clause occurs, a TSS is set
24221         on the underlying full view; the flags are used to track visibility of
24222         the attribute definition clause for partial or incomplete views.
24223         (Is_Pure_Unit_Access_Type): New flag
24224         Clarify use of Is_Internal.
24225         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
24226         internally generated to wrap the invocation of tasks and protected
24227         types that implement interfaces.
24228         (Implementation_Base_Type): Documentation correction
24229         (Is_Obsolescent): Now applies to all entities (though it is only set
24230         for subprograms currently)
24231         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
24232         which solves various problems concerning access subtypes.
24233
24234         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
24235         for examined parameters. Identify unequal parameter list lengths as
24236         non-conformant parameters.
24237         (Overriding_Possible): Do not check for "All" qualifier in declaration
24238         of controlling access parameter, following prescription of AI-404.
24239         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
24240         that build the procedure body that wraps an entry invocation
24241         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
24242         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
24243         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
24244         give support to abstract interface types
24245
24246         * freeze.adb (Freeze_Entity): Issue error message if
24247         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
24248         type has no storage pool (Ada 2005) AI-366.
24249         Also modified to give support to abstract interface types
24250         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
24251         Inline_Always pragma.
24252
24253         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
24254         now begin an entry declaration.
24255         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
24256         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
24257         a subprogram declaration preceded by an overriding indicator.
24258         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
24259         declarations or subprogram declarations preceded by reserved words
24260         "not" or "overriding".
24261         (P_Entry_Declaration): Update comment. Parse and check overriding
24262         indicator, set semantic flags of entry declarations.
24263         (P_Task): New error message in case of private applied
24264         to a task type declaration.
24265         (P_Protected): New error message in case of private applied
24266         to a task type declaration.
24267
24268         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
24269         in which the full view of a type implementing an interface is a
24270         concurrent type.
24271         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
24272         Declare_Inherited_Private_Subprograms): If an explicit operation
24273         overrides an operation that is inherited in the private part, mark the
24274         explicit one as overriding, to enable overriding indicator checks.
24275         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
24276         full view to partial view, to simplify handling in back-end.
24277
24278         * sprint.adb: Print interface lists where needed: derived types,
24279         protected types, task types.
24280         output "is null" for null procedures. Part of implementation of
24281
24282         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
24283         relaxation of rules for access types in pure, shared passive partitions.
24284
24285         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
24286         first read discriminants into temporary objects, performing checks on
24287         the read values, then possibly performing discriminant checks on the
24288         actual (if it is constrained), and only finally reading the components
24289         into a constrained temporary object.
24290         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
24291         case of reading discriminants of a mutable record type to recognize
24292         the new form of the code generated by
24293         Build_Mutable_Record_Read_Procedure.
24294
24295         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
24296         of a simple call to Make_TSS_Name.
24297         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
24298         buffer, in order for Is_TSS to work correctly on local TSS names.
24299
24300         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
24301         Is_Local_Anonymous_Access to check legaliy of attributes in the
24302         context of  access components and stand-alone access objects.
24303         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
24304         treated as available for a limited private type if there is an
24305         attribute_definition_clause that applies to its full view, but not in
24306         other cases where the attribute is available for the full view
24307         (specifically, the sole fact that the full view is non-limited does not
24308         make the attribute available for the partial view).
24309         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
24310         non-overloaded intrinsic subprogram.
24311         (Check_Stream_Attribute): Reject an attribute reference for an
24312         unavailable stream attribute even if the prefix is not a limited type
24313         (case of a 'Input attribute reference for an abstract, non-classwide
24314         type)
24315         (Stream_Attribute_Available): New function to determine whether a stream
24316         attribute is available at a place.
24317         (Check_Attribute): Use Stream_Attribute_Available instead of just
24318         testing for TSS presence on the implementation base type.
24319         (Analyze_Attribute): Modified to give support to task interfaces.
24320         (Analyze_Access_Attribute): Add error check for use of an Access (or
24321         Unrestricted_Access) attribute with a subprogram marked as
24322         Inline_Always.
24323         (Analyze_Attribute, case Attribute_Address): Add error check for use of
24324         an Address attribute with a subprogram marked as Inline_Always.
24325         Update Eval_Attribute to handle new value of Width from AI-395
24326
24327         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
24328         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
24329         Factor common code across the stream-oriented attribute circcuits into
24330         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
24331         processing is functionally identical to the previous duplicated one,
24332         except that an expression that denotes an abstract subprogram will now
24333         be rejected, as mandated by AI-195 item 5.
24334
24335         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
24336         Is_Local_Anonymous_Access to apply accessibility checks to access
24337         components and stand-alone access objects.
24338         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
24339         elsewhere.
24340         (Is_Potentially_Persistent_Type): New function
24341         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
24342         a heap-object whose type has a constrained partial view, the object is
24343         unconstrained and the component may depend on a discriminant, making its
24344         renaming illegal.
24345
24346         * sinfo.ads, sinfo.adb
24347         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
24348         (Must_Override): Flag applicable to N_Entry_Declaration.
24349         Indicate that interface_list can appear in single task and single
24350         protected declarations.
24351         Replace Is_Overriding and Not_Overriding with Must_Override and
24352         Must_Not_Override, to better express intent of AI.
24353         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
24354         of an overriding indicator in a subprogram or instance.
24355         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
24356         Add the overriding indicator [[not] overriding] construct to the
24357         following grammar productions:
24358          ENTRY_DECLARATION
24359          GENERIC_INSTANTIATION
24360          SUBPROGRAM_SPECIFICATION
24361
24362         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
24363         can start with an overriding indicator.
24364
24365         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
24366         flags accordingly on subrogram specifications or instances.
24367
24368         * sem_ch8.adb:
24369         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
24370         overriding_indicator, if present, is consistent with status of spec.
24371         Improve error message for null-excluding checks on controlling access
24372         parameters.
24373         (Check_In_Previous_With_Clause): Protect the frontend against
24374         previously reported critical errors in the context clauses.
24375         Save and restore Ada_Version_Explicit, for implementation of AI-362
24376         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
24377         operation verify that controlling formals of the renamed entity that
24378         are access parameters are explicitly non-null.
24379         (Find_Expanded_Name): Improve error message when prefix is an illegal
24380         reference to a private child unit.
24381
24382         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
24383         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
24384         Rewrite to correspond to new wide character names in AI-395
24385
24386         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
24387         default procedures.
24388
24389 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
24390             Robert Dewar  <dewar@adacore.com>
24391
24392         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
24393         code, not on the bodies of predefined operations, to cut down on
24394         spurious noise.
24395
24396 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
24397
24398         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
24399         be expanded in place. The size computation does not require a
24400         subtraction, which would raise an exception on a compiler built with
24401         assertions when the upper bound is Integer'first.
24402         (Flatten): For an array of composite components, take into account the
24403         size of the components to determine whether it is safe to expand the
24404         array into a purely positional representation.
24405
24406 2005-06-14  Thomas Quinot  <quinot@adacore.com>
24407
24408         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
24409         denoting a formal parameter into account.
24410
24411 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
24412
24413         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
24414         the entry_call alternative of a conditional entry call, wrap the
24415         conditional entry call itself.
24416
24417 2005-06-14  Nicolas Setton  <setton@adacore.com>
24418             Ed Schonberg  <schonberg@adacore.com>
24419
24420         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
24421         the "simple_choice" member in a variant record, in accordance with the
24422         description in the package spec: the information output for a constant
24423         should be "S number", not "SS number".
24424         (Get_Encoded_Name): Return at once if not generating code. Avoids name
24425         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
24426
24427 2005-06-14  Thomas Quinot  <quinot@adacore.com>
24428
24429         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
24430         RACW without any primitives, do not generate the if statement for
24431         dispatching by name in the PolyORB/DSA case, as it would be malformed
24432         (it would have an Elsif_Parts list that is not No_List, but with a
24433         length of 0).
24434
24435 2005-06-14  Robert Dewar  <dewar@adacore.com>
24436
24437         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
24438
24439 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
24440
24441         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
24442         can determine whether pragma Suppress_Exception_Locations is in effect.
24443
24444         * utils2.c (build_call_raise): Do not pass the file name to the
24445         exception handler if pragma Suppress_Exception_Locations is in effect.
24446         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
24447
24448 2005-06-14  Emmanuel Briot  <briot@adacore.com>
24449
24450         * g-debpoo.adb (Deallocate, Dereference): Improve output.
24451
24452 2005-06-14  Nicolas Roche  <roche@adacore.com>
24453
24454         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
24455         to ""
24456         (Next_Level): Fix minor bug in handling of ../dir case
24457         (Read): Add dir separator to Directory name so that "" is understood as
24458          "/"
24459
24460 2005-06-14  Pascal Obry  <obry@adacore.com>
24461
24462         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
24463         releasing the items.
24464
24465 2005-06-14  Vincent Celier  <celier@adacore.com>
24466             Cyrille Comar  <comar@adacore.com>
24467
24468         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
24469         with output file descriptor and with output file name.
24470         (Dup, Dup2): Now global procedures as they are used by two subprograms
24471         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
24472
24473 2005-06-14  Thomas Quinot  <quinot@adacore.com>
24474
24475         PR ada/6717
24476         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
24477         broadcast address.
24478         (Create_Selector): Bind listening socket used to create the signalling
24479         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
24480         Set listen backlog to 1 to ensure that we detect socket theft by a
24481         failure of our own connect(2) call.
24482         (Check_Selector): Improve documentation of the selector mechanism.
24483         (Broadcast_Inet_Addr): New constant.
24484
24485 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
24486
24487         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
24488         type which turns out to be an incomplete and incorrect fix.
24489         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
24490         of the type is declared in a record (for determination of insertion
24491         type).
24492         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
24493         a private type and ensure that the primary entity is used for the type
24494         of the newly created function's V formal by taking the Etype of the
24495         view.
24496
24497 2005-06-14  Javier Miranda  <miranda@adacore.com>
24498             Jose Ruiz  <ruiz@adacore.com>
24499             Robert Dewar  <dewar@adacore.com>
24500             Ed Schonberg  <schonberg@adacore.com>
24501
24502         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
24503         that indicates if we are parsing a compilation unit found in a
24504         limited-with clause.
24505         It is use to avoid the circularity check.
24506
24507         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
24508         we are parsing a compilation unit found in a limited-with clause. This
24509         is use to avoid the circularity check.
24510
24511         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
24512         unit as a consequence of parsing a limited-with clause. This is used
24513         to avoid the circularity check.
24514
24515         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
24516         (Analyze_Context): Limited-with clauses are now allowed
24517         in more compilation units.
24518         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
24519         againts previously reported critical errors in context clauses
24520         (Install_Limited_Withed_Unit): Code cleanup plus static detection
24521         of two further errors: renamed subprograms and renamed packages
24522         are not allowed in limited with clauses.
24523         (Install_Siblings): Do not install private_with_clauses on the package
24524         declaration for a non-private child unit.
24525         (Re_Install_Parents): When a parent of the subunit is reinstalled,
24526         reset visibility of child units properly.
24527         (Install_Withed_Unit): When a child unit appears in a with_clause of its
24528         parent, it is immediately visible.
24529
24530 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
24531             Emmanuel Briot  <briot@adacore.com>
24532
24533         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
24534         declared within an inlined body as referenced, to prevent spurious
24535         warnings.
24536         (Output_One_Ref): If an entity renames an array component, indicate in
24537         the ALI file that this aliases (renames) the array. Capture as well
24538         function renamings that rename predefined operations.
24539         Add information about generic parent for package and subprogram
24540         instances.
24541         (Get_Type_Reference): For a subtype that is the renaming of an actual in
24542         an instantiation, use the first_subtype to ensure that we don't generate
24543         cross-reference information for internal types.
24544         For objects and parameters of a generic private type, retain the '*'
24545         indicator to distinguish such an entity from its type.
24546
24547         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
24548         to store information about instantiated entities.
24549
24550         * ali.adb (Scan_ALI): Add support for parsing the reference to the
24551         generic parent
24552
24553         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
24554         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
24555         information.
24556
24557 2005-06-10  Doug Rupp  <rupp@adacore.com>
24558             Arnaud Charlet  <charlet@adacore.com>
24559             Olivier Hainque  <hainque@adacore.com>
24560             Jose Ruiz  <ruiz@adacore.com>
24561
24562         * Make-lang.in: Add initialize.o when needed.
24563         Remove obsolete references to RT_FLAGS.
24564         Add missing dependencies for sdefault.o
24565
24566         * initialize.c: New file.
24567
24568         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
24569         [VMS] cond_signal_table: Fix problem in declaration.
24570         [VMS] __gnat_error_handler: rewrite.
24571         Move all __gnat_initialize() routines to initialize.c
24572         Specialize the former "hpux" section to "hppa hpux", as this is what the
24573         section really is here for and we now have other hpux ports that need
24574         different contents.
24575         (__gnat_adjust_context_for_raise) i386-linux: First version of this
24576         function for this target. Adjust PC by one in the machine context. This
24577         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
24578         it is more reliable to do that in the signal handler itself.
24579         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
24580         flags, so that the handler is passed the context structure to adjust
24581         prior to the raise.
24582         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
24583         SA_SIGINFO sigaction should look like. Call
24584         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
24585         Machine_State_Operations stuff.
24586         Add conditional code so that the x86_64 is also supported.
24587
24588 2005-06-14  Pascal Obry  <obry@adacore.com>
24589
24590         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
24591         the library name.
24592
24593 2005-06-14  Robert Dewar  <dewar@adacore.com>
24594
24595         * opt.ads, opt.adb: New flags for persistent_bss mode
24596         Add Ada_Version_Explicit, for implementation of AI-362
24597         Add Assertions_Enabled_Config and associated handling
24598         Needed since setting can be changed with Assertion_Policy pragma
24599         Add new flag Warn_On_Ada_2005_Compatibility
24600
24601         * switch-c.adb: Recognize -gnatwy/Y
24602         Set Ada_Version_Explicit, for implementation of AI-362
24603         The -gnatg switch now includes -gnatyu
24604
24605         * usage.adb: Add -gnatwy/Y
24606         Remove wrong asterisk on -gnatwX line
24607         Add line for -gnatyu switch
24608
24609 2005-06-14  Vincent Celier  <celier@adacore.com>
24610
24611         * osint.adb (Add_Default_Search_Dirs): Put source and object
24612         directories of project files before directories coming from
24613         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
24614
24615 2005-06-14  Robert Dewar  <dewar@adacore.com>
24616
24617         PR ada/15613
24618         * par-ch2.adb (Scan_Pragma_Argument): New procedure
24619         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
24620
24621 2005-06-14  Vincent Celier  <celier@adacore.com>
24622
24623         * prep.adb (Preprocess): Ignore error when scanning the first token of
24624         a line.
24625
24626 2005-06-14  Vincent Celier  <celier@adacore.com>
24627
24628         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
24629         (Check_Stand_Alone_Library): If the specified reference symbol file does
24630         not exist, only issue a warning when the symbol policy is not
24631         Controlled. And, when symbol policy is Compliant, set the symbol
24632         policy to Autonomous.
24633
24634 2005-06-14  Vincent Celier  <celier@adacore.com>
24635
24636         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
24637         when the project file in a with clause is not the last one, that is the
24638         project file name is followed by a comma.
24639         * prj-pp.adb: (First_With_In_List): New Boolean global variable
24640         (Print): Issue list of project files separated by commas in with clauses
24641         according to the values returned by Is_Not_Last_In_List.
24642         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
24643         (Set_Is_Not_Last_In_List): New procedure
24644
24645 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
24646
24647         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
24648
24649 2005-06-14  Robert Dewar  <dewar@adacore.com>
24650
24651         * scng.adb: Add call to new Check_EOF routine
24652         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
24653         Add some comments regarding wide character handling
24654
24655         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
24656
24657         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
24658
24659         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
24660         characters are now considered graphic characters and hence yield false
24661         in this call.
24662
24663         * nmake.adt: Modify header so that xnmake does not generate output
24664         files with multiple blank lines.
24665
24666         * treeprs.adt: Remove a blank line so that output from xtreeprs does
24667         not have an extra blank line
24668
24669 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
24670
24671         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
24672         expression when the component type is an anonymous access type to
24673         ensure that appropriate accessibility checks are done.
24674
24675         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
24676         expression of an assignment when the target object is of an anonymous
24677         access type. This ensures that required accessibility checks are done.
24678         (One_Bound): Move the check for type Universal_Integer to
24679         Process_Bounds.
24680         (Process_Bounds): Check whether the type of the preanalyzed range is
24681         Universal_Integer, and in that case set Typ to Integer_Type prior
24682         to setting the type of the original range and the calls to One_Bound.
24683
24684 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
24685
24686         * sem_case.adb (Expand_Others_Choice): Improve warning.
24687
24688 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
24689
24690         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
24691         constraint of full view if present, when other type is discriminated.
24692         (Eval_Relational_Op): Recognize tests of pointer values against Null,
24693         when the pointer is known to be non-null, and emit appropriate warning.
24694
24695 2005-06-14  Robert Dewar  <dewar@adacore.com>
24696             Ed Schonberg  <schonberg@adacore.com>
24697
24698         PR ada/10671
24699         * sem_prag.adb: Implement pragma Persistent_BSS
24700         Remove obsolete pragma Persistent_Data, Persistent_Object
24701         Set Ada_Version_Explicit, for implementation of AI-362
24702         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
24703         Add processing for pragma Pure_05 and Preelaborate_05
24704         Add processing for Assertion_Policy pragma
24705         Add pragma identifiers for Assert
24706         (Analyze_Pragma, case Assert): Check number of arguments
24707         (Process_Inline): Additional guard against an illegal program, where the
24708         argument of the pragma is undefined, and warnings on redundant
24709         constructs are enabled.
24710         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
24711         Ada_05 to this pragma, specifying that the pragma is only active in
24712         Ada_05 mode.
24713         (Check_Arg_Order): New procedure
24714         Add appropriate calls to this procedure throughout
24715         Also throughout, check entity name before doing any other checks
24716
24717         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
24718         Remove obsolete pragma Persistent_Data, Persistent_Object
24719         Add entries for pragma Pure_05 and Preelaborate_05
24720         Add entries for Assertion_Policy pragma and associated names
24721         Add some names for pragma argument processing
24722
24723         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
24724
24725 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
24726
24727         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
24728         appears within a negation (either from source or as a rewriting of
24729         inequality) adjust text of warning accordingly.
24730
24731 2005-06-14  Thomas Quinot  <quinot@adacore.com>
24732
24733         * s-strxdr.adb: Follow AI95-00132
24734
24735 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
24736
24737         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
24738
24739 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
24740             Jose Ruiz  <ruiz@adacore.com>
24741
24742         * s-tposen.adb, s-tpobop.adb
24743         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
24744         the exception id.
24745         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
24746         there is no violation of the Max_Entry_Queue_Length restriction (if it
24747         has been set); Program_Error is raised otherwise.
24748         (Requeue_Call): Before requeuing the task on the target entry queue we
24749         check that there is no violation of the Max_Entry_Queue_Length
24750         restriction (if it has been set); Program_Error is raised otherwise.
24751
24752 2005-06-14  Robert Dewar  <dewar@adacore.com>
24753
24754         * styleg.adb: Fix several remaining problems in -gnatyu switch
24755         Blank line count not reset at start
24756         Scanning outside source buffer in some cases
24757         Confusing message for blanks at end of file
24758         Non-empty blank lines not recognized
24759
24760         * nmake.adt: Modify header so that xnmake does not generate output
24761         files with multiple blank lines.
24762
24763         * treeprs.adt: Remove a blank line so that output from xtreeprs does
24764         not have an extra blank line
24765
24766 2005-06-14  Sergey Rybin  <rybin@adacore.com>
24767
24768         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
24769
24770 2005-06-14  Doug Rupp  <rupp@adacore.com>
24771             Vincent Celier  <celier@adacore.com>
24772
24773         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
24774         Update copyright.
24775
24776         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
24777         Remove "Library" command.
24778         Change keyword for style check -gnatyd from NOCRLF to
24779         DOS_LINE_ENDINGS.
24780         Remove useless second style check keyword NONE
24781         Remove help documentation for inexistent style check keyword
24782         RM_COLUMN_LAYOUT.
24783         Add help documentation for style check keywords DOS_LINE_ENDINGS,
24784         UNNECESSARY_BLANK_LINES and XTRA_PARENS
24785         Add UNNECESSARY_BLANK_LINES for -gnatyu
24786         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
24787
24788         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
24789
24790 2005-06-14  Vincent Celier  <celier@adacore.com>
24791
24792         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
24793         gprmake was invoked with -d.
24794         (Compile_Sources): If -d was used, output the "completed ..." message
24795         for each compilation.
24796         (Scan_Arg): Recognize new switch -d
24797         When -c and at least one main is specified, set
24798         Unique_Compile to True to guarantee that no other sources will be
24799         compiled.
24800
24801 2005-06-14  Matthew Heaney  <heaney@adacore.com>
24802
24803         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
24804         * a-swuwha.ads, a-swuwha.adb: New files
24805
24806         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
24807         * a-szuzha.ads, a-szuzha.adb: New files.
24808
24809         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
24810         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
24811         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
24812         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
24813         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
24814         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
24815         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
24816         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
24817         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
24818         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
24819         Ada 2005 RM.
24820
24821 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
24822             Olivier Hainque  <hainque@adacore.com>
24823             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24824             Pascal Obry  <obry@adacore.com>
24825
24826         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
24827
24828         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
24829         making a temporary around a procedure call because of non-addressable
24830         actual parameter.
24831         (process_freeze_entity): If entity is a private type, capture size
24832         information that may have been computed for the full view.
24833         (tree_transform, case N_Allocator): If have initializing expression,
24834         check type for Has_Constrained_Partial_View and pass that to
24835         build_allocator.
24836         (tree_transform, case N_Return_Statement): Pass extra arg to
24837         build_allocator.
24838
24839         * decl.c (annotate_value): Remove early return if -gnatR is not
24840         specified.
24841         (gnat_to_gnu_field): Don't make a packable type for a component clause
24842         if the position is byte aligned, the field is aliased, and the clause
24843         size isn't a multiple of the packable alignment. It serves no useful
24844         purpose packing-wise and would be rejected later on.
24845         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
24846
24847         PR ada/20515
24848         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
24849         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
24850         instead.
24851         (create_concat_name): Idem.
24852
24853 2005-06-10  Robert Dewar  <dewar@adacore.com>
24854             Eric Botcazou  <ebotcazou@adacore.com>
24855             Ben Brosgol  <brosgol@adacore.com>
24856             Cyrille Comar  <comar@adacore.com>
24857             Sergey Rybin  <rybin@adacore.com>
24858             Pascal Obry  <obry@adacore.com>
24859
24860         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
24861         Document second argument (Ada_05) of pragma Obsolescent
24862         Add note that call to subprogram marked with pragma Obsolescent
24863         is now considered to be a violation of program Restrictions
24864         (No_Obsolescent_Features).
24865         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
24866         that only machine-dependent attributes are supported.
24867
24868         * gnat_ugn.texi:
24869         Commented out menu lines and empty section for gnatclean examples
24870         Document -gnatwy/Y
24871         Fix some over long lines
24872         Clarify and enhance documentation of ADA_PROJECT_PATH.
24873         Rework section 2.11.2(3) about linking with a non-GNU compiler.
24874         Mention new switch -fcallgraph-info.
24875         Mention new switch -fstack-usage.
24876         For gnatpp, replace '-notab' with '-N' and add this option to Index
24877         Corrected VMS example.
24878         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
24879         Minor reformatting
24880         Add documentation for -gnatyu switch (unnecessary blank lines)
24881         Document new switch -U for GNAT PRETTY and GNAT METRIC
24882         Add note about Stdcall being handled as C convention on non Windows OS.
24883         Remove some junk typo in description of gnatbind -S switch
24884         Remove reference to Extensions_Allowed pragma
24885         Document the new order of the directories to be searched (source and
24886         object directories of project files before directories in ADA_*_PATH
24887         environment variables.
24888
24889         * g-trasym.ads: Document that IRIX is supported
24890
24891 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
24892
24893         * Makefile.in: Add initialize.o when needed.
24894         Adapt to new VMS package body Symbols and subunits
24895         No specialized version of a-sytaco is needed for VxWorks.
24896
24897         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
24898         * a-zchara.ads, a-widcha.ads: New files.
24899
24900         * system-hpux-ia64.ads: New file.
24901
24902         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
24903         is imported from the VxWorks kernel.
24904
24905 2005-06-14  Robert Dewar  <dewar@adacore.com>
24906
24907         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
24908         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
24909         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
24910         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
24911         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
24912         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
24913         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
24914         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
24915         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
24916         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
24917         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
24918         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
24919
24920 2005-06-14  Thomas Quinot  <quinot@adacore.com>
24921
24922         * xeinfo.adb: Fix typo in comment
24923
24924 2005-06-14  Javier Miranda  <miranda@adacore.com>
24925
24926         * repinfo.ads: Fix typo in comment
24927
24928 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
24929
24930         * s-finimp.adb (Parent_Tag): Delete this imported function (function
24931         Parent_Tag is now in the visible part of Ada.Tags).
24932         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
24933         using imported function.
24934
24935 2005-06-14  Bernard Banner  <banner@adacore.com>
24936
24937         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
24938         also apply for handling support for VxSim 653.
24939
24940 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
24941
24942         * xsnames.adb: Add automatic generation of snames.h.
24943
24944 2005-06-14  Thomas Quinot  <quinot@adacore.com>
24945
24946         * gen-soccon.c: Add IP_MULTICAST_IF constant
24947         Minor reformatting and adjustments to prevent warnings.
24948
24949 2005-06-14  Pascal Obry  <obry@adacore.com>
24950
24951         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
24952
24953 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
24954
24955         * trans.c (gnat_gimplify_expr): Call
24956         recompute_tree_invarant_for_addr_expr when we change
24957         the operand of the ADDR_EXPR.
24958
24959 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24960
24961         * misc.c: Don't include errors.h.
24962
24963 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24964
24965         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
24966
24967 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
24968
24969         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
24970         comment typos.
24971         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
24972
24973 2005-05-16  Nathanael Nerode  <neroden@gcc.gnu.org>
24974
24975         PR ada/20270
24976         * Makefile.in: Make TGT_LIB behave correctly.
24977
24978 2005-04-23  DJ Delorie  <dj@redhat.com>
24979
24980         * misc.c: Adjust warning() callers.
24981
24982 2005-04-16  Laurent Guerby  <laurent@guerby.net>
24983
24984         PR ada/18847
24985         * a-nudira.adb (Value): Check for valid string.
24986         * a-nuflra.adb (Value): Likewise.
24987
24988 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
24989
24990         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
24991
24992 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
24993
24994         * adaint.c, init.c, tracebak.c: Fix comment typos.
24995         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
24996
24997 2005-04-07  Laurent Guerby  <laurent@guerby.net>
24998             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24999
25000         * Makefile.in: Add make ifeq define for hppa linux tasking support.
25001         * system-hpux.ads: Define Signed_Zeros to be True.
25002         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
25003
25004 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
25005
25006         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
25007         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
25008         typos.
25009
25010 2005-03-30  Tom Tromey  <tromey@redhat.com>
25011
25012         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
25013
25014 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
25015
25016         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
25017
25018 2005-03-29  Robert Dewar  <dewar@adacore.com>
25019
25020         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
25021         fixed-point expression has value that is not a multiple of the Small
25022         value.
25023
25024         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
25025
25026         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
25027         nanoseconds.
25028
25029         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
25030
25031 2005-03-29  Vincent Celier  <celier@adacore.com>
25032
25033         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
25034         (Build_Dynamic_Library.Version_String): Return the empty string when
25035         Lib_Version is empty or when the symbol policy is not Autonomous.
25036
25037         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
25038         a symbol is not in the reference symbol file, increase the Major ID
25039         and set the Minor ID to 0.
25040         Use gsmatch=lequal instead of gsmatch=equal
25041
25042 2005-03-29  Doug Rupp  <rupp@adacore.com>
25043
25044         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
25045         name and translate.
25046
25047 2005-03-29  Javier Miranda  <miranda@adacore.com>
25048
25049         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
25050         (Inherit_DT): The first formal has been redefined as a Tag.
25051         This allows us the removal of the subprogram Get_TSD.
25052         (TSD): Replace the call to Get_TSD by the actual code.
25053
25054         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
25055         (Make_DT): Upgrade the call to Inherit_TSD according to the
25056         new interface: the first formal is now a Tag.
25057
25058         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
25059         redefined as a Tag.
25060         This change allows us to remove the subprogram Get_TSD.
25061         (CPP_Get_TSD): Subprogram removed.
25062         (TSD): Replace the call to CPP_Get_TSD by the actual code.
25063
25064         * rtsfind.ads: Remove support to call the run-time
25065         subprogram Get_TSD
25066
25067 2005-03-29  Robert Dewar  <dewar@adacore.com>
25068
25069         * errutil.adb, errout.adb:
25070         Minor comment updates on Line_Terminator references
25071
25072         * par-ch10.adb: Add ??? comment about line terminator
25073
25074         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
25075         (check dos line terminator).
25076         (Check_Line_Max_Length): New procedure, split off from the existing
25077         Check_Line_Terminator routine. Separating this out allows -gnatyf to
25078         be properly recognized.
25079
25080         * styleg.adb: Add ??? comment for line terminator reference
25081
25082         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
25083         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
25084
25085         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
25086         (check dos line terminator).
25087         (Check_Line_Max_Length): New procedure, split off from the existing
25088         Check_Line_Terminator routine. Separating this out allows -gnatyf to
25089         be properly recognized.
25090
25091         * stylesw.ads, stylesw.adb:
25092         Add handling for new -gnatyd switch (check dos line terminator)
25093
25094         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
25095         Recognize -gnatwb/-gnatwB switches
25096         Include Warn_On_Bad_Fixed_Value for -gnatg
25097
25098         * usage.adb:
25099         Add line for new -gnatyd switch (check dos line terminator)
25100
25101         * usage.adb: Add lines for -gnatwb/-gnatwB
25102
25103         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
25104
25105         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
25106
25107         * gnat_ugn.texi: Fix overlong lines
25108         Document new -gnatyd switch
25109         Document new -gnatwb/-gnatwB switches
25110
25111 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
25112
25113         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
25114         order to retrieve the component list of the type, before examining
25115         individual components.
25116
25117         * sem_type.adb (Covers): Types are compatible if one is the base type
25118         of the other, even though their base types might differ when private
25119         views are involved.
25120
25121 2005-03-29  Thomas Quinot  <quinot@adacore.com>
25122
25123         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
25124         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
25125         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
25126         analyzed if expansion is disabled (which could otherwise cause spurious
25127         error messages if expansion has been disabled due to previous
25128         (unrelated) errors).
25129
25130         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
25131         is disabled, the entity denoted by the argument is the access type
25132         itself, not an underlying record type, so there is no need to go back
25133         to the Corresponding_Remote_Type.
25134
25135 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
25136             Robert Dewar  <dewar@adacore.com>
25137
25138         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
25139         expand a call to an instance of
25140         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
25141         Constructor actual of the instance. A class-wide membership
25142         check is also generated, to ensure that the tag passed to the instance
25143         denotes a type in the class.
25144         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
25145         of Name_Generic_Dispatching_Constructor.
25146
25147         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
25148         05 unit for AI-260-02).
25149
25150         * a-tgdico.ads: New file.
25151
25152         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
25153         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
25154
25155         * snames.ads, snames.adb (Preset_Names): Add entry for
25156         Generic_Dispatching_Constructor.
25157
25158         PR ada/20300
25159         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
25160         character type cases.
25161         (Analyze_Subprogram_Renaming): Add special handling for
25162         the case of renaming of stream attributes when the renaming denotes a
25163         generic formal subprogram association for an abstract formal subprogram.
25164         Check that the attribute is a primitive stream attribute (and not
25165         a class-wide stream attribute) and then rewrite the attribute name
25166         as the name of the appropriate compiler-generated stream primitive.
25167
25168 2005-03-29  Robert Dewar  <dewar@adacore.com>
25169
25170         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
25171         recursive calls.
25172         (Is_Possibly_Unaligned_Object): Correct typo that
25173         resulted in inaccurate result for unaligned scalars within records.
25174
25175 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
25176
25177         * freeze.adb (Freeze_Record_Type): If the type of the component is an
25178         itype whose parent is controlled and not yet frozen, do not create a
25179         freeze node for the itype if expansion is disabled.
25180
25181 2005-03-29  Vincent Celier  <celier@adacore.com>
25182
25183         * make.adb (Gnatmake): Don't fail if the main project file is declared
25184         as having no Ada sources. Do not display message "no sources to
25185         compile" in quiet output.
25186
25187 2005-03-29  Doug Rupp  <rupp@adacore.com>
25188
25189         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
25190         extra tools.
25191
25192 2005-03-29  Robert Dewar  <dewar@adacore.com>
25193
25194         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
25195         child.
25196
25197 2005-03-29  Robert Dewar  <dewar@adacore.com>
25198
25199         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
25200         missing TYPE Improve the error message generated when compiling a
25201         limited interface in Ada83 or Ada95 mode.
25202
25203 2005-03-29  Robert Dewar  <dewar@adacore.com>
25204
25205         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
25206         rather than proceed ahead using a junk attribute name.
25207
25208 2005-03-29  Vincent Celier  <celier@adacore.com>
25209
25210         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
25211
25212         * prj-part.adb (Parse_Single_Project): Set the location of a project
25213         on its defining identifier, rather than on the reserved word "project".
25214
25215         * prj-proc.adb (Expression): Adapt to the fact that default of external
25216         references may be string expressions, not always literal strings.
25217         (Recursive_Process): Set Display_Name equal to Name
25218         when Location is No_Location, that is when there is no actual file.
25219         Get the Display_Name of the project from the source, when it is not a
25220         virtual project.
25221         (Process): Use the Display_Name in error messages
25222
25223         * prj-strt.adb (External_Reference): Allow default to be string
25224         expressions, not only literal strings.
25225
25226 2005-03-29  Vincent Celier  <celier@adacore.com>
25227
25228         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
25229         file and the reference symbol file to be the same file.
25230
25231 2005-03-29  Thomas Quinot  <quinot@adacore.com>
25232
25233         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
25234         forbid conversion of a local access-to-subprogram type to a remote one.
25235
25236         * sem_util.adb (Wrong_Type): For a record type that is the expanded
25237         equivalent type for a remote access-to-subprogram type, go back to the
25238         original RAS entity when displaying an error message, so the casing is
25239         the original source casing.
25240
25241 2005-03-29  Robert Dewar  <dewar@adacore.com>
25242
25243         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
25244         on param update.
25245
25246 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
25247
25248         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
25249         subtype if code is being pre-analyzed, to prevent un-expanded
25250         references to protected formals, among others.
25251         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
25252         interpretation that can be a call, include the result of the call as a
25253         possible interpretation of the dereference.
25254
25255         * sem_ch5.adb (Process_Bounds): Determine type of range by
25256         pre-analyzing a copy of the original range, and then analyze the range
25257         with the expected type.
25258
25259         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
25260         with an overloaded prefix where not all interpretations yield an
25261         access to subprogram, do not rewrite node as a call.
25262         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
25263         the node as a call once the context identifies the interpretation of
25264         the prefix whose call yields the context type.
25265         (Valid_Conversion): For the case of a conversion between
25266         local access-to-subprogram types, check subtype conformance using
25267         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
25268         detailed error message.
25269
25270 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
25271
25272         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
25273         indicator, indicate that the formal can never be null.
25274         (Process_Formals): If a formal has a non_null indicator, insert the
25275         resulting subtype immediately before the enclosing subprogram decl,
25276         and not at the beginning of the corresponding declarative part, to
25277         prevent access before elaboration (Ada2005).
25278
25279 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25280
25281         PR ada/19956
25282         * utils.c (finish_record_type): Use variable_size when setting sizes.
25283
25284 2005-03-29  Robert Dewar  <dewar@adacore.com>
25285
25286         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
25287         guarantee Unix style line terminators for the output files, even when
25288         running on windows.
25289
25290 2005-03-29  Robert Dewar  <dewar@adacore.com>
25291
25292         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
25293         buffer if an exception is raised.
25294
25295 2005-03-29  Ed Falis  <falis@adacore.com>
25296
25297         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
25298         VxWorks 653 1.4
25299
25300 2005-03-29  Robert Dewar  <dewar@adacore.com>
25301
25302         * sem_util.ads: Minor reformatting
25303         * gnat_rm.texi: Minor editing.
25304
25305 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
25306
25307         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
25308         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
25309
25310 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
25311
25312         * adaint.c (__gnat_portable_spawn): Adjust cast.
25313
25314 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
25315
25316         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
25317
25318 2005-03-17  Pascal Obry  <obry@adacore.com>
25319
25320         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
25321         used.
25322
25323         * expect.c (__gnat_waitpid): Moved here from adaint.c.
25324         Reimplement under Win32 using Win32 API.
25325
25326         (__gnat_kill) [Win32]: Properly close the process handle before leaving
25327         this routine.
25328
25329 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
25330
25331         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
25332         (DECL_RENAMED_OBJECT): New accessor macro.
25333         (SET_DECL_RENAMED_OBJECT): New setter macro.
25334
25335         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
25336         object in all cases.  Attach the renamed object to the VAR_DECL.
25337         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
25338         field is not prescribed.
25339
25340         * misc.c (gnat_handle_option): Handle -gnatO separately.
25341         (gnat_print_decl) <VAR_DECL>: New case.
25342         Print the DECL_RENAMED_OBJECT node.
25343
25344         * lang.opt:  Declare separate -gnatO option.
25345
25346         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
25347         pointer, replace it with the renamed object.
25348         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
25349         pointer type if the source is not a fat pointer type whose underlying
25350         array has the same non-zero alias set as that of the destination array.
25351
25352 2005-03-17  Javier Miranda  <miranda@adacore.com>
25353
25354         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
25355         (Get_Inheritance_Depth): Removed.
25356         (Set_Inheritance_Depth): Removed.
25357
25358         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
25359         subprogram Get_Expanded_Name because it is not referenced by the
25360         frontend.
25361
25362         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
25363         (CPP_Get_Inheritance_Depth): Removed.
25364         (CPP_Set_Inheritance_Depth): Removed.
25365
25366         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
25367
25368 2005-03-17  Robert Dewar  <dewar@adacore.com>
25369
25370         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
25371         3, since we now expect GCC 3 to do all the work.
25372
25373 2005-03-17  Javier Miranda  <miranda@adacore.com>
25374
25375         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
25376         of one barrier to avoid wrong usage of this attribute.
25377
25378         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
25379         First_Private_Entity.
25380
25381         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
25382         the subprogram against wrong usage.
25383         Adapt the code to traverse the entities in the
25384         scope of a record_type because in addition to its usage regarding
25385         packages, this subprogram is also called by Expand_N_Freeze_Entity
25386         to install the visible declarations of the enclosing scope of a
25387         record_type_with_private to establish the proper visibility before
25388         freezing the entity and related subprograms.
25389
25390 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
25391
25392         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
25393         entry formals.
25394
25395 2005-03-17  Thomas Quinot  <quinot@adacore.com>
25396
25397         * exp_ch3.adb (Check_Attr): New subprogram.
25398         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
25399         into a new Check_Attr subprogram, in order to provide a more
25400         explanatory error message (including the name of the missing attribute).
25401         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
25402         subprogram determines whether a default implementation exists for a
25403         given stream attribute.
25404         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
25405         Determine whether to generate a default implementation for each stream
25406         attribute separately, as this depends on the specific attribute.
25407
25408         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
25409         limited extension where a stream attribute is missing for a limited
25410         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
25411         generate a bogus reference to the missing attribute to prevent
25412         cascaded errors. Instead, generate a null statement.
25413
25414         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
25415         available for a limited type if it has been specified for an ancestor
25416         of the type.
25417
25418 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
25419
25420         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
25421         entity is an operator.
25422
25423 2005-03-17  Thomas Quinot  <quinot@adacore.com>
25424
25425         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
25426         spec, to make this predicate available to other units.
25427
25428         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
25429         reimplementing it.
25430
25431         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
25432         when no distribution runtime library is available.
25433
25434         * sem_res.adb, sem_dist.adb: Disable expansion of remote
25435         access-to-subprogram types when no distribution runtime library is
25436         available.
25437         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
25438         predicate available to other units.
25439
25440         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
25441         spec, to make this predicate available to other units.
25442
25443 2005-03-17  Vincent Celier  <celier@adacore.com>
25444
25445         * make.adb (Insert_Project_Sources): Make sure the Q is always
25446         initialized.
25447
25448         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
25449         the default for the tree, not the global default naming.
25450
25451         * prj-proc.adb (Recursive_Process): No need to put the default naming
25452         in the project data, it's already there.
25453
25454 2005-03-17  Doug Rupp  <rupp@adacore.com>
25455
25456         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
25457
25458         * 5xcrtl.ads: Renamed to...
25459         * s-crtl-vms64.ads: ...this new file
25460
25461 2005-03-17  Robert Dewar  <dewar@adacore.com>
25462
25463         PR ada/19519
25464         * namet.adb (Copy_One_Character): Set proper wide character encoding
25465         for upper half character if we have upper half encoding.
25466
25467 2005-03-17  Robert Dewar  <dewar@adacore.com>
25468
25469         * par.adb (Par): Improved msg for attempt to recompile predefined unit
25470
25471 2005-03-17  Thomas Quinot  <quinot@adacore.com>
25472
25473         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
25474         tagged limited type, the TSS is a newly built renaming declaration:
25475         insert it using Set_TSS, not Copy_TSS.
25476
25477 2005-03-17  Javier Miranda  <miranda@adacore.com>
25478
25479         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
25480         Try_Object_Operation): Analyze the object that is accessible
25481         through the prefix of the subprogram call before we apply
25482         the transformation of the object-operation notation.
25483
25484 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
25485
25486         * s-taprob.adb (Initialize_Protection): Initialize the protected
25487         object's owner to Null_Task.
25488         (Lock): If pragma Detect_Blocking is in effect and the caller of this
25489         procedure is already the protected object's owner then Program_Error
25490         is raised. In addition the protected object's owner is updated.
25491         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
25492         of this procedure is already the protected object's owner then
25493         Program_Error is raised.
25494         In addition the protected object's owner is updated.
25495         (Unlock): Remove the ownership of the protected object.
25496
25497         * s-taprob.ads (Protection): Add the field Owner, used to store the
25498         protected object's owner.
25499         This component is needed for detecting one type of potentially blocking
25500         operations (external calls on a protected subprogram with the same
25501         target object as that of the protected action). Document the rest of
25502         the components.
25503
25504         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
25505         Initialize the protected object's owner to Null_Task.
25506         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
25507         caller of this procedure is already the protected object's owner then
25508         Program_Error is raised.
25509         Do not raise Program_Error when this procedure is called from a
25510         protected action.
25511         (Unlock_Entries): Remove the ownership of the protected object.
25512         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
25513         of this procedure is already the protected object's owner then
25514         Program_Error is raised.
25515         Do not raise Program_Error when this procedure is called from
25516         a protected action.
25517
25518         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
25519         used to store the protected object's owner.
25520
25521         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
25522         effect and this procedure (a potentially blocking operation) is called
25523         from whithin a protected action, Program_Error is raised.
25524         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
25525         and this procedure (a potentially blocking operation) is called from
25526         whithin a protected action, Program_Error is raised.
25527
25528 2005-03-17  Vincent Celier  <celier@adacore.com>
25529             Nicolas Setton  <setton@adacore.com>
25530
25531         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
25532         switch, not supported by the linker on Darwin. Add '_' before
25533         <library>init, as this character is added unconditionally by the
25534         compiler.
25535         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
25536         correct one ".dylib". This fixes detection of the archive files when
25537         building library projects.
25538
25539 2005-03-17  Vincent Celier  <celier@adacore.com>
25540
25541         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
25542         -gnat83, -gnat95 and -gnat05.
25543
25544 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
25545
25546         * gnat_ugn.texi: Document gnatmem restriction
25547
25548 2005-03-17  Thomas Quinot  <quinot@adacore.com>
25549
25550         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
25551         cleanup
25552
25553 2005-03-17  Robert Dewar  <dewar@adacore.com>
25554
25555         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
25556         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
25557         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
25558
25559         * casing.adb: Comment improvements
25560
25561 2005-03-17  Pascal Obry  <obry@adacore.com>
25562
25563         * g-expect.adb: Minor reformatting.
25564
25565 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
25566
25567         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
25568         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
25569         to dependencies.
25570
25571 2005-03-15  Vincent Celier  <celier@adacore.com>
25572
25573         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
25574         Add new parameter In_Tree to specify the project tree: needed
25575         by the project manager. Adapt to changes in project manager
25576         using new parameter In_Tree.
25577
25578 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
25579
25580         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
25581         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
25582         ada/bldtools to avoid make -jN failures.
25583
25584 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
25585
25586         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
25587         to NULL_TREE on entry.
25588
25589 2005-03-15  Robert Dewar  <dewar@adacore.com>
25590
25591         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
25592         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
25593         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
25594         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
25595         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
25596         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
25597         system-interix.ads, system-solaris-sparc.ads,
25598         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
25599         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
25600         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
25601         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
25602         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
25603         Compiler_System_Version to be False.
25604
25605         * opt.ads: Add new flag Opt.Address_Is_Private
25606
25607         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
25608         Add new parameter Compiler_System_Version to avoid checking for
25609         completeness of parameters when compiler is compiling itself.
25610         Allows old versions of GNAT to be compiled with new compiler.
25611
25612 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
25613
25614         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
25615         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
25616         calling thread.
25617         (Stack_Base_Available): New flag.
25618         (Get_Page_Size): New overloaded functions imported from C.
25619         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
25620         PROT_ON, PROT_OFF): New constants.
25621         (mprotect): New function imported from C.
25622         (pthread_teb_t): New record type.
25623
25624         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
25625         (Create_Task): Account for the Yellow Zone and the guard page.
25626
25627 2005-03-15  Vincent Celier  <celier@adacore.com>
25628
25629         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
25630         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
25631         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
25632         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
25633         Library_File_Name_For): Add new parameter In_Tree
25634         to specify the project tree: needed by the project manager.
25635         Adapt to changes in project manager using new parameter In_Tree.
25636         Remove local imports, use functions in System.CRTL.
25637
25638         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
25639         to use the project manager.
25640
25641         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
25642         In_Tree to designate the project tree. Adapt to changes in the project
25643         manager, using In_Tree.
25644
25645         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
25646         Copy_Interface_Sources): Add new parameter In_Tree to specify the
25647         project tree: needed by the project manager.
25648         (Build_Library): Check that Arg'Length >= 6 before checking if it
25649         contains "--RTS=...".
25650
25651         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
25652         Library_File_Name_For): Add new parameter In_Tree to specify the
25653         project tree: needed by the project manager.
25654
25655         * prj.ads, prj.adb: Major modifications to allow several project trees
25656         in memory at the same time.
25657         Change tables to dynamic tables and hash tables to dynamic hash
25658         tables. Move tables and hash tables from Prj.Com (in the visible part)
25659         and Prj.Env (in the private part). Move some constants from the visible
25660         part to the private part. Make other constants deferred.
25661         (Project_Empty): Make it a variable, not a function
25662         (Empty_Project): Add parameter Tree. Returns the data with the default
25663         naming data of the project tree Tree.
25664         (Initialize): After updating Std_Naming_Data, copy its value to the
25665         component Naming of Project Empty.
25666         (Register_Default_Naming_Scheme): Use and update the default naming
25667         component of the project tree, instead of the global variable
25668         Std_Naming_Data.
25669         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
25670         Tree is not defaulted, return the default naming data of the Tree.
25671         (Initial_Buffer_Size): Constant moved from private part
25672         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
25673         variables initialized in procedure Initialize.
25674         (Add_To_Buffer): Add two in out parameters to replace global variables
25675         Buffer and Buffer_Last.
25676         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
25677         functions.
25678         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
25679         hash tables.
25680         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
25681         for the project tree.
25682         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
25683         constant at the beginning of the package spec, so that they cane be used
25684         in subprograms before their full declarations.
25685         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
25686         (Empty_Project): Add parameter of type Project_Node_Ref
25687         (Private_Project_Tree_Data): Add component Default_Naming of type
25688         Naming_Data.
25689         (Buffer, Buffer_Last): remove global variables
25690         (Add_To_Buffer): Add two in out parameters to replace global variables
25691         Buffer and Buffer_Last.
25692         (Current_Packages_To_Check): Remove global variable
25693         (Empty_Name): Move to private part
25694         (No-Symbols): Make it a constant
25695         (Private_Project_Tree_Data): New type for the private part of the
25696         project tree data.
25697         (Project_Tree_Data): New type for the data of a project tree
25698         (Project_Tree_Ref): New type to designate a project tree
25699         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
25700         for the project tree.
25701
25702         * prj-attr.ads: Add with Table; needed, as package Prj no longer
25703         imports package Table.
25704
25705         * prj-com.adb: Remove empty, no longer needed body
25706
25707         * prj-com.ads: Move most of the content of this package to package Prj.
25708
25709         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
25710         designate the project node tree and Packages_To_Check to replace
25711         global variable Current_Packages_To_Check.
25712         Add new parameters In_Tree and Packages_To_Check to local subprograms,
25713         when needed. Adapt to changes in project manager with project node tree
25714         In_Tree.
25715
25716         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
25717         project tree to most subprograms. Move tables and hash tables to
25718         private part of package Prj.
25719         Adapt to changes in project manager using project tree In_Tree.
25720
25721         * prj-makr.adb (Tree): New constant to designate the project node tree
25722         Adapt to change in project manager using project node tree Tree
25723
25724         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
25725         display the Library_Src_Dir and the Library_Dir.
25726         Add new parameter In_Tree to designate the project node tree to most
25727         subprograms. Adapt to changes in the project manager, using project tree
25728         In_Tree.
25729         (Check_Naming_Scheme): Do not alter the casing on platforms where
25730         the casing of file names is not significant.
25731         (Check): Add new parameter In_Tree to designate the
25732
25733         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
25734         designate the project tree.
25735         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
25736
25737         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
25738         to replace those that were in the private part of package Prj.
25739         Add new parameter In__Tree to designate the project node tree to most
25740         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
25741         (Post_Parse_Context_Clause): When specifying the project node of a with
25742         clause, indicate that it is a limited with only if there is "limited"
25743         in the with clause, not necessarily when In_Limited is True.
25744         (Parse): Add new parameter In_Tree to designate the project node tree
25745
25746         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
25747         designate the project node tree. Adapt to change in Prj.Tree with
25748         project node tree In_Tree.
25749
25750         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
25751         tree In_Tree in the call to function Empty_Process to give its initial
25752         value to the project data Processed_Data.
25753         Add new parameters In_Tree to designate the project tree and
25754         From_Project_Node_Tree to designate the project node tree to several
25755         subprograms. Adapt to change in project manager with project tree
25756         In_Tree and project node tree From_Project_Node_Tree.
25757
25758         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
25759         to replace those that were in the private part of package Prj.
25760         Add new parameter In_Tree to designate the project node tree to most
25761         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
25762
25763         * prj-tree.ads, prj-tree.adb: Add new parameter of type
25764         Project_Node_Tree_Ref to most subprograms.
25765         Use this new parameter to store project nodes in the designated project
25766         node tree.
25767         (Project_Node_Tree_Ref): New type to designate a project node tree
25768         (Tree_Private_Part): Change table to dynamic table and hash tables to
25769         dynamic hash tables.
25770
25771         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
25772         the project tree to most subprograms. Adapt to changes in project
25773         manager using project tree In_Tree.
25774
25775         * makegpr.adb (Project_Tree): New constant needed to use project
25776         manager.
25777
25778 2005-03-15  Olivier Hainque  <hainque@adacore.com>
25779
25780         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
25781         for sigactions with SA_SIGINFO set. Call
25782         __gnat_adjust_context_for_raise before raising, to perform the
25783         potentially required adjustments to the machine context for the GCC
25784         unwinder.
25785
25786         * raise.h (__gnat_adjust_context_for_raise): New prototype.
25787
25788         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
25789         Adjust PC by one in the provided machine context.
25790         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
25791         so that the handler is passed the context structure to adjust prior to
25792         the raise.
25793         (__gnat_error_handler) HPUX: Adjust the signature to match what an
25794         SA_SIGINFO sigaction should look like. Call
25795         __gnat_adjust_context_for_raise before actually raising.
25796         (__gnat_adjust_context_for_raise): Default noop to help PC
25797         adjustments before raise from signal handlers.
25798         (__gnat_error_handler): Indirectly call a predicate function to
25799         determine if a condition should be resignaled or not.
25800         (__gnat_set_resignal_predicate): User interface to modify the predicate.
25801         (__gnat_default_resignal_p): Default GNAT predicate.
25802
25803 2005-03-15  Doug Rupp  <rupp@adacore.com>
25804
25805         * adaint.c: Prefix #include of VMS system header files with vms/
25806         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
25807         Do not define a dummy function "convert_addresses" under Darwin,
25808         not needed.
25809
25810         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
25811         with vms/
25812
25813 2005-03-15  Nicolas Setton  <setton@adacore.com>
25814
25815         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
25816         PPC/AIX.
25817
25818 2005-03-15  Robert Dewar  <dewar@adacore.com>
25819
25820         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
25821         AI-386.
25822
25823         * a-retide.ads: Minor comment changes
25824
25825 2005-03-15  Robert Dewar  <dewar@adacore.com>
25826
25827         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
25828         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
25829         Realloc_For_Chunk to private part of package.
25830         New subprograms for AI-301
25831
25832         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
25833         Get_Line procedure.
25834         Avoid unnecessary use of Get/Set_Wide_String
25835
25836 2005-03-15  Robert Dewar  <dewar@adacore.com>
25837
25838         PR ada/13470
25839         * a-stunau.ads, a-stunau.adb:
25840         Change interface to allow efficient (and correct) implementation
25841         The previous changes to allow extra space in unbounded strings had
25842         left this interface a bit broken.
25843
25844         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
25845
25846         * g-spipat.ads, g-spipat.adb: New interface for Get_String
25847         Minor reformatting (function specs)
25848
25849         * g-spitbo.adb: New interface for Get_String
25850
25851         * g-spitbo.ads: Minor reformatting
25852
25853         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
25854
25855         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
25856
25857 2005-03-15  Javier Miranda  <miranda@adacore.com>
25858             Robert Dewar  <dewar@adacore.com>
25859             Thomas Quinot  <quinot@adacore.com>
25860             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25861
25862         * atree.ads, atree.adb: Add support for Elist24 field
25863
25864         * atree.h: Fix wrong definition of Field27
25865         Add support for Elist16 field
25866         Add support for Elist24 field
25867
25868         * einfo.ads, einfo.adb (Abstract_Interfaces,
25869         Set_Abstract_Interfaces): New subprograms.
25870         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
25871         subprograms.
25872         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
25873         entities rather than a single node.
25874         (Is_Interface, Set_Is_Interface): New subprogram
25875         (First_Tag_Component): New syntesized attribute
25876         (Next_Tag_Component): New synthesized attribute
25877         (Write_Entity_Flags): Upgraded to write Is_Interface
25878         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
25879         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
25880         (Task_Body_Procedure): New subprogram to read this attribute.
25881         (Set_Task_Body_Procedure): New subprogram to set this attribute.
25882         (Has_Controlled_Component): Now applies to all entities.
25883         This is only a documentation change, since it always worked to apply
25884         this to other than composite types (yielding false), but now this is
25885         official.
25886         Update documentation on Must_Be_Byte_Aligned for new spec
25887
25888         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
25889         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
25890         uses of the Access_Disp_Table attribute to reference the first dispatch
25891         table associated with a tagged type. As
25892         part of the implementation of abstract interface types,
25893         Access_Disp_Table has been redefined to contain a list of dispatch
25894         tables (rather than a single dispatch table).
25895         Similarly, upgrade all the references to Tag_Component by the
25896         new attribute First_Tag_Component.
25897         (Find_Inherited_TSS): Moved to exp_tss.
25898         Clean up test in Expand_N_Object_Declaration for cases
25899         where we need to do a separate assignment of the initial value.
25900         (Expand_N_Object_Declaration): If the expression in the
25901         declaration of a tagged type is an aggregate, no need to generate an
25902         additional tag assignment.
25903         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
25904         is to be deleted.
25905         Bit packed array ops are only called if operands are known to be
25906         aligned.
25907         (Component_Equality): When returning an N_Raise_Program_Error statement,
25908         ensure that its Etype is set to Empty to avoid confusing GIGI (which
25909         expects that only expressions have a bona fide type).
25910         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
25911         determine the amount of data to be copied.
25912
25913         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
25914         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
25915             INTERFACE_TYPE_DEFINITION ::=
25916               [limited | task | protected | synchronized] interface
25917                 [AND interface_list]
25918
25919         * par-ch3.adb (P_Type_Declaration): Modified to give support to
25920         interfaces.
25921         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
25922         interfaces.
25923         (P_Interface_Type_Definition): New subprogram that parses the new
25924         syntax rule of Ada 2005 interfaces
25925         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
25926         messages by the correct RENAMES (quotes removed).
25927
25928         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
25929         attribute First_Tag_Component.
25930
25931         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
25932         (Interface_List, Set_Interface_List): New subprograms.
25933         (Interface_Present, Set_Interface_Present): New subprograms.
25934         (Limited_Present, Set_Limited_Present): Available also in derived
25935         type definition nodes.
25936         (Protected_Present, Set_Protected_Present): Available also in
25937         record type definition and
25938         derived type definition nodes.
25939         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
25940         (Task_Present, Set_Task_Present): New subprogram.
25941         (Task_Body_Procedure): Removed.
25942         (Set_Task_Body_Procedure): Removed.
25943         These subprogram have been removed because the attribute
25944         Task_Body_Procedure has been moved to the corresponding task type
25945         or task subtype entity to leave a field free to store the list
25946         of interfaces implemented by a task (for AI-345)
25947         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
25948         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
25949         expression flag Do_Range_Check
25950         (Exception_Junk): Change to Flag7 to accomodate above change
25951         (Box_Present, Default_Name, Specification, Set_Box_Present,
25952         Set_Default_Name, Set_Specification): Expand the expression
25953         "X in N_Formal_Subprogram_Declaration" into the corresponding
25954         two comparisons. Required to use the csinfo tool.
25955
25956         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
25957         "with string" given.
25958
25959         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
25960         expression given.
25961
25962         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
25963         in 2005 mode
25964
25965         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
25966         attribute Task_Body_Procedure rather than the old semantic field that
25967         was available in the task_type_declaration node.
25968
25969         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
25970         interface type definitions.
25971         (P_Formal_Derived_Type_Definition): Modified to handle the list of
25972         interfaces.
25973
25974         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
25975         task type declaration.
25976         (P_Protected): Modified to handle the list of interfaces in a
25977         protected type declaration.
25978
25979 2005-03-15  Doug Rupp  <rupp@adacore.com>
25980             Vincent Celier  <celier@adacore.com>
25981
25982         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
25983         (Gen_Output_File_C): Likewise.
25984         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
25985
25986 2005-03-15  Thomas Quinot  <quinot@adacore.com>
25987
25988         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
25989         is an N_Raise_Constraint_Error node, create a new copy of it without
25990         going through a call to Duplicate_Subexpr.
25991
25992 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
25993             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25994             Nicolas Setton  <setton@adacore.com>
25995             Ed Schonberg  <schonberg@adacore.com>
25996
25997         PR ada/19900
25998         PR ada/19408
25999         PR ada/19140
26000         PR ada/20255
26001         * decl.c (gnat_to_gnu_field): Reject aliased components with a
26002         representation clause that prescribes a size not equal to the rounded
26003         size of their types.
26004         (gnat_to_gnu_entity, case E_Component): Always look at
26005         Original_Record_Component if Present and not the entity.
26006         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
26007         of tagged extension types by not making field for components that are
26008         inside the parent.
26009         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
26010         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
26011         expression to the type of the object when the object is constant.
26012         Reverse defer_debug_incomplete_list before traversing it, so that trees
26013         are processed in the order at which they were added to the list. This
26014         order is important when using the stabs debug format.
26015         If we are deferring the output of debug information, also defer this
26016         output for a function return type.
26017         When adding fields to a record, prevent emitting debug information
26018         for incomplete records, emit the information only when the record is
26019         complete.
26020         (components_to_record): New parameter defer_debug.
26021         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
26022         (gnat_to_gnu_field_decl): New function.
26023         (substitution_list, annotate_rep): Call it.
26024         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
26025         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
26026         No longer update discriminants to not be a COMPONENT_REF.
26027         (copy_alias_set): Strip padding from input type; also handle
26028         unconstrained arrays properly.
26029
26030         * gigi.h (write_record_type_debug_info): New function.
26031         Convert to use ANSI-style prototypes. Remove unused
26032         declarations for emit_stack_check, elab_all_gnat and
26033         set_second_error_entity.
26034         (gnat_to_gnu_field_decl): New decl.
26035
26036         * utils.c (write_record_type_debug_info): New function.
26037         (finish_record_type): Delegate generation of debug information to
26038         write_record_type_debug_info.
26039         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
26040         (update_pointer_to): Fix pasto.
26041         (convert) <UNION_TYPE>: Accept slight type variations when
26042         converting to an unchecked union type.
26043
26044         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
26045         replace the N_Freeze_Entity with a null statement.
26046
26047         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
26048         within a constrained subcomponent of an enclosing record, place the
26049         freeze nodes in the scope stack entry for the enclosing record.
26050         (Undelay_Type): New Subprogram.
26051         (Set_Small_Size): Pass T, the type to modify; all callers changed.
26052         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
26053         within records; allow them to have freeze nodes if their base types
26054         aren't frozen yet.
26055
26056         * exp_util.adb (Remove_Side_Effects): Properly test for
26057         Expansion_Delayed and handle case when it's inside an
26058         N_Qualified_Expression.
26059
26060         * sem_ch3.adb (Derived_Type_Declaration): New predicate
26061         Comes_From_Generic, to recognize accurately that the parent type in a
26062         derived type declaration can be traced back to a formal type, because
26063         it is one or is derived from one, or because its completion is derived
26064         from one.
26065         (Constrain_Component_Type): If component comes from source and has no
26066         explicit constraint, no need to constrain in in a subtype of the
26067         enclosing record.
26068         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
26069         Minor change to propagate Is_Ada_2005 flag
26070
26071         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
26072         Expansion_Delayed is False.
26073         (assoc_to_constructor): Ignore fields that have a
26074         Corresponding_Discriminant.
26075         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
26076         function returns "by target", dereference the target pointer using the
26077         type of the actual return value.
26078         <all>: Be prepared for a null gnu_result.
26079         (processed_inline_subprograms): Check flag_really_no_inline
26080         instead of flag_no_inline.
26081         (set_second_error_entity): Remove unused function.
26082         (gnat_to_gnu, case N_Selected_Component): Call
26083         gnat_to_gnu_field_decl.
26084         (assoc_to_constructor): Likewise.
26085
26086 2005-03-15  Robert Dewar  <dewar@adacore.com>
26087             Ed Schonberg  <schonberg@adacore.com>
26088             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26089
26090         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
26091         Must_Be_Byte_Aligned for cases where we do not need to use a
26092         System.Pack_nn unit.
26093
26094         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
26095         as procedures.
26096         Needed now that we do some processing for IN parameters as well. This
26097         may well fix some unrelated errors.
26098         (Expand_Call): Handle case of unaligned objects (in particular those
26099         that come from packed arrays).
26100         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
26101         renamed entity is an inherited operation, re-expand the call using the
26102         original operation, which is the one to call.
26103         Detect attempt to inline parameterless recursive subprogram.
26104         (Represented_As_Scalar): Fix to work properly with private types
26105         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
26106         accurate estimate. Yields True in far fewer cases than before,
26107         improving the quality of code that depends on this test.
26108
26109         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
26110         over both visible and private declarations to remove them from tree,
26111         and mark subprograms declared in package as eliminated, to prevent
26112         spurious use in subsequent compilation of generic units in the context.
26113
26114         * exp_util.ads: Minor cleanup in variable names
26115
26116         * sem_eval.ads, sem_eval.adb: Minor reformatting
26117         (Compile_Time_Known_Bounds): New function
26118
26119 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
26120
26121         * exp_ch7.adb (Convert_View): Use base types of underlying types when
26122         determining whether an unchecked conversion is needed for the argument
26123         of an initialization call.
26124
26125 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
26126
26127         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
26128         that appears in the instantiation rather than the internal subtype
26129         generated in the wrapper package, to avoid anomalies in gigi when the
26130         target is derived from a private type whose full view is an access type.
26131
26132 2005-03-15  Robert Dewar  <dewar@adacore.com>
26133
26134         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
26135         not needed.
26136         Add documentation to replace the use of this flag
26137         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
26138         the x86_64.
26139
26140 2005-03-15  Thomas Quinot  <quinot@adacore.com>
26141
26142         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
26143         here from exp_attr so it can be shared between exp_attr and exp_dist.
26144         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
26145         all TSS names, not a subset thereof, and the previous name introduced
26146         an unnecessarily confusion that a distinction might exist between
26147         "OK" TSS names and some "not OK" TSS names.
26148
26149 2005-03-15  Doug Rupp  <rupp@adacore.com>
26150
26151         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
26152         Command_Name.
26153
26154 2005-03-15  Pascal Obry  <obry@adacore.com>
26155             Eric Botcazou  <ebotcazou@adacore.com>
26156
26157         PR ada/20226
26158         PR ada/20344
26159         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
26160         when IN_RTS. This is to work around a bootstrap path problem.
26161
26162         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
26163         table and pass it to __gnat_install_SEH_handler().
26164         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
26165
26166         * lang.opt: Fix specification of -fRTS=.
26167
26168 2005-03-15  Doug Rupp  <rupp@adacore.com>
26169             Bernard Banner  <banner@adacore.com>
26170             Vincent Celier  <celier@adacore.com>
26171             Arnaud Charlet  <charlet@adacore.com>
26172
26173         PR ada/6852
26174         This change works fine when gnatlib is built from the gcc directory,
26175         but does not work when using the libada Makefile, since GCC_FOR_TARGET
26176         is not passed to ada/Makefile.in, so more work is needed by a
26177         Makefile/configure expert.
26178
26179         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
26180         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
26181         Setup gnatlink switch -M for x86_64 linux, as it is already setup
26182         for Linux x86.
26183         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
26184         Run ranlib on libgccprefix.a
26185         Define PREFIX_OBJS for Darwin, to build libgccprefix.
26186         (ADA_INCLUDE_SRCS): Split Ada packages.
26187
26188 2005-03-15  Robert Dewar  <dewar@adacore.com>
26189
26190         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
26191
26192         * impunit.adb: Add GNAT.UTF_32
26193
26194         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
26195
26196         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
26197         now uses GNAT.UTF_32).
26198
26199         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
26200         capabilities for categorizing characters using Unicode categories
26201
26202 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
26203
26204         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
26205         instantiation that has been rewritten as a package body, retrieve spec
26206         to generate proper name for implicit_with_clause.
26207         (Install_Parents): Recognize a parent that is an instantiation but has
26208         been rewritten as a package declaration during analysis.
26209
26210 2005-03-15  Javier Miranda  <miranda@adacore.com>
26211             Ed Schonberg  <schonberg@adacore.com>
26212
26213         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
26214         parameter reported some error we immediately return. This improves the
26215         behaviour of the frontend in case of errors.
26216         (Install_Parent, Remove_Parent): Introduce new flag
26217         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
26218         ancestor of a generic child unit, when the child is being instantiated.
26219         (Inline_Instance_Body): If we are compiling the private
26220         part or the body of a child unit, restore the proper visibility of the
26221         parents after compiling the instance body.
26222
26223 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
26224             Javier Miranda  <miranda@adacore.com>
26225
26226         PR ada/15608
26227         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
26228         of a private type, in which case it is underlying_type that denotes
26229         the proper task. Also modified to use the new entity attribute
26230         that is directly available in the task type and task subtype entities
26231         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
26232         arrays when other dimensions than the first are constrained by
26233         discriminants of an enclosing record.
26234         (Insert_Explicit_Dereference): If the prefix is an indexed component or
26235         a combination of indexed and selected components, find ultimate entity
26236         and generate the appropriate reference for it, to suppress spurious
26237         warnings.
26238         (Note_Possible_Modification): If an entity name has no entity, return.
26239         (Is_Variable): A function call never denotes a variable.
26240         (Requires_Transient_Scope): For record types, recurse only on
26241         components, not on internal subtypes that may have been generated for
26242         constrained components.
26243
26244 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
26245
26246         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
26247         Eliminated as candidates for resolution. Both efficient, and avoids
26248         anomalies with operators declared in deleted code.
26249         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
26250         expansion is disabled (as when compiling a generic) to prevent spurious
26251         warnings on prefixes of selected components.
26252
26253 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
26254
26255         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
26256         attached to a list before checking whether it appears in the private
26257         declarations of the current package.
26258         (Make_Inequality_Operator): Insert declaration in proper declarative
26259         list rather than just setting the Parent field, so that
26260         Is_Private_Declaration can handle it properly.
26261
26262 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
26263
26264         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
26265         a renaming a body, check that the renamed subprogram in not intrinsic.
26266         (Find_Direct_Name): If several use_visible entities hide
26267         each other, and the context is a predefined file compiled through
26268         rtsfind, keep only the entity that comes from a predefined file.
26269
26270 2005-03-15  Geert Bosch  <bosch@adacore.com>
26271
26272         * s-fatgen.adb (Valid): Extend special exceptions to account for long
26273         long float padding to also cover AMD64 and IA64.
26274
26275 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
26276
26277         * s-imgwch.adb: Add with and use of Interfaces.
26278         (Img_Wide_Character): Change type of Val to Unsigned_16.
26279         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
26280
26281 2005-03-15  Matthew Gingell  <gingell@adacore.com>
26282
26283         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
26284
26285 2005-03-15  Robert Dewar  <dewar@adacore.com>
26286
26287         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
26288
26289         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
26290
26291         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
26292
26293 2005-03-15  Robert Dewar  <dewar@adacore.com>
26294
26295         * s-bitops.adb, s-bitops.ads,
26296         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
26297         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
26298         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
26299         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
26300         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
26301         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
26302         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
26303         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
26304         reformatting.
26305
26306 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
26307
26308         * utils2.c (build_binary_op): Fix typo.
26309
26310 2005-03-15  Doug Rupp  <rupp@adacore.com>
26311
26312         * s-crtl.ads (popen,pclose): New imports.
26313
26314 2005-03-15  Cyrille Comar  <comar@adacore.com>
26315
26316         * comperr.adb (Compiler_Abort): remove references to obsolete
26317         procedures in the bug boxes for various GNAT builds.
26318
26319 2005-03-15  Vincent Celier  <celier@adacore.com>
26320
26321         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
26322
26323 2005-03-15  Geert Bosch  <bosch@adacore.com>
26324             Arnaud Charlet  <charlet@adacore.com>
26325             Robert Dewar  <dewar@adacore.com>
26326             Cyrille Comar  <comar@adacore.com>
26327             Sergey Rybin  <rybin@adacore.com>
26328
26329         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
26330         too specific and long-winded to be appropriate for the GNAT User's
26331         Guide.
26332         Warn about use of GCC switches not documented in the GNAT User's Guide,
26333         as these may cause generated code to not conform to Ada semantics.
26334         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
26335         Add documentation for -gnat95 and -gnat05 switches
26336         Remove paragraph documenting obsolete way to refer to third party
26337         libraries.
26338         Add a few references to Ada_05 that were missing.
26339         Update documentation on -gnatZ/-gnatL.
26340         Document limitation when using -m64 under Solaris.
26341         Change the "Name Casing" subsection of the pretty-printer section
26342         according to the changes in the dictionary processing.
26343
26344         * gnat_rm.texi: Document the Ada_05 pragma.
26345         Section on record representation clauses describes the new more
26346         relaxed rules about placement of large packed bit array components.
26347         Add documentation of GNAT.UTF_32
26348
26349 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
26350
26351         * misc.c (gnat_post_options): Turn off structural
26352         aliasing for now.
26353
26354 2005-03-08  Laurent Guerby  <laurent@guerby.net>
26355
26356         * system-linux-sparc.ads: Fix typo in previous commit.
26357
26358 2005-03-07  James A. Morrison  <phython@gcc.gnu.org>
26359             Laurent Guerby  <laurent@guerby.net>
26360
26361         PR ada/20035
26362         * system-linux-sparc.ads: New.
26363         * Makefile.in: Add sparc linux entry.
26364
26365 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
26366
26367         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
26368         parameters as unused.
26369
26370 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
26371         Partial merge from libada-gnattools-branch:
26372
26373         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
26374         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
26375         into code in gnattools/Makefile.in.  Remove direct dependencies on
26376         stamp-tools by tools clauses.
26377         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
26378         * config-lang.in: Add gnattools to $lang_dirs.
26379
26380 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
26381
26382         PR ada/19942
26383         * utils.c (gnat_type_for_mode): Return null instead of ICE because
26384         we asked for an unknown mode.
26385
26386 2005-02-12  Richard Henderson  <rth@redhat.com>
26387
26388         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
26389         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
26390
26391 2005-02-10  Andreas Jaeger  <aj@suse.de>
26392
26393         * init.c (__gnat_initialize): Mark parameter as unused.
26394
26395 2005-02-09  Doug Rupp  <rupp@adacore.com>
26396
26397         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
26398         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
26399
26400 2005-02-09  Doug Rupp  <rupp@adacore.com>
26401
26402         * gnatchop.adb (dup, dup2),
26403         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
26404
26405         * gnatlbr.adb (mkdir),
26406         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
26407
26408         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
26409
26410 2005-02-09  Doug Rupp  <rupp@adacore.com>
26411
26412         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
26413
26414 2005-02-09  Robert Dewar  <dewar@adacore.com>
26415             Thomas Quinot  <quinot@adacore.com>
26416             Javier Miranda  <miranda@adacore.com>
26417             Pascal Obry  <obry@adacore.com>
26418             Ed Schonberg  <schonberg@adacore.com>
26419             Doug Rupp  <rupp@adacore.com>
26420             Gary Dismukes  <dismukes@adacore.com>
26421             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26422
26423         * g-zstspl.ads: New file.
26424
26425         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
26426
26427         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
26428         Ada 95 mode
26429         Add definition of Wide_Wide_Space for AI-285
26430
26431         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
26432         interface (to support Ada 95 and Ada 2005 units).
26433         Add Unbounded_IO files
26434         Add entries for Wide_Wide packages for AI-285
26435         Add list of containers packages to Ada 2005 unit list
26436
26437         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
26438         support new Unbounded_IO package cleanly.
26439
26440         * g-utf_32.ads, g-utf_32.adb: New files.
26441
26442         * Makefile.rtl: Add entry for g-utf_32
26443         Add new files for Unbounded_IO
26444         Adjust make file for new AI-285 wide wide packages
26445         Add AI-302 containers to the run time.
26446
26447         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
26448         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
26449         subprograms for AI-301.
26450
26451         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
26452
26453         * a-stunau.ads: Minor comment correction
26454
26455         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
26456         etc.
26457         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
26458         (Check_RPC): Update to match changes in expanded code.
26459         Clean up unused entity.
26460
26461         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
26462         was not taken into account.
26463         This includes proper initialization with Normalize_Scalars.
26464         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
26465         normalize scalars cases (particularly the latter) to do a better job
26466         of finding invalid representations.
26467
26468         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
26469
26470         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
26471         used
26472
26473         * exp_dist.adb: Add support for wide wide character type
26474         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
26475         private part, generate stub bodies at the end of the private part,
26476         not the visible part.
26477         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
26478         PolyORB support.
26479         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
26480         generic wrapper to execute final processing after completing the
26481         expansion of the RPC receiver for an RACW.
26482
26483         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
26484         packages and attributes.
26485         (Preset_Names): Addition of the new reserved words of Ada 2005,
26486         that is interface, overriding and synchronized.
26487         (Get_Pragma_Id): Give support to the use of the new reserved word
26488         "interface" as a pragma name.
26489         (Is_Pragma_Name): Give support to the use of the new reserved word
26490         "interface" as a pragma name.
26491         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
26492         attribute implementation.
26493
26494         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
26495         checks to entities that are output parameters of Asm operations.
26496         Handle the Stream_Size attribute.
26497         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
26498
26499         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
26500
26501         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
26502         for second parameter being 0.0.
26503         Add support for wide wide character type.
26504         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
26505
26506         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
26507         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
26508         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
26509         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
26510         for wide wide character cases.
26511
26512         * cstand.adb: Create entities for Wide_Wide_Character and
26513         Wide_Wide_String.
26514
26515         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
26516         accordance with AI-258.
26517         Add new declarations for 16/32 bit C character types (Part of AI285)
26518
26519         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
26520         (Obsolescent_Warning): New field
26521         (Rep_Clause): New local subprogram used to share code. Returns the rep
26522         clause for which the name is given in parameter.
26523         (Has_Stream_Size_Clause): New routine.
26524         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
26525         (Address_Clause): Implementation is now using Rep_Clause.
26526         (Alignment_Clause): Idem.
26527         (Size_Clause): Idem.
26528
26529         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
26530         entity in non-Ada 2005 mode and generate warning.
26531
26532         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
26533         (Prag): Code cleanup. Remove old gnat pragma "overriding"
26534
26535         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
26536         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
26537         on the named unit if the pragma is not in the current compilation unit,
26538         so that elaboration calls in the current unit can set up an elaboration
26539         dependency on the named unit, as needed.
26540         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
26541         subprogram as well as for subprograms declared within a package.
26542         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
26543         pragma overriding.
26544
26545         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
26546         to z) to avoid some instances of duplication for Wide_Wide packages.
26547
26548         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
26549         characters.
26550
26551         * scn.adb: Char_Literal_Value field is now a Uint
26552
26553         * scng.adb: Significant rewrite to handle new Ada 2005 features
26554         allowing wide and wide wide characters in program text, e.g. for
26555         identifiers, as described in AI-285.
26556         (Set_Reserved): New procedure, makes setting up keywords cleaner.
26557         (Initialize_Scanner): Register the new reserved words of Ada 2005.
26558         (Scan): Give support to the new reserved words.
26559
26560         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
26561         warning notifying that interface, overriding, and synchronized are
26562         new reserved words.
26563         (P_Pragma): Allow the use of the new reserved word "interface" as
26564         a pragma name.
26565
26566         * gnatls.adb, gnatbind.adb,
26567         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
26568         identifiers named "interface" to "SAL_Interface".
26569
26570         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
26571         (Structured Exception handling).
26572         (Gen_Main_C): Idem.
26573
26574         * bindgen.adb:
26575         (Gen_Main_Ada): Set the default exit code if specified.
26576         (Gen_Main_C): Likewise.
26577         Part of *DC20-006.
26578         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
26579         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
26580
26581         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
26582         new -Xnnn switch.
26583
26584         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
26585         has a collision with the new Ada 2005 "interface" reserved word.
26586
26587         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
26588         generate a warning notifying that interface, overriding, and
26589         synchronized are new reserved words.
26590
26591         * scans.ads (Token_Type): Addition of the tokens corresponding to the
26592         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
26593         and Tok_Synchronized.
26594
26595         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
26596         "dispatching" rather than "primitive" operations, since dispatching
26597         calls are now allowed to abstract formal subprograms (which are not
26598         primitive).
26599         Char_Literal_Value field is now a Uint
26600         (Resolve_Slice): If the prefix is an access to an unconstrained array,
26601         compute the actual subtype of the designated object to impose the proper
26602         index constraints.
26603         (Resolve_Selected_Component): Do not insert an access check if the
26604         prefix is an access type: such a node is expanded into an explicit
26605         dereference, on which the access check is performed anyway. Removes
26606         expensive duplicate checks.
26607         (Resolve_Call): Use new flag Is_Obsolescent and field
26608         Obsolescent_Warning so that pragma Obsolescent works on library
26609         subprograms.
26610         Add support for wide wide character type
26611         (Resolve_Allocator): Replace the error message on wrong null-exclusion
26612         value by a warning message.
26613         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
26614         as fixed-point, and one of the operands is non-static and universal, it
26615         can only be an illegal exponentiation operation, in which case there is
26616         no real value to retrieve.
26617
26618         * exp_strm.adb: Add support for wide wide character type
26619         (Build_Elementary_Input_Call): Compute the size of the stream element by
26620         querying the rep chain to find the Stream_Attribute attribute value.
26621         (Build_Elementary_Write_Call): Ditto.
26622
26623         * sem_aggr.adb: Char_Literal_Value field is now a Uint
26624         Add support for wide wide character type
26625         Replace the error messages on wrong null-exclusion value by warnings
26626         as described in Ada 2005.
26627         (Resolve_Extension_Aggregate): Document the fact that the error
26628         message on class-wide expressions in extensions aggregates.
26629
26630         * sem_case.adb: Add support for wide wide character type
26631
26632         * sem_ch13.adb: Add support for wide wide character type
26633         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
26634
26635         * sem_ch3.adb: Add support for wide wide character type
26636         (Process_Subtype): If constraint is illegal for the type, set Ekind of
26637         now-useless Itype, to prevent cascaded errors on a compiler built
26638         without -gnatp.
26639
26640         * sem_ch8.adb: Add with and use of Sem_Disp.
26641         (Analyze_Subprogram_Renaming): Replace unclean uses of
26642         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
26643         of Corresponding_Spec to Empty).
26644         (Attribute_Renaming): Replace use of Corresponding_Spec with
26645         Corresponding_ Formal_Spec and simplify condition.
26646         (Use_One_Package): Check that scope of homonym of identifier is defined,
26647         before checking whether it is a wrapper package.
26648         Add support for wide wide character type
26649
26650         * sem_eval.adb: Add support for wide wide character type.
26651         (Eval_Arithmetic_Op): Check for compile time known signed integer
26652         overflow in the non-static case.
26653         (Subtypes_Statically_Match): A formal scalar type and its base type do
26654         not statically match.
26655
26656         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
26657         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
26658         subtype).
26659         (Unit_Declaration_Node): Ditto.
26660         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
26661         has a packed array type, the prefix has been rewritten into a type
26662         conversion. Determine variable-ness from the converted expression.
26663         Handle wide wide character cases.
26664
26665         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
26666
26667         * stringt.ads, stringt.adb: Handle full UTF-32 range.
26668         Remove ["0A"] from comment, since it can look like a line terminator.
26669         Currently we don't permit this, but this is under discussion by the
26670         ARG, and it is easy enough to use a different example.
26671
26672         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
26673         handling UTF-32 encoding for wide wide character.
26674         Implement new brackets coding ["hhhhhhhh"]
26675         Add UTF-8 encodings for full UTF-32 range
26676
26677         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
26678
26679         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
26680         bit range Add full UTF-32 support.
26681         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
26682         notify that constraint error will be raised at run-time
26683         because a null value is assigned to a null-excluding object.
26684         Remove some obsolete declarations and make Char_Code
26685         unsigned.
26686
26687         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
26688         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
26689         Rcheck subprograms.
26690
26691         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
26692         wrong null-exclusion value by a warning message.
26693         (Enable_Range_Check): Do range check if the prefix is an
26694         explicit dereference whose designated object is an unconstrained array.
26695         Current algorithm for removing duplicate checks is over-eager in this
26696         case.
26697
26698         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
26699         null-exclusion value by a warning message
26700
26701         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
26702         completely. Add support for Uint2 field
26703
26704         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
26705         exp_prag.adb: Char_Literal_Value field is now a Uint.
26706
26707         * exp_util.adb (Insert_Actions): Replace
26708         N_Formal_Subprogram_Declaration by
26709         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
26710         Char_Literal_Value field is now a Uint.
26711
26712         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
26713         defined for subprogram renaming declarations. When set, the field
26714         indicates the defining entity of a corresponding formal subprogram
26715         when the renaming corresponds to a formal subprogram association in an
26716         instantiation.
26717         (Set_Corresponding_Formal_Spec): New procedure to return
26718         Corresponding_Formal_Spec field.
26719         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
26720         (which is now a subtype).
26721         Char_Literal_Value field is now a Uint
26722
26723         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
26724         pointer to the base of the dispatch table.
26725         Minor changes to comments.
26726         (Controlling_Type): New function for determining the tagged type
26727         associated with a tagged primitive subprogram.
26728         (Expand_Dispatching_Call): Add support for a controlling actual that is
26729         directly a value of type Ada.Tag rather than a tagged object.
26730
26731         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
26732         describing the new layout.
26733         (Dispatch_Table): The expander computes the actual array size, allocates
26734         the Dispatch_Table record accordingly, and generates code that displaces
26735         the base of the record after the Typeinfo_Ptr component. The access to
26736         these components is done by means of local functions.
26737         (Offset_To_Top): New function.
26738         (Typeinfo_Ptr): New function.
26739         (Get_TSD): Modified to access the new position of the TSD.
26740         (Set_TSD): Modified to save the TSD in its new position.
26741
26742         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
26743         case of formal abstract subprograms. Add check and message for -gnat05.
26744         Update comments.
26745
26746         * sem_ch12.adb: Add with and use for Sem_Disp.
26747         (Analyze_Associations): Minor change from "=" to "in" for use of
26748         N_Formal_Subtype_Declaration (which is now a subtype).
26749         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
26750         N_Formal_Subtype_Declaration (which is now a subtype).
26751         (Analyze_Formal_Subprogram): Add handling for
26752         N_Formal_Abstract_Subprogram, marking the formal as abstract and
26753         dispatching, setting the controlling status of the formal parameters
26754         and result, and issuing an error if there is no controlling type for
26755         the formal subprogram.
26756         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
26757         which is an unclean use of that field, we set the new field
26758         Corresponding_Formal_Spec to make the formal subprogram available to
26759         processing in Analyze_Subprogram_Declaration.
26760         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
26761         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
26762         Constrained, so that it is is does not statically match its anonymous
26763         base type.
26764
26765         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
26766         abstract formal subprograms in error check for functions returning
26767         abstract types. Set scope of new designator for
26768         a parameterless subprogram, so that it is available when checking the
26769         body for nested subprograms, before full analysis of said body.
26770         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
26771         subprogram only if inner one comes from source.
26772         (Analyze_Function_Call): If the call is given in object notation, the
26773         analysis of the name rewrites the node and analyzes it with the proper
26774         argument list. After analyzing the name, if the call has been rewritten
26775         and the result type is set, no further analysis is needed.
26776         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
26777         mark in function specification, in a context where the formals are
26778         visible and hide outer homographs.
26779
26780         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
26781         as the tagged type for the cases of abstract formal subprograms and
26782         renamings of those.  Clean up spec comments.
26783         (Check_Dispatching_Context): Add error message to indicate "abstract
26784         procedure", covering the case of a call to a formal abstract procedure
26785         that has statically tagged operands.
26786         (Check_Dispatching_Call): Check for the case of an actual given by
26787         a tag-indeterminate function call whose type is an ancestor of the
26788         containing call's associated tagged type. This situation can occur
26789         for inherited primitives with function defaults. In this case we
26790         use the tagged type's tag directly as the controlling argument for
26791         the calls.
26792         (Expand_Call): Name change on call to Expand_Dispatch_Call.
26793
26794         * sprint.adb (Sprint_Node_Actual): Split
26795         N_Formal_Subprogram_Declaration into two alternatives for the new
26796         cases N_Formal_Abstract_Subprogram_Declaration and
26797         N_Formal_Concrete_Subprogram_Declaration.
26798         Char_Literal_Value field is now a Uint.
26799
26800         * trans.c: Get rid of junk Uint2 reference.
26801         Char_Literal_Value field is now a Uint.
26802         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
26803         (gigi): Correct third arg to gimplify_body.
26804
26805         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
26806         (TYPE_LANG_FLAG_0): Check for record or union.
26807
26808         * treepr.adb: Char_Literal_Value field is now a Uint
26809
26810         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
26811         UI_From_CC.
26812
26813         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
26814         Add full UTF-32 support
26815         Char_Code is now 32 bits
26816
26817         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
26818         wide character UTF_32 line terminators.
26819         Initialize Main_Source_File to avoid error when no main
26820         source is loaded.
26821
26822         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
26823         (Main_Source_File) when no main source has been loaded, to avoid
26824         potential crash.
26825
26826 2005-02-09  Robert Dewar  <dewar@adacore.com>
26827
26828         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
26829         Fix name of Set routine
26830
26831         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
26832         fixed packages.
26833
26834         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
26835         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
26836         fixed packages
26837
26838         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
26839         forms of Get_Line subprograms for AI-301.
26840
26841         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
26842         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
26843         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
26844         a-stwima.ads: Minor reformatting.
26845
26846 2005-02-09  Doug Rupp  <rupp@adacore.com>
26847             Thomas Quinot  <quinot@adacore.com>
26848
26849         * adaint.c, adaint.h
26850         [VMS] (to_ptr32): New function.
26851         (MAYBE_TO_PTR32): New macro.
26852         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
26853         for pointer size.
26854         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
26855         [VMS] (#define fork()): Remove since unneccessary.
26856         (__gnat_set_close_on_exec): New routine to support
26857         GNAT.OS_Lib.Set_Close_On_Exec.
26858
26859         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
26860         the parent side as close-on-exec so that they are not inherited by the
26861         child.
26862
26863         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
26864         set or clear the FD_CLOEXEC flag on a file descriptor.
26865
26866 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
26867             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26868
26869         PR ada/19386
26870         * decl.c:
26871         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
26872         on the field if Pragma Component_Alignment (Storage_Unit).
26873         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
26874         side-effects as if it were a constant; also make SAVE_EXPR to protect
26875         side-effects.
26876         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
26877         UNION_TYPE.
26878         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
26879         (components_to_record): Test it.
26880         Fix improper usage of REFERENCE_CLASS_P.
26881
26882         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
26883         RECORD_TYPE.
26884
26885         * utils2.c: Minor reformatting.
26886
26887         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
26888         handle other cases like RECORD_TYPE.
26889
26890         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
26891
26892 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
26893
26894         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
26895         component of an array of arrays in an assignment context, and the
26896         aggregate has component associations that require sliding on
26897         assignment, force reanalysis of the aggregate to generate a temporary
26898         before the assignment.
26899         (Must_Slide): Make global to the package, for use in Gen_Assign.
26900
26901 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
26902
26903         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
26904         unchecked union with no inferable discriminants, return a
26905         Raise_Program_Error node, rather than inserting it at the point the
26906         type is frozen.
26907         (Expand_Record_Equality, Component_Equality): Handle properly the case
26908         where some subcomponent is an unchecked union whose generated equality
26909         code raises program error.
26910
26911 2005-02-09  Doug Rupp  <rupp@adacore.com>
26912
26913         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
26914         [VMS] (#define exit hack): Remove.
26915
26916 2005-02-09  Pascal Obry  <obry@adacore.com>
26917             Arnaud Charlet  <charlet@adacore.com>
26918
26919         * init.c (__gnat_initialize): Add a new parameter eh which contains the
26920         address of the exception registration. The Win32 version of this
26921         routine calls __gnat_install_SEH_handler() to initialize the SEH
26922         (Structured Exception Handling) handler.
26923         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
26924         SEH (Structured Exception Handling) now.
26925         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
26926         (__gnat_initialize for ppc-vxworks): Adjust comments and the
26927         preprocessor condition protecting the call to the extra eh setup
26928         subprogram, which is only available for the ppc target.
26929         (__gnat_clear_exception_count): replaced reference to
26930         variable taskIdCurrent by call to taskIdSelf(), cleaner.
26931
26932         * seh_init.c: New file.
26933
26934         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
26935         (GNATBIND_OBJS): Idem.
26936
26937         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
26938         routine takes a new parameter (a pointer to the exception registration
26939         for the SEH (Structured Exception Handling) support.
26940
26941         * raise.h: (__gnat_install_SEH_handler): New prototype.
26942         Update copyright notice.
26943
26944         * s-tassta.adb (Task_Wrapper): Declare the exception registration
26945         record and initialize it by calling __gnat_install_SEH_handler.
26946
26947 2005-02-09  Vincent Celier  <celier@adacore.com>
26948
26949         * make.adb (Gnatmake): Do not fail when the main project has no object
26950         directory.
26951
26952 2005-02-09  Doug Rupp  <rupp@adacore.com>
26953
26954         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
26955         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
26956         [VMS]: Add translations for g-enblsp.adb.
26957
26958         * s-asthan-vms.adb: Removed.
26959         * s-asthan-vms-alpha.adb: Added.
26960
26961 2005-02-09  Pascal Obry  <obry@adacore.com>
26962
26963         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
26964         (LIBGNAT_OBJS): Add seh_init.o.
26965
26966 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
26967
26968         PR ada/16592
26969         * Makefile.in: Link all gnat tools with -static-libgcc, since
26970         -shared-libgcc is now used by default on some systems (e.g. linux with
26971         recent binutils).
26972         Remove references to Makefile.prolog/generic, no longer used.
26973
26974 2005-02-09  Vincent Celier  <celier@adacore.com>
26975
26976         * prj-makr.adb (Process_Directory): Put file name in canonical case
26977         before matching against the patterns.
26978         If gnatname has been invoked as <prefix>-gnatname
26979         then invoke the compiler as <prefix>-gcc, not just "gcc".
26980
26981 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
26982
26983         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
26984         with expansion disabled. The actual subtype is needed among other
26985         places when the selected component appears in the context of a loop
26986         bound, and denotes a packed array.
26987         (Operator_Check): Always use the first subtype in the
26988         error message, to avoid the appearance of internal base types.
26989         (Transform_Object_Operation): Copy each actual in full
26990         to the parameter associations of the constructed call, rather than
26991         using the shallow copy mechanism of New_Copy_List. This ensures that
26992         the chaining of named associations is done properly.
26993         (Complete_Object_Operation): Rewrite node, rather than
26994         replacing it, so that we can trace back to the original selected
26995         component.
26996
26997         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
26998         and calls that use object notation, if the called function is not
26999         declared  in a withed unit, place the elaboration constraint on the
27000         unit in the context that makes the function accessible.
27001         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
27002         imposes an elaboration constraint between two packages.
27003
27004 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
27005
27006         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
27007         views of a private type after handling its private dependents, to
27008         maintain proper stack discipline between entry and exit from the
27009         package.
27010
27011 2005-02-09  Cyrille Comar  <comar@adacore.com>
27012
27013         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
27014         Minor reformatting.
27015
27016 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
27017
27018         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
27019         fields for foreign threads.
27020
27021 2005-02-09  Doug Rupp  <rupp@adacore.com>
27022
27023         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
27024         recursion warnings when compiled with -gnatdm.
27025
27026 2005-02-09  Robert Dewar  <dewar@adacore.com>
27027
27028         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
27029         Slight fix to documentation of -gnaty with no parameters
27030
27031         * xr_tabls.ads: Add ??? comment for missing overall comment
27032
27033         * xsinfo.adb: Make default file name be sinfo.h, since this is what
27034         we now use by default.
27035
27036         * xsnames.adb: Adjust end of file test to look for five space followed
27037         by '#' instead of six spaces. The format of xsnames.adb was modified
27038         in the last update.
27039
27040         * a-numeri.ads: Add reference to AI-388 for greek letter pi
27041         identifier.
27042
27043         * clean.adb: Minor reformatting.
27044
27045         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
27046         gnatname.adb: Minor reformatting
27047         Add 2005 to copyright output when utility is run
27048
27049         * csets.adb: Eliminate obsolete comment
27050
27051         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
27052         Update comments.
27053
27054         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
27055
27056 2005-02-09  Sergey Rybin  <rybin@adacore.com>
27057
27058         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
27059         the difference between compact and incompact layout and add the record
27060         representation clause to the example illustrating different layouts.
27061         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
27062         component clauses").
27063
27064 2005-02-09  Florian Villoing  <villoing@adacore.com>
27065
27066         * gnat_ugn.texi: Fix typos.
27067         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
27068         @file.
27069         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
27070         in the generated documentation.
27071
27072 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
27073
27074         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
27075         longer supported.
27076         Update linker wrapper when linking with non GNU C++.
27077
27078 2005-02-09  Pascal Obry  <obry@adacore.com>
27079
27080         * gnat_ugn.texi:
27081         Document the procedure to debug the DllMain routine on Windows.
27082         Add note about -funwind-tables and mixed Ada and C/C++ programming in
27083         ZCX mode.
27084         Document new BIND qualifer /RETURN_CODES=VMS.
27085
27086 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
27087
27088         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
27089         Edited gnatmetric chapter
27090
27091 2005-02-09  Robert Dewar  <dewar@adacore.com>
27092
27093         * gnat_rm.texi:
27094         Changes to document new wide wide character support
27095         For AI-285
27096         Update documentation on Normalize_Scalars and Initialize_Scalars
27097
27098 2005-02-09  Pascal Obry  <obry@adacore.com>
27099
27100         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
27101
27102 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
27103
27104         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
27105         from the VxWorks kernel) that is needed for getting the active
27106         priority of the different tasks.
27107
27108         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
27109         Use a pragma Elaborate_Body in the spec file instead.
27110         Noticed by code reading.
27111
27112 2005-02-09  Thomas Quinot  <quinot@adacore.com>
27113
27114         * exp_util.ads: Minor correction in comment.
27115
27116 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
27117
27118         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
27119         since this procedure is now too complex to be worth inlining.
27120
27121 2005-02-09  Richard Henderson  <rth@redhat.com>
27122
27123         * utils.c (gnat_define_builtin): Remove.
27124         (gnat_install_builtins): Use build_common_builtin_nodes.
27125
27126 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
27127
27128         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
27129         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
27130         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
27131         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
27132         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
27133         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
27134         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
27135         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
27136         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
27137         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
27138         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
27139         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
27140         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
27141         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
27142         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
27143         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
27144         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
27145         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
27146         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
27147         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
27148         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
27149         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
27150         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
27151         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
27152         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
27153         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
27154         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
27155         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
27156         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
27157         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
27158         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
27159         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
27160         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
27161         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
27162         library.
27163
27164 2005-01-27  Laurent Guerby  <laurent@guerby.net>
27165
27166         * Makefile.in: Fix a-intnam.ads from previous commit,
27167         add 2005 to copyright.
27168         * a-intman-rtems.ads: Renamed to...
27169         * a-intnam-rtems.ads:
27170
27171 2005-01-27  Laurent Guerby  <laurent@guerby.net>
27172
27173         * Makefile.in: Rename GNAT RTEMS specific files.
27174         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
27175         5rosinte.ads, 5rparame.adb: Replaced by files below.
27176         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
27177         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
27178
27179 2005-01-27  Joel Sherrill  <joel.sherrill@oarcorp.com>
27180             Laurent Guerby  <laurent@guerby.net>
27181
27182         PR ada/19488
27183         * 5rosinte.ads: Add No_Key constant.
27184         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
27185         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
27186
27187 2005-01-26  Laurent Guerby  <laurent@guerby.net>
27188
27189         PR ada/19414
27190         * i-cobol.adb (Valid_Numeric): Handle zero length case.
27191
27192 2005-01-20  Richard Henderson  <rth@redhat.com>
27193
27194         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
27195         a-intnam-linux.ads and system-linux-alpha.ads.
27196         * a-intnam-linux-alpha.ads: Remove file.
27197         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
27198         * system-linux-alpha.ads: New file.
27199
27200 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
27201
27202         PR ada/13470
27203         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
27204         set to the new string.
27205
27206 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
27207
27208         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
27209         to True.
27210
27211 2005-01-18  Richard Henderson  <rth@redhat.com>
27212
27213         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
27214         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
27215         for alpha-linux.
27216         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
27217
27218 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
27219
27220         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
27221         (GCC_ZCX_Support): Likewise.
27222
27223 2005-01-11  Bastian Blank  <waldi@debian.org>
27224
27225         * system-linux-s390.ads: Define Preallocated_Stacks.
27226         * system-linux-s390x.ads: Likewise.
27227
27228 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
27229
27230         * gnat_ugn.texi: Fix texi errors with null variables.
27231
27232 2005-01-03  Thomas Quinot  <quinot@adacore.com>
27233
27234         * gen-soccon.c: New utility program to generate g-soccon.ads
27235         automatically.
27236
27237         * socket.c, gsocket.h: Split inclusion of system header files into a
27238         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
27239
27240         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
27241         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
27242         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
27243         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
27244         should not be edited by hand anymore, but should be regenerated using
27245         gen-soccon.
27246
27247 2005-01-03  Robert Dewar  <dewar@adacore.com>
27248             Ed Schonberg  <schonberg@adacore.com>
27249             Vincent Celier  <celier@adacore.com>
27250
27251         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
27252         on/off, since this is an obsolescent feature, for which we now generate
27253         a warning.
27254
27255         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
27256         warning mode is set and obsolescent usage of this attribute occurs.
27257         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
27258         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
27259         predates, and partly motivates, the adoption of the AI.
27260         Implement new Ada 2005 attribute Mod
27261
27262         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
27263         attribute Mod.
27264
27265         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
27266
27267         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
27268         pragma restrictions.
27269         New entry for Ada 2005 attribute Mod.
27270
27271         * par-prag.adb:
27272         Add recognition of new pragma Restrictions No_Dependence
27273         Recognize restriction No_Obsolescent_Features at parse time
27274
27275         * bcheck.adb: Add circuitry for checking for consistency of
27276         No_Dependence restrictions.
27277
27278         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
27279         restrictions.
27280
27281         * restrict.ads, restrict.adb: Add subprograms to deal with
27282         No_Dependence restrictions.
27283
27284         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
27285         restrictions.
27286
27287         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
27288         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
27289
27290         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
27291         dummy parameter to scng instantiation.
27292         Needed for new restriction No_Obsolescent_Features
27293
27294         * scn.adb: (Obsolescent_Check): New procedure
27295         Needed for new restriction No_Obsolescent_Features
27296
27297         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
27298         specified by AI-285, needed for implementation of AI-388 (adding greek
27299         pi to Ada.Numerics).
27300         Add new generic formal to scng, needed for new restriction
27301         No_Obsolescent_Features.
27302
27303         * s-rident.ads: Add new restriction No_Obsolescent_Features.
27304
27305         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
27306         restrictions lines.
27307         (Scan_ALI): When finding an unexpected character on an R line, raise
27308         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
27309         Ignore_Errors is True, default restrictions are set and scanning of the
27310         ALI file continues with the next line. Also, when Bad_R_Line is raised
27311         and Ignore_Errors is True, skip to the end of le line.
27312
27313         * sem_ch10.adb: Check that explicit with's do not violate
27314         No_Dependence restrictions.
27315         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
27316         illegal context clauses containing child units of instance.
27317
27318         * sem_prag.adb: Processing and checking for new No_Dependence
27319         restrictions.
27320         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
27321         analyze and check the External argument.
27322
27323         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
27324
27325 2005-01-03  Robert Dewar  <dewar@adacore.com>
27326
27327         * atree.adb: Add a fifth component to entities
27328         This allows us to add 32 flags and four new fields
27329
27330         * atree.ads: Add a fifth component to entities
27331         This allows us to add 32 flags and four new fields
27332
27333         * einfo.ads, einfo.adb: Document new fields and new flags now available
27334         Add routines for printing new fields
27335
27336         * treepr.adb: Call routines to print out additional fields if present
27337
27338 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
27339
27340         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
27341         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
27342
27343         * Makefile.in: Add support to build shared Ada libraries on solaris x86
27344         Remove gpr2make, replaced by gprmake.
27345         Remove references to gnatmem and libaddr2line.
27346         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
27347         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
27348         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
27349         a-numaux-darwin.ads and a-numaux-darwin.adb
27350         Enable mlib-tgt-lynxos.adb on lynxos.
27351
27352         * Make-lang.in: Remove rules for gpr2make.
27353         When generating sdefault.adb, do not call Relocate_Path
27354         on S3 for function Target_Name, as it is not a path.
27355         Remove references to gnatmem and libaddr2line.
27356
27357         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
27358         files.
27359
27360 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
27361
27362         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
27363         address is incompatible with its base type alignment constraints when
27364         this can be decided statically.
27365
27366 2005-01-03  Olivier Hainque  <hainque@adacore.com>
27367
27368         * decl.c (compatible_signatures_p): New function. The intended purpose
27369         is to check if two function signatures for a call-site and a callee are
27370         compatible enough for the call to be valid. The underlying purpose is
27371         to check if a call to a mapped builtin is using the right interface.
27372         The current code actually does not check antyhing - this a placeholder
27373         for future refinements.
27374         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
27375         builtin calls for convention Intrinsic.
27376
27377         * gigi.h (builtin_decl_for): Declare (new function).
27378
27379         * utils.c (gnat_install_builtins): Install the target specific builtins.
27380         (builtin_decl_for): New function, provide a dummy body for now.
27381
27382 2005-01-03  Geert Bosch  <bosch@adacore.com>
27383
27384         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
27385         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
27386         (Pred): Implement in terms of Succ.
27387
27388         * trans.c (convert_with_check): Reimplement conversion of float to
27389         integer.
27390
27391 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
27392             Vincent Celier  <celier@adacore.com>
27393
27394         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
27395         bounds can be negative, and must be declared Int, not Nat.
27396
27397         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
27398         array is checked after using the index in the array.
27399
27400         * makegpr.adb (Add_Switches): Check if there is a package for the
27401         processor. If there is no package, do not look for switches.
27402
27403 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
27404
27405         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
27406         generation of predefined stream operations (specs and bodies) should
27407         proceed. Under various restrictions these subprograms must not be
27408         generated.
27409
27410 2005-01-03  Thomas Quinot  <quinot@adacore.com>
27411
27412         * exp_dist.adb:
27413         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
27414         amount of PCS-specific code in RACW stubs generation.
27415         (Copy_Specification): Set Etype on copied formal parameter entities, as
27416         this information is needed for PolyORB stubs generation.
27417         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
27418         variable Dynamic_Async.
27419         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
27420         (Build_RPC_Receiver_Specification): Make generic again, as recent
27421         changes have allowed RPC receivers to have the same profile for both
27422         variants of the PCS.
27423         Reorganise RPC receiver generation to reduce differences between the
27424         structure of GARLIC and PolyORB RPC receivers.
27425         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
27426         PCS-specific.
27427         Simplify elaboration code for RCI packages.
27428
27429         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
27430         generation to reduce differences between the structure of GARLIC and
27431         PolyORB RPC receivers.
27432
27433         * s-stratt.adb: Fix typo in comment.
27434
27435 2005-01-03  Thomas Quinot  <quinot@adacore.com>
27436
27437         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
27438         copied from Make_Init_Call).
27439
27440         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
27441         reads and assignments on a temporary variable declared with appropriate
27442         discriminants.
27443
27444 2005-01-03  Robert Dewar  <dewar@adacore.com>
27445
27446         * i-c.adb (To_C): Raise CE if string is null and Append_Null
27447
27448 2005-01-03  Robert Dewar  <dewar@adacore.com>
27449
27450         * i-cstrin.adb (Update): Do not append a null in form called with a
27451         String. This avoids unintended behavior.
27452
27453 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
27454
27455         PR ada/17527
27456         * init.c: Fix warnings on Free BSD section.
27457
27458 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
27459
27460         PR ada/16949
27461         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
27462         xsinfo.adb).
27463
27464 2005-01-03  Vincent Celier  <celier@adacore.com>
27465
27466         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
27467         libraries when Unique_Compile is True (-u switch).
27468         (Gnatmake): ditto.
27469
27470 2005-01-03  Robert Dewar  <dewar@adacore.com>
27471
27472         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
27473         upper case letter or underscore after W, as allowed by spec.
27474
27475 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
27476
27477         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
27478         darwin port by using proper type definitions from header files.
27479         Use SIGTERM instead of SIGABRT for SIGADAABORT.
27480
27481 2005-01-03  Robert Dewar  <dewar@adacore.com>
27482
27483         * par.adb: Enhance error message handling for configuration file
27484         pragmas.
27485
27486 2005-01-03  Robert Dewar  <dewar@adacore.com>
27487
27488         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
27489         removed during the previous update (test properly for case of dividing
27490         largest negative number by -1, which generates overflow).
27491
27492 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
27493             Sergey Rybin  <rybin@adacore.com>
27494
27495         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
27496         to use as the defining identifier for a formal package.
27497         (Remove_Parent): If the instance takes place within (an instance of)
27498         a sibling, preserve private declarations of common parent.
27499
27500 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
27501
27502         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
27503         to determine whether one of the operands is a fixed-point type for
27504         which a user-defined multiplication or division operation might be
27505         defined.
27506
27507         * sem_res.adb (Valid_Conversion): The legality rules for conversions
27508         of access types are symmetric in Ada 2005: either designated type can
27509         be unconstrained.
27510
27511 2005-01-03  Vincent Celier  <celier@adacore.com>
27512
27513         * s-fileio.adb (Temp_File_Record): Change length of string component
27514         Name from L_tmpnam + 1 to max_path_len + 1.
27515
27516 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
27517
27518         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
27519         Self_Id.Deferral_Level = 0.
27520         (Do_Pending_Action): Move this function to the spec.
27521
27522         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
27523         Do_Pending_Action explicitely when needed, in case we're using
27524         No_Abort restrictions.
27525
27526         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
27527         deferral level since it will not get changed by the generated code.
27528         Keeping a default value of 1 would prevent some operations (e.g.
27529         select or delay) to proceed successfully.
27530
27531 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
27532             Robert Dewar  <dewar@adacore.com>
27533             Cyrille Comar  <comar@adacore.com>
27534
27535         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
27536         porting guide chapter (vms version).
27537         Revised doc title (removed "for native platforms") and subtitle.
27538         Add discussion on warning flag for obsolescent features. First we
27539         note that it applies to obsolete GNAT features, which was previously
27540         omitted. Second we contrast the behavior with that of the new
27541         Ada 2005 AI-368 restriction No_Obsolescent_Features.
27542         Preliminary rewriting of GNAT & libraries chapter in order to take
27543         into account default project locations & new project manager
27544         capabilities.
27545
27546 2005-01-03  Robert Dewar  <dewar@adacore.com>
27547
27548         * cstand.adb (Create_Operators): Clean up format and documentation of
27549         unary and binary operator result tables. No change in code, just
27550         reformatting and addition of comments.
27551
27552         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
27553         sem_ch2.adb: Minor reformatting
27554
27555         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
27556         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
27557         comments for Tree_Read and Tree_Write.
27558
27559 2005-01-03  Pascal Obry  <obry@adacore.com>
27560
27561         * exp_attr.ads: Minor reformatting.
27562
27563 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
27564
27565         * comperr.adb (Compiler_Abort): Add specialized message for GAP
27566         versions.
27567
27568 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
27569
27570         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
27571         whether the ancestor type is private, as may be the case with nested
27572         instantiations.
27573
27574 2004-12-30  Sohail Somani  <sohail@sohailsomani.com>
27575
27576         PR ada/19128
27577         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
27578
27579 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
27580
27581         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
27582         * utils2.c (build_unary_op): Likewise.
27583
27584 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27585
27586         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
27587
27588 2004-12-19  Richard Henderson  <rth@redhat.com>
27589
27590         * trans.c (gigi): Update gimplify_body call.
27591
27592 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
27593
27594         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
27595
27596 2004-12-07  Ed Falis  <falis@adacore.com>
27597
27598         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
27599         current task being suspended.
27600
27601         * init.c (__gnat_clear_exception): added to reset VxWorks exception
27602         count.
27603         (__gnat_map_signal): removed test for current task being suspended.
27604
27605 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
27606
27607         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
27608         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
27609         targets (such as AAMP).
27610
27611 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
27612
27613         * atree.adb (Visit_Itype): Create a new name for the generated itype,
27614         because the back-end may otherwise treat it as a redefinition of the
27615         old symbol.
27616
27617 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
27618
27619         * back_end.adb (Scan_Back_End_Switches): Accept --param.
27620
27621         * lang-specs.h: Accept --param.
27622
27623 2004-12-07  Vincent Celier  <celier@adacore.com>
27624
27625         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
27626         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
27627         Current_Body_Suffix => Ada_Body_Suffix).
27628         Take into account Externally_Built attribute.
27629
27630         * clean.adb (In_Extension_Chain): Always return False when one of the
27631         parameter is No_Project.
27632         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
27633         Ada_Language_Index).
27634         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
27635         Process_Languages for procedure Parse).
27636
27637         * gnatcmd.adb (Carg_Switches): New table.
27638         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
27639         Adapt to name changes in package Prj (Current_Spec_Suffix =>
27640         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
27641
27642         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
27643         Header_Num and function Hash are now declared in package Prj,
27644         not Prj.Com.
27645
27646         * prj.adb (Suffix_Of): New function.
27647         (Set (Suffix)): New procedure.
27648         (Hash): One function moved from Prj.Com
27649         (Is_Present, Language_Processing_Data_Of): New functions
27650         (Set): Two new procedures
27651         (Add_Language_Name, Display_Language_Name): New procedures
27652
27653         * prj.ads: (Suffix_Of): New function
27654         (Set (Suffix)): New procedure
27655         Add several types and tables for multi-language support.
27656         (Header_Num): Type moved from Prj.Com
27657         (Hash): Two functions moved from Prj.Com
27658         (Is_Present, Language_Processing_Data_Of): New functions
27659         (Set): Two new procedures
27660         (Add_Language_Name, Display_Language_Name): New procedures
27661         (Naming): Component name changes:
27662         Current_Spec_Suffix => Ada_Spec_Suffix,
27663         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
27664         Impl_Suffixes, Supp_Suffixes.
27665         (Project_Data): New components: Externally_Built, Supp_Languages,
27666         First_Language_Processing, Supp_Language_Processing, Default_Linker,
27667         Default_Linker_Path.
27668
27669         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
27670         new package Language_Processing with its attributes (Compiler_Driver,
27671         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
27672         Binder_Driver, Default_Linker).
27673
27674         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
27675         (Header_Num): Type moved to package Prj
27676
27677         * prj-env.adb: Adapt to name changes in package Prj
27678         (Current_Spec_Suffix => Ada_Spec_Suffix,
27679         Current_Body_Suffix => Ada_Body_Suffix).
27680
27681         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
27682         default to the project path, except the "-" is one of the directories
27683         in env var ADA_PROJECT_PATH.
27684         (Current_Project_Path): Global variable, replacing Project_Path
27685         that was in the body of Prj.Part.
27686         (Project_Path): New function
27687         (Set_Project_Path): New procedure
27688         Initialize Current_Project_Path during elaboration of the package
27689         Remove dependency on Prj.Com, no longer needed
27690
27691         * prj-ext.ads (Project_Path): New function
27692         (Set_Project_Path): New procedure
27693
27694         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
27695         suffix is defined for language <lang>.
27696         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
27697         accessing directly the components of Naming.
27698         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
27699         Reorganise of this package.
27700         Break procedure Check in several procedures.
27701
27702         * prj-nmsc.ads: Replace all procedures (Ada_Check,
27703         Other_Languages_Check and Language_Independent_Check) with a single
27704         procedure Check.
27705
27706         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
27707         Process_Languages, no longer needed.
27708
27709         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
27710         Current_Project_Path.
27711         Remove elaboration code, moved to the body of Prj.Ext
27712         Use new function Prj.Ext.Project_Path instead of old variable
27713         Project_Path.
27714         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
27715         When comparing with project paths on the stack, first put the resolved
27716         path in canonical case.
27717         (Parse_Single_Project): Set the path name of the project file in the
27718         tree to the normalized path.
27719
27720         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
27721         parameter Process_Languages, no longer needed.
27722         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
27723         Other_Languages_Check.
27724
27725         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
27726         to store the resolved canonical path of the project file.
27727         Remove dependency to Prj.Com, no longer needed
27728
27729         * prj-util.adb: Adapt to name changes in package Prj
27730         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
27731         Ada_Body_Suffix).
27732
27733         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
27734         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
27735         Externally_Built, Include_Option, Language_Processing.
27736
27737         * makegpr.adb: Numerous changes due to changes in packages
27738         Prj and Prj.Nmsc.
27739
27740         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
27741         default to the project path, except whe "-" is one of the directories
27742         in env var ADA_PROJECT_PATH.
27743         (Gnatls): In verbose mode, add the new section "Project Search Path:"
27744
27745 2004-12-07  Robert Dewar  <dewar@adacore.com>
27746
27747         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
27748
27749         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
27750         set -gnatR3m mode.
27751
27752         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
27753         flag. No longer needed now that we handle this in gnat1drv.adb.
27754
27755         * repinfo.ads: Minor reformatting
27756
27757 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27758             Olivier Hainque  <hainque@adacore.com>
27759             Eric Botcazou  <ebotcazou@adacore.com>
27760
27761         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
27762         TYPE_SIZE_UNIT of result type if SIZE is not specified.
27763         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
27764         of a bitfield, which we know is useless and causes trouble because of
27765         alignment implications.
27766
27767         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
27768         BSS sections.
27769         (process_attributes): Clear DECL_COMMON again when a section attribute
27770         is present.
27771         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
27772         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
27773         (create_field_decl): Special case ADDRESSABLE negative to mean
27774         "no bitfield creation", to be used by make_aligning_type. Don't
27775         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
27776         fields claimed addressable still have to be bitfields. Use
27777         value_factor_p instead of a raw binop construction to check for the
27778         position's alignment.
27779
27780 2004-12-07  Geert Bosch  <bosch@adacore.com>
27781
27782         * eval_fat.adb: Revert previous change.
27783
27784 2004-12-07  Thomas Quinot  <quinot@adacore.com>
27785             Ed Schonberg  <schonberg@adacore.com>
27786
27787         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
27788         with an implicit dereference as its prefix, use
27789         Insert_Explicit_Dereference instead of merely rewriting the prefix into
27790         an explicit dereference. This ensures that a reference to the original
27791         prefix is generated, if appropriate.
27792
27793         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
27794         dereference is rewritten to an explicit one, generate a reference to
27795         the entity denoted by its prefix using the original prefix node, so
27796         the dereference can be properly recorded as a read of the denoted
27797         access value, if appropriate.
27798
27799         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
27800         emitting 'assigned but never read' warning on a variable on the basis
27801         that it has an access type.
27802         (Check_References): Emit unreferenced warning when the scope is a
27803         subprogram body.
27804
27805 2004-12-07  Robert Dewar  <dewar@adacore.com>
27806             Ed Schonberg  <schonberg@adacore.com>
27807
27808         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
27809         intrinsic
27810
27811         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
27812         leaving call unchanged.
27813         This deals with the case where the pragma Import specified
27814         an external name, to be handled by the back end.
27815
27816         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
27817         subprogram which is Imported with convention Intrinsic if an
27818         External_Name argument is specified.
27819         (Process_Import_Or_Interface): Properly diagnose link name argument.
27820         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
27821         with Sem_Ch6.Cannot_Inline.
27822         (Process_Inline): Provide separate warning for inapplicable inline
27823         pragma.
27824         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
27825         treatment is uniform on different targets.
27826
27827 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
27828
27829         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
27830         construct is rewritten, preserve end label to permit source navigation.
27831
27832 2004-12-07  Thomas Quinot  <quinot@adacore.com>
27833
27834         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
27835         Specific_Build_Stub_Target): New subprograms.
27836         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
27837         the PCS implementation used, using the above PCS-customized subprograms.
27838         Minor reformatting.
27839         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
27840         for generation of DSA code targeted to the PolyORB PCS.
27841         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
27842         implementation of the partition communication subsystem in ancillary
27843         subprograms.
27844         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
27845         PolyORB_Support.Build_Stub_Type): New subrograms containing the
27846         PCS-specific part of Add_Stub_Type.
27847         (Insert_Partition_Check): Use runtime library function to perform
27848         E.4(19) check.
27849
27850         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
27851         (RE_Same_Partition): New entity, from s-parint.
27852
27853         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
27854
27855 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
27856
27857         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
27858         Output the copyright message on a separate line from the version
27859         message.
27860
27861 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
27862
27863         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
27864         compile-time warning.
27865
27866 2004-12-07  Robert Dewar  <dewar@adacore.com>
27867
27868         * g-regpat.adb: (Match): Change a misuse of or to or else
27869
27870 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
27871
27872         * lib-xref.adb:
27873         (Generate_Reference): Handle properly a reference to an entry formal,
27874          when an accept statement has a pragma Unreferenced for it.
27875
27876         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
27877         and the Has_Pragma_Unreferenced flag for each formal before analyzing
27878         the body, to ensure that warnings are properly emitted for each accept
27879         statement of a given task entry.
27880
27881 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
27882
27883         * Makefile.in: Add support for foreign threads on VMS.
27884
27885 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27886
27887         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
27888         Remove.
27889         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
27890
27891         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
27892
27893         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
27894         exception.
27895         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
27896
27897 2004-12-07  Robert Dewar  <dewar@adacore.com>
27898
27899         * nlists.adb (Prepend_Debug): Remove parameters and nest within
27900         Prepend.
27901         (Remove_Next_Debug): Same fix
27902
27903         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
27904         maintain back pointers now, though we did not used to, and comments
27905         were out of date).
27906         (Prepend): Remove pragma Inline.
27907         (Remove_Next): Same cleanup
27908
27909 2004-12-07  Thomas Quinot  <quinot@adacore.com>
27910
27911         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
27912         used to record an implicit dereference as a read operation on its
27913         prefix when operating under -gnatc. Necessary to avoid spurious
27914         'variable assigned but never read' warnings in that mode.
27915         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
27916         is a non-overloaded implicit dereference, call the above subprogram to
27917         ensure proper recording of references.
27918
27919 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
27920
27921         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
27922         to be resolved later as part of Analyze_Iteration_Scheme's call to
27923         Make_Index.
27924
27925 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
27926
27927         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
27928         prefix is not a scalar type, place error message on prefix, not on
27929         type entity.
27930
27931 2004-12-07  Bernard Banner  <banner@adacore.com>
27932
27933         * vxaddr2line.adb: Add support for x86 vxworks
27934
27935 2004-12-07  Thomas Quinot  <quinot@adacore.com>
27936
27937         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
27938         documentation of the behaviour of these functions when passed an IP
27939         address that has no record in the system hosts database and no reverse
27940         record in the DNS.
27941
27942         * cstand.adb, a-tags.ads: Fix typos in comment.
27943
27944 2004-12-07  Robert Dewar  <dewar@adacore.com>
27945
27946         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
27947         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
27948         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
27949         s-poosiz.ads: Minor reformatting
27950
27951         * make.adb: Minor reformatting
27952         Add some ??? comments asking for more comments
27953
27954         * s-poosiz.adb: Minor reformatting
27955         Add comments on alignment requirement
27956
27957         * sinfo.ads: Remove obsolete comment and fix typo.
27958
27959 2004-12-07  Vincent Celier  <celier@adacore.com>
27960             Sergey Rybin  <rybin@adacore.com>
27961
27962         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
27963         Files" with the new tool and package names.
27964         Reformatting to suppress most of the warnings for line too long
27965         Document the new section "Project Search Path:" in the output of
27966         gnatls -v.
27967         Add gnatmetric section
27968
27969 2004-12-07  Vincent Celier  <celier@adacore.com>
27970
27971         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
27972         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
27973         and -eit to -ept. Added qualifier
27974         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
27975
27976 2004-11-27  Andreas Schwab  <schwab@suse.de>
27977
27978         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
27979
27980 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
27981
27982         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
27983         internal implementation unit GNAT.Sockets.Thin,
27984         as their usage for sockets is non-portable (using the read and write
27985         functions from the system runtime library is fine on UNIX but won't
27986         work under Windows).
27987
27988         * mingw32.h: Update copyright notice.
27989
27990 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
27991
27992         * ada-tree.h: Minor reformatting of previous change to avoid lines
27993         longer than 79 characters.
27994
27995 2004-11-25  Olivier Hainque  <hainque@adacore.com>
27996
27997         * tb-gcc.c: GCC infrastructure based implementation of
27998         __gnat_backtrace.
27999
28000 2004-11-24  Steven Bosscher  <stevenb@suse.de>
28001
28002         * misc.c (gnat_post_options): Don't clear
28003         flag_inline_functions.
28004
28005 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
28006
28007         PR ada/17986
28008         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
28009         tree.
28010
28011 2004-11-21  Andreas Jaeger  <aj@suse.de>
28012
28013         * stylesw.adb: Change Style_Check_Subprogram_Order to
28014         Style_Check_Order_Subprograms.
28015
28016 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
28017
28018         * adaint.h, adaint.c
28019         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
28020         to avoid warnings.
28021         Add also a cast to kill another warning.
28022         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
28023         parameter with the priority class of the parent process instead of
28024         always using the NORMAL_PRIORITY_CLASS.
28025         (__gnat_dup): New function.
28026         (__gnat_dup2): New function.
28027         (__gnat_is_symbolic_link): Enable the effective body of this
28028         function when __APPLE__ is defined.
28029
28030         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
28031         Update comments.
28032
28033 2004-11-18  Olivier Hainque  <hainque@adacore.com>
28034
28035         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
28036         address of which may be used to represent "others" and "all others"
28037         choices in exception tables, instead of the current harcoded
28038         (void *)0 and (void *)1.
28039         (Setup_Exception): Do nothing in the GNAT SJLJ case.
28040
28041         * gigi.h (others_decl, all_others_decl): New decls representing the
28042         new Others_Value and All_Others_Value objects.
28043         (struct attrib): Rename "arg" component as "args", since GCC expects a
28044         list of arguments in there.
28045
28046         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
28047         corresponding objects exported by a-exexpr, instead of hardcoded dummy
28048         addresses.
28049
28050         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
28051         others_decl and all_others_decl instead of hardcoded dummy addresses
28052         to represent "others" and "all others" choices, which is cleaner and
28053         more flexible with respect to the possible eh pointer encoding policies.
28054
28055         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
28056         (process_attributes): Account for the naming change of the "args"
28057         attribute list entry component.
28058
28059         * decl.c (build_attr_list): Rename into prepend_attributes to allow
28060         cumulating attributes for different entities into a single list.
28061         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
28062         attributes for the current entity and propagate first subtype
28063         attributes to other subtypes.
28064         <E_Procedure>: Attribute arguments are attr->args and not
28065         attr->arg any more.
28066         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
28067         argument provided, as this is what GCC expects. Use NULL_TREE instead
28068         of 0 for trees.
28069
28070 2004-11-18  Robert Dewar  <dewar@adacore.com>
28071
28072         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
28073         Minor reformatting througout (including new function specs)
28074         Add ??? comments asking for clarification.
28075
28076 2004-11-18  Thomas Quinot  <quinot@adacore.com>
28077
28078         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
28079         incomplete duplicate implementation of this subprogram from butil.
28080
28081 2004-11-18  Thomas Quinot  <quinot@adacore.com>
28082
28083         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
28084         procedures factors the common processing for building an RPC receiver
28085         for an RCI package or an RACW type.
28086         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
28087         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
28088         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
28089         in use.
28090         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
28091         Add_RACW_Features.
28092         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
28093         Add_RAST_Features.
28094         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
28095         distribution subprogram identifiers that are either subprogram numbers
28096         or strings.
28097         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
28098         string distribution identifiers assigned to a given subprogram.
28099         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
28100         (Add_RAS_Dereference_TSS): Add comments.
28101         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
28102         is not referenced yet because it will be used by the PolyORB DSA
28103         implementation.
28104         (Insert_Partition_Check): Remove fossile code.
28105         (First_RCI_Subprogram_Id): Document this constant.
28106         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
28107         RAS_Access TSS.
28108         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
28109         replaced with calls to Get_Library_Unit_Name_String. Previously there
28110         were several instances of the same code in different locations in the
28111         compiler; this checkin completes the replacement of all of these
28112         instances with calls to a common subprogram.
28113         Minor reformatting.
28114
28115         * sem_dist.adb: Remove comment noting that RPC receiver generation
28116         should be disabled for RACWs that implement RASs.
28117         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
28118
28119         * sem_util.ads, sem_util.adb (Has_Stream): New function
28120         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
28121         qualified name of a library unit into the name buffer.
28122         (Note_Possible_Modification): Generate a reference only
28123         if the context comes from source.
28124
28125         * snames.ads (PCS_Names): New subtype corresponding to names of
28126         supported implementations of the Partition Communication Subsystem
28127         (PCS) (i.e. the runtime library support modules for the distributed
28128         systems annex).
28129
28130 2004-11-18  Robert Dewar  <dewar@adacore.com>
28131             Ed Schonberg  <schonberg@adacore.com>
28132
28133         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
28134         (Has_Rep_Pragma): New function
28135         (Has_Attribute_Definition_Clause): New function
28136         (Record_Rep_Pragma): Moved here from sem_ch13.adb
28137         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
28138
28139         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
28140
28141         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
28142         (Expand_Pragma_Psect_Object): New procedure
28143         These procedures contain the revised and cleaned up processing for
28144         these two pragmas. This processing was formerly in Sem_Prag, but
28145         is more appropriately moved here. The cleanup involves making sure
28146         that the pragmas are properly attached to the tree, and that no
28147         nodes are improperly shared.
28148
28149         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
28150         pragmas to Exp_Prag, which is more appropriate.
28151         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
28152         check for duplicates Remove use of Is_Psected flag, no longer needed.
28153         Use new Make_String_Literal function with string.
28154
28155         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
28156         that are functions return universal values, that have to be converted
28157         to the context type.
28158         Use new Make_String_Literal function with string.
28159         (Get_Stream_Convert_Pragma): New function, replaces the use of
28160         Get_Rep_Pragma, which had to be kludged to work in this case.
28161
28162         * freeze.adb: Use new Has_Rep_Pragma function
28163
28164         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
28165         function with string.
28166         Use new Has_Rep_Pragma function.
28167
28168         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
28169         string argument.
28170
28171 2004-11-18  Robert Dewar  <dewar@adacore.com>
28172
28173         * errout.ads, errout.adb: (First_Sloc): New function
28174
28175         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
28176         check (-gnatyx) instead of being included as a redundant construct
28177         warning.
28178
28179         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
28180         Style_Check_Order_Subprograms.
28181
28182         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
28183         stylesw.adb: Add Style_Check_Xtra_Parens
28184
28185         * usage.adb: Add line for -gnatyx (check extra parens)
28186
28187         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
28188
28189 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
28190             Robert Dewar  <dewar@adacore.com>
28191
28192         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
28193         discriminant of a constrained subtype, analyze the copy of the
28194         corresponding constraint, because in some cases it may be only
28195         partially analyzed.
28196         Removes long-lived ??? comments.
28197
28198         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
28199         handled controlled or secondary-stack expressions within the
28200         iteration_scheme of a loop.
28201
28202         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
28203         bounds that may contain functions calls, to prevent memory leaks when
28204         the bound contains a call to a function that uses the secondary stack.
28205         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
28206         generate temporaries for loop bounds that might contain function calls
28207         that require secondary stack and/or finalization actions.
28208
28209         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
28210         selected component and the selector is overloadable (not just a
28211         function) treat as function call, Analyze_Call will disambiguate if
28212         necessary.
28213         (Analyze_Selected_Component): Do not generate an actual subtype for the
28214         selected component if expansion is disabled. The actual subtype is only
28215         needed for constraint checks.
28216         (Analyze_Allocator): If restriction No_Streams is set, then do
28217         not permit objects to be declared of a stream type, or of a
28218         composite type containing a stream.
28219
28220         * restrict.ads: Remove the a-stream entry from Unit_Array, since
28221         No_Streams no longer prohibits with'ing this package.
28222
28223         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
28224         discriminants, but the parent base has unknown discriminants, there is
28225         no discriminant constraint to inherit. Such a discrepancy can arise
28226         when the actual for a formal type with unknown discriminants is a
28227         similar private type whose full view has discriminants.
28228         (Analyze_Object_Declaration): If restriction No_Streams is set, then
28229         do not permit objects to be declared of a stream type, or of a
28230         composite type containing a stream.
28231
28232 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
28233
28234         * exp_dbug.ads: Update documentation to reflect simpler encoding for
28235         protected operations.
28236
28237         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
28238         generated name, it complicates decoding in gdb and hinders debugging
28239         of protected operations.
28240         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
28241         flag for the protected entry barrier function.
28242         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
28243         flag for the protected entry function.
28244
28245 2004-11-18  Nicolas Setton  <setton@adacore.com>
28246
28247         * expect.c: Define __unix__ when __APPLE__ is defined.
28248
28249         * Makefile.in: Inform the value of the variable GMEM_LIB in the
28250         Darwin-specific section.
28251
28252         * lang-specs.h: Change the placement of the %1 marker.
28253         Works around the fact that gcc adds -fPIC by default under Darwin.
28254
28255 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
28256
28257         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
28258         type of the object with the packed array type, set the Analyzed flag
28259         on the object if it is an entity or simple indexed component, to avoid
28260         spurious type errors.
28261
28262 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
28263
28264         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
28265         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
28266         separate line from the version message.
28267
28268 2004-11-18  Ed Falis  <falis@adacore.com>
28269
28270         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
28271         vthreads.
28272         (init_float): Eliminate initialization of floating point status for
28273         AE653. The instructions have no effect for vThreads.
28274
28275 2004-11-18  Vincent Celier  <celier@adacore.com>
28276
28277         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
28278         gnatbind is invoked with -shared.
28279
28280 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
28281
28282         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
28283         for Detect_Blocking which is redundant with the check done within the
28284         procedure Protected_Single_Entry_Call.
28285         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
28286         Detect_Blocking which is redundant with the check done within the
28287         procedure Protected_Single_Entry_Call.
28288
28289 2004-11-18  Vincent Celier  <celier@adacore.com>
28290
28291         * makegpr.adb (Compile): Put the compiling switches (in package
28292         Compiler and on the command line) immediately after "-c", instead of
28293         at the end of the command line invocation of the compiler, when
28294         compiling a non-Ada file.
28295         (Build_Global_Archive): When there is no need to rebuild the archive,
28296         set Global_Archive_Exists, so that the archive is passed to the linker
28297         if one is needed.
28298
28299 2004-11-18  Robert Dewar  <dewar@adacore.com>
28300             Sergey Rybin  <rybin@adacore.com>
28301
28302         * gnat_ugn.texi:
28303         Remove extra paren check from list of checks for redundant constructs
28304         Add documentation of new -gnatyx style check (check extra parens)
28305         Remove paragraph about gnatelim debug options.
28306
28307         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
28308         objects rather than forbidding dependencies on the package Ada.Streams.
28309
28310         * sinfo.ads: Add ??? note that we should document pragmas passed to
28311         back end.
28312
28313         * g-expect.ads: Fix a few typos in the comments.
28314
28315 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
28316
28317         * misc.c (gnat_handle_option): Use %< and %> for quoting in
28318         warning message.
28319
28320 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
28321
28322         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
28323
28324 2004-11-07  Andreas Schwab  <schwab@suse.de>
28325
28326         * Makefile.in (install-gnatlib): Remove spurious hyphen.
28327
28328 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
28329
28330         PR ada/18228
28331         * Makefile.in (darwin): Set soext to .dylib.
28332
28333 2004-10-26  Vincent Celier  <celier@gnat.com>
28334             Thomas Quinot   <quinot@act-europe.fr>
28335
28336         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
28337         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
28338         there is no use of GNAT.Sockets.Constants.
28339         Remove remaining pragma Import for C_Write
28340         Remove C_Read and C_Write from internal implementation unit
28341         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
28342         the read and write functions from the system runtime library is fine
28343         on UNIX but won't work under Windows).
28344
28345         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
28346         (Check_Selector): Use C_Recv instead of C_Read.
28347         Selectors are the GNAT.Sockets abstraction to perform a select()
28348         call on a set of descriptors. To allow abortion of an ongoing
28349         select operation, some data is written to a dedicated socket that
28350         is always monitored.
28351         Under Windows, the write and read library functions cannot operate
28352         on sockets, so we need to use send and recv instead, which is portable
28353         across all supported platforms.
28354
28355         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
28356         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
28357         (using the read and write functions from the system runtime library is
28358         fine on UNIX but won't work under Windows).
28359
28360 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
28361
28362         * mlib-tgt-darwin.adb: New file.
28363
28364         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
28365         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
28366         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
28367         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
28368         subprogram body.
28369
28370         * Makefile.in: Add support for building shared libraries under Darwin.
28371         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
28372         the low level EH init subprogram to be called from __gnat_initialize.
28373
28374         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
28375         indicates which options to pass to the archive indexer.
28376
28377         * mlib-utl.adb: Add support for calling ranlib with additional
28378         options. This is needed for instance under Mac OS X.
28379         (Ranlib_Options): New global variable, used to store the potential
28380         options to pass to ranlib.
28381         (Ar): Use Ranlib_Options when spawning ranlib.
28382         (Initialize): Set the value of ranlib option.
28383
28384 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
28385
28386         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
28387         instead of 8K, to reflect the real potential needs for stack-checking
28388         in the ZCX case.
28389
28390 2004-10-26  Pascal Obry  <obry@gnat.com>
28391
28392         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
28393
28394         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
28395         Windows only the initial thread stack size can be set so it is good to
28396         start we a low stack size.
28397         The OS will adjust the size as needed.
28398
28399 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
28400             Nicolas Setton  <setton@act-europe.fr>
28401
28402         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
28403         "__unix__" instead of "unix".
28404         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
28405         sections were just mistakenly ignored. The former is
28406         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
28407         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
28408         of hpux. This prevents an unwanted definition of the symbol
28409         convert_addresses in adaint.o.
28410
28411 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
28412
28413         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
28414         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
28415
28416 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
28417
28418         * a-filico.ads, a-filico.adb: fix incorrect header.
28419
28420 2004-10-26  Javier Miranda  <miranda@gnat.com>
28421
28422         * a-ststio.ads: Fix typo in identifier
28423
28424 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
28425
28426         * sem_ch4.adb: Minor reformatting.
28427
28428 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
28429
28430         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
28431         enabled, check the result of unary and binary operations when the
28432         expression is the right-hand side of an assignment.
28433
28434 2004-10-26  Vincent Celier  <celier@gnat.com>
28435
28436         * clean.adb (Delete): Do not output warnings when in quiet output and
28437         not in verbose mode.
28438         (Force_Deletions): New Boolean flag, defaulted to False
28439         (Delete): Only delete a file if it is writable, and when
28440         Force_Deletions is True.
28441         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
28442         (Usage): Line for new switch -f
28443         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
28444         own.
28445
28446 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
28447
28448         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
28449         JM type only if its size matches that of the wrapper.  When a size is
28450         prescribed and the field is not aliased, remove the wrapper of a JM
28451         type only if the size is not greater than that of the packed array.
28452         (gnat_to_gnu_entity): Change the extension of packed array wrappers
28453         from LJM to JM.
28454
28455 2004-10-26  Geert Bosch  <bosch@gnat.com>
28456
28457         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
28458         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
28459         (Pred): Implement in terms of Succ.
28460
28461 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
28462
28463         * exp_aggr.adb (Safe_Component): An aggregate component that is an
28464         unchecked conversion is safe for in-place use if the expression of the
28465         conversion is safe.
28466         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
28467         be expandable in place even if the aggregate does not come from source.
28468         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
28469         designated object of an allocator in place, rather than building it
28470         first on the stack. The previous scheme forces a full copy of the array,
28471         and may be altogether unsusable if the size of the array is too large
28472         for stack allocation.
28473
28474 2004-10-26  Robert Dewar  <dewar@gnat.com>
28475
28476         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
28477         compares if the component is atomic.
28478
28479         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
28480         array assignment if the component type is atomic.
28481
28482 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
28483             Eric Botcazou  <ebotcazou@act-europe.fr>
28484
28485         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
28486         is aliased and is a by_reference type, do not pass by copy.
28487         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
28488         detect whether the call is in the right side of an assignment or
28489         the expression of an object declaration.  Recurse on component
28490         association within aggregates.
28491         Call it in the condition that determines whether the temporary is
28492         necessary for correct stack-checking.
28493
28494 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
28495
28496         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
28497         RACW_Type, used in the PolyORB version.
28498         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
28499         version and the GARLIC version.
28500
28501         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
28502         Rename RCI_Info to RCI_Locator for better consistency between the
28503         GARLIC and PolyORB versions of the distributed systems annex.
28504         (DSA_Implementation_Name): This enumeration lists the possible
28505         implementations of the Partition Communication Subsystem for the
28506         Distributed Systems Annex (DSA). The three available implementations
28507         are the dummy stub implementation (No_DSA), and two versions based on
28508         two different distribution runtime libraries: GARLIC and PolyORB. Both
28509         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
28510         technology.
28511         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
28512         that organization.
28513
28514         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
28515         between the GARLIC and PolyORB versions of the distributed systems
28516         annex.
28517         Remove RE_Unbounded_Reclaim_Pool since it is unused.
28518
28519 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
28520
28521         * gnat1drv.adb: Suppress calling the back end when
28522         Frontend_Layout_On_Target is true.
28523
28524 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
28525
28526         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
28527         Set_Read_Only): New subprograms.
28528         These new routines allow the user to set or unset the Owner execute
28529         and Owner write permission flags on a file.
28530
28531         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
28532         GNAT.OS_Lib.Set_Executable instead of rolling our own.
28533
28534 2004-10-26  Matthew Gingell  <gingell@gnat.com>
28535
28536         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
28537
28538 2004-10-26  Pascal Obry  <obry@gnat.com>
28539
28540         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
28541         memory before the faulting page we properly test the process read
28542         access for this address using appropriate Win32 routine.
28543         (HPUX sections): guard with "__hpux__" instead of "hpux".
28544
28545 2004-10-26  Robert Dewar  <dewar@gnat.com>
28546
28547         * lib-xref.adb (Generate_Reference): Don't complain about reference to
28548         entry parameter if pragma Unreferenced set, since we do not properly
28549         handle the case of multiple parameters.
28550
28551 2004-10-26  Vincent Celier  <celier@gnat.com>
28552
28553         * prj-env.adb: (Contains_ALI_Files): New Boolean function
28554         (Ada_Objects_Path.Add): For a library project, add to the object path
28555         the library directory only if there is no object directory or if the
28556         library directory contains ALI files.
28557         (Set_Ada_Paths.Add.Recursive_Add): Ditto
28558
28559 2004-10-26  Vincent Celier  <celier@gnat.com>
28560
28561         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
28562         extension of library projects.
28563
28564         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
28565         path defaults to ".:<prefix>/lib/gnat".
28566         (Parse): For an extending all project, allow direct import of a project
28567         that is virtually extended.
28568
28569         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
28570         the specified name is directly imported, return its ID. Otherwise, if
28571         an extension of this project is imported, return the ID of the
28572         extension.
28573
28574 2004-10-26  Robert Dewar  <dewar@gnat.com>
28575
28576         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
28577         (Sub3): New procedure, used by Scaled_Divide
28578         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
28579         correct more than one instance of failure to propagate carries
28580         correctly.
28581         (Double_Divide): Handle overflow case of largest negative number
28582         divided by minus one.
28583
28584         * s-arit64.ads (Double_Divide): Document that overflow can occur in
28585         the case of a quotient value out of range.
28586         Fix comments.
28587
28588 2004-10-26  Robert Dewar  <dewar@gnat.com>
28589
28590         * s-bitops.adb (Bit_Eq): Remove redundant check.
28591
28592         * s-bitops.ads: Minor comment updates
28593         Change some occurrences of Address to System.Address
28594
28595         * s-carsi8.ads: Fix minor cut-and-paste error in comments
28596
28597 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
28598
28599         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
28600         accessibility check to prefix that is a protected operation.
28601
28602 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
28603
28604         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
28605         empty, post message on stub.
28606
28607 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
28608             Javier Miranda  <miranda@gnat.com>
28609
28610         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
28611         current instance appears within a unit that is directly in the context
28612         of the main unit.
28613         Used to determine whether the body of the instance should be analyzed
28614         immediately after its spec, to make its subprogram bodies available
28615         for front-end inlining.
28616         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
28617         constraint is not allowed on the component type (AARM 12.5.3(3))
28618
28619 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
28620
28621         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
28622         'Storage_Pool): enhance, document & limit detection of non-sharable
28623         internal pools.
28624
28625         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
28626
28627         * s-pooglo.ads: Add more documentation now that this pool is properly
28628         documented.
28629
28630 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
28631
28632         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
28633         or protected type with discriminants, do not constrain the
28634         corresponding record type if the subtype declaration has no
28635         discriminant constraints. This can be the case in source code, or in
28636         the subtype declaration created to rename an actual type within an
28637         instantiation.
28638
28639 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
28640
28641         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
28642         different kind of stub (possibly wrong name for file), do not check
28643         for conformance.
28644         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
28645         includes call to some function that returns an unconstrained type, do
28646         not inline.
28647
28648 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
28649
28650         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
28651         appear in the code for the main unit. Dependencies among units in the
28652         context of the main unit are established when those other units are
28653         compiled. Otherwise spurious elaboration constraints can generate
28654         incorrect elaboration circularities.
28655
28656 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
28657             Ed Schonberg   <schonberg@gnat.com>
28658
28659         * sem_util.adb (Is_Aliased_View): Defend against the case where this
28660         subprogram is called with a parameter that is not an object name. This
28661         situation arises for some cases of illegal code, which is diagnosed
28662         later, and in this case it is wrong to call Is_Aliased, as that might
28663         cause a compiler crash.
28664         (Explain_Limited_Type): Refine previous fix to include
28665         inherited components of derived types, to provide complete information.
28666
28667         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
28668         is the prival for a protected object.
28669         It is necessary to mark this entity as a variable, in addition to
28670         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
28671         modified to avoid checking the Aliased flag on entities that are not
28672         objects. (Checking that flag for non-objects is erroneous and could
28673         lead to a compiler crash).
28674
28675 2004-10-26  Robert Dewar  <dewar@gnat.com>
28676
28677         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
28678         X_Frac = 0.5, then we know that the number X must be positive.
28679         (Succ): Remove the same redundant test, and also fix the primary test
28680         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
28681         Minor reformatting
28682         (Decompose): Add fuller comments to spec
28683
28684 2004-10-26  Pascal Obry  <obry@gnat.com>
28685
28686         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
28687         validity (process must have read access). Set to 0 in all other cases.
28688         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
28689         violation on Win32.
28690         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
28691         segmentation violation.
28692
28693 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
28694
28695         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
28696         whose type is a constructed subtype of an aliased object with an
28697         unconstrained nominal subtype, convert the actual to the constructed
28698         subtype before taking its address.
28699
28700 2004-10-26  Vincent Celier  <celier@gnat.com>
28701
28702         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
28703         (Is_Path_Name_Case_Sensitive): New function
28704
28705         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
28706         (Base_Name, Simple_Name, Current_Directory, Compose,
28707         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
28708         the result.
28709
28710 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
28711             Vasiliy Fofanov  <fofanov@act-europe.fr>
28712             Vincent Celier   <celier@gnat.com>
28713
28714         * gnat_ugn.texi: Generalize "finding memory problems" section into a
28715         "memory management issues" section and document some of the useful
28716         memory pools provided as part of the GNAT library.
28717         Remove "virtual" from declaration of A::method2 in
28718         the simple example of Ada/C++ mixed system.
28719         Library Projects may be virtually extended: their virtual extensions
28720         are not Library Projects.
28721         Added section on extending project hierarchies.
28722
28723 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
28724
28725         * adaint.c (__gnat_get_libraries_from_registry): Cast value
28726         to LPBYTE.
28727         (__gnat_portable_spawn): Remove const.
28728
28729         * mingw32.h (MAXPATHLEN): Check for previous definition.
28730
28731 2004-10-17  Matthias Klose  <doko@debian.org>
28732
28733         * gnatvsn.ads: Set gnat library version to 4.0.
28734
28735 2004-10-05  Vincent Celier  <celier@gnat.com>
28736
28737         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
28738
28739 2004-10-04  Laurent Guerby  <laurent@guerby.net>
28740
28741         PR ada/15156
28742         * Makefile.in: Define and use RANLIB_FLAGS.
28743
28744 2004-10-04  Pascal Obry  <obry@gnat.com>
28745
28746         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
28747         other x86 platforms).
28748
28749 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
28750
28751         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
28752         in general and triggers stack alignment adjustment for thread entry
28753         points on targets where this is necessary.
28754
28755 2004-10-04  Bernard Banner  <banner@gnat.com>
28756
28757         PR ada/13897
28758         * Makefile.in: Add section for powerpc linux
28759         Add variant i-vxwork-x86.ads
28760
28761         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
28762
28763 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
28764
28765         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
28766         table registration calls when need be. Ensures no reference to the crt
28767         ctors symbol are issued in the SJLJ case, which avoids possible
28768         undefined symbol errors in the case of modules to be statically linked
28769         with the kernel.
28770
28771 2004-10-04  Javier Miranda  <miranda@gnat.com>
28772
28773         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
28774         in-line the code corresponding to subprogram Analyze_Actuals. In
28775         addition, analyze the actuals only in case of subprogram call.
28776
28777 2004-10-04  Ed Falis  <falis@gnat.com>
28778
28779         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
28780
28781 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
28782
28783         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
28784         in the documentation.
28785
28786 2004-10-04  Robert Dewar  <dewar@gnat.com>
28787
28788         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
28789         IF and CASE.
28790         (Analyze_Block_Statement): Add circuitry to detect following dead code
28791         (Check_Unreachable_Code): Handle case of block exit
28792
28793 2004-10-04  Robert Dewar  <dewar@gnat.com>
28794
28795         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
28796         (XMatchD): Avoid warning for Logic_Error call
28797
28798 2004-10-04  Robert Dewar  <dewar@gnat.com>
28799
28800         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
28801         consider expressions buried within a procedure actual to be an actual.
28802         This caused some blowups with uses of packed slices within a procedure
28803         actual.
28804
28805 2004-10-04  Robert Dewar  <dewar@gnat.com>
28806
28807         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
28808         longer need to be initialized to zero.
28809         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
28810         initialized to zero.
28811
28812         * checks.adb (Expr_Known_Valid): Packed arrays are now always
28813         considered valid, even if the representation is modular. That's correct
28814         now that we no longer initialize packed modular arrays to zero.
28815
28816         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
28817         suffixes. These are now documented as the only cases in which the
28818         debugger ignores outer records.
28819         Previously, the spec allowed arbitrary suffixes for this purpose.
28820         Change name of LJM to JM for packed array pad records
28821         Create separate section on packed array handling, and add a whole new
28822         set of comments to this section describing the situation with packed
28823         modular types and justification requirements depending on endianness.
28824
28825 2004-10-04  Robert Dewar  <dewar@gnat.com>
28826
28827         * a-except.adb: Add a comment for last change
28828
28829         * einfo.ads: Minor spelling correction in comment
28830
28831         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
28832
28833         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
28834         messages.
28835
28836         * sem_util.ads: Minor comment update
28837
28838 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
28839
28840         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
28841         Inline_Always when in Configurable_Run_Time mode.
28842
28843         * sem_prag.adb (Process_Convention): If entity is an inherited
28844         subprogram, apply convention to parent subprogram if in same scope.
28845         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
28846         when in Configurable_Run_Time mode.
28847
28848 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
28849
28850         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
28851         class_wide type after component list has been inherited.
28852
28853 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
28854
28855         * sem_ch12.adb (Check_Generic_Actuals): New predicate
28856         Denotes_Previous_Actual, to handle properly the case of a private
28857         actual that is also the component type of a subsequent array actual.
28858         The visibility status of the first actual is not affected when the
28859         second is installed.
28860         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
28861         make fully recursive the treatment of formals of packages declared
28862         with a box.
28863         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
28864         the above on exit from an instantiation.
28865         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
28866         current instantiation which is now complete.
28867         (Analyze_Package_Instantiation): No instantiated body is needed if the
28868         main unit is generic. Efficient, and avoid anomalies when a instance
28869         appears in a package accessed through rtsfind.
28870
28871 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
28872
28873         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
28874         do not generate a declaration for a temporary if the call is part of a
28875         library-level instantiation.
28876
28877 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
28878
28879         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
28880         searching for a limited component to flag.
28881
28882         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
28883         expansion of Input, to account for the fact that the implicit call
28884         generated by the attribute reference must freeze the user-defined
28885         stream subprogram. This is only relevant to 'Input, because it can
28886         appear in an object declaration, prior to the body of the subprogram.
28887
28888         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
28889         expansion can proceed and further errors uncovered.
28890         (Minor clean up): Fix cases of using | instead of \ for continuation
28891         messages.
28892
28893 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28894
28895         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
28896
28897         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
28898         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
28899         Use gcc_assert and gcc_unreachable.
28900
28901         * decl.c (gnat_to_gnu_entity, case object): Check and process a
28902         specified alignment before validating size.
28903         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
28904         stripped-down declaration for the type of the inner field when making
28905         a JM type.
28906
28907         * utils.c (finish_record_type): Do not compute the size in units
28908         incrementally. Instead compute it once for the rep clause case.
28909         Use gcc_assert and gcc_unreachable.
28910
28911 2004-10-04  Vincent Celier  <celier@gnat.com>
28912
28913         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
28914         in file name.
28915         (Is_Valid_Path_Name): Take '/' as a directory separator.
28916
28917 2004-10-04  Vincent Celier  <celier@gnat.com>
28918
28919         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
28920         (Extended_Project) only if Extended_Project is defined, to avoid
28921         assertion error.
28922         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
28923         resolved path.
28924         (Parse_Single_Project): Ditto.
28925
28926         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
28927         Add_To_Project_Path for virtual projects.
28928
28929 2004-10-04  Vincent Celier  <celier@gnat.com>
28930
28931         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
28932         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
28933         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
28934         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
28935         parameter Options_2.
28936
28937         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
28938         Build_Dynamic_Library with an empty Options_2.
28939
28940         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
28941         default anymore.
28942
28943         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
28944         directory separator, if any.
28945         (Gprmake): Do not allow mains on the command line for library projects.
28946         Do not attempt to link when the project is a library project.
28947         (Library_Opts): New table to store Library_Options.
28948         (Build_Library): If Library_Options is specified, pass these options
28949         when building a shared library.
28950
28951 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
28952
28953         * s-tposen.adb (Service_Entry): The object must be always unlocked at
28954         the end of this procedure now that the unlock operation was inserted
28955         by the expander.
28956
28957 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
28958
28959         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
28960         corresponding to the Preallocated_Stacks flags in System.
28961         (Get_Target_Parameters): Including the processing for
28962         Preallocated_Stacks.
28963
28964         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
28965         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
28966         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
28967         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
28968         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
28969         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
28970         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
28971         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
28972         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
28973         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
28974         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
28975         used to signal whether the compiler creates the required stacks and
28976         descriptors for the different tasks (when True) or it is done by the
28977         underlying operating system at run time (when False).
28978         It is initially set to False in all targets.
28979
28980         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
28981         if it is supported by the target.
28982         (Make_Task_Create_Call): Pass the stack address if it has been
28983         previously created. Otherwise pass a Null_Address.
28984
28985         * snames.adb: Add _stack.
28986
28987         * snames.ads: Add Name_uStack. Required to allow the expander to
28988         statically allocated task stacks.
28989
28990         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
28991         Stack_Address argument.
28992         Check that its value is equal to Null_Address because this target does
28993         not support the static stack allocation.
28994
28995 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
28996
28997         * usage.adb: Change "pragma inline" to "pragma Inline" in information
28998         and error messages
28999
29000 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
29001
29002         * exp_dist.adb: Split declaration of asynchronous flag out of
29003         Add_RACW_Read_Attribute.
29004         Minor reformatting for better alignment with PolyORB version.
29005         Store the entity for the asynchronous flag of an RACW, rather than the
29006         expression, in the asynchronous flags table. This will allow this flag
29007         to be used in other subprograms beside Add_RACW_Read_Attribute.
29008
29009 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
29010
29011         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
29012         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
29013         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
29014         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
29015         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
29016         sockets constant MSG_NOSIGNAL (Linux-specific).
29017         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
29018         all Send operations.
29019         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
29020         from trigerring SIGPIPE.
29021         Rename components to avoid clash with Ada 2005 possible reserved
29022         word 'interface'.
29023         (Check_Selector): When the select system call returns with an error
29024         condition, propagate Socket_Error to the caller.
29025
29026 2004-10-01  Jan Hubicka  <jh@suse.cz>
29027
29028         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
29029
29030 2004-09-23  Robert Dewar  <dewar@gnat.com>
29031
29032         PR ada/17540
29033         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
29034         instead do this at freeze time (we won't do it if there is an address
29035         clause).
29036         Change "pragma inline" to "pragma Inline" in information and error
29037         messages.
29038         Minor reformatting.
29039
29040         * freeze.adb (Check_Address_Clause): Remove previous change, not the
29041         right way of doing things after all.
29042         (Freeze_Entity): For object, set Is_Public for imported entities
29043         unless there is an address clause present.
29044
29045 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
29046
29047         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
29048         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
29049         ensures proper handling of types with rep clauses, which might have
29050         their TYPE_SIZE set already.
29051
29052 2004-09-21  Robert Dewar  <dewar@gnat.com>
29053
29054         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
29055         packed array types in both little- and big-endian cases. This change
29056         ensures that we no longer count on the unused bits being initialized
29057         for such types (and in particular ensures that equality testing will
29058         only read the relevant bits).
29059         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
29060         These changes mean that we no longer need to initialize small packed
29061         arrays.
29062         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
29063         optimization to an LJM field as to its parent field.
29064
29065         * ada-tree.h, trans.c, utils.c, utils2.c:
29066         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
29067
29068 2004-09-20  Jan Hubicka  <jh@suse.cz>
29069
29070         * utils.c (gnat_finalize): Remove.
29071         (end_subprog_body): Directly call cgraph_finalize_function;
29072         do not lower the nested functions.
29073
29074 2004-09-20  Robert Dewar  <dewar@gnat.com>
29075
29076         PR ada/17540
29077         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
29078         if an address clause is present, since that means that the Import
29079         should be ignored.
29080
29081 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
29082
29083         * 5tsystem.ads: Removed, no longer used.
29084
29085 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
29086             Zack Weinberg  <zack@codesourcery.com>
29087
29088         * ada-tree.def: Use tree_code_class enumeration constants
29089         instead of code letters.
29090         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
29091         Update for new tree-class enumeration constants.
29092
29093 2004-09-17  Vincent Celier  <celier@gnat.com>
29094
29095         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
29096         capabilities of the general project manager.
29097
29098 2004-09-09  Vincent Celier  <celier@gnat.com>
29099
29100         * a-direct.ads: Add pragma Ada_05
29101         (Directory_Entry_Type): Give default value to component Kind to avoid
29102         not initialized warnings.
29103
29104         * a-direct.adb (Current_Directory): Remove directory separator at the
29105         end.
29106         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
29107         an existing directory.
29108         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
29109         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
29110         Convert the result to File_Size.
29111
29112         * prj.ads: (Project_Error): New exception
29113
29114         * prj-attr.adb: Except in procedure Initialize, Fail comes from
29115         Prj.Com, not from Osint.
29116         (Attrs, Package_Attributes): Tables moved to private part of spec
29117         (Add_Attribute, Add_Unknown_Package): Moved to new child package
29118         Prj.Attr.PM.
29119         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
29120         Prj.Project_Error after call to Fail.
29121         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
29122         Fail. Check that package name is not already in use.
29123
29124         * prj-attr.ads: Comment updates to indicate that all subprograms may be
29125         used by tools, not only by the project manager, and to indicate that
29126         exception Prj.Prj_Error may be raised in case of problem.
29127         (Add_Unknown_Package, Add_Attribute): Moved to new child package
29128         Prj.Attr.PM.
29129         (Attrs, Package_Attributes): Table instantiations moved from the body to
29130         the private part to be accessible from Prj.Attr.PM body.
29131
29132         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
29133         from new package Prj.Attr.PM.
29134         (Parse_Attribute_Declaration): Call Add_Attribute from new package
29135         Prj.Attr.PM.
29136
29137         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
29138
29139         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
29140         instead of Elaboration_Checks).
29141
29142         * a-calend.adb: Minor reformatting
29143
29144 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29145
29146         * gigi.h (maybe_pad_type): New declaration.
29147         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
29148
29149         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
29150
29151         * cuintp.c: Convert to use buildN.
29152
29153         * decl.c (maybe_pad_type): No longer static.
29154         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
29155         target pointer.
29156         Convert to use buildN.
29157
29158         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
29159         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
29160         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
29161         RHS.
29162         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
29163         (gnat_gimplify_expr, case ADDR_EXPR): New case.
29164         Convert to use buildN.
29165
29166         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
29167         TREE_READONLY for const.
29168         Convert to use buildN.
29169
29170         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
29171         (create_var_decl): Refine when TREE_STATIC is set.
29172         Convert to use buildN.
29173
29174 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
29175
29176         * gnat_ugn.texi: Delete text relating to checking of ali and object
29177         consistency.
29178
29179         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
29180         routines.
29181
29182 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
29183
29184         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
29185         pragmas recognized by GNAT.
29186
29187         * gnat_rm.texi: Document pragma Detect_Blocking.
29188
29189         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
29190         raise Program_Error if called from a protected operation.
29191
29192         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
29193         the protected action nesting level.
29194         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
29195         protected action nesting level.
29196         (Unlock): When pragma Detect_Blocking is active decrease the protected
29197         action nesting level.
29198
29199         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
29200         Protected_Action_Nesting.
29201
29202         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
29203         Common_ATCB record. It contains the dynamic level of protected action
29204         nesting for each task. It is needed for checking whether potentially
29205         blocking operations are called from protected operations.
29206         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
29207         Detect_Blocking is active or not in the partition.
29208
29209         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
29210         raise Program_Error if called from a protected operation.
29211         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
29212         Program_Error if called from a protected operation.
29213         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
29214         Program_Error if called from a protected operation.
29215
29216         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
29217         raise Program_Error if called from a protected operation.
29218
29219         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
29220         raise Program_Error if called from a protected operation, and increase
29221         the protected action nesting level.
29222         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
29223         Program_Error if called from a protected operation, and increase the
29224         protected action nesting level.
29225         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
29226         protected action nesting level.
29227
29228         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
29229         raise Program_Error if called from a protected operation, and increase
29230         the protected action nesting level.
29231         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
29232         Program_Error if called from a protected operation, and increase the
29233         protected action nesting level.
29234         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
29235         raise Program_Error if called from a protected operation.
29236         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
29237         active, raise Program_Error if called from a protected operation.
29238         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
29239         protected action nesting level.
29240
29241         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
29242         insertion of the statement raising Program_Error. The run time
29243         contains the required machinery for handling that.
29244
29245         * sem_util.ads: Change comment associated to procedure
29246         Check_Potentially_Blocking_Operation.
29247         This procedure does not insert a call for raising the exception because
29248         that is currently done by the run time.
29249
29250         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
29251
29252         * init.c: Add the global variable __gl_detect_blocking that indicates
29253         whether pragma Detect_Blocking is active (1) or not (0). Needed for
29254         making the pragma available at run time.
29255         (__gnat_set_globals): Pass and update the detect_blocking parameter.
29256
29257         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
29258         pragma Detect_Blocking is active.
29259
29260         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
29261
29262         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
29263         DB is found in the ali file. Any unit compiled with pragma
29264         Detect_Blocking active forces its effect in the whole partition.
29265
29266         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
29267         Detect_Blocking is active and delay is called from a protected
29268         operation.
29269
29270         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
29271         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
29272         Detect_Blocking is active (0 otherwise).
29273         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
29274         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
29275         otherwise).
29276
29277 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
29278
29279         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
29280         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
29281         package.
29282
29283         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
29284         (Register_Receiving_Stub): Add Subp_Info formal parameter.
29285         Update API in placeholder implemetation of s-parint to reflect changes
29286         in distribution runtime library.
29287
29288         * sem_ch3.adb (Expand_Derived_Record): Rename to
29289         Expand_Record_Extension.
29290
29291         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
29292         primitive operations of potentially distributed object types that have
29293         non-controlling anonymous access formals.
29294
29295         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
29296         subprogram.
29297         New implementation of expansion for remote access-to-subprogram types,
29298         based on the RACW infrastructure.
29299         This version of sem_dist is compatible with PolyORB/DSA as well as
29300         GLADE.
29301
29302         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
29303         Asynchrronous that applies to a remote access-to-subprogram type, mark
29304         the underlying RACW type as asynchronous.
29305
29306         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
29307          __gnat_using_gnu_linker to 1.
29308
29309         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
29310         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
29311         GNAT.Perfect_Hash_Generators, and remove the empty
29312         GNAT.Perfect_Hash package.
29313
29314         * atree.adb: Minor reformatting
29315
29316         * exp_ch3.adb (Expand_Derived_Record): Rename to
29317         Expand_Record_Extension.
29318         (Build_Record_Init_Proc.Build_Assignment): The default expression in
29319         a component declaration must remain attached at that point in the
29320         tree so New_Copy_Tree copies it if the enclosing record type is derived.
29321         It is therefore necessary to take a copy of the expression when building
29322         the corresponding assignment statement in the init proc.
29323         As a side effect, in the case of a derived record type, we now see the
29324         original expression, without any rewriting that could have occurred
29325         during expansion of the ancestor type's init proc, and we do not need
29326         to go back to Original_Node.
29327
29328         * exp_ch3.ads (Expand_Derived_Record): Rename to
29329         Expand_Record_Extension.
29330
29331         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
29332         Returns the RACW type used to implement a remote access-to-subprogram
29333         type.
29334         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
29335         New subprograms. Used to create a proxy tagged object for a remote
29336         subprogram. The proxy object is used as the designated object
29337         for RAS values on the same partition (unless All_Calls_Remote applies).
29338         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
29339         System.Partition_Interface.Get_Unique_Remote_Pointer.
29340         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
29341         Renamed from Add_RAS_*_Attribute.
29342         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
29343         subprograms.
29344         New implementation of expansion for remote access-to-subprogram types,
29345         based on the RACW infrastructure.
29346
29347         * exp_dist.ads (Copy_Specification): Update comment to note that this
29348         function can copy the specification from either a subprogram
29349         specification or an access-to-subprogram type definition.
29350
29351 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
29352
29353         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
29354         in an instance, between an explicit subprogram an one inherited from a
29355         type derived from an actual.
29356
29357         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
29358         add a polling call if the subprogram is to be inlined by the back-end,
29359         to avoid repeated calls with multiple inlinings.
29360
29361         * checks.adb (Apply_Alignment_Check): If the expression in the address
29362         clause is a call whose name is not a static entity (e.g. a dispatching
29363         call), treat as dynamic.
29364
29365 2004-09-09  Robert Dewar  <dewar@gnat.com>
29366
29367         * g-trasym.ads: Minor reformatting
29368
29369         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
29370         packed arrays, since unused bits are expected to be zero for a
29371         comparison.
29372
29373 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
29374
29375         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
29376         comment.
29377
29378 2004-09-09  Pascal Obry  <obry@gnat.com>
29379
29380         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
29381         enable map file generation. Add the right option to generate the map
29382         file if Map_File is set to True.
29383
29384         * gnatdll.adb (Gen_Map_File): New variable.
29385         (Syntax): Add info about new -m (Map_File) option.
29386         (Parse_Command_Line): Add support for -m option.
29387         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
29388         Minor reformatting.
29389
29390 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
29391
29392         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
29393         new gnatdist implementation.
29394         Define a subpackage isolating the output routines specific to this
29395         verbose mode.
29396
29397 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
29398
29399         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
29400
29401         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
29402
29403 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
29404
29405         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
29406         internal unit.
29407
29408         * opt.ads: Add Ada_Version_Runtime constant used to decide which
29409         version of the language is used to compile the run time.
29410
29411 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
29412
29413         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
29414         of variable length temporaries for function return now that the
29415         back-end and gigi support it.
29416
29417 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29418
29419         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
29420
29421         * trans.c (struct stmt_group): Delete field GLOBAL.
29422         (gnat_init_stmt_group): Do not initialize it.
29423         (call_to_gnu): Use save_expr, not protect_multiple_eval.
29424         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
29425         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
29426         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
29427         (start_stmt_group): Likewise.
29428         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
29429
29430         * utils2.c (ggc.h): Include.
29431         (build_call_raise): Call build_int_cst, not build_int_2.
29432
29433         * utils.c (gnat_init_decl_processing): Fix arg to
29434         build_common_tree_nodes.
29435         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
29436         (gnat_define_builtin): Set built_in_decls.
29437         (init_gigi_decls): Call build_int_cst, not build_int_2.
29438
29439         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
29440         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
29441         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
29442         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
29443         SET_TYPE_MODULE): Use them.
29444         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
29445         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
29446         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
29447         SET_TYPE_ADA_SIZE): Likewise.
29448         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
29449         (DECL_CONST_CORRESPONDING_VAR,
29450         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
29451         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
29452         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
29453         (TYPE_RM_SIZE_NUM): New macro.
29454         (TYPE_RM_SIZE): Modified to use above.
29455
29456         * cuintp.c: (build_cst_from_int): New function.
29457         (UI_To_gnu): Use it.
29458
29459         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
29460         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
29461         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
29462         MIN_EXPR for the size, copy it into new.
29463
29464 2004-09-01  Robert Dewar  <dewar@gnat.com>
29465
29466         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
29467         packed indexed component where array is an IN OUT formal. This
29468         generated garbage code previously.
29469
29470         * gnat_ugn.texi: Document -fverbose-asm
29471
29472         * gnat-style.texi: Minor updates (note that boolean constants and
29473         variables are joined with AND/OR rather than short circuit forms).
29474
29475 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
29476
29477         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
29478         it is an upward conversion of an untagged type with no representation
29479         change.
29480
29481 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
29482
29483         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
29484         System.Partition_Interface.
29485
29486         * checks.adb (Apply_Access_Checks): Do not generate checks when
29487         expander is not active (but check for unset reference to prefix of
29488         dereference).
29489
29490         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
29491         pragma Debug as an if statement with a constant condition, for
29492         consistent treatment of entity references contained within the
29493         enclosed procedure call.
29494
29495 2004-09-01  Vincent Celier  <celier@gnat.com>
29496
29497         * bindgen.adb: (Set_EA_Last): New procedure
29498         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
29499         Set_EA_Last.
29500         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
29501         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
29502         linked without errors.
29503         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
29504         ST and EA.
29505         (Gen_Exception_Table_C): Correct same bugs
29506
29507         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
29508
29509         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
29510         on Windows, make sure that the drive letter is in upper case.
29511
29512         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
29513         Windows, when the drive letter is added and Case_Sensitive is True, the
29514         drive letter is forced to upper case.
29515
29516         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
29517         to Options_2 for the call to MLib.Utl.Gcc.
29518
29519         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
29520         directory separator when defining BASE_DIR.
29521
29522 2004-09-01  Pascal Obry  <obry@gnat.com>
29523
29524         * gprcmd.adb (Extend): Do not output trailing directory separator. This
29525         is not needed and it confuses Windows GNU/make which does not report
29526         directory terminated by a slash as a directory.
29527         (gprcmd): Idem for "pwd" internal command.
29528
29529         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
29530         target names rewrite to fix regressions with recent version of
29531         GNU/make. Starting with GNU/make 3.80 the pipe character was not
29532         handled properly anymore.
29533
29534 2004-09-01  Andreas Schwab  <schwab@suse.de>
29535
29536         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
29537         * raise.c [!IN_RTS]: Undef abort.
29538
29539 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
29540
29541         * utils2.c (build_allocator): Use ssize_int.
29542
29543         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
29544
29545 2004-08-27  Andreas Schwab  <schwab@suse.de>
29546
29547         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
29548
29549 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
29550             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29551
29552         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
29553
29554 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
29555
29556         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
29557         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
29558         * utils.c (init_gigi_decls): Likewise.
29559         * utils2.c (build_call_raise, build_allocator): Likewise.
29560
29561 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
29562
29563         * utils.c (gnat_init_decl_processing): Adjust
29564         build_common_tree_nodes call.
29565
29566 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
29567
29568         * utils2.c (build_allocator): Use build_int_cst for negative
29569         size types.
29570
29571 2004-08-18  Richard Henderson  <rth@redhat.com>
29572
29573         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
29574
29575 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
29576
29577         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
29578         call.s
29579         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
29580         (gnat_to_gnu): Likewise.
29581
29582 2004-08-16  Pascal Obry  <obry@gnat.com>
29583
29584         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
29585         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
29586         option and not mdll anymore. Update comment.
29587
29588 2004-08-16  Pascal Obry  <obry@gnat.com>
29589
29590         * bld.adb (Put_Include_Project): Properly handle directory separators
29591         on Windows.
29592
29593 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
29594
29595         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
29596         decreasing the number of allocated junk nodes while searching for the
29597         appropriate subprogram.
29598
29599 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
29600
29601         * cuintp.c (UI_To_gnu): Use build_int_cst..
29602         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
29603         * utils.c (init_gigi_decls): Likewise.
29604         * utils2.c (build_call_raise): Likewise.
29605
29606 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
29607
29608         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
29609         for a global aliased object with a variable size and an unconstrained
29610         nominal subtype, pretend there is no initializer if the one we have is
29611         incomplete, and avoid referencing an inexistant component in there. The
29612         part we have will be rebuilt anyway and the reference may confuse
29613         further operations.
29614
29615 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
29616
29617         * einfo.ads: Minor reformatting
29618
29619         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
29620         restrictions in the ALI if we only want to warn about violations.
29621
29622 2004-08-13  Vincent Celier  <celier@gnat.com>
29623
29624         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
29625         when creating a new Unit_Record in table Units.
29626
29627         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
29628         that are violated, if any.
29629
29630         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
29631         add directory separator if path already ends with a directory separator.
29632
29633 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
29634
29635         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
29636         unit, this is an attempt to inline a construct that is not available in
29637         the current restricted mode, so abort rather than trying to continue.
29638
29639         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
29640         discriminants that rename those of the parent, recover names of
29641         original discriminants for the constraint on the full view of the
29642         parent.
29643         (Complete_Private_Subtype): Do not create a subtype declaration if the
29644         subtype is an itype.
29645
29646         * gnat_rm.texi: Added section on implementation of discriminated
29647         records with default values for discriminants.
29648
29649 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
29650
29651         PR ada/15601
29652         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
29653         the second operand is overloaded.
29654
29655 2004-08-10  Richard Henderson  <rth@redhat.com>
29656
29657         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
29658         add __builtin_alloca.
29659
29660 2004-08-10  Richard Henderson  <rth@redhat.com>
29661
29662         * config-lang.in (boot_language): Yes.
29663
29664 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
29665
29666         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
29667         from complaining on potential uninitialized reference.
29668         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
29669         new specification and test explicitly for non-zero return value.
29670
29671         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
29672         returning C.int, to avoid using a derived boolean type.
29673
29674         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
29675         Duplicate_Subexpr_No_Checks in preference to direct use of
29676         Remove_Side_Effects and New_Copy_Tree.
29677         Clear Comes_From_Source on prefix of 'Size attribute reference.
29678
29679         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
29680         g-socthi-vxworks.adb: Change calls to
29681         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
29682         and test explicitly for non-zero return value.
29683
29684         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
29685         (Is_Socket_In_Set): Declare imported function as returning C.int, to
29686         avoid using a derived boolean type.
29687
29688 2004-08-09  Albert Lee  <lee@gnat.com>
29689
29690         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
29691
29692 2004-08-09  Pascal Obry  <obry@gnat.com>
29693
29694         * gnat_ugn.texi: Document new way to build DLLs on Windows using
29695         GCC's -shared option.
29696
29697         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
29698         Options_2 parameter (options put after object files).
29699
29700 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
29701
29702         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
29703         ignore overflows on low and high bounds of an index to also account for
29704         differences in signedness between sizetype and gnu_index_subtype.
29705         These are as legitimate as the ones caused by a lower TYPE_PRECISION
29706         on sizetype.
29707
29708 2004-08-09  Robert Dewar  <dewar@gnat.com>
29709
29710         * s-solita.ads, s-solita.adb: Minor reformatting
29711
29712         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
29713         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
29714         obsolescent section
29715         Add note that No_Implicit_Conditionals does not suppress
29716         run time constraint checks.
29717
29718         * vms_conv.ads: Minor reformatting
29719
29720         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
29721         and necessary for following change).
29722         (Mark): Return new format Mark_Id containing sec stack address
29723         (Release): Use sec stack address from Mark_Id avoiding Self call
29724
29725         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
29726         pointer (cleanup and necessary for following change).
29727         Define Mark_Id as record containing address of secondary stack, that way
29728         Release does not need to find the stack again, decreasing the number of
29729         calls to Self and improving efficiency.
29730
29731         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
29732
29733         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
29734         case variable into the individual case branches when possible.
29735
29736         * sem_ch11.adb: Minor reformatting
29737
29738         * prj.ads: Correct spelling of suffixs
29739
29740         * prj-nmsc.adb: Minor reformatting
29741         Correct spelling suffixs throughout (also in identifiers)
29742
29743         * freeze.adb: Minor spelling correction
29744
29745         * exp_ch2.adb: Cleanups to handling of Current_Value
29746         (no functional effect).
29747
29748         * bld.adb: Correct spelling of suffixs
29749
29750         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
29751
29752 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
29753
29754         PR ada/15408
29755         * sem_ch7.adb (Install_Private_Declarations): In the body of the
29756         package or of a child, private entities are both immediately_visible
29757         and not hidden.
29758
29759 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
29760
29761         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
29762         there are no range checks on the value of the literal.
29763
29764         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
29765         wrapped is the triggering alternative of an asynchronous select, action
29766         statements mustbe inserted before the select itself.
29767
29768         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
29769         case where the prefix is a protected function call.
29770         (Resolve_Attribute, case 'Access): The attribute reference on a
29771         subprogram is legal in a generic body if the subprogram is declared
29772         elsewhere.
29773
29774 2004-08-09  Vincent Celier  <celier@gnat.com>
29775
29776         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
29777         languages, otherwise building the library may fail with unresolved
29778         symbols.
29779         (Compile_Sources): Do not build libraries if -c switch is used
29780
29781         * gnatlink.adb (Process_Args): New switches -M and -Mmap
29782         (Write_Usage): If map file creation is supported, output new switches
29783         -M and -Mmap.
29784         (Gnatlink): When -M is specified, add the necessary switch(es) to the
29785         gcc call, when supported.
29786
29787         * Makefile.in: Added indepsw.o to the object list for gnatlink
29788         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
29789
29790         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
29791         indepsw.adb, indepsw.ads: New files.
29792
29793 2004-08-09  Bernard Banner  <banner@gnat.com>
29794
29795         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
29796
29797         * Makefile.in: add section for vxworks x86
29798
29799 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
29800
29801         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
29802         per-object constrained components where the discriminant is of an
29803         Access type.
29804         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
29805         the parent initialization procedure for derived Unchecked_Unions.
29806         Instead, derived Unchecked_Unions build their own initialization
29807         procedure.
29808         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
29809         Check the body of the subprogram for details.
29810         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
29811         functions for derived Unchecked_Union types by introducing a condition.
29812         Allow the creation of TSS equality functions for Unchecked_Unions.
29813         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
29814         Add formal parameter Discr to function signature. Discr is used to
29815         control the generated case statement for Unchecked_Union types.
29816         (Make_Eq_If): Rename formal parameter Node to E in function signature.
29817
29818         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
29819         Unchecked_Unions.
29820         Check the body of the subprogram for details.
29821         (Expand_Composite_Equality): Augment composite type equality to include
29822         correct handling of Unchecked_Union components.
29823         (Expand_N_In): Add condition to detect illegal membership tests when the
29824         subtype mark is a constrained Unchecked_Union and the expression lacks
29825         inferable discriminants, and build a Raise_Program_Error node.
29826         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
29827         to detect types that contain components of unconstrained Unchecked_Union
29828         subtype. Add condition to detect equality between types that have an
29829         unconstrained Unchecked_Union component, and build a Raise_Program_Error
29830         node. Add condition to detect equality between Unchecked_Union types
29831         that lack inferable discriminants, and build a Raise_Program_Error node.
29832         Otherwise build a TSS equality function call.
29833         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
29834         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
29835         with the operand lacking inferable discriminants, and build a Raise_
29836         Program_Error node.
29837         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
29838         composite equality.
29839         (Has_Inferable_Discriminants): Implement new predicate for objects and
29840         expressions of Unchecked_Union type. Check the body of subprogram for
29841         details.
29842         (Has_Unconstrained_UU_Components): Add function
29843         Component_Is_Unconstrained_UU. It is used to detect whether a single
29844         component is of an unconstrained Unchecked_Union subtype. Add function
29845         Variant_Is_Unconstrained_UU. It is used to detect whether a single
29846         component inside a variant is of an unconstrained Unchecked_Union type.
29847
29848         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
29849         inferred discriminant values. Add condition to generate a case
29850         statement with an inferred discriminant as the switch.
29851         (Make_Component_List_Assign): Introduce a Boolean flag that determines
29852         the behaviour of the subprogram in the presence of an Unchecked_Union.
29853         Add condition to trigger the usage of the inferred discriminant value
29854         as the generated case statement switch.
29855         (Make_Field_Assign): Introduce a Boolean flag that determines the
29856         behaviour of the subprogram in the presence of an Unchecked_Union. Add
29857         condition to trigger the usage of the inferred discriminant value as
29858         the right-hand side of the generated assignment.
29859
29860         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
29861         parameter generation when dealing with Unchecked_Unions.
29862
29863         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
29864         checks for Unchecked_Unions.
29865
29866         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
29867
29868         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
29869         Raise_Program_Error nodes for the execution of Read and Write
29870         attributes of Unchecked_Union types and the execution of Input and
29871         Output attributes of Unchecked_Union types that lack default
29872         discriminant values.
29873
29874         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
29875         Unchecked_Union. Add procedure Check_Component. It is used to inspect
29876         per-object constrained components of Unchecked_Unions for being
29877         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
29878         check individual components withing a variant.
29879
29880         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
29881         comparison of Unchecked_Unions.
29882         (Resolve_Equality_OP): Remove guard that prevents equality between
29883         Unchecked_Unions.
29884
29885         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
29886         of component subtypes for Unchecked_Union components.
29887         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
29888         since it is the actual subtype.
29889
29890         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
29891         pass of Unchecked_Union subtypes as generic actuals to formal types
29892         that lack known_discriminant_parts or that are derived Unchecked_Union
29893         types, and do nothing. In any other case, produce an error message.
29894
29895         * sem_ch3.adb (Analyze_Component_Declaration): Add function
29896         Contains_POC. It determines whether a constraint uses the discriminant
29897         of an enclosing record type.
29898         Add condition to detect per-object constrained component and set the
29899         appropriate flag.
29900         (Derived_Type_Declaration): Remove guard that prevents derivation from
29901         Unchecked_Union types.
29902         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
29903         Union subtypes.
29904
29905         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
29906         references to Unchecked_Union discriminants.
29907
29908         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
29909         formal generation when dealing with Unchecked_Unions.
29910         (Set_Actual_Subtypes): Add condition to prevent generation of actual
29911         subtypes for Unchecked_Unions.
29912
29913         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
29914         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
29915         completions of discriminated partial views by Unchecked_Unions and
29916         produce an error message.
29917
29918 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29919
29920         * trans.c (struct stmt_group): New field, GLOBAL.
29921         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
29922         (struct elab_info): New struct.
29923         (elab_info_list, gnu_elab_proc_stack): New variables.
29924         (Compilation_Unit_to_gnu): New procedure.
29925         (gigi): Call it and also handle elaboration procs we've saved.
29926         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
29927         global field from parent.
29928         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
29929         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
29930         (start_stmt_group): Initialize global field from parent.
29931         (add_decl_expr): Set to global for current statement group.
29932         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
29933         post.
29934
29935         * utils.c (global_bindings_p): True when no current_function_decl; no
29936         longer check current_binding_level.
29937
29938 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
29939
29940         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
29941         choice.
29942
29943         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
29944
29945 2004-08-06  Andreas Schwab  <schwab@suse.de>
29946
29947         * utils.c (gnat_define_builtin): Remove second parameter of
29948         make_decl_rtl.
29949         (begin_subprog_body): Likewise.
29950
29951 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
29952
29953         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
29954         optimization, not supported by the tree-ssa back-end.
29955
29956 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
29957
29958         * s-mastop-irix.adb: Update comments.
29959
29960         * a-except.adb (Exception_Information): Raise Constraint_Error if
29961         exception Id is Null_Id.
29962         This is required behavior, which is more reliably and clearly checked
29963         at the top level interface level.
29964
29965 2004-07-26  Javier Miranda  <miranda@gnat.com>
29966
29967         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
29968         call if a component has no default_expression and the box is used.
29969
29970         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
29971         default_expression and you use box, it behaves as if you had declared a
29972         stand-alone object.
29973         (Resolve_Record_Aggregate): If a component has no default_expression and
29974         you use box, it behaves as if you had declared a stand-alone object.
29975
29976         * sem_ch10.adb (Install_Siblings): Do not make visible the private
29977         entities of private-with siblings.
29978
29979 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
29980
29981         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
29982         for a component of an itype, set the parent pointer for analysis,
29983         there is no list in which to insert it.
29984
29985         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
29986         bona-fide renamings, not for inherited operations.
29987
29988         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
29989         actual for a formal that is an access parameter, create local
29990         finalization list even if the expression is not an aggregate.
29991
29992 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
29993
29994         PR ada/16213
29995         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
29996         Diagnose properly illegal subprogram renamings that are library units.
29997
29998 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
29999
30000         PR ada/15588
30001         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
30002         conversion rewritten as an unchecked conversion, check that original
30003         expression is a variable.
30004
30005         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
30006         unchecked_conversion, create new node rather than rewriting in place,
30007         to preserve original construct.
30008
30009 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30010
30011         * gigi.h (gnat_expand_body): Deleted.
30012
30013         * Make-lang.in: (trans.o): Depends on function.h.
30014
30015         * misc.c: (gnat_expand_body): Moved to here.
30016
30017         * trans.c (gnat_expand_body_1): Deleted.
30018         (gnat_expand_body): Moved from here.
30019         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
30020         (add_stmt): Check for marked visited with global_bindings_p.
30021         (gnat_gimplify_expr, case COMPONENT_REF): New case.
30022         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
30023
30024         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
30025         VIEW_CONVERT_EXPR if not operation type.
30026
30027         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
30028         fat pointer.
30029
30030         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
30031         changes: reformatting of negation operators, removing unneeded
30032         inequality comparison with zero, converting equality comparisons with
30033         zero to negations, changing int/0/1 to bool/false/true, replace calls
30034         to gigi_abort with abort, and various other similar changes.
30035
30036 2004-07-26  Vincent Celier  <celier@gnat.com>
30037
30038         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
30039         "setup".
30040
30041         * make.adb (Gnatmake): Fail when a library is not present and there is
30042         no object directory.
30043
30044         * mlib-prj.adb (Check_Library): No need to check if the library needs
30045         to be rebuilt if there is no object directory, hence no object files
30046         to build the library.
30047
30048         * opt.ads (Setup_Projects): New Boolean flag.
30049
30050         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
30051         Location.
30052         Create directory when Kind /= "" and in "gnat setup". Report error if
30053         directory cannot be created.
30054         (Ada_Check): Create library interface copy dir if it does not exist
30055         and we are in "gnat setup".
30056         (Find_Sources): No error if in "gnat setup" and no Ada sources were
30057         found.
30058         (Language_Independent_Check): Create object directory, exec directory
30059         and/or library directory if they do not exist and we are in
30060         "gnat setup".
30061
30062         * vms_conv.ads: (Command_Type): New command Setup.
30063
30064         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
30065
30066         * vms_data.ads: Add qualifiers/switches for new built-in command
30067         "setup".
30068
30069 2004-07-25  Richard Henderson  <rth@redhat.com>
30070
30071         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
30072         DECL_IGNORED_P on RESULT_DECL.
30073
30074 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
30075
30076         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
30077         allocation and potentially overflowing update with
30078         Tailored_Exception_Information. Use the sec-stack free procedural
30079         interface to output Exception_Information instead.
30080
30081         * a-except.adb (To_Stderr): New subprogram for character, and string
30082         version moved from a-exextr to be visible from other separate units.
30083         (Tailored_Exception_Information): Remove the procedural version,
30084         previously used by the default Last_Chance_Handler and not any more.
30085         Adjust various comments.
30086
30087         * a-exexda.adb: Generalize the exception information procedural
30088         interface, to minimize the use of secondary stack and the need for
30089         local buffers when the info is to be output to stderr:
30090         (Address_Image): Removed.
30091         (Append_Info_Character): New subprogram, checking for overflows and
30092         outputing to stderr if buffer to fill is of length 0.
30093         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
30094         (Append_Info_Address, Append_Info_Exception_Name,
30095         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
30096         Append_Info_Basic_Exception_Traceback,
30097         Append_Info_Exception_Information): New subprograms.
30098         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
30099         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
30100         Exception_Info_Maxlength, Exception_Name_Length,
30101         Exception_Message_Length): New subprograms.
30102         (Exception_Information): Use Append_Info_Exception_Information.
30103         (Tailored_Exception_Information): Use
30104         Append_Info_Basic_Exception_Information.
30105         Export services for the default Last_Chance_Handler.
30106
30107         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
30108         other separate units.
30109
30110 2004-07-20  Vincent Celier  <celier@gnat.com>
30111
30112         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
30113
30114 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
30115
30116         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
30117         emit itype references for the designated types of component types that
30118         are declared outside of the full record declaration, and that may
30119         denote a partial view of that record type.
30120
30121 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
30122
30123         PR ada/15607
30124         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
30125         which is the designated type in an access component declaration, to the
30126         list of incomplete dependents of the parent type, to avoid elaboration
30127         issues with out-of-scope subtypes.
30128         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
30129         full view of the parent.
30130
30131 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
30132
30133         PR ada/15610
30134         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
30135         entities that are hidden, such as references to generic actuals
30136         outside an instance.
30137
30138 2004-07-20  Javier Miranda  <miranda@gnat.com>
30139
30140         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
30141         support to the new notation.
30142         (Analyze_Selected_Component): Add call to Try_Object_Operation.
30143
30144 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
30145
30146         * s-taprob.adb: Adding the elaboration code required for initializing
30147         the tasking soft links that are common to the full and the restricted
30148         run times.
30149
30150         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
30151         restricted run time has been moved to the package
30152         System.Soft_Links.Tasking.
30153
30154         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
30155         restricted run time has been moved to the package
30156         System.Soft_Links.Tasking.
30157
30158         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
30159
30160         * s-solita.ads, s-solita.adb: New files.
30161
30162 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30163
30164         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
30165         Case_Statement_to_gnu): Split off from gnat_to_gnu.
30166         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
30167         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
30168         Exception_Handler_to_gnu_zcx): Likewise.
30169
30170 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
30171
30172         * gigi.h (builtin_function): Declare.
30173
30174 2004-07-15  Robert Dewar  <dewar@gnat.com>
30175
30176         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
30177         reformatting
30178
30179         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
30180         access values as an example of a warning.
30181
30182         * gnat_rm.texi: Document new attribute Has_Access_Values
30183
30184         * gnat-style.texi: Document that box comments belong on nested
30185         subprograms
30186
30187         * sem_util.ads (Has_Access_Values): Improved documentation
30188
30189         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
30190
30191         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
30192         (Process_Interface_Name): Call to this new procedure
30193         (Set_Extended_Import_Export_External_Name): Call to this new procedure
30194
30195         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
30196
30197         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
30198
30199         * einfo.ads: Minor comment typo fixed
30200
30201 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
30202
30203         * snames.adb: Add _atcb.
30204
30205         * snames.ads: Add Name_uATCB.
30206
30207         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
30208         (in the expanded code) when using the restricted run time.
30209
30210         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
30211         a in parameter in order to allow ATCBs to be preallocated (in the
30212         expanded code).
30213
30214         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
30215         order to allow ATCBs to be preallocated. In case of error, the ATCB is
30216         deallocated in System.Tasking.Stages.
30217
30218         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
30219         order to allow ATCBs to be preallocated.
30220
30221         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
30222         here. It was previously done in Initialize_ATCB.
30223
30224         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
30225
30226         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
30227         Restricted run time.
30228
30229         * exp_ch3.adb: When using the Restricted run time, pass the
30230         preallocated Ada_Task_Control_Block when creating a task.
30231
30232 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
30233
30234         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
30235         function call that is itself an actual in an enclosing call, diagnose
30236         problem here rather than assuming that resolution will catch it.
30237
30238         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
30239         the local copy of a generic unit for a formal package, and the generic
30240         is a child unit, install private part of ancestors before compiling
30241         private part of spec.
30242
30243         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
30244         use scope entities rather than tree structures, to handle properly
30245         parent units that are instances rewritten as bodies for inlining
30246         purposes.
30247
30248         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
30249         Remove_Parents): Handle properly a parent unit that is an
30250         instantiation, when the unit has been rewritten as a body for inlining
30251         purposes.
30252
30253         * par.adb (Goto_List): Global variable to collect goto statements in a
30254         given unit, for use in detecting natural loops.
30255
30256         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
30257         use in detecting natural loops.
30258
30259         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
30260         backwards goto's, and rewrite as a infinite loop, to improve locality
30261         of temporaries.
30262
30263         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
30264         subcomponent that includes an indexed reference, to prevent the
30265         generation of copies that would miscompile the desired assignment
30266         statement.
30267         (Build_Task_Image_Decls): Add a numeric suffix to
30268         generated name for string variable, to avoid spurious conflicts with
30269         the name of the type of a single protected object.
30270
30271         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
30272         loop with an explicit exit statement, to avoid generating an
30273         out-of-range value with 'Succ leading to spurious constraint_errors
30274         when compiling with -gnatVo.
30275
30276 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
30277
30278         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
30279         might not be analyzed yet, even if its Etype is already set (case of an
30280         unchecked conversion built using Unchecked_Convert_To, for example).
30281         If the prefix has already been analyzed, this will be a nop anyway.
30282
30283         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
30284         controller type, or an assignment of a record type with controlled
30285         components, copy only user data, and leave the finalization chain
30286         pointers untouched.
30287
30288 2004-07-15  Vincent Celier  <celier@gnat.com>
30289
30290         * make.adb (Collect_Arguments): Improve error message when attempting
30291         to compile a source not part of any project, when -x is not used.
30292
30293         * prj.ads: (Defined_Variable_Kind): New subtype
30294
30295         * prj-attr.adb (Register_New_Package): Two new procedures to register
30296         a package with or without its attributes.
30297         (Register_New_Attribute): Mew procedure to register a new attribute in a
30298         package.
30299         New attribute oriented subprograms: Attribute_Node_Id_Of,
30300         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
30301         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
30302         Next_Attribute.
30303         New package oriented subprograms: Package_Node_Id_Of,
30304         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
30305
30306         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
30307         type.
30308         (Package_Node_Id): Now a private, self initialized type
30309         (Register_New_Package): New procedure to register a package with its
30310         attributes.
30311         New attribute oriented subprograms: Attribute_Node_Id_Of,
30312         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
30313         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
30314         Next_Attribute.
30315         New package oriented subprograms: Package_Node_Id_Of,
30316         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
30317
30318         * prj-dect.adb (Parse_Attribute_Declaration,
30319         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
30320
30321         * prj-makr.adb (Make): Parse existing project file before creating
30322         other files. Fail if there was an error during parsing.
30323
30324         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
30325         new spec of Prj.Attr.
30326
30327         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
30328         to new spec of Prj.Attr.
30329
30330 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30331
30332         * utils2.c: Fix typo in comment.
30333
30334 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30335
30336         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
30337         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
30338
30339 2004-07-14  Andreas Schwab  <schwab@suse.de>
30340
30341         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
30342
30343 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30344
30345         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
30346         object type.
30347         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
30348         TYPE_STUB_DECL.
30349
30350         * misc.c (gnat_types_compatible_p): New function.
30351         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
30352         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
30353
30354         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
30355         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
30356         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
30357         (mark_visited): Don't mark dummy type.
30358         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
30359         parameter, we must remove any LJM building from GNU_NAME.
30360         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
30361         (pos_to_constructor): Use int_const_binop.
30362         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
30363         PARM_DECL.
30364
30365         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
30366         (gnat_pushlevel): Set TREE_USE on BLOCK node.
30367         (gnat_install_builtins): Add __builtin_memset.
30368
30369 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
30370
30371         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
30372         for a renaming, stabilize the initialization expression if we are at a
30373         local level.  At the local level, uses of the renaming may be performed
30374         by a direct dereference of the initializing expression, and we don't
30375         want possible variables there to be evaluated for every use.
30376
30377         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
30378         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
30379         them on the way.  Account for the fact that we may introduce side
30380         effects in the process.
30381
30382 2004-07-13  Richard Henderson  <rth@redhat.com>
30383
30384         * misc.c (default_pass_by_ref): Use pass_by_reference.
30385
30386 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
30387
30388         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
30389         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
30390
30391 2004-07-08  Richard Henderson  <rth@redhat.com>
30392
30393         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
30394         commentary.
30395
30396 2004-07-06  Vincent Celier  <celier@gnat.com>
30397
30398         * vms_conv.ads: Minor reformatting.
30399         Alphabetical order for enumerated values of type Command_Type, to have
30400         the command in alphabetical order for the usage.
30401
30402         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
30403         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
30404
30405         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
30406
30407         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
30408         (Add_Archive_Path): Only add the global archive if there is one.
30409         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
30410         or not any object file to put in the global archive, and don't build
30411         a global archive if there is none.
30412         (X_Switches): New table
30413         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
30414         in the X_Switches table, if any.
30415         (Initialize): Make sure the X_Switches table is empty
30416         (Scan_Arg): Record -X switches in table X_Switches
30417
30418         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
30419
30420         * make.adb: Minor comment fix
30421
30422         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
30423         invoked with directory information, add the directory in front of the
30424         path.
30425
30426         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
30427         invoked with directory information, add the directory in front of the
30428         path.
30429
30430         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
30431         when Keep_Temporary_Files is False.
30432         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
30433         directory information, add the directory in front of the path.
30434         When not on VMS, handle new switch -dn before the command to set
30435         Keep_Temporary_Files to True.
30436         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
30437         everywhere.
30438
30439         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
30440         invoked with directory information, add the directory in front of the
30441         path.
30442
30443 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
30444
30445         * snames.ads, snames.adb (Name_Stub): New name for the distributed
30446         systems annex.
30447
30448         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
30449         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
30450
30451         * g-socket.adb (To_Timeval): Fix incorrect conversion of
30452         Selector_Duration to Timeval for the case of 0.0.
30453
30454         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
30455         documentation from Evolve_And_Then.
30456
30457 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
30458
30459         * s-taprop-tru64.adb, s-taprop-os2.adb,
30460         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
30461
30462 2004-07-06  Robert Dewar  <dewar@gnat.com>
30463
30464         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
30465         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
30466         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
30467         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
30468         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
30469         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
30470         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
30471         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
30472         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
30473         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
30474         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
30475         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
30476         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
30477         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
30478         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
30479         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
30480         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
30481         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
30482         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
30483         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
30484         vms_data.ads: Minor reformatting,
30485         Fix bad box comment format.
30486
30487         * gnat_rm.texi: Fix minor grammatical error
30488
30489         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
30490
30491         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
30492         more cases of discriminated records to be recognized as not needing a
30493         secondary stack.
30494         (Has_Access_Values): New function.
30495
30496         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
30497
30498         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
30499         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
30500         with LRM terminology).
30501         Change terminology in comments primitive type => elementary type.
30502
30503 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
30504
30505         PR ada/15602
30506         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
30507         parameters do not impose any requirements on the presence of a body.
30508
30509 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
30510
30511         PR ada/15593
30512         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
30513         compilation unit and is in an open scope at the point of instantiation,
30514         assume that a body may be present later.
30515
30516 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
30517
30518         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
30519         Improve error message when specified size is not supported.
30520
30521         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
30522         is never a primitive operation.
30523
30524 2004-07-05  Andreas Schwab  <schwab@suse.de>
30525
30526         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
30527         RECORD_OR_UNION_CHECK.
30528         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
30529
30530 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
30531
30532         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
30533         dependency on xgnatugn, instead build it via a submake.
30534         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
30535
30536 2004-07-04  Richard Henderson  <rth@redhat.com>
30537
30538         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
30539
30540 2004-07-01  Richard Henderson  <rth@redhat.com>
30541
30542         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
30543         * utils.c (max_size): Likewise.
30544
30545 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30546
30547         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
30548         and rest_of_type_compilation; add arg to create_*_decl.
30549         (annotate_decl_with_node): Deleted.
30550         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
30551         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
30552         (get_current_block_context, gnat_pushdecl): New declarations.
30553         (gnat_init_stmt_group): Likewise.
30554         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
30555         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
30556         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
30557         (gnat_init): Call gnat_init_stmt_group.
30558         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
30559         (gnu_pending_elaboration_list): Deleted.
30560         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
30561         (gigi): Rearrange initialization calls and move some to last above.
30562         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
30563         Delete calls to add_decl_expr; add arg to create_*_decl.
30564         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
30565         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
30566         begin_subprog_body and call it.
30567         Don't push and pop ggc context.
30568         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
30569         (add_stmt): Remove handling of DECL_EXPR from here.
30570         If not in function, mark visited.
30571         (add_decl_expr): Put global at top level.
30572         Check for cases of DECL_INITIAL we have to handle here.
30573         (process_type): Add extra arg to create_type_decl.
30574         (build_unit_elab): Rework to just gimplify.
30575         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
30576         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
30577         (get_pending_elaborations, pending_elaborations_p): Likewise.
30578         (push_pending_elaborations, pop_pending_elaborations): Likewise.
30579         (get_elaboration_location, insert_elaboration_list): Likewise.
30580         (gnat_binding_level): Renamed from ada_binding_level.
30581         (init_gnat_to_gnu): Don't clear pending_elaborations.
30582         (global_bindings_p): Treat as global if no current_binding_level.
30583         (set_current_block_context): New function.
30584         (gnat_pushdecl): Renamed from pushdecl; major rework.
30585         All callers changed.
30586         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
30587         (finish_record_type): Call call pushdecl for stub decl.
30588         (function_nesting_depth): Deleted.
30589         (begin_subprog_body): Delete obsolete code.
30590         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
30591
30592 2004-06-28  Robert Dewar  <dewar@gnat.com>
30593
30594         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
30595         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
30596         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
30597         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
30598         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
30599
30600         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
30601         deal with problem of inefficient slices on machines with strict
30602         alignment, when the slice is a component of a composite.
30603
30604         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
30605         machines, we need the check there as well.
30606
30607 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
30608
30609         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
30610         determine safe copying direction for overlapping slice assignments
30611         when component is controlled.
30612
30613         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
30614         formal derived type in the actual for a formal package are visible in
30615         the enclosing instance.
30616
30617 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
30618
30619         PR ada/15600
30620         * sem_util.adb (Trace_Components): Diagnose properly an illegal
30621         circularity involving a private type whose completion includes a
30622         self-referential component.
30623         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
30624         renaming or an instantiation from an implicit derived operation.
30625
30626 2004-06-28  Pascal Obry  <obry@gnat.com>
30627
30628         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
30629         DLL.
30630         (Library_File_Name_For): Idem.
30631
30632 2004-06-28  Matthew Gingell  <gingell@gnat.com>
30633
30634         * g-traceb.ads: Add explanatory note on the format of addresses
30635         expected by addr2line.
30636
30637 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
30638
30639         * Makefile.in: Force debugging information on s-tasdeb.adb,
30640         a-except.adb and s-assert.adb needed by the debugger.
30641
30642 2004-06-28  Vincent Celier  <celier@gnat.com>
30643
30644         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
30645         Need_To_Build_Lib.
30646         (Gnatmake): Ditto.
30647
30648         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
30649
30650         * prj.adb: Minor reformatting
30651         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
30652
30653         * prj.ads: Comment updates
30654         Minor reformatting
30655         (Project_Data): Change Flag1 to Need_To_Build_Lib.
30656         Remove Flag2: not used.
30657
30658         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
30659         declaration.
30660
30661         * gnat_ugn.texi: Put a "null;" declaration in one project file example
30662
30663         * gnat_rm.texi: Document Empty declarations "null;".
30664
30665         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
30666         front of the linker options.
30667         (Link_Foreign): Put the global archives and the libraries in front of
30668         the linker options.
30669
30670 2004-06-28  Javier Miranda  <miranda@gnat.com>
30671
30672         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
30673         (RTU_Loaded): Code cleanup
30674         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
30675         withed predefined units.
30676
30677         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
30678         explicitly withed predefined units.
30679         Fix typo in comment
30680
30681         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
30682         explicitly withed predefined units.
30683
30684 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30685
30686         * ada-tree.def (DECL_STMT): Deleted.
30687         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
30688         (DECL_STMT_VAR): Deleted.
30689         * decl.c: add_decl_stmt now add_decl_expr.
30690         * gigi.h: Likewise.
30691         * trans.c: Likewise.
30692         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
30693         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
30694         (add_stmt): Only handle padded type here.
30695         (add_stmt_with_node): Allow gnat_node to not be present.
30696         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
30697         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
30698         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
30699         make a SAVE_EXPR for the entire fat pointer.
30700         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
30701         (create_index_type): Make a DECL_EXPR.
30702         (end_subprog_body): Don't call allocate_struct_function here but
30703         do clear cfun.
30704
30705 2004-06-25  Pascal Obry  <obry@gnat.com>
30706
30707         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
30708         Relocatable from Build_Dynamic_Library call.
30709
30710         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
30711         Relocatable are now synonym.
30712
30713         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
30714
30715         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
30716         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
30717         call.
30718
30719         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
30720         Lib_Address and Relocatable.
30721         (Default_DLL_Address): Removed.
30722
30723         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
30724         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
30725         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
30726         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
30727         (Default_DLL_Address): Removed.
30728
30729         * mlib-tgt-mingw.adb: Ditto.
30730         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
30731
30732         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
30733         the initial thread stack size.
30734
30735         * a-strmap.ads: Move package L to private part as it is not used in
30736         the spec. Found while reading code.
30737
30738 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
30739
30740         * tracebak.c: Introduce support for a GCC infrastructure based
30741         implementation of __gnat_backtrace.
30742
30743         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
30744         any more. Use accessors instead. This eases maintenance and relaxes
30745         some alignment constraints.
30746         (_GNAT_Exception structure): Remove the Ada specific fields
30747         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
30748         a-exexpr.adb.
30749         (is_handled_by, __gnat_eh_personality): Replace component references to
30750         exception structure by use of the new accessors.
30751
30752         * init.c (__gnat_initialize): Adjust comments to match the just
30753         reverted meaning of the -static link-time option.
30754
30755         * adaint.c (convert_addresses): Arrange not to define a stub for
30756         mips-irix any more, as we now want to rely on a real version from a
30757         recent libaddr2line.
30758
30759         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
30760         the personality routine can use them and not have to rely on a C
30761         counterpart of the record anymore. This simplifies maintenance and
30762         relaxes the constraint of having Standard'Maximum_Alignment match
30763         BIGGEST_ALIGNMENT.
30764         Update comments, and add a section on the common header alignment issue.
30765
30766 2004-06-25  Geert Bosch  <bosch@gnat.com>
30767
30768         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
30769         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
30770
30771 2004-06-25  Robert Dewar  <dewar@gnat.com>
30772
30773         * gnat_rm.texi: Fix section on component clauses to indicate that the
30774         restriction on byte boundary placement still applies for bit packed
30775         arrays.
30776         Add comment on stack usage from Initialize_Scalars
30777
30778         * gnat_ugn.texi: Add documentation for -gnatyLnnn
30779
30780         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
30781         limiting nesting level.
30782
30783         * usage.adb: Add line for -gnatyLnnn switch
30784
30785         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
30786         sem_ch13.adb, exp_aggr.adb: Minor reformatting
30787
30788         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
30789         type as well as on the subtype. This corrects a problem in freeze in
30790         setting alignments of atomic types.
30791
30792         * sem_eval.ads: Minor comment typo fixed
30793
30794         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
30795         level.  Minor reformatting.
30796
30797         * fname.adb (Is_Predefined_File_Name): Require a letter after the
30798         minus sign. This means that file names like a--b.adb will not be
30799         considered predefined.
30800
30801         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
30802         record Test new flag and give diagnostic for bad component clause.
30803         (Freeze_Entity): Set alignment of array from component alignment in
30804         cases where this is safe to do.
30805
30806         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
30807         arrays.
30808
30809         * cstand.adb: (Create_Standard): Set alignment of String to 1
30810
30811         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
30812
30813         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
30814         code in the common constrained array cases.
30815
30816         * a-storio.adb: Change implementation to avoid possible alignment
30817         problems on machines requiring strict alignment (data should be moved
30818         as type Buffer, not type Elmt).
30819
30820         * checks.adb (Apply_Array_Size_Check): Improve these checks by
30821         killing the overflow checks which we really do not need (64-bits is
30822         enough).
30823
30824 2004-06-25  Vincent Celier  <celier@gnat.com>
30825
30826         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
30827         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
30828         inconditionally for the main project.
30829         (Recursive_Add_Archives.Add_Archive_Path): New procedure
30830         (Link_Executables.Check_Time_Stamps): New procedure
30831         (Link_Executables.Link_Foreign): New procedure
30832         Changes made to reduce nesting level of this package
30833         (Check): New procedure
30834         (Add_Switches): When not in quiet output, check that a switch is not
30835         the concatenation of several valid switches. If it is, issue a warning.
30836         (Build_Global_Archive): If the global archive is rebuilt, linking need
30837         to be done.
30838         (Compile_Sources): Rebuilding a library archive does not imply
30839         rebuilding the global archive.
30840         (Build_Global_Archive): New procedure
30841         (Build_Library): New name for Build_Archive, now only for library
30842         project
30843         (Check_Archive_Builder): New procedure
30844         (Create_Global_Archive_Dependency_File): New procedure
30845         (Gprmake): Call Build_Global_Archive before linking
30846         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
30847         throughout.
30848         (Scan_Arg): Display the Copyright notice when -v is used
30849
30850         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
30851         for gnatls.
30852
30853         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
30854         COMPILE.
30855         Add new GNAT LIST qualifier /FILES=
30856         Added qualifier /DIRECTORY= to GNAT METRIC
30857         Added qualifier /FILES= to GNAT METRIC
30858         Added qualifier /FILES to GNAT PRETTY
30859
30860         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
30861         to take into account both versions of the switch.
30862
30863         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
30864         always be the last switch to the gcc driver. Disable switch storing so
30865         that switches automatically added by the gcc driver are not put in the
30866         ALI file.
30867
30868         * prj.adb (Project_Empty): Take into account changes in components of
30869         Project_Data.
30870
30871         * prj.ads (Languages_Processed): New enumaration value All_Languages.
30872
30873         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
30874         used. Split Boolean component Ada_Sources_Present in two Boolean
30875         components Ada_Sources_Present and Other_Sources_Present.
30876         Minor reformatting
30877
30878         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
30879         instead of Sources_Present.
30880         (Set_Ada_Paths.Add.Recursive_Add): Ditto
30881
30882         * prj-nmsc.adb: Minor reformatting
30883         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
30884         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
30885         Check_Ada_Naming_Scheme.
30886         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
30887         throughout.
30888
30889         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
30890         In_Limited.
30891         Make sure that all cycles where there is at least one "limited with"
30892         are detected.
30893         (Parse_Single_Project): New Boolean parameter In_Limited
30894
30895         * prj-proc.adb (Recursive_Check): When Process_Languages is
30896         All_Languages, call first Prj.Nmsc.Ada_Check, then
30897         Prj.Nmsc.Other_Languages_Check.
30898
30899         * prj-proc.adb (Process): Use Ada_Sources_Present or
30900         Other_Sources_Present (instead of Sources_Present) depending on
30901         Process_Languages.
30902
30903         * lang-specs.h: Keep -g and -m switches in the same order, and as the
30904         last switches.
30905
30906         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
30907         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
30908         False.
30909         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
30910         False.
30911
30912         * lib.ads (Disable_Switch_Storing): New procedure.
30913
30914         * make.adb: Modifications to reduce nesting level of this package.
30915         (Check_Standard_Library): New procedure
30916         (Gnatmake.Check_Mains): New procedure
30917         (Gnatmake.Create_Binder_Mapping_File): New procedure
30918         (Compile_Sources.Compile): Add switch -gnatez as the last option
30919         (Display): Never display -gnatez
30920
30921         * Makefile.generic:
30922         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
30923
30924         * gnatcmd.adb (Check_Project): New function
30925         (Process_Link): New procedure to reduce nesting depth
30926         (Check_Files): New procedure to reduce the nesting depth.
30927         For GNAT METRIC, include the inherited sources in extending projects.
30928         (GNATCmd): When GNAT LS is invoked with a project file and no files,
30929         add the list of files from the sources of the project file. If this list
30930         is too long, put it in a temp text files and use switch -files=
30931         (Delete_Temp_Config_Files): Delete the temp text file that contains
30932         a list of source for gnatpp or gnatmetric, if one has been created.
30933         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
30934         in the project file is too large, create a temporary text file that
30935         list them and pass it to the tool with "-files=<temp text file>".
30936         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
30937
30938         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
30939         generated file is in not in Ada.
30940
30941         * gnatls.adb: Remove all parameters And_Save that are no longer used.
30942         (Scan_Ls_Arg): Add processing for -files=
30943         (Usage): Add line for -files=
30944
30945         * g-os_lib.adb (On_Windows): New global constant Boolean flag
30946         (Normalize_Pathname): When on Windows and the path starts with a
30947         directory separator, make sure that the resulting path will start with
30948         a drive letter.
30949
30950         * clean.adb (Clean_Archive): New procedure
30951         (Clean_Project): When there is non-Ada code, delete the global archive,
30952         the archive dependency files, the object files and their dependency
30953         files, if they exist.
30954         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
30955
30956 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
30957
30958         * sinfo.ads: Fix typo in comment.
30959
30960         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
30961         the TSS for remote access-to-subprogram types, since these TSS are
30962         always present once the type has been analyzed.
30963         (RAS_E_Dereference): Same.
30964
30965         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
30966         reference raises Bad_Attribute, mark the reference as analyzed so the
30967         node (and any children resulting from rewrites that could have occurred
30968         during the analysis that ultimately failed) is not analyzed again.
30969
30970         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
30971
30972         * exp_dist.adb: Minor comment fix.
30973
30974         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
30975         type is an anonymous access type, no unchecked deallocation of the
30976         allocated object can occur. If the object is controlled, attach it with
30977         a count of 1. This allows attachment to the Global_Final_List, if
30978         no other relevant list is available.
30979         (Get_Allocator_Final_List): For an anonymous access type that is
30980         the type of a discriminant or record component, the corresponding
30981         finalisation list is the one of the scope of the type.
30982
30983 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
30984
30985         * sem_ch3.adb (Replace_Type): When computing the signature of an
30986         inherited subprogram, use the first subtype if the derived type
30987         declaration has no constraint.
30988
30989         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
30990         before applying previous optimization. Minor code cleanup.
30991
30992         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
30993         placed at the beginning of an unpacked record without explicit
30994         alignment, a slice of it will be aligned and does not need a copy when
30995         used as an actual.
30996
30997 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
30998
30999         PR ada/15591
31000         PR ada/15592
31001         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
31002         reference is written with expressions mimicking parameters.
31003
31004 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
31005
31006         PR ada/15589
31007         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
31008         STEP 2a. The constraints of a full type declaration of a derived record
31009         type are checked for conformance with those declared in the
31010         corresponding private extension declaration. The message
31011         "not conformant with previous declaration" is emitted if an error is
31012         detected.
31013
31014 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
31015
31016         * g-traceb.ads: Document the need for -E binder switch in the spec.
31017
31018         * g-trasym.ads: Document the need for -E binder switch in the spec.
31019
31020 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
31021
31022         * sem_prag.adb: Add handling of pragma Detect_Blocking.
31023
31024         * snames.h, snames.ads, snames.adb: Add entry for pragma
31025         Detect_Blocking.
31026
31027         * s-rident.ads: Change reference to pragma Detect_Blocking.
31028
31029         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
31030         system.ads.
31031
31032         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
31033         to indicate whether pragma Detect_Blocking is active.
31034
31035         * par-prag.adb: Add entry for pragma Detect_Blocking.
31036
31037         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
31038         of not handling WITH.
31039         Note that this replaces the previous update which was incorrect.
31040
31041 2004-06-25  Javier Miranda  <miranda@gnat.com>
31042
31043         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
31044         use-clauses to have a clean environment.
31045
31046         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
31047         the installation of the use-clauses to stablish a clean environment in
31048         case of compilation of a separate unit; otherwise the call to
31049         use_one_package is protected by the barrier Applicable_Use.
31050
31051         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
31052         the installation of the use-clauses to stablish a clean environment in
31053         case of compilation of a separate unit.
31054         (End_Use_Clauses): Minor comment cleanup.
31055
31056 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
31057
31058         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
31059
31060 2004-06-23  Richard Henderson  <rth@redhat.com>
31061
31062         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
31063
31064 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31065
31066         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
31067         now bool instead of int.
31068         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
31069         * trans.c (gnu_switch_label_stack): New function.
31070         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
31071         elaboration of renamed entity returns.
31072         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
31073         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
31074         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
31075         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
31076         DECL_SIZE_UNIT and simplify variable-sized case.
31077         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
31078         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
31079         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
31080         (build_unit_elab): Disable for now.
31081         * utils.c (mark_visited): New function.
31082         (pushdecl): Walk tree to call it for global decl.
31083         (update_pointer_to): Update all variants of pointer and ref types.
31084         Add arg to COMPONENT_REF.
31085         (convert): Likewise.
31086         Move check for converting between variants lower down.
31087         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
31088         (build_allocator): Don't force type of MODIFY_EXPR.
31089         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
31090         put_var_into_stack.
31091
31092 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31093
31094         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
31095         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
31096         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
31097         subprograms.
31098         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
31099         all callers changed.
31100         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
31101         the way that EXIT_STMT finds the loop label.
31102         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
31103         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
31104         (add_stmt): Use annotate_with_locus insted of setting directly.
31105         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
31106         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
31107         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
31108         (build_vms_descriptor): Add extra args to ARRAY_REF.
31109         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
31110         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
31111         New cases.
31112         (build_binary_op): Don't make explicit CONVERT_EXPR.
31113         Add extra rgs to ARRAY_REF.
31114
31115 2004-06-14  Pascal Obry  <obry@gnat.com>
31116
31117         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
31118         Windows.  Fix minor typo.
31119
31120         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
31121         which is now supported on Windows. With this implementation using the
31122         Library Project feature is no different on Windows than on UNIX.
31123
31124 2004-06-14  Vincent Celier  <celier@gnat.com>
31125
31126         * makegpr.adb (Compile_Sources): Nothing to do when there are no
31127         non-Ada sources.
31128
31129         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
31130
31131         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
31132         found, show the project name and the path of the previously parsed
31133         project file.
31134
31135 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
31136
31137         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
31138         array, avoid copying the actual before the call.
31139
31140 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
31141
31142         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
31143         Instead, allocate memory on worst-case alignment assumptions, and then
31144         return an aligned address within the allocated zone.
31145
31146 2004-06-14  Robert Dewar  <dewar@gnat.com>
31147
31148         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
31149         elab entities in predefined units in No_Run_Time_Mode.
31150         (Gen_Adainit_C): Same fix
31151         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
31152         units in No_Run_Time_Mode
31153         (Gen_Elab_Calls_C): Same fix
31154
31155         * symbols-vms-alpha.adb: Minor reformatting
31156
31157         * g-debpoo.ads: Minor reformatting
31158
31159         * lib.adb (In_Same_Extended_Unit): Version working on node id's
31160
31161         * lib.ads (In_Same_Extended_Unit): Version working on node id's
31162
31163         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
31164         working on nodes.
31165
31166         * make.adb: Minor reformatting
31167
31168         * par-ch12.adb: Minor reformatting
31169
31170         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
31171
31172         * prj-strt.adb: Minor reformatting
31173
31174         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
31175         be more general.
31176
31177         * sem_attr.adb: Minor reformatting
31178
31179         * sem_ch7.adb: Minor reformatting
31180
31181         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
31182         for type in the same unit as the object declaration.
31183
31184         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
31185         static string expressions and not just string literals.
31186         Minor reformatting
31187         (Set_Warning): Reset restriction warning flag for restriction pragma
31188         Implement pragma Profile_Warnings
31189         Implement pragma Profile (Restricted)
31190         Give obolescent messages for old restrictions and pragmas
31191
31192         * snames.h, snames.ads, snames.adb: Add new entry for pragma
31193         Profile_Warnings.
31194
31195         * s-rident.ads: Add declarations for restrictions required by profile
31196         Restricted and profile Ravenscar.
31197
31198         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
31199
31200         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
31201         configuration pragmas.
31202
31203 2004-06-11  Vincent Celier  <celier@gnat.com>
31204
31205         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
31206         gnatsym, when symbol policy is Restricted.
31207
31208         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
31209         gnatsym, when symbol policy is Restricted.
31210
31211         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
31212         read the symbol file.
31213         (Finalize): Fail in symbol policy Restricted if a symbol in the original
31214         symbol file is not in the object files. Do not create a new symbol file
31215         when symbol policy is Restricted.
31216
31217         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
31218         in Scng.
31219
31220         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
31221         Restricted.
31222         (Usage): Line for new switch -R
31223
31224         * make.adb (Initialize): When the platform is not VMS, add the
31225         directory where gnatmake is invoked in the front of the path, if
31226         gnatmake is invoked with directory information.  Change the Scan_Args
31227         while loop to a for loop.
31228         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
31229         if Depth is equal or greater than the proposed depth, there is nothing
31230         to do.
31231         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
31232         instead of 0.
31233
31234         * prj.ads: Add new symbol policy Restricted.
31235
31236         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
31237         with the new parameters Check_All_Labels and Case_Location.
31238
31239         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
31240         (Library_Symbol_File needs to be defined).
31241
31242         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
31243         and Case_Location If Check_All_Labels is True, check that all values of
31244         the string type are used, and output warning(s) if they are not.
31245
31246         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
31247         and Case_Location.
31248
31249         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
31250
31251         * gnat_ugn.texi: Update documentation about the library directory in
31252         Library Projects.
31253
31254         * makegpr.adb (Display_Command): In verbose mode, also display the
31255         value of the CPATH env var, when the compiler is gcc.
31256         (Initialize): Change the Scan_Args while loop to a for loop
31257         (Compile_Individual_Sources): Change directory to object directory
31258         before compilations.
31259
31260         * symbols.ads: New symbol policy Restricted.
31261
31262 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
31263
31264         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
31265         is now taken care of internally in the Exception_Propagation package
31266         and does not require clients assistance any more.
31267
31268         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
31269         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
31270         functions. Helpers to maintain a predicate required in the handling of
31271         occurrence transfer between tasks.
31272         This is now handled internally and does not require clients assistance
31273         for the setup/propagate separation anymore.
31274         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
31275         allocation strategy, handle the Setup_And_Not_Propagated predicate and
31276         document.
31277
31278         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
31279         raise_after_setup, now that everything is handled internally within the
31280         setup/propagation engine.
31281
31282 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
31283
31284         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
31285         Add additional conditions for the case of an actual being a simple
31286         name or literal. Improve inlining by preventing the generation
31287         of temporaries with a short lifetime (one use).
31288
31289 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
31290
31291         PR ada/15587
31292         * einfo.ads: Minor comment updates for Has_Completion and
31293         E_Constant list of flags.
31294
31295         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
31296         and constant redeclarations now set the Has_Completion flag of their
31297         defining identifiers.
31298
31299         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
31300         Inspect_Deferred_Constant_Completion.
31301         Used to detect private deferred constants that have not been completed
31302         either by a constant redeclaration or pragma Import. Emits error message
31303         "constant declaration requires initialization expression".
31304
31305         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
31306         completes a deferred constant.
31307
31308 2004-06-11  Geert Bosch  <bosch@gnat.com>
31309
31310         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
31311
31312         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
31313         calculating exponent for scaling denormal numbers.
31314         (Leading_Part): Properly raise Constraint_Error for zero or negative
31315         Adjustment.
31316         (Remainder): Properly raise Constraint_Error for zero divisor.
31317
31318 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
31319
31320         * sem_util.adb: Minor reformatting.
31321
31322         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
31323         dereference when accessing the entry parameter record.
31324         (Check_Array_Type): Always check for possible implicit dereference.
31325         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
31326         Abort if a pointer is still present (denoting that an implicit
31327         dereference was left in the tree by the front-end).
31328
31329         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
31330         dereference when accessing the entry parameter record.
31331         (Check_Array_Type): Always check for possible implicit dereference.
31332         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
31333         Abort if a pointer is still present (denoting that an implicit
31334         dereference was left in the tree by the front-end).
31335
31336 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
31337
31338         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
31339         message, like the compiler itself does. Easier to parse the output.
31340
31341         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
31342
31343         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
31344         be base names, and not includes directories.
31345
31346 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
31347
31348         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
31349         so that dependencies are properly taken into account by make.
31350
31351 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
31352
31353         PR ada/15622
31354         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
31355         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
31356
31357 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
31358
31359         * Makefile.in (install-gnatlib): install target-specific run-time files.
31360
31361         * Make-lang.in: Remove obsolete targets.
31362
31363 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
31364
31365         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
31366         specification, to catch misuses of program unit names.
31367
31368         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
31369         superfluous conversions in an instance.
31370
31371 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
31372
31373         PR ada/15403
31374         * sem_ch12.adb (Save_References): If operator node has been folded to
31375         enumeration literal, associated_node must be discarded.
31376
31377 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
31378
31379         * s-stchop-vxworks.adb: Add required pragma Convention to
31380         Task_Descriptor because it is updated by a C function.
31381
31382 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
31383
31384         PR ada/15568
31385         * Makefile.in: Remove target specific SO_OPT on IRIX
31386
31387 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31388
31389         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
31390         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
31391         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
31392         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
31393         (STMT_STMT, USE_STMT): New statement codes.
31394         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
31395         * ada-tree.h: Reflect above changes.
31396         (struct tree_loop_id): Deleted.
31397         (union lang_tree_node, struct lang_decl, struct lang_type):
31398         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
31399         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
31400         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
31401         (IS_ADA_STMT): New macro.
31402         * decl.c (annotate_decl_with_node): New function.
31403         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
31404         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
31405         Call add_stmt_with_node to do needed assignments.
31406         Add call to update setjmp buffer directly, not via EXPR_STMT.
31407         (maybe_variable): Argment GNAT_NODE deleted.
31408         * gigi.h (maybe_variable): Likewise.
31409         (make_transform, add_stmt_with_node, set_block_for_group): New.
31410         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
31411         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
31412         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
31413         (set_lineno, set_lineno_from_sloc): Likewise.
31414         (record_code_position, insert_code_for): Likewise.
31415         (gnat_poplevel): Now returns void.
31416         (end_subprog_body): Now takes argument.
31417         * misc.c (cgraph.h, tree-inline.h): New includes.
31418         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
31419         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
31420         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
31421         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
31422         (gnat_parse_file): Don't set immediate_size_expand.
31423         Call cgraph functions.
31424         (gnat_expand_expr): Remove most cases.
31425         (record_code_position, insert_code_for): Remove from here.
31426         * trans.c (toplev.h, tree-gimple.h): Now included.
31427         (discard_file_names): Deleted.
31428         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
31429         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
31430         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
31431         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
31432         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
31433         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
31434         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
31435         (set_block_for_group, add_stmt_list): Likewise.
31436         (start_stmt_group): Renamed from start_block_stmt.
31437         (end_stmt_group): Likewise, from end_block_stmt.
31438         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
31439         (gigi): Don't set discard_file_names or call set_lineno.
31440         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
31441         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
31442         Numerous changes throughout to reflect new names and complete
31443         function-at-a-time implementation.
31444         (gnat_expand_stmt): Delete or comment out all cases.
31445         (process_inlined_subprograms): Use add_stmt.
31446         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
31447         call set_lineno; also remove unneeded block handling.
31448         (process_type): Remove unneeded block handling.
31449         (build_unit_elab): Remove calls to deleted functions.
31450         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
31451         (tree-dump.h): Likewise.
31452         (struct ada_binding_level): Add field jmpbuf_decl.
31453         (gnat_define_builtin, gnat_install_builtins): New.
31454         (gnat_gimplify_function, gnat_finalize): Likewise.
31455         (gnat_poplevel): No longer return BLOCK, set it instead.
31456         Remove code dealing with nested functions.
31457         (gnat_init_decl_processing): Also set size_type_node.
31458         Call gnat_install_builtins.
31459         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
31460         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
31461         Remove special-case for "main".
31462         (end_subprog_body): Add arg and rework for tree-ssa.
31463         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
31464         Add case for BOOLEAN_TYPE.
31465         * utils2.c (rtl.h): Now include.
31466         (build_call_raise): Test Debug_Flag_NN directly.
31467         (build_call_alloc_dealloc): Don't use local stack allocation for now.
31468         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
31469         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
31470
31471 2004-06-07  Robert Dewar  <dewar@gnat.com>
31472
31473         * a-direct.ads, einfo.ads: Minor comment updates
31474
31475         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
31476         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
31477         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
31478         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
31479         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
31480
31481         * s-interr-sigaction.adb: Remove unreferenced variable
31482         (Attached_Interrupts).  Minor reformatting.
31483         Avoid use of variable I (replace by J).
31484
31485         * par-ch10.adb: Fix text of one error message
31486
31487         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
31488         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
31489         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
31490         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
31491         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
31492         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
31493         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
31494         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
31495         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
31496         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
31497         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
31498         2005 support.
31499
31500 2004-06-07  Doug Rupp  <rupp@gnat.com>
31501
31502         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
31503
31504         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
31505
31506         * mlib-tgt-vms-ia64.adb: New file.
31507
31508         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
31509         Add mlib-tgt-vms-ia64.adb
31510         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
31511         Move to alpha specific ifeq section.
31512         Add VMS specific versions of symbols.adb
31513         Renaming of 5q vms files.
31514
31515         * 5qsystem.ads renamed to system-vms_64.ads.
31516
31517 2004-06-07  Vincent Celier  <celier@gnat.com>
31518
31519         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
31520         explain that when a time of day corresponding to the non existing hour
31521         on the day switching to DST is specified, Split may return a different
31522         value for Seconds.
31523
31524         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
31525         to GNAT PRETTY.
31526
31527         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
31528         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
31529
31530         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
31531         to False.
31532         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
31533         the linking options.
31534         (Build_Library.Check_Libs): On VMS, if there is a dependency on
31535         g-trasym.ads, set Gtrasymobj_Needed to True.
31536
31537         * prj-attr.adb: Add new package Metrics for gnatmetric
31538
31539         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
31540         canonical case to take into account files with upper case characters on
31541         Windows.
31542         (Ada_Check): Load the reference symbol file name in the name buffer to
31543         check it, not the symbol file name.
31544
31545         * snames.ads, snames.adb: Add standard name Metrics (name of project
31546         file package for gnatmetric).
31547
31548         * vms_conv.ads: Add Metric to Comment_Type
31549
31550         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
31551
31552         * vms_data.ads: Add qualifiers for GNAT METRIC
31553
31554         * makegpr.adb (Link_Executables): Take into account the switches
31555         specified in package Linker of the main project.
31556
31557 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
31558
31559         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
31560         the index of the last element is Units.Last, not Units.Table'Last
31561         (which is usually not a valid index within the actually allocated
31562         storage for the table).
31563
31564         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
31565         determines whether to generate a call to a checked storage pool
31566         Dereference action.
31567         Generate such a call only for a dereference that either comes from
31568         source, or is the result of rewriting a dereference that comes from
31569         source.
31570
31571 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
31572
31573         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
31574
31575 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
31576
31577         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
31578         file level, elaborate the stride for inner dimensions in alignment
31579         units, not bytes.
31580
31581         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
31582         in a comment.
31583
31584 2004-06-07  Javier Miranda  <miranda@gnat.com>
31585
31586         * exp_ch6.adb: Correct wrong modification in previous patch
31587
31588 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
31589
31590         * g-trasym.ads: Corrected comment to properly reflect level of support
31591         on VMS.
31592
31593 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
31594
31595         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
31596         includes case of a variable referenced on the left hand side of an
31597         assignment, therefore remove redundant code. Variables and prefixes of
31598         indexed or selected components are now marked as referenced on left
31599         hand side. Warnings are now properly emitted when variables or prefixes
31600         are assigned but not read.
31601
31602         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
31603         left hand side referenced variables. Private access types do not
31604         produce the warning "variable ... is assigned but never read".
31605         Add also additional checks to left hand side referenced variables.
31606         Aliased, renamed objects and access types do not produce the warning
31607         "variable ... is assigned but never read" since other entities may read
31608         the memory location.
31609
31610 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
31611
31612         * Makefile.in: In the powerpc/vxworks-specific section, restore
31613         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
31614         by mistake).
31615
31616 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
31617
31618         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
31619         predefined operators.
31620         Removes spurious type errors from g-trasym-vms.adb.
31621
31622         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
31623         distinct from the operator appearing in the source, call appropriate
31624         routine to insert conversions when needed, and complete resolution of
31625         node.
31626         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
31627         interpretations for rewritten right operand.
31628         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
31629         the other operand is overloaded and the context is a type conversion.
31630
31631 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31632
31633         * ada-tree.def (BLOCK_STMT): Now has two operands.
31634         (BREAK_STMT): New.
31635
31636         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
31637
31638         * gigi.h: (gnat_poplevel): Now returns a tree.
31639
31640         * trans.c (end_block_stmt): Add arg; all callers changed.
31641         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
31642         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
31643         (add_stmt): Set TREE_TYPE.
31644         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
31645         (gnat_expand_stmt, case BREAK_STMT): New case.
31646
31647         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
31648
31649 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
31650
31651         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
31652         procedure Set_Stack_Size that is not needed.
31653
31654 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
31655
31656         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
31657         used for gnatpp input file and for the files upon which it depends
31658
31659 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
31660
31661         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
31662
31663 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
31664
31665         * gnatvsn.ads: Bump version numbers appropriately.
31666         Add new build type.
31667
31668 2004-06-07  Pascal Obry  <obry@gnat.com>
31669
31670         * gnat_ugn.texi: Improve comments about imported names and link names
31671         on Windows. Add a note about the requirement to use -k gnatdll's option
31672         when working with a DLL which has stripped stdcall symbols (no @nn
31673         suffix).
31674
31675 2004-05-27  Vincent Celier  <celier@gnat.com>
31676
31677         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
31678         COMMENTS_LAYOUT=UNTOUCHED
31679
31680         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
31681         symbols-vms-alpha.adb
31682
31683 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
31684
31685         * sem.ads: Clarify documentation on checks suppression.
31686
31687         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
31688
31689 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
31690
31691         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
31692         the case of multiple derivations.
31693         (Is_Object_Reference): For a selected component, verify that the prefix
31694         is itself an object and not a value.
31695
31696         * sem_ch12.adb (Same_Instantiated_Constant): New name for
31697         Same_Instantiated_Entity.
31698         (Same_Instantiated_Variable): Subsidiary to
31699         Check_Formal_Package_Instance, to recognize actuals for in-out generic
31700         formals that are obtained from a previous formal package.
31701         (Instantiate_Subprogram_Body): Emit proper error when
31702         generating code and the proper body of a stub is missing.
31703
31704         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
31705         has a universal interpretation, do the disambiguation here.
31706
31707         * exp_ch4.adb (Expand_N_Type_Conversion,
31708         Expand_N_Unchecked_Type_Conversion): Special handling when target type
31709         is Address, to avoid typing anomalies when Address is a visible integer
31710         type.
31711
31712         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
31713         to determine whether a subprogram should not be marked Pure, even when
31714         declared in a pure package.
31715
31716 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
31717
31718         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
31719
31720         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
31721         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
31722         Update the documentation about the Ravenscar profile, following the
31723         definition found in AI-249.
31724
31725         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
31726         setting the Profile (Ravenscar). This must be done in addition to
31727         setting the required restrictions.
31728
31729         * rtsfind.ads: Add the set of operations defined in package
31730         Ada.Interrupts.
31731
31732         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
31733         restriction.
31734
31735 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
31736
31737         lang-specs.h: Always require -c or -S and always redirect to /dev/null
31738         if -gnatc or -gnats is passed.
31739
31740 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
31741
31742         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
31743         a significant reference. Warnings are now properly emitted when a
31744         discriminated type is not referenced.
31745
31746         * lib-xref.adb (Generate_Reference): A deferred constant completion,
31747         record representation clause or record type discriminant does not
31748         produce a reference to its corresponding entity. Warnings are now
31749         properly emitted when deferred constants and record types are not
31750         referenced.
31751
31752 2004-05-27  Geert Bosch  <bosch@gnat.com>
31753
31754         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
31755         Fixes ACATS Annex G tests.
31756
31757 2004-05-27  Robert Dewar  <dewar@gnat.com>
31758
31759         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
31760         handling WITH
31761
31762 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
31763
31764         * s-interr.adb (Server_Task): Take into account case of early return
31765         from sigwait under e.g. linux.
31766
31767 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
31768
31769         * gnat_ugn.texi: Add description for the new gnatpp options:
31770          -rnb - replace the original source without creating its backup copy
31771          -c0 - do not format comments
31772
31773 2004-05-24  Geert Bosch  <bosch@gnat.com>
31774
31775         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
31776         with 192 bits of precision, sufficient to reduce a double-extended
31777         arguments X with a maximum relative error of T'Machine_Epsilon, for X
31778         in -2.0**32 .. 2.0**32.
31779         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
31780         reduction by the processor, which only uses a 68-bit approximation of
31781         Pi.
31782         (Tan): Always reduce arguments and compute function either using
31783         the processor's fptan instruction, or by dividing sin and cos as needed.
31784
31785 2004-05-24  Doug Rupp  <rupp@gnat.com>
31786
31787         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
31788         gcc error on 32/64 bit VMS.
31789
31790 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
31791
31792         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
31793         since this is what we get for stack overflows although not documented
31794         as such.
31795         Document the issues which may require adjustments to our signal
31796         handlers.
31797
31798 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
31799
31800         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
31801         enclosing dynamic scope if the instantiation is within a generic unit.
31802
31803 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
31804
31805         * exp_dbug.ads: Fix typo.
31806
31807         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
31808         Rename it to its proper name: system-linux-ia64.ads
31809         (stamp-gnatlib1): Remove extra target specific run time files when
31810         setting up the rts directory.
31811
31812 2004-05-24  Javier Miranda  <miranda@gnat.com>
31813
31814         * einfo.ads, einfo.adb (Limited_Views): Removed.
31815         (Limited_View): New attribute that replaces the previous one. It is
31816         now a bona fide package with the limited-view list through the
31817         first_entity and first_private attributes.
31818
31819         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
31820         limited-private-with clause.
31821         (Install_Limited_Withed_Unit): Install the private declarations of a
31822         limited-private-withed package. Update the installation of the shadow
31823         entities according to the new structure (see Build_Limited_Views)
31824         (Build_Limited_Views): Replace the previous implementation of the
31825         limited view by a package entity that references the first shadow
31826         entity plus the first shadow private entity (required for limited-
31827         private-with clause)
31828         (New_Internal_Shadow_Entity): Code cleanup.
31829         (Remove_Limited_With_Clause): Update the implementation to undo the
31830         new work carried out by Build_Limited_Views.
31831         (Build_Chain): Complete documentation.
31832         Replace Ada0Y by Ada 0Y in comments
31833         Minor reformating
31834
31835         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
31836         types the level of accessibility depends on the enclosing type
31837         declaration.
31838
31839         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
31840         entities. Complete documentation of previous change.
31841
31842 2004-05-24  Robert Dewar  <dewar@gnat.com>
31843
31844         * namet.adb: Minor reformatting
31845         Avoid use of name I (replace by J)
31846         Minor code restructuring
31847
31848         * sem_ch6.adb: Minor reformatting
31849
31850         * lib-writ.adb: Do not set restriction as active if this is a
31851         Restriction_Warning case.
31852
31853         * sem_prag.adb: Reset restriction warning flag if real pragma
31854         restriction encountered.
31855
31856         * s-htable.adb: Minor reformatting
31857         Change rotate count to 3 in Hash (improves hash for small strings)
31858
31859         * 5qsystem.ads: Add comments for type Address (no literals allowed).
31860
31861         * gnat_ugn.texi: Add new section of documentation "Code Generation
31862         Control", which describes the use of -m switches.
31863
31864 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
31865
31866         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
31867         through the DECL_INITIAL for renamed variables.
31868
31869 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
31870
31871         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
31872
31873 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
31874
31875         * exp_dbug.ads: Correct comments concerning handling of overloading,
31876         since we no longer use $ anymore.
31877
31878 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
31879
31880         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
31881         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
31882         with illegal subunits.
31883
31884 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
31885
31886         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
31887         body with front-end inlining enabled, check whether an inline pragma
31888         appears immediately after the body and applies to it.
31889
31890         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
31891         enabled and the pragma appears after the body of the subprogram.
31892
31893 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31894
31895         Part of function-at-a-time conversion
31896
31897         * misc.c (adjust_decl_rtl): Deleted.
31898         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
31899         Define.
31900
31901         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
31902         (add_decl_stmt, add_stmt, block_has_vars): New functions.
31903         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
31904
31905         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
31906         when making a decl.
31907         (gnat_to_gnu_entity): Likewise.
31908         Use add_stmt to update setjmp buffer.
31909         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
31910         flush_addressof.
31911         No longer call adjust_decl_rtl.
31912         (DECL_INIT_BY_ASSIGN_P): New macro.
31913         (DECL_STMT_VAR): Likewise.
31914
31915         * trans.c (gigi): Call start_block_stmt to make the outermost
31916         BLOCK_STMT.
31917         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
31918         Call start_block_stmt and end_block_stmt temporarily.
31919         Use gnat_expand_stmt instead of expand_expr_stmt.
31920         (add_decl_stmt): New function.
31921         (tree_transform): Call it.
31922         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
31923         (end_block_stmt): Set type and NULL_STMT.
31924         (gnat_expand_stmt): Make recursize call instead of calling
31925         expand_expr_stmt.
31926         (gnat_expand_stmt, case DECL_STMT): New case.
31927         (set_lineno_from_sloc): Do nothing if global.
31928         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
31929         (start_block_stmt, add_stmt, end_block_stmt): New functions.
31930         (build_block_stmt): Call them.
31931         (gnat_to_code): Don't expand NULL_STMT.
31932         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
31933         args.
31934         (tree_transform): Likewise.
31935         (tree_transform, case N_Null_Statement): Return NULL_STMT.
31936         (gnat_expand_stmt, case NULL_STMT): New case.
31937         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
31938         IF_STMT_TRUE.
31939
31940         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
31941         TREE_ADDRESSABLE.
31942
31943         * utils.c (create_var_decl): Do not call expand_decl or
31944         expand_decl_init.
31945         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
31946         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
31947         here.
31948         (struct e_stack): Add chain_next to GTY.
31949         (struct binding_level): Deleted.
31950         (struct ada_binding_level): New struct.
31951         (free_block_chain): New.
31952         (global_binding_level, clear_binding_level): Deleted.
31953         (global_bindings_p): Rework to see if no chain.
31954         (kept_level_p, set_block): Deleted.
31955         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
31956         new data structure and work directly on BLOCK node.
31957         (gnat_poplevel): Similarly.
31958         (get_decls): Look at BLOCK_VARS.
31959         (insert_block): Work directly on BLOCK node.
31960         (block_has_var): New function.
31961         (pushdecl): Rework for new binding structures.
31962         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
31963         poplevel.
31964         (build_subprog_body): Likewise.
31965         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
31966
31967         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
31968
31969         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
31970         (DECL_STMT_VAR): Likewise.
31971
31972 2004-05-17  Robert Dewar  <dewar@gnat.com>
31973
31974         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
31975         procedure
31976
31977         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
31978         of restriction synonyums by using
31979         Restrict.Process_Restriction_Synonyms.
31980
31981         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
31982
31983         * s-restri.ads (Tasking_Allowed): Correct missing comment
31984
31985         * s-rident.ads: Add entries for restriction synonyms
31986
31987         * ali.adb: Fix some problems with badly formatted ALI files that can
31988         result in infinite loops.
31989
31990         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
31991         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
31992         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
31993         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
31994         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
31995         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
31996         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
31997         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
31998         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
31999         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
32000         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
32001         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
32002         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
32003         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
32004         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
32005         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
32006         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
32007         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
32008         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
32009         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
32010         to Task_Id (minor cleanup).
32011
32012 2004-05-17  Vincent Celier  <celier@gnat.com>
32013
32014         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
32015         directory separator.
32016
32017         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
32018         project being extended, if Languages is not declared in extending
32019         project.
32020
32021 2004-05-17  Javier Miranda  <miranda@gnat.com>
32022
32023         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
32024         limited view of a visible sibling.
32025
32026 2004-05-14  Robert Dewar  <dewar@gnat.com>
32027
32028         * gnat_ugn.texi: Minor change to -gnatS documentation
32029
32030         * sprint.adb: Remove some instances of Assert (False) and for this
32031         purpose replace them by output of a ??? string.
32032
32033         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
32034         Assert (False).
32035
32036         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
32037         flag processing. This was suppressing required dependencies in
32038         No_Run_Time mode and is not needed since the binder does not generate
32039         references for things in libgnat anyway.
32040
32041         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
32042         warning.
32043
32044 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
32045
32046         * gnat_ugn.texi: Document AIX-specific issue with initialization of
32047         resolver library.
32048
32049         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
32050         action for the case of an actual parameter in an init proc call.
32051
32052 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
32053
32054         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
32055         subtype, check visible entities in base type.
32056
32057         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
32058         actions if the object is a renaming.
32059
32060         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
32061         Check_Formal_Package_Instance, to determine more precisely when the
32062         formal and the actual denote the same entity.
32063
32064 2004-05-14  Javier Miranda  <miranda@gnat.com>
32065
32066         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
32067
32068         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
32069         corresponding to a private_with must be removed from visibility; it
32070         will be made visible later, just before we analyze the private part of
32071         the package.
32072         (Check_Private_Child_Unit): Allow private_with clauses in public
32073         siblings.
32074         (Install_Siblings): Make visible the private entities of private-withed
32075         siblings.
32076         (Install_Withed_Unit): Do not install the private withed unit if we
32077         are compiling a package declaration and the Private_With_OK flag was
32078         not set by the caller. These declarations will be installed later,
32079         just before we analyze the private part of the package.
32080
32081         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
32082         during the evaluation of the expression that initializes the object,
32083         decorate it with the expected type to avoid cascade errors.
32084         Code cleanup.
32085
32086         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
32087         subprogram we have to install the private_with clauses after its
32088         specification has been analyzed (as documented in AI-262.TXT).
32089
32090         * sem_ch8.adb (Has_Private_With): New function. Determines if the
32091         current compilation unit has a private with on a given entity.
32092         (Find_Direct_Name): Detect the Beaujolais problem described in
32093         AI-262.TXT
32094
32095         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
32096         provides the functionality of the function Is_Ancestor that was
32097         previously available in sem_ch10. It has been renamed to avoid
32098         overloading.
32099
32100         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
32101
32102 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32103
32104         * utils.c (build_vms_descriptor): Use SImode pointers.
32105
32106 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
32107
32108         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
32109
32110 2004-05-14  GNAT Script  <nobody@gnat.com>
32111
32112         * Make-lang.in: Makefile automatically updated
32113
32114 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
32115
32116         Renaming of target specific files for clarity
32117
32118         * Makefile.in: Rename GNAT target specific files.
32119
32120         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
32121         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
32122         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
32123         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
32124         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
32125         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
32126         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
32127         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
32128         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
32129         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
32130         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
32131         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
32132         51osinte.adb, 51osinte.ads, 51system.ads,
32133         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
32134         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
32135         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
32136         56tpopsp.adb, 57system.ads, 58system.ads,
32137         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
32138         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
32139         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
32140         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
32141         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
32142         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
32143         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
32144         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
32145         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
32146         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
32147         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
32148         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
32149         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
32150         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
32151         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
32152         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
32153         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
32154         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
32155         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
32156         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
32157         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
32158         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
32159         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
32160         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
32161         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
32162         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
32163         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
32164         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
32165         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
32166         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
32167         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
32168         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
32169         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
32170         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
32171         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
32172         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
32173         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
32174         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
32175         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
32176         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
32177
32178         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
32179         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
32180         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
32181         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
32182         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
32183         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
32184         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
32185         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
32186         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
32187         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
32188         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
32189         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
32190         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
32191         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
32192         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
32193         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
32194         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
32195         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
32196         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
32197         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
32198         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
32199         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
32200         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
32201         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
32202         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
32203         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
32204         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
32205         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
32206         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
32207         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
32208         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
32209         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
32210         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
32211         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
32212         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
32213         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
32214         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
32215         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
32216         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
32217         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
32218         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
32219         s-osinte-vms.ads, s-osinte-vxworks.adb,
32220         s-osinte-vxworks.ads, s-osprim-mingw.adb,
32221         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
32222         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
32223         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
32224         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
32225         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
32226         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
32227         s-stchop-vxworks.adb, s-taprop-dummy.adb,
32228         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
32229         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
32230         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
32231         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
32232         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
32233         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
32234         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
32235         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
32236         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
32237         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
32238         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
32239         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
32240         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
32241         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
32242         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
32243         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
32244         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
32245         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
32246         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
32247         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
32248         system-irix-o32.ads, system-linux-x86_64.ads,
32249         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
32250         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
32251         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
32252         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
32253         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
32254         system-vxworks-mips.ads, system-vxworks-ppc.ads,
32255         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
32256         above.
32257
32258 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
32259
32260         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
32261
32262 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
32263
32264         Merge from tree-ssa-20020619-branch.
32265
32266         * config-lang.in (boot_language, build_by_default): Set
32267         to no.
32268         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
32269         (max_size): Add static chain op for call_expr.
32270
32271 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
32272
32273         PR target/15331
32274         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
32275
32276 2004-05-11  Roger Sayle  <roger@eyesopen.com>
32277
32278         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
32279         COND_EXPR.
32280
32281 2004-05-10  Doug Rupp  <rupp@gnat.com>
32282
32283         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
32284         system.aux_dec.
32285
32286         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
32287
32288         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
32289
32290         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
32291         Fixes undefined symbols in IA64 gnatlib.
32292
32293         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
32294
32295         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
32296         Short_Address). This will be moved to system.auxdec.
32297
32298 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
32299
32300         * sem_util.adb: Replace test for presence of a node that is always
32301         present with a call to Discard_Node.
32302
32303         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
32304         Analyze on the library unit node after generation of distribution stub
32305         constructs.  The call was a no-op because Unit_Node has already been
32306         Analyzed, and the tree fragments for the distribution stubs are
32307         analyzed as they are inserted in Exp_Dist.
32308         Update comment regarding to distribution stubs to reflect that we
32309         do not generate stub in separate files anymore.
32310
32311         * einfo.ads: Clarify the fact that a tagged private type has the
32312         E_Record_Type_With_Private Ekind.
32313
32314         * erroutc.adb: Minor reformatting
32315
32316         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
32317         values if line length is increased using -gnatyM (noticed during code
32318         reading).
32319
32320         * eval_fat.adb: Minor reformatting
32321         Put spaces around exponentiation operator
32322
32323 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
32324
32325         PR ada/15005
32326         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
32327         has been rewritten as an explicit dereference, retrieve type of
32328         original node to check for possibly unconstrained record type.
32329
32330 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
32331
32332         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
32333         overriding, use the operation of the parent unconditionally.
32334
32335         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
32336         operation when either operand is a literal, to avoid further
32337         ambiguities.
32338
32339         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
32340         overridden by a previous explicit declaration, mark the previous entity
32341         as overriding.
32342
32343         * sem_disp.adb (Check_Dispatching_Operation): New predicate
32344         Is_Visibly_Controlled, to determine whether a declaration of a
32345         primitive control operation for a derived type overrides an inherited
32346         one. Add warning if the explicit declaration does not override.
32347
32348 2004-05-10  Vincent Celier  <celier@gnat.com>
32349
32350         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
32351         some cases when the sources are no longer present.
32352
32353         * make.adb (Collect_Arguments): Fail if an external source, not part
32354         of any project need to be compiled, when switch -x has not been
32355         specified.
32356
32357         * makeusg.adb: Document new switch -x
32358
32359         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
32360         defaulted to False.
32361
32362         * switch-m.adb (Scan_Make_Switches): New switch -x
32363
32364         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
32365         gnatmake switch -x.
32366
32367         * gnat_ugn.texi: Document new gnatmake switch -x
32368
32369 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
32370
32371         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
32372
32373         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
32374         (process_attributes): Likewise.
32375
32376 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
32377
32378         * s-inmaop.ads: Fix spelling mistake in one of the comments.
32379
32380 2004-05-10  Robert Dewar  <dewar@gnat.com>
32381
32382         * gnat_ugn.texi: Document that for config pragma files, the maximum
32383         line length is always 32767.
32384
32385         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
32386         literals is now allowed.
32387
32388         * gnat-style.texi: Remove statement about splitting long lines before
32389         an operator rather than after, since we do not follow this rule at all.
32390         Clarify rule (really lack of rule) for spaces around exponentiation
32391
32392         * sem_elim.adb: Allow concatenation of string literals as well as a
32393         single string literal for pragma arguments.
32394
32395         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
32396
32397         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
32398         written for append case.
32399
32400         * frontend.adb: Changes to avoid checking max line length in config
32401         pragma files.
32402
32403         * g-os_lib.ads: Minor reformatting
32404
32405         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
32406         wrong in any case. Instead use standard value. Noticed during code
32407         reading.
32408
32409         * opt.ads (Max_Line_Length): New field, used to implement removal of
32410         limitation on length of lines when scanning config pragma files.
32411
32412         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
32413         makeutl.ads, makeutl.adb: Minor reformatting
32414
32415         * scn.adb: Do not check line length while scanning config pragma files
32416         Do not check line length while scanning out license information
32417
32418         * scng.adb: Changes to avoid line length checks while parsing config
32419         pragma files.
32420
32421 2004-05-10  GNAT Script  <nobody@gnat.com>
32422
32423         * Make-lang.in: Makefile automatically updated
32424
32425 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
32426
32427         * osint.adb (Find_Program_Name): Fix handling of VMS version
32428         number.
32429
32430 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
32431
32432         * g-os_lib.ads (Invalid_Time): New constant
32433
32434         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
32435         return OS_Time instead of time_t to match what is imported by Ada.
32436         Now return -1 if the file doesn't exist, instead of a random value
32437
32438 2004-05-05  Robert Dewar  <dewar@gnat.com>
32439
32440         * usage.adb: Add line for -gnatR?s switch
32441
32442         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
32443
32444         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
32445         and for Match (Data_First, Data_last)
32446
32447         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
32448         written when we are dealing with multi-unit files.
32449
32450 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
32451
32452         * Makefile.in: Remove unused targets and variables.
32453
32454 2004-05-05  Vincent Celier  <celier@gnat.com>
32455
32456         * switch-m.adb: New gnatmake switch -eI
32457
32458         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
32459         of new gnatmake switch -eInnn.
32460
32461         * makegpr.adb: Take into account new parameters Index and Src_Index in
32462         Prj.Util.
32463
32464         * clean.adb: Implement support for multi-unit sources, including new
32465         switch -i.
32466
32467         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
32468         Src_Index.
32469
32470         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
32471         (Extract_From_Q): New out parameter Index
32472         (Mark, Is_Marked): Subprograms moved to Makeutl
32473         (Switches_Of): New parameter Source_Index
32474         (Add_Switch): New parameter Index
32475         (Check): New parameter Source_Index
32476         (Collect_Arguments): New parameter Source_Index
32477         (Collect_Arguments_And_Compile): New parameter Source_Index
32478         (Compile): New parameter Source_Index
32479         Put subprograms in alphabetical order
32480         Add support for multi-source sources, including in project files.
32481
32482         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
32483         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
32484         Make.
32485
32486         * makeusg.adb: New gnatmake switch -eInnn
32487
32488         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
32489         Prj.Util.Value_Of.
32490
32491         * opt.ads (Main_Index): New variable, defaulted to 0.
32492
32493         * osint.ads, osinte.adb (Add_File): New parameter Index
32494         (Current_Source_Index): New function
32495
32496         * prj.adb: Take into account new components Index and Src_Index
32497
32498         * prj.ads (String_Element): New component Index
32499         (Variable_Value): New component Index
32500         (Array_Element): New component Src_Index
32501
32502         * prj-attr.adb: Indicate that optional index may be specified for
32503         attributes Main, Executable, Spec, Body and some of Switches.
32504
32505         * prj-attr.ads (Attribute_Kind): New values for optional indexes
32506         (Attribute_Record): New component Optional_Index
32507
32508         * prj-com.ads (File_Name_Data): New component Index
32509
32510         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
32511
32512         * prj-env.adb (Put): Output optional index
32513
32514         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
32515         attributes Spec and Body.
32516
32517         * prj-nmsc.adb: Process optional indexes
32518
32519         * prj-pp.adb: Ouput "at" for optional indexes
32520
32521         * prj-proc.adb: Take into account optional indexes
32522
32523         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
32524         Optional_Index. For string literal,
32525         process optional index when Optional_Index is True.
32526         (Parse_Expresion): New Boolean parameter Optional_Index
32527
32528         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
32529         (Set_Source_Index_Of): New procedure
32530
32531         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
32532         index.
32533
32534         * prj-util.ads (Executable_Of): New parameter Index
32535         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
32536         New parameter Src_Index, defaulted to 0.
32537
32538 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
32539
32540         PR ada/15257
32541         * sem_ch3.adb (Access_Definition): If this is an access parameter
32542         whose designated type is imported through a limited_with clause, do
32543         not add the enclosing subprogram to the list of private dependents of
32544         the type.
32545
32546 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
32547
32548         PR ada/15258
32549         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
32550         a limited_with clause, and the other is its non-limited view.
32551
32552 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
32553
32554         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
32555
32556         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
32557         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
32558         Stand.Boolean_Literals to produce references to entities
32559         Standard_False and Standard_True from compile-time computed boolean
32560         values.
32561
32562         * stand.ads (Boolean_Literals): New variable, provides the entity
32563         values for False and True, for use by the expander.
32564
32565 2004-05-05  Doug Rupp  <rupp@gnat.com>
32566
32567         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
32568         5vinmaop.adb: Unchecked convert Short_Address vice Address
32569
32570         * adaint.c, raise.c: Caste CRTL function return value
32571         to avoid gcc error on 32/64 bit IVMS.
32572
32573         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
32574         target = IA64/VMS.
32575
32576         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
32577
32578         * 5qsystem.ads (Address): Declare as Long_Integer
32579         (Short_Address): Declare as 32 bit subtype of Address
32580         Declare  abstract address operations to avoid gratuitous ambiguities.
32581
32582 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
32583
32584         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
32585         instead of the old Boolean_Entry_Barriers.
32586         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
32587
32588 2004-05-05  GNAT Script  <nobody@gnat.com>
32589
32590         * Make-lang.in: Makefile automatically updated
32591
32592 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
32593
32594         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
32595
32596 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
32597
32598         PR ada/15152
32599         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
32600         alone. Replacing object references by literals is inappropriate in a
32601         so low level context.
32602
32603 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
32604
32605         * a-exexpr.adb: Add comments
32606
32607 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
32608
32609         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
32610         declare the Ancestor_Tags array in Type_Specific_Data with a small size
32611         without risking a bounds check error when accessing one of its
32612         components.
32613         (Type_Specific_Data): Define Ancestor_Tags as a small array.
32614         This prevents us from hitting a limitation during the debug info
32615         generation when using stabs.
32616
32617         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
32618         small array.
32619         This prevents us from hitting a limitation during the debug info
32620         generation when using stabs.
32621
32622 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
32623
32624         lang-specs.h: Remove -gnatz* from specs.
32625
32626 2004-05-03  Vincent Celier  <celier@gnat.com>
32627
32628         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
32629
32630         * Make-lang.in, Makefile.in: Add gprmake
32631
32632 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
32633
32634         * sem_aggr.adb: Fix typo in comment.
32635
32636 2004-05-03  Robert Dewar  <dewar@gnat.com>
32637
32638         * make.adb: Minor reformatting
32639
32640         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
32641
32642         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
32643         so that it works when address is not a private type.
32644
32645         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
32646         properly with rewritten unchecked conversions. This prevents
32647         order-of-elaboration issues that can otherwise arise.
32648         (Minimum_Size): Don't check size of access types under VMS
32649
32650         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
32651         interpretations of integer literals as type System.Address.
32652
32653         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
32654         (Is_Descendent_Of): New function
32655
32656 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
32657
32658         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
32659         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
32660         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
32661
32662         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
32663         of the old Max_Entry_Queue_Depth.
32664
32665         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
32666         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
32667         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
32668
32669         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
32670         New entry for proper handling of Max_Entry_Queue_Depth.
32671         New entry for proper handling of No_Dynamic_Interrupts.
32672
32673         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
32674         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
32675         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
32676         the GNAT specific restriction Max_Entry_Queue_Depth.
32677         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
32678         the GNAT specific restriction No_Dynamic_Interrupts.
32679
32680         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
32681         instead of the old Boolean_Entry_Barriers.
32682         Use the new restriction No_Dynamic_Attachment instead of the old
32683         No_Dynamic_Interrupts.
32684
32685         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
32686         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
32687
32688         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
32689         of the old Max_Entry_Queue_Depth.
32690
32691 2004-05-03  GNAT Script  <nobody@gnat.com>
32692
32693         * Make-lang.in: Makefile automatically updated
32694
32695 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
32696
32697         * checks.adb (Enable_Range_Check): If the prefix of an index component
32698         is an access to an unconstrained array, perform check unconditionally.
32699
32700 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32701
32702         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
32703         Component_Clause.
32704
32705 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
32706
32707         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
32708         alternate stack setting. There was no support for the tasking cases
32709         and the changes eventually caused a number of side-effect failures in
32710         the non-tasking case too.
32711
32712 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
32713
32714         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
32715         -gnats is passed.
32716
32717 2004-04-29  Vincent Celier  <celier@gnat.com>
32718
32719         * make.adb (Gnatmake): Increase max size of argument array for
32720         gnatbind for the potential addition of -F.
32721         If there are Stand-Alone Library projects, invoke gnatbind with -F to
32722         be sure that elaboration flags will be checked.
32723
32724         * switch-c.adb: Correct call to Scan_Pos for -gnateI
32725
32726 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
32727
32728         * sem_warn.adb (Check_References): Move '<access-variable> may be
32729         null' warning out of under Warn_On_No_Value_Assigned.
32730
32731 2004-04-29  Ed Falis  <falis@gnat.com>
32732
32733         * gnat_ugn.texi: Fixed texi error
32734
32735 2004-04-29  Robert Dewar  <dewar@gnat.com>
32736
32737         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
32738         abstract operations if they come from predefined files.
32739
32740         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
32741         Dynamic, not RM).
32742
32743         * s-addope.adb: Correct obvious error in mod function
32744
32745 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
32746
32747         * Makefile.in: Add target pairs for powerpc darwin*
32748         tasking support.
32749
32750         * a-intnam-darwin.ads, s-osinte-darwin.adb,
32751         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
32752
32753 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
32754
32755         * Makefile.in: Add target macro definitions for s390*-linux*.
32756         * system-linux-s390.ads: New file.
32757         * system-linux-s390x.ads: New file.
32758
32759 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
32760
32761         * gnat_ugn.texi: Correct argument to @setfilename.
32762
32763 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
32764
32765         * a-exexpr.adb (Unwind_Word): New data type.
32766         (Unwind_Exception): Use it as type of Private1 and Private2.
32767
32768         * raise.c (db_action_for): Fix debug printf.
32769
32770 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
32771
32772         * a-wtmoio.ads: Formal type must be a modular type, not a signed
32773         integer type.
32774
32775 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32776
32777         * decl.c (gnat_to_gnu_entity, case object): Call
32778         __builtin_update_setjmp_buf.
32779
32780         * gigi.h (update_setjmp_buf): Deleted.
32781         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
32782
32783         * misc.c: (update_setjmp_buf): Deleted.
32784
32785         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
32786         around block of RTL.
32787
32788         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
32789
32790 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
32791
32792         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
32793         subprogram for which no pragma All_Calls_Remote applies, store the
32794         address of the real subprogram in the underlying record type, so local
32795         dereferences do not go through the PCS.
32796
32797 2004-04-26  Robert Dewar  <dewar@gnat.com>
32798
32799         * i-c.ads: Add some type qualifications to avoid ambiguities when
32800         compiling with s-auxdec.ads and a non-private address type.
32801
32802 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
32803
32804         * Makefile.rtl: Fix error in previous check-in:
32805         Add s-addope.o to non tasking object list (rather than tasking object
32806         list).
32807
32808 2004-04-26  Javier Miranda  <miranda@gnat.com>
32809
32810         * sem_aggr.adb: Fix typo in comments
32811         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
32812         Required to check the null-exclusion attribute.
32813
32814         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
32815         case of anonymous access types in record and array components. For a
32816         component definition the level is the same of the enclosing composite
32817         type.
32818
32819         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
32820         that are anonymous access types the level of accessibility depends on
32821         the enclosing type declaration. In order to have this information, set
32822         the scope of the anonymous access type to the enclosing record type
32823         declaration.
32824         (Array_Type_Declaration): In case of components that are anonymous
32825         access types the level of accessibility depends on the enclosing type
32826         declaration. In order to have this information, set the scope of the
32827         anonymous access type to the enclosing array type declaration.
32828
32829         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
32830         access type.
32831
32832         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
32833         renaming of anonymous access-to-constant types allowed if and only if
32834         the renamed object is access-to-constant.
32835
32836         * sem_util.adb (Type_Access_Level): In case of anonymous access types
32837         that are component_definition or discriminants of a nonlimited type,
32838         the level is the same as that of the enclosing component type.
32839
32840 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
32841
32842         * sem_elim.adb: Some minor code reorganization from code reading. Fix
32843         misprint in the function name (File_Name_Match).
32844
32845 2004-04-23  Laurent Guerby  <laurent@guerby.net>
32846
32847         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
32848         install.
32849
32850 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
32851
32852         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
32853
32854 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
32855
32856         * adaint.c (__gnat_try_lock): No longer requires that the parent
32857         directory be writable, the directory itself is enough.
32858         (gnat_is_absolute_path): Change profile, so that the call from
32859         GNAT.OS_Lib can be made more efficient.
32860
32861         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
32862         from GNAT.OS_Lib can be made more efficient.
32863
32864         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
32865         one copy of the file name. Found by code reading.
32866
32867 2004-04-23  Vincent Celier  <celier@gnat.com>
32868
32869         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
32870         Correct documentation on gnatmake switches transmitted to the compiler
32871
32872         * ali.ads: Minor comment fix
32873
32874 2004-04-23  Javier Miranda  <miranda@gnat.com>
32875
32876         * sem_ch6.adb: (Confirming Types): Code cleanup
32877
32878         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
32879         subprogram types: E_Anonymous_Access_Subprogram_Type and
32880         E_Anonymous_Access_Protected_Subprogram_Type.
32881
32882 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
32883
32884         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
32885         whether a pragma All_Calls_Remote applies to the subprogram on which
32886         'Access is taken.
32887         No functional change is introduced by this revision; the new parameter
32888         will be used to allow calls to local RCI subprograms to be optimized
32889         to not use the PCS in the case where no pragma All_Calls_Remote applies,
32890         as is already done in the PolyORB implementation of the DSA.
32891
32892         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
32893         whether a pragma All_Calls_Remote applies to the subprogram on which
32894         'Access is taken.
32895         No functional change is introduced by this revision; the new parameter
32896         will be used to allow calls to local RCI subprograms to be optimized
32897         to not use the PCS in the case where no pragma All_Calls_Remote applies,
32898         as is already done in the PolyORB implementation of the DSA.
32899
32900 2004-04-23  Robert Dewar  <dewar@gnat.com>
32901
32902         * Makefile.rtl: Add entry for s-addope.o in run time library list
32903         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
32904         * s-addope.ads, s-addope.adb: New files.
32905
32906         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
32907         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
32908         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
32909         System.Address to be non-private and signed.
32910
32911         * sem_elim.adb: Minor reformatting (fairly extensive)
32912         Some minor code reorganization from code reading
32913         Add a couple of ??? comments
32914
32915 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32916
32917         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
32918         (tree_transform, case N_If_Statement): Remove non-determinism.
32919
32920         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
32921
32922 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
32923
32924         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
32925         Eliminate' section.
32926
32927         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
32928         no longer used as a parameter name for Eliminate pragma).
32929
32930 2004-04-22  Laurent Guerby  <laurent@guerby.net>
32931
32932         PR optimization/14984
32933         PR optimization/14985
32934         * trans.c (gigi): Fix non determinism leading to bootstrap
32935         comparison failures.
32936
32937 2004-04-21  Pascal Obry  <obry@gnat.com>
32938
32939         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
32940         passed to spawnvp() to properly handle program pathname with spaces on
32941         Win32.
32942
32943 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
32944
32945         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
32946         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
32947         unlocked in case of exceptions.
32948
32949 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
32950
32951         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
32952         This function does not exist anymore.
32953
32954 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
32955
32956         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
32957
32958         * link.c: Move variables to the __gnat name space.
32959
32960         * Makefile.in: list link.o explicitly when needed.
32961
32962         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
32963
32964 2004-04-21  Javier Miranda  <miranda@gnat.com>
32965
32966         * einfo.adb (Original_Access_Type): New subprogram
32967         (Set_Original_Access_Type): New subprogram
32968         (Write_Field21_Name): Write the name of the new field
32969
32970         * einfo.ads (Original_Access_Type): New field present in access to
32971         subprogram types.
32972         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
32973         E_Anonymous_Access_Protected_Subprogram_Type.
32974
32975         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
32976         subprogram types.
32977
32978         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
32979         to anonymous access to subprogram types.
32980
32981         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
32982         to subprogram types.
32983
32984         * sem_ch3.adb (Access_Definition): Complete decoration of entities
32985         corresponding to anonymous access to subprogram types.
32986         (Analyze_Component_Declaration): Add new actual to the call to
32987         subprogram replace_anonymous_access_to_protected_subprogram.
32988         (Array_Type_Declaration): Add new actual to the call to subprogram
32989         replace_anonymous_access_to_protected_subprogram.
32990         (Process_Discriminants): Add new actual to the call to subprogram
32991         replace_anonymous_access_to_protected_subprogram.
32992         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
32993
32994         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
32995         formal.
32996
32997         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
32998         access to subprogram types.
32999
33000         * sem_util.adb (Has_Declarations): Addition of package_specification
33001         nodes.
33002
33003 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
33004
33005         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
33006         inlined flags to renamed entity only if in current unit.
33007
33008 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
33009
33010         * s-parint.ads: Add DSA implementation marker.
33011
33012         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
33013         value of System.Partition_Interface.DSA_Implementation to determine
33014         what version of the distributed systems annex is available (no
33015         implementation, GLADE, or PolyORB).
33016
33017 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
33018
33019         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
33020
33021 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33022
33023         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
33024         with new type if alias sets differ.
33025         Fixes ACATS c41103b.
33026
33027 2004-04-21  Vincent Celier  <celier@gnat.com>
33028
33029         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
33030         Add array Lang_Args for the language specific compiling argument
33031         switches.
33032
33033         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
33034
33035 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
33036
33037         * gnat_rm.texi: Update the descripton of the Eliminate pragma
33038         according to the recent changes in the format of the parameters of the
33039         pragma (replacing Homonym_Number with Source_Location).
33040
33041 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
33042
33043         * 5isystem.ads: Removed, unused.
33044
33045         * gnat_rm.texi: Redo 1.13 change.
33046
33047 2004-04-19  Robert Dewar  <dewar@gnat.com>
33048
33049         * s-stoele.ads: Clean up definition of Storage_Offset (the new
33050         definition is cleaner, avoids the kludge of explicit Standard operator
33051         references, and also is consistent with a visible System.Address with
33052         no visible operations.
33053
33054         * s-geveop.adb: Add declarations to avoid assumption of visible
33055         operations on type System.Address (since these might not be available
33056         if Address is a non-private type for which the operations
33057         are made abstract).
33058
33059         * sem_eval.adb: Minor reformatting
33060
33061         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
33062         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
33063         reformatting (new function spec format).
33064
33065         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
33066         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
33067         s-caun64.adb: Add declarations to avoid assumption of visible
33068         operations on type System.Address (since these might not be available
33069         if Address is a non-private type for which the operations are made
33070         abstract).
33071
33072         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
33073
33074         * exp_intr.adb: Minor comment update
33075
33076         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
33077
33078         * 5omastop.adb: Add declarations to avoid assumption of visible
33079         operations on type System.Address (since these might not be available
33080         if Address is a non-private type for which the operations
33081         are made abstract).
33082
33083 2004-04-19  Vincent Celier  <celier@gnat.com>
33084
33085         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
33086
33087         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
33088         defaulted to Ada.
33089
33090         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
33091         defaulted to Ada.
33092         Call Check with Process_Languages.
33093         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
33094         with Process_Languages.
33095         (Recursive_Check): New Boolean parameter Process_Languages. Call
33096         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
33097         Process_Languages.
33098
33099         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
33100
33101         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
33102         parameter Ada_Main, defaulted to True.
33103         Check for Ada specific characteristics only when Ada_Main is True.
33104
33105         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
33106
33107         * prj.adb: (Project_Empty): Add new Project_Data components.
33108
33109         * prj.ads: New types and tables for non Ada languages.
33110         (Project_Data): New components Languages, Impl_Suffixes,
33111         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
33112         Include_Path, Include_Data_Set.
33113
33114         * prj-env.ads, prj-env.adb: Minor reformatting
33115
33116         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
33117         Put subprograms in alphabetical order
33118
33119         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
33120         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
33121         Opt.Follow_Links.
33122
33123         * mlib-prj.adb: Back out modification in last version, as they are
33124         incorrect.
33125         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
33126
33127         * make.adb: (Mains): Moved to package Makeutl
33128         (Linker_Opts): Moved to package Makeutl
33129         (Is_External_Assignment): Moved to package Makeutl
33130         (Test_If_Relative_Path): Moved to package Makeutl
33131         (Gnatmake): Move sorting of linker options to function
33132         Makeutl.Linker_Options_Switches.
33133
33134         * makeutl.ads, makeutl.adb: New files.
33135
33136         * Makefile.in: Add makeutl.o to the object files for gnatmake
33137
33138         * makeusg.adb: Add line for new switch -eL.
33139
33140         * gnatls.adb (Image): New function.
33141         (Output_Unit): If in verbose mode, output the list of restrictions
33142         specified by pragmas Restrictions.
33143
33144         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
33145         Text_IO.
33146
33147         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
33148         needed, to put it in the range 1970 (included) - 2026 (excluded).
33149         (Time_Of): Do not shift Unix_Min_Year (1970).
33150         Shift the date by multiple of 56 years, if needed, to put it in the
33151         range 1970 (included) - 2026 (excluded).
33152
33153         * adaint.h, adaint.c (__gnat_set_executable): New function.
33154
33155 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33156
33157         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
33158         and pop GC context.
33159         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
33160         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
33161         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
33162         (tree_transform, case N_Code_Statement): Likewise.
33163         (gnat_expand_stmt, case LABEL_STMT): Don't look at
33164         LABEL_STMT_FIRST_IN_EH.
33165         (gnat_expand_stmt, case ASM_STMT): New case.
33166
33167         * utils2.c (build_unary_op): Properly set TREE_READONLY of
33168         UNCONSTRAINED_ARRAY_REF.
33169
33170         * utils.c (poplevel): Temporarily push/pop GC context around inline
33171         function expansion.
33172
33173         * decl.c (maybe_variable): Properly set TREE_READONLY of
33174         UNCONSTRAINED_ARRAY_REF.
33175         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
33176
33177         * ada-tree.def: (ASM_STMT): New.
33178
33179         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
33180         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
33181         ASM_STMT_INPUT): New.
33182         (ASM_STMT_CLOBBER): Likewise.
33183
33184 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
33185
33186         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
33187         general rcheck mechanism to raise Program_Error for E.4(18), instead
33188         of a custom raiser in System.Partition_Interface.
33189         Part of general cleanup work before PolyORB integration.
33190
33191         * snames.ads, snames.adb: Add new runtime library entities and names
33192         for PolyORB DSA.
33193
33194         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
33195         exp_dist.
33196         (Build_Subprogram_Id): New subprogram provided by exp_dist
33197         Code reorganisation in preparation for PolyORB integration.
33198
33199         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
33200         exp_dist.
33201         (Build_Subprogram_Id): New subprogram provided by exp_dist
33202
33203         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
33204         actual parameter types for call to dereference of an
33205         access-to-subprogram type.
33206
33207         * rtsfind.ads: Add new runtime library entities and names for PolyORB
33208         DSA.
33209
33210         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
33211         instead, which has the same behaviour here since we never pass it a
33212         NULL pointer.
33213
33214         * link.c (run_path_option, Solaris case): Use -Wl, as for other
33215         platforms.
33216
33217         * Makefile.in: adjust object file lists for gnatlink and gnatmake
33218         to account for new dependency upon Interfaces.C.Strings + link.o
33219         For x86 FreeBSD, use 86numaux.
33220
33221         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
33222         from Mlib.Tgt to Mlib.
33223
33224         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
33225         target-independent.
33226
33227         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
33228         target-specific versions of this subprogram, now implemented as a
33229         target-independent function in Mlib.
33230
33231         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
33232         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
33233         (Linker_Library_Path_Option): Remove target-specific versions of this
33234         subprogram, now implemented as a target-independent function in Mlib.
33235
33236         * atree.adb: (Allocate_Initialize_Node): New subprogram.
33237         Factors out node table slots allocation.
33238         (Fix_Parents): New subprogram.
33239         Encapsulate the pattern of fixing up parent pointers for syntactic
33240         children of a rewritten node.
33241         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
33242         (Rewrite): Use New_Copy when creating saved copy of original node.
33243         (Replace): Use Copy_Node to copy nodes.
33244
33245 2004-04-19  Javier Miranda  <miranda@gnat.com>
33246
33247         * sprint.adb (Sprint_Node_Actual): Give support to the new
33248         Access_To_Subprogram node available in Access_Definition nodes. In
33249         addition, give support to the AI-231 node fields: null-exclusion,
33250         all-present, constant-present.
33251
33252         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
33253
33254         * sinfo.ads, sinfo.adb:
33255         New field Access_To_Subprogram_Definition in Access_Definition nodes
33256
33257         * sem_ch6.adb (Process_Formals): Move here the code that creates and
33258         decorates internal subtype declaration corresponding to the
33259         null-excluding formal. This code was previously in Set_Actual_Subtypes.
33260         In addition, carry out some code cleanup on this code. In case of
33261         access to protected subprogram call
33262         Replace_Anonymous_Access_To_Protected_Subprogram.
33263         (Set_Actual_Subtypes): Code cleanup.
33264
33265         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
33266         Find_Type in case of anonymous access renamings. Add warning in case of
33267         null-excluding attribute used in anonymous access renaming.
33268
33269         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
33270         subprogram
33271
33272         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
33273         subprogram.
33274         (Access_Definition): In case of anonymous access to subprograms call
33275         the corresponding semantic routine to decorate the node.
33276         (Access_Subprogram_Declaration): Addition of some comments indicating
33277         some code that probably should be added here. Detected by comparison
33278         with the access_definition subprogram.
33279         (Analyze_Component_Declaration): In case of access to protected
33280         subprogram call Replace_Anonymous_Access_To_Protected.
33281         (Array_Type_Declaration): In case of access to protected subprogram call
33282         Replace_Anonymous_Access_To_Protected_Subprogram.
33283         (Process_Discriminants): In case of access to protected subprogram call
33284         Replace_Anonymous_Access_To_Protected_Subprogram.
33285
33286         * par.adb (P_Access_Definition): New formal that indicates if the
33287         null-exclusion part was present.
33288         (P_Access_Type_Definition): New formal that indicates if the caller has
33289         already parsed the null-excluding part.
33290
33291         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
33292         (P_Identifier_Declarations): Code cleanup and give support to renamings
33293         of anonymous access to subprogram types.
33294         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
33295         (P_Array_Type_Definition): Give support to AI-254.
33296         (P_Component_Items): Give support to AI-254.
33297         (P_Access_Definition): New formal that indicates if the header was
33298         already parsed by the caller.
33299         (P_Access_Type_Definition): New formal that indicates if the caller has
33300         already parsed the null-excluding part.
33301
33302         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
33303         call to P_Access_Definition.
33304
33305 2004-04-19  Geert Bosch  <bosch@gnat.com>
33306
33307         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
33308         the delicate semantics of floating-point to integer conversion.
33309         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
33310
33311         * eval_fat.adb (Machine_Mantissa): Moved to spec.
33312         (Machine_Radix): New function.
33313
33314         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
33315         conversion checks.
33316         (Machine_Radix): New function also for use in conversion checks.
33317
33318 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
33319
33320         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
33321
33322         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
33323         to decorate the access-to-protected subprogram and the equivalent type.
33324
33325         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
33326         to anonymous access to subprogram types.
33327
33328         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
33329         constant-folding, for legality checks in contexts that require an RM
33330         static expression.
33331
33332         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
33333         temporary but stack checking is not enabled, increment serial number
33334         to so that symbol generation is consistent with and without stack
33335         checking.
33336
33337         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
33338         independent on whether stack checking is enabled, caller must check
33339         the corresponding flag.
33340
33341         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
33342         range checks.
33343         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
33344         parent if it has discriminants.
33345         (Build_Derived_Private_Type): Constructed full view does
33346         not come from source.
33347         (Process_Discriminants): Default discriminants on a tagged type are
33348         legal if this is the internal completion of a private untagged
33349         derivation.
33350
33351         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
33352         no constraint checks, because it corresponds to an existing object.
33353
33354         * sem_prag.adb (Process_Convention): Pragma applies
33355         only to subprograms in the same declarative part, i.e. the same unit,
33356         not the same scope.
33357
33358         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
33359         ignore type mismatch on a numeric conversion if expression comes from
33360         expansion.
33361
33362 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
33363
33364         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
33365         Homonym_Number parameter, add processing for Source_Location parameter
33366         corresponding.
33367         (Check_Eliminated): Remove the check for homonym numbers, add the check
33368         for source location traces.
33369
33370         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
33371         with Arg_Source_Location corresponding to the changes in the format of
33372         the pragma.
33373
33374         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
33375         Eliminate pragma corresponding to the changes in the format of the
33376         pragma: Homonym_Number is replaced with Source_Location, two ways of
33377         distinguishing homonyms are mutially-exclusive.
33378
33379 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
33380
33381         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
33382
33383         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
33384         No_Dollar_In_Label, no longer necessary, as it is always True.
33385         (Strip_Suffixes): Likewise.
33386
33387 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
33388
33389         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
33390         modulus for compatibility with size clause on targets with 16-bit
33391         Integer.
33392
33393         * layout.adb (Discrimify): In the case of private types, set Vtyp to
33394         full type to fix type mismatches on calls to size functions for
33395         discriminant-dependent array components.
33396
33397 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
33398
33399         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
33400         lib.
33401
33402 2004-04-19  Pascal Obry  <obry@gnat.com>
33403
33404         * mdll-utl.adb (Locate): New version is idempotent.
33405
33406 2004-04-17  Laurent Guerby  <laurent@guerby.net>
33407
33408         PR ada/14988 (partial)
33409         * impunit.adb: Fix typo.
33410
33411 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
33412
33413         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
33414         and install-rts-cert targets.  Remove all gnatlib and gnattools
33415         targets and all other rts-* targets (moved to libada).  Remove (now)
33416         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
33417         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
33418
33419 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33420
33421         * trans.c (tree_transform): Shortcut returning error_mark_node for
33422         statements in annotate_only_mode.
33423         (tree_transform, case N_Label, case N_Return_Statement,
33424         N_Goto_Statement): Make statement tree instead of generating code.
33425         (tree_transform, case N_Assignment_Statement): No longer check
33426         type_annotate_only.
33427         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
33428         RETURN_STMT): New.
33429         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
33430         New fcns.
33431         (gnat_to_gnu): Collect any RTL generated and deal with it.
33432         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
33433         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
33434         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
33435
33436         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
33437
33438         * ada-tree.def (EXPR_STMT): Fix typo in name.
33439         (BLOCK_STMT, IF_STMT): New nodes.
33440
33441         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
33442         LABEL_STMT_FIRST_IN_EH): New macros.
33443         (RETURN_STMT_EXPR): Likewise.
33444
33445         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
33446         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
33447
33448 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
33449
33450         * atree.ads: Correct documentation on extended nodes.
33451
33452         * link.c: Set run_path_option for FreeBSD.
33453
33454 2004-04-08  Vincent Celier  <celier@gnat.com>
33455
33456         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
33457         one of the ALI file, do not link with DEC lib.
33458
33459         * par.adb Remove the last two characters ("%s" or "%b") when checking
33460         if a language defined unit may be recompiled.
33461
33462 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
33463
33464         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
33465         removal of abstract operation leaves no possible interpretation for
33466         expression.
33467
33468         * sem_eval.adb (Eval_Qualified_Expression): Use
33469         Set_Raises_Constraint_Error on node when needed, so that it does not
33470         get optimized away by subsequent optimizations.
33471
33472         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
33473         operands even when they are not wrapped in a type conversion.
33474
33475 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
33476
33477         * sem_prag.adb (Set_Exported): Warn about making static as result of
33478         export only when the export is coming from source. This may be not
33479         be true e.g. on VMS where we expand export pragmas for exception codes
33480         together with imported or exported exceptions, and we don't want the
33481         user to be warned about something he didn't write.
33482
33483 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
33484
33485         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
33486         duplication between normal entities and those declared as renamings.
33487         No functional change.
33488
33489         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
33490         inline functions returning an unconstrained result.
33491
33492 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
33493
33494         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
33495         conform to what other front-ends do.
33496
33497 2004-04-08  Doug Rupp  <rupp@gnat.com>
33498
33499         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
33500         libraries.
33501
33502 2004-04-06  Pascal Obry  <obry@gnat.com>
33503
33504         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
33505
33506         * osint.adb (Program_Name): Do not look past a directory separator.
33507
33508 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
33509
33510         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
33511
33512         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
33513         requirement for preserving a copy of the original assignment node.
33514
33515         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
33516
33517 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
33518
33519         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
33520         when supported.
33521
33522 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
33523
33524         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
33525         operator calls in functional notation, and apply
33526         Universal_Interpretation to operands, not to their type.
33527
33528 2004-04-06  Robert Dewar  <dewar@gnat.com>
33529
33530         * 5wdirval.adb: Minor reformatting
33531
33532 2004-04-06  Ed Falis  <falis@gnat.com>
33533
33534         * gnat_rm.texi: Improve a reference to the GCC manual
33535
33536 2004-04-05  Vincent Celier  <celier@gnat.com>
33537
33538         * adaint.h, adaint.c: Add function __gnat_named_file_length
33539
33540         * impunit.adb: Add Ada.Directories to the list
33541
33542         * Makefile.in: Add VMS and Windows versions of
33543         Ada.Directories.Validity package body.
33544
33545         * Makefile.rtl: Add a-direct and a-dirval
33546
33547         * mlib-tgt.ads: Minor comment update.
33548
33549         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
33550         a-direct.ads, a-direct.adb: New files.
33551
33552 2004-04-05  Vincent Celier  <celier@gnat.com>
33553
33554         PR ada/13620
33555         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
33556         just to the compiler.
33557
33558 2004-04-05  Robert Dewar  <dewar@gnat.com>
33559
33560         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
33561         returned string is 1.
33562
33563         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
33564
33565         * eval_fat.ads: Minor reformatting
33566
33567         * g-curexc.ads: Document that lower bound of returned string values
33568         is always one.
33569
33570         * gnatlink.adb: Add ??? comment for previous change
33571         (need to document why this is VMS specific)
33572
33573         * s-stoele.ads: Minor reformatting
33574
33575         * tbuild.ads: Minor reformatting throughout (new function specs)
33576
33577         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
33578         after WITH.
33579
33580         * scng.adb: Minor reformatting
33581
33582 2004-04-05  Geert Bosch  <bosch@gnat.com>
33583
33584         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
33585         (Leading_Part): Still perform truncation to machine number if the
33586         specified radix_digits is greater or equal to machine_mantissa.
33587
33588 2004-04-05  Javier Miranda  <miranda@gnat.com>
33589
33590         * par-ch3.adb: Complete documentation of previous change
33591         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
33592         (aliased must appear before constant).
33593
33594         * par-ch4.adb: Complete documentation of previous change.
33595
33596         * par-ch6.adb: Complete documentation of previous change.
33597
33598         * sinfo.ads: Fix typo in commment.
33599
33600 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
33601
33602         * sem_ch3.adb (Inherit_Components): If derived type is private and has
33603         stored discriminants, use its discriminants to constrain parent type,
33604         as is done for non-private derived record types.
33605
33606         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
33607         Ada 2005 AI-310: an abstract non-dispatching operation is not a
33608         candidate interpretation in an overloaded call.
33609
33610         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
33611         expression is Null and target type is not an access type (e.g. a
33612         non-private address type).
33613
33614 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
33615
33616         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
33617         statement whose right-hand side is an inlined call, save a copy of the
33618         original assignment subtree to preserve enough consistency for
33619         Analyze_Assignment to proceed.
33620
33621         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
33622         complete assignment subtree which is now unnecessary, as the expansion
33623         of inlined call has been improved to preserve a consistent assignment
33624         tree.  Note_Possible_Modification must be called only
33625         after checks have been applied, or else unnecessary checks will
33626         be generated.
33627
33628         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
33629         of explicit dereferences that do not Come_From_Source:
33630          - be selective on cases where we must go back to the dereferenced
33631            pointer (an assignment to an implicit dereference must not be
33632            recorded as modifying the pointer);
33633          - do not rely on Original_Node being present (Analyze_Assignment
33634            calls Note_Possible_Modification on a copied tree).
33635
33636         * sem_warn.adb (Check_References): When an unset reference to a pointer
33637         that is never assigned is encountered, prefer '<pointer> may be null'
33638         warning over '<pointer> is never assigned a value'.
33639
33640 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
33641
33642         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
33643         the ABI.
33644
33645 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
33646
33647         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
33648         libexc. We currently don't reference anything in this library and
33649         linking it in triggers linker warnings we don't want to see.
33650
33651         * init.c: Update comments.
33652
33653 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33654
33655         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
33656         * utils.c (create_field_decl): Likewise.
33657         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
33658
33659 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
33660
33661         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
33662         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
33663         Add info directory entry and category.
33664
33665 2004-04-02  Jan Hubicka  <jh@suse.cz>
33666
33667         * utils.c: Include function.h
33668         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
33669
33670 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
33671
33672         PR ada/14150
33673         * Make-lang.in: Clean up generation of documentation
33674
33675         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
33676
33677         * xgnatug.adb: Removed, replaced by xgnatugn.adb
33678
33679         * xgnatugn.adb: Replaces xgnatug.adb
33680
33681         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
33682
33683         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
33684
33685         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
33686         gnat_ug_wnt.texi: Removed.
33687
33688 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
33689
33690         * utils2.c: Update copyright notice.
33691
33692 2004-04-01  Robert Dewar  <dewar@gnat.com>
33693
33694         * checks.adb: Minor reformatting throughout
33695         Note that prev checkin added RM reference to alignment warning
33696
33697 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
33698
33699         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
33700         non-static when building aggregate for bit-packed array.
33701
33702         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
33703         function call that is itself the actual in a procedure call, build
33704         temporary for it.
33705
33706         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
33707         a string literal, create a temporary for it, constant folding only
33708         handles scalars here.
33709
33710 2004-04-01  Vincent Celier  <celier@gnat.com>
33711
33712         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
33713         Error_Msg_SP): New empty procedures to instantiate the Scanner.
33714         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
33715         tokens.
33716         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
33717         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
33718         and get the checksum.
33719
33720         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
33721         already in the Q.
33722         Increase the Marking_Label at the end of the Multiple_Main_Loop,
33723         instead of at the beginning.
33724
33725         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
33726         directly.
33727         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
33728         on VMS.
33729
33730         * osint.ads (Multi_Unit_Index_Character): New Character global variable
33731
33732         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
33733         not '~' directly.
33734
33735         * par.adb: Remove test on file name to detect language defined units.
33736         Add test on unit name, after parsing, to detect language defined units
33737         that are not compiled with -gnatg (except System.RPC and its children)
33738
33739         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
33740         following units without style checking.
33741
33742         * switch-c.adb: Change -gnatC to -gnateI
33743
33744         * usage.adb: Document new switch -gnateInnn
33745
33746         * scng.adb (Accumulate_Token_Checksum): New procedure
33747         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
33748         word or literal number.
33749         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
33750         numbers.
33751
33752 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
33753
33754         * a-tasatt.adb,
33755         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
33756         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
33757         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
33758         5vtpopde.adb: Add missing 'constant' keywords.
33759
33760 2004-04-01  Javier Miranda  <miranda@gnat.com>
33761
33762         * par-ch4.adb: (P_Allocator): Code cleanup
33763
33764         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
33765         attribute.
33766
33767         * sinfo.ads: Complete documentation of previous change
33768
33769 2004-04-01  Pascal Obry  <obry@gnat.com>
33770
33771         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
33772         only on VMS.  This special handling was done because an old GNU/ld bug
33773         on Windows which has been fixed.
33774
33775 2004-04-01  GNAT Script  <nobody@gnat.com>
33776
33777         * Make-lang.in: Makefile automatically updated
33778
33779 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33780
33781         * decl.c (gnat_to_gnu_entity, make_type_from_size):
33782         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
33783         * trans.c (tree_transform, convert_with_check): Likewise.
33784         * utils.c (gnat_signed_or_unsigned_type): Likewise.
33785         (build_vms_descriptor, unchecked_convert): Likewise.
33786         * utils2.c (nonbinary_modular_operation): Likewise.
33787
33788 2004-03-29  Javier Miranda  <miranda@gnat.com>
33789
33790         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
33791         (Install_Null_Excluding_Check): Local subprogram that determines whether
33792         an access node requires a runtime access check and if so inserts the
33793         appropriate run-time check.
33794         (Apply_Access_Check): Call Install_Null_Excluding check if required
33795         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
33796
33797         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
33798
33799         * einfo.ads: Fix typo in comment
33800
33801         * exp_ch3.adb (Build_Assignment): Generate conversion to the
33802         null-excluding type to force the corresponding run-time check.
33803         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
33804         type to force the corresponding run-time check.
33805
33806         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
33807         the null-excluding type to force the corresponding run-time check.
33808
33809         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
33810         case of access types unless they have the null-excluding attribute.
33811
33812         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
33813         part.
33814
33815         * exp_util.ads: Fix typo in comment
33816
33817         * par.adb (P_Null_Exclusion): New subprogram
33818         (P_Subtype_Indication): New formal that indicates if the null-excluding
33819         part has been scanned-out and it was present
33820
33821         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
33822
33823         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
33824         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
33825         type to force the corresponding run-time check
33826         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
33827         components
33828         (Resolve_Array_Aggregate): Carry out some static checks
33829         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
33830
33831         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
33832         attribute must be set only if specified by means of the null-excluding
33833         part. In addition, we must also propagate the access-constant attribute
33834         if present.
33835         (Access_Subprogram_Declaration, Access_Type_Declaration,
33836         Analyze_Component_Declaration, Analyze_Object_Declaration,
33837         Array_Type_Declaration, Process_Discriminants,
33838         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
33839         and carry out some static checks.
33840         (Build_Derived_Access_Type): Set the null-excluding attribute
33841         (Derived_Type_Declaration, Process_Subtype): Carry out some static
33842         checks.
33843
33844         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
33845
33846         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
33847
33848         * sem_ch6.adb (Process_Formals): Carry out some static checks.
33849         (Set_Actual_Subtypes): Generate null-excluding subtype if the
33850         null-excluding part was present; it is not required to be done here in
33851         case of anonymous access types.
33852         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
33853         value.
33854
33855         * sem_res.adb (Resolve_Actuals): Carry out some static check
33856         (Resolve_Null): Allow null in anonymous access
33857
33858         * sinfo.adb: New subprogram Null_Exclusion_Present
33859         All_Present and Constant_Present available on access_definition nodes
33860
33861         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
33862         object_declaration, derived_type_definition, component_definition,
33863         discriminant_specification, access_to_object_definition,
33864         access_function_definition, allocator, access_procedure_definition,
33865         access_definition, parameter_specification, All_Present and
33866         Constant_Present flags available on access_definition nodes.
33867
33868 2004-03-29  Robert Dewar  <dewar@gnat.com>
33869
33870         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
33871         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
33872         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
33873         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
33874         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
33875         sem_prag.adb: Updates to handle multiple units/file
33876
33877         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
33878
33879         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
33880         sem_util.adb: Minor reformatting
33881
33882         * sem_ch12.adb: Add comment for previous change
33883
33884 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
33885
33886         * osint.adb (Executable_Prefix): Set Exec_Name to the current
33887         executable name when not initialized. Otherwise, use its current value.
33888
33889         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
33890         initialize it to another executable name than the current one. This
33891         allows to configure paths for an executable name (gnatmake) different
33892         from the current one (gnatdist).
33893
33894 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
33895
33896         * exp_ch6.adb (Expand_Call): A call to a function declared in the
33897         current unit cannot be inlined if it appears in the body of a withed
33898         unit, to avoid order of elaboration problems in gigi.
33899
33900         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
33901         information for protected (wrapper) operation as well, to simplify gdb
33902         use.
33903
33904         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
33905         protected body, indicate that the entity for the generated spec comes
33906         from source, to ensure that references are properly generated for it.
33907         (Build_Body_To_Inline): Do not inline a function that returns a
33908         controlled type.
33909
33910         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
33911         apply convention to homonyms that are declared explicitly.
33912
33913         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
33914         that renames an equality operator and the operands are overloaded,
33915         resolve them with the declared formal types, before rewriting as an
33916         operator.
33917
33918 2004-03-29  GNAT Script  <nobody@gnat.com>
33919
33920         * Make-lang.in: Makefile automatically updated
33921
33922 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
33923
33924         * memtrack.adb: Log realloc calls, which are treated as free followed
33925         by alloc.
33926
33927 2004-03-25  Vincent Celier  <celier@gnat.com>
33928
33929         * prj-makr.adb (Process_Directories): Detect when a file contains
33930         several units. Do not include such files in the config pragmas or
33931         in the naming scheme.
33932
33933         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
33934         Resolve links only when not in Trusted_Mode.
33935         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
33936         Do not resolve links for the display names.
33937
33938         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
33939         resolve links when computing the display names.
33940
33941 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
33942
33943         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
33944         attribute reference does not denote a subtype, it can be any
33945         expression that has a classwide type, potentially after an implicit
33946         dereference.  In particular, the prefix can be a view conversion for
33947         a classwide type (for which Is_Object_Reference holds), but it can
33948         also be a value conversion for an access-to-classwide type. In the
33949         latter case, there is an implicit dereference, and the original node
33950         for the prefix does not verify Is_Object_Reference.
33951
33952         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
33953         conversion of a discriminant-dependent component of a mutable object
33954         is one itself.
33955
33956 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
33957
33958         * freeze.adb (Freeze_Entity): When an inherited subprogram is
33959         inherited, has convention C, and has unconstrained array parameters,
33960         place the corresponding warning on the derived type declaration rather
33961         than the original subprogram.
33962
33963         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
33964         indication on renaming declaration, if formal has a box and actual
33965         is absent.
33966
33967         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
33968         determine whether to generate an implicit or explicit reference to
33969         the renamed entity.
33970
33971         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
33972         subprogram renaming comes from a defaulted formal subprogram in an
33973         instance.
33974
33975 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
33976
33977         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
33978         value expressions to ensure that calls within a component definition
33979         will be checked (since those are evaluated during the record type's
33980         elaboration).
33981
33982 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
33983
33984         * s-tpobop.adb: Code clean up:
33985         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
33986         code.
33987         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
33988
33989 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
33990
33991         * Makefile.in: Clean up in the ravenscar run time.
33992
33993 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33994
33995         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
33996         of No_Strict_Aliasing to build_pointer_type_for_mode.
33997         * utils.c (update_pointer_to): Walk pointer and ref chains.
33998
33999 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
34000
34001         * ali.ads: Fix Comment about Dynamic_Elab.
34002
34003         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
34004         Has_RACW, Is_Generic, etc.)
34005         (Output_Object, Gnatls): Take into account ALI files not attached to
34006         an object.
34007
34008 2004-03-22  Vincent Celier  <celier@gnat.com>
34009
34010         * gprep.adb: Change all String_Access to Name_Id
34011         (Is_ASCII_Letter): new function
34012         (Double_File_Name_Buffer): New procedure
34013         (Preprocess_Infile_Name): New procedure
34014         (Process_Files): New procedure
34015         (Gnatprep): Check if output and input are existing directories.
34016         Call Process_Files to do the real job.
34017
34018 2004-03-22  Robert Dewar  <dewar@gnat.com>
34019
34020         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
34021         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
34022
34023 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
34024
34025         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
34026         case when the source contains only comments.
34027
34028 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
34029
34030         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
34031         declaration for a child subprogram body that acts as a spec, indicate
34032         that the entity in the declaration needs debugging information.
34033
34034         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
34035         full view if the subtype is created for a constrained record component;
34036         gigi has enough information to construct the record, and there is no
34037         place in the tree for the declaration.
34038
34039         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
34040         serial number for the dummy body that is built for analysis, to avoid
34041         inconsistencies in the generation of internal names when compiling
34042         with -gnatN.
34043
34044 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
34045
34046         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
34047         object.
34048
34049 2004-03-22  GNAT Script  <nobody@gnat.com>
34050
34051         * Make-lang.in: Makefile automatically updated
34052
34053 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34054
34055         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
34056         * trans.c (tree_transform, emit_index_check): Likewise.
34057         * utils.c (build_template): Likewise.
34058         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
34059         (maybe_unconstrained_array, unchecked_convert): Likewise.
34060         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
34061         (build_unary_op): Likewise.
34062         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
34063         (fill_vms_descriptor): Likewise.
34064         (build_call_alloc_dealloc): Likewise.
34065         ALIGN is unsigned.
34066         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
34067
34068 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
34069
34070         PR other/14630
34071         * gnat_ug.texi: Add info directory category and entry.
34072         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
34073         gnat_ug_wnt.texi: Regenerate.
34074
34075 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
34076
34077         * ada-tree.h: Update copyright notice.
34078         Minor reformatting.
34079
34080 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
34081
34082         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
34083         as regular exception objects and not as mere integers representing the
34084         condition code.  The latter approach required some dynamics to mask off
34085         severity bits, which did not fit well into the GCC table based model.
34086         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
34087         exception data objects. We don't it and it would conflict with the other
34088         external symbol we have to generate for such exceptions.
34089
34090         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
34091         the special code for VMS exceptions, since these are now represented
34092         as regular exceptions objects.
34093
34094 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34095
34096         * decl.c (debug_no_type_hash): Remove.
34097         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
34098         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
34099
34100 2004-03-19  Laurent Guerby  <laurent@guerby.net>
34101
34102         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
34103         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
34104
34105 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34106
34107         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
34108         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
34109         (TYPE_RM_SIZE_INT): Directly use type.values.
34110         (TREE_LOOP_ID): Clean up check.
34111         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
34112         TYPE_VALUES, not TYPE_FIELDS.
34113         * trans.c (convert_with_check): Delay access of bounds of basetype
34114         until sure is numeric.
34115
34116 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
34117
34118         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
34119
34120         Code clean up:
34121         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
34122         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
34123         Specific.Set instead of direct call to e.g pthread_setspecific.
34124
34125 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
34126
34127         * adaint.c: Update comments.
34128
34129         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
34130         GNATLIB_SHARED for FreeBSD.
34131
34132 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
34133
34134         * init.c [VxWorks]: Do not fix the stack size for the environment task.
34135         When needed (stack checking) the stack size is retrieved
34136         from the VxWorks kernel.
34137
34138         * Makefile.in: Flag -nostdinc is required when building the run time
34139         for avoiding looking for files in the base compiler.
34140         Add the VxWorks specific version of the package body for
34141         System.Stack_checking.Operations (5zstchop.adb).
34142
34143         * Make-lang.in: Add the object file for
34144         System.Stack_Checking.Operations.
34145
34146         * Makefile.rtl: Add object file for the package
34147         System.Stack_Checking.Operations.
34148
34149         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
34150
34151         * s-stache.ads, s-stache.adb: Move the operations related to stack
34152         checking from this package to package System.Stack_Checking.Operations.
34153         This way, stack checking operations are only linked in the final
34154         executable when using the -fstack-check flag.
34155
34156 2004-03-18  Doug Rupp  <rupp@gnat.com>
34157
34158         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
34159         Reorganize ifeq's.
34160
34161         * 5qsystem.ads, 5xcrtl.ads: New files.
34162
34163 2004-03-18  Vincent Celier  <celier@gnat.com>
34164
34165         * prj.adb (Reset): Reset hash table Files_Htable
34166
34167         * prj-env.adb (Source_Paths, Object_Paths): New tables.
34168         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
34169         the procedures Add_To_Path_File.
34170         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
34171         making sure that each directory is present only once and, for object
34172         dirs, when a directory already present is added, the duplicate is
34173         removed and the directory is always put as the last in the table.
34174         Write the path files at the end of these accumulations.
34175
34176         * prj-nmsc.adb (Record_Source): Add source file name in hash table
34177         Files_Htable for all sources.
34178
34179         * prj-proc.adb (Process): Remove restrictions between not directly
34180         related extending projects.
34181
34182 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
34183
34184         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
34185         (Find_Sources): Minor speed optimization.
34186
34187         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
34188         parameter Trusted_Mode.
34189
34190 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
34191
34192         * scn.adb (Determine_License): Take into account a degenerated case
34193         when the source contains only comments.
34194
34195 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
34196
34197         * sem_warn.adb (Check_References): For a warning on a selected
34198         component that does not come from source, locate an uninitialized
34199         component of the record type to produce a more precise error message.
34200
34201 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
34202
34203         * 3zsoccon.ads: Fix multicast options.
34204
34205         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
34206         in the spec.
34207
34208 2004-03-15  Robert Dewar  <dewar@gnat.com>
34209
34210         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
34211         pragma used for a private type.
34212
34213         * lib-xref.adb (Generate_Reference): Do not generate warning if
34214         reference is in a different unit from the pragma Unreferenced.
34215
34216         * 5vtpopde.adb: Minor reformatting
34217         Fix casing of To_Task_ID
34218
34219         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
34220         flag if we have an unchecked conversion to an access type in the same
34221         unit.
34222
34223 2004-03-15  Geert Bosch  <bosch@gnat.com>
34224
34225         * a-ngcoty.adb (Modulus): In alternate formula for large real or
34226         imaginary parts, use Double precision throughout.
34227
34228         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
34229         we want to be able to compile run-time with -gnata for testing, but
34230         this may also be instantiated in user code that is compiled with -gnata.
34231
34232 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
34233
34234         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
34235         codes. Having a separate type for this is useful to enforce consistency
34236         throughout the various run-time units.
34237         (Exception_Data): Use Exception_Code for Import_Code.
34238
34239         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
34240         Natural and Integer in various places.
34241         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
34242         with the severity bits masked off.
34243         (Register_VMS_Exception): Handle the additional exception data pointer
34244         argument.
34245
34246         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
34247         component, now reflected by an exported accessor.
34248         (is_handled_by): New routine to compute whether the propagated
34249         occurrence matches some handler choice specification. Extracted out of
34250         get_action_description_for, and expanded to take care of the VMS
34251         specifities.
34252         (get_action_description_for): Use is_handled_by instead of an explicit
34253         complex condition to decide if the current choice at hand catches the
34254         propagated occurrence.
34255
34256         * raise.h (Exception_Code): New type for C.
34257
34258         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
34259         System.Standard_Library.Exception_Code, to allow references from the
34260         pragma import/export expander.
34261
34262         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
34263         New accessors to allow easy access to GNAT exception data
34264         characteristics.
34265         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
34266         redundant Handled_By_Others component, helper for the personality
34267         routine which will now be able to call the appropriate exception data
34268         accessor instead.
34269
34270         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
34271         component of Standard_Exception_Type to be the closest possible to
34272         Exception_Code in System.Standard_Library, that we cannot get at this
34273         point. Expand a ??? comment to notify that this type node should
34274         probably be rewritten later on.
34275
34276         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
34277         registration call to include a pointer to the exception object in the
34278         arguments.
34279
34280         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
34281         instead of int and explicit bitmasks.
34282
34283 2004-03-15  Vincent Celier  <celier@gnat.com>
34284
34285         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
34286         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
34287
34288         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
34289         longer needed now that it is in the spec of
34290         System.Tasking.Task_Attributes.
34291
34292         * adaint.h, adaint.c: (__gnat_create_output_file): New function
34293
34294         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
34295
34296         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
34297
34298         * make.adb (Gnatmake): Do not check the executable suffix; it is being
34299         taken care of in Scan_Make_Arg.
34300         (Scan_Make_Arg): Add the executable suffix only if the argument
34301         following -o, in canonical case, does not end with the executable
34302         suffix.  When in verbose mode and executable file name does not end
34303         with executable suffix, output the executable name, in canonical case.
34304
34305         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
34306         to avoid warnings when instantiating Ada.Task_Attributes.
34307         Minor reformating.
34308
34309         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
34310         in the correct order.
34311
34312         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
34313         redirect standard output and error to a file for the invocation of the
34314         compiler, then read the file.
34315
34316         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
34317         directory, instead of the Value.
34318         (Find_Source_Dirs): Remove useless code & comments.
34319
34320 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
34321
34322         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
34323         tagged type is inherited, and the parent operation is not frozen yet,
34324         force generation of a freeze node for the inherited operation, so the
34325         corresponding dispatch entry is properly initialized.
34326         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
34327         when looking for user-defined equality operation.
34328
34329         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
34330         boolean when locating primitive equality of tagged component.
34331
34332         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
34333         bit-aligned field and the right-hand side a string literal, introduce
34334         a temporary before expanding assignment into a loop.
34335
34336         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
34337         priority in full, to ensure that any expanded subepxressions of it are
34338         elaborated in the scope of the init_proc.
34339
34340         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
34341         after object declaration, skipping over code that may have been
34342         generated for validity checks.
34343
34344         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
34345         discriminants, ignore the known discriminants of its full view, if
34346         any, to check legality.
34347
34348         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
34349         component if type has unknown discriminants.
34350         (Analyze_Private_Extension_Declaration): Discriminant constraint is
34351         null if type has unknown discriminants.
34352
34353         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
34354         for end label when present.
34355
34356         * s-fileio.adb (Open): When called with a C_Stream, use given name for
34357         temporary file, rather than an empty string.
34358
34359 2004-03-15  Ed Falis  <falis@gnat.com>
34360
34361         * s-thread.adb: Removed, no longer used.
34362
34363 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34364
34365         * decl.c (target.h): Now include.
34366         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
34367         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
34368         (validate_size): For POINTER_TYPE, get smallest size permitted on
34369         machine.
34370
34371         * fe.h: Sort Einfo decls and add Set_Mechanism.
34372
34373         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
34374         (ada/decl.o): Depends on target.h.
34375
34376         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
34377         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
34378
34379 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
34380
34381         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
34382
34383         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
34384         Insert_Dereference_Action when rewriting an implicit dereference into
34385         an explicit one, this will be taken care of during expansion of the
34386         explicit dereference.
34387         (Expand_N_Slice): Same. Always do the rewriting, even for the case
34388         of non-packed slices, since the dereference action generated by
34389         expansion of the explicit dereference is needed in any case.
34390         (Expand_N_Selected_Component): When rewriting an implicit dereference,
34391         analyze and resolve the rewritten explicit dereference so it is seen
34392         by the expander.
34393         (Insert_Dereference_Action): This procedure is now called only for the
34394         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
34395         dereferences that do not come from source (including explicit
34396         dereferences resulting from rewriting implicit ones), but do not
34397         recursively insert a check for the dereference nodes contained within
34398         the check.
34399         (Insert_Dereference_Action): Clarify and correct comment.
34400
34401 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
34402
34403         PR ada/14131
34404         Move language detection to the top level.
34405         * config-lang.in: Build by default.
34406
34407 2004-03-05  Robert Dewar  <dewar@gnat.com>
34408
34409         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
34410
34411         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
34412         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
34413         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
34414         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
34415         unchecked conversion to spec to avoid warnings.
34416
34417         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
34418         to Task_ID
34419
34420         * 7stpopsp.adb: Correct casing in To_Task_ID call
34421
34422         * a-strsea.ads, a-strsea.adb: Minor reformatting
34423
34424         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
34425
34426         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
34427         Adjust Max_Msg_Length to be clearly large enough.
34428
34429         * fe.h: Define In_Same_Source_Unit
34430
34431         * osint.adb: Add pragma Warnings Off to suppress warnings
34432         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
34433         aliasing warnings.
34434
34435         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
34436
34437         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
34438
34439         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
34440
34441         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
34442
34443         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
34444
34445         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
34446         node. We now do generate them for gcc back end.
34447
34448         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
34449         warning.
34450
34451         * sinput-c.adb: Fix bad name in header.
34452         Add pragma Warnings Off to suppress aliasing warning.
34453
34454         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
34455
34456         * snames.h, snames.ads, snames.adb: Add entry for pragma
34457         No_Strict_Aliasing.
34458
34459 2004-03-05  Vincent Celier  <celier@gnat.com>
34460
34461         * prj-com.ads: Add hash table Files_Htable to check when a file name
34462         is already a source of another project.
34463
34464         * prj-nmsc.adb (Record_Source): Before recording a new source, check
34465         if its file name is not already a source of another project. Report an
34466         error if it is.
34467
34468         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
34469         source file name, call gnatpp with all the sources of the main project.
34470
34471         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
34472         of file names.
34473
34474         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
34475         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
34476         /RUNTIME_SYSTEM=, converted to --RTS=
34477         /NOTABS, converted to -notabs
34478
34479 2004-03-05  Pascal Obry  <obry@gnat.com>
34480
34481         * make.adb: Minor reformatting.
34482
34483 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
34484
34485         Part of implemention of AI-262.
34486         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
34487
34488         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
34489         procedure.
34490
34491         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
34492         when component type is a partially constrained class-wide subtype.
34493         (Constrain_Discriminated_Type): If parent type has unknown
34494         discriminants, a constraint is illegal, even if full view has
34495         discriminants.
34496         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
34497         with unknown discriminants whose full view is a discriminated record.
34498
34499         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
34500         flag, to handle properly derivations of tagged types with unknown
34501         discriminants.
34502         (Analyze_Package_Spec, Analyze_Package_Body): Install
34503         Private_With_Clauses before analyzing private part or body.
34504
34505         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
34506         Has_Discriminants can be true for a given type (documentation).
34507
34508 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
34509
34510         * s-restri.ads: Fix license (GPL->GMGPL).
34511
34512         * s-tassta.adb: Minor reformatting.
34513
34514         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
34515         by calls to Exit_One_ATC_Level, since additional clean up is performed
34516         by this function.
34517
34518         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
34519         by calls to Exit_One_ATC_Level, since additional clean up is performed
34520         by this function.
34521
34522 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34523
34524         * trans.c: Reflect GCC changes to fix bootstrap problem.
34525         Add warning for suspicious aliasing unchecked conversion.
34526
34527 2004-03-05  GNAT Script  <nobody@gnat.com>
34528
34529         * Make-lang.in: Makefile automatically updated
34530
34531 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
34532
34533         * ali.adb (Read_Instantiation_Instance): Do not modify the
34534         current_file_num when reading information about instantiations, since
34535         this corrupts files in later references.
34536
34537 2004-03-02  Vincent Celier  <celier@gnat.com>
34538
34539         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
34540         before checking if it is read-only.
34541
34542         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
34543         of SRC_DIRS and eliminate duplicates.
34544
34545         * gprcmd.adb: Replace command "path" with command "path_sep" to return
34546         the path separator.
34547         (Usage): Document path_sep
34548
34549         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
34550         C++ compiler. No need for a script.
34551         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
34552         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
34553         subst.
34554
34555         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
34556         where there are Ada sources.
34557         (Set_Ada_Paths): Only add to the include path the source dirs of project
34558         with Ada sources.
34559         (Add_To_Path): Add the Display_Values of the directories, not their
34560         Values.
34561
34562         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
34563         data.
34564
34565         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
34566         is not No_Name.
34567         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
34568         Value is canonicalized.
34569         (Language_Independent_Check): Do not copy Value to Display_Value when
34570         canonicalizing Value.
34571
34572         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
34573         path to find limited with cycles.
34574         (Parse_Single_Project): Use canonical cased path to find the end of a
34575         with cycle.
34576
34577 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
34578
34579         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
34580         and not a child unit.
34581
34582         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
34583         appear in a with_clause.
34584
34585         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
34586         only happen in type_annotate mode, do not try to elaborate it.
34587
34588         * exp_util.adb (Force_Evaluation): If expression is a selected
34589         component on the left of an assignment, use a renaming rather than a
34590         temporary to remove side effects.
34591
34592         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
34593         inlined instance body, which is analyzed before the end of the
34594         enclosing scope.
34595
34596 2004-03-02  Robert Dewar  <dewar@gnat.com>
34597
34598         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
34599         sem_ch4.adb: Use new feature for substitution of keywords in VMS
34600
34601         * errout.ads, errout.adb: Implement new circuit for substitution of
34602         keywords in VMS.
34603
34604         * sem_case.adb (Analyze_Choices): Place message properly when case is
34605         a subtype reference rather than an explicit range.
34606
34607         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
34608
34609 2004-03-02  Doug Rupp  <rupp@gnat.com>
34610
34611         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
34612
34613 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
34614
34615         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
34616
34617 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34618
34619         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
34620         BLKmode bitfield.
34621
34622 2004-02-25  Robert Dewar  <dewar@gnat.com>
34623
34624         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
34625         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
34626         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
34627         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
34628         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
34629         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
34630         the defining instance of the type to avoid aliasing problems.
34631         Fix copyright header.  Fix bad comments in package header.
34632
34633         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
34634
34635 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
34636
34637         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
34638         rewritten as references when aliased through an address clause.
34639
34640         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
34641         whether call can be interpreted as an indirect call to the result of a
34642         parameterless function call returning an access subprogram.
34643
34644 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
34645
34646         Code clean up:
34647         * exp_ch7.adb (Make_Clean): Remove generation of calls to
34648         Unlock[_Entries], since this is now done by Service_Entries directly.
34649
34650         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
34651
34652         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
34653         Requeue_Call for better code readability. Change spec and update calls:
34654         PO_Service_Entries now unlock the PO on exit.
34655         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
34656         PO_Service_Entries.
34657
34658         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
34659
34660         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
34661
34662 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
34663
34664         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
34665         protected subprogram call and analyzing the result of such expanding
34666         in case when the called protected subprogram is eliminated.
34667
34668         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
34669         names.
34670
34671 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
34672
34673         * Makefile.in: Clean ups.
34674
34675 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
34676
34677         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
34678         protected operations if original subprogram is flagged as eliminated.
34679         (Expand_N_Subprogram_Body): For a protected operation, create
34680         discriminals for next operation before checking whether the operation
34681         is eliminated.
34682
34683         * exp_ch9.adb (Expand_N_Protected_Body,
34684         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
34685         for internal protected operations if the original subprogram is
34686         eliminated.
34687
34688         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
34689         declared in a single protected object.
34690
34691 2004-02-23  Vincent Celier  <celier@gnat.com>
34692
34693         * prj-attr.adb: Make attribute Builder'Executable an associative array,
34694         case insensitive if file names are case insensitive, instead of a
34695         standard associative array.
34696
34697         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
34698         them as case insensitive on platforms where the file names are case
34699         sensitive.
34700
34701         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
34702         project file has already been parsed that canonical path are compared.
34703
34704 2004-02-23  Robert Dewar  <dewar@gnat.com>
34705
34706         * sinput-c.ads: Correct bad unit title in header
34707
34708         * freeze.adb: Minor reformatting
34709
34710 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34711
34712         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
34713         nonaddressable COMPONENT_REF that is removing padding that we are
34714         taking the address of, take the address of the padded record instead
34715         if item is variable size.
34716
34717 2004-02-20  Robert Dewar  <dewar@gnat.com>
34718
34719         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
34720
34721 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
34722
34723         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
34724         itype references for the constrained designated type of a component
34725         whose base type is already frozen.
34726
34727 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
34728
34729         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
34730         avoid GCC warnings.
34731
34732 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
34733
34734         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
34735         identifier for a phantom package that rewrites the formal package
34736         declaration with a box. The Add semantic decorations for the defining
34737         identifier from the original node (that represents the formal package).
34738
34739 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
34740
34741         * Make-lang.in (ada/stamp-sdefault): Use the top level
34742         move-if-change.
34743
34744 2004-02-19  Richard Henderson  <rth@redhat.com>
34745
34746         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
34747
34748 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
34749
34750         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
34751         Scan_ALI can be used for multiple ALI files without reinitializing
34752         between calls.
34753
34754 2004-02-18  Robert Dewar  <dewar@gnat.com>
34755
34756         * debug.adb: Minor reformatting.
34757
34758 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34759
34760         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
34761         to zero if there is an address clause.
34762
34763 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
34764
34765         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
34766
34767 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
34768
34769         * layout.adb (Layout_Component_List): Revise generation of call to
34770         discriminant-checking function to pass selections of all of the type's
34771         discriminants rather than just the variant-controlling discriminant.
34772
34773 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
34774
34775         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
34776         fail in the current setup and triggers spurious system error messages.
34777         Pretend it occurred and failed instead.
34778
34779 2004-02-18  Vincent Celier  <celier@gnat.com>
34780
34781         * bld.adb: Mark FLDFLAGS as saved
34782         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
34783         it is not the root project.  Put each directory to be
34784         extended between double quotes to prevent it to be expanded on Windows.
34785         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
34786         the project file. Set them back to their initial values if they have not
34787         been set in the project file.
34788
34789         * gprcmd.adb: (Gprdebug, Debug): New global variables
34790         (Display_Command): New procedure
34791         (Usage): Document new command "linkopts"
34792         Call Display_Command when env var GPRDEBUG has the value "TRUE"
34793         Implement new command "linkopts"
34794         Remove quotes that may be around arguments for "extend"
34795         Always call Normalize_Pathname with arguments formatted for the platform
34796
34797         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
34798         Change @echo to @$(display) in target clean to be able to clean silently
34799
34800         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
34801
34802         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
34803         canonical case.
34804
34805         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
34806         = Extending_All when current project is an extending all project.
34807
34808         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
34809         set to True only for LINK command, after Unix switch -o.
34810         (Process_Arguments): Set Output_File_Expected to True for LINK command
34811         after Unix switch -o. When Output_File_Expected is True, never add an
34812         extension to a file name.
34813
34814         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
34815         option file name, only to the --for-linker= switch.
34816         (Option_File_Name): If option file name do not end with ".opt", append
34817         "/OPTIONS".
34818
34819 2004-02-18  GNAT Script  <nobody@gnat.com>
34820
34821         * Make-lang.in: Makefile automatically updated
34822
34823 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
34824
34825         * Make-lang.in (stamp-sdefault): Do not depend on
34826         move-if-change.
34827
34828 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
34829
34830         * config-lang.in: Disable Ada by default until probe logic for
34831         a bootstrap Ada compiler can be moved to the top level configure
34832         script.
34833
34834 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
34835
34836         * decl.c (components_to_record): Don't claim that the internal fields
34837         we make to hold the variant parts are semantically addressable, because
34838         they are not.
34839
34840         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
34841         adjust the comment describing the modular type form when we can use it.
34842         (Install_PAT): Account for the Esiz renaming.
34843
34844         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
34845         sc_onstack context indication before raising the exception to which
34846         the signal is mapped. Allows better handling of later signals possibly
34847         triggered by the resumed user code if the exception is handled.
34848
34849 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
34850
34851         * 5zinit.adb: Removed, no longer used.
34852
34853 2004-02-12  Robert Dewar  <dewar@gnat.com>
34854
34855         * ali.adb: Remove separating space between parameters on R line. Makes
34856         format consistent with format used by the binder for Set_Globals call.
34857
34858         * atree.ads, atree.adb: Minor reformatting (new function header format)
34859
34860         * bindgen.adb: Add Run-Time Globals documentation section containing
34861         detailed documentation of the globals passed from the binder file to
34862         the run time.
34863
34864         * gnatls.adb: Minor reformatting
34865
34866         * init.c (__gnat_set_globals): Add note pointing to documentation in
34867         bindgen.
34868
34869         * lib-writ.ads, lib-writ.adb: Remove separating space between
34870         parameters on R line.
34871         Makes format consistent with format used by the binder for Set_Globals
34872         call.
34873
34874         * osint.ads: Add 2004 to copyright notice
34875         Minor reformatting
34876
34877         * snames.ads: Correct capitalization of FIFO_Within_Priorities
34878         Noticed during code reading, documentation issue only
34879
34880         * usage.adb: Remove junk line for obsolete C switch
34881         Noticed during code reading
34882
34883 2004-02-12  Vincent Celier  <celier@gnat.com>
34884
34885         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
34886         extend for each directory, so that multiple /** directories are
34887         extended individually.
34888         (Recursive_Process): Set the default for LANGUAGES to ada
34889
34890         * gprcmd.adb: Define new command "ignore", to do nothing.
34891         Implement new comment "path".
34892
34893         * Makefile.generic: Suppress output when SILENT is set
34894         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
34895         used, so that the correct compiler is invoked.
34896         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
34897         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
34898
34899 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
34900
34901         * Makefile.in: Clean ups and remove obsolete targets.
34902
34903 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
34904
34905         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
34906         predicate declared in exp_util.
34907
34908         * exp_util.adb: Add comments.
34909
34910         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
34911         visibility before compiling context of the subunit.
34912
34913         * sem_res.adb (Check_Parameterless_Call): If the context expects a
34914         value but the name is a procedure, do not attempt to analyze as a call,
34915         in order to obtain more telling diagnostics.
34916
34917         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
34918         'Access on parameterless function calls.
34919         (Normalize_Actuals): For a parameterless function call with missing
34920         actuals, defer diagnostic until resolution of enclosing call.
34921
34922         * sem_util.adb (Wrong_Type): If the context type is an access to
34923         subprogram and the expression is a procedure name, suggest a missing
34924         'attribute.
34925
34926 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
34927             Nathanael Nerode  <neroden@gcc.gnu.org>
34928
34929         PR ada/6637
34930         PR ada/5911
34931         Merge with libada-branch:
34932         * config-lang.in: Build libada only when ada is built.
34933
34934 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
34935
34936         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
34937         for a tagged type, verify that both formals have the same type.
34938
34939         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
34940         temporary when the formal is an in-parameter and the actual a possibly
34941         unaligned slice.
34942
34943         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
34944         when expansion is disabled, to ensure proper name capture with
34945         overloaded literals.  Condition can be of any boolean type, resolve
34946         accordingly.
34947
34948         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
34949         renaming is for a formal subprogram with a default operator name, and
34950         there is a usable operator that is visible at the point of
34951         instantiation.
34952
34953 2004-02-09  Robert Dewar  <dewar@gnat.com>
34954
34955         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
34956         rewrite to ignore errors in ali files, intended to allow tools downward
34957         compatibility with new versions of ali files.
34958
34959         * ali.ads: Add new parameter Ignore_Errors
34960
34961         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
34962         duplicating the error message giving the file with restrictions.
34963
34964         * debug.adb: Add debug flag I for gnatbind
34965
34966         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
34967         operators for the case where the operator is a defining operator.
34968
34969         * exp_ch3.adb: Minor reformatting (new function spec format).
34970
34971         * exp_ch4.adb: Add comment for previous change, and make minor
34972         adjustment to loop to always check for improper loop termination.
34973         Minor reformatting throughout (new function spec format).
34974
34975         * gnatbind.adb: Implement -di debug flag for gnatbind
34976
34977         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
34978
34979         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
34980
34981         * lib-load.adb: Fix bad assertion.
34982         Found by testing and code reading.
34983         Minor reformatting.
34984
34985         * lib-load.ads: Minor reformatting.
34986
34987         * lib-writ.adb: There is only one R line now.
34988
34989         * lib-writ.ads: Add documentation on making downward compatible changes
34990         to ali files so old tools work with new ali files.
34991         There is only one R line now.
34992         Add documentation on format incompatibilities (with special GPS note)
34993
34994         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
34995
34996         * par-load.adb: Minor reformatting
34997
34998         * sem_ch8.adb: Fix to error message from last update
34999         Minor reformatting and restructuring of code from last update
35000
35001         * par-prag.adb, snames.adb, snames.ads, snames.h,
35002         sem_prag.adb: Implement pragma Profile.
35003
35004         * stylesw.adb: Implement -gnatyN switch to turn off all style check
35005         options.
35006
35007         * usage.adb: Add line for -gnatyN switch
35008
35009         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
35010
35011 2004-02-09  Albert Lee  <lee@gnat.com>
35012
35013         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
35014
35015 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
35016
35017         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
35018         slices.
35019
35020         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
35021         is nested in an instance that is not frozen yet, to avoid
35022         order-of-elaboration problems in gigi.
35023
35024         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
35025         body the attribute is legal.
35026
35027 2004-02-09  Robert Dewar  <dewar@gnat.com>
35028
35029         * s-rident.ads: Minor comment correction
35030
35031         * targparm.adb: Remove dependence on uintp completely. There was
35032         always a bug in Make in that it called Targparm before initializing
35033         the Uint package. The old code appeared to get away with this, but
35034         the new code did not! This caused an assertion error in gnatmake.
35035
35036         * targparm.ads: Fix bad comment, restriction pragmas with parameters
35037         are indeed fully supported.
35038
35039 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
35040
35041         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
35042
35043 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
35044
35045         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
35046         with targetm.calls.promote_prototypes.
35047
35048 2004-02-04  Robert Dewar  <dewar@gnat.com>
35049
35050         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
35051         ali.ads, gprcmd.adb: Minor reformatting
35052
35053         * bindgen.adb: Output restrictions string for new style restrictions
35054         handling
35055
35056         * impunit.adb: Add s-rident.ads (System.Rident) and
35057         s-restri (System.Restrictions)
35058
35059         * lib-writ.adb: Fix bug in writing restrictions string (last few
35060         entries wrong)
35061
35062         * s-restri.ads, s-restri.adb: Change name Restrictions to
35063         Run_Time_Restrictions to avoid conflict with package name.
35064         Add circuit to read and acquire run time restrictions.
35065
35066 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
35067
35068         * restrict.ads, restrict.adb: Use the new restriction
35069         No_Task_Attributes_Package instead of the old No_Task_Attributes.
35070
35071         * sem_prag.adb: No_Task_Attributes is a synonym of
35072         No_Task_Attributes_Package.
35073
35074         * snames.ads, snames.adb: New entry for proper handling of
35075         No_Task_Attributes.
35076
35077         * s-rident.ads: Adding restriction No_Task_Attributes_Package
35078         (AI-00249) that supersedes the GNAT specific restriction
35079         No_Task_Attributes.
35080
35081 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
35082
35083         * sem_prag.adb:
35084         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
35085          body, an identifier may be wrapped in an unchecked conversion.
35086
35087 2004-02-04  Vincent Celier  <celier@gnat.com>
35088
35089         * lib-writ.ads: Comment update for the W lines
35090
35091         * bld.adb: (Expression): An empty string list is static
35092
35093         * fname-uf.adb: Minor comment update
35094
35095         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
35096
35097         * gnatbind.adb: Initialize Cumulative_Restrictions with the
35098         restrictions on the target.
35099
35100 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
35101
35102         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
35103         gen_rtx.
35104
35105 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
35106
35107         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
35108
35109 2004-02-02  Vincent Celier  <celier@gnat.com>
35110
35111         * gprcmd.adb (Check_Args): If condition is false, print the invoked
35112         comment before the usage.
35113         Gprcmd: Fail when command is not recognized.
35114         (Usage): Document command "prefix"
35115
35116         * g-md5.adb (Digest): Process last block.
35117         (Update): Do not process last block. Store remaining characters and
35118         length in Context.
35119
35120         * g-md5.ads (Update): Document that several call to update are
35121         equivalent to one call with the concatenated string.
35122         (Context): Add fields to allow new Update behaviour.
35123
35124         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
35125         defaulted to False.
35126         When May_Fail is True and no existing file can be found, return No_File.
35127
35128         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
35129         functions.
35130
35131         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
35132         spec file name instead on the W line.
35133
35134 2004-02-02  Robert Dewar  <dewar@gnat.com>
35135
35136         * ali.adb: Read and acquire info from new format restrictions lines
35137
35138         * bcheck.adb: Add circuits for checking restrictions with parameters
35139
35140         * bindgen.adb: Output dummy restrictions data
35141         To be changed later
35142
35143         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
35144         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
35145         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
35146         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
35147         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
35148
35149         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
35150         the warning message on access to possibly uninitialized variable S)
35151         Minor changes for new restrictions handling.
35152
35153         * gnatbind.adb: Minor reformatting
35154         Minor changes for new restrictions handling
35155         Move circuit for -r processing here from bcheck (cleaner)
35156
35157         * gnatcmd.adb, gnatlink.adb: Minor reformatting
35158
35159         * lib-writ.adb: Output new format restrictions lines
35160
35161         * lib-writ.ads: Document new R format lines for new restrictions
35162         handling.
35163
35164         * s-restri.ads/adb: New files
35165
35166         * Makefile.rtl: Add entry for s-restri.ads/adb
35167
35168         * par-ch3.adb: Fix bad error messages starting with upper case letter
35169         Minor reformatting
35170
35171         * restrict.adb: Major rewrite throughout for new restrictions handling
35172         Major point is to handle restrictions with parameters
35173
35174         * restrict.ads: Major changes in interface to handle restrictions with
35175         parameters. Also generally simplifies setting of restrictions.
35176
35177         * snames.ads/adb: New entry for proper handling of No_Requeue
35178
35179         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
35180         restriction counting.
35181         Other minor changes for new restrictions handling
35182
35183         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
35184         Restriction_Warnings now allows full parameter notation
35185         Major rewrite of Restrictions for new restrictions handling
35186
35187 2004-02-02  Javier Miranda  <miranda@gnat.com>
35188
35189         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
35190         syntax rule for object renaming declarations.
35191         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
35192         component definitions.
35193
35194         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
35195         components.
35196         (Array_Type_Declaration): Give support to access components. In addition
35197         it was also modified to reflect the name of the object in anonymous
35198         array types. The old code did not take into account that it is possible
35199         to have an unconstrained anonymous array with an initial value.
35200         (Check_Or_Process_Discriminants): Allow access discriminant in
35201         non-limited types.
35202         (Process_Discriminants): Allow access discriminant in non-limited types
35203         Initialize the new Access_Definition field in N_Object_Renaming_Decl
35204         node.  Change Ada0Y to Ada 0Y in comments
35205
35206         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
35207         equality operators.
35208         Change Ada0Y to Ada 0Y in comments
35209
35210         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
35211         renamings Change Ada0Y to Ada 0Y in comments
35212
35213         * sem_type.adb (Find_Unique_Type): Give support to the equality
35214         operators for universal access types
35215         Change Ada0Y to Ada 0Y in comments
35216
35217         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
35218
35219         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
35220         field.
35221         (N_Object_Renaming_Declaration): Addition of Access_Definition field
35222         Change Ada0Y to Ada 0Y in comments
35223
35224         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
35225         component definition and object renaming nodes
35226         Change Ada0Y to Ada 0Y in comments
35227
35228 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
35229
35230         * restrict.adb: Use the new restriction identifier
35231         No_Requeue_Statements instead of the old No_Requeue for defining the
35232         restricted profile.
35233
35234         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
35235         No_Requeue_Statements.
35236
35237         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
35238         that supersedes the GNAT specific restriction No_Requeue. The later is
35239         kept for backward compatibility.
35240
35241 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
35242
35243         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
35244         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
35245         pragma and fix incorrect ones.
35246
35247         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
35248         warning if the pragma is redundant.
35249
35250 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
35251
35252         * 5staprop.adb: Add missing 'constant' keywords.
35253
35254         * Makefile.in: use consistent value for SYMLIB on
35255         platforms where libaddr2line is supported.
35256
35257 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35258
35259         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
35260         annotating types.
35261
35262 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
35263
35264         * init.c (__gnat_install_handler): Setup an alternate stack for signal
35265         handlers in the environment thread. This allows proper propagation of
35266         an exception on stack overflows in this thread even when the builtin
35267         ABI stack-checking scheme is used without support for a stack reserve
35268         region.
35269
35270         * utils.c (create_field_decl): Augment the head comment about bitfield
35271         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
35272         here, because the former is not accurate enough at this point.
35273         Let finish_record_type decide instead.
35274         Don't make a bitfield if the field is to be addressable.
35275         Always set a size for the field if the record is packed, to ensure the
35276         checks for bitfield creation are triggered.
35277         (finish_record_type): During last pass over the fields, clear
35278         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
35279         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
35280         from DECL_BIT_FIELD.
35281
35282 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
35283
35284         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
35285         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
35286         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
35287
35288 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
35289
35290         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
35291
35292         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
35293         (ZCX_By_Default): Likewise.
35294         (Front_End_ZCX_Support): Likewise.
35295
35296         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
35297         (Initialize_Lock): Mark Level unreferenced.
35298         (Sleep): Mark Reason unreferenced.
35299         (Timed_Sleep): Likewise.
35300         (Wakeup): Likewise.
35301         (Exit_Task): Use Result.
35302         (Check_No_Locks): Mark Self_ID unreferenced.
35303
35304         * 5gtasinf.adb (New_Sproc): Make Attr constant.
35305         (Bound_Thread_Attributes): Make Sproc constant.
35306         (New_Bound_Thread_Attributes): Likewise.
35307
35308 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
35309
35310         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
35311         one-dimensional array an slice assignments, when component type is
35312         controlled.
35313
35314         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
35315         component type is controlled, and control_actions are in effect, use
35316         TSS procedure rather than generating inline code.
35317
35318         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
35319         arrays with controlled components.
35320
35321 2004-01-26  Vincent Celier  <celier@gnat.com>
35322
35323         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
35324         command line for the non VMS case.
35325
35326         * gnatlink.adb (Process_Binder_File): When building object file, if
35327         GNU linker is used, put all object paths between quotes, to prevent ld
35328         error when there are unusual characters (such as '!') in the paths.
35329
35330         * Makefile.generic: When there are sources in Ada and the main is in
35331         C/C++, invoke gnatmake with -B, instead of -z.
35332
35333         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
35334         from VMS_Conversion.
35335         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
35336         specification of argument file on the command line.
35337
35338 2004-01-26  Bernard Banner  <banner@gnat.com>
35339
35340         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
35341
35342 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
35343
35344         * snames.adb: Update copyright notice.
35345         Add info on slice assignment for controlled arrays.
35346
35347 2004-01-23  Robert Dewar  <dewar@gnat.com>
35348
35349         * exp_aggr.adb: Minor reformatting
35350
35351         * exp_ch9.adb: Minor code clean up
35352         Minor reformatting
35353         Fix bad character in comment
35354
35355         PR ada/13471
35356         * targparm.adb (Get_Target_Parameters): Give clean abort error on
35357         unexpected end of file, along with more detailed message.
35358
35359 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35360
35361         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
35362         PAT.
35363
35364         * decl.c (copy_alias_set): New function.
35365         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
35366
35367 2004-01-23  Doug Rupp  <rupp@gnat.com>
35368
35369         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
35370         lib$${file} in case subsequent character is not a separator.
35371
35372 2004-01-23  Vincent Celier  <celier@gnat.com>
35373
35374         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
35375         when the GCC version is at least 3.
35376
35377         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
35378         Remove all "Opt.", to prepare for opt split
35379
35380         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
35381         Extends_All. Set to True when the project parsed is an extending all
35382         project. Fails for importing an extending all project only when the
35383         imported project is an extending all project.
35384         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
35385         depending on the value of Extends_All returned.
35386
35387         * prj-proc.adb (Process): Check that no project shares its object
35388         directory with a project that extends it, directly or indirectly,
35389         including a virtual project.
35390         Check that no project extended by another project shares its object
35391         directory with another also extended project.
35392
35393         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
35394         Kind = N_With_Clause
35395
35396         * prj-tree.ads: Minor reformatting
35397         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
35398
35399 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
35400
35401         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
35402         applies to a type with an incomplete view, use full view in Name of
35403         clause, for consistency with uses of Get_Attribute_Definition_Clause.
35404
35405 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
35406
35407         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
35408         SCHED_RR, since other values are not supported by this policy.
35409         (Initialize): Move initialization of mutex attribute to package
35410         elaboration, to prevent early access to this variable.
35411
35412         * Makefile.in: Remove mention of Makefile.adalib, unused.
35413
35414         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
35415         1ssecsta.ads: Removed, unused.
35416
35417 2004-01-21  Javier Miranda  <miranda@gnat.com>
35418
35419         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
35420         entity if already built in the current scope.
35421
35422         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
35423         reminder in internal scopes. Required for nested limited aggregates.
35424
35425 2004-01-21  Doug Rupp  <rupp@gnat.com>
35426
35427         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
35428         VMS. Replace all occurences of libgnat- and libgnarl- with
35429         libgnat$(hyphen) and libgnarl$(hyphen).
35430         Fixed shared library build problem on VMS.
35431
35432 2004-01-21  Robert Dewar  <dewar@gnat.com>
35433
35434         * mlib-prj.adb: Minor reformatting
35435
35436 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
35437
35438         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
35439         'constant' keywords for declaration of pointers that are not modified.
35440
35441         * exp_pakd.adb: Fix English in comment.
35442
35443 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
35444
35445         PR ada/10889
35446         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
35447         copy all attributes of the parent, including the foreign language
35448         convention.
35449
35450 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
35451
35452         PR ada/10565
35453         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
35454         for 'delay until' statement.
35455
35456 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
35457
35458         * Make-lang.in: Replace $(docdir) with doc.
35459         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
35460         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
35461         to use consistent MAKEINFO rule.
35462         (ada.man, ada.srcman): Dummy entry.
35463         (ADA_INFOFILES): Define.
35464         (ada.info, ada.srcinfo): New rules.
35465
35466 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
35467
35468         * utils.c: Update copyright notice, missed in previous change.
35469
35470 2004-01-19  Vincent Celier  <celier@gnat.com>
35471
35472         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
35473         args if Bind is True. Set First_ALI, if not already done.
35474         (Build_Library): For Stand Alone Libraries, extract from one ALI file
35475         an eventual --RTS switch, for gnatbind, and all backend switches +
35476         --RTS, for linking.
35477
35478 2004-01-19  Robert Dewar  <dewar@gnat.com>
35479
35480         * sem_attr.adb, memtrack.adb: Minor reformatting
35481
35482 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
35483
35484         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
35485         that rename enumeration literals. This is properly done in sem_eval.
35486
35487         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
35488         to functions that rename enumeration literals.
35489
35490         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
35491         functions that rename enumeration literals.
35492
35493 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
35494
35495         * Make-lang.in (utils.o): Depend on target.h.
35496         * utils.c: Include target.h.
35497         (process_attributes): Use targetm.have_named_sections instead
35498         of ASM_OUTPUT_SECTION_NAME.
35499
35500 2004-01-16  Andreas Jaeger  <aj@suse.de>
35501
35502         * Makefile.in: Add $(DESTDIR).
35503
35504 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
35505
35506         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
35507         also when not defining if a Size clause applies. That information is
35508         not to be ignored.
35509
35510 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
35511
35512         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
35513         symbolic links for the shared gnat run time when needed.
35514
35515 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
35516
35517         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
35518         for writing, and terminate with an error message if not.
35519
35520 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
35521
35522         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
35523         warning on an access to subprogram in an instance, when the target
35524         type is declared in the same generic unit.
35525         (Eval_Attribute): If 'access is known to fail accessibility check,
35526         rewrite as a raise statement.
35527
35528 2004-01-15  GNAT Script  <nobody@gnat.com>
35529
35530         * Make-lang.in: Makefile automatically updated
35531
35532 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
35533
35534         * Make-lang.in (ada.srcextra): Dummy entry.
35535
35536 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
35537
35538         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
35539
35540 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
35541
35542         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
35543         components that are initialized with aggregates.
35544
35545 2004-01-13  Vincent Celier  <celier@gnat.com>
35546
35547         * gnatlink.adb (Process_Binder_File): To find directory of shared
35548         libgcc, if "gcc-lib" is not a subdirectory, look for the last
35549         subdirectory "lib" in the path of the shared libgnat or libgnarl.
35550
35551         * make.adb (Gnatmake): If GCC version is at least 3, link with
35552         -shared-libgcc, when there is at least one shared library project.
35553
35554         * opt.ads (GCC_Version): New integer constant.
35555
35556         * adaint.c (get_gcc_version): New function.
35557
35558 2004-01-13  Robert Dewar  <dewar@gnat.com>
35559
35560         * sem_dist.adb, sem_res.adb, sem_util.adb,
35561         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
35562         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
35563
35564 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
35565
35566         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
35567         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
35568         declarations.
35569
35570 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
35571
35572         * misc.c: Remove trailing spaces.
35573         Update copyright notice missed in previous change.
35574
35575         PR ada/13572
35576         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
35577         prefix/share/make
35578
35579         * Makefile.generic: Update copyright.
35580         Add license notice.
35581
35582         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
35583         of prefix/share/make.
35584
35585         * Makefile.prolog: Update copyright.
35586         Add license notice.
35587
35588 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
35589
35590         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
35591         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
35592         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
35593         instead of String.
35594
35595         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
35596         signature.
35597
35598 2004-01-12  Javier Miranda  <miranda@gnat.com>
35599
35600         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
35601         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
35602         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
35603         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
35604         Component_Definition node.
35605
35606 2004-01-12  Ed Falis  <falis@gnat.com>
35607
35608         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
35609
35610 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
35611
35612         * link.c: Change default libgnat kind to STATIC for FreeBSD.
35613
35614 2004-01-12  Bernard Banner  <banner@gnat.com>
35615
35616         * Makefile.in: map 86numaux to a-numaux for x86_64
35617
35618 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
35619
35620         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
35621         generated to rename a generic actual, go to the actual itself, the
35622         subtype is not a user-visible entity.
35623
35624         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
35625         part is a private subtype, reset the visibility of its full view, if
35626         any, to be consistent.
35627
35628         PR ada/13417
35629         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
35630         to use a generic package G as a formal package for another generic
35631         declared within G.
35632
35633 2004-01-12  Robert Dewar  <dewar@gnat.com>
35634
35635         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
35636
35637         * usage.adb: Remove mention of obsolete -gnatwb switch
35638         Noticed during code reading
35639
35640 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
35641
35642         * 1ssecsta.adb: Minor changes for -gnatwa warnings
35643
35644 2004-01-12  GNAT Script  <nobody@gnat.com>
35645
35646         * Make-lang.in: Makefile automatically updated
35647
35648 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
35649
35650         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
35651
35652 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
35653
35654         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
35655
35656 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
35657
35658         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
35659         Update comment and copyright date.
35660         * stamp-xgnatug: Delete.
35661
35662 2004-01-05  Robert Dewar  <dewar@gnat.com>
35663
35664         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
35665         be modified by the binder generated main program if the -D switch is
35666         used.
35667
35668         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
35669         imported functions (since now we expect this to be done for imported
35670         functions)
35671
35672         * 5vtaprop.adb: Add several ??? for sections requiring more comments
35673         Minor reformatting throughout
35674
35675         * 5zinit.adb: Minor reformatting
35676         Add 2004 to copyright date
35677         Minor changes to avoid -gnatwa warnings
35678         Correct some instances of using OR instead of OR ELSE (noted while
35679         doing reformatting)
35680
35681         * sprint.adb: Minor updates to avoid -gnatwa warnings
35682
35683         * s-secsta.ads, s-secsta.adb:
35684         (SS_Get_Max): New function to obtain high water mark for ss stack
35685         Default_Secondary_Stack is not a constant since it may be modified by
35686         the binder generated main program if the -D switch is used.
35687
35688         * switch-b.adb: New -Dnnn switch for binder
35689
35690         * switch-c.adb:
35691         Make -gnatg imply all warnings currently in -gnatwa
35692
35693         * vms_conv.adb: Minor reformatting
35694         Add 2004 to copyright notice
35695         Add 2004 to printed copyright notice
35696
35697         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
35698         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
35699         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
35700         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
35701         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
35702         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
35703         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
35704         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
35705         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
35706         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
35707         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
35708         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
35709         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
35710         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
35711         checks.adb, clean.adb, cstand.adb, einfo.ads,
35712         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
35713         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
35714         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
35715         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
35716         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
35717         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
35718         Minor reformatting and code clean ups.
35719         Minor changes to prevent -gnatwa warnings
35720
35721         * ali.adb: Minor reformatting and cleanup of code
35722         Acquire new SS indication of secondary stack use from ali files
35723
35724         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
35725         (since now we expect this to be done for imported functions)
35726
35727         * bindgen.adb: Generate call to modify default secondary stack size if
35728         -Dnnn switch given
35729
35730         * bindusg.adb: Add line for new -D switch
35731
35732         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
35733         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
35734         Add circuitry for both records and arrays to avoid gigi
35735         processing if the type involved has non-bit-aligned components
35736
35737         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
35738         N_String_Literal node always references an E_String_Literal_Subtype
35739         entity. This may not be true in the future.
35740         (Possible_Bit_Aligned_Component): Move processing of
35741         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
35742
35743         * exp_ch6.adb (Expand_Thread_Body): Pick up
35744         Default_Secondary_Stack_Size as variable so that we get value modified
35745         by possible -Dnnn binder parameter.
35746
35747         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
35748         (Type_May_Have_Bit_Aligned_Components): New function.
35749
35750         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
35751         (Type_May_Have_Bit_Aligned_Components): New function.
35752
35753         * fe.h: (Set_Identifier_Casing): Fix prototype.
35754         Add declaration for Sem_Elim.Eliminate_Error_Msg.
35755         Minor reformatting.
35756
35757         * freeze.adb (Freeze_Entity): Add RM reference to error message about
35758         importing constant atomic/volatile objects.
35759         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
35760         unless explicit Pure_Function pragma given, to avoid insidious bug of
35761         call to non-pure imported function getting eliminated.
35762
35763         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
35764         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
35765         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
35766         Add 2004 to printed copyright notice
35767
35768         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
35769         stack used.
35770
35771         * Makefile.rtl: Add entry for g-sestin.o
35772         g-sestin.ads: New file.
35773
35774         * mdll.adb: Minor changes to avoid -gnatwa warnings
35775
35776         * mlib-tgt.adb: Minor reformatting
35777
35778         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
35779         New switch Sec_Stack_Used (GNAT, GNATBIND)
35780         Make Default_Secondary_Stack_Size a variable instead of a constant,
35781         so that it can be modified by the new -Dnnn bind switch.
35782
35783         * rtsfind.adb (Load_Fail): Give full error message in configurable
35784         run-time mode if all_errors mode is set. This was not done in the case
35785         of a file not found, which was an oversight.
35786         Note if secondary stack unit is used by compiler.
35787
35788         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
35789         ineffective elaborate all pragmas on non-visible packages (this
35790         happened when a renamed subprogram was called). Now the elaborate all
35791         always goes on the package containing the renaming rather than the one
35792         containing the renamed subprogram.
35793
35794         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
35795         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
35796
35797         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
35798         has an Etype that references an E_String_Literal.
35799         (Eval_String_Literal): Avoid assumption that N_String_Literal node
35800         always references an E_String_Literal_Subtype entity. This may not
35801         be true in the future.
35802
35803         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
35804         pragma location.
35805
35806         * sem_res.adb (Resolve): Specialize msg for function name used in proc
35807         call.
35808
35809 2004-01-05  Ed Falis  <falis@gnat.com>
35810
35811         * g-debuti.adb: Replaced direct boolean operator with short-circuit
35812         form.
35813
35814 2004-01-05  Vincent Celier  <celier@gnat.com>
35815
35816         * bld.adb: Minor comment updates
35817         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
35818         of Item_Name).
35819
35820         * make.adb (Gnatmake): Special process for files to compile/check when
35821         -B is specified. Fail when there are only foreign mains in attribute
35822         Main of the project file and -B is not specified. Do not skip bind/link
35823         steps when -B is specified.
35824
35825         * makeusg.adb: Document new switch -B
35826
35827         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
35828
35829         * switch-m.adb: (Scan_Make_Switches): Process -B switch
35830
35831         * vms_data.ads: Add new GNAT PRETTY qualifier
35832         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
35833
35834 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35835
35836         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
35837         case.
35838
35839         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
35840         Set_Identifier_Casing.
35841
35842         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
35843         has size that overflows.
35844
35845 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
35846
35847         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
35848         -gnatwa warning on static condition.
35849
35850 2004-01-05  Doug Rupp  <rupp@gnat.com>
35851
35852         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
35853
35854 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
35855
35856         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
35857         all attributes, including read-only attribute.
35858
35859 2004-01-05  Pascal Obry  <obry@gnat.com>
35860
35861         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
35862         library naming scheme.
35863
35864         * mlib-prj.adb (Build_Library): Generate different names for the static
35865         or dynamic version of the GNAT runtime. This is needed to support the
35866         new shared library naming scheme.
35867         (Process_Binder_File): Add detection of shared library in binder file
35868         based on the new naming scheme.
35869
35870         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
35871         scheme for the shared runtime libraries.
35872
35873         * Makefile.in:
35874         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
35875         scheme.
35876         (install-gnatlib): Do not create symlinks for shared libraries.
35877         (gnatlib-shared-default): Idem.
35878         (gnatlib-shared-dual-win32): New target. Not used for now as the
35879         auto-import feature does not support arrays/records.
35880         (gnatlib-shared-win32): Do not create copy for the shared libraries.
35881         (gnatlib-shared-vms): Fix shared runtime libraries names.
35882
35883         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
35884         dependent runtime shared library name.
35885
35886 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
35887
35888         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
35889         than the object.
35890
35891 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
35892
35893         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
35894         protected objects when allocator has a subtype indication, not a
35895         qualified expression. Note that qualified expressions may have to be
35896         checked when limited aggregates are implemented.
35897
35898         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
35899         pure, emit warning.
35900         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
35901         subprogram is imported, remove warning.
35902
35903 2004-01-05  Geert Bosch  <bosch@gnat.com>
35904
35905         * s-poosiz.adb: Update copyright notice.
35906         (Allocate): Use Task_Lock to protect against concurrent access.
35907         (Deallocate): Likewise.
35908
35909 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
35910
35911         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
35912         comment.
35913
35914 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
35915
35916         * gnat_ug.texi: Force a CVS commit by updating copyright.
35917         * gnat_ug_vxw.texi: Regenerate.
35918         * gnat_ug_wnt.texi: Regenerate.
35919         * gnat_ug_vms.texi: Regenerate.
35920         * gnat_ug_unx.texi: Regenerate.
35921
35922 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
35923
35924         * trans.c: Remove uses of "register" specifier in
35925         declarations of local variables.
35926
35927 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
35928
35929         * stamp-xgnatug: New stamp file.
35930         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
35931         (ada/doctools/xgnatug): Add $(build_exeext).
35932         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
35933         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
35934
35935 2003-12-17  Ed Falis  <falis@gnat.com>
35936
35937         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
35938         eliminate warning.
35939
35940         * a-exextr.adb: Add context clause for
35941         Ada.Exceptions.Last_Chance_Handler.
35942
35943 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
35944
35945         * cstand.adb (Create_Standard): Change the way how the declaration of
35946         the Duration type is created (making it the same way as it is for all
35947         the other standard types).
35948
35949 2003-12-17  Robert Dewar  <dewar@gnat.com>
35950
35951         * s-crtl.ads: Fix header format
35952         Change Pure to Preelaborate
35953
35954 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
35955
35956         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
35957         the expression type only if it is declared in the current unit.
35958
35959         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
35960         are universal and already analyzed, as can occur in constrained
35961         subcomponents that depend on discriminants, when one constraint is a
35962         subtype mark.
35963
35964         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
35965         type Any_Fixed is legal as the argument of a conversion, if only one
35966         fixed-point type is in context.
35967
35968 2003-12-17  GNAT Script  <nobody@gnat.com>
35969
35970         * Make-lang.in: Makefile automatically updated
35971
35972 2003-12-15  Robert Dewar  <dewar@gnat.com>
35973
35974         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
35975         sec stack size.
35976
35977 2003-12-15  Vincent Celier  <celier@gnat.com>
35978
35979         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
35980         (Gnatchop): Do not set failure status when reporting the number of
35981         warnings.
35982
35983 2003-12-15  Doug Rupp  <rupp@gnat.com>
35984
35985         * s-ctrl.ads: New file.
35986
35987         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
35988
35989         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
35990         (GNATBIND_OBJS): Add ada/s-crtl.o.
35991
35992         * Makefile.in [VMS]: Clean up ifeq rules.
35993
35994         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
35995         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
35996         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
35997         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
35998         s-tasdeb.adb: Update copyright.
35999         Import System.CRTL.
36000         Make minor modifications to use System.CRTL declared functions instead
36001         of importing locally.
36002
36003 2003-12-15  GNAT Script  <nobody@gnat.com>
36004
36005         * Make-lang.in: Makefile automatically updated
36006
36007 2003-12-11  Ed Falis  <falis@gnat.com>
36008
36009         * 5zinit.adb: Clean up.
36010
36011         * 5zintman.adb (Notify_Exception): replaced case statement with a call
36012         to __gnat_map_signal, imported from init.c to support
36013         signal -> exception mappings that depend on the vxWorks version.
36014
36015         * init.c:
36016         Created and exported __gnat_map_signal to support signal -> exception
36017         mapping that is dependent on the VxWorks version.
36018         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
36019
36020 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
36021
36022         * 5wosinte.ads: Link with -mthreads switch.
36023
36024 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
36025
36026         * init.c (__gnat_install_handler [NetBSD]): Set
36027         __gnat_handler_installed, as done on all other platforms.
36028         Remove duplicated code.
36029
36030 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
36031
36032         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
36033
36034 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
36035
36036         * sinfo.ads: Fix inconsistent example code in comment.
36037
36038 2003-12-11  Robert Dewar  <dewar@gnat.com>
36039
36040         * a-tiinau.adb: Add a couple of comments
36041
36042         * sem_ch3.adb: Minor reformatting
36043
36044         * sem_prag.adb:
36045         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
36046         Minor reformatting throughout
36047
36048 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
36049
36050         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
36051         bounds of a loop, create a separate block in order to generate proper
36052         cleanup actions to prevent memory leaks.
36053
36054         * sem_res.adb (Resolve_Call): After a call to
36055         Establish_Transient_Scope, the call may be rewritten and relocated, in
36056         which case no further processing is needed.
36057
36058         * sem_util.adb: (Wrong_Type): Refine previous fix.
36059          Fixes ACATS regressions.
36060
36061         PR ada/13353
36062         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
36063         be inlined.
36064
36065 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
36066
36067         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
36068         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
36069         obsolete files.
36070
36071         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
36072         (rts-zfp): Ditto.
36073
36074 2003-12-08  Robert Dewar  <dewar@gnat.com>
36075
36076         * 7sintman.adb: Minor reformatting
36077
36078         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
36079         standard linker options to get standard libraries linked. We now plan
36080         to provide dummy versions of these libraries to match the appropriate
36081         configurable run-time (e.g. if a library is not needed at all, provide
36082         a dummy empty library).
36083
36084         * targparm.ads: Configurable_Run_Time mode no longer affects linker
36085         options (-L parameters and standard libraries). What we plan to do is
36086         to provide dummy libraries where the libraries are not required.
36087
36088         * gnatbind.adb: Minor comment improvement
36089
36090 2003-12-08  Javier Miranda  <miranda@gnat.com>
36091
36092         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
36093         aggregate in the parent. Otherwise constants with limited aggregates
36094         are not supported. Add new formal to pass the component type (Ctype).
36095         It is required to call the corresponding IP subprogram in case of
36096         default initialized components.
36097         (Gen_Assign): In case of default-initialized component, generate a
36098         call to the IP subprogram associated with the component.
36099         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
36100         of aggregate with default initialized components.
36101         (Has_Default_Init_Comps): Improve implementation to recursively check
36102         all the present expressions.
36103
36104         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
36105         to indicate that the initialization call corresponds to a
36106         default-initialized component of an aggregate.
36107         In case of default initialized aggregate with tasks this parameter is
36108         used to generate a null string (this is just a workaround that must be
36109         improved later). In case of discriminants, this parameter is used to
36110         generate a selected component node that gives access to the discriminant
36111         value.
36112
36113         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
36114         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
36115         allocated aggregates with default-initialized components.
36116
36117         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
36118         the box notation is used in positional aggregates.
36119
36120 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
36121
36122         * lib.ads: Fix typo in comment
36123
36124 2003-12-08  Vincent Celier  <celier@gnat.com>
36125
36126         * prj.adb (Project_Empty): New component Unkept_Comments
36127         (Scan): Remove procedure; moved to Prj.Err.
36128
36129         * prj.ads (Project_Data): New Boolean component Unkept_Comments
36130         (Scan): Remove procedure; moved to Prj.Err.
36131
36132         * prj-dect.adb: Manage comments for the different declarations.
36133
36134         * prj-part.adb (With_Record): New component Node
36135         (Parse): New Boolean parameter Store_Comments, defaulted to False.
36136         Set the scanner to return ends of line and comments as tokens, if
36137         Store_Comments is True.
36138         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
36139         comments are associated with these nodes. Store the node IDs in the
36140         With_Records.
36141         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
36142         With_Records.
36143         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
36144         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
36145         current project. Call Tree.Restore afterwards. Set the various nodes
36146         for comment storage (Next_End, End_Of_Line, Previous_Line,
36147         Previous_End).
36148
36149         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
36150         defaulted to False.
36151
36152         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
36153         to False. When Truncated is True, truncate the string, never go to the
36154         next line.
36155         (Write_End_Of_Line_Comment): New procedure
36156         (Print): Process comments for nodes N_With_Clause,
36157         N_Package_Declaration, N_String_Type_Declaration,
36158         N_Attribute_Declaration, N_Typed_Variable_Declaration,
36159         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
36160         Process nodes N_Comment.
36161
36162         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
36163         without comments and there are some comments, set the flag
36164         Unkept_Comments to True.
36165         (Scan): If there are comments, set the flag Unkept_Comments to True and
36166         clear the comments.
36167         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
36168         (Next_End_Nodes: New table
36169         (Comment_Zones_Of): New function
36170         (Scan): New procedure; moved from Prj. Accumulate comments in the
36171         Comments table and set end of line comments, comments after, after end
36172         and before end.
36173         (Add_Comments): New procedure
36174         (Save, Restore, Seset_State): New procedures
36175         (There_Are_Unkept_Comments): New function
36176         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
36177         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
36178         procedures.
36179         (First_Comment_After, First_Comment_After_End): New functions
36180         (First_Comment_Before, First_Comment_Before_End): New functions
36181         (Next_Comment): New function
36182         (End_Of_Line_Comment, Follows_Empty_Line,
36183         Is_Followed_By_Empty_Line): New functions
36184         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
36185         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
36186         (Set_Next_Comment): New procedure
36187         (Default_Project_Node): Associate comment before if the node can store
36188         comments.
36189
36190         * scans.ads (Token_Type): New enumeration value Tok_Comment
36191         (Comment_Id): New global variable
36192
36193         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
36194         defaulted to False.
36195         (Scan): Store position of start of comment. If comments are tokens, set
36196         Comment_Id and set Token to Tok_Comment when scanning a comment.
36197         (Set_Comment_As_Token): New procedure
36198
36199         * sinput-p.adb: Update Copyright notice
36200         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
36201         that no longer exists.
36202
36203 2003-12-08  Javier Miranda  <miranda@gnat.com>
36204
36205         * sem_aggr.adb: Add dependence on Exp_Tss package
36206         Correct typo in comment
36207         (Resolve_Aggregate): In case of array aggregates set the estimated
36208         type of the aggregate before calling resolve. This is needed to know
36209         the name of the corresponding IP in case of limited array aggregates.
36210         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
36211         in case of default initialized array components.
36212
36213         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
36214         types. Required to give support to limited aggregates in generic
36215         formals.
36216
36217 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
36218
36219         * sem_ch3.adb (Check_Initialization): For legality purposes, an
36220         inlined body functions like an instantiation.
36221         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
36222         until bounds are analyzed, to diagnose premature use of type.
36223
36224         * sem_util.adb (Wrong_Type): Improve error message when the type of
36225         the expression is used prematurely.
36226
36227 2003-12-08  GNAT Script  <nobody@gnat.com>
36228
36229         * Make-lang.in: Makefile automatically updated
36230
36231 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
36232
36233         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
36234         they are automatically generated by Make-lang.in and cause nothing but
36235         maintenance troubles.
36236
36237 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
36238
36239         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
36240         version of this unit).
36241
36242 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
36243
36244         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
36245         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
36246         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
36247         the body of System.Interrupt_Management common to several targets.
36248         Update copyright notice when appropriate.
36249
36250         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
36251         constant.
36252
36253         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
36254         to ensure that the kernel fills in the interrupted context structure
36255         before calling a signal handler, which is necessary to be able to
36256         unwind past it. Update the copyright notice.
36257
36258 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
36259
36260         * a-elchha.ads: New file.
36261
36262         * a-elchha.adb: New default last chance handler. Contents taken from
36263         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
36264
36265         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
36266         is moved to a-elchha.adb to provide a target-independent default last
36267         chance handler.
36268
36269         * Makefile.rtl: Add a-elchha.o
36270
36271         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
36272
36273 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
36274
36275         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
36276         declared in an instance, do not inline the call if the instance is not
36277         frozen yet, to prevent order of elaboration problems.
36278
36279         * sem_prag.adb: Add comments for previous fix.
36280
36281 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
36282
36283         * g-table.adb: Use the right variable in Set_Item.
36284         Update copyright notice.
36285
36286 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
36287
36288         * Makefile.in: Remove unused rules.
36289
36290 2003-12-05  Vincent Celier  <celier@gnat.com>
36291
36292         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
36293         -nostdlib. Not needed here after all.
36294
36295 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
36296
36297         PR ada/11724
36298         * adaint.h, adaint.c, g-os_lib.ads:
36299         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
36300         on some platforms (including FreeBSD), it is a 64 bit value.
36301         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
36302
36303 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
36304
36305         * gnatvsn.ads (Library_Version): Now contain only the relevant
36306         version info.
36307         (Verbose_Library_Version): New constant.
36308
36309         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
36310         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
36311         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
36312
36313         * gnatlbr.adb: Clean up: replace Library_Version by
36314         Verbose_Library_Version.
36315
36316         * make.adb, lib-writ.adb, exp_attr.adb:
36317         Clean up: replace Library_Version by Verbose_Library_Version.
36318
36319         * 5lintman.adb: Removed.
36320
36321         * Makefile.in:
36322         Update and simplify computation of LIBRARY_VERSION.
36323         Fix computation of GSMATCH_VERSION.
36324         5lintman.adb is no longer used: replaced by 7sintman.adb.
36325
36326 2003-12-03  Robert Dewar  <dewar@gnat.com>
36327
36328         * exp_ch5.adb:
36329         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
36330         name. Modified to consider small non-bit-packed arrays as troublesome
36331         and in need of component-by-component assigment expansion.
36332
36333 2003-12-03  Vincent Celier  <celier@gnat.com>
36334
36335         * lang-specs.h: Process nostdlib as nostdinc
36336
36337         * back_end.adb: Update Copyright notice
36338         (Scan_Compiler_Arguments): Process -nostdlib directly.
36339
36340 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
36341
36342         * Makefile.in:
36343         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
36344         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
36345         included in HIE_NONE_TARGET_PAIRS.
36346
36347 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
36348
36349         * sem_attr.adb:
36350         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
36351         is legal in an instance, because legality is cheched in the template.
36352
36353         * sem_prag.adb:
36354         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
36355         appplied to an unchecked conversion of a formal parameter.
36356
36357         * sem_warn.adb:
36358         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
36359         variables.
36360
36361 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
36362
36363         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
36364         routines. The second one is new functionality to deal with backtracing
36365         through signal handlers.
36366         (unwind): Split into the two separate subroutines above.
36367         Update the documentation, and deal properly with sizeof (REG) different
36368         from sizeof (void*).
36369
36370 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
36371
36372         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
36373         so that the debugger can reliably access the value of the parameter,
36374         and therefore is able to display the exception name when an exception
36375         breakpoint is reached.
36376
36377 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
36378
36379         * fmap.adb: Fix typo in warning message.
36380
36381         * g-socket.ads, g-socket.adb: Make Free a visible instance of
36382         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
36383
36384 2003-12-01  Vincent Celier  <celier@gnat.com>
36385
36386         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
36387         ther is no Afile.
36388         (Build_Library): Get the switches only if Default_Switches is declared
36389         in package Binder.
36390
36391 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
36392
36393         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
36394         actuals that are indexed components, reanalyze actual to ensure that
36395         packed array references are properly expanded.
36396
36397         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
36398         attempted assignment to a discriminant.
36399
36400 2003-12-01  Robert Dewar  <dewar@gnat.com>
36401
36402         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
36403         reformatting.
36404
36405         * switch-c.adb: Minor reformatting of comments
36406
36407 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
36408
36409         * Makefile.in: Clean ups.
36410
36411 2003-12-01  GNAT Script  <nobody@gnat.com>
36412
36413         * Make-lang.in: Makefile automatically updated
36414
36415 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
36416
36417         * 5wsystem.ads: Disable zero cost exception, not ready yet.
36418
36419 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
36420
36421         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
36422         to force serialization.
36423
36424 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
36425
36426         * g-socket.ads, g-socket.adb:
36427         Clarify documentation of function Stream. Introduce a Free procedure
36428         to release the returned Stream once it becomes unused.
36429
36430         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
36431
36432 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
36433
36434         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
36435         since NT 4 cannot handle timeout values that are too large,
36436         e.g. DWORD'Last - 1.
36437
36438 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
36439
36440         * exp_ch4.adb:
36441         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
36442         in procedure calls and whose expansion must be deferred.
36443
36444         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
36445         is in exp_ch4.
36446
36447         * sem_ch3.adb:
36448         (Build_Derived_Array_Type): Create operator for unconstrained type
36449         if ancestor is unconstrained.
36450
36451 2003-11-26  Vincent Celier  <celier@gnat.com>
36452
36453         * make.adb (Project_Object_Directory): New global variable
36454         (Change_To_Object_Directory): New procedure
36455         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
36456         of Change_Dir directly. Do not change working directory to object
36457         directory of main project after each compilation.
36458         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
36459         directly.
36460         Change to object directory of main project before binding step.
36461         (Initialize): Initialize Project_Object_Directory to No_Project
36462
36463         * mlib-prj.adb:
36464         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
36465         binding a Stand-Alone Library.
36466
36467         * output.adb: Update Copyright notice
36468         (Write_Char): Output buffer when full
36469
36470 2003-11-26  Robert Dewar  <dewar@gnat.com>
36471
36472         * sem_ch13.adb: (Check_Size): Reset size if size is too small
36473
36474         * sem_ch13.ads:
36475         (Check_Size): Fix documentation to include bit-packed array case
36476
36477         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
36478
36479         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
36480
36481         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
36482
36483 2003-11-24  Arnaud Charlet  <charlet@act-europe.fr>
36484
36485         PR ada/13142
36486         * utils.c (init_gigi_decls): Change name of built-in setjmp to
36487         __builtin_setjmp, since this is apparently needed by recent
36488         non Ada changes.
36489
36490 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
36491
36492         * adadecode.c: Only include ctype.h if not IN_GCC.
36493         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
36494
36495 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
36496
36497         * Makefile.in:
36498         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
36499         signals and interrupts.
36500
36501         * 5zintman.ads: New File.
36502
36503         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
36504         add exception signals to the set of unmasked signals.
36505
36506         * 5ztaprop.adb:
36507         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
36508         between signals and interrupts.
36509         Add to Unblocked_Signal_Mask the set of signals that are in
36510         Keep_Unmasked.
36511
36512         * 7sinmaop.adb:
36513         Adding a check to see whether the Interrupt_ID we want to unmask is in
36514         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
36515         reason is that the index type of the Keep_Unmasked array is not always
36516         Interrupt_ID; it may be a subtype of Interrupt_ID.
36517
36518 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
36519
36520         * exp_util.adb:
36521         (Remove_Side_Effects): Condition constantness of object created for a
36522          an unchecked type conversion on the constantness of the expression
36523          to ensure the correct value for 'Constrained when passing components
36524          of view-converted class-wide objects.
36525
36526 2003-11-24  Robert Dewar  <dewar@gnat.com>
36527
36528         * par-load.adb (Load): Improve handling of misspelled and missing units
36529         Removes several cases of compilation abandoned messages
36530
36531         * lib.adb: (Remove_Unit): New procedure
36532
36533         * lib.ads: (Remove_Unit): New procedure
36534
36535         * lib-load.adb: Minor reformatting
36536
36537 2003-11-24  Vincent Celier  <celier@gnat.com>
36538
36539         * make.adb:
36540         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
36541         (Marking_Label): Label to mark processed source files. Incremented for
36542         each executable.
36543         (Gnatmake): Increase Marking_Labet for each executable
36544         (Is_Marked): Compare against marking label
36545         (Mark): Mark with marking label
36546
36547 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
36548
36549         * s-thread.ads:
36550         Move the declaration of the TSD for System.Threads to System.Soft_Links.
36551         Add some comments.
36552
36553         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
36554         (rts-cert): build a single relocatable object for the run-time lib.
36555         Fix perms.
36556
36557 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
36558
36559         * Make-lang.in:
36560         Use gnatls rather than gcc to obtain the location of GNAT RTL for
36561         crosstools build.
36562
36563 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
36564
36565         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
36566         can not use it as before (that is, as a variable) when dumping it into
36567         the tree file. Add a local variable to store the result of this
36568         function and to be used as the string to be written into the tree.
36569
36570         * scn.adb (Initialize_Scanner): Add comments explaining the recent
36571         changes.
36572
36573         * sinput.adb (Source_First, Source_Last): In case of
36574         Internal_Source_File, replace returning attributes of
36575         Internal_Source_Ptr (which is wrong) with returning attributes of
36576         Internal_Source.
36577
36578 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
36579
36580         * sem_ch3.adb:
36581         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
36582         used for implicit concatenation operators.
36583         Code cleanup.
36584
36585         * sem_elab.adb:
36586         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
36587         task bodies that are in the scope of a Suppress pragma.
36588         (Check_A Call): Use the flag to prevent spurious elaboration checks.
36589
36590         * sinfo.ads, sinfo.adb:
36591         New flag No_Elaboration_Check on function/procedure calls, to properly
36592         suppress checks on calls in task bodies that are within a local suppress
36593         pragma.
36594
36595         * exp_ch4.adb:
36596         (Expand_Concatenate_Other): Use the proper integer type for the
36597         expression for the upper bound, to avoid universal_integer computations
36598         when possible.
36599
36600 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
36601
36602         * .cvsignore: Delete.
36603
36604 2003-11-21  Andreas Schwab  <schwab@suse.de>
36605
36606         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
36607
36608 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
36609
36610         * 5wsystem.ads: Enable zero cost exception.
36611
36612 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
36613
36614         * 5ztiitho.adb: Remove an unreferenced variable.
36615
36616 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
36617
36618         * adaint.c: For FreeBSD, use mkstemp.
36619
36620 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
36621
36622         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
36623
36624 2003-11-21  Robert Dewar  <dewar@gnat.com>
36625
36626         * bld.adb: Remove useless USE of gnatvsn
36627
36628         * gnatchop.adb: Minor reformatting
36629         Clean up version handling to be more consistent
36630
36631         * gnatxref.adb: Minor reformatting
36632
36633         * gprcmd.adb: Minor reformatting
36634         Fix output of copyright to be more consistent with other tools
36635
36636 2003-11-21  Vincent Celier  <celier@gnat.com>
36637
36638         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
36639
36640 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
36641
36642         * atree.adb (Initialize): Add initializations for global variables
36643         used in New_Copy_Tree.
36644
36645         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
36646         Internal_Source_File as the actual).
36647         Put the set of statements creating Any_Character before the set of
36648         statements creating Any_Array to have Any_Character fully initialized
36649         when it is used in creating Any_Array.
36650
36651         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
36652         not call Scan in case if the actual is Internal_Source_File
36653         Add 2003 to copyright note.
36654
36655         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
36656         processing Internal_Source_File.
36657
36658         * types.ads: Add the constant Internal_Source_File representing the
36659         source buffer for artificial source-code-like strings created within
36660         the compiler (the definition of Source_File_Index is changed).
36661
36662 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
36663
36664         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
36665         56system.ads: New file, FreeBSD version.
36666
36667 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
36668
36669         * Make-lang.in (ada.extraclean): Delete.
36670
36671 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
36672
36673         * gnatmem.adb: Clean up verbose output.
36674
36675         * gprcmd.adb: Change copyright to FSF.
36676
36677 2003-11-19  Vincent Celier  <celier@gnat.com>
36678
36679         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
36680         and Version (ignored).
36681
36682         * symbols.ads: (Policy): New type
36683         (Initialize): New parameter Reference, Symbol_Policy and
36684         Library_Version.
36685         Remove parameter Force.
36686         Minor reformatting.
36687
36688         * snames.ads, snames.adbadb: New standard names
36689         Library_Reference_Symbol_File and Library_Symbol_Policy
36690
36691         * mlib-prj.adb:
36692         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
36693         project.
36694
36695         * mlib-tgt.adb:
36696         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
36697
36698         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
36699
36700         * prj.adb: (Project_Empty): New component Symbol_Data
36701
36702         * prj.ads: (Policy, Symbol_Record): New types
36703         (Project_Data): New component Symbol_Data
36704
36705         * prj-attr.adb:
36706         New attributes Library_Symbol_File, Library_Symbol_Policy and
36707         Library_Reference_Symbol_File.
36708
36709         * prj-nmsc.adb:
36710         (Ada_Check): When project is a Stand-Alone library project, process
36711         attribute Library_Symbol_File, Library_Symbol_Policy and
36712         Library_Reference_Symbol_File.
36713
36714         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
36715         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
36716         5sml-tgt.adb (Build_Dynamic_Library): New parameter
36717         Symbol_Data (ignored).
36718
36719         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
36720         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
36721         functions Option_File_Name and Version_String. Set new options of
36722         gnatsym related to symbol file, symbol policy and reference symbol
36723         file.
36724
36725         * 5vsymbol.adb:
36726         Extensive modifications to take into account the reference symbol file,
36727         the symbol policy, the library version and to put in the symbol file the
36728         minor and major IDs.
36729
36730         * bld.adb (Process_Declarative_Items): Put second argument of
36731         gprcmd to_absolute between single quotes, to avoid problems with
36732         Windows.
36733
36734         * bld-io.adb: Update Copyright notice.
36735         (Flush): Remove last character of a line, if it is a back slash, to
36736         avoid make problems.
36737
36738         * gnatsym.adb:
36739         Implement new scheme with reference symbol file and symbol policy.
36740
36741         * g-os_lib.ads: (Is_Directory): Clarify comment
36742
36743 2003-11-19  Robert Dewar  <dewar@gnat.com>
36744
36745         * atree.adb: Move New_Copy_Tree global variables to head of package
36746
36747         * errout.adb: Minor reformatting
36748
36749 2003-11-19  Javier Miranda  <miranda@gnat.com>
36750
36751         * sem_ch4.adb: (Diagnose_Call): Improve error message.
36752         Add reference to Ada0Y (AI-50217)
36753
36754         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
36755         sem_util.adb: Add reference to AI-50217
36756
36757         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
36758
36759         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
36760
36761         * sem_aggr.adb: Complete documentation of AI-287 changes
36762
36763         * par-ch4.adb: Document previous changes.
36764
36765         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
36766         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
36767         Ada0Y (AI-50217)
36768
36769         * exp_aggr.adb: Add references to AI-287 in previous changes
36770
36771 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
36772
36773         * exp_ch6.adb:
36774         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
36775         in the rewriting is the result of an inlined call.
36776
36777         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
36778         parameter is a type conversion, use original node to construct the
36779         post-call assignment, because expression may have been rewritten, e.g.
36780         if it is a packed array.
36781
36782         * sem_attr.adb:
36783         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
36784         body, just as it is in an instance.
36785         Categorization routines
36786
36787         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
36788         Instantiate_Object): Set proper sloc reference for message on missing
36789         actual.
36790
36791 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
36792
36793         * Makefile.in: Add FreeBSD libgnat pairs.
36794
36795         * usage.adb: Fix typo in usage message.
36796
36797 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
36798
36799         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
36800         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
36801         pragma Thread_Body.
36802         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
36803
36804         * s-thread.adb: This file is now a dummy implementation of
36805         System.Thread.
36806
36807 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
36808
36809         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
36810
36811 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
36812
36813         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
36814         instanciation references in the parent type description.
36815
36816 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36817
36818         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
36819
36820         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
36821         TYPE_PRECISION directly from esize.
36822
36823 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
36824
36825         * cstreams.c:
36826         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
36827
36828         * init.c: Initialization routines for FreeBSD
36829
36830         * link.c: Link info for FreeBSD
36831
36832         * sysdep.c: Add the case of FreeBSD
36833
36834 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
36835
36836         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
36837         already called in System.Threads.
36838
36839         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
36840         environment task, as it has been moved to System.Threads.Initialization.
36841
36842 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
36843
36844         * adaint.c (__gnatlib_install_locks): Only reference
36845         __gnat_install_locks on VMS, since other platforms can avoid using
36846         --enable-threads=gnat
36847
36848 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36849
36850         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
36851
36852         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
36853         TYPE_PACKED_ARRAY_TYPE_P.
36854         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
36855
36856         Part of PR ada/12806
36857         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
36858         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
36859
36860 2003-11-17  Vincent Celier  <celier@gnat.com>
36861
36862         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
36863         to False.
36864         Do not set exit status to Failure when Warning is True.
36865         (Gnatchop): Make errors "no compilation units found" and
36866         "no source files written" warnings only.
36867
36868         * make.adb (Gnatmake): When using a project file, set
36869         Look_In_Primary_Dir to False.
36870         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
36871         and Local_Configuration_Pragmas in the project where they are declared
36872         not an extending project which might have inherited them.
36873
36874         * osint.adb (Locate_File): If Name is already an absolute path, do not
36875         look for a directory.
36876
36877         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
36878         -gnats (Check_Syntax) is used, issue only a warning, not an error.
36879
36880         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
36881         in objects of type Variable_Value.
36882
36883         * prj.ads: (Variable_Value): New component Project
36884
36885         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
36886         is in a project extended by Project.
36887
36888         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
36889         Project of Variable_Values to this new parameter value.
36890         (Expression): Set component Project of Variable_Values.
36891         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
36892         Set the component Project in array elements.
36893
36894 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
36895
36896         * errout.adb: (Initialize): Add initialization for error nodes.
36897
36898         * sem_ch12.adb (Initialize): Add missing initializations for
36899         Exchanged_Views and Hidden_Entities.
36900
36901 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
36902
36903         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
36904         already instantiated tree for use in subsequent inlining.
36905         (Analyze_Associations, Instantiate_Formal_Subprogram,
36906         Instantiate_Object): improve error message for mismatch in
36907         instantiations.
36908
36909         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
36910         instantiations of subprograms declared in instances.
36911
36912 2003-11-17  Javier Miranda  <miranda@gnat.com>
36913
36914         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
36915         executed only under the Extensions_Allowed flag.
36916
36917 2003-11-17  Robert Dewar  <dewar@gnat.com>
36918
36919         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
36920         zeroes suppressed.
36921         (Address_Image): Fix bug of returning 0x instead of 0x0
36922         Minor reformatting (function specs).
36923
36924         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
36925         (missed case of 33-63)
36926
36927         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
36928
36929         * s-thread.adb: Add comments for pragma Restriction
36930
36931         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
36932         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
36933
36934 2003-11-17  Ed Falis  <falis@gnat.com>
36935
36936         * s-thread.adb: Added No_Tasking restriction for this implementation.
36937
36938 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
36939
36940         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
36941         instanciation references in the parent type description.
36942
36943 2003-11-17  GNAT Script  <nobody@gnat.com>
36944
36945         * Make-lang.in: Makefile automatically updated
36946
36947 2003-11-16  Jason Merrill  <jason@redhat.com>
36948
36949         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
36950         and TAGS files that include them for each front end.
36951
36952 2003-11-14  Andreas Jaeger  <aj@suse.de>
36953
36954         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
36955         is the canonical version.
36956         * misc.c (gnat_handle_option): Likewise.
36957
36958         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
36959
36960         * 5nsystem.ads: New file for x86_64-linux-gnu.
36961
36962 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
36963
36964         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
36965
36966         * comperr.adb: Fix logic in previous change.
36967
36968 2003-11-13  Vincent Celier  <celier@gnat.com>
36969
36970         * 5bml-tgt.adb (Build_Dynamic_Library): Use
36971         Osint.Include_Dir_Default_Prefix instead of
36972         Sdefault.Include_Dir_Default_Name.
36973
36974         * gnatlbr.adb: Update Copyright notice
36975         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
36976         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
36977         instead of Sdefault.Object_Dir_Default_Name
36978
36979         * gnatlink.adb:
36980         (Process_Binder_File): Never suppress the option following -Xlinker
36981
36982         * mdll-utl.adb:
36983         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
36984         Sdefault.Object_Dir_Default_Name.
36985
36986         * osint.ads, osint.adb:
36987         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
36988         Minor reformatting.
36989
36990         * vms_conv.ads: Minor reformating
36991         Remove GNAT STANDARD and GNAT PSTA
36992
36993         * vms_conv.adb:
36994         Allow GNAT MAKE to have several files on the command line.
36995         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
36996         Sdefault.Object_Dir_Default_Name.
36997         Minor Reformating
36998         Remove data for GNAT STANDARD
36999
37000         * vms_data.ads:
37001         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
37002         Remove data for GNAT STANDARD
37003         Remove options and documentation for -gnatwb/-gnatwB: these warning
37004         options no longer exist.
37005
37006 2003-11-13  Ed Falis  <falis@gnat.com>
37007
37008         * 5zthrini.adb: (Init_RTS): Made visible
37009
37010         * 5zthrini.adb:
37011         (Register): Removed unnecessary call to taskVarGet that checked whether
37012          an ATSD was already set as a task var for the argument thread.
37013
37014         * s-thread.adb:
37015         Updated comment to reflect that this is a VxWorks version
37016         Added context clause for System.Threads.Initialization
37017         Added call to System.Threads.Initialization.Init_RTS
37018
37019 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
37020
37021         * 5zthrini.adb:
37022         (Init_RTS): New procedure, for the initialization of the run-time lib.
37023
37024         * s-thread.adb:
37025         Remove dependancy on System.Init, so that this file can be used in the
37026         AE653 sequential run-time lib.
37027
37028 2003-11-13  Robert Dewar  <dewar@gnat.com>
37029
37030         * bindgen.adb: Minor reformatting
37031
37032 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
37033
37034         * checks.adb:
37035         (Apply_Discriminant_Check): Do no apply check if target type is derived
37036         from source type with no applicable constraint.
37037
37038         * lib-writ.adb:
37039         (Ensure_System_Dependency): Do not apply the style checks that may have
37040         been specified for the main unit.
37041
37042         * sem_ch8.adb:
37043         (Find_Selected_Component): Further improvement in error message, with
37044         RM reference.
37045
37046         * sem_res.adb:
37047         (Resolve): Handle properly the case of an illegal overloaded protected
37048         procedure.
37049
37050 2003-11-13  Javier Miranda  <miranda@gnat.com>
37051
37052         * exp_aggr.adb:
37053         (Has_Default_Init_Comps): New function to check the presence of
37054         default initialization in an aggregate.
37055         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
37056         extension aggregate of a limited record. In addition, a new formal
37057         was added to do not initialize the record controller (if any) during
37058         this recursive expansion of ancestors.
37059         (Init_Controller): Add support for limited record components.
37060         (Expand_Record_Aggregate): In case of default initialized components
37061         convert the aggregate into a set of assignments.
37062
37063         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
37064         describing the new syntax.
37065         Nothing else needed to be done because this subprogram delegates part of
37066         its work to P_Precord_Or_Array_Component_Association.
37067         (P_Record_Or_Array_Component_Association): Give support to the new
37068         syntax for default initialization of components.
37069
37070         * sem_aggr.adb:
37071         (Resolve_Aggregate): Relax the strictness of the frontend in case of
37072         limited aggregates.
37073         (Resolve_Record_Aggregate): Give support to default initialized
37074         components.
37075         (Get_Value): In case of default initialized components, duplicate
37076         the corresponding default expression (from the record type
37077         declaration). In case of default initialization in the *others*
37078         choice, do not check that all components have the same type.
37079         (Resolve_Extension_Aggregate): Give support to limited extension
37080         aggregates.
37081
37082         * sem_ch3.adb:
37083         (Check_Initialization): Relax the strictness of the front-end in case
37084         of aggregate and extension aggregates. This test is now done in
37085         Get_Value in a per-component manner.
37086
37087         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
37088         expression corresponds to a limited aggregate. This test is now done
37089         in Get_Value.
37090
37091         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
37092         Box_Present flag.
37093
37094         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
37095         present in an N_Component_Association node
37096
37097 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
37098
37099         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
37100         type-conformant entry only if they are homographs.
37101
37102 2003-11-13  GNAT Script  <nobody@gnat.com>
37103
37104         * Make-lang.in: Makefile automatically updated
37105
37106 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
37107
37108         * adadecode.c: Use <> form of include for ctype.h.
37109         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
37110
37111 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
37112
37113         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
37114         Works around PR middle-end/6552.
37115
37116 2003-11-10  Ed Falis  <falis@gnat.com>
37117
37118         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
37119
37120         * 5zinit.adb: (Install_Handler): Moved back to spec
37121         (Install_Signal_Handlers): Deleted
37122
37123         * 5zthrini.adb: Added context clause for System.Storage_Elements
37124         (Register): Only handles creation of taskVar; initialization moved to
37125         Thread_Body_Enter.
37126         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
37127         Added declaration of environment task secondary stack and
37128         initialization.
37129
37130         * s-thread.adb: Implement bodies for thread body processing
37131
37132         * s-thread.ads:
37133         Added comment identifying supported targets for pragma Thread_Body.
37134
37135 2003-11-10  Pascal Obry  <obry@gnat.com>
37136
37137         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
37138         GNAT_MAX_PATH_LEN.
37139
37140         * s-fileio.adb:
37141         (Open): Properly check for string length before copying into the buffer.
37142         Raises Name_Error if buffer is too small. Note that this was a potential
37143         buffer overflow.
37144
37145 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
37146
37147         * bindgen.adb, comperr.adb: Code clean ups.
37148         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
37149
37150 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
37151
37152         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
37153
37154 2003-11-10  Vincent Celier  <celier@gnat.com>
37155
37156         * gprcmd.adb:
37157         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
37158         installation.
37159
37160         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
37161
37162         * prj.adb: (Project_Empty): Add new boolean component Virtual
37163
37164         * prj.ads: (Virtual_Prefix): New constant string
37165         (Project_Data): New boolean component Virtual
37166
37167         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
37168         a library project is extended by a virtual extending project.
37169
37170         * prj-part.adb:
37171         Modifications throughout to implement extending-all project, including:
37172         (Virtual_Hash, Processed_Hash): New hash tables
37173         (Create_Virtual_Extending_Project): New procedure
37174         (Look_For_Virtual_Projects_For): New procedure
37175
37176         * prj-proc.adb:
37177         (Process): After checking the projects, if main project is an
37178         extending-all project, set the object directory of all virtual extending
37179         project to the object directory of the main project.
37180         Adjust error message when a virtual extending project has the same
37181         object directory as an project being extended.
37182         (Recursive_Process): If name starts with the virtual prefix, set Virtual
37183         to True in the project data.
37184
37185         * prj-tree.adb:
37186         (Default_Project_Node): Add new boolean component Extending_All
37187         (Is_Extending_All): New function
37188         (Set_Is_Extending_All): New procedure
37189
37190         * prj-tree.ads: (Is_Extending_All): New function
37191         (Set_Is_Extending_All): New procedure
37192         (Project_Node_Record): New boolean component Extending_All
37193
37194         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
37195
37196         * vms_data.ads:
37197         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
37198
37199         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
37200         "gprcmd prefix" to define it.
37201
37202 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
37203
37204         * einfo.ads: Fix a typo and remove an extraneous word in comments.
37205
37206         * lib-load.adb:
37207         (Create_Dummy_Package_Unit): Set the scope of the entity for the
37208         created dummy package to Standard_Standard, not to itself, to
37209         defend other parts of the front-end against encoutering a cycle in
37210         the scope chain.
37211
37212         * sem_ch10.adb:
37213         (Analyze_With_Clause): When setting the entities for the successive
37214         N_Expanded_Names that constitute the name of a child unit, do not
37215         attempt to go further than Standard_Standard in the chain of scopes.
37216         This case arises from the placeholder units created by
37217         Create_Dummy_Package_Unit in the case of a with_clause for a
37218         nonexistent child unit.
37219
37220 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
37221
37222         * exp_ch6.adb:
37223         (Expand_Thread_Body): Place subprogram on scope stack, so that new
37224         declarations are given the proper scope.
37225
37226         * sem_ch13.adb:
37227         (Check_Expr_Constants): Reject an expression that contains a constant
37228         created during expansion, and that appears after the object to which
37229         the address clause applies.
37230
37231         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
37232         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
37233         that uses 'Range of a function call with controlled components, so
37234         that the function result can be finalized before starting the loop.
37235
37236         * sem_ch8.adb:
37237         (Find_Selected_Component): Improve error message when prefix is
37238         an implicit dereference of an incomplete type.
37239
37240 2003-11-10  Robert Dewar  <dewar@gnat.com>
37241
37242         * opt.ads: New Print_Standard flag for -gnatS switch
37243
37244         * sem_ch13.adb: Remove some additional checks for unaligned arrays
37245
37246         * cstand.adb (Create_Standard): Print out package standard if -gnatS
37247         switch set
37248
37249         * debug.adb: Update doc for -gnatds to discuss relationship with new
37250         -gnatS flag
37251
37252         * sinfo.adb: Add new field Entity_Or_Associated_Node
37253
37254         * sinfo.ads: Add new field Entity_Or_Associated_Node
37255         Update documentation for Associated_Node and Entity fields to clarify
37256         relationship and usage.
37257
37258         * sprint.adb:
37259         (Write_Id): Properly process Associated_Node field in generic template
37260
37261         * switch-c.adb:
37262         Recognize new -gnatS switch for printing package Standard
37263         This replaces gnatpsta
37264
37265         * usage.adb:
37266         Add line for  new -gnatS switch for printing package Standard
37267         This replaces gnatpsta
37268
37269 2003-11-10  Andreas Jaeger  <aj@suse.de>
37270
37271         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
37272         integer.
37273
37274 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
37275
37276         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
37277         by gnat1.
37278
37279 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
37280
37281         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
37282         no longer needed.
37283
37284         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
37285
37286         * sysdep.c: Add handling of cygwin.
37287
37288 2003-11-10  GNAT Script  <nobody@gnat.com>
37289
37290         * Make-lang.in: Makefile automatically updated
37291
37292 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
37293
37294         PR 12950
37295         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
37296         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
37297         Replace GNAT_ROOT by GCC_ROOT.
37298
37299         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
37300
37301 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
37302
37303         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
37304         and update for changed meaning of GET_MODE_BITSIZE.
37305
37306 2003-11-04  Doug Rupp  <rupp@gnat.com>
37307
37308         * sysdep.c: Problem discovered during IA64 VMS port.
37309         [VMS] #include <unixio.h> to get proper prototypes.
37310
37311         * adaint.c:
37312         Issues discovered/problems fixed during IA64 VMS port.
37313         [VMS] #define _POSIX_EXIT for proper semantics.
37314         [VMS] #include <unixio.h> for proper prototypes.
37315         [VMS] (fork): #define IA64 version.
37316         (__gnat_os_exit): Remove unnecessary VMS specific code.
37317
37318 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37319
37320         Part of PR ada/12806
37321         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
37322         tree, not integer.
37323
37324         * decl.c:
37325         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
37326         not integer.
37327
37328         * targtyps.c, decl.c, misc.c,
37329         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
37330         routines to work around change in FP sizing semantics in GCC.
37331
37332         * utils.c:
37333         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
37334
37335         * gigi.h: (enumerate_modes): New function.
37336
37337         * Make-lang.in: (ada/misc.o): Add real.h.
37338
37339         * misc.c: (enumerate_modes): New function.
37340
37341 2003-11-04  Robert Dewar  <dewar@gnat.com>
37342
37343         * 3vtrasym.adb: Minor reformatting
37344         Use terminology encoded/decoded name, rather than C++ specific notion
37345         of mangling (this is the terminology used throughout GNAT).
37346
37347         * einfo.h: Regenerated
37348
37349         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
37350
37351         * exp_ch6.adb:
37352         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
37353
37354         * par-prag.adb: Add dummy entry for Thread_Body pragma
37355
37356         * rtsfind.ads:
37357         Add entries for System.Threads entities for thread body processing
37358
37359         * sem_attr.adb:
37360         (Analyze_Pragma, Access attributes): Check these are not applied to a
37361         thread body, since this is not permitted
37362
37363         * sem_prag.adb: Add processing for Thread_Body pragma.
37364         Minor comment fix.
37365
37366         * sem_res.adb:
37367         (Resolve_Call): Check for incorrect attempt to call a thread body
37368          procedure with a direct call.
37369
37370         * snames.ads, snames.adb: Add entry for Thread_Body pragma
37371         Add names associated with thread body expansion
37372
37373         * snames.h: Add entry for Thread_Body pragma
37374
37375         * s-thread.adb: Add entries for thread body processing
37376         These are dummy bodies so far
37377
37378         * s-thread.ads: Add documentation on thread body handling.
37379         Add entries for thread body processing.
37380
37381 2003-11-04  Javier Miranda  <miranda@gnat.com>
37382
37383         * sem_ch10.adb:
37384         (Build_Limited_Views): Return after posting an error in case of limited
37385         with_clause on subprograms, generics, instances or generic renamings
37386         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
37387         on subprograms, generics, instances or generic renamings
37388
37389 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
37390
37391         * raise.c (setup_to_install): Correct mistake in last revision; two
37392         arguments out of order.
37393
37394         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
37395         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
37396         notice, missed in previous change.
37397         Remove trailing blanks and other style errors introduced in previous
37398         change.
37399
37400 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
37401
37402         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
37403         rid of the wrapper for a LJM type, ensuring we don't do that if the
37404         field is addressable.  This avoids potential low level type view
37405         mismatches later on, for instance in a by-reference argument passing
37406         process.
37407
37408 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37409
37410         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
37411         aligned at byte boundary.
37412
37413 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
37414
37415         * decl.c (components_to_record): Do not delete the empty variants from
37416         the end of the union type.
37417
37418 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
37419
37420         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
37421         operation for a derived type, an explicit declaration may use a local
37422         subtype of Boolean.
37423
37424 2003-11-04  Vincent Celier  <celier@gnat.com>
37425
37426         * make.adb (Gnatmake): Allow main sources on the command line with a
37427         library project when it is only for compilation (no binding or
37428         linking).
37429
37430 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
37431
37432         * Makefile.in: Remove many duplicate variables.
37433
37434 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
37435
37436         * Make-lang.in (dvi): Move targets to $(docobjdir).
37437         (gnat_ug_vms.dvi): Simplify rule and adjust target.
37438         (gnat_ug_wnt.dvi): Likewise.
37439         (gnat_ug_unx.dvi): Likewise.
37440         (gnat_ug_vxw.dvi): Likewise.
37441         (gnat_rm.dvi): Likewise.
37442         (gnat-style.dvi): Likewise.
37443
37444 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
37445
37446         * gigi.h: Missed commit from update for C90.
37447
37448 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
37449
37450         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
37451
37452 2003-10-31  Andreas Schwab  <schwab@suse.de>
37453
37454         * raise.c (get_action_description_for): Fix typo in last change.
37455
37456 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
37457
37458         PR ada/12761
37459         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
37460         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
37461
37462 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
37463
37464         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
37465         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
37466         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
37467         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
37468         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
37469
37470 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
37471
37472         * 3vtrasym.adb:
37473         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
37474         numbers when symbol name is too long.
37475
37476 2003-10-30  Ed Falis  <falis@gnat.com>
37477
37478         * g-signal.ads, g-signal.adb: New files
37479
37480         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
37481
37482         * Makefile.rtl: Introduce GNAT.Signals
37483
37484 2003-10-30  Robert Dewar  <dewar@gnat.com>
37485
37486         * freeze.adb: Minor reformatting
37487
37488         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
37489
37490         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
37491         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
37492         New handling of Id_Check parameter to improve recognition of keywords
37493         used as identifiers.
37494         Update copyright notice to include 2003
37495
37496 2003-10-29  Robert Dewar  <dewar@gnat.com>
37497
37498         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
37499         sem_ch10.adb: Minor reformatting
37500
37501         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
37502         (Expand_Assign_Record): Test right hand side for bit unaligned as well
37503
37504 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
37505
37506         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
37507         Support for TBK$SYMBOLIZE-based symbolic traceback.
37508
37509 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
37510
37511         * exp_disp.adb:
37512         Revert previous change, that did not work well when pragma No_Run_Time
37513         was used in conjunction with a run-time other than ZFP.
37514
37515 2003-10-29  Vincent Celier  <celier@gnat.com>
37516
37517         * make.adb:
37518         (Gnatmake): When there are no Ada mains in attribute Main, disable the
37519          bind and link steps only is switch -z is not used.
37520
37521 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
37522
37523         * Makefile.generic: Remove duplicated setting of CC.
37524
37525         * Makefile.prolog: Set CC to gcc by default, to override make's
37526         default (cc).
37527
37528         * einfo.h: Regenerated.
37529
37530 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
37531
37532         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
37533         current body, after compiling subunit.
37534
37535         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
37536         when in deleted code, because gigi needs properly ordered freeze
37537         actions to annotate types.
37538
37539         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
37540         prevent the premature freezing of record type that contains
37541         subcomponents with a private type that does not yet have a completion.
37542
37543 2003-10-29  Javier Miranda  <miranda@gnat.com>
37544
37545         * sem_ch12.adb:
37546         (Analyze_Package_Instantiation): Check that instances can not be used in
37547         limited with_clauses.
37548
37549         * sem_ch8.adb:
37550         (Analyze_Package_Renaming): Check that limited withed packages cannot
37551         be renamed. Improve text on error messages related to limited
37552         with_clauses.
37553
37554         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
37555
37556         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
37557         Update copyright notice.
37558
37559         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
37560         (Install_Limited_Context_Clauses): New subprogram that isolates all the
37561         checks required for limited context_clauses and installs the limited
37562         view.
37563         (Install_Limited_Withed_Unit): Complete its documentation.
37564         (Analyze_Context): Check that limited with_clauses are only allowed in
37565         package specs.
37566         (Install_Context): Call Install_Limited_Context_Clauses after the
37567         parents have been installed.
37568         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
37569         package as 'From_With_Type'; this mark indicates that the limited view
37570         is installed. Used to check bad usages of limited with_clauses.
37571         (Build_Limited_Views): Do not add shadow entities to the scope's list
37572         of entities. Do not add real entities to the Non_Limited_Views chain.
37573         Improve error notification.
37574         (Remove_Context_Clauses): Remove context clauses in two phases:
37575         limited views first and regular views later (to maintain the
37576         stack model).
37577         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
37578         its visible entities.
37579
37580 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
37581
37582         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
37583         with any type that Is_Fixed_Point_Type.
37584
37585         * sinfo.ads: Fix documentation for Associated_Node attribute.
37586
37587 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
37588
37589         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
37590         both '-gnatc' and '-gnatt' are specified.
37591
37592         * atree.adb (Initialize): Add initialization for Node_Count (set to
37593         zero).
37594
37595 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37596
37597         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
37598         do not consider as Pure.
37599
37600         Part of implementation of function-at-a-time:
37601
37602         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
37603         (tree_transform): Add new argument to build_component_ref.
37604         (tree_transform, case N_Assignment_Statement): Make and return an
37605         EXPR_STMT.
37606         (tree_transform): If result IS_STMT, set flags and return it.
37607         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
37608
37609         * utils2.c (build_simple_component_ref, build_component_ref): Add new
37610         arg, NO_FOLD_P.
37611         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
37612         (build_allocator): Likewise.
37613
37614         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
37615         Add new arg to build_component_ref.
37616         (maybe_unconstrained_array, unchecked_convert): Likewise.
37617
37618         * ada-tree.def (EXPR_STMT): New code.
37619
37620         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
37621
37622         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
37623         build_component_ref calls.
37624
37625         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
37626
37627         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
37628         (build_component_ref): Add new argument, NO_FOLD_P.
37629
37630 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
37631
37632         * Makefile.generic: Add missing substitution on object_deps handling.
37633
37634         PR ada/5909
37635         * Make-lang.in (check-ada): Enable ACATS test suite.
37636
37637 2003-10-27  Robert Dewar  <dewar@gnat.com>
37638
37639         * exp_ch3.adb:
37640         (Freeze_Array_Type): We do not need an initialization routine for types
37641         derived from String or Wide_String. They should be treated the same
37642         as String and Wide_String themselves. This caused problems with the
37643         use of Initialize_Scalars.
37644
37645         * exp_ch5.adb:
37646         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
37647         composites. This allows use of component clauses that are not byte
37648         aligned.
37649
37650         * sem_prag.adb:
37651         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
37652         is an attempt to pack an array of atomic objects.
37653
37654         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
37655
37656 2003-10-27  Pascal Obry  <obry@gnat.com>
37657
37658         * g-dirope.adb:
37659         (Basename): Check for drive letters in a pathname only on DOS based OS.
37660
37661 2003-10-27  Vincent Celier  <celier@gnat.com>
37662
37663         * make.adb:
37664         (Gnatmake): When unable to change dir to the object dir, display the
37665         content of the parent dir of the obj dir, to try to understand why this
37666         happens.
37667
37668 2003-10-27  GNAT Script  <nobody@gnat.com>
37669
37670         * Make-lang.in: Makefile automatically updated
37671
37672 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
37673
37674         * sem_ch12.adb:
37675         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
37676         should not be done in Save/Restore_Scope_Stack, because it is performed
37677         locally.
37678
37679         * sem_ch8.adb:
37680         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
37681         whether use clauses should be removed/restored.
37682
37683         * sem_ch8.ads:
37684         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
37685         whether use clauses should be removed/restored.
37686
37687 2003-10-26  Andreas Jaeger  <aj@suse.de>
37688
37689         * Makefile.in: Remove duplicated lines.
37690
37691 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
37692
37693         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
37694         minimize the differences with ACT tree.
37695
37696         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
37697         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
37698         Gnatvsn.Gnat_Static_Version_String to reduce differences between
37699         ACT and FSF trees.
37700
37701 2003-10-24  Pascal Obry  <obry@gnat.com>
37702
37703         PR ada/12014
37704         * adadecode.c (ostrcpy): New function.
37705         (__gnat_decode): Use ostrcpy of strcpy.
37706         (has_prefix): Set first parameter a const.
37707         (has_suffix): Set first parameter a const.
37708         Update copyright notice. Fix source name in header.
37709         Removes a trailing space.
37710
37711 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
37712
37713         * exp_disp.adb:
37714         Remove the test against being in No_Run_Time_Mode before generating a
37715         call to Register_Tag. It is redundant with the test against the
37716         availability of the function Register_Tag.
37717
37718 2003-10-24  Vincent Celier  <celier@gnat.com>
37719
37720         * g-catiio.adb: (Month_Name): Correct spelling of February
37721
37722         * make.adb: (Mains): New package
37723         (Initialize): Call Mains.Delete
37724         (Gnatmake): Check that each main on the command line is a source of a
37725         project file and, if there are several mains, each of them is a source
37726         of the same project file.
37727         (Gnatmake): When a foreign language is specified in attribute Languages,
37728         no main is specified on the command line and attribute Mains is not
37729         empty, only build the Ada main. If there is no Ada main, just compile
37730         the Ada sources and their closure.
37731         (Gnatmake): If a main is specified on the command line with directory
37732         information, check that the source exists and, if it does, that the path
37733         is the actual path of a source of a project.
37734
37735         * prj-env.adb:
37736         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
37737         Full_Path is True, return the full path instead of the simple file name.
37738         (Project_Of): New function
37739
37740         * prj-env.ads:
37741         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
37742         defaulted to False.
37743         (Project_Of): New function
37744
37745 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
37746
37747         * Makefile.generic:
37748         Ensure objects of main project are always checked and rebuilt if needed.
37749         Set CC to gcc by default.
37750         Prepare new handling of link by creating a global archive (not activated
37751         yet).
37752
37753         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
37754         stringt.h: Update copyright notice. Remove trailing blanks.
37755         Fix source name in header.
37756
37757 2003-10-24  Robert Dewar  <dewar@gnat.com>
37758
37759         * sem_ch12.adb: Minor reformatting
37760
37761         * sem_ch3.adb:
37762         Minor reformatting (including new function return style throughout)
37763
37764         * sem_ch3.ads:
37765         Minor reformatting (including new function return style throughout)
37766
37767 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
37768
37769         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
37770         stringt.h: Update copyright notice. Remove trailing blanks.
37771         Fix source name in header.
37772
37773 2003-10-24  GNAT Script  <nobody@gnat.com>
37774
37775         * Make-lang.in: Makefile automatically updated
37776
37777 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
37778
37779         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
37780         stringt.h: Convert to ISO C90 declarations and definitions.
37781
37782 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
37783
37784         PR ada/11978
37785         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
37786         External_Tag attribute definition clauses.
37787
37788 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
37789
37790         PR ada/7613
37791         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
37792         child unit, generate a fully qualified name to avoid spurious errors
37793         when the context contains renamings of different child units with
37794         the same simple name.
37795
37796         * exp_dbug.ads: Add documentation on name qualification for renamings
37797         of child units.
37798
37799 2003-10-23  Robert Dewar  <dewar@gnat.com>
37800
37801         * g-regpat.ads, g-regpat.adb: Minor reformatting
37802
37803 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
37804
37805         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
37806
37807 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37808
37809         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
37810         Machine call.
37811
37812         * urealp.h: (Machine): Update to proper definition.
37813
37814 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
37815
37816         * init.c, adaint.c: Minor reformatting.
37817
37818 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
37819
37820         * adaint.c (w32_epoch_offset): Define static const at file level.
37821         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
37822         rather than t_create, t_access in call to GetFileTime. Use union
37823         to convert between FILETIME and  unsigned long long.
37824         (__gnat_file_time_name): Test for invalid file handle.
37825         (__gnat_set_filetime_name): Support win32 targets using
37826         w32api SetFileTime.
37827
37828 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
37829
37830         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
37831
37832         * ctrl_c.c (__gnat_int_handler): Remove declaration.
37833
37834         * decl.c (creat_concat_name):  Const-ify prefix.
37835
37836         * adaint.c: Include ctype.h if __MINGW32__.
37837         (__gnat_readlink): Mark arguments as possibly unused.
37838         (__gnat_symlink): Likewise.
37839         (__gnat_is_symbolic_link): Likewise.
37840         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
37841         declaration
37842         (__gnat_file_time_name): Don't declare struct stat statbuf when
37843         not needed.
37844         (__gnat_is_absolute_path): Add parenthesis around condition of
37845         'if' statement to avoid warning.
37846         (__gnat_plist_init): Specify void as parameter.
37847         (plist_enter): Likewise.
37848         (plist_leave): Likewise.
37849         (remove_handle): Make static. Initialize prev.
37850
37851 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
37852
37853         PR ada/10110
37854         * Makefile.in: Disable build of gnatpsta.
37855         * cstreams.c (__gnat_full_name): Minor improvements and clean up
37856         of previous change.
37857
37858 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
37859
37860         * tracebak.c (MAX): Avoid redefinition warning.
37861
37862         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
37863         Change msg to const char *.
37864         (__gnat_install_handler): Remove ss, unused.
37865         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
37866         to const char *.
37867         * cstreams.c (__gnat_full_name): Declare p only when used.
37868         (__gnat_full_name) [sgi] Return buffer.
37869
37870 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
37871
37872         * mingw32.h: New file.
37873         * gnat_wrapper.adb: New file.
37874
37875 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
37876
37877         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
37878         string match a pre compiled regular expression (the corresponding
37879         version of the function working on a raw regular expression)
37880         Fix typos in various comments
37881         Update copyright notice in spec
37882
37883 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
37884
37885         * exp_ch3.adb:
37886         (Component_Needs_Simple_Initialization): Return False when the type is a
37887         packed bit array. Revise spec comments to document this case.
37888
37889         * exp_prag.adb:
37890         (Expand_Pragma_Import): Set any expression on the imported object to
37891         empty to avoid initializing imported objects (in particular this
37892         covers the case of zero-initialization of bit arrays).
37893         Update copyright notice.
37894
37895 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
37896
37897         * sem_ch12.adb:
37898         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
37899         a subunit is missing.
37900         (Instantiate_Subprogram_Body): If body of function is missing, set type
37901         of return expression explicitly in dummy body, to prevent cascaded
37902         errors when a subunit is missing.
37903         Fixes PR 5677.
37904
37905         * sem_ch3.adb:
37906         (Access_Subprogram_Declaration): Verify that return type is valid.
37907         Fixes PR 8693.
37908
37909         * sem_elab.adb:
37910         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
37911         generic.
37912         Fixes PR 12318.
37913
37914         * sem_util.adb:
37915         (Corresponding_Discriminant): If the scope of the discriminant is a
37916         private type without discriminant, use its full view.
37917         Fixes PR 8247.
37918
37919 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
37920
37921         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
37922         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
37923         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
37924         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
37925         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
37926         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
37927         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
37928         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
37929         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
37930         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
37931         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
37932         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
37933         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
37934         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
37935         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
37936         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
37937         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
37938         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
37939         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
37940         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
37941         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
37942         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
37943         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
37944         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
37945         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
37946         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
37947         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
37948         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
37949         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
37950         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
37951         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
37952         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
37953         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
37954         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
37955         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
37956         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
37957         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
37958         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
37959         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
37960         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
37961         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
37962         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
37963         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
37964         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
37965         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
37966         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
37967         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
37968         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
37969         vms_conv.ads, vms_conv.adb, vms_data.ads,
37970         vxaddr2line.adb: Files added. Merge with ACT tree.
37971
37972         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
37973         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
37974         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
37975         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
37976         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
37977         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
37978         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
37979         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
37980         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
37981         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
37982
37983         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
37984         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
37985         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
37986         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
37987         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
37988         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
37989         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
37990         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
37991         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
37992         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
37993         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
37994         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
37995         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
37996         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
37997         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
37998         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
37999         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
38000         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
38001         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
38002         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
38003         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
38004         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
38005         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
38006         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
38007         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
38008         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
38009         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
38010         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
38011         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
38012         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
38013         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
38014         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
38015         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
38016         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
38017         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
38018         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
38019         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
38020         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
38021         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
38022         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
38023         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
38024         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
38025         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
38026         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
38027         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
38028         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
38029         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
38030         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
38031         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
38032         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
38033         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
38034         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
38035         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
38036         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
38037         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
38038         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
38039         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
38040         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
38041         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
38042         checks.adb, checks.ads, cio.c, comperr.adb,
38043         comperr.ads, csets.adb, cstand.adb, cstreams.c,
38044         debug_a.adb, debug_a.ads, debug.adb, decl.c,
38045         einfo.adb, einfo.ads, errout.adb, errout.ads,
38046         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
38047         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
38048         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
38049         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
38050         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
38051         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
38052         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
38053         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
38054         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
38055         fe.h, fmap.adb, fmap.ads, fname.adb,
38056         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
38057         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
38058         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
38059         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
38060         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
38061         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
38062         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
38063         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
38064         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
38065         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
38066         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
38067         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
38068         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
38069         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
38070         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
38071         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
38072         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
38073         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
38074         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
38075         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
38076         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
38077         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
38078         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
38079         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
38080         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
38081         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
38082         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
38083         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
38084         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
38085         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
38086         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
38087         layout.adb, lib.adb, lib.ads, lib-list.adb,
38088         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
38089         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
38090         link.c, live.adb, make.adb, make.ads,
38091         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
38092         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
38093         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
38094         misc.c, mkdir.c, mlib.adb, mlib.ads,
38095         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
38096         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
38097         namet.adb, namet.ads, namet.h, nlists.ads,
38098         nlists.h, nmake.adt, opt.adb, opt.ads,
38099         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
38100         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
38101         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
38102         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
38103         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
38104         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
38105         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
38106         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
38107         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
38108         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
38109         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
38110         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
38111         prj-util.adb, prj-util.ads, raise.c, raise.h,
38112         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
38113         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
38114         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
38115         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
38116         scans.ads, scn.adb, scn.ads, s-crc32.adb,
38117         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
38118         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
38119         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
38120         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
38121         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
38122         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
38123         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
38124         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
38125         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
38126         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
38127         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
38128         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
38129         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
38130         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
38131         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
38132         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
38133         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
38134         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
38135         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
38136         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
38137         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
38138         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
38139         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
38140         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
38141         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
38142         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
38143         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
38144         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
38145         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
38146         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
38147         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
38148         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
38149         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
38150         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
38151         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
38152         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
38153         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
38154         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
38155         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
38156         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
38157         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
38158         stringt.adb, stringt.ads, stringt.h, style.ads,
38159         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
38160         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
38161         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
38162         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
38163         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
38164         table.adb, table.ads, targparm.adb, targparm.ads,
38165         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
38166         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
38167         ttypes.ads, types.ads, types.h, uintp.adb,
38168         uintp.ads, uintp.h, uname.adb, urealp.adb,
38169         urealp.ads, urealp.h, usage.adb, utils2.c,
38170         utils.c, validsw.adb, validsw.ads, widechar.adb,
38171         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
38172         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
38173         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
38174         gnatvsn.ads: Merge with ACT tree.
38175
38176         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
38177
38178 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
38179
38180         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
38181         (gnat_ug_vmx.info): Likewise.
38182         (gnat_ug_vxw.info): Likewise.
38183         (gnat_ug_wnt.info): Likewise.
38184         (gnat_rm.info): Likewise.
38185         (gnat-style.info): Likewise.
38186
38187         * Make-lang.in (ada.install-info): Remove target.
38188         (info): New target.
38189         (install-info): Likewise.
38190         (gnat_ug_unx.info): Simplify rule.
38191         (gnat_ug_vmx.info): Likewise.
38192         (gnat_ug_vxw.info): Likewise.
38193         (gnat_ug_wnt.info): Likewise.
38194         (gnat_rm.info): Likewise.
38195         (gnat-style.info): Likewise.
38196
38197 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
38198
38199         * Make-lang.in: Replace uses of $(target_alias) with
38200         $(target_noncanonical).
38201         * ada/Makefile.in: Remove unused mention of $(target_alias).
38202
38203 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
38204
38205         * Make-lang.in (ada.info): Replace with ...
38206         (info): ... this.
38207         (ada.dvi): Replace with ...
38208         (dvi): ... this.
38209
38210 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
38211
38212         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
38213         initialize dconstp5 and dconstmp5.
38214
38215 2003-09-28  Richard Henderson  <rth@redhat.com>
38216
38217         * trans.c (tree_transform): Update call to expand_asm_operands.
38218
38219 2003-09-21  Richard Henderson  <rth@redhat.com>
38220
38221         * trans.c, utils.c: Revert.
38222
38223 2003-09-21  Richard Henderson  <rth@redhat.com>
38224
38225         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
38226         change to const.
38227
38228 2003-09-04  Michael Matz  <matz@suse.de>
38229
38230         * misc.c: Include "target.h".
38231         * Make-lang.in (misc.o): Add dependency on target.h.
38232
38233 2003-09-03  DJ Delorie  <dj@redhat.com>
38234
38235         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
38236         hook.
38237
38238 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
38239
38240         * Makefile.in: Update substitutions to match changes to
38241         configure.  Use include directives instead of @-insertions
38242         to read in host and target fragments.  Add a rule to
38243         regenerate ada/Makefile.
38244
38245 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
38246
38247         * lang-options.h: Remove.
38248         * lang.opt: Add help text.
38249
38250 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
38251
38252         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
38253         calls.
38254
38255 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
38256
38257         * misc.c (gnat_handle_option): Don't handle filenames.
38258
38259 2003-07-04  H.J. Lu  <hongjiu.lu@intel.com>
38260
38261         * Make-lang.in: Replace PWD with PWD_COMMAND.
38262         * Makefile.adalib: Likewise.
38263         * Makefile.in: Likewise.
38264
38265 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
38266
38267         * misc.c (gnat_argv): Revert last change.
38268         (gnat_handle_option, gnat_init_options): Copy arguments.
38269
38270 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
38271
38272         * misc.c (gnat_argv): Make const.
38273
38274 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
38275
38276         * misc.c (save_argc, save_argv): Keep non-static!
38277
38278 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
38279
38280         * misc.c (save_argc, save_argv): Make static.
38281         (gnat_init_options): New prototype.
38282         (gnat_init_options): Update.
38283
38284 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
38285
38286         * gnat_ug.texi: Remove unlikely characters from @vars.
38287         * gnat_ug_vms.texi: Regenerate.
38288
38289 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
38290
38291         * misc.c (record_code_position): Adjust emit_note call.
38292
38293 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
38294
38295         * misc.c (gnat_handle_option): Don't check for missing arguments.
38296
38297 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
38298
38299         * utils.c (end_subprog_body): Adjust expand_function_end call.
38300
38301 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
38302
38303         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
38304         Bind_Main_Program.
38305
38306 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
38307
38308         * lang.opt: Declare Ada.
38309         * misc.c (gnat_init_options): Update.
38310
38311 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
38312
38313         * utils.c (begin_subprog_body): Adjust init_function_start call.
38314
38315 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
38316
38317         * Make-lang.in: Update to use options.c and options.h.
38318         * misc.c: Include options.h not aoptions.h.
38319         (gnat_handle_option): Abort on unrecognized switch.
38320         (gnat_init_options): Request Ada switches.
38321
38322 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
38323
38324         * lang.opt: Add -Wall.
38325         * misc.c (gnat_handle_option): Handle it.
38326
38327 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
38328
38329         * misc.c (gnat_handle_option): Fix warnings.
38330
38331 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
38332
38333         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
38334
38335 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
38336
38337         * Make-lang.in: Update to handle command-line options.
38338         * lang.opt: New file.
38339         * misc.c: Include aoptions.h.
38340         (cl_options_count, cl_options): Remove.
38341         (gnat_handle_option): New.
38342         (gnat_decode_option): Remove.
38343         (LANG_HOOKS_DECODE_OPTION): Remove.
38344         (LANG_HOOKS_HANDLE_OPTION): Override.
38345
38346 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
38347
38348         * init.c, misc.c, trans.c, utils.c: Remove dead code.
38349
38350 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
38351
38352         * Makefile.in: Replace "host_canonical" with "host" for autoconf
38353         substitution.
38354
38355 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
38356
38357         * Make-lang.in: Update.
38358         * misc.c: Include opts.h. Define cl_options_count and cl_options.
38359
38360 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
38361
38362         * misc.c (gnat_init_options): Update.
38363
38364 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
38365
38366         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
38367         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
38368         __attribute__ ((__unused__)).
38369
38370 2003-06-05  Jan Hubicka  <jh@suse.cz>
38371
38372         * Make-lang.in:  Add support for stageprofile and stagefeedback
38373
38374 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
38375
38376         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
38377         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
38378
38379 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
38380
38381         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
38382         Remove non-VMS directive.
38383         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
38384         alternatives.
38385         (Examples of gnatls Usage): Remove VMS alternative.
38386
38387 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
38388
38389         PR ada/9953
38390         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
38391         and turn ZCX_By_Default back to False since the underlying support
38392         is not quite there yet.
38393
38394 2003-06-01  Andreas Jaeger  <aj@suse.de>
38395
38396         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
38397         and ROUND_TYPE_SIZE_UNIT.
38398
38399 2003-05-22   Geert Bosch  <bosch@gnat.com>
38400
38401         * gnat_rm.texi : Remove reference to Ada Core Technologies.
38402
38403 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
38404
38405         * trans.c (tree_transform): Use location_t and input_location
38406         directly.
38407         (build_unit_elab): Likewise.
38408         * utils.c (create_label_decl): Likewise.
38409
38410 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
38411
38412         * trans.c (tree_transform, build_unit_elab,
38413         set_lineno): Rename lineno to input_line.
38414         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
38415         end_subprog_body): Likewise.
38416         * utils2.c (build_call_raise): Likewise.
38417
38418 2003-05-01  Laurent Guerby  <guerby@acm.org>
38419
38420         PR ada/10546
38421         * 5iosinte.ads: Increase pthread_cond_t size to match recent
38422         LinuxThread and NPTL version, merge from ACT.
38423
38424 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
38425
38426         * utils.c (convert): No need to clear TREE_CST_RTL.
38427
38428 2003-04-23   Geert Bosch  <bosch@gnat.com>
38429
38430         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
38431         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
38432         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
38433         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
38434         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
38435         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
38436         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
38437         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
38438         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
38439         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
38440         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
38441         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
38442         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
38443         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
38444         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
38445         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
38446         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
38447         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
38448         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
38449         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
38450         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
38451         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
38452         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
38453         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
38454         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
38455         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
38456         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
38457         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
38458         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
38459         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
38460         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
38461         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
38462         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
38463         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
38464         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
38465         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
38466         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
38467         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
38468         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
38469         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
38470         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
38471         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
38472         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
38473         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
38474         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
38475         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
38476         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
38477         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
38478         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
38479         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
38480         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
38481         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
38482         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
38483         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
38484         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
38485         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
38486         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
38487         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
38488         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
38489         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
38490         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
38491         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
38492         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
38493         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
38494         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
38495         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
38496         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
38497         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
38498         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
38499         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
38500         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
38501         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
38502         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
38503         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
38504         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
38505         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
38506         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
38507         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
38508         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
38509         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
38510         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
38511         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
38512         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
38513         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
38514         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
38515         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
38516         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
38517         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
38518         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
38519         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
38520         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
38521         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
38522         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
38523         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
38524         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
38525         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
38526         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
38527         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
38528         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
38529         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
38530         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
38531         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
38532         ali.adb, ali.ads, alloc.ads, argv.c,
38533         atree.adb, atree.ads, atree.h, aux-io.c,
38534         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
38535         binde.adb, binde.ads, binderr.adb, binderr.ads,
38536         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
38537         butil.adb, butil.ads, cal.c, calendar.ads,
38538         casing.adb, casing.ads, ceinfo.adb, checks.adb,
38539         checks.ads, cio.c, comperr.adb, comperr.ads,
38540         config-lang.in, csets.adb, csets.ads, csinfo.adb,
38541         cstand.adb, cstand.ads, cuintp.c, debug.adb,
38542         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
38543         dec-io.ads, dec.ads, deftarg.c, directio.ads,
38544         einfo.adb, einfo.ads, elists.adb, elists.ads,
38545         elists.h, errno.c, errout.adb, errout.ads,
38546         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
38547         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
38548         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
38549         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
38550         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
38551         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
38552         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
38553         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
38554         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
38555         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
38556         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
38557         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
38558         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
38559         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
38560         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
38561         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
38562         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
38563         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
38564         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
38565         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
38566         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
38567         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
38568         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
38569         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
38570         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
38571         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
38572         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
38573         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
38574         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
38575         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
38576         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
38577         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
38578         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
38579         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
38580         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
38581         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
38582         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
38583         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
38584         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
38585         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
38586         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
38587         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
38588         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
38589         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
38590         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
38591         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
38592         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
38593         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
38594         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
38595         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
38596         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
38597         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
38598         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
38599         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
38600         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
38601         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
38602         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
38603         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
38604         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
38605         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
38606         lib.adb, lib.ads, live.adb, live.ads,
38607         machcode.ads, make.adb, make.ads, makeusg.adb,
38608         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
38609         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
38610         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
38611         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
38612         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
38613         mlib.ads, namet.adb, namet.ads, nlists.adb,
38614         nlists.ads, opt.adb, opt.ads, osint-b.adb,
38615         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
38616         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
38617         osint.ads, output.adb, output.ads, par-ch10.adb,
38618         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
38619         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
38620         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
38621         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
38622         par-tchk.adb, par-util.adb, par.adb, par.ads,
38623         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
38624         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
38625         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
38626         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
38627         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
38628         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
38629         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
38630         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
38631         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
38632         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
38633         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
38634         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
38635         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
38636         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
38637         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
38638         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
38639         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
38640         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
38641         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
38642         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
38643         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
38644         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
38645         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
38646         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
38647         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
38648         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
38649         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
38650         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
38651         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
38652         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
38653         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
38654         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
38655         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
38656         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
38657         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
38658         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
38659         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
38660         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
38661         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
38662         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
38663         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
38664         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
38665         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
38666         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
38667         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
38668         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
38669         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
38670         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
38671         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
38672         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
38673         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
38674         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
38675         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
38676         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
38677         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
38678         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
38679         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
38680         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
38681         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
38682         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
38683         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
38684         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
38685         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
38686         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
38687         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
38688         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
38689         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
38690         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
38691         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
38692         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
38693         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
38694         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
38695         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
38696         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
38697         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
38698         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
38699         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
38700         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
38701         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
38702         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
38703         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
38704         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
38705         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
38706         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
38707         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
38708         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
38709         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
38710         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
38711         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
38712         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
38713         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
38714         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
38715         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
38716         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
38717         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
38718         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
38719         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
38720         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
38721         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
38722         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
38723         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
38724         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
38725         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
38726         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
38727         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
38728         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
38729         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
38730         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
38731         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
38732         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
38733         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
38734         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
38735         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
38736         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
38737         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
38738         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
38739         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
38740         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
38741         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
38742         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
38743         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
38744         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
38745         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
38746         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
38747         snames.ads, sprint.adb, sprint.ads, stand.adb,
38748         stand.ads, stringt.adb, stringt.ads, style.adb,
38749         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
38750         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
38751         switch-m.ads, switch.adb, switch.ads, system.ads,
38752         table.adb, table.ads, targparm.adb, targparm.ads,
38753         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
38754         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
38755         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
38756         ttypef.ads, ttypes.ads, types.adb, types.ads,
38757         uintp.adb, uintp.ads, uname.adb, uname.ads,
38758         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
38759         usage.adb, usage.ads, validsw.adb, validsw.ads,
38760         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
38761         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
38762         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
38763         formatting and other trivial changes from ACT.
38764
38765 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
38766
38767         * gigi.h, utils2.c (build_constructor):
38768         Rename gnat_build_constructor. Use build_constructor.
38769         * decl.c (gnat_to_gnu_entity)
38770         * trans.c (tree_transform, pos_to_constructor, extract_values)
38771         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
38772         (unchecked_convert)
38773         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
38774         (fill_vms_descriptor):
38775         Update to match.
38776
38777 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
38778
38779         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
38780         * misc.c (gnat_tree_size): New function.
38781         (LANG_HOOKS_TREE_SIZE): Override.
38782
38783 2003-04-03  Jason Merrill  <jason@redhat.com>
38784
38785         * misc.c (gnat_adjust_rli): #if 0.
38786
38787 2003-03-31   Geert Bosch  <bosch@gnat.com>
38788
38789         PR ada/10020
38790         * link.c : Fix misspelled "const" keyword
38791
38792 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
38793
38794         PR c++/7086
38795         * utils2.c: Adjust calls to put_var_into_stack.
38796
38797 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
38798
38799         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
38800
38801 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
38802
38803         * misc.c (gnat_init): Update for new prototype.
38804
38805 2003-03-05  Olivier Hainque  <hainque@gnat.com>
38806
38807         ada/9961
38808         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
38809         warning, and fix return type for the IN_RTS && !SJLJ case.
38810
38811 2003-03-04  Tom Tromey  <tromey@redhat.com>
38812
38813         * Make-lang.in (ada.tags): New target.
38814
38815 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
38816
38817         ada/9911
38818         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
38819         wrapper, which name remains constant whatever underlying GCC
38820         scheme.
38821
38822         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
38823         the stable interface needed for a-except.
38824
38825 2003-03-02  Andreas Jaeger  <aj@suse.de>
38826
38827         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
38828         gnat_ug_wnt.texi: Regenerate.
38829
38830 2003-03-02  Laurent Guerby  <guerby@acm.org>
38831
38832         * Makefile.in (install-gnatlib): Match previous change there
38833         so it works.
38834
38835 2003-02-28  Andreas Schwab  <schwab@suse.de>
38836
38837         * Make-lang.in (install-gnatlib): Change to ada directory before
38838         running make instead of using ada/Makefile directly.
38839
38840 2003-02-18  Ben Elliston  <bje@redhat.com>
38841
38842         Part of PR ada/9406
38843         * gnat_ug.texi (Binder output file): Grammar fix.
38844
38845 2003-02-18  Ben Elliston  <bje@redhat.com>
38846
38847         PR other/7350
38848         * 5qtaprop.adb (Sleep): Fix typo in comment.
38849
38850 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
38851
38852         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
38853         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
38854         gnat_ug_wnt.texi: Regenerate.
38855
38856 2003-02-03  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
38857
38858         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
38859         be created if necessary.
38860         (ada.install-common): Let $(DESTDIR)$(bindir) be created
38861         if necessary.  Remove erroneous and redundant gnatchop
38862         installation commands.  Test for gnatdll before attempting
38863         to install it.
38864         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
38865         and gnatdll from all plausible locations.
38866
38867 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
38868
38869         * utils2.c (build_unary_op): Don't check flag_volatile.
38870         * gnat_ug.texi: Remove -fvolatile from example.
38871         * gnat_ug_vxw.texi: Likewise.
38872
38873 2003-01-29  Laurent Guerby  <guerby@acm.org>
38874
38875         PR ada/8344
38876         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
38877         * Makefile.in: match previous change.
38878         * Make-lang.in: match previous change.
38879
38880 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
38881
38882         * 5rosinte.ads: Add SIGXCPU.
38883         * 5rtpopsp.adb: New file.
38884         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
38885         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
38886         specific file 5rtpopsp.adb.
38887         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
38888         is likely needed for all newlib targets.
38889         * init.c: Add RTEMS specific version of __gnat_initialize().
38890
38891 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
38892
38893         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
38894
38895 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
38896
38897         * init.c (__gnat_error_handler): Make msg const.
38898
38899         * gmem.c (convert_addresses): Move declaration ...
38900         * adaint.h: ... here.
38901         * adaint.c (convert_addresses): Adapt addrs type to match
38902         prototype.
38903
38904         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
38905
38906 2003-01-24  Andreas Schwab  <schwab@suse.de>
38907
38908         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
38909         size_t to avoid warning.
38910
38911 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
38912
38913         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
38914
38915 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
38916
38917         * gnat_rm.texi: Remove RCS version number.
38918
38919         * ada-tree.h (union lang_tree_node): Add chain_next option.
38920
38921 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
38922
38923         * Make-lang.in (ada.install-info, ada.install-common,
38924         ada.uninstall): Prepend $(DESTDIR) to the destination
38925         directory in all (un)installation commands.
38926         * Makefile.in (install-gnatlib, install-rts): Ditto.
38927
38928 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
38929
38930         * gnat_rm.texi, gnat_ug.texi: Use @copying.
38931         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
38932         gnat_ug_wnt.texi: Regenerate.
38933
38934 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
38935
38936         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
38937         only.
38938         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
38939         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
38940         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
38941         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
38942         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
38943         $(srcdir)/doc/include/gcc-common.texi.
38944
38945 2002-12-15   Geert Bosch  <bosch@gnat.com>
38946
38947         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
38948
38949 2002-12-14   Geert Bosch  <bosch@gnat.com>
38950
38951         PR ada/5690
38952         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
38953         case of a body created for a Renaming_As_Body, on which
38954         conformance checks are not performed.
38955
38956 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
38957
38958         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
38959         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
38960         not already included.
38961         * Make-lang.in: Update dependencies.
38962
38963 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
38964         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
38965         solution to buffer overflow bug on GNU/Linux.
38966
38967 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
38968
38969         PR ada/5856
38970         PR ada/6919
38971         * bindgen.adb: Remove all references to Public_Version.
38972         * comperr.adb: Remove all references to Public_Version and
38973         GNATPRO_Version; correct bug reporting instructions.
38974         * comperr.ads: Change to match bug box.
38975         * gnatvsn.ads: Remove all references to Public version and
38976         GNATPRO version.
38977
38978 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
38979
38980         PR ada/6919
38981         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
38982         GNU/Linux.
38983
38984         PR ada/6558
38985         * config-lang.in: Remove diff_excludes.
38986
38987 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
38988
38989         PR ada/8358
38990         * trans.c (gnu_pending_elaboration_lists): New GC root.
38991         (build_unit_elab): Use..
38992
38993 2002-10-30   Geert Bosch  <bosch@gnat.com>
38994
38995         PR ada/6558
38996         * misc.c : Include optabs.h
38997
38998         * Make-lang.in (misc.o): Add dependency on optabs.h
38999
39000 2002-10-29   Geert Bosch  <bosch@gnat.com>
39001
39002         PR ada/6558
39003         * Make-lang.in (gnatbind): Depend on CONFIG_H
39004
39005 2002-10-29  Geert bosch  <bosch@gnat.com>
39006
39007         PR ada/6558
39008         * misc.c: Unrevert misc.c (1.13)
39009
39010 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
39011
39012         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
39013         maintainership comments.
39014
39015 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
39016
39017         PR ada/5904
39018         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
39019         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
39020         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
39021         7staprop.adb: Correct statements in comments about
39022         maintainership of GNAT.
39023
39024         PR ada/5904
39025         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
39026         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
39027         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
39028         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
39029         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
39030         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
39031         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
39032         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
39033         comments about maintainership of GNAT.
39034
39035         PR ada/6919 (forward port of patch for PR ada/5904)
39036         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
39037         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
39038         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
39039         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
39040         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
39041         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
39042         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
39043         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
39044         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
39045         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
39046         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
39047         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
39048         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
39049         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
39050         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
39051         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
39052         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
39053         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
39054         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
39055         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
39056         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
39057         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
39058         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
39059         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
39060         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
39061         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
39062         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
39063         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
39064         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
39065         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
39066         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
39067         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
39068         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
39069         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
39070         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
39071         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
39072         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
39073         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
39074         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
39075         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
39076         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
39077         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
39078         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
39079         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
39080         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
39081         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
39082         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
39083         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
39084         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
39085         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
39086         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
39087         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
39088         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
39089         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
39090         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
39091         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
39092         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
39093         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
39094         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
39095         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
39096         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
39097         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
39098         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
39099         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
39100         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
39101         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
39102         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
39103         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
39104         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
39105         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
39106         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
39107         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
39108         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
39109         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
39110         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
39111         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
39112         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
39113         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
39114         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
39115         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
39116         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
39117         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
39118         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
39119         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
39120         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
39121         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
39122         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
39123         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
39124         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
39125         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
39126         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
39127         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
39128         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
39129         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
39130         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
39131         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
39132         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
39133         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
39134         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
39135         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
39136         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
39137         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
39138         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
39139         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
39140         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
39141         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
39142         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
39143         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
39144         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
39145         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
39146         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
39147         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
39148         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
39149         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
39150         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
39151         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
39152         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
39153         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
39154         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
39155         par-endh.adb par-labl.adb par-load.adb par-prag.adb
39156         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
39157         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
39158         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
39159         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
39160         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
39161         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
39162         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
39163         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
39164         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
39165         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
39166         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
39167         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
39168         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
39169         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
39170         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
39171         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
39172         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
39173         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
39174         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
39175         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
39176         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
39177         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
39178         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
39179         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
39180         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
39181         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
39182         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
39183         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
39184         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
39185         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
39186         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
39187         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
39188         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
39189         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
39190         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
39191         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
39192         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
39193         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
39194         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
39195         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
39196         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
39197         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
39198         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
39199         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
39200         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
39201         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
39202         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
39203         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
39204         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
39205         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
39206         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
39207         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
39208         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
39209         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
39210         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
39211         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
39212         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
39213         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
39214         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
39215         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
39216         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
39217         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
39218         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
39219         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
39220         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
39221         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
39222         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
39223         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
39224         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
39225         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
39226         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
39227         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
39228         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
39229         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
39230         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
39231         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
39232         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
39233         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
39234         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
39235         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
39236         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
39237         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
39238         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
39239         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
39240         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
39241         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
39242         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
39243         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
39244         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
39245         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
39246         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
39247         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
39248         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
39249         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
39250         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
39251         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
39252         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
39253         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
39254         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
39255         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
39256         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
39257         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
39258         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
39259         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
39260         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
39261         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
39262         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
39263         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
39264         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
39265         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
39266         stringt.ads stringt.h style.adb style.ads stylesw.adb
39267         stylesw.ads switch.adb switch.ads sysdep.c system.ads
39268         table.adb table.ads targparm.adb targparm.ads targtyps.c
39269         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
39270         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
39271         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
39272         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
39273         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
39274         usage.ads utils.c utils2.c validsw.adb validsw.ads
39275         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
39276         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
39277         xtreeprs.adb: Correct statements in comments about maintainership
39278         of GNAT.
39279
39280 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
39281
39282         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
39283         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
39284         * gnatvsn.ads: Gnat_Version_String is now a function.
39285         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
39286         copy the C version_string into a String and return it.
39287         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
39288         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
39289         Remove pragma Ident (Gnat_Version_String).  If this was the
39290         sole use of package Gnatvsn, remove the with statement too.
39291         * gnat1drv.adb: Tweak -gnatv output.
39292
39293 2002-09-17  Richard Henderson  <rth@redhat.com>
39294
39295         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
39296         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
39297         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
39298         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
39299         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
39300         and real_2expN instead of a loop.
39301         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
39302         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
39303
39304 2002-08-25  Andre Leis  <a.leis@gmx.net>
39305             David Billinghurst  <David.Billinghurst@riotinto.com>
39306
39307         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
39308
39309 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
39310
39311         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
39312         Remove $(CONFIG_H) dependency.
39313
39314 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
39315
39316         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
39317
39318 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
39319
39320         * adadecode.c (ada_demangle): Use xstrdup in lieu of
39321         xmalloc/strcpy.
39322         * misc.c (gnat_decode_option): Likewise.
39323
39324 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
39325
39326         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
39327         function approach did not work well because of a side effect (the
39328         function call could reallocate the table which was being indexed
39329         using its result). Fixes ada/4851. [RESURRECTED]
39330
39331 2002-07-01  Roger Sayle  <roger@eyesopen.com>
39332
39333         * ada/utils.c (builtin_function): Accept an additional parameter.
39334
39335 2002-06-28  Andreas Jaeger  <aj@suse.de>
39336
39337         PR ada/7144
39338         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
39339         <adi@thur.de>.
39340
39341 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
39342
39343         * Makefile.in (SHELL): Set to @SHELL@.
39344
39345 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
39346
39347         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
39348         array size calculation.
39349
39350 2002-06-04  Andreas Jaeger  <aj@suse.de>
39351
39352         * Make-lang.in (gnatbind): Readd rule that has been lost in last
39353         patch.
39354
39355 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
39356
39357         Merge from pch-branch:
39358
39359         * config-lang.in (gtfiles): Add ada-tree.h.
39360         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
39361         (SET_TYPE_MODULUS): New.
39362         (SET_TYPE_INDEX): New.
39363         (SET_TYPE_DIGITS_VALUE): New.
39364         (SET_TYPE_RM_SIZE): New.
39365         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
39366         (SET_TYPE_ADA_SIZE): New.
39367         (SET_TYPE_ACTUAL_BOUNDS): New.
39368         (SET_DECL_CONST_CORRESPONDING_VAR): New.
39369         (SET_DECL_ORIGINAL_FIELD): New.
39370         (TREE_LOOP_ID): Correct typo.
39371         * decl.c: Use new macros.
39372         * utils.c: Include debug.h, use new macros.
39373         * utils2.c: Use new macros.
39374
39375         * ada-tree.h: Update all macros for new tree description.
39376         (struct tree_loop_id): New.
39377         (union lang_tree_node): New.
39378         (struct lang_decl): New.
39379         (struct lang_type): New.
39380         * misc.c (gnat_mark_tree): Delete.
39381         (LANG_HOOKS_MARK_TREE): Delete.
39382         * trans.c (tree_transform): No longer any need to cast
39383         for TREE_LOOP_ID.
39384
39385         * utils.c (struct language_function): New dummy structure.
39386
39387         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
39388         (misc.o): Likewise.
39389         (utils.o): Likewise; also gtype-ada.h.
39390         * Make-lang.in (gnat1): Add dependency on s-gtype.
39391         (gnatbind): Add dependency on $(CONFIG_H).
39392         * utils.c: Correct last #include.
39393         (stuct e_stack): Remove unnecessary 'static'.
39394         (mark_e_stack): Remove unused prototype.
39395
39396         * scn-nlit.adb: Remove whitespace after version number to
39397         keep lines under 80 chars.
39398         * snames.adb: Likewise.
39399         * treepr.ads: Likewise.
39400
39401         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
39402         (misc.o): Likewise.
39403         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
39404         * config-lang.in (gtfiles): New.
39405         * decl.c: Use gengtype for roots.
39406         * gigi.h: Use gengtype for roots.
39407         * trans.c: Use gengtype for roots.
39408         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
39409
39410 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
39411
39412         * misc.c (gnat_init): Adjust setting of internal_error_function.
39413
39414 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
39415
39416         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
39417         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
39418         gnat_ug_wnt.texi: Regenerate.
39419
39420 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
39421
39422         * 5ntaprop.adb (with System.OS_Primitives): Remove.
39423
39424         * cstreams.c (max_path_len): Move from here ...
39425         * adaint.c (__gnat_max_path_len): ... to here.
39426         * adaint.c (__gnat_max_path_len): Declare.
39427         * g-dirope.adb (Max_Path): Adjust.
39428         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
39429         * i-cstrea.ads (max_path_len): Adjust.
39430         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
39431         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
39432
39433         * Makefile.in, Make-lang.in: Documentation is now built in
39434         Make-lang.in.  Store Info and generated Texinfo files in the
39435         source directory.
39436         * gnat_ug.texi: Remove CVS keywords, correct version number.
39437         Set file name correctly.
39438
39439         * gnat_ug_*.texi: Add.
39440         * .cvsignore: Ignore generated Texinfo files.
39441
39442 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
39443
39444         * ada.h: Add MI guard macro.
39445         (SUBTYPE): Define constants with an anonymous enum, not static
39446         const variables.
39447         (IN): Cast constants to appropriate type before use.
39448
39449 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
39450
39451         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
39452         (experimental)".
39453
39454 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
39455
39456         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
39457         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
39458         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
39459         (ALL_ADA_CFLAGS): Likewise.
39460         (ADA_INCLUDES): Likewise.
39461         Adapt for new working dir.
39462         (GNATBIND): Use Makefile.in version.
39463         (.SUFFIXES): Copy from Makefile.in.
39464         (ada-warn): Define.
39465         (.adb.o, .ads.o): Copy from Makefile.in.
39466         Added $(OUTPUT_OPTION).
39467         (GNAT1_C_OBJS): Moved from Makefile.in.
39468         Prefix with ada subdir.
39469         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
39470         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
39471         Adapt for new working dir.
39472         (EXTRA_GNATBIND_OBJS): Likewise.
39473         (ADA_BACKEND): Moved from Makefile.in.
39474         Renamed to avoid conflict with global BACKEND.
39475         Use that one.
39476         (TARGET_ADA_SRCS): Moved from Makefile.in.
39477         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
39478         Use ADA_BACKEND.
39479         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
39480         (ada_extra_files): Moved from Makefile.in.
39481         Prefix with ada subdir.
39482         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
39483         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
39484         (ada/nmake.ads): Likewise.
39485         (update-sources): Moved from Makefile.in.
39486         Prefix with ada subdir.
39487         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
39488         (ADA_TREE_H): Likewise.
39489         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
39490         (ada/memtrack.o): Likewise.
39491         (ada/adadecode.o): Likewise.
39492         Update dependencies.
39493         (ada/adaint.o): New.
39494         (ada/argv.o): Moved from Makefile.in.
39495         Prefix with ada subdir.
39496         Update dependencies.
39497         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
39498         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
39499         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
39500         Prefix with ada subdir.
39501         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
39502         (GNAT DEPENDENCIES): Regenerate.
39503         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
39504         toplevel Makefile.in.
39505         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
39506         (TARGET_ADA_SRCS): Removed.
39507         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
39508         (GNATBIND_OBJS): Likewise.
39509         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
39510         (BACKEND): Removed.
39511         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
39512         (TREE_H): Likewise.
39513         (ada_extra_files): Likewise.
39514         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
39515         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
39516         (update-sources): Likewise.
39517         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
39518         (ADA_TREE_H): Likewise.
39519         (adadecoce.o): Likewise.
39520         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
39521         (GNAT DEPENDENCIES): Likewise.
39522
39523 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
39524
39525         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
39526         * Makefile.in: Likewise.
39527
39528 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
39529
39530         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
39531         Restore $(CONFIG_H) and prefix.o dependencies.
39532         (ada.stage[1-4]): Depend on stage?-start.
39533
39534         * Makefile.in (b_gnatb.c): Depend on interfac.o.
39535
39536 2002-05-02  Jim Wilson  <wilson@redhat.com>
39537
39538         * utils.c (finish_record_type): Change record_size to record_type.
39539
39540 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
39541
39542         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
39543         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
39544         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
39545
39546 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
39547
39548         * misc.c (gnat_parse_file): Update.
39549
39550 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
39551
39552         * misc.c (gnat_init): Don't set lang_attribute_common.
39553
39554 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
39555
39556         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
39557
39558 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
39559
39560         * gnat_ug.texi: New file.
39561
39562         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
39563         instead of gfdl.texi
39564
39565         * xgnatug.adb, ug_words: New files.
39566
39567         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
39568         gnat_rm and gnat-style manuals.
39569
39570 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
39571
39572         * gigi.h (incomplete_type_error): Remove.
39573         * utils.c (incomplete_type_error): Remove.
39574
39575 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
39576
39577         * trans.c (tree_transform): Add has_scope argument to
39578         expand_start_stmt_expr.
39579
39580 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
39581
39582         * gigi.h (truthvalue_conversion): Rename.
39583         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
39584         * trans.c (tree_transform): Update.
39585         * utils2.c (truthvalue_conversion): Rename, update.
39586         (build_binary_op, build_unary_op): Update.
39587
39588 2002-04-04  Laurent Guerby  <guerby@acm.org>
39589
39590         * make.adb: Implement -margs, remove restriction about file name placement.
39591         * makeusg.adb: Documentation update.
39592         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
39593         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
39594
39595 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
39596
39597         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
39598         (builtin_function): Similarly.
39599
39600 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
39601
39602         * decl.c (gnat_to_gnu_entity): Update.
39603         * gigi.h (mark_addressable): Rename.
39604         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
39605         * trans.c (tree_transform): Update.
39606         * utils.c (create_var_decl): Update.
39607         * util2.c (build_binary_op, build_unary_op,
39608         fill_vms_descriptor): Update.
39609         (mark_addressable): Rename, update.
39610
39611 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
39612
39613         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
39614         Rename.
39615         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
39616         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
39617         * trans.c (tree_transform, convert_with_check): Update.
39618         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
39619         Rename.
39620
39621 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
39622
39623         * gigi.h (finish_incomplete_decl): Rename.
39624         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
39625         * utils.c (gnat_init_decl_processing): Don't set hook.
39626         (finish_incomplete_decl): Rename.
39627
39628 2002-03-29  Andreas Schwab  <schwab@suse.de>
39629
39630         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
39631         directory.
39632
39633 2001-03-28  Robert Dewar  <dewar@gnat.com>
39634
39635         * checks.ads:
39636         (Remove_Checks): New procedure
39637
39638         * checks.adb:
39639         (Remove_Checks): New procedure
39640
39641         * exp_util.adb:
39642         Use new Duplicate_Subexpr functions
39643         (Duplicate_Subexpr_No_Checks): New procedure
39644         (Duplicate_Subexpr_No_Checks_Orig): New procedure
39645         (Duplicate_Subexpr): Restore original form (checks duplicated)
39646         (Duplicate_Subexpr): Call Remove_Checks
39647
39648         * exp_util.ads:
39649         (Duplicate_Subexpr_No_Checks): New procedure
39650         (Duplicate_Subexpr_No_Checks_Orig): New procedure
39651         Add 2002 to copyright notice
39652
39653         * sem_util.adb: Use new Duplicate_Subexpr functions
39654
39655         * sem_eval.adb:
39656         (Eval_Indexed_Component): This is the place to call
39657         Constant_Array_Ref and to replace the value. We simply merge
39658         the code of this function in here, since it is now no longer
39659         used elsewhere. This fixes the problem of the back end not
39660         realizing we were clever enough to see that this was
39661         constant.
39662         (Expr_Val): Remove call to Constant_Array_Ref
39663         (Expr_Rep_Val): Remove call to Constant_Array_Ref
39664         Minor reformatting
39665         (Constant_Array_Ref): Deal with string literals (patch
39666         suggested by Zack Weinberg on the gcc list)
39667
39668 2001-03-28  Ed Schonberg  <schonber@gnat.com>
39669
39670         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
39671         Duplicate_Subexpr_Move_Checks.
39672
39673         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
39674         Duplicate_Subexpr_Move_Checks.
39675
39676         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
39677         value of array exists before retrieving it (it may a private
39678         protected component in a function).
39679
39680 2002-03-28   Geert Bosch  <bosch@gnat.com>
39681
39682         * prj-pp.adb : New file.
39683
39684         * prj-pp.ads : New file.
39685
39686 2002-03-28  Andreas Jaeger  <aj@suse.de>
39687
39688         * Makefile.in (stamp-sdefault): Fix path for Makefile.
39689
39690 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
39691
39692         * misc.c (gnat_expand_expr): Move prototype.
39693
39694 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
39695
39696         * misc.c (insert_default_attributes): Remove.
39697
39698 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
39699
39700         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
39701         (gnat_init): Don't set hook.
39702         (gnat_expand_expr): Fix prototype.
39703
39704 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
39705
39706         * misc.c (ggc_p): Remove.
39707
39708 2002-03-27  Geert Bosch  <bosch@gnat.com>
39709
39710         * prj-makr.ads, prj-makr.adb : New files.
39711
39712 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
39713
39714         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
39715         (lang_mark_tree): Make static, rename.
39716
39717 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
39718
39719         * misc.c (maybe_build_cleanup): Remove.
39720
39721 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
39722
39723         * gigi.h (yyparse): Remove.
39724
39725 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
39726
39727         From Ben Brosgol  <brosgol@gnat.com>
39728         * gnat_rm.texi: Sync with ACT version.
39729
39730 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
39731
39732         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
39733         (gnat_init): Remove old hook.
39734
39735 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
39736
39737         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
39738         (yyparse): Rename gnat_parse_file.
39739
39740 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
39741
39742         Delete all lines containing "$Revision:".
39743         * xeinfo.adb: Don't look for revision numbers.
39744         * xnmake.adb: Likewise.
39745         * xsinfo.adb: Likewise.
39746         * xsnames.adb: Likewise.
39747         * xtreeprs.adb: Likewise.
39748
39749 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
39750
39751         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
39752         gnat_tree_code_name): Delete.
39753         (tree_code_type, tree_code_length, tree_code_name): Define.
39754         (gnat_init): Don't try to copy into the various tree_code
39755         arrays.
39756
39757 2002-03-11  Richard Henderson  <rth@redhat.com>
39758
39759         * Makefile.in (.NOTPARALLEL): Add fake tag.
39760
39761 2002-03-07  Geert Bosch  <bosch@gnat.com>
39762
39763         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
39764         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
39765         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
39766         switch-m.adb, switch-m.ads : New files.
39767
39768 2002-03-07  Geert Bosch  <bosch@gnat.com>
39769
39770         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
39771         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
39772         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
39773         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
39774         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
39775         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
39776         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
39777         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
39778         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
39779         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
39780         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
39781         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
39782         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
39783         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
39784         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
39785         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
39786         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
39787         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
39788         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
39789         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
39790         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
39791         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
39792         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
39793         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
39794         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
39795         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
39796         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
39797         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
39798         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
39799         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
39800         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
39801         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
39802         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
39803         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
39804         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
39805         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
39806         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
39807         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
39808         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
39809         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
39810         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
39811         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
39812         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
39813         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
39814         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
39815         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
39816         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
39817         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
39818         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
39819         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
39820         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
39821         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
39822         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
39823         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
39824         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
39825         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
39826         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
39827         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
39828         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
39829         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
39830         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
39831         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
39832         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
39833         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
39834         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
39835         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
39836         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
39837         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
39838         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
39839         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
39840         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
39841         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
39842         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
39843         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
39844         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
39845         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
39846         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
39847         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
39848         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
39849         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
39850         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
39851         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
39852         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
39853         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
39854         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
39855         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
39856         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
39857         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
39858         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
39859         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
39860         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
39861         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
39862         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
39863         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
39864         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
39865         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
39866         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
39867
39868         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
39869         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
39870         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
39871         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
39872
39873         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
39874         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
39875
39876         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
39877         to mdll-fil.ad[bs] and mdll-util.ad[bs]
39878
39879         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
39880         from mdllfile.ad[bs] and mdlltool.ad[bs]
39881
39882 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
39883
39884         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
39885         lieu of explicit sizeof/sizeof.
39886
39887 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
39888
39889         * misc.c (copy_lang_decl): Remove.
39890
39891 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
39892
39893         * misc.c: Delete traditional-mode-related code copied from the
39894         C front end but not used, or used only to permit the compiler
39895         to link.
39896
39897 2002-02-07  Richard Henderson  <rth@redhat.com>
39898
39899         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
39900         * adaint.h (__gnat_to_gm_time): Update prototype.
39901
39902 2002-01-30  Richard Henderson  <rth@redhat.com>
39903
39904         * trans.c (tree_transform) [N_Loop_Statement]: Use
39905         expand_exit_loop_top_cond.
39906
39907 2001-12-23  Richard Henderson  <rth@redhat.com>
39908
39909         * utils.c (end_subprog_body): Push GC context around
39910         rest_of_compilation for nested functions.
39911
39912 2001-12-23  Richard Henderson  <rth@redhat.com>
39913
39914         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
39915
39916 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
39917
39918         * gnat-style.texi (Declarations and Types): Remove ancient style
39919         rule which was mandated by code generation issues.
39920
39921         * gnat-style.texi (header): Add @dircategory, @direntry.
39922         (title page): Remove date.
39923         (general) Add @./@: where approriate, and two spaces after the
39924         full stop at the end of a sentence.  Use @samp markup when
39925         referring concrete lexical entities (keywords, attribute names
39926         etc.), and @syntax for ARM grammar elements. Use @r for English
39927         text in comments.  Use @emph for emphasis.  Change "if-statements"
39928         etc. to "if statements" (without @samp). Break long lines.  Make
39929         casing of section names consistent.
39930         (Identifiers): Use @samp markup for variable names.
39931         (Comments): Use @samp markup for comment characters. Line-end
39932         comments may follow any Ada code, not just statements.  Fix
39933         misspelling of "Integer" as "integer".
39934         (Loop statements): Do not use variable name "I", use "J".
39935         (Subprogram Declarations): Document alignment.
39936         (Subprogram Bodies, Block statements): Document empty line before
39937         "begin".
39938
39939 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
39940
39941         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
39942         function approach did not work well because of a side effect (the
39943         function call could reallocate the table which was being indexed
39944         using its result). Fixes ada/4851.
39945
39946 2001-12-19  Robert Dewar  <dewar@gnat.com>
39947
39948         * bindgen.adb: Minor reformatting
39949
39950         * cstand.adb: Minor reformatting
39951
39952         * fmap.adb: Minor reformatting
39953         Change name from Add for Add_To_File_Map (Add is much too generic)
39954         Change Path_Name_Of to Mapped_Path_Name
39955         Change File_Name_Of to Mapped_File_Name
39956         Fix copyright dates in header
39957
39958         * fmap.ads:
39959         Change name from Add for Add_To_File_Map (Add is much too generic)
39960         Change Path_Name_Of to Mapped_Path_Name
39961         Change File_Name_Of to Mapped_File_Name
39962         Fix copyright dates in header
39963
39964         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
39965         Add use clause for Fmap.
39966
39967         * make.adb: Minor reformatting
39968
39969         * osint.adb: Minor reformatting.  Change of names in Fmap.
39970         Add use clause for Fmap.
39971
39972         * prj-env.adb: Minor reformatting
39973
39974         * prj-env.ads: Minor reformatting
39975
39976         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
39977         error found (there were odd exceptions to this general rule in
39978         -gnatec/-gnatem processing)
39979
39980 2001-12-19  Olivier Hainque  <hainque@gnat.com>
39981
39982         * raise.c (__gnat_eh_personality): Exception handling personality
39983         routine for Ada.  Still in rough state, inspired from the C++ version
39984         and still containing a bunch of debugging artifacts.
39985         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
39986         inspired from the C++ library.
39987
39988         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
39989         exception handling integration.
39990
39991 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
39992
39993         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
39994         (HIE_SOURCES): Add s-secsta.ad{s,b}.
39995         (HIE_OBJS): Add s-fat*.o
39996         (RAVEN_SOURCES): Remove files that are no longer required. Add
39997         interrupt handling files.
39998         (RAVEN_MOD): Removed, no longer needed.
39999
40000 2001-12-19  Robert Dewar  <dewar@gnat.com>
40001
40002         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
40003         Add 2001 to copyright date
40004
40005         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
40006         need to force universal inlining for these cases.
40007
40008 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
40009
40010         * s-taprob.adb: Minor clean ups so that this unit can be used in
40011         Ravenscar HI.
40012
40013         * exp_ch7.adb: Allow use of secondary stack in HI mode.
40014         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
40015
40016 2001-12-19  Vincent Celier  <celier@gnat.com>
40017
40018         * prj-tree.ads (Project_Node_Record): Add comments for components
40019         Pkg_Id and Case_Insensitive.
40020
40021 2001-12-19  Pascal Obry  <obry@gnat.com>
40022
40023         * g-socket.adb: Minor reformatting. Found while reading code.
40024
40025 2001-12-19  Robert Dewar  <dewar@gnat.com>
40026
40027         * prj-tree.ads: Minor reformatting
40028
40029 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
40030
40031         * config-lang.in (diff_excludes): Remove.
40032
40033 2001-12-17  Ed Schonberg  <schonber@gnat.com>
40034
40035         * sem_res.adb (Resolve_Selected_Component): do not generate a
40036         discriminant check if the selected component is a component of
40037         the argument of an initialization procedure.
40038
40039         * trans.c (tree_transform, case of arithmetic operators): If result
40040         type is private, the gnu_type is the base type of the full view,
40041         given that the full view itself may be a subtype.
40042
40043 2001-12-17  Robert Dewar  <dewar@gnat.com>
40044
40045         * sem_res.adb: Minor reformatting
40046
40047         * trans.c (tree_transform, case N_Real_Literal): Add missing third
40048         parameter in call to Machine (unknown horrible effects from this
40049         omission).
40050
40051         * urealp.h: Add definition of Round_Even for call to Machine
40052         Add third parameter for Machine
40053
40054 2001-12-17  Ed Schonberg  <schonber@gnat.com>
40055
40056         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
40057         predefined units in No_Run_Time mode.
40058
40059 2001-12-17  Richard Kenner  <kenner@gnat.com>
40060
40061         * misc.c (insn-codes.h): Now include.
40062
40063 2001-12-17  Olivier Hainque  <hainque@gnat.com>
40064
40065         * a-except.adb: Preparation work for future integration of the GCC 3
40066         exception handling mechanism
40067         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
40068         to factorize previous code sequences and make them externally callable,
40069         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
40070         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
40071         Use the new notification routines.
40072
40073 2001-12-17  Emmanuel Briot  <briot@gnat.com>
40074
40075         * prj-tree.ads (First_Choice_Of): Document the when others case
40076
40077 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
40078
40079         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
40080         HI-E mode, in order to support Ravenscar profile properly.
40081
40082         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
40083         mode on 32 bits targets.
40084
40085 2001-12-17  Vincent Celier  <celier@gnat.com>
40086
40087         * fmap.adb: Initial version.
40088
40089         * fmap.ads: Initial version.
40090
40091         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
40092         If search is successfully done, add to mapping.
40093
40094         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
40095
40096         * make.adb:
40097         (Gnatmake): Add new local variable Mapping_File_Name.
40098          Create mapping file when using project file(s).
40099          Delete mapping file before exiting.
40100
40101         * opt.ads (Mapping_File_Name): New variable
40102
40103         * osint.adb (Find_File): Use path name found in mapping, if any.
40104
40105         * prj-env.adb (Create_Mapping_File): New procedure
40106
40107         * prj-env.ads (Create_Mapping_File): New procedure.
40108
40109         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
40110         (Mapping_File)
40111
40112         * usage.adb: Add entry for new switch -gnatem.
40113
40114         * Makefile.in: Add dependencies for fmap.o.
40115
40116 2001-12-17  Ed Schonberg  <schonber@gnat.com>
40117
40118         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
40119         is a package instantiation rewritten as a package body.
40120         (Install_Withed_Unit): Undo previous change, now redundant.
40121
40122 2001-12-17  Gary Dismuke  <dismukes@gnat.com>
40123
40124         * layout.adb:
40125         (Compute_Length): Move conversion to Unsigned to callers.
40126         (Get_Max_Size): Convert Len expression to Unsigned after calls to
40127         Compute_Length and Determine_Range.
40128         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
40129         Compute_Length and Determine_Range.
40130         Above changes fix problem with length computation for supernull arrays
40131         where Max (Len, 0) wasn't getting applied due to the Unsigned
40132         conversion used by Compute_Length.
40133
40134 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
40135
40136         * rtsfind.ads:
40137         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
40138          System.Secondary_Stack.
40139         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
40140          in HI-E mode.
40141         Remove unused entity RE_Exception_Data.
40142
40143         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
40144
40145         * rident.ads (No_Secondary_Stack): New restriction.
40146
40147 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
40148
40149         * gnat_rm.texi: Fix minor typos. Found while reading the section
40150         regarding "Bit_Order Clauses" that was sent to a customer.
40151         Very interesting documentation!
40152
40153 2001-12-17  Robert Dewar  <dewar@gnat.com>
40154
40155         * sem_case.adb (Choice_Image): Avoid creating improper character
40156         literal names by using the routine Set_Character_Literal_Name. This
40157         fixes bombs in certain error message cases.
40158
40159 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
40160
40161         * a-reatim.adb: Minor reformatting.
40162
40163 2001-12-17  Ed Schonberg  <schonber@gnat.com>
40164
40165         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
40166         case where the formal is an extension of another formal in the current
40167         unit or in a parent generic unit.
40168
40169 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
40170
40171         * s-tposen.adb: Update comments.  Minor reformatting.
40172         Minor code clean up.
40173
40174         * s-tarest.adb: Update comments.  Minor code reorganization.
40175
40176 2001-12-17  Gary Dismukes  <dismukes@gnat.com>
40177
40178         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
40179         when Java_VM.
40180
40181 2001-12-17  Robert Dewa  <dewar@gnat.com>
40182
40183         * exp_attr.adb: Minor reformatting
40184
40185 2001-12-17  Ed Schonberg  <schonber@gnat.com>
40186
40187         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
40188         derivations nested within a child unit: verify that the parent
40189         type is declared in an outer scope.
40190
40191 2001-12-17  Robert Dewar  <dewar@gnat.com>
40192
40193         * sem_ch12.adb: Minor reformatting
40194
40195 2001-12-17  Ed Schonberg  <schonber@gnat.com>
40196
40197         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
40198         warning if current unit is a predefined one, from which bodies may
40199         have been deleted.
40200
40201 2001-12-17  Robert Dewar  <dewar@gnat.com>
40202
40203         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
40204         Fix header format. Add 2001 to copyright date.
40205
40206         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
40207         which caused CE during compilation if checks were enabled.
40208
40209 2001-12-17  Vincent Celier  <celier@gnat.com>
40210
40211         * make.adb:
40212         (Switches_Of): New function
40213         (Test_If_Relative_Path): New procedure
40214         (Add_Switches): Use new function Switches_Of
40215         (Collect_Arguments_And_Compile): Use new function Switches_Of.
40216         When using a project file, test if there are any relative
40217         search path. Fail if there are any.
40218         (Gnatmake): Only add switches for the primary directory when not using
40219         a project file. When using a project file, change directory to the
40220         object directory of the main project file. When using a project file,
40221         test if there are any relative search path. Fail if there are any.
40222         When using a project file, fail if specified executable is relative
40223         path with directory information, and prepend executable, if not
40224         specified as an absolute path, with the exec directory.  Make sure
40225         that only one -o switch is transmitted to the linker.
40226
40227         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
40228
40229         * prj-nmsc.adb:
40230         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
40231         when using a non standard naming scheme.
40232         (Check_Ada_Naming_Scheme): Make sure that error messages
40233         do not raise exceptions.
40234         (Is_Illegal_Append): Return True if there is no dot in the suffix.
40235         (Language_Independent_Check): Check the exec directory.
40236
40237         * prj.adb (Project_Empty): Add new component Exec_Directory
40238
40239         * prj.ads:
40240         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
40241         (Project_Data): Add component Exec_Directory
40242
40243         * snames.adb: Updated to match snames.ads revision 1.215
40244
40245         * snames.ads: Added Exec_Dir
40246
40247 2001-12-17  Robert Dewar  <dewar@gnat.com>
40248
40249         * make.adb: Minor reformatting
40250
40251         * prj-nmsc.adb: Minor reformatting
40252
40253         * snames.adb: Updated to match snames.ads
40254
40255         * snames.ads: Alphebetize entries for project file
40256
40257 2001-12-17  Ed Schonberg  <schonber@gnat.com>
40258
40259         * trans.c (process_freeze_entity): Do nothing if the entity is a
40260         subprogram that was already elaborated.
40261
40262 2001-12-17  Richard Kenner  <kenner@gnat.com>
40263
40264         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
40265         and Esize if object is referenced via pointer.
40266
40267 2001-12-17  Ed Schonberg  <schonber@gnat.com>
40268
40269         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
40270         is discrete before analyzing choices.
40271
40272 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
40273
40274         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
40275         containing the name of the Ada Main Program. This string is mainly
40276         intended for the debugger.
40277         (Gen_Output_File_C): Do the equivalent change when generating a C file.
40278
40279 2001-12-17  Robert Dewar  <dewar@gnat.com>
40280
40281         * ali.adb: Set new Dummy_Entry field in dependency entry
40282
40283         * ali.ads: Add Dummy_Entry field to source dependency table
40284
40285         * bcheck.adb (Check_Consistency): Ignore dummy D lines
40286
40287         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
40288
40289         * lib-writ.ads: Document dummy D lines for missing files.
40290
40291         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
40292
40293 2001-12-17  Robert Dewar  <dewar@gnat.com>
40294
40295         * ali.adb: Type reference does not reset current file.
40296
40297         * ali.adb: Recognize and scan renaming reference
40298
40299         * ali.ads: Add spec for storing renaming references.
40300
40301         * lib-xref.ads: Add documentation for handling of renaming references
40302
40303         * lib-xref.adb: Implement output of renaming reference.
40304
40305         * checks.adb:
40306         (Determine_Range): Document local variables
40307         (Determine_Range): Make sure Hbound is initialized. It looks as though
40308          there could be a real problem here with an uninitialized reference
40309          to Hbound, but no actual example of failure has been found.
40310
40311 2001-12-17  Laurent Pautet  <pautet@gnat.com>
40312
40313         * g-socket.ads:
40314         Fix comment of Shutdown_Socket and Close_Socket. These functions
40315         should not fail silently because if they are called twice, this
40316         probably means that there is a race condition in the user program.
40317         Anyway, this behaviour is consistent with the rest of this unit.
40318         When an error occurs, an exception is raised with the error message
40319         as exception message.
40320
40321 2001-12-17  Robert Dewar  <dewar@gnat.com>
40322
40323         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
40324         that it happens before modification of Sloc values for -gnatD.
40325
40326         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
40327         so that it happens before modification of Sloc values for -gnatD.
40328
40329         * switch.adb: Minor reformatting
40330
40331 2001-12-15  Richard Henderson  <rth@redhat.com>
40332
40333         * sem_ch7.adb: Wrap comment.
40334
40335 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
40336
40337         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
40338         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
40339         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
40340         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
40341         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
40342         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
40343         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
40344         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
40345         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
40346         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
40347         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
40348         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
40349         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
40350         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
40351         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
40352         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
40353         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
40354         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
40355         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
40356         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
40357         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
40358         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
40359         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
40360         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
40361         spelling errors.
40362
40363 2001-12-14  Vincent Celier  <celier@gnat.com>
40364
40365         * osint.adb(Create_Debug_File): When an object file is specified,
40366         put the .dg file in the same directory as the object file.
40367
40368 2001-12-14  Robert Dewar  <dewar@gnat.com>
40369
40370         * osint.adb: Minor reformatting
40371
40372         * lib-xref.adb (Output_Instantiation): New procedure to generate
40373         instantiation references.
40374
40375         * lib-xref.ads: Add documentation of handling of generic references.
40376
40377         * ali.adb (Read_Instantiation_Ref): New procedure to read
40378         instantiation references
40379
40380         * ali.ads: Add spec for storing instantiation references
40381
40382         * bindusg.adb: Minor reformatting
40383
40384         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
40385
40386         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
40387
40388         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
40389
40390         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
40391
40392         * csets.ads:
40393         Fix header format
40394         Add 2001 to copyright date
40395         Add entry for Latin-5 (Cyrillic ISO-8859-5)
40396
40397 2001-12-14  Matt Gingell  <gingell@gnat.com>
40398
40399         * adaint.c: mktemp is a macro on Lynx and can not be used as an
40400         expression.
40401
40402 2001-12-14  Richard Kenner  <kenner@gnat.com>
40403
40404         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
40405         if operand is CONSTRUCTOR.
40406
40407 2001-12-14  Ed Schonberg  <schonber@gnat.com>
40408
40409         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
40410         before emiting check on right-hand side, so that exception information
40411         is correct.
40412
40413 2001-12-14  Richard Kenner  <kenner@gnat.com>
40414
40415         * utils.c (create_var_decl): Throw away initializing expression
40416         if just annotating types and non-constant.
40417
40418 2001-12-14  Vincent Celier  <celier@gnat.com>
40419
40420         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
40421         Default_Ada_...
40422
40423         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
40424         Remove functions.
40425         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
40426
40427         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
40428         Remove functions.
40429         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
40430
40431 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
40432
40433         * ChangeLog: Remove piece of diff output.
40434
40435 2001-12-14  Geert Bosch  <bosch@gnat.com>
40436
40437         * config-lang.in: Update copyright notice
40438
40439         * layout.adb: Remove commented out code.
40440
40441         * mdllfile.ads: Update copyright notice. Fix header format.
40442
40443         * sem_case.ads: Likewise.
40444
40445         * sem_ch3.adb: Minor reformatting.
40446
40447 2001-12-12  Geert Bosch  <bosch@gnat.com>
40448
40449         * freeze.ads: Update copyright date.
40450
40451         * g-comlin.ads: Minor reformatting.
40452
40453         * gnat-style.texi: Fix typo.
40454
40455 2001-12-12  Geert Bosch  <bosch@gnat.com>
40456
40457         *  einfo.h: Regenerate.
40458
40459 2001-12-12  Ed Schonberg  <schonber@gnat.com>
40460
40461         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
40462         on known node types, rather than untyped fields. Further cleanups.
40463
40464 2001-12-12  Robert Dewar  <dewar@gnat.com>
40465
40466         * sem_ch12.adb:
40467         (Save_Entity_Descendant): Minor comment update.
40468         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
40469          of an N_Attribute_Reference node. As per note below, this does not
40470         eliminate need for Associated_Node in attribute ref nodes.
40471         (Associated_Node): Documentation explicitly mentions attribute
40472         reference nodes, since this field is used in such nodes.
40473
40474         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
40475
40476 2001-12-12  Robert Dewar  <dewar@gnat.com>
40477
40478         * s-stalib.adb: Add more comments on with statements being needed
40479
40480         * par-ch12.adb: Minor reformatting
40481
40482         * prj-dect.ads: Fix copyright header
40483
40484         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
40485         inputs fit in 32 bits, but the result still overflows.
40486
40487         * s-fatgen.ads: Minor comment improvement
40488
40489 2001-12-12  Ed Schonberg  <schonber@gnat.com>
40490
40491         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
40492         formal derived type, look for an inherited component from the full
40493         view of the parent, if any.
40494
40495 2001-12-12  Robert Dewar  <dewar@gnat.com>
40496
40497         * checks.ads (Apply_Alignment_Check): New procedure.
40498
40499         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
40500         ensure that the alignment of objects with address clauses is
40501         appropriate, and raise PE if not.
40502
40503         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
40504         Exp_Pakd.Known_Aligned_Enough
40505
40506         * mdllfile.ads: Minor reformatting
40507
40508         * mlib-fil.ads: Minor reformatting
40509
40510 2001-12-12  Ed Schonberg  <schonber@gnat.com>
40511
40512         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
40513         fix to any component reference if enclosing record has non-standard
40514         representation.
40515
40516 2001-12-12  Vincent Celier  <celier@gnat.com>
40517
40518         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
40519         Iteration
40520
40521 2001-12-12  Ed Schonberg  <schonber@gnat.com>
40522
40523         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
40524         sem_attr.
40525
40526 2001-12-12  Robert Dewar  <dewar@gnat.com>
40527
40528         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
40529
40530 2001-12-12  Emmanuel Briot  <briot@gnat.com>
40531
40532         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
40533         and it adds dependencies to system.io.
40534
40535 2001-12-12  Pascal Obry  <obry@gnat.com>
40536
40537         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
40538         variable name.
40539
40540 2001-12-11  Ed Schonberg  <schonber@gnat.com>
40541
40542         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
40543         that is the parent of other generics, the instance body replaces the
40544         instance node.  Retrieve the instance of the spec, which is the one
40545         that is visible in clients and within the body.
40546
40547 2001-12-11  Vincent Celier  <celier@gnat.com>
40548
40549         * gnatmain.adb: Initial version.
40550
40551         * gnatmain.ads: Initial version.
40552
40553         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
40554
40555         * snames.adb: Updated to match snames.ads.
40556
40557         * snames.ads: Added Gnatstub.
40558
40559 2001-12-11  Vincent Celier  <celier@gnat.com>
40560
40561         * prj-attr.adb (Initialization_Data): Change name from
40562         Initialisation_Data.
40563
40564 2001-12-11  Emmanuel Briot  <briot@gnat.com>
40565
40566         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
40567         + and * applied to backslashed expressions like \r.
40568
40569 2001-12-11  Vasiliy Fofanov  <fofanov@gnat.com>
40570
40571         * g-os_lib.ads: String_List type added, Argument_List type is now
40572         subtype of String_List.
40573
40574 2001-12-11  Robert Dewar  <dewar@gnat.com>
40575
40576         * g-os_lib.ads: Change copyright to FSF
40577         Add comments for String_List type
40578
40579 2001-12-11  Vincent Celier  <celier@gnat.com>
40580
40581         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
40582         string to the buffer).
40583
40584 2001-12-11  Ed Schonberg  <schonber@gnat.com>
40585
40586         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
40587         sem_attr.
40588
40589         * sem_attr.adb: Simplify previous fix for Address.
40590         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
40591         to avoid anomalies where the bound of the type appears to raise
40592         constraint error.
40593
40594 2001-12-11  Robert Dewar  <dewar@gnat.com>
40595
40596         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
40597         handled.
40598
40599 2001-12-11  Ed Schonber   <schonber@gnat.com>
40600
40601         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
40602         renamed unit before checking for recursive instantiations.
40603
40604 2001-12-11  Emmanuel Briot  <briot@gnat.com>
40605
40606         * prj.ads: Add comments for some of the fields.
40607
40608 2001-12-11  Robert Dewar  <dewar@gnat.com>
40609
40610         * lib-xref.adb (Output_Refs): Don't output type references outside
40611         the main unit if they are not otherwise referenced.
40612
40613 2001-12-11  Ed Schonberg  <schonber@gnat.com>
40614
40615         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
40616         code and diagnose additional illegal uses
40617
40618         * sem_util.adb (Is_Object_Reference): An indexed component is an
40619         object only if the prefix is.
40620
40621 2001-12-11  Vincent Celier  <celier@gnat.com>
40622
40623         * g-diopit.adb: Initial version.
40624
40625         * g-diopit.ads: Initial version.
40626
40627         * g-dirope.adb:
40628         (Expand_Path): Avoid use of Unbounded_String
40629         (Find, Wildcard_Iterator): Moved to child package Iteration
40630
40631         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
40632
40633 2001-12-11  Robert Dewar  <dewar@gnat.com>
40634
40635         * sem_attr.adb: Minor reformatting
40636
40637 2001-12-11  Ed Schonberg  <schonber@gnat.com>
40638
40639         * sem_ch3.adb: Clarify some ???.
40640
40641 2001-12-11  Robert Dewar  <dewar@gnat.com>
40642
40643         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
40644         Exp_Pakd.Known_Aligned_Enough
40645
40646         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
40647         version is moved to Exp_Ch13.
40648
40649 2001-12-11  Robert Dewar  <dewar@gnat.com>
40650
40651         * einfo.ads: Minor reformatting
40652
40653         * exp_ch5.adb: Add comment for previous.change
40654
40655         * ali.adb: New interface for extended typeref stuff.
40656
40657         * ali.ads: New interface for typeref stuff.
40658
40659         * checks.adb (Apply_Alignment_Check): New procedure.
40660
40661         * debug.adb: Add -gnatdM for modified ALI output
40662
40663         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
40664
40665         * lib-xref.adb: Extend generation of <..> notation to cover
40666         subtype/object types. Note that this is a complete rewrite,
40667         getting rid of the very nasty quadratic algorithm previously
40668         used for derived type output.
40669
40670         * lib-xref.ads: Extend description of <..> notation to cover
40671         subtype/object types. Uses {..} for these other cases.
40672         Also use (..) for pointer types.
40673
40674         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
40675
40676         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
40677         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
40678
40679 2001-12-11  Vincent Celier  <celier@gnat.com>
40680
40681         * gnatcmd.adb:
40682         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
40683         Changed /BIND_ONLY to /ACTIONS=BIND
40684         Changed /LINK_ONLY to /ACTIONS=LINK
40685
40686 2001-12-11  Ed Schonberg  <schonber@gnat.com>
40687
40688         * sem_ch8.adb (Find_Selected_Component): improved search for a
40689         candidate package in case of error.
40690
40691         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
40692         chain back on scope stack before reinstalling use clauses.
40693
40694         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
40695         is enabled, do not kill the code for the condition, to preserve
40696         warning.
40697
40698 2001-12-11  Robert Dewar  <dewar@gnat.com>
40699
40700         * checks.adb (Insert_Valid_Check): Apply validity check to expression
40701         of conversion, not to result of conversion.
40702
40703 2001-12-11  Ed Schonberg  <schonber@gnat.com>
40704
40705         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
40706         before freezing parent. If the declarations are mutually recursive,
40707         an access to the current record type may be frozen before the
40708         derivation is complete.
40709
40710 2001-12-05  Vincent Celier  <celier@gnat.com>
40711
40712         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
40713         -c /COMPILE_ONLY, -l /LINK_ONLY
40714
40715         * opt.ads:
40716         (Bind_Only): New Flag
40717         (Link_Only): New flag
40718
40719         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
40720         and -l (Link_Only)
40721
40722         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
40723
40724         * make.adb:
40725         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
40726         (Gnatmake): Set the step flags. Only perform a step if the
40727         corresponding step flag is True.
40728         (Scan_Make_Arg): Reset the bind and link step flags when -u
40729         or -gnatc has been specified.
40730
40731 2001-12-05  Ed Schonberg  <schonber@gnat.com>
40732
40733         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
40734         get bounds from right operand.
40735
40736         * sem_eval.adb: Minor reformatting
40737
40738         * exp_util.adb (Make_Literal_Range): use bound of literal rather
40739         than Index'First, its lower bound may be different from 1.
40740
40741         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
40742         and C48009J
40743
40744 2001-12-05  Vincent Celier  <celier@gnat.com>
40745
40746         * prj-nmsc.adb Minor reformatting
40747
40748         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
40749         set and libraries are not supported.
40750
40751 2001-12-05  Ed Schonberg  <schonber@gnat.com>
40752
40753         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
40754         private view explicitly, so the back-end can treat as a global
40755         when appropriate.
40756
40757 2001-12-05  Ed Schonberg  <schonber@gnat.com>
40758
40759         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
40760          unit, always replace instance node with new body, for ASIS use.
40761
40762 2001-12-05  Vincent Celier  <celier@gnat.com>
40763
40764         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
40765         libraries are not supported and both attributes Library_Name and
40766         Library_Dir are specified.
40767
40768         * prj-proc.adb (Expression): Set location of Result to location of
40769         first term.
40770
40771         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
40772         (prj-nmsc is now importing MLib.Tgt)
40773
40774         * prj-proc.adb: Put the change indicated above that was forgotten.
40775
40776 2001-12-05  Robert Dewar  <dewar@gnat.com>
40777
40778         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
40779
40780 2001-12-05  Ed Schonberg  <schonber@gnat.com>
40781
40782         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
40783         constraint, introduce explicit subtype declaration and derive from it.
40784
40785         * sem_ch3.adb: Minor reformatting
40786
40787 2001-12-05  Robert Dewar  <dewar@gnat.com>
40788
40789         * checks.adb (Determine_Range): Increase cache size for checks.
40790         Minor reformatting
40791
40792         * exp_ch6.adb: Minor reformatting
40793         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
40794         a parameter whose root type is System.Address, since treating such
40795         subprograms as pure in the code generator is almost surely a mistake
40796         that will lead to unexpected results.
40797
40798         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
40799         change handling of conversions.
40800
40801         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
40802
40803 2001-12-05  Ed Schonberg  <schonber@gnat.com>
40804
40805         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
40806         aggregate with static wrong size, attach generated Raise node to
40807         declaration.
40808
40809 2001-12-05  Robert Dewar  <dewar@gnat.com>
40810
40811         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
40812         Fixes compilation abandoned bomb in B24009B.
40813
40814 2001-12-05  Ed Schonberg  <schonber@gnat.com>
40815
40816         * sem_ch12.adb:
40817         Document use of Associated_Node on Selected_Components.
40818         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
40819         to clarify use of untyped descendant fields.
40820
40821 2001-12-05  Robert Dewar  <dewar@gnat.com>
40822
40823         * prj-dect.ads: Add ??? comment
40824         Add 2001 to copyright notice (was not done in after all)
40825
40826         * prj-part.adb: Minor reformatting. Reword one awkward error message.
40827
40828         * prj.ads: Minor reformatting throughout, and add some ??? comments
40829
40830         * snames.ads: Minor reformatting
40831
40832 2001-12-05  Geert Bosch  <bosch@gnat.com>
40833
40834         * snames.adb: Autoupdate
40835
40836 2001-12-05  Vincent Celier  <celier@gnat.com>
40837
40838         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
40839
40840         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
40841
40842         * prj-env.adb: Minor comment changes (modifying -> extends).
40843
40844         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
40845
40846         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
40847         Tok_Extends.
40848
40849         * prj.adb (Initialize): Change Modifying to Extends.
40850
40851         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
40852
40853         * prj.ads: Minor comment change (Modifying -> extending).
40854
40855         * snames.ads: Change modifying to extends.
40856
40857 2001-12-05  Robert Dewar  <dewar@gnat.com>
40858
40859         * sem_warn.adb: Remove stuff for conditionals, we are not going to
40860         do this after all.
40861
40862         * sem_warn.ads: Remove stuff for conditionals, we are not going to
40863         do this after all.  Add 2001 to copyright notice
40864
40865 2001-12-04  Geert Bosch  <bosch@gnat.com>
40866
40867         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
40868
40869 2001-12-04  Robert Dewar  <dewar@gnat.com>
40870
40871         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
40872         location if we already have errors. Stops some cases of cascaded
40873         errors.
40874
40875         * errout.adb: Improve comment.
40876
40877 2001-12-04  Robert Dewar  <dewar@gnat.com>
40878
40879         * sem_ch12.adb:
40880         (Analyze_Formal_Type_Definition): Defend against Error.
40881         (Analyze_Formal_Subprogram): Defend against Error.
40882
40883         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
40884         remove following semicolon if present. Removes cascaded error.
40885
40886 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
40887
40888         * bindgen.adb:
40889         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
40890          exceptions equals 0.
40891         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
40892         Fixes PIWG E tests (which have to be run with -gnatL).
40893
40894 2001-12-04  Robert Dewar  <dewar@gnat.com>
40895
40896         * einfo.ads: Minor reformatting
40897
40898 2001-12-04  Ed Schonberg  <schonber@gnat.com>
40899
40900         * einfo.ads: Block_Node points to the identifier of the block, not to
40901         the block node itself, to preserve the link when the block is
40902         rewritten, e.g. within an if-statement with a static condition.
40903
40904         * inline.adb (Cleanup_Scopes): recover block statement from block
40905         entity using new meaning of Block_Node.
40906
40907         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
40908         identifier of block node, rather than to node itself.
40909
40910 2001-12-04  Gary Dismukes  <dismukes@gnat.com>
40911
40912         * layout.adb:
40913         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
40914         (Discrimify): Go back to setting the Etypes of the selected component
40915         because the Vname component does not exist at this point and will
40916         fail name resolution. Also set Analyzed.
40917         Remove with and use of Sem_Res.
40918
40919 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
40920
40921         * Makefile.in: (HIE_SOURCES): add s-fat*.
40922
40923 2001-12-04  Robert Dewar  <dewar@gnat.com>
40924
40925         * sem_attr.adb:
40926         (Compile_Time_Known_Attribute): New procedure.
40927         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
40928          proper range check.
40929
40930 2001-12-04  Ed Schonberg  <schonber@gnat.com>
40931
40932         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
40933         processing discriminants to diagnose illegal default values.
40934
40935 2001-12-04  Ed Schonberg  <schonber@gnat.com>
40936
40937         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
40938         access discriminant within a type extension that constrains its
40939         parent discriminants.
40940
40941 2001-12-04  Ed Schonberg  <schonber@gnat.com>
40942
40943         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
40944         is malformed, use instance of Any_Id to allow analysis to proceed.
40945
40946         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
40947         type definition is illegal.
40948         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
40949         misplaced.
40950
40951 2001-12-04  Ed Schonberg  <schonber@gnat.com>
40952
40953         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
40954         constants.
40955
40956 2001-12-04  Robert Dewar  <dewar@gnat.com>
40957
40958         * errout.adb: Minor reformatting
40959
40960 2001-12-04  Robert Dewar  <dewar@gnat.com>
40961
40962         * exp_util.adb: Minor reformatting from last change
40963
40964         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
40965         which is a rewriting of an expression, traverse the original
40966         expression to remove warnings that may have been posted on it.
40967
40968 2001-12-04  Ed Schonberg  <schonber@gnat.com>
40969
40970         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
40971         record that has other packed components.
40972
40973 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
40974
40975         * adaint.c: Minor cleanups.
40976
40977 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
40978
40979         * adaint.c: Do not use utime.h on vxworks.
40980
40981 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
40982
40983         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
40984         more confusion than it solves.
40985
40986 2001-12-04  Geert bosch  <bosch@gnat.com>
40987
40988         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
40989
40990 2001-12-04  Geert Bosch  <bosch@gnat.com>
40991
40992         * Makefile.in (update-sources): New target.
40993         For use by gcc_release script.
40994
40995 2001-12-04  Ed Schonberg  <schonber@gnat.com>
40996
40997         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
40998         a configuration pragma, it is now legal wherever a pragma can appear.
40999
41000 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
41001
41002         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
41003         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
41004         is now @CROSS@ -DIN_GCC; update comment.
41005
41006 2001-12-04  Robert Dewar  <dewar@gnat.com>
41007
41008         * einfo.adb (Has_Pragma_Pure_Function): New flag.
41009         Fix problem that stopped ceinfo from working
41010
41011         * einfo.ads (Has_Pragma_Pure_Function): New flag.
41012
41013         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
41014
41015 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
41016
41017         * gnatchop.adb:
41018         (File_Time_Stamp): New procedure.
41019         (Preserve_Mode): New boolean.
41020         (Write_Unit): Pass time stamp.
41021         Implement -p switch (preserve time stamps).
41022
41023         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
41024
41025         * gnatchop.adb: Do usage info for -p switch
41026
41027         * adaint.h (__gnat_set_file_time_name): New function
41028
41029         * adaint.c (__gnat_set_file_time_name): Implement
41030
41031         * adaint.h: Fix typo
41032
41033 2001-12-03  Robert Dewar  <dewar@gnat.com>
41034
41035         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
41036         have Associated_Node.
41037
41038 2001-12-03  Robert Dewar  <dewar@gnat.com>
41039
41040         * prj-proc.adb: Minor reformatting
41041
41042         * make.adb: Minor reformatting
41043
41044 2001-12-03  Geert Bosch  <bosch@gnat.com>
41045
41046         * make.adb: Minor reformatting.
41047
41048 2001-12-03 Robert Dewar  <dewar@gnat.com>
41049
41050         * sem_ch12.adb: Minor reformatting
41051
41052 2001-12-03  Ed Schonberg  <schonber@gnat.com>
41053
41054         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
41055         push Standard on the stack before analyzing the instance body,
41056         in order to have a clean visibility environment.
41057
41058         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
41059
41060 2001-12-03  Ed Schonberg  <schonber@gnat.com>
41061
41062         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
41063         instantiation of a body that contains an inlined body.
41064
41065 2001-12-03  Ed Schonberg  <schonber@gnat.com>
41066
41067         * sem_ch12.adb:
41068         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
41069         to prevent freezing within formal packages.
41070         (Freeze_Subprogram_Body): If body comes from another instance that
41071         appeared before its own body, place freeze node at end of current
41072         declarative part, to prevent a back-end crash.
41073         (Inline_Instance_Body): Handle properly a package instance within
41074         a subprogram instance that is a child unit.
41075
41076 2001-12-01  Graham Stott  <grahams@redhat.com>
41077
41078         * Makefile.in (misc.o): Add missing $(srcdir) prefix
41079         and add optabs.h dependency.
41080
41081         * misc.c: Include optabs.h
41082         (gnat_tree_code_type): Make static and const.
41083         (gnat_tree_code_length): Likewise.
41084         (gnat_tree_code_name): Likewise.
41085         (update_setjmp_buf): Obtain operands mode from insn_data.
41086
41087 2001-11-29  Richard Henderson  <rth@redhat.com>
41088
41089         * init.c: Remove obsolete dwarf2 frame.h section.
41090
41091 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
41092
41093         * Make-lang.in (ada.generated-manpages): New dummy target.
41094
41095 2001-11-29  Ed Schonberg  <schonber@gnat.com>
41096
41097         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
41098         into Command, an array conversion is illegal here. Uncovered by
41099         ACATS B460005.
41100
41101 2001-11-28  Geert Bosch  <bosch@gnat.com>
41102
41103         * init.c: Minor whitespace changes.
41104
41105 2001-11-28  Doug Rupp  <rupp@gnat.com>
41106
41107         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
41108         signal stack.
41109
41110 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
41111
41112         * misc.c (gnat_expand_constant): Move declaration above
41113         definition of lang_hooks.
41114         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
41115         (gnat_init): lang_expand_constant no longer exists.
41116
41117         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
41118         always have vprintf.
41119         (gnat_init): Always call set_internal_error_function.
41120
41121 2001-11-27  Andreas Jaeger  <aj@suse.de>
41122
41123         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
41124
41125 2001-11-27  Laurent Guerby  <guerby@acm.org>
41126
41127         * Makefile.in: Regenerate Ada dependencies.
41128
41129 2001-11-26  Richard Henderson  <rth@redhat.com>
41130
41131         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
41132         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
41133         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
41134
41135 2001-11-25  Laurent Guerby  <guerby@acm.org>
41136
41137         * sysdep.c (rts_get_*): Fix style.
41138
41139 2001-11-19  Laurent Guerby  <guerby@acm.org>
41140
41141         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
41142         since it is of no apparent use and cause warnings.
41143
41144 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
41145
41146         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
41147         static too.
41148         (gnat_init): Don't return NULL.
41149         (finish_parse): Remove.
41150
41151 2001-11-17  Laurent Guerby  <guerby@acm.org>
41152
41153         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
41154         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
41155         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
41156         * lang-spec.h: Add missing struct field to silence warnings.
41157         * sysdep.c (rts_get_*): Provide K&R prototype.
41158         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
41159         * traceback.c (Unlock_Task, Lock_Task): Likewise.
41160         * tracebak.c (__gnat_backtrace): Remove unused variable.
41161         * utils.c (end_subprog_body): Move to K&R style.
41162
41163 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
41164
41165         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
41166
41167 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
41168
41169         * misc.c (gnat_init): Change prototype.  Include the
41170         functionality of the old init_parse and init_decl_processing.
41171         (gnat_init_decl_processing): New prototype.
41172         (init_parse): Remove.
41173         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
41174
41175 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
41176
41177         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
41178         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
41179         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
41180         set_yydebug): Remove.
41181
41182 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
41183
41184         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
41185         (struct lang_hooks): Constify.
41186         (language_string, lang_identify): Remove.
41187         * utils.c (init_decl_processing): Update.
41188
41189 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
41190
41191         * misc.c: Include langhooks-def.h.
41192         * Makefile.in: Update.
41193
41194 2001-10-30  Robert Dewar  <dewar@gnat.com>
41195
41196         * style.adb:
41197         (Check_Identifier): Rewrite circuit to be compatible with use of letters
41198         in the upper half of ASCII.
41199         (Check_Identifier): Minor reformatting
41200
41201 2001-10-30  Geert Bosch  <bosch@gnat.com>
41202
41203         * (Associated_Node, Set_Associated_Node): Do not check for
41204         Freeze_Entity.
41205
41206 2001-10-30  Robert Dewar  <dewar@gnat.com>
41207
41208         * a-reatim.ads: Minor reformatting
41209
41210 2001-10-30  Robert Dewar  <dewar@gnat.com>
41211
41212         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
41213         undocumented declarations.
41214
41215 2001-10-30  Pascal Obry  <obry@gnat.com>
41216
41217         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
41218         to the binder and linker.
41219         Minor style fix.
41220
41221         * mdll.ads: Fix layout.  Update copyright notice.
41222
41223         * mdll.adb: Fix layout.  Update copyright notice.
41224
41225 2001-10-30  Robert Dewar  <dewar@gnat.com>
41226
41227         * usage.adb: Minor fix to output for -gnaty.
41228
41229 2001-10-30  Ed Schonberg  <schonber@gnat.com>
41230
41231         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
41232         to accommodate all its possible values.
41233
41234         * a-reatim.adb (Split): Special-case handling of Time_Span_First
41235         and of small absolute values of T.
41236
41237 2001-10-30  Richard Kenner  <kenner@gnat.com>
41238
41239         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
41240         set_mem_attributes since not needed and wrong if RESULT if a REG;
41241         fixes ACATS failures.
41242
41243 2001-10-30  Geert Bosch  <bosch@gnat.com>
41244
41245         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
41246         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
41247
41248 2001-10-30  Robert Dewar  <dewar@gnat.com>
41249
41250         * bindusg.adb: Undocument -f switch.
41251
41252         * gnatcmd.adb: Remove /FULL_ELABORATION.
41253
41254         * opt.ads (Force_RM_Elaboration_Order): Document that this is
41255         obsolescent.
41256
41257         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
41258
41259         * gnatbind.adb: Minor update of warning msg.
41260
41261 2001-10-30  Vincent Celier  <celier@gnat.com>
41262
41263         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
41264         for project file switches (-P (/PROJECT_FILE=),
41265          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
41266         or MEDIUM or HIGH)
41267
41268 2001-10-30  Geert Bosch  <bosch@gnat.com>
41269
41270         * decl.c: Minor whitespace fixes.
41271
41272 2001-10-30  Richard Kenner  <kenner@gnat.com>
41273
41274         * utils2.c (build_allocator): Test for SIZE overflow in array case too
41275
41276 2001-10-30  Geert Bosch  <bosch@gnat.com>
41277
41278         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
41279         Found due to GCC 3.0 warning of using uninitialized value.
41280
41281         * layout.adb:
41282         (Get_Max_Size): Use variant record for tracking value/expression.
41283          Makes logic clearer and prevents warnings for uninitialized variables.
41284         (Layout_Array_Type): Use variant record for tracking value/expression.
41285          Makes logic clearer and prevents warnings for uninitialized variables.
41286
41287 2001-10-30  Robert Dewar  <dewar@gnat.com>
41288
41289         * lib.adb: Minor reformatting
41290
41291         * s-taprop.ads: Minor reformatting
41292
41293 2001-10-29  Laurent Guerby  <guerby@acm.org>
41294
41295         * init.c:
41296         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
41297         const.
41298         (_gnat_error_handler): Make MSG const.
41299
41300 2001-10-29  Richard Kenner  <kenner@gnat.com>
41301
41302         * sysdep.c: Fix localtime_r problem on LynxOS.
41303         Also remove #elif to avoid warnings.
41304
41305         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
41306         used by this.
41307
41308         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
41309
41310 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
41311
41312         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
41313         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
41314         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
41315         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
41316         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
41317         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
41318         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
41319         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
41320         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
41321         types.ads, urealp.adb: Fix spelling errors.
41322
41323 2001-10-27  Laurent Guerby  <guerby@acm.org>
41324
41325         * trans.c (gigi): Fix non determinism leading to bootstrap
41326         comparison failures for debugging information.
41327
41328 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
41329
41330         * gnat_rm.texi: Use @./@: where appropriate.
41331
41332 2001-10-26  Robert Dewar  <dewar@gnat.com>
41333
41334         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
41335
41336 2001-10-26  Richard Kenner  <kenner@gnat.com>
41337
41338         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
41339
41340 2001-10-26  Richard Kenner  <kenner@gnat.com>
41341
41342         * decl.c (validate_size): Modify message for bad size to avoid
41343         implication that compiler is modifying the size.
41344
41345 2001-10-26  Robert Dewar  <dewar@gnat.com>
41346
41347         * prj-util.adb: Minor reformatting. Fix bad header format.
41348
41349 2001-10-26  Robert Dewar  <dewar@gnat.com>
41350
41351         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
41352
41353         * sinfo.ads: Clarify use of Associated_Node (documentation only).
41354
41355         * sem_ch12.adb: Change Node4 to Associated_Node. Change
41356         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
41357         much more narrowly in places where needed. These are cleanups.
41358
41359 2001-10-26  Joel Brobecker  <brobecke@gnat.com>
41360
41361         * 5zosinte.ads (null_pthread): new constant.
41362
41363         * 5ztaprop.adb:
41364         (Initialize_TCB): Initialize thread ID to null, to be able to verify
41365          later that this field has been set.
41366         (Finalize_TCB): ditto.
41367         (Suspend_Task): Verify that the thread ID is not null before using it.
41368         (Resume_Task): ditto.
41369
41370         * s-tasdeb.adb:
41371         (Resume_All_Tasks): Lock the tasks list before using it.
41372         (Suspend_All_Tasks): ditto.
41373
41374 2001-10-26  Richard Kenner  <kenner@gnat.com>
41375
41376         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
41377         Make constant variant of designated type for Is_Access_Constant.
41378         Call update_pointer_to with main variant.
41379
41380         * trans.c (process_freeze_entity, process_type):
41381         Call update_pointer_to on main variant.
41382
41383         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
41384         If main variant, update all other variants.
41385
41386         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
41387         TREE_STATIC.
41388
41389 2001-10-26  Robert Dewar  <dewar@gnat.com>
41390
41391         * prj-util.adb: Minor reformatting
41392
41393 2001-10-26  Robert Dewar  <dewar@gnat.com>
41394
41395         * prj-util.adb: Minor reformatting
41396
41397 2001-10-26  Robert Dewar  <dewar@gnat.com>
41398
41399         * prj-attr.adb: Minor reformatting throughout
41400
41401 2001-10-26  Robert Dewar  <dewar@gnat.com>
41402
41403         * prj-attr.ads: Minor reformatting
41404         Add ??? comment (this whole spec has almost no comments)
41405
41406 2001-10-26  Vincent Celier  <celier@gnat.com>
41407
41408         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
41409         ("//") that precede the drive letter on Interix.
41410
41411 2001-10-26  Geert Bosch  <bosch@gnat.com>
41412
41413         * gnat_rm.texi: Add GNAT Reference Manual.
41414
41415 2001-10-25  Robert Dewar  <dewar@gnat.com>
41416
41417         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
41418         is Error. Similar change for other renaming cases.
41419
41420 2001-10-25  Robert Dewar  <dewar@gnat.com>
41421
41422         * s-atacco.ads: Add pragma Inline_Always for functions.
41423         Fix header format. Add copyright 2001
41424
41425 2001-10-25  Ed Schonberg  <schonber@gnat.com>
41426
41427         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
41428         return Error rather than Empty so that analysis can proceed.
41429
41430 2001-10-25  Ed Schonberg  <schonber@gnat.com>
41431
41432         * sem_util.adb (Enter_Name): better handling of cascaded error
41433         messages when a unit appears in its own context.
41434
41435 2001-10-25  Ed Schonberg  <schonber@gnat.com>
41436
41437         * sem_util.adb (Defining_Entity): in case of error, attach created
41438         entity to specification, so that semantic analysis can proceed.
41439
41440 2001-10-25  Robert Dewar  <dewar@gnat.com>
41441
41442         * sem_util.adb
41443         (Defining_Entity): Deal with Error.
41444         (Process_End_Label): Deal with bad end label for.
41445
41446 2001-10-25  Ed Schonberg  <schonber@gnat.com>
41447
41448         * sem_elab.adb (Check_A_Call): refine message when call is in an
41449         instance but callee is not declared in the generic unit.
41450
41451 2001-10-25  Ed Schonberg  <schonber@gnat.com>
41452
41453         * sem_elab.adb (Check_A_Call): check for renaming before finding the
41454         enclosing unit, which may already be different from the calling unit.
41455
41456 2001-10-25  Geert Bosch  <bosch@gnat.com>
41457
41458         * 4gintnam.ads: fix header format.
41459
41460 2001-10-25  Ed Schonberg  <schonber@gnat.com>
41461
41462         * sem_res.adb (Resolve_Call): if the call is actually an indexing
41463         operation on the result of a parameterless call, perform elaboration
41464         check after the node has been properly rewritten.
41465
41466         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
41467         inlined within the generic tree, the defining identifier is not a
41468         compilation_unit.
41469
41470 2001-10-25  Ed Schonberg  <schonber@gnat.com>
41471
41472         * sem_res.adb (Resolve): special-case resolution of Null in an
41473          instance or an inlined body to avoid view conflicts.
41474
41475         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
41476          compatibility by retrieving the access type of the generic copy.
41477
41478 2001-10-25  Robert Dewar  <dewar@gnat.com>
41479
41480         * sem_ch3.adb:
41481         (Analyze_Number_Declaration): Handle error expression.
41482         (Signed_Integer_Type_Declaration): Handle error bound.
41483         (Analyze_Subtype_Indication): Handle error range.
41484
41485         * sem_util.adb (Get_Index_Bounds): Check for Error.
41486
41487 2001-10-25  Robert Dewar  <dewar@gnat.com>
41488
41489         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
41490         in no run time mode.
41491
41492 2001-10-25  Pascal Obry  <obry@gnat.com>
41493
41494         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
41495         mode case for ALLOC case.
41496
41497         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
41498         all platforms. Improvement of last change.
41499
41500 2001-10-25  Robert Dewar  <dewar@gnat.com>
41501
41502         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
41503
41504 2001-10-25  Geert Bosch  <bosch@gnat.com>
41505
41506         * osint.adb (Is_Relative): Remove duplicate.
41507
41508 2001-10-25  Pascal Obry  <obry@gnat.com>
41509
41510         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
41511         pathnames in UNIX and DOS style with drive letter.
41512         (Is_Relative): new routine.
41513
41514         * osint.adb: Minor reformatting
41515
41516         * osint.adb (Is_Relative): implementation using
41517         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
41518
41519 2001-10-25  Pascal Obry  <obry@gnat.com>
41520
41521         * g-dirope.adb (Basename): correctly compute offset between the
41522         original Path and the translated one.
41523
41524         * g-dirope.adb: (Base_Name): add some comments.
41525
41526 2001-10-25  Robert Dewar  <dewar@gnat.com>
41527
41528         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
41529         in HIE mode, avoids compilation abandoned message
41530
41531         * exp_imgv.adb: Correct typo in previous change
41532
41533         * exp_imgv.adb: Correct typo in previous change (not my day!)
41534
41535 2001-10-25  Robert Dewar  <dewar@gnat.com>
41536
41537         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
41538
41539 2001-10-25  Pascal Obry  <obry@gnat.com>
41540
41541         * g-awk.ads: Move all pragma inlines next to the routine
41542          declarations. This is more uniform with other GNAT spec.
41543
41544 2001-10-22  Geert Bosch  <bosch@gnat.com>
41545
41546         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
41547
41548 2001-10-19  Geert Bosch  <bosch@gnat.com>
41549
41550         * Makefile.in (tools, gnattools): Remove gnatmem.
41551
41552 2001-10-17  Richard Henderson  <rth@redhat.com>
41553
41554         * Makefile.in (misc.o): Depend on langhooks.h.
41555         * misc.c: Include it.
41556         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
41557         (LANG_HOOKS_DECODE_OPTION): New.
41558         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
41559
41560 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
41561
41562         * trans.c (tree_transform): Adjust to recent change in
41563         expand_asm_operands to implement named asm operands.
41564
41565 2001-10-11  Ed Schonberg  <schonber@gnat.com>
41566
41567         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
41568         renaming of discriminant for mutable record type.
41569
41570 2001-10-11  Robert Dewar  <dewar@gnat.com>
41571
41572         * validsw.adb: Properly save -gnatVn status.
41573
41574 2001-10-11  Robert Dewar  <dewar@gnat.com>
41575
41576         * usage.adb: Add lines for V switch.
41577
41578         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
41579         (/VALIDITY_CHECKING).
41580
41581 2001-10-11  Ed Schonberg  <schonber@gnat.com>
41582
41583         * sem_type.adb (Add_One_Interp): an operator for a type declared in
41584         an extension of System is known to be visible.
41585
41586 2001-10-11  Ed Schonberg  <schonber@gnat.com>
41587
41588         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
41589         properly. Fixes regression on ACATS C34005G.
41590
41591 2001-10-11  Robert Dewar  <dewar@gnat.com>
41592
41593         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
41594         loop in generic instance, since this is likely not very useful.
41595
41596 2001-10-11  Robert Dewar  <dewar@gnat.com>
41597
41598         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
41599         the error message for high integrity mode.
41600
41601         * rtsfind.adb (RTE): Give message if we try to find an entity that
41602         is not available in high integrity mode.
41603
41604         * rtsfind.ads:
41605         (OK_To_Use_In_HIE_Mode): New array.
41606         (RTE): May return Empty in high integrity mode.
41607
41608         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
41609         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
41610
41611         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
41612         unit if not inlined always and in no runtime mode. Fixes problem
41613         caused by new Rtsfind changes.
41614
41615         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
41616         body is deleted.
41617
41618         * rtsfind.adb (RTE): Make sure we do not try to load unit after
41619         giving message for entity not available in high integrity mode.
41620
41621 2001-10-11  Pascal Obry  <obry@gnat.com>
41622
41623         * impunit.adb: Add GNAT.CRC32.
41624
41625 2001-10-11  Ed Schonberg  <schonber@gnat.com>
41626
41627         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
41628         properly the case where one universal operand in a non-static
41629         exponentiation of a real literal.
41630
41631 2001-10-11  Ed Schonberg  <schonber@gnat.com>
41632
41633         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
41634         clause, return the gobal finalization list, for lack of anthing else.
41635
41636 2001-10-11  Ed Schonberg  <schonber@gnat.com>
41637
41638         * exp_ch7.adb (Make_Transient_Block): if statement is within
41639         exception handler, always use new transient scope to place Clean
41640         procedure.
41641
41642 2001-10-11  Pascal Obry  <obry@gnat.com>
41643
41644         * Makefile.in:
41645         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
41646         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
41647         (GNATLS_RTL_OBJS): add g-crc32.o
41648         (GNATMAKE_RTL_OBJS): add g-crc32.o
41649
41650         * ali-util.adb:
41651         (CRC_Match): new function.
41652         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
41653         instead of the previous simple checksum algorithm.
41654         (Time_Stamp_Mismatch): use CRC_Match for comparison.
41655         (Set_Source_Table): idem.
41656
41657         * ali-util.ads:
41658         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
41659         instead of simple checksum.
41660         (CRC_Match): new function.
41661         (CRC_Error): new constant.
41662
41663         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
41664         a CRC now and not a simple checksum. A CRC uses lower-case hex
41665         letters, fixes ambiguity in parsing.
41666
41667         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
41668         is what this variable will store.
41669
41670         * bcheck.adb: Change reference to chechsum in comments by CRC.
41671         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
41672         rename All_Checksum_Match to All_CRC_Match. Change due to API
41673         renaming since now GNAT does not use a simple checksum but a
41674         CRC using GNAT.CRC32.
41675
41676         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
41677         now and not anymore a simple checksum.
41678
41679         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
41680         places.
41681
41682         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
41683
41684         * scans.adb:
41685         (Restore_Scan_State): rename Checksum to CRC.
41686         (Save_Scan_State): idem.
41687
41688         * scans.ads:
41689         With GNAT.CRC32.
41690         (Checksum): rename to CRC.
41691         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
41692
41693         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
41694         GNAT.CRC32).  Update copyright notice.
41695
41696         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
41697         GNAT.CRC32).  Update copyright notice.
41698
41699         * scn.adb:
41700         (Accumulate_Checksum): removed.
41701         (Update): new procedure. Add a wide-character into the CRC.
41702
41703         * sinput-l.adb:
41704         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
41705         (Load_File): fix initialization of S (change Source_Checksum to
41706         Source_CRC)
41707
41708         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
41709         Source_CRC in S initialization.
41710
41711         * sinput.adb (Source_Checksum): renamed to Source_CRC.
41712
41713         * sinput.ads (Source_Checksum): renamed to Source_CRC.
41714         Update comments for the CRC.
41715
41716         * types.adb (Hex): Use lowercase for the letter part.
41717
41718         * types.ads (Get_Hex_String): Returns the hexadecimal representation
41719         for a word. This is currently used only for CRC. In previous version,
41720         the checksum was using a representation with all letter being
41721         upper-case. With the new implementation (using CRC) we do not remove
41722         the 32th bit of the CRC, so we can have an upper-case starting letter
41723         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
41724         It is ambigous since the CRC was optional and could be followed by
41725         options like EB, EE. So now this routines uses lower-case letter for
41726         the hexadecimal representation. Strange enough only lower case letters
41727         where checked in Scan_ALI (even if this was not a possible case).
41728
41729         * gnatvsn.ads (Library_Version): changed to 3.15a.
41730
41731         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
41732         for the compiler.
41733
41734         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
41735         for the compiler.
41736
41737         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
41738         Add 2001 to copyright notice
41739         (Accumulate_Checksum): Modify to use System.CRC32.
41740
41741         * ali-util.ads: Redo changes of previous revision to continue to use
41742         the word Checksum. Add 2001 to copyright notice.
41743
41744         * ali.adb: Undo some of previous changes, not needed.
41745         Keep the change for lower case letters in the checksum.
41746
41747         * ali.ads: Undo previous change not needed.
41748
41749         * bcheck.adb: Undo most of previous change, not needed.
41750         But do use Checksums_Match for checksum comparison.
41751
41752         * gnatls.adb: Undo most of previous change, not needed.
41753         But do use Checksums_Match for comparing checksums.
41754
41755         * lib-load.adb: Undo previous change, not needed.
41756
41757         * lib-writ.adb: Undo previous change, not needed.
41758
41759         * lib-writ.ads: Document that checksums use lower case,
41760         not upper case letters.
41761
41762         * scans.adb: Undo previous change, not needed
41763
41764         * scans.ads: Undo previous change, not needed.
41765
41766         * scn-nlit.adb: Undo previous changes, not needed.
41767
41768         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
41769
41770         * scn.adb:
41771         (Accumulate_Checksum): Use System.CRC32.
41772         (Initialize_Checksum): New procedure.
41773         Remove other changes of previous revision.
41774
41775         * sinput-p.adb: Undo previous change, not needed.
41776
41777         * sinput.adb: Undo previous change, not needed.
41778
41779         * sinput-l.adb: Undo previous change, not needed.
41780
41781         * sinput.ads: Undo previous change, not needed.  Keep only comment
41782         on new checksum algorithm
41783
41784         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
41785         Also remove a-tags and a-stream from GNAT sources.
41786
41787         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
41788
41789         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
41790
41791 2001-10-11  Geert Bosch  <bosch@gnat.com>
41792
41793         * einfo.h: Regenerate.
41794
41795         * nmake.ads: Regenerate.
41796
41797         * nmake.adb: Regenerate.
41798
41799         * sinfo.h: Regenerate.
41800
41801         * treeprs.adb: Regenerate.
41802
41803 2001-10-10  Geert Bosch  <bosch@gnat.com>
41804
41805         * gnat-style.texi: New file describing coding guidelines for Ada.
41806
41807 2001-10-10  Ed Schonberg  <schonber@gnat.com>
41808
41809         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
41810         is Flag174.
41811
41812 2001-10-10  Geert Bosch  <bosch@gnat.com>
41813
41814         * snames.ads: Add new names for project facility.
41815
41816         * snames.adb: Update to reflect snames.ads changes.
41817
41818         * snames.h: Update to reflect snames.ads changes.
41819
41820 2001-10-10  Vincent Celier  <celier@gnat.com>
41821
41822         * make.adb:
41823         (Add_Switches): reflect the changes for the switches attributes
41824         Default_Switches indexed by the programming language,
41825         Switches indexed by the file name.
41826         (Collect_Arguments_And_Compile): Idem.
41827         Reflect the attribute name changes.
41828
41829         * prj-attr.adb:
41830         (Initialisation_Data): Change the names of some packages and
41831         attributes.
41832         (Initialize): process case insensitive associative arrays.
41833
41834         * prj-attr.ads:
41835         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
41836
41837         * prj-dect.adb:
41838         (Parse_Attribute_Declaration): For case insensitive associative
41839          arrays, set the index string to lower case.
41840
41841         * prj-env.adb:
41842         Reflect the changes of the project attributes.
41843
41844         * prj-nmsc.adb:
41845         Replace Check_Naming_Scheme by Ada_Check and
41846         Language_Independent_Check.
41847
41848         * prj-nmsc.ads:
41849         Replaced Check_Naming_Scheme by 2 procedures:
41850         Ada_Check and Language_Independent_Check.
41851
41852         * prj-proc.adb:
41853         (Process_Declarative_Items): For case-insensitive associative
41854         arrays, set the index string to lower case.
41855         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
41856         Prj.Nmsc.Check_Naming_Scheme.
41857
41858         * prj-tree.adb:
41859         (Case_Insensitive): New function
41860         (Set_Case_Insensitive): New procedure
41861
41862         * prj-tree.ads:
41863         (Case_Insensitive): New function
41864         (Set_Case_Insensitive): New procedure
41865         (Project_Node_Record): New flag Case_Insensitive.
41866
41867         * prj-util.adb:
41868         (Value_Of): new function to get the string value of a single
41869         string variable or attribute.
41870
41871         * prj-util.ads:
41872         (Value_Of): new function to get the string value of a single
41873         string variable or attribute.
41874
41875         * prj.adb:
41876         (Ada_Default_Spec_Suffix): New function
41877         (Ada_Default_Impl_Suffix): New function
41878         Change definitions of several constants to reflect
41879         new components of record types.
41880
41881         * prj.ads:
41882         (Naming_Data): Change several components to reflect new
41883         elements of naming schemes.
41884         (Project_Data): New flags Sources_Present and
41885         Language_Independent_Checked.
41886         (Ada_Default_Spec_Suffix): New function.
41887         (Ada_Default_Impl_Suffix): New function.
41888
41889         * snames.ads:
41890         Modification of predefined names for project manager: added
41891         Implementation, Specification_Exceptions, Implementation_Exceptions,
41892         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
41893         Default_Switches, _Languages, Builder, Cross_Reference,
41894         Finder. Removed Body_Part, Specification_Append, Body_Append,
41895         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
41896         Gnatlink.
41897
41898         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
41899         Add comments.
41900
41901         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
41902         not that it is Nil_Variable_Value.
41903
41904         * prj.ads: Add ??? for uncommented declarations
41905
41906 2001-10-10  Ed Schonberg  <schonber@gnat.com>
41907
41908         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
41909         constant, do not indicate possible modification, so that gigi can
41910         treat it as a bona fide constant.
41911
41912 2001-10-10  Robert Dewar  <dewar@gnat.com>
41913
41914         * sem_prag.adb: Add processing for pragma External.
41915
41916         * snames.ads: Add entry for pragma External.
41917
41918         * par-prag.adb: Add pragma External.
41919
41920         * snames.adb: Updated to match snames.ads.
41921
41922 2001-10-10  Ed Schonberg  <schonber@gnat.com>
41923
41924         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
41925         a dynamic task if the allocator appears in an indexed assignment
41926         or selected component assignment.
41927
41928         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
41929         For a dynamic task in an assignment statement, use target of
41930         assignment to generate meaningful name.
41931
41932 2001-10-10  Ed Schonberg  <schonber@gnat.com>
41933
41934         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
41935         a generic package.
41936
41937         * einfo.ads: Body_Entity is also defined for generic package.
41938         Documentation change only
41939
41940         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
41941         others_choice for a discriminated component initialization,
41942         convert discriminant references into the corresponding discriminals.
41943
41944         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
41945         only if original type is private and expression has to be wrapped
41946         in a conversion.
41947
41948         * checks.adb:
41949         (Apply_Constraint_Check): Do not perform length check
41950         if expression is an aggregate with only an others_choice.
41951         (Length_N_Cond): two references to the same in_parameter
41952         (typically the discriminal in an init_proc) denote the same value.
41953         Two useful optimization uncovered by bugfixes above.
41954
41955 2001-10-10  Robert Dewar  <dewar@gnat.com>
41956
41957         * xeinfo.adb: Change int to char in translation of enumeration types.
41958         This fixes a problem in the C representation of component alignment.
41959         Add 2001 to copyright notice
41960
41961 2001-10-10  Richard Kenner  <kenner@gnat.com>
41962
41963         * decl.c: (validate_size): Do check size of object of integral type
41964         if it is a packed array type.
41965
41966 2001-10-10  Richard Kenner  <kenner@gnat.com>
41967
41968         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
41969         VAR_DECL for constant if not Is_Public but -O0.
41970
41971 2001-10-10  Richard Kenner  <kenner@gnat.com>
41972
41973         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
41974
41975 2001-10-10  Geert Bosch  <bosch@gnat.com>
41976
41977         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
41978         use '/' as switch character, allowing for absolute file names.
41979
41980 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
41981
41982         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
41983         FSF address.
41984
41985 2001-10-08  Geert Bosch  <bosch@gnat.com>
41986
41987         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
41988         Automatically build utilities when files need to be regenerated.
41989
41990 2001-10-08  Geert Bosch  <bosch@gnat.com>
41991
41992         * xsnames.adb: New utility for updating snames.ads and snames.adb
41993
41994 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
41995
41996         * Make-lang.in (ADAFLAGS): Add -W -Wall.
41997         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
41998         (gnat1): Also depend on attribs.o.
41999         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
42000         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
42001         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
42002         (ADAFLAGS): Add -W -Wall.
42003         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
42004         take out CFLAGS.
42005
42006         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
42007         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
42008         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
42009         Use $(ADAC), not $(CC), as compilation command.
42010
42011         (gnattools): Depend directly on tools to build, don't use
42012         recursive make.
42013         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
42014
42015         * einfo.h, sinfo.h: New files (autogenerated).
42016
42017 2001-10-08  Richard Henderson  <rth@redhat.com>
42018
42019         * comperr.adb (Abort_In_Progress): New.
42020         (Compiler_Abort): Use it to prevent recursion.
42021
42022 2001-10-08  Robert Dewar  <dewar@gnat.com>
42023
42024         * atree.adb: Set Error_Posted in Error node, helps error recovery.
42025
42026         * par-endh.adb (Output_End_Expected): We should also not test
42027         Error_Posted on the Error node, since now it is always set.
42028
42029         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
42030         to help error recovery. Part of general work on 9407-004.
42031
42032         * par.adb: Add ??? for misuse of error
42033
42034         * sem_res.adb:
42035         (Resolve): Defend against Error, fixes 9407-003.
42036         (Resolve_Discrete_Subtype_Indication): Defend against Error.
42037
42038         * sinfo.ads (N_Error): Now has Etype field (which will be set
42039         to Any_Type to help error recovery).
42040
42041 2001-10-08  Richard Kenner  <kenner@gnat.com>
42042
42043         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
42044         Consistently set MEM attributes from expression; fixes
42045         bootstrap failure on x86.
42046
42047 2001-10-08  Geert Bosch  <bosch@gnat.com>
42048
42049         * 5oosinte.adb: Add 2001 to copyright notice.
42050
42051 2001-10-08  Geert Bosch  <bosch@gnat.com>
42052
42053         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
42054
42055         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
42056
42057 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
42058
42059         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
42060
42061 2001-10-05  Geert Bosch  <bosch@gnat.com>
42062
42063         * adaint.h: Small formatting fix.
42064
42065 2001-10-04  Geert Bosch  <bosch@gnat.com>
42066
42067         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
42068         Arg is int, not FILE *, in dummy version of functions.
42069
42070         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
42071         Arg is int, not FILE *.
42072
42073 2001-10-04  Geert Bosch  <bosch@gnat.com>
42074
42075         * 3lsoccon.ads: Added file, missed with initial check ins.
42076
42077         * 4lintnam.ads: Fix header format.
42078         Change Linux to GNU/Linux.
42079
42080         * 5iosinte.adb: Change Linux to GNU/Linux.
42081
42082         * 5iosinte.ads: Change Linux to GNU/Linux.
42083
42084         * 5itaprop.adb: Change Linux to GNU/Linux.
42085
42086         * 5itaspri.ads: Change Linux to GNU/Linux.
42087         Update copyright notice.
42088
42089         * 5lintman.adb: Change Linux to GNU/Linux.
42090
42091         * 5lml-tgt.adb: Change Linux to GNU/Linux.
42092
42093         * 5losinte.ads: Change Linux to GNU/Linux.
42094
42095         * 5lsystem.ads: Change Linux to GNU/Linux.
42096
42097         * 5qosinte.adb: Change Linux to GNU/Linux.
42098
42099         * 5qosinte.ads: Change Linux to GNU/Linux.
42100
42101         * 5qparame.ads: Change Linux to GNU/Linux.
42102
42103         * 5qtaprop.adb: Change Linux to GNU/Linux.
42104
42105         * 5qtaspri.ads: Change Linux to GNU/Linux.
42106         Add 2001 to copyright notice.
42107
42108         * 5vintman.ads: Change Linux to GNU/Linux.
42109         Fix header format.  Add 2001 to copyright notice.
42110
42111         * g-soccon.ads: Change Linux to GNU/Linux.
42112
42113         * g-trasym.ads: Change Linux to GNU/Linux.
42114         Add 2001 to copyright notice.
42115
42116         * memtrack.adb: Change Linux to GNU/Linux.
42117
42118         * s-intman.ads: Change Linux to GNU/Linux.
42119         Add 2001 to copyright notice.  Fix header format.
42120
42121         * s-stache.adb: Change Linux to GNU/Linux.
42122
42123         * adaint.c: Change Linux to GNU/Linux.
42124
42125         * cio.c: Change Linux to GNU/Linux.
42126
42127         * cstreams.c: Change Linux to GNU/Linux.
42128
42129         * init.c: Change Linux to GNU/Linux.
42130
42131         * gmem.c: Change Linux to GNU/Linux.
42132
42133         * tracebak.c: Change Linux to GNU/Linux.
42134
42135
42136 2001-10-02  Geert Bosch  <bosch@gnat.com>
42137
42138         * misc.c (insert_default_attributes): Add dummy version.